solidus_core 2.11.10 → 3.0.2

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.

Files changed (132) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +0 -51
  3. data/app/helpers/spree/store_helper.rb +0 -11
  4. data/app/mailers/spree/carton_mailer.rb +1 -5
  5. data/app/models/concerns/spree/adjustment_source.rb +0 -15
  6. data/app/models/concerns/spree/calculated_adjustments.rb +0 -18
  7. data/app/models/concerns/spree/soft_deletable.rb +2 -4
  8. data/app/models/concerns/spree/user_address_book.rb +0 -37
  9. data/app/models/concerns/spree/user_methods.rb +2 -11
  10. data/app/models/spree/ability.rb +0 -37
  11. data/app/models/spree/address/name.rb +2 -20
  12. data/app/models/spree/address.rb +8 -186
  13. data/app/models/spree/adjustment.rb +0 -28
  14. data/app/models/spree/base.rb +0 -53
  15. data/app/models/spree/calculator/flexi_rate.rb +0 -5
  16. data/app/models/spree/calculator.rb +0 -7
  17. data/app/models/spree/country.rb +1 -6
  18. data/app/models/spree/credit_card.rb +0 -27
  19. data/app/models/spree/customer_return.rb +1 -4
  20. data/app/models/spree/image.rb +0 -7
  21. data/app/models/spree/inventory_unit.rb +0 -21
  22. data/app/models/spree/line_item.rb +2 -45
  23. data/app/models/spree/order.rb +4 -137
  24. data/app/models/spree/order_cancellations.rb +4 -24
  25. data/app/models/spree/order_updater.rb +2 -11
  26. data/app/models/spree/payment/cancellation.rb +1 -1
  27. data/app/models/spree/payment.rb +0 -3
  28. data/app/models/spree/payment_create.rb +1 -13
  29. data/app/models/spree/payment_method/credit_card.rb +1 -3
  30. data/app/models/spree/payment_method.rb +2 -103
  31. data/app/models/spree/product/scopes.rb +0 -27
  32. data/app/models/spree/product.rb +0 -40
  33. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -3
  34. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -3
  35. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
  36. data/app/models/spree/promotion/rules/taxon.rb +2 -15
  37. data/app/models/spree/promotion.rb +2 -6
  38. data/app/models/spree/promotion_action.rb +2 -9
  39. data/app/models/spree/promotion_code/batch_builder.rb +0 -14
  40. data/app/models/spree/refund.rb +0 -52
  41. data/app/models/spree/reimbursement.rb +3 -41
  42. data/app/models/spree/reimbursement_performer.rb +2 -8
  43. data/app/models/spree/reimbursement_type/credit.rb +1 -4
  44. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +1 -2
  45. data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
  46. data/app/models/spree/return_authorization.rb +1 -4
  47. data/app/models/spree/return_item.rb +3 -22
  48. data/app/models/spree/shipment.rb +1 -54
  49. data/app/models/spree/shipping_method.rb +0 -25
  50. data/app/models/spree/shipping_rate.rb +0 -2
  51. data/app/models/spree/state.rb +0 -4
  52. data/app/models/spree/stock/simple_coordinator.rb +6 -15
  53. data/app/models/spree/stock/splitter/base.rb +2 -7
  54. data/app/models/spree/stock_item.rb +1 -7
  55. data/app/models/spree/store.rb +0 -12
  56. data/app/models/spree/store_credit_category.rb +0 -32
  57. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -12
  58. data/app/models/spree/tax_rate.rb +0 -27
  59. data/app/models/spree/taxon/active_storage_attachment.rb +0 -5
  60. data/app/models/spree/taxon/paperclip_attachment.rb +0 -5
  61. data/app/models/spree/taxon.rb +0 -11
  62. data/app/models/spree/user_address.rb +0 -5
  63. data/app/models/spree/variant.rb +2 -46
  64. data/config/locales/en.yml +0 -8
  65. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +1 -1
  66. data/lib/generators/solidus/install/install_generator.rb +12 -1
  67. data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +3 -39
  68. data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
  69. data/lib/generators/spree/dummy/templates/rails/database.yml +6 -1
  70. data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
  71. data/lib/generators/spree/dummy/templates/rails/test.rb +2 -0
  72. data/lib/spree/app_configuration.rb +6 -65
  73. data/lib/spree/core/class_constantizer.rb +2 -0
  74. data/lib/spree/core/controller_helpers/auth.rb +1 -14
  75. data/lib/spree/core/controller_helpers/order.rb +2 -22
  76. data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
  77. data/lib/spree/core/controller_helpers/pricing.rb +0 -8
  78. data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
  79. data/lib/spree/core/engine.rb +0 -35
  80. data/lib/spree/core/environment_extension.rb +0 -9
  81. data/lib/spree/core/product_filters.rb +0 -40
  82. data/lib/spree/core/role_configuration.rb +0 -14
  83. data/lib/spree/core/search/base.rb +0 -26
  84. data/lib/spree/core/state_machines.rb +2 -11
  85. data/lib/spree/core/validators/email.rb +1 -1
  86. data/lib/spree/core/version.rb +1 -1
  87. data/lib/spree/core.rb +9 -8
  88. data/lib/spree/deprecation.rb +1 -1
  89. data/lib/spree/event/configuration.rb +0 -5
  90. data/lib/spree/event/subscriber.rb +0 -18
  91. data/lib/spree/event/subscriber_registry.rb +3 -1
  92. data/lib/spree/event.rb +0 -31
  93. data/lib/spree/i18n.rb +0 -22
  94. data/lib/spree/money.rb +3 -18
  95. data/lib/spree/permitted_attributes.rb +9 -54
  96. data/lib/spree/testing_support/capybara_ext.rb +0 -30
  97. data/lib/spree/testing_support/controller_requests.rb +0 -82
  98. data/lib/spree/testing_support/dummy_app/migrations.rb +0 -3
  99. data/lib/spree/testing_support/dummy_app.rb +7 -14
  100. data/lib/spree/testing_support/factories/order_factory.rb +0 -1
  101. data/lib/spree/testing_support/factories/refund_factory.rb +0 -1
  102. data/lib/spree/testing_support/order_walkthrough.rb +0 -3
  103. data/lib/spree/testing_support/preferences.rb +0 -25
  104. data/lib/tasks/upgrade.rake +7 -5
  105. data/solidus_core.gemspec +2 -5
  106. metadata +8 -49
  107. data/app/mailers/spree/test_mailer.rb +0 -13
  108. data/app/models/concerns/spree/user_payment_source.rb +0 -26
  109. data/app/models/spree/calculator/free_shipping.rb +0 -22
  110. data/app/models/spree/calculator/percent_per_item.rb +0 -51
  111. data/app/models/spree/calculator/price_sack.rb +0 -28
  112. data/app/models/spree/gateway/bogus.rb +0 -13
  113. data/app/models/spree/gateway/bogus_simple.rb +0 -13
  114. data/app/models/spree/gateway.rb +0 -14
  115. data/app/models/spree/order/checkout.rb +0 -244
  116. data/app/models/spree/order_capturing.rb +0 -50
  117. data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
  118. data/lib/generators/spree/install/install_generator.rb +0 -15
  119. data/lib/solidus/migrations/rename_gateways.rb +0 -41
  120. data/lib/spree/core/current_store.rb +0 -24
  121. data/lib/spree/paranoia_deprecations.rb +0 -41
  122. data/lib/spree/promo/environment.rb +0 -12
  123. data/lib/spree/testing_support/bar_ability.rb +0 -19
  124. data/lib/tasks/core.rake +0 -104
  125. data/lib/tasks/email.rake +0 -12
  126. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
  127. data/lib/tasks/migrations/migrate_address_names.rake +0 -158
  128. data/lib/tasks/migrations/migrate_default_billing_addresses_to_address_book.rake +0 -26
  129. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
  130. data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
  131. data/lib/tasks/migrations/rename_gateways.rake +0 -23
  132. data/lib/tasks/order_capturing.rake +0 -27
