smartkiosk-server 0.11.4 → 0.11.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,34 +1,2 @@
1
- class CashAcquirer
2
- def initialize(*args)
3
- end
4
-
5
- class Transaction
6
- def initialize(payment)
7
- @payment = payment
8
- end
9
-
10
- def id
11
- "0"
12
- end
13
-
14
- def authorize
15
- true
16
- end
17
-
18
- def reverse
19
- true
20
- end
21
-
22
- def confirm
23
- true
24
- end
25
-
26
- def error
27
- nil
28
- end
29
- end
30
-
31
- def transaction(payment, &block)
32
- yield Transaction.new(payment)
33
- end
34
- end
1
+ class CashAcquirer < EmptyAcquirer
2
+ end
@@ -0,0 +1,34 @@
1
+ class EmptyAcquirer
2
+ def initialize(*args)
3
+ end
4
+
5
+ class Transaction
6
+ def initialize(payment)
7
+ @payment = payment
8
+ end
9
+
10
+ def id
11
+ "0"
12
+ end
13
+
14
+ def authorize
15
+ true
16
+ end
17
+
18
+ def reverse
19
+ true
20
+ end
21
+
22
+ def confirm
23
+ true
24
+ end
25
+
26
+ def error
27
+ nil
28
+ end
29
+ end
30
+
31
+ def transaction(payment, &block)
32
+ yield Transaction.new(payment)
33
+ end
34
+ end
@@ -121,6 +121,10 @@ class Payment < ActiveRecord::Base
121
121
  before_validation do
122
122
  self.meta = {} unless self.meta.is_a?(Hash)
123
123
  self.agent = self.terminal.agent unless self.terminal.blank?
124
+
125
+ if [ TYPE_CASH, TYPE_IBANK, TYPE_MBANK, TYPE_PURSE, TYPE_ACCOUNT ].include?(self.payment_type)
126
+ self.externally_paid = true
127
+ end
124
128
  end
125
129
 
126
130
  before_save do
@@ -157,21 +161,25 @@ class Payment < ActiveRecord::Base
157
161
  #
158
162
  # METHODS
159
163
  #
160
- def self.acquirer(payment_type)
161
- unless @acquiring_settings
162
- @acquiring_settings = YAML::load File.read(Rails.root.join 'config/acquiring.yml')
163
- @acquiring_settings.each do |x|
164
- x['type'] = x['type'].split(',').map do |t|
165
- Payment.const_get "TYPE_#{t.strip.upcase}"
164
+ def self.acquirer(payment)
165
+ unless payment.externally_paid
166
+ unless @acquiring_settings
167
+ @acquiring_settings = YAML::load File.read(Rails.root.join 'config/acquiring.yml')
168
+ @acquiring_settings.each do |x|
169
+ x['type'] = x['type'].split(',').map do |t|
170
+ Payment.const_get "TYPE_#{t.strip.upcase}"
171
+ end
172
+ x['class'] = x['class'].constantize
166
173
  end
167
- x['class'] = x['class'].constantize
168
174
  end
169
- end
170
175
 
171
- acquirer = @acquiring_settings.find{|x| x['type'].include?(payment_type)}
172
- raise "unsupported payment type: #{payment_type}" unless acquirer
176
+ acquirer = @acquiring_settings.find{|x| x['type'].include?(payment.payment_type)}
177
+ raise "unsupported payment type: #{payment.payment_type}" unless acquirer
173
178
 
174
- acquirer['class'].new(acquirer)
179
+ acquirer['class'].new(acquirer)
180
+ else
181
+ EmptyAcquirer.new
182
+ end
175
183
  end
176
184
 
177
185
  def self.plogger
@@ -311,7 +319,7 @@ class Payment < ActiveRecord::Base
311
319
  end
312
320
 
313
321
  def pay?
314
- acquirer = Payment.acquirer(self.payment_type)
322
+ acquirer = Payment.acquirer(self)
315
323
  acquirer.transaction(self) do |transaction|
316
324
  self.update_attribute(:acquirer_transaction, transaction.id)
317
325
 
@@ -0,0 +1,5 @@
1
+ class AddExternallyPaidToPayments < ActiveRecord::Migration
2
+ def change
3
+ add_column :payments, :externally_paid, :boolean, :null => false, :default => false
4
+ end
5
+ end
@@ -11,7 +11,7 @@
11
11
  #
12
12
  # It's strongly recommended to check this file into your version control system.
13
13
 
14
- ActiveRecord::Schema.define(:version => 20130217113740) do
14
+ ActiveRecord::Schema.define(:version => 20130325154559) do
15
15
 
16
16
  create_table "active_admin_comments", :force => true do |t|
17
17
  t.string "resource_id", :null => false
@@ -194,6 +194,7 @@ ActiveRecord::Schema.define(:version => 20130217113740) do
194
194
  t.string "card_track2"
195
195
  t.datetime "created_at", :null => false
196
196
  t.datetime "updated_at", :null => false
197
+ t.boolean "externally_paid", :default => false, :null => false
197
198
  end
198
199
 
199
200
  add_index "payments", ["agent_id"], :name => "index_payments_on_agent_id"
@@ -1,5 +1,5 @@
1
1
  module Smartkiosk
2
2
  module Server
3
- VERSION = '0.11.4'
3
+ VERSION = '0.11.5'
4
4
  end
5
5
  end
@@ -126,6 +126,7 @@ describe PaymentsController do
126
126
  PayWorker.new.perform 1
127
127
  payment = Payment.find 1
128
128
  payment.state.should == "paid"
129
+ payment.externally_paid.should == true
129
130
  end
130
131
 
131
132
  xit "pays with card" do
@@ -163,6 +164,7 @@ describe PaymentsController do
163
164
  payment = Payment.find 1
164
165
 
165
166
  payment.state.should == "paid"
167
+ payment.externally_paid.should == false
166
168
  ensure
167
169
  CardsMkbAcquirer.stop
168
170
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smartkiosk-server
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.4
4
+ version: 0.11.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -65,6 +65,7 @@ files:
65
65
  - Rakefile
66
66
  - app/acquirers/cards_mkb_acquirer.rb
67
67
  - app/acquirers/cash_acquirer.rb
68
+ - app/acquirers/empty_acquirer.rb
68
69
  - app/admin/agents.rb
69
70
  - app/admin/collections.rb
70
71
  - app/admin/commissions.rb
@@ -260,6 +261,7 @@ files:
260
261
  - db/migrate/20130216173828_add_watchdog_and_card_reader_errors_to_terminals.rb
261
262
  - db/migrate/20130217113617_add_last_session_started_at_to_terminals.rb
262
263
  - db/migrate/20130217113740_create_session_records.rb
264
+ - db/migrate/20130325154559_add_externally_paid_to_payments.rb
263
265
  - db/schema.rb
264
266
  - db/seeds.rb
265
267
  - db/seeds/receipt_templates/payment.txt
@@ -332,7 +334,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
332
334
  version: '0'
333
335
  segments:
334
336
  - 0
335
- hash: -235060270240721140
337
+ hash: -2336776553200624072
336
338
  required_rubygems_version: !ruby/object:Gem::Requirement
337
339
  none: false
338
340
  requirements: