erp_commerce 3.0.2 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,3 @@
1
+ class AcceptedCreditCard < ActiveRecord::Base
2
+ belongs_to :organization
3
+ end
@@ -1,6 +1,6 @@
1
1
  class CreditCardAccount < ActiveRecord::Base
2
2
  acts_as_biz_txn_account
3
-
3
+
4
4
  belongs_to :credit_card_account_purpose
5
5
  has_one :credit_card_account_party_role, :dependent => :destroy
6
6
  has_one :credit_card, :through => :credit_card_account_party_role
@@ -31,7 +31,7 @@ class CreditCardAccount < ActiveRecord::Base
31
31
  #credit_card_to_use
32
32
  def authorize(financial_txn, cvv, gateway_wrapper, gateway_options={}, credit_card_to_use=nil)
33
33
  credit_card_to_use = self.credit_card unless credit_card_to_use
34
-
34
+
35
35
  gateway_options[:debug] = true
36
36
  result = gateway_wrapper.authorize(credit_card_to_use, financial_txn.money.amount, cvv, gateway_options)
37
37
 
@@ -55,7 +55,7 @@ class CreditCardAccount < ActiveRecord::Base
55
55
  #credit_card_to_use
56
56
  def purchase(financial_txn, cvv, gateway_wrapper, gateway_options={}, credit_card_to_use=nil)
57
57
  credit_card_to_use = self.credit_card unless credit_card_to_use
58
-
58
+
59
59
  gateway_options[:debug] = true
60
60
  result = gateway_wrapper.purchase(credit_card_to_use, financial_txn.money.amount, cvv, gateway_options)
61
61
 
@@ -85,11 +85,11 @@ class CreditCardAccount < ActiveRecord::Base
85
85
  #only capture this payment if it was authorized
86
86
  if !payment.nil? && payment.current_state.to_sym == :authorized
87
87
  gateway_options[:debug] = true
88
- result = gateway_wrapper.capture(credit_card_to_use, payment, cvv,gateway_options)
88
+ result = gateway_wrapper.capture(credit_card_to_use, payment, cvv, gateway_options)
89
89
  end
90
90
  result
91
91
  end
92
-
92
+
93
93
  #params
94
94
  #financial_txn
95
95
  #cvv
@@ -106,7 +106,7 @@ class CreditCardAccount < ActiveRecord::Base
106
106
  #only reverse this payment if it was authorized
107
107
  if !payment.nil? && payment.current_state.to_sym == :authorized
108
108
  gateway_options[:debug] = true
109
-
109
+ gateway_options[:amount] = financial_txn.money.amount
110
110
  result = gateway_wrapper.full_reverse_of_authorization(credit_card_to_use, payment, cvv, gateway_options)
111
111
  end
112
112
  result
@@ -115,9 +115,32 @@ class CreditCardAccount < ActiveRecord::Base
115
115
  def void
116
116
  # implement a void transaction of a transaction
117
117
  end
118
-
118
+
119
119
  def refund
120
120
  # implement a refund on a card
121
121
  end
122
122
 
123
+ #params
124
+ #financial_txn
125
+ #gateway_wrapper
126
+ #
127
+ #Optional
128
+ #money_amount: amount to refund may be less than amount originally charged, so money_amount param is optional
129
+ #gateway_options
130
+ #credit_card_to_use
131
+ def void_or_return(financial_txn, gateway_wrapper, money_amount = nil, gateway_options={}, credit_card_to_use=nil)
132
+ credit_card_to_use = self.credit_card unless credit_card_to_use
133
+ result = {:success => true}
134
+
135
+ gateway_options[:debug] = true
136
+ if money_amount == nil
137
+ money_amount = financial_txn.money.amount
138
+ end
139
+ payment = Payment.where("reference_number = ? and financial_txn_id = ?",gateway_options[:ReferenceNumber], financial_txn.id).order('created_at desc').first
140
+ gateway_options[:debug] = true
141
+ result = gateway_wrapper.void_or_return(credit_card_to_use, payment, money_amount, gateway_options)
142
+
143
+ result
144
+ end
145
+
123
146
  end