@@ -28,11 +28,6 @@ module Spree
28
28
  validates :amount, numericality: true
29
29
  validates :promotion_code, presence: true, if: :require_promotion_code?
30
30
 
31
- # We need to use `after_commit` here because otherwise it's too early to
32
- # tell if any repair is needed.
33
- after_commit :repair_adjustments_associations_on_create, on: [:create]
34
- after_commit :repair_adjustments_associations_on_destroy, on: [:destroy]
35
-
36
31
  scope :not_finalized, -> { where(finalized: false) }
37
32
  scope :finalized, -> { where(finalized: true) }
38
33
  scope :cancellation, -> { where(source_type: 'Spree::UnitCancel') }
@@ -135,15 +130,6 @@ module Spree
135
130
  amount
136
131
  end
137
132
 
138
- def update!(*args)
139
- if args.empty?
140
- Spree::Deprecation.warn "Calling adjustment.update! with no arguments to recalculate amounts and eligibility is deprecated, since it conflicts with AR::Base#update! Please use adjustment.recalculate instead"
141
- recalculate
142
- else
143
- super
144
- end
145
- end
146
-
147
133
  # Calculates based on attached promotion (if this is a promotion
148
134
  # adjustment) whether this promotion is still eligible.
149
135
  # @api private
@@ -161,19 +147,5 @@ module Spree
161
147
  def require_promotion_code?
