solidus_core 2.1.0.beta1 → 2.1.0.rc1
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.
Potentially problematic release.
This version of solidus_core might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/mailers/spree/base_mailer.rb +2 -7
- data/app/mailers/spree/carton_mailer.rb +3 -11
- data/app/mailers/spree/order_mailer.rb +3 -12
- data/app/models/concerns/spree/default_price.rb +2 -3
- data/app/models/concerns/spree/user_methods.rb +1 -1
- data/app/models/concerns/spree/user_payment_source.rb +0 -6
- data/app/models/spree/address.rb +0 -9
- data/app/models/spree/adjustment.rb +2 -63
- data/app/models/spree/app_configuration.rb +0 -22
- data/app/models/spree/calculator/flexi_rate.rb +7 -12
- data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +1 -1
- data/app/models/spree/calculator/tiered_flat_rate.rb +3 -1
- data/app/models/spree/calculator/tiered_percent.rb +3 -1
- data/app/models/spree/country.rb +0 -7
- data/app/models/spree/gateway.rb +0 -9
- data/app/models/spree/order.rb +1 -15
- data/app/models/spree/order/checkout.rb +0 -41
- data/app/models/spree/payment.rb +0 -22
- data/app/models/spree/payment/processing.rb +1 -1
- data/app/models/spree/product/scopes.rb +1 -8
- data/app/models/spree/promotion/actions/create_adjustment.rb +6 -1
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +6 -1
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +6 -1
- data/app/models/spree/refund.rb +1 -1
- data/app/models/spree/store.rb +1 -2
- data/app/models/spree/zone.rb +12 -10
- data/lib/spree/core.rb +0 -10
- data/lib/spree/core/engine.rb +0 -2
- data/lib/spree/core/version.rb +1 -6
- data/spec/mailers/carton_mailer_spec.rb +0 -9
- data/spec/mailers/order_mailer_spec.rb +0 -14
- data/spec/models/spree/calculator/flexi_rate_spec.rb +132 -20
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +4 -0
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +41 -1
- data/spec/models/spree/calculator/tiered_percent_spec.rb +45 -1
- data/spec/models/spree/gateway/bogus_spec.rb +0 -7
- data/spec/models/spree/order/checkout_spec.rb +0 -119
- data/spec/models/spree/order/payment_spec.rb +19 -10
- data/spec/models/spree/order_spec.rb +0 -45
- data/spec/models/spree/payment_spec.rb +56 -63
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +2 -2
- data/spec/models/spree/store_spec.rb +0 -8
- data/spec/models/spree/user_spec.rb +0 -7
- data/spec/models/spree/variant_spec.rb +0 -8
- metadata +2 -4
- data/config/initializers/spree_user.rb +0 -10
- data/lib/spree/core/routes.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c66409a6f87b3a90858c73c06bd98dc912c9dfa
|
4
|
+
data.tar.gz: '0148e46c9524d70114def79a9945127920e00289'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ae05f78d66d73feae17890ea3632d76c6712d1358cc1173613bdfd0c6fb214dbaad740fe1b9a12249397555bf3ec405b60aae833a69f3b96f76bcf86ffec1b44
|
7
|
+
data.tar.gz: 4f11abc46de577ac3aeff8cecc95e1f91fb1c8fd30c1546f3f7ad0b0da68a01161617c4a7b5ca6ec6acfe50bb4f7ede887815ae625dc86dc67142e729a436ea5
|
@@ -1,12 +1,7 @@
|
|
1
1
|
module Spree
|
2
2
|
class BaseMailer < ActionMailer::Base
|
3
|
-
def from_address(store
|
4
|
-
|
5
|
-
store.mail_from_address
|
6
|
-
else
|
7
|
-
Spree::Deprecation.warn "A Spree::Store should be provided to determine the from address.", caller
|
8
|
-
Spree::Config[:mails_from]
|
9
|
-
end
|
3
|
+
def from_address(store)
|
4
|
+
store.mail_from_address
|
10
5
|
end
|
11
6
|
|
12
7
|
def money(amount, currency = Spree::Config[:currency])
|
@@ -14,17 +14,9 @@ module Spree
|
|
14
14
|
# signature is:
|
15
15
|
# def shipped_email(carton:, order:, resend: false)
|
16
16
|
def shipped_email(options, deprecated_options = {})
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
@order = @carton.orders.first # assume first order
|
21
|
-
@manifest = @carton.manifest # use the entire manifest, since we don't know the precise order
|
22
|
-
options = deprecated_options
|
23
|
-
else
|
24
|
-
@order = options.fetch(:order)
|
25
|
-
@carton = options.fetch(:carton)
|
26
|
-
@manifest = @carton.manifest_for_order(@order)
|
27
|
-
end
|
17
|
+
@order = options.fetch(:order)
|
18
|
+
@carton = options.fetch(:carton)
|
19
|
+
@manifest = @carton.manifest_for_order(@order)
|
28
20
|
options = { resend: false }.merge(options)
|
29
21
|
@store = @order.store
|
30
22
|
subject = (options[:resend] ? "[#{Spree.t(:resend).upcase}] " : '')
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Spree
|
2
2
|
class OrderMailer < BaseMailer
|
3
3
|
def confirm_email(order, resend = false)
|
4
|
-
@order =
|
4
|
+
@order = order
|
5
5
|
@store = @order.store
|
6
6
|
subject = build_subject(Spree.t('order_mailer.confirm_email.subject'), resend)
|
7
7
|
|
@@ -9,7 +9,7 @@ module Spree
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def cancel_email(order, resend = false)
|
12
|
-
@order =
|
12
|
+
@order = order
|
13
13
|
@store = @order.store
|
14
14
|
subject = build_subject(Spree.t('order_mailer.cancel_email.subject'), resend)
|
15
15
|
|
@@ -17,7 +17,7 @@ module Spree
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def inventory_cancellation_email(order, inventory_units, resend = false)
|
20
|
-
@order, @inventory_units =
|
20
|
+
@order, @inventory_units = order, inventory_units
|
21
21
|
@store = @order.store
|
22
22
|
subject = build_subject(Spree.t('order_mailer.inventory_cancellation.subject'), resend)
|
23
23
|
|
@@ -26,15 +26,6 @@ module Spree
|
|
26
26
|
|
27
27
|
private
|
28
28
|
|
29
|
-
def find_order(order)
|
30
|
-
if order.respond_to?(:id)
|
31
|
-
order
|
32
|
-
else
|
33
|
-
Spree::Deprecation.warn("Calling OrderMailer with an id is deprecated. Pass the Spree::Order object instead.")
|
34
|
-
Spree::Order.find(order)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
29
|
def build_subject(subject_text, resend)
|
39
30
|
resend_text = (resend ? "[#{Spree.t(:resend).upcase}] " : '')
|
40
31
|
"#{resend_text}#{@order.store.name} #{subject_text} ##{@order.number}"
|
@@ -15,9 +15,8 @@ module Spree
|
|
15
15
|
default_price || build_default_price(Spree::Config.default_pricing_options.desired_attributes)
|
16
16
|
end
|
17
17
|
|
18
|
-
delegate :display_price, :display_amount, :price,
|
19
|
-
delegate :price=,
|
20
|
-
deprecate :currency=, :currency, deprecator: Spree::Deprecation
|
18
|
+
delegate :display_price, :display_amount, :price, to: :find_or_build_default_price
|
19
|
+
delegate :price=, to: :find_or_build_default_price
|
21
20
|
|
22
21
|
def has_default_price?
|
23
22
|
!default_price.nil?
|
@@ -11,7 +11,7 @@ module Spree
|
|
11
11
|
extend Spree::DisplayMoney
|
12
12
|
|
13
13
|
has_many :role_users, foreign_key: "user_id", class_name: "Spree::RoleUser", dependent: :destroy
|
14
|
-
has_many :spree_roles, through: :role_users, source: :role
|
14
|
+
has_many :spree_roles, through: :role_users, source: :role, class_name: "Spree::Role"
|
15
15
|
|
16
16
|
has_many :user_stock_locations, foreign_key: "user_id", class_name: "Spree::UserStockLocation"
|
17
17
|
has_many :stock_locations, through: :user_stock_locations
|
@@ -13,11 +13,5 @@ module Spree
|
|
13
13
|
def payment_sources
|
14
14
|
credit_cards.with_payment_profile
|
15
15
|
end
|
16
|
-
|
17
|
-
def drop_payment_source(source)
|
18
|
-
Spree::Deprecation.warn("User#drop_payment_source is deprecated", caller)
|
19
|
-
gateway = source.payment_method
|
20
|
-
gateway.disable_customer_profile(source)
|
21
|
-
end
|
22
16
|
end
|
23
17
|
end
|
data/app/models/spree/address.rb
CHANGED
@@ -33,15 +33,6 @@ module Spree
|
|
33
33
|
new(country: Spree::Country.default)
|
34
34
|
end
|
35
35
|
|
36
|
-
def self.default(user = nil, kind = "bill")
|
37
|
-
Spree::Deprecation.warn("Address.default is deprecated. Use User.default_address or Address.build_default", caller)
|
38
|
-
if user
|
39
|
-
user.send(:"#{kind}_address") || build_default
|
40
|
-
else
|
41
|
-
build_default
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
36
|
# @return [Address] an equal address already in the database or a newly created one
|
46
37
|
def self.factory(attributes)
|
47
38
|
full_attributes = value_attributes(column_defaults, new(attributes).attributes)
|
@@ -32,15 +32,7 @@ module Spree
|
|
32
32
|
after_commit :repair_adjustments_associations_on_destroy, on: [:destroy]
|
33
33
|
|
34
34
|
scope :not_finalized, -> { where(finalized: false) }
|
35
|
-
scope :open, -> do
|
36
|
-
Spree::Deprecation.warn "Adjustment.open is deprecated. Instead use Adjustment.not_finalized", caller
|
37
|
-
where(finalized: false)
|
38
|
-
end
|
39
35
|
scope :finalized, -> { where(finalized: true) }
|
40
|
-
scope :closed, -> do
|
41
|
-
Spree::Deprecation.warn "Adjustment.closed is deprecated. Instead use Adjustment.finalized", caller
|
42
|
-
where(finalized: true)
|
43
|
-
end
|
44
36
|
scope :cancellation, -> { where(source_type: 'Spree::UnitCancel') }
|
45
37
|
scope :tax, -> { where(source_type: 'Spree::TaxRate') }
|
46
38
|
scope :non_tax, -> do
|
@@ -78,55 +70,6 @@ module Spree
|
|
78
70
|
update_attributes(finalized: false)
|
79
71
|
end
|
80
72
|
|
81
|
-
# Deprecated methods
|
82
|
-
def state
|
83
|
-
Spree::Deprecation.warn "Adjustment#state is deprecated. Instead use Adjustment#finalized?", caller
|
84
|
-
finalized? ? "closed" : "open"
|
85
|
-
end
|
86
|
-
|
87
|
-
def state=(new_state)
|
88
|
-
Spree::Deprecation.warn "Adjustment#state= is deprecated. Instead use Adjustment#finalized=", caller
|
89
|
-
case new_state
|
90
|
-
when "open"
|
91
|
-
self.finalized = false
|
92
|
-
when "closed"
|
93
|
-
self.finalized = true
|
94
|
-
else
|
95
|
-
raise "invaliid adjustment state #{new_state}"
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
def open?
|
100
|
-
Spree::Deprecation.warn "Adjustment#open? is deprecated. Instead use Adjustment#finalized?", caller
|
101
|
-
!closed?
|
102
|
-
end
|
103
|
-
|
104
|
-
def closed?
|
105
|
-
Spree::Deprecation.warn "Adjustment#closed? is deprecated. Instead use Adjustment#finalized?", caller
|
106
|
-
finalized?
|
107
|
-
end
|
108
|
-
|
109
|
-
def open
|
110
|
-
Spree::Deprecation.warn "Adjustment#open is deprecated. Instead use Adjustment#unfinalize", caller
|
111
|
-
unfinalize
|
112
|
-
end
|
113
|
-
|
114
|
-
def open!
|
115
|
-
Spree::Deprecation.warn "Adjustment#open! is deprecated. Instead use Adjustment#unfinalize!", caller
|
116
|
-
unfinalize!
|
117
|
-
end
|
118
|
-
|
119
|
-
def close
|
120
|
-
Spree::Deprecation.warn "Adjustment#close is deprecated. Instead use Adjustment#finalize", caller
|
121
|
-
finalize
|
122
|
-
end
|
123
|
-
|
124
|
-
def close!
|
125
|
-
Spree::Deprecation.warn "Adjustment#close! is deprecated. Instead use Adjustment#finalize!", caller
|
126
|
-
finalize!
|
127
|
-
end
|
128
|
-
# End deprecated methods
|
129
|
-
|
130
73
|
def currency
|
131
74
|
adjustable ? adjustable.currency : Spree::Config[:currency]
|
132
75
|
end
|
@@ -152,18 +95,14 @@ module Spree
|
|
152
95
|
# If the adjustment has no source (such as when created manually from the
|
153
96
|
# admin) or is closed, this is a noop.
|
154
97
|
#
|
155
|
-
# @param target [Spree::LineItem,Spree::Shipment,Spree::Order] Deprecated: the target to calculate against
|
156
98
|
# @return [BigDecimal] New amount of this adjustment
|
157
|
-
def update!
|
158
|
-
if target
|
159
|
-
Spree::Deprecation.warn("Passing a target to Adjustment#update! is deprecated. The adjustment will use the correct target from it's adjustable association.", caller)
|
160
|
-
end
|
99
|
+
def update!
|
161
100
|
return amount if finalized?
|
162
101
|
|
163
102
|
# If the adjustment has no source, do not attempt to re-calculate the amount.
|
164
103
|
# Chances are likely that this was a manually created adjustment in the admin backend.
|
165
104
|
if source.present?
|
166
|
-
self.amount = source.compute_amount(
|
105
|
+
self.amount = source.compute_amount(adjustable)
|
167
106
|
|
168
107
|
if promotion?
|
169
108
|
self.eligible = source.promotion.eligible?(adjustable, promotion_code: promotion_code)
|
@@ -404,27 +404,5 @@ module Spree
|
|
404
404
|
country: Spree::Country.find_by(iso: admin_vat_country_iso)
|
405
405
|
)
|
406
406
|
end
|
407
|
-
|
408
|
-
# all the following can be deprecated when store prefs are no longer supported
|
409
|
-
# @private
|
410
|
-
DEPRECATED_STORE_PREFERENCES = {
|
411
|
-
site_name: :name,
|
412
|
-
site_url: :url,
|
413
|
-
default_meta_description: :meta_description,
|
414
|
-
default_meta_keywords: :meta_keywords,
|
415
|
-
default_seo_title: :seo_title
|
416
|
-
}
|
417
|
-
|
418
|
-
DEPRECATED_STORE_PREFERENCES.each do |old_preference_name, store_method|
|
419
|
-
# Avoid warning about implementation details
|
420
|
-
bc = ActiveSupport::BacktraceCleaner.new
|
421
|
-
bc.add_silencer { |line| line =~ %r{spree/preferences} }
|
422
|
-
|
423
|
-
# support all the old preference methods with a warning
|
424
|
-
define_method "preferred_#{old_preference_name}" do
|
425
|
-
Spree::Deprecation.warn("#{old_preference_name} is no longer supported on Spree::Config, please access it through #{store_method} on Spree::Store", bc.clean(caller))
|
426
|
-
Spree::Store.default.send(store_method)
|
427
|
-
end
|
428
|
-
end
|
429
407
|
end
|
430
408
|
end
|
@@ -2,8 +2,8 @@ require_dependency 'spree/calculator'
|
|
2
2
|
|
3
3
|
module Spree
|
4
4
|
class Calculator::FlexiRate < Calculator
|
5
|
-
preference :first_item, :decimal, default: 0
|
6
|
-
preference :additional_item, :decimal, default: 0
|
5
|
+
preference :first_item, :decimal, default: 0
|
6
|
+
preference :additional_item, :decimal, default: 0
|
7
7
|
preference :max_items, :integer, default: 0
|
8
8
|
preference :currency, :string, default: ->{ Spree::Config[:currency] }
|
9
9
|
|
@@ -12,18 +12,13 @@ module Spree
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def compute(object)
|
15
|
-
sum = 0
|
16
|
-
max = preferred_max_items.to_i
|
17
15
|
items_count = object.quantity
|
18
|
-
items_count.
|
19
|
-
if i == 0
|
20
|
-
sum += preferred_first_item.to_f
|
21
|
-
elsif ((max > 0) && (i <= (max - 1))) || (max == 0)
|
22
|
-
sum += preferred_additional_item.to_f
|
23
|
-
end
|
24
|
-
end
|
16
|
+
items_count = [items_count, preferred_max_items].min unless preferred_max_items.zero?
|
25
17
|
|
26
|
-
|
18
|
+
return BigDecimal.new(0) if items_count == 0
|
19
|
+
|
20
|
+
additional_items_count = items_count - 1
|
21
|
+
preferred_first_item + preferred_additional_item * additional_items_count
|
27
22
|
end
|
28
23
|
end
|
29
24
|
end
|
@@ -8,7 +8,9 @@ module Spree
|
|
8
8
|
before_validation do
|
9
9
|
# Convert tier values to decimals. Strings don't do us much good.
|
10
10
|
if preferred_tiers.is_a?(Hash)
|
11
|
-
self.preferred_tiers =
|
11
|
+
self.preferred_tiers = preferred_tiers.map do |k, v|
|
12
|
+
[BigDecimal.new(k.to_s), BigDecimal.new(v.to_s)]
|
13
|
+
end.to_h
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
@@ -8,7 +8,9 @@ module Spree
|
|
8
8
|
before_validation do
|
9
9
|
# Convert tier values to decimals. Strings don't do us much good.
|
10
10
|
if preferred_tiers.is_a?(Hash)
|
11
|
-
self.preferred_tiers =
|
11
|
+
self.preferred_tiers = preferred_tiers.map do |k, v|
|
12
|
+
[BigDecimal.new(k.to_s), BigDecimal.new(v.to_s)]
|
13
|
+
end.to_h
|
12
14
|
end
|
13
15
|
end
|
14
16
|
|
data/app/models/spree/country.rb
CHANGED
@@ -6,13 +6,6 @@ module Spree
|
|
6
6
|
|
7
7
|
validates :name, :iso_name, presence: true
|
8
8
|
|
9
|
-
def self.states_required_by_country_id
|
10
|
-
Spree::Deprecation.warn "Spree::Country.states_required_by_country_id is deprecated and will be removed from future releases, Implement it yourself.", caller
|
11
|
-
states_required = Hash.new(true)
|
12
|
-
all.each { |country| states_required[country.id.to_s] = country.states_required }
|
13
|
-
states_required
|
14
|
-
end
|
15
|
-
|
16
9
|
def self.default
|
17
10
|
if Spree::Config.default_country_id
|
18
11
|
Spree::Deprecation.warn("Setting your default country via its ID is deprecated. Please set your default country via the `default_country_iso` setting.", caller)
|
data/app/models/spree/gateway.rb
CHANGED
@@ -42,15 +42,6 @@ module Spree
|
|
42
42
|
source.has_payment_profile?
|
43
43
|
end
|
44
44
|
|
45
|
-
def disable_customer_profile(source)
|
46
|
-
Spree::Deprecation.warn("Gateway#disable_customer_profile is deprecated")
|
47
|
-
if source.is_a? CreditCard
|
48
|
-
source.update_column :gateway_customer_profile_id, nil
|
49
|
-
else
|
50
|
-
raise 'You must implement disable_customer_profile method for this gateway.'
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
45
|
def sources_by_order(order)
|
55
46
|
source_ids = order.payments.where(payment_method_id: id).pluck(:source_id).uniq
|
56
47
|
payment_source_class.where(id: source_ids).with_payment_profile
|
data/app/models/spree/order.rb
CHANGED
@@ -127,13 +127,6 @@ module Spree
|
|
127
127
|
class_attribute :line_item_comparison_hooks
|
128
128
|
self.line_item_comparison_hooks = Set.new
|
129
129
|
|
130
|
-
class << self
|
131
|
-
def by_number(number)
|
132
|
-
where(number: number)
|
133
|
-
end
|
134
|
-
deprecate :by_number, deprecator: Spree::Deprecation
|
135
|
-
end
|
136
|
-
|
137
130
|
scope :created_between, ->(start_date, end_date) { where(created_at: start_date..end_date) }
|
138
131
|
scope :completed_between, ->(start_date, end_date) { where(completed_at: start_date..end_date) }
|
139
132
|
|
@@ -212,7 +205,7 @@ module Spree
|
|
212
205
|
|
213
206
|
# Is this a free order in which case the payment step should be skipped
|
214
207
|
def payment_required?
|
215
|
-
total
|
208
|
+
total > 0
|
216
209
|
end
|
217
210
|
|
218
211
|
def confirmation_required?
|
@@ -605,13 +598,6 @@ module Spree
|
|
605
598
|
guest_token
|
606
599
|
end
|
607
600
|
|
608
|
-
# @deprecated Do not use this method. Behaviour is unreliable.
|
609
|
-
def fully_discounted?
|
610
|
-
adjustment_total + line_items.map(&:final_amount).sum == 0.0
|
611
|
-
end
|
612
|
-
alias_method :fully_discounted, :fully_discounted?
|
613
|
-
deprecate :fully_discounted, deprecator: Spree::Deprecation
|
614
|
-
|
615
601
|
def unreturned_exchange?
|
616
602
|
# created_at - 1 is a hack to ensure that this doesn't blow up on MySQL,
|
617
603
|
# records loaded from the DB on MySQL will have a precision of 1 second,
|
@@ -242,47 +242,6 @@ module Spree
|
|
242
242
|
checkout_step_index(state) > checkout_step_index(self.state)
|
243
243
|
end
|
244
244
|
|
245
|
-
define_callbacks :updating_from_params, terminator: deprecated_false_terminator
|
246
|
-
|
247
|
-
set_callback :updating_from_params, :before, :update_params_payment_source
|
248
|
-
|
249
|
-
# @deprecated Use {OrderUpdateAttributes} instead
|
250
|
-
def update_from_params(params, permitted_params, request_env = {})
|
251
|
-
Spree::Deprecation.warn "update_from_params is deprecated. Use the OrderUpdateAttributes class instead", caller
|
252
|
-
success = false
|
253
|
-
@updating_params = params
|
254
|
-
run_callbacks :updating_from_params do
|
255
|
-
attributes = @updating_params[:order] ? @updating_params[:order].permit(permitted_params).delete_if { |_k, v| v.nil? } : {}
|
256
|
-
|
257
|
-
# Set existing card after setting permitted parameters because
|
258
|
-
# rails would slice parameters containg ruby objects, apparently
|
259
|
-
existing_card_id = @updating_params[:order] ? @updating_params[:order][:existing_card] : nil
|
260
|
-
|
261
|
-
if existing_card_id.present?
|
262
|
-
credit_card = CreditCard.find existing_card_id
|
263
|
-
if credit_card.user_id != user_id || credit_card.user_id.blank?
|
264
|
-
raise Core::GatewayError.new Spree.t(:invalid_credit_card)
|
265
|
-
end
|
266
|
-
|
267
|
-
credit_card.verification_value = params[:cvc_confirm] if params[:cvc_confirm].present?
|
268
|
-
|
269
|
-
attributes[:payments_attributes].first[:source] = credit_card
|
270
|
-
attributes[:payments_attributes].first[:payment_method_id] = credit_card.payment_method_id
|
271
|
-
attributes[:payments_attributes].first.delete :source_attributes
|
272
|
-
end
|
273
|
-
|
274
|
-
if attributes[:payments_attributes]
|
275
|
-
attributes[:payments_attributes].first[:request_env] = request_env
|
276
|
-
end
|
277
|
-
|
278
|
-
update = OrderUpdateAttributes.new(self, attributes, request_env: request_env)
|
279
|
-
success = update.apply
|
280
|
-
end
|
281
|
-
|
282
|
-
@updating_params = nil
|
283
|
-
success
|
284
|
-
end
|
285
|
-
|
286
245
|
def bill_address_attributes=(attributes)
|
287
246
|
self.bill_address = Address.immutable_merge(bill_address, attributes)
|
288
247
|
end
|