@@ -0,0 +1,21 @@
1
+ Organization.class_eval do
2
+ has_many :accepted_credit_cards, :dependent => :destroy
3
+
4
+ def accepted_ccs_for_select
5
+ #TODO fix model so the case statement below is no longer necessary
6
+ accepted_credit_cards = self.accepted_credit_cards
7
+ accepted_credit_cards_for_select = accepted_credit_cards.collect do |accepted_type|
8
+ case accepted_type.card_type
9
+ when "MC"
10
+ ["Mastercard", accepted_type.card_type]
11
+ when "VS"
12
+ ["Visa", accepted_type.card_type]
13
+ when "AM"
14
+ ["American Express", accepted_type.card_type]
15
+ when "DC"
16
+ ["Discover", accepted_type.card_type]
17
+ end
18
+ end
19
+ end
20
+ end
21
+
@@ -14,6 +14,7 @@ class Payment < ActiveRecord::Base
14
14
  aasm_state :captured
15
15
  aasm_state :authorization_reversed
16
16
  aasm_state :canceled
17
+ aasm_state :returned
17
18
 
18
19
  aasm_event :cancel do
19
20
  transitions :to => :canceled, :from => [:pending]
@@ -38,4 +39,9 @@ class Payment < ActiveRecord::Base
38
39
  aasm_event :reverse_authorization do
39
40
  transitions :to => :authorization_reversed, :from => [:authorized]
40
41
  end
42
+
43
+ aasm_event :return do
44
+ transitions :to => :returned, :from => [:captured]
45
+ end
46
+
41
47
  end
@@ -0,0 +1,11 @@
1
+ class CreateAcceptedCreditCards < ActiveRecord::Migration
2
+ def change
3
+ create_table :accepted_credit_cards do |t|
4
+
5
+ t.references :organization
6
+ t.string :card_type
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -1,23 +1,23 @@
1
1
  module ErpCommerce
2
- module Extensions
3
- module ActiveRecord
4
- module ActsAsFee
5
- def self.included(base)
6
- base.extend(ClassMethods)
2
+ module Extensions
3
+ module ActiveRecord
4
+ module ActsAsFee
5
+ def self.included(base)
6
+ base.extend(ClassMethods)
7
7
  end
8
8
 
9
- module ClassMethods
10
- def acts_as_fee
9
+ module ClassMethods
10
+ def acts_as_fee
11
11
  extend ActsAsFee::SingletonMethods
12
- include ActsAsFee::InstanceMethods
13
-
12
+ include ActsAsFee::InstanceMethods
13
+
14
14
  after_initialize :new_fee
15
15
  after_update :save_fee
16
16
  after_save :save_fee
17
- after_destroy :destroy_fee
18
-
17
+ after_destroy :destroy_fee
18
+
19
19
  has_one :fee, :as => :fee_record
20
-
20
+
21
21
  #from Fee
22
22
  [ :money, :money=,
23
23
  :fee_type, :fee_type=,
@@ -27,21 +27,21 @@ module ErpCommerce
27
27
  :external_identifier, :external_identifier=,
28
28
  :external_id_source, :external_id_source=,
29
29
  :created_at,
30
- :updated_at
30
+ :updated_at
31
31
  ].each { |m| delegate m, :to => :fee }
32
-
33
- end
34
32
 
35
- end
36
-
37
- module SingletonMethods
38
- end
39
-
40
- module InstanceMethods
41
- def fee
42
- self.fee
43
33
  end
44
34
 
35
+ end
36
+
37
+ module SingletonMethods
38
+ end
39
+
40
+ module InstanceMethods
41
+ # def fee
42
+ # self.fee
43
+ # end
44
+
45
45
  def new_fee
46
46
  if self.new_record? && self.fee == nil