162
148
  promotion? && !source.promotion.apply_automatically && source.promotion.codes.any?
163
149
  end
164
-
165
- def repair_adjustments_associations_on_create
166
- if adjustable.adjustments.loaded? && !adjustable.adjustments.include?(self) && !destroyed?
167
- Spree::Deprecation.warn("Adjustment #{id} was not added to #{adjustable.class} #{adjustable.id}. Add adjustments via `adjustable.adjustments.create!`. Partial call stack: #{caller.select { |line| line =~ %r(/(app|spec)/) }}.", caller)
168
- adjustable.adjustments.proxy_association.add_to_target(self)
169
- end
170
- end
171
-
172
- def repair_adjustments_associations_on_destroy
173
- if adjustable.adjustments.loaded? && adjustable.adjustments.include?(self)
174
- Spree::Deprecation.warn("Adjustment #{id} was not removed from #{adjustable.class} #{adjustable.id}. Remove adjustments via `adjustable.adjustments.destroy`. Partial call stack: #{caller.select { |line| line =~ %r(/(app|spec)/) }}.", caller)
175
- adjustable.adjustments.proxy_association.target.delete(self)
176
- end
177
- end
178
150
  end
179
151
  end
@@ -1,62 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'spree/preferences/persistable'
4
-
5
3
  class Spree::Base < ActiveRecord::Base
6
4
  include Spree::Core::Permalinks
7
5
  include Spree::RansackableAttributes
8
6
 
9
- def self.preference(*args)
10
- Spree::Deprecation.warn <<~WARN
11
- #{name} has a `preferences` column, but does not explicitly (de)serialize this column.
12
- In order to make #{name} work with future versions of Solidus (and Rails), please add the
13
- following line to your class:
14
- ```
15
- class #{name}
16
- include Spree::Preferences::Persistable
17
- ...
18
- end
19
- ```
20
- WARN
21
- include Spree::Preferences::Persistable
22
- preference(*args)
23
- end
24
-
25
- def preferences
26
- value = read_attribute(:preferences)
27
- if !value.is_a?(Hash)
28
- Spree::Deprecation.warn <<~WARN
29
- #{self.class.name} has a `preferences` column, but does not explicitly (de)serialize this column.
30
- In order to make #{self.class.name} work with future versions of Solidus (and Rails), please add the
31
- following lines to your class:
32
- ```
33
- class #{self.class.name}
34
- include Spree::Preferences::Persistable
35
- ...
36
- end
37
- ```
38
- WARN
39
- self.class.include Spree::Preferences::Persistable
40
-
41
- ActiveRecord::Type::Serialized.new(
42
- ActiveRecord::Type::Text.new,
43
- ActiveRecord::Coders::YAMLColumn.new(:preferences, Hash)
44
- ).deserialize(value)
45
- else
46
- value
47
- end
48
- end
49
-
50
- if Kaminari.config.page_method_name != :page
51
- def self.page(num)
52
- Spree::Deprecation.warn \
53
- "Redefining Spree::Base.page for a different kaminari page name is better done inside " \
54
- "your own app. This will be removed from future versions of solidus."
55
-
56
- send Kaminari.config.page_method_name, num
57
- end
58
- end
59
-
60
7
  self.abstract_class = true
61
8
 
62
9
  # Provides a scope that should be included any time products
@@ -9,11 +9,6 @@ module Spree
9
9
  preference :max_items, :integer, default: 0
10
10
  preference :currency, :string, default: ->{ Spree::Config[:currency] }
11
11
 
12
- def self.available?(_object)
13
- Spree::Deprecation.warn('Spree::Calculator::FlexiRate::available is DEPRECATED. Use the instance method instead.')
14
- true
15
- end
16
-
17
12
  def compute(object)
18
13
  items_count = object.quantity
19
14
  items_count = [items_count, preferred_max_items].min unless preferred_max_items.zero?
@@ -31,13 +31,6 @@ module Spree
31
31
 
32
32
  ###################################################################
33
33
 
34
- # Returns all calculators applicable for kind of work
35
- def self.calculators
36
- Spree::Deprecation.warn("Calling .calculators is deprecated. Please access through Rails.application.config.spree.calculators")
37
-
38
- Spree::Config.environment.calculators
39
- end
40
-
41
34
  def to_s
