solidus_core 2.1.0.beta1 → 2.1.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
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
|