47
47
  self.fee = Fee.new
@@ -49,16 +49,16 @@ module ErpCommerce
49
49
  end
50
50
 
51
51
  def save_fee
52
- self.fee.save_with_validation!
52
+ self.fee.save!
53
53
  end
54
54
 
55
55
  def destroy_fee
56
56
  if self.fee && !self.fee.frozen?
57
57
  self.fee.destroy
58
58
  end
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
59
+ end
60
+ end #End ClassMethods module
61
+ end #End ActsAsFee module
62
+ end #End ActiveRecord module
63
+ end #End Extensions module
64
+ end #End ErpCommerce module
@@ -2,7 +2,7 @@ module ErpCommerce
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 3
4
4
  MINOR = 0
5
- TINY = 2
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erp_commerce
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.2
4
+ version: 3.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-25 00:00:00.000000000 Z
12
+ date: 2012-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: aasm
16
- requirement: &2161317020 !ruby/object:Gem::Requirement
16
+ requirement: &70240524474380 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.3.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2161317020
24
+ version_requirements: *70240524474380
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activemerchant
27
- requirement: &2161316520 !ruby/object:Gem::Requirement
27
+ requirement: &70240524487240 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - =
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.20.4
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2161316520
35
+ version_requirements: *70240524487240
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: erp_orders
38
- requirement: &2161316060 !ruby/object:Gem::Requirement
38
+ requirement: &70240524483060 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '3.0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2161316060
46
+ version_requirements: *70240524483060
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: prismpay
49
- requirement: &2161315680 !ruby/object:Gem::Requirement
49
+ requirement: &70240524537320 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2161315680
57
+ version_requirements: *70240524537320
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: erp_dev_svcs
60
- requirement: &2161315140 !ruby/object:Gem::Requirement
60
+ requirement: &70240524534900 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '3.0'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2161315140
68
+ version_requirements: *70240524534900
69
69
  description: The CompassAE Commerce Engine uses the engines that implement Parties,
70
70
  Products and Orders, and adds the ability to conduct commerce. It implements a pricing
71
71
  engine, fees, payment gateways.
@@ -80,6 +80,7 @@ files:
80
80
  - app/controllers/erp_commerce/application_controller.rb
81
81
  - app/helpers/erp_commerce/application_helper.rb
82
82
  - app/mailers/checkout_mailer.rb
83
+ - app/models/accepted_credit_card.rb
83
84
  - app/models/bank_account.rb
84
85
  - app/models/bank_account_type.rb
85
86
  - app/models/credit_card.rb
@@ -91,6 +92,7 @@ files:
91
92
  - app/models/extensions/currency.rb
92
93
  - app/models/extensions/financial_txn.rb
93
94
  - app/models/extensions/order_txn.rb
95
+ - app/models/extensions/organization.rb
94
96
  - app/models/extensions/party.rb
95
97
  - app/models/extensions/product_instance.rb
96
98
  - app/models/extensions/product_type.rb
@@ -131,6 +133,7 @@ files:
131
133
  - db/migrate/20101103132342_pricing_migrations.rb
132
134
  - db/migrate/20110921150854_create_fees.rb
133
135
  - db/migrate/20120308220606_add_external_identifier_to_payments.rb
136
+ - db/migrate/20120618144337_create_accepted_credit_cards.rb
134
137
  - db/migrate/upgrade/20120117170037_add_bank_account.rb
135
138
  - db/migrate/upgrade/20120117190924_add_credit_card_to_account_roles.rb
136
139
  - lib/erp_commerce/active_merchant_wrappers/bank_wrapper.rb
@@ -214,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
214
217
  version: '0'
215
218
  requirements: []
216
219
  rubyforge_project:
217
- rubygems_version: 1.8.15
220
+ rubygems_version: 1.8.11
218
221
  signing_key:
219
222
  specification_version: 3
220
223
  summary: The CompassAE Commerce Engine uses the engines that implement Parties, Products