42
35
  self.class.name.titleize.gsub("Calculator\/", "")
43
36
  end
@@ -11,12 +11,7 @@ module Spree
11
11
  self.whitelisted_ransackable_attributes = %w[name]
12
12
 
13
13
  def self.default
14
- if Spree::Config.default_country_id
15
- Spree::Deprecation.warn("Setting your default country via its ID is deprecated. Please set your default country via the `default_country_iso` setting.", caller)
16
- find_by(id: Spree::Config.default_country_id) || find_by!(iso: Spree::Config.default_country_iso)
17
- else
18
- find_by!(iso: Spree::Config.default_country_iso)
19
- end
14
+ find_by!(iso: Spree::Config.default_country_iso)
20
15
  end
21
16
 
22
17
  def self.available(restrict_to_zone: Spree::Config[:checkout_zone])
@@ -21,11 +21,6 @@ module Spree
21
21
 
22
22
  scope :with_payment_profile, -> { where('gateway_customer_profile_id IS NOT NULL') }
23
23
 
24
- def self.default
25
- Spree::Deprecation.warn("CreditCard.default is deprecated. Please use Spree::Wallet instead.")
26
- joins(:wallet_payment_sources).where(spree_wallet_payment_sources: { default: true })
27
- end
28
-
29
24
  # needed for some of the ActiveMerchant gateways (eg. SagePay)
30
25
  alias_attribute :brand, :cc_type
31
26
 
@@ -46,28 +41,6 @@ module Spree
46
41
  'laser' => /^(6304|6706|6709|6771(?!89))\d{8}(\d{4}|\d{6,7})?$/
47
42
  }.freeze
48
43
 
49
- def default
50
- Spree::Deprecation.warn("CreditCard#default is deprecated. Please use user.wallet.default_wallet_payment_source instead.", caller)
51
- return false if user.nil?
52
- user.wallet.default_wallet_payment_source.try!(:payment_source) == self
53
- end
54
-
55
- def default=(set_as_default)
56
- Spree::Deprecation.warn("CreditCard#default= is deprecated. Please use user.wallet.default_wallet_payment_source= instead.", caller)
57
- if user.nil?
58
- raise "Cannot set 'default' on a credit card without a user"
59
- elsif set_as_default # setting this card as default
60
- wallet_payment_source = user.wallet.add(self)
61
- user.wallet.default_wallet_payment_source = wallet_payment_source
62
- true
63
- else # removing this card as default
64
- if user.wallet.default_wallet_payment_source.try!(:payment_source) == self
65
- user.wallet.default_wallet_payment_source = nil
66
- end
67
- false
68
- end
69
- end
70
-
71
44
  def address_attributes=(attributes)
72
45
  self.address = Spree::Address.immutable_merge(address, attributes)
73
46
  end
@@ -20,8 +20,7 @@ module Spree
20
20
  self.whitelisted_ransackable_attributes = ['number']
21
21
 
22
22
  extend DisplayMoney
23
- money_methods :pre_tax_total, :total, :total_excluding_vat, :amount
24
- deprecate display_pre_tax_total: :display_total_excluding_vat, deprecator: Spree::Deprecation
23
+ money_methods :total, :total_excluding_vat, :amount
25
24
 
26
25
  delegate :currency, to: :order
27
26
  delegate :id, to: :order, prefix: true, allow_nil: true
@@ -33,8 +32,6 @@ module Spree
33
32
  def total_excluding_vat
34
33
  return_items.sum(&:total_excluding_vat)
35
34
  end
36
- alias pre_tax_total total_excluding_vat
37
- deprecate pre_tax_total: :total_excluding_vat, deprecator: Spree::Deprecation
38
35
 
39
36
  def amount
40
37
  return_items.sum(:amount)
@@ -3,12 +3,5 @@
3
3
  module Spree
4
4
  class Image < Asset
5
5
  include ::Spree::Config.image_attachment_module
6
-
7
- def mini_url
8
- Spree::Deprecation.warn(
9
- 'Spree::Image#mini_url is DEPRECATED. Use Spree::Image#url(:mini) instead.'
10
- )
11
- url(:mini)
12
- end
13
6
  end
14
7
  end
@@ -60,27 +60,6 @@ module Spree
60
60
 
61
61
  include ::Spree::Config.state_machines.inventory_unit
62
62
 
63
- # Updates the given inventory units to not be pending.
64
- #
65
- # @deprecated do not use this, use
66
- # Spree::Stock::InventoryUnitsFinalizer.new(inventory_units).run!
67
- # @param inventory_units [<Spree::InventoryUnit>] the inventory to be
68
- # finalized
69
- def self.finalize_units!(inventory_units)
70
- Spree::Deprecation.warn(
71
- "inventory_units.finalize_units!(inventory_units) is deprecated. Please
72
- use Spree::Stock::InventoryUnitsFinalizer.new(inventory_units).run!",
73
- caller
74
- )
75
-
76
- inventory_units.map do |iu|
77
- iu.update_columns(
78
- pending: false,
79
- updated_at: Time.current
80
- )
81
- end
82
- end
83
-
84
63
  # @return [Spree::StockItem] the first stock item from this shipment's
85
64
  # stock location that is associated with this inventory unit's variant
86
65
  def find_stock_item
@@ -10,8 +10,6 @@ module Spree
10
10
  # promotion system.
11
11
  #
12
12
  class LineItem < Spree::Base
13
- class CurrencyMismatch < StandardError; end
14
-
15
13
  belongs_to :order, class_name: "Spree::Order", inverse_of: :line_items, touch: true, optional: true
16
14
  belongs_to :variant, -> { with_discarded }, class_name: "Spree::Variant", inverse_of: :line_items, optional: true
17
15
  belongs_to :tax_category, class_name: "Spree::TaxCategory", optional: true
@@ -55,20 +53,11 @@ module Spree
55
53
  end
56
54
  alias subtotal amount
57
55
 
58
- # @return [BigDecimal] the amount of this line item, taking into
59
- # consideration line item promotions.
60
- def discounted_amount
61
- amount + promo_total
62
- end
63
- deprecate discounted_amount: :total_before_tax, deprecator: Spree::Deprecation
64
-
65
56
  # @return [BigDecimal] the amount of this line item, taking into
66
57
  # consideration all its adjustments.
67
58
  def total
68
59
  amount + adjustment_total
69
60
  end
70
- alias final_amount total
71
- deprecate final_amount: :total, deprecator: Spree::Deprecation
72
61
 
73
62
  # @return [BigDecimal] the amount of this item, taking into consideration
74
63
  # all non-tax adjustments.
@@ -81,20 +70,11 @@ module Spree
81
70
  def total_excluding_vat
82
71
  total_before_tax - included_tax_total
83
72
  end
84
- alias pre_tax_amount total_excluding_vat
85
- deprecate pre_tax_amount: :total_excluding_vat, deprecator: Spree::Deprecation
86
73
 
87
74
  extend Spree::DisplayMoney
88
- money_methods :amount, :discounted_amount, :price,
75
+ money_methods :amount, :price,
89
76
  :included_tax_total, :additional_tax_total,
90
77
  :total, :total_before_tax, :total_excluding_vat
91
- deprecate display_discounted_amount: :display_total_before_tax, deprecator: Spree::Deprecation
92
- alias display_final_amount display_total
93
- deprecate display_final_amount: :display_total, deprecator: Spree::Deprecation
94
- alias display_pre_tax_amount display_total_excluding_vat
95
- deprecate display_pre_tax_amount: :display_total_excluding_vat, deprecator: Spree::Deprecation
96
- alias discounted_money display_discounted_amount
97
- deprecate discounted_money: :display_total_before_tax, deprecator: Spree::Deprecation
98
78
 
99
79
  # @return [Spree::Money] the price of this line item
100
80
  alias money_price display_price
@@ -103,8 +83,6 @@ module Spree
103
83
 
104
84
  # @return [Spree::Money] the amount of this line item
105
85
  alias money display_amount
106
- alias display_total display_amount
107
- deprecate display_total: :display_amount, deprecator: Spree::Deprecation
108
86
 
109
87
  # Sets price from a `Spree::Money` object
110
88
  #
@@ -112,9 +90,6 @@ module Spree
112
90
  def money_price=(money)
113
91
  if !money
114
92
  self.price = nil
115
- elsif money.currency.iso_code != currency && Spree::Config.raise_with_invalid_currency
116
- line_item_errors = ActiveModel::Errors.new(self)
117
- raise CurrencyMismatch, line_item_errors.generate_message(:price, :does_not_match_order_currency, locale: :en)
118
93
  else
119
94
  self.price_currency = money.currency.iso_code
120
95
  self.price = money.to_d
@@ -156,12 +131,6 @@ module Spree
156
131
  Spree::Config.pricing_options_class.from_line_item(self)
157
132
  end
158
133
 
159
- def currency=(_currency)
160
- Spree::Deprecation.warn 'Spree::LineItem#currency= is deprecated ' \
161
- 'and will take no effect.',
162
- caller
163
- end
164
-
165
134
  private
166
135
 
167
136
  # Sets the quantity to zero if it is nil or less than zero.
@@ -177,25 +146,13 @@ module Spree
177
146
  set_pricing_attributes
178
147
  end
179
148
 
180
- # Set price, cost_price and currency. This method used to be called #copy_price, but actually
181
- # did more than just setting the price, hence renamed to #set_pricing_attributes
149
+ # Set price, cost_price and currency.
182
150
  def set_pricing_attributes
183
- # If the legacy method #copy_price has been overridden, handle that gracefully
184
- return handle_copy_price_override if respond_to?(:copy_price)
185
-
186
151
  self.cost_price ||= variant.cost_price
187
152
  self.money_price = variant.price_for(pricing_options) if price.nil?
188
153
  true
189
154
  end
190
155
 
191
- def handle_copy_price_override
192
- copy_price
193
- Spree::Deprecation.warn 'You have overridden Spree::LineItem#copy_price. ' \
194
- 'This method is now called Spree::LineItem#set_pricing_attributes. ' \
195
- 'Please adjust your override.',
196
- caller
197
- end
198
-
199
156
  def update_inventory
200
157
  if (saved_changes? || target_shipment.present?) && order.has_checkout_step?("delivery")
201
158
  Spree::OrderInventory.new(order, self).verify(target_shipment)
@@ -50,18 +50,13 @@ module Spree
50
50
  go_to_state :confirm
51
51
  end
52
52
 
53
- ransack_alias :bill_address_firstname_or_lastname, :bill_address_firstname_or_bill_address_lastname
54
53
  self.whitelisted_ransackable_associations = %w[shipments user order_promotions promotions bill_address ship_address line_items]
55
- self.whitelisted_ransackable_attributes = %w[bill_address_firstname_or_lastname completed_at created_at email number state payment_state shipment_state total store_id]
54
+ self.whitelisted_ransackable_attributes = %w[bill_address_name completed_at created_at email number state payment_state shipment_state total store_id]
56
55
 
57
56
  attr_reader :coupon_code
58
57
  attr_accessor :temporary_address
59
58
 
60
59
  attr_accessor :temporary_payment_source
61
- alias_method :temporary_credit_card, :temporary_payment_source
62
- alias_method :temporary_credit_card=, :temporary_payment_source=
63
- deprecate temporary_credit_card: :temporary_payment_source, deprecator: Spree::Deprecation
64
- deprecate :temporary_credit_card= => :temporary_payment_source=, deprecator: Spree::Deprecation
65
60
 
66
61
  # Customer info
67
62
  belongs_to :user, class_name: Spree::UserClassHandle.new, optional: true
@@ -147,14 +142,9 @@ module Spree
147
142
  find_by! number: value
148
143
  end
149
144
 
150
- delegate :name, :firstname, :lastname, to: :bill_address, prefix: true, allow_nil: true
151
- alias_method :billing_firstname, :bill_address_firstname
152
- alias_method :billing_lastname, :bill_address_lastname
145
+ delegate :name, to: :bill_address, prefix: true, allow_nil: true
153
146
  alias_method :billing_name, :bill_address_name
154
147
 
155
- class_attribute :update_hooks
156
- self.update_hooks = Set.new
157
-
158
148
  class_attribute :line_item_comparison_hooks
159
149
  self.line_item_comparison_hooks = Set.new
160
150
 
@@ -190,15 +180,6 @@ module Spree
190
180
  where.not(state: 'canceled')
191
181
  end
192
182
 
193
- # Use this method in other gems that wish to register their own custom logic
194
- # that should be called after Order#update
195
- def self.register_update_hook(hook)
196
- Spree::Deprecation.warn \
197
- "Spree::Order::update_hooks are deprecated. Please remove them " \
198
- "and subscribe to `order_recalculated` and/or `order_finalized` event instead", caller(1)
199
- update_hooks.add(hook)
200
- end
201
-
202
183
  # Use this method in other gems that wish to register their own custom logic
203
184
  # that should be called when determining if two line items are equal.
204
185
  def self.register_line_item_comparison_hook(hook)
@@ -210,12 +191,6 @@ module Spree
210
191
  line_items.sum(&:amount)
211
192
  end
212
193
 
213
- # Sum of all line item amounts after promotions, before added tax
214
- def discounted_item_amount
215
- line_items.to_a.sum(&:discounted_amount)
216
- end
217
- deprecate discounted_item_amount: :item_total_before_tax, deprecator: Spree::Deprecation
218
-
219
194
  def item_total_before_tax
220
195
  line_items.to_a.sum(&:total_before_tax)
221
196
  end
@@ -224,8 +199,6 @@ module Spree
224
199
  def item_total_excluding_vat
225
200
  line_items.to_a.sum(&:total_excluding_vat)
226
201
  end
227
- alias pre_tax_item_amount item_total_excluding_vat
228
- deprecate pre_tax_item_amount: :item_total_excluding_vat, deprecator: Spree::Deprecation
229
202
 
230
203
  def currency
231
204
  self[:currency] || Spree::Config[:currency]
@@ -256,11 +229,6 @@ module Spree
256
229
  total > 0
257
230
  end
258
231
 
259
- def confirmation_required?
260
- true
261
- end
262
- deprecate :confirmation_required?, deprecator: Spree::Deprecation
263
-
264
232
  def backordered?
265
233
  shipments.any?(&:backordered?)
266
234
  end
@@ -282,15 +250,6 @@ module Spree
282
250
  updater.update
283
251
  end
284
252
 
285
- def update!(*args)
286
- if args.empty?
287
- Spree::Deprecation.warn "Calling order.update! with no arguments as a way to invoke the OrderUpdater is deprecated, since it conflicts with AR::Base#update! Please use order.recalculate instead"
288
- recalculate
289
- else
290
- super
291
- end
292
- end
293
-
294
253
  def assign_billing_to_shipping_address
295
254
  self.ship_address = bill_address if bill_address
296
255
  true
@@ -336,14 +295,7 @@ module Spree
336
295
  assign_attributes(attrs_to_set)
337
296
  end
338
297
 
339
- def generate_order_number(options = nil)
340
- if options
341
- Spree::Deprecation.warn \
342
- "Passing options to Order#generate_order_number is deprecated. " \
343
- "Please add your own instance of the order number generator " \
344
- "with your options (#{options.inspect}) and store it as " \
345
- "Spree::Config.order_number_generator in your stores config."
346
- end
298
+ def generate_order_number
347
299
  self.number ||= Spree::Config.order_number_generator.generate
348
300
  end
349
301
 
@@ -384,14 +336,6 @@ module Spree
384
336
  }
385
337
  end
386
338
 
387
- # Creates new tax charges if there are any applicable rates. If prices already
388
- # include taxes then price adjustments are created instead.
389
- # @deprecated This now happens during #recalculate
390
- def create_tax_charge!
391
- recalculate
392
- end
393
- deprecate create_tax_charge!: :recalculate, deprecator: Spree::Deprecation
394
-
395
339
  def reimbursement_total
396
340
  reimbursements.sum(:total)
397
341
  end
@@ -450,18 +394,10 @@ module Spree
450
394
 
451
395
  updater.update_shipment_state
452
396
  save!
453
- updater.run_hooks if update_hooks.any?
454
397
 
455
398
  touch :completed_at
456
399
 
457
400
  Spree::Event.fire 'order_finalized', order: self
458
-
459
- if method(:deliver_order_confirmation_email).owner != self.class
460
- Spree::Deprecation.warn \
461
- "deliver_order_confirmation_email has been deprecated and moved to " \
462
- "Spree::MailerSubscriber#order_finalized, please move there any customizations.",
463
- caller(1)
464
- end
465
401
  end
466
402
 
467
403
  def fulfill!
@@ -470,16 +406,6 @@ module Spree
470
406
  save!
471
407
  end
472
408
 
473
- def deliver_order_confirmation_email
474
- Spree::Deprecation.warn \
475
- "deliver_order_confirmation_email has been deprecated and moved to " \
476
- "Spree::MailerSubscriber#order_finalized.",
477
- caller(1)
478
-
479
- Spree::Config.order_mailer_class.confirm_email(order).deliver_later
480
- order.update_column(:confirmation_delivered, true)
481
- end
482
-
483
409
  # Helper methods for checkout steps
484
410
  def paid?
485
411
  %w(paid credit_owed).include?(payment_state)
@@ -523,26 +449,6 @@ module Spree
523
449
  recalculate
524
450
  end
525
451
 
526
- alias_method :has_step?, :has_checkout_step?
527
- deprecate has_step?: :has_checkout_step?, deprecator: Spree::Deprecation
528
-
529
- def state_changed(name)
530
- state = "#{name}_state"
531
- if persisted?
532
- old_state = send("#{state}_was")
533
- new_state = send(state)
534
- unless old_state == new_state
535
- state_changes.create(
536
- previous_state: old_state,
537
- next_state: new_state,
538
- name: name,
539
- user_id: user_id
540
- )
541
- end
542
- end
543
- end
544
- deprecate :state_changed, deprecator: Spree::Deprecation
545
-
546
452
  def coupon_code=(code)
547
453
  @coupon_code = begin
548
454
  code.strip.downcase
@@ -584,7 +490,7 @@ module Spree
584
490
  raise CannotRebuildShipments.new(I18n.t('spree.cannot_rebuild_shipments_shipments_not_pending'))
585
491
  else
586
492
  shipments.destroy_all
587
- self.shipments = Spree::Config.stock.coordinator_class.new(self).shipments
493
+ shipments.push(*Spree::Config.stock.coordinator_class.new(self).shipments)
588
494
  end
589
495
  end
590
496
 
@@ -599,8 +505,6 @@ module Spree
599
505
  Spree::PromotionHandler::Shipping.new(self).activate
600
506
  recalculate
601
507
  end
602
- alias_method :apply_free_shipping_promotions, :apply_shipping_promotions
603
- deprecate apply_free_shipping_promotions: :apply_shipping_promotions, deprecator: Spree::Deprecation
604
508
 
605
509
  # Clean shipments and make order back to address state
606
510
  #
@@ -633,12 +537,6 @@ module Spree
633
537
  bill_address == ship_address
634
538
  end
635
539
 
636
- # @deprecated This now happens during #recalculate
637
- def set_shipments_cost
638
- recalculate
639
- end
640
- deprecate set_shipments_cost: :recalculate, deprecator: Spree::Deprecation
641
-
642
540
  def is_risky?
643
541
  payments.risky.count > 0
644
542
  end
@@ -669,11 +567,6 @@ module Spree
669
567
  payments.offset_payment.exists? # how old versions of spree stored refunds
670
568
  end
671
569
 
672
- def token
673
- Spree::Deprecation.warn("Spree::Order#token is DEPRECATED, please use #guest_token instead.", caller)
674
- guest_token
675
- end
676
-
677
570
  def tax_total
678
571
  additional_tax_total + included_tax_total
679
572
  end
@@ -778,11 +671,6 @@ module Spree
778
671
  end
779
672
  end
780
673
 
781
- alias_method :assign_default_user_addresses!, :assign_default_user_addresses
782
- deprecate assign_default_user_addresses!: :assign_default_user_addresses, deprecator: Spree::Deprecation
783
- alias_method :assign_default_addresses!, :assign_default_user_addresses
784
- deprecate assign_default_addresses!: :assign_default_user_addresses, deprecator: Spree::Deprecation
785
-
786
674
  def persist_user_address!
787
675
  if !temporary_address && user && user.respond_to?(:persist_order_address) && bill_address_id
788
676
  user.persist_order_address(self)
@@ -794,8 +682,6 @@ module Spree
794
682
  add_payment_sources_to_wallet_class.new(self).
795
683
  add_to_wallet
796
684
  end
797
- alias_method :persist_user_credit_card, :add_payment_sources_to_wallet
798
- deprecate persist_user_credit_card: :add_payment_sources_to_wallet, deprecator: Spree::Deprecation
799
685
 
800
686
  def add_default_payment_from_wallet
801
687
  builder = Spree::Config.default_payment_builder_class.new(self)
@@ -810,8 +696,6 @@ module Spree
810
696
  end
811
697
  end
812
698
  end
813
- alias_method :assign_default_credit_card, :add_default_payment_from_wallet
814
- deprecate assign_default_credit_card: :add_default_payment_from_wallet, deprecator: Spree::Deprecation
815
699
 
816
700
  def record_ip_address(ip_address)
817
701
  if new_record?
@@ -857,23 +741,6 @@ module Spree
857
741
  end
858
742
  end
859
743
 
860
- # In case a existing credit card is provided it needs to build the payment
861
- # attributes from scratch so we can set the amount. example payload:
862
- #
863
- # {
864
- # "order": {
865
- # "existing_card": "2"
866
- # }
867
- # }
868
- #
869
- def update_params_payment_source
870
- Spree::Deprecation.warn('update_params_payment_source is deprecated. Please use set_payment_parameters_amount instead.', caller)
871
- if @updating_params[:order] && (@updating_params[:order][:payments_attributes] || @updating_params[:order][:existing_card])
872
- @updating_params[:order][:payments_attributes] ||= [{}]
873
- @updating_params[:order][:payments_attributes].first[:amount] = total
874
- end
875
- end
876
-
877
744
  def associate_store
878
745
  self.store ||= Spree::Store.default
879
746
  end