solidus_core 2.11.1 → 3.0.0.rc2

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.

Files changed (198) 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.rb +7 -162
  12. data/app/models/spree/address/name.rb +2 -20
  13. data/app/models/spree/adjustment.rb +0 -28
  14. data/app/models/spree/base.rb +1 -12
  15. data/app/models/spree/calculator.rb +4 -11
  16. data/app/models/spree/calculator/flexi_rate.rb +0 -5
  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 +3 -136
  24. data/app/models/spree/order/payments.rb +2 -2
  25. data/app/models/spree/order_cancellations.rb +4 -24
  26. data/app/models/spree/order_merger.rb +1 -1
  27. data/app/models/spree/order_updater.rb +2 -11
  28. data/app/models/spree/payment.rb +10 -6
  29. data/app/models/spree/payment/cancellation.rb +3 -22
  30. data/app/models/spree/payment_create.rb +1 -13
  31. data/app/models/spree/payment_method.rb +2 -103
  32. data/app/models/spree/payment_method/credit_card.rb +1 -3
  33. data/app/models/spree/payment_source.rb +2 -2
  34. data/app/models/spree/product.rb +8 -41
  35. data/app/models/spree/product/scopes.rb +0 -28
  36. data/app/models/spree/promotion.rb +2 -6
  37. data/app/models/spree/promotion/actions/create_adjustment.rb +0 -3
  38. data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -3
  39. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
  40. data/app/models/spree/promotion/rules/taxon.rb +2 -15
  41. data/app/models/spree/promotion_action.rb +2 -9
  42. data/app/models/spree/promotion_code/batch_builder.rb +0 -14
  43. data/app/models/spree/refund.rb +3 -47
  44. data/app/models/spree/reimbursement.rb +3 -41
  45. data/app/models/spree/reimbursement_performer.rb +2 -8
  46. data/app/models/spree/reimbursement_type/credit.rb +1 -4
  47. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +1 -2
  48. data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
  49. data/app/models/spree/return_authorization.rb +1 -4
  50. data/app/models/spree/return_item.rb +1 -19
  51. data/app/models/spree/shipment.rb +1 -54
  52. data/app/models/spree/shipping_method.rb +1 -26
  53. data/app/models/spree/shipping_rate.rb +0 -2
  54. data/app/models/spree/state.rb +0 -4
  55. data/app/models/spree/stock/availability_validator.rb +2 -2
  56. data/app/models/spree/stock/inventory_validator.rb +2 -2
  57. data/app/models/spree/stock/simple_coordinator.rb +0 -14
  58. data/app/models/spree/stock/splitter/base.rb +2 -7
  59. data/app/models/spree/stock_item.rb +1 -7
  60. data/app/models/spree/store.rb +0 -12
  61. data/app/models/spree/store_credit_category.rb +0 -32
  62. data/app/models/spree/tax_calculator/shipping_rate.rb +1 -12
  63. data/app/models/spree/tax_rate.rb +0 -27
  64. data/app/models/spree/taxon.rb +0 -11
  65. data/app/models/spree/taxon/active_storage_attachment.rb +0 -6
  66. data/app/models/spree/taxon/paperclip_attachment.rb +0 -4
  67. data/app/models/spree/user_address.rb +0 -5
  68. data/app/models/spree/variant.rb +1 -45
  69. data/config/locales/en.yml +0 -8
  70. data/db/migrate/20210122110141_add_name_to_spree_addresses.rb +13 -0
  71. data/lib/generators/solidus/install/install_generator.rb +12 -1
  72. data/lib/generators/solidus/install/templates/config/initializers/spree.rb.tt +3 -39
  73. data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
  74. data/lib/generators/spree/dummy/templates/rails/database.yml +6 -1
  75. data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
  76. data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
  77. data/lib/spree/app_configuration.rb +7 -66
  78. data/lib/spree/core.rb +10 -12
  79. data/lib/spree/core/class_constantizer.rb +2 -0
  80. data/lib/spree/core/controller_helpers/auth.rb +1 -14
  81. data/lib/spree/core/controller_helpers/order.rb +2 -22
  82. data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
  83. data/lib/spree/core/controller_helpers/pricing.rb +0 -8
  84. data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
  85. data/lib/spree/core/engine.rb +6 -42
  86. data/lib/spree/core/environment_extension.rb +0 -9
  87. data/lib/spree/core/product_filters.rb +0 -40
  88. data/lib/spree/core/role_configuration.rb +0 -14
  89. data/lib/spree/core/search/base.rb +0 -26
  90. data/lib/spree/core/state_machines.rb +2 -11
  91. data/lib/spree/core/version.rb +1 -1
  92. data/lib/spree/event.rb +0 -31
  93. data/lib/spree/event/configuration.rb +0 -5
  94. data/lib/spree/event/subscriber.rb +0 -18
  95. data/lib/spree/event/subscriber_registry.rb +3 -1
  96. data/lib/spree/i18n.rb +0 -22
  97. data/lib/spree/money.rb +3 -18
  98. data/lib/spree/permitted_attributes.rb +2 -53
  99. data/lib/spree/testing_support.rb +31 -0
  100. data/lib/spree/testing_support/capybara_ext.rb +0 -30
  101. data/lib/spree/testing_support/controller_requests.rb +0 -82
  102. data/lib/spree/testing_support/dummy_app.rb +10 -16
  103. data/lib/spree/testing_support/dummy_app/mailer_previews/test_mailer_preview.rb +4 -0
  104. data/lib/spree/testing_support/dummy_app/migrations.rb +0 -3
  105. data/lib/spree/testing_support/factories.rb +8 -4
  106. data/lib/spree/testing_support/factories/address_factory.rb +6 -2
  107. data/lib/spree/testing_support/factories/adjustment_factory.rb +10 -5
  108. data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +5 -0
  109. data/lib/spree/testing_support/factories/calculator_factory.rb +5 -0
  110. data/lib/spree/testing_support/factories/carton_factory.rb +7 -2
  111. data/lib/spree/testing_support/factories/country_factory.rb +5 -0
  112. data/lib/spree/testing_support/factories/credit_card_factory.rb +5 -0
  113. data/lib/spree/testing_support/factories/customer_return_factory.rb +8 -3
  114. data/lib/spree/testing_support/factories/image_factory.rb +5 -0
  115. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +9 -4
  116. data/lib/spree/testing_support/factories/line_item_factory.rb +7 -2
  117. data/lib/spree/testing_support/factories/option_type_factory.rb +8 -0
  118. data/lib/spree/testing_support/factories/option_value_factory.rb +5 -0
  119. data/lib/spree/testing_support/factories/order_factory.rb +11 -7
  120. data/lib/spree/testing_support/factories/order_promotion_factory.rb +7 -2
  121. data/lib/spree/testing_support/factories/payment_factory.rb +9 -4
  122. data/lib/spree/testing_support/factories/payment_method_factory.rb +5 -0
  123. data/lib/spree/testing_support/factories/price_factory.rb +6 -1
  124. data/lib/spree/testing_support/factories/product_factory.rb +10 -5
  125. data/lib/spree/testing_support/factories/product_option_type_factory.rb +7 -2
  126. data/lib/spree/testing_support/factories/product_property_factory.rb +7 -2
  127. data/lib/spree/testing_support/factories/promotion_category_factory.rb +5 -0
  128. data/lib/spree/testing_support/factories/promotion_code_factory.rb +7 -2
  129. data/lib/spree/testing_support/factories/promotion_factory.rb +7 -2
  130. data/lib/spree/testing_support/factories/property_factory.rb +5 -0
  131. data/lib/spree/testing_support/factories/refund_factory.rb +7 -3
  132. data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
  133. data/lib/spree/testing_support/factories/reimbursement_factory.rb +6 -1
  134. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +5 -0
  135. data/lib/spree/testing_support/factories/return_authorization_factory.rb +8 -3
  136. data/lib/spree/testing_support/factories/return_item_factory.rb +8 -3
  137. data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
  138. data/lib/spree/testing_support/factories/role_factory.rb +5 -0
  139. data/lib/spree/testing_support/factories/shipment_factory.rb +9 -3
  140. data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
  141. data/lib/spree/testing_support/factories/shipping_method_factory.rb +8 -3
  142. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +7 -2
  143. data/lib/spree/testing_support/factories/state_factory.rb +7 -1
  144. data/lib/spree/testing_support/factories/stock_item_factory.rb +7 -2
  145. data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -3
  146. data/lib/spree/testing_support/factories/stock_movement_factory.rb +6 -1
  147. data/lib/spree/testing_support/factories/stock_package_factory.rb +7 -2
  148. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +5 -0
  149. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +7 -2
  150. data/lib/spree/testing_support/factories/store_credit_factory.rb +8 -3
  151. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +5 -0
  152. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +5 -0
  153. data/lib/spree/testing_support/factories/store_factory.rb +6 -1
  154. data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -1
  155. data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -3
  156. data/lib/spree/testing_support/factories/taxon_factory.rb +6 -1
  157. data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
  158. data/lib/spree/testing_support/factories/user_factory.rb +8 -3
  159. data/lib/spree/testing_support/factories/variant_factory.rb +9 -4
  160. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +7 -2
  161. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +8 -3
  162. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +7 -2
  163. data/lib/spree/testing_support/factories/zone_factory.rb +7 -2
  164. data/lib/spree/testing_support/factory_bot.rb +68 -0
  165. data/lib/spree/testing_support/order_walkthrough.rb +10 -13
  166. data/lib/spree/testing_support/preferences.rb +0 -25
  167. data/lib/spree/testing_support/sequences.rb +4 -1
  168. data/{app/models → lib}/spree/user_class_handle.rb +0 -0
  169. data/lib/tasks/migrations/migrate_address_names.rake +158 -0
  170. data/lib/tasks/migrations/migrate_default_billing_addresses_to_address_book.rake +38 -0
  171. data/lib/tasks/upgrade.rake +13 -0
  172. data/solidus_core.gemspec +3 -4
  173. metadata +32 -63
  174. data/app/mailers/spree/test_mailer.rb +0 -13
  175. data/app/models/concerns/spree/user_payment_source.rb +0 -26
  176. data/app/models/spree/calculator/free_shipping.rb +0 -21
  177. data/app/models/spree/calculator/percent_per_item.rb +0 -49
  178. data/app/models/spree/calculator/price_sack.rb +0 -27
  179. data/app/models/spree/gateway.rb +0 -14
  180. data/app/models/spree/gateway/bogus.rb +0 -13
  181. data/app/models/spree/gateway/bogus_simple.rb +0 -13
  182. data/app/models/spree/order/checkout.rb +0 -244
  183. data/app/models/spree/order_capturing.rb +0 -50
  184. data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
  185. data/lib/generators/spree/install/install_generator.rb +0 -15
  186. data/lib/solidus/migrations/rename_gateways.rb +0 -41
  187. data/lib/spree/awesome_nested_set_override.rb +0 -44
  188. data/lib/spree/core/current_store.rb +0 -24
  189. data/lib/spree/paranoia_deprecations.rb +0 -41
  190. data/lib/spree/promo/environment.rb +0 -12
  191. data/lib/spree/testing_support/bar_ability.rb +0 -19
  192. data/lib/tasks/core.rake +0 -104
  193. data/lib/tasks/email.rake +0 -11
  194. data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
  195. data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
  196. data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
  197. data/lib/tasks/migrations/rename_gateways.rake +0 -23
  198. data/lib/tasks/order_capturing.rake +0 -27
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_dependency 'spree/calculator'
4
-
5
- module Spree
6
- class Calculator::PriceSack < Calculator
7
- preference :minimal_amount, :decimal, default: 0
8
- preference :normal_amount, :decimal, default: 0
9
- preference :discount_amount, :decimal, default: 0
10
- preference :currency, :string, default: ->{ Spree::Config[:currency] }
11
-
12
- # as object we always get line items, as calculable we have Coupon, ShippingMethod
13
- def compute(object)
14
- if object.is_a?(Array)
15
- base = object.sum { |element| element.respond_to?(:amount) ? element.amount : BigDecimal(element.to_s) }
16
- else
17
- base = object.respond_to?(:amount) ? object.amount : BigDecimal(object.to_s)
18
- end
19
-
20
- if base < preferred_minimal_amount
21
- preferred_normal_amount
22
- else
23
- preferred_discount_amount
24
- end
25
- end
26
- end
27
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- # @deprecated Use Spree::PaymentMethod::CreditCard or Spree::PaymentMethod instead
5
- class Gateway < PaymentMethod::CreditCard
6
- def initialize(*args)
7
- Spree::Deprecation.warn \
8
- "Using Spree::Gateway as parent class of payment methods is deprecated. " \
9
- "Please use Spree::PaymentMethod::CreditCard for credit card based payment methods " \
10
- "or Spree::PaymentMethod for non credit card payment methods instead."
11
- super
12
- end
13
- end
14
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- # @deprecated Use Spree::PaymentMethod::BogusCreditCard instead
5
- class Gateway::Bogus < PaymentMethod::BogusCreditCard
6
- def initialize(*args)
7
- Spree::Deprecation.warn \
8
- 'Spree::Gateway::Bogus is deprecated. ' \
9
- 'Please use Spree::PaymentMethod::BogusCreditCard instead'
10
- super
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- # @deprecated Use Spree::PaymentMethod::SimpleBogusCreditCard instead
5
- class Gateway::BogusSimple < Spree::PaymentMethod::SimpleBogusCreditCard
6
- def initialize(*args)
7
- Spree::Deprecation.warn \
8
- 'Spree::Gateway::BogusSimple is deprecated. ' \
9
- 'Please use Spree::PaymentMethod::SimpleBogusCreditCard instead'
10
- super
11
- end
12
- end
13
- end
@@ -1,244 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree
4
- class Order < Spree::Base
5
- module Checkout
6
- def self.included(klass)
7
- klass.extend ClassMethods
8
- end
9
-
10
- module ClassMethods
11
- attr_accessor :previous_states
12
- attr_writer :next_event_transitions
13
- attr_writer :checkout_steps
14
- attr_writer :removed_transitions
15
-
16
- def checkout_flow(&block)
17
- if block_given?
18
- @checkout_flow = block
19
- define_state_machine!
20
- else
21
- @checkout_flow
22
- end
23
- end
24
-
25
- def define_state_machine!
26
- self.checkout_steps = {}
27
- self.next_event_transitions = []
28
- self.previous_states = [:cart]
29
- self.removed_transitions = []
30
-
31
- # Build the checkout flow using the checkout_flow defined either
32
- # within the Order class, or a decorator for that class.
33
- #
34
- # This method may be called multiple times depending on if the
35
- # checkout_flow is re-defined in a decorator or not.
36
- instance_eval(&checkout_flow)
37
-
38
- klass = self
39
-
40
- # To avoid multiple occurrences of the same transition being defined
41
- # On first definition, state_machines will not be defined
42
- state_machines.clear if respond_to?(:state_machines)
43
- state_machine :state, initial: :cart, use_transactions: false do
44
- klass.next_event_transitions.each { |state| transition(state.merge(on: :next)) }
45
-
46
- # Persist the state on the order
47
- after_transition do |order, transition|
48
- order.state = order.state
49
- order.state_changes.create(
50
- previous_state: transition.from,
51
- next_state: transition.to,
52
- name: 'order',
53
- user_id: order.user_id
54
- )
55
- order.save
56
- end
57
-
58
- event :cancel do
59
- transition to: :canceled, if: :allow_cancel?
60
- end
61
-
62
- event :return do
63
- transition to: :returned, from: [:returned, :complete, :awaiting_return, :canceled], if: :all_inventory_units_returned?
64
- end
65
-
66
- event :resume do
67
- transition to: :resumed, from: :canceled, if: :canceled?
68
- end
69
-
70
- event :authorize_return do
71
- transition to: :awaiting_return
72
- end
73
-
74
- event :complete do
75
- transition to: :complete, from: :confirm
76
- end
77
-
78
- if states[:payment]
79
- event :payment_failed do
80
- transition to: :payment, from: :confirm
81
- end
82
-
83
- after_transition to: :complete, do: :add_payment_sources_to_wallet
84
- before_transition to: :payment, do: :add_default_payment_from_wallet
85
- before_transition to: :payment, do: :ensure_billing_address
86
-
87
- before_transition to: :confirm, do: :add_store_credit_payments
88
-
89
- # see also process_payments_before_complete below which needs to
90
- # be added in the correct sequence.
91
- end
92
-
93
- before_transition from: :cart, do: :ensure_line_items_present
94
-
95
- if states[:address]
96
- before_transition to: :address, do: :assign_default_user_addresses
97
- before_transition from: :address, do: :persist_user_address!
98
- end
99
-
100
- if states[:delivery]
101
- before_transition to: :delivery, do: :ensure_shipping_address
102
- before_transition to: :delivery, do: :create_proposed_shipments
103
- before_transition to: :delivery, do: :ensure_available_shipping_rates
104
- before_transition from: :delivery, do: :apply_shipping_promotions
105
- end
106
-
107
- before_transition to: :resumed, do: :ensure_line_item_variants_are_not_deleted
108
- before_transition to: :resumed, do: :validate_line_item_availability
109
-
110
- # Sequence of before_transition to: :complete
111
- # calls matter so that we do not process payments
112
- # until validations have passed
113
- before_transition to: :complete, do: :validate_line_item_availability
114
- before_transition to: :complete, do: :ensure_promotions_eligible
115
- before_transition to: :complete, do: :ensure_line_item_variants_are_not_deleted
116
- before_transition to: :complete, do: :ensure_inventory_units
117
- if states[:payment]
118
- before_transition to: :complete, do: :process_payments_before_complete
119
- end
120
-
121
- after_transition to: :complete, do: :finalize!
122
- after_transition to: :resumed, do: :after_resume
123
- after_transition to: :canceled, do: :after_cancel
124
-
125
- after_transition from: any - :cart, to: any - [:confirm, :complete] do |order|
126
- order.recalculate
127
- end
128
-
129
- after_transition do |order, transition|
130
- order.logger.debug "Order #{order.number} transitioned from #{transition.from} to #{transition.to} via #{transition.event}"
131
- end
132
-
133
- after_failure do |order, transition|
134
- order.logger.debug "Order #{order.number} halted transition on event #{transition.event} state #{transition.from}: #{order.errors.full_messages.join}"
135
- end
136
- end
137
- end
138
-
139
- def go_to_state(name, options = {})
140
- checkout_steps[name] = options
141
- previous_states.each do |state|
142
- add_transition({ from: state, to: name }.merge(options))
143
- end
144
- if options[:if]
145
- previous_states << name
146
- else
147
- self.previous_states = [name]
148
- end
149
- end
150
-
151
- def insert_checkout_step(name, options = {})
152
- before = options.delete(:before)
153
- after = options.delete(:after) unless before
154
- after = checkout_steps.keys.last unless before || after
155
-
156
- cloned_steps = checkout_steps.clone
157
- cloned_removed_transitions = removed_transitions.clone
158
- checkout_flow do
159
- cloned_steps.each_pair do |key, value|
160
- go_to_state(name, options) if key == before
161
- go_to_state(key, value)
162
- go_to_state(name, options) if key == after
163
- end
164
- cloned_removed_transitions.each do |transition|
165
- remove_transition(transition)
166
- end
167
- end
168
- end
169
-
170
- def remove_checkout_step(name)
171
- cloned_steps = checkout_steps.clone
172
- cloned_removed_transitions = removed_transitions.clone
173
- checkout_flow do
174
- cloned_steps.each_pair do |key, value|
175
- go_to_state(key, value) unless key == name
176
- end
177
- cloned_removed_transitions.each do |transition|
178
- remove_transition(transition)
179
- end
180
- end
181
- end
182
-
183
- def remove_transition(options = {})
184
- removed_transitions << options
185
- next_event_transitions.delete(find_transition(options))
186
- end
187
-
188
- def find_transition(options = {})
189
- return nil if options.nil? || !options.include?(:from) || !options.include?(:to)
190
- next_event_transitions.detect do |transition|
191
- transition[options[:from].to_sym] == options[:to].to_sym
192
- end
193
- end
194
-
195
- def next_event_transitions
196
- @next_event_transitions ||= []
197
- end
198
-
199
- def checkout_steps
200
- @checkout_steps ||= {}
201
- end
202
-
203
- def checkout_step_names
204
- checkout_steps.keys
205
- end
206
-
207
- def add_transition(options)
208
- next_event_transitions << { options.delete(:from) => options.delete(:to) }.merge(options)
209
- end
210
-
211
- def removed_transitions
212
- @removed_transitions ||= []
213
- end
214
- end
215
-
216
- def checkout_steps
217
- steps = self.class.checkout_steps.each_with_object([]) { |(step, options), checkout_steps|
218
- next if options.include?(:if) && !options[:if].call(self)
219
- checkout_steps << step
220
- }.map(&:to_s)
221
- # Ensure there is always a complete step
222
- steps << "complete" unless steps.include?("complete")
223
- steps
224
- end
225
-
226
- def has_checkout_step?(step)
227
- step.present? && checkout_steps.include?(step)
228
- end
229
-
230
- def passed_checkout_step?(step)
231
- has_checkout_step?(step) && checkout_step_index(step) < checkout_step_index(state)
232
- end
233
-
234
- def checkout_step_index(step)
235
- checkout_steps.index(step).to_i
236
- end
237
-
238
- def can_go_to_state?(state)
239
- return false unless has_checkout_step?(self.state) && has_checkout_step?(state)
240
- checkout_step_index(state) > checkout_step_index(self.state)
241
- end
242
- end
243
- end
244
- end
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- class Spree::OrderCapturing
4
- # Allows for prioritizing payment methods in the order to be captured
5
- class_attribute :sorted_payment_method_classes
6
- self.sorted_payment_method_classes = []
7
-
8
- # Allows your store to void unused payments and release auths
9
- class_attribute :void_unused_payments
10
- self.void_unused_payments = false
11
-
12
- class_attribute :failure_handler
13
- self.failure_handler = ->(failures) { raise Spree::OrderCapturingFailures.new(failures.to_json) }
14
-
15
- def initialize(order, sorted_payment_method_classes = nil)
16
- Spree::Deprecation.warn "Spree::OrderCapturing is deprecated and will be removed without replacement. " \
17
- "Please implement your own automated capturing logic in your store."
18
- @order = order
19
- @sorted_payment_method_classes = sorted_payment_method_classes || Spree::OrderCapturing.sorted_payment_method_classes
20
- end
21
-
22
- def capture_payments
23
- return if @order.paid?
24
-
25
- Spree::OrderMutex.with_lock!(@order) do
26
- uncaptured_amount = @order.display_total.cents
27
-
28
- sorted_payments(@order).each do |payment|
29
- amount = [uncaptured_amount, payment.money.cents].min
30
-
31
- if amount > 0
32
- payment.capture!(amount)
33
- uncaptured_amount -= amount
34
- elsif Spree::OrderCapturing.void_unused_payments
35
- payment.void_transaction!
36
- end
37
- end
38
- end
39
- end
40
-
41
- private
42
-
43
- def sorted_payments(order)
44
- order.payments.pending.sort_by do |payment|
45
- [@sorted_payment_method_classes.index(payment.payment_method.class), payment.id]
46
- end
47
- end
48
- end
49
-
50
- class Spree::OrderCapturingFailures < StandardError; end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Spree::PromotionHandler
4
- FreeShipping = ActiveSupport::Deprecation::DeprecatedConstantProxy.new(
5
- 'Spree::PromotionHandler::FreeShipping',
6
- 'Spree::PromotionHandler::Shipping',
7
- Spree::Deprecation,
8
- )
9
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'generators/solidus/install/install_generator'
4
-
5
- module Spree
6
- # @private
7
- class InstallGenerator < Solidus::InstallGenerator
8
- def print_deprecation_warning
9
- puts " "
10
- puts "*" * 50
11
- puts "spree:install generator is deprecated, please use solidus:install."
12
- puts " "
13
- end
14
- end
15
- end
@@ -1,41 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Solidus
4
- module Migrations
5
- class RenameGateways
6
- DEFAULT_MAPPING = {
7
- 'Spree::Gateway' => 'Spree::PaymentMethod::CreditCard',
8
- 'Spree::Gateway::Bogus' => 'Spree::PaymentMethod::BogusCreditCard',
9
- 'Spree::Gateway::BogusSimple' => 'Spree::PaymentMethod::SimpleBogusCreditCard'
10
- }
11
-
12
- attr_reader :gateway_mapping
13
-
14
- def initialize(gateway_mapping = DEFAULT_MAPPING)
15
- Spree::Deprecation.warn 'Solidus::Migrations::RenameGateways is deprecated and will be removed with Solidus 3.0.'
16
-
17
- @gateway_mapping = gateway_mapping
18
- end
19
-
20
- def up
21
- gateway_mapping.inject(0) do |count, mapping|
22
- count + update(from: mapping[0], to: mapping[1])
23
- end
24
- end
25
-
26
- def down
27
- gateway_mapping.inject(0) do |count, mapping|
28
- count + update(from: mapping[1], to: mapping[0])
29
- end
30
- end
31
-
32
- private
33
-
34
- def update(from:, to:)
35
- ActiveRecord::Base.connection.update <<-SQL.strip_heredoc
36
- UPDATE spree_payment_methods SET type = '#{to}' WHERE type = '#{from}';
37
- SQL
38
- end
39
- end
40
- end
41
- end
@@ -1,44 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module AwesomeNestedSetOvveride
4
- # Add :polimorphic key option only when used to make it work with Rails 6.1+,
5
- # required since rails/rails@2c008d9
6
- # This can be removed when upgrading to an awesome_nested_set version
7
- # compliant with Rails 6.1+, already addressed in
8
- # collectiveidea/awesome_nested_set#421
9
- module RelateParent
10
- def acts_as_nested_set_relate_parent!
11
- # Disable Rubocop to keep original code for diffs
12
- # rubocop:disable
13
- options = {
14
- :class_name => self.base_class.to_s,
15
- :foreign_key => parent_column_name,
16
- :primary_key => primary_column_name,
17
- :counter_cache => acts_as_nested_set_options[:counter_cache],
18
- :inverse_of => (:children unless acts_as_nested_set_options[:polymorphic]),
19
- :touch => acts_as_nested_set_options[:touch]
20
- }
21
- options[:polymorphic] = true if acts_as_nested_set_options[:polymorphic]
22
- options[:optional] = true if ActiveRecord::VERSION::MAJOR >= 5
23
- belongs_to :parent, options
24
- # rubocop:enable
25
- end
26
-
27
- CollectiveIdea::Acts::NestedSet.prepend self
28
- end
29
-
30
- # Skip breaking model reload before update depth. Already addressed in
31
- # collectiveidea/awesome_nested_set#413
32
- # This can be removed when a new version of awesome_nested_set is released.
33
- module Model
34
- def set_depth!
35
- return unless has_depth_column?
36
-
37
- in_tenacious_transaction do
38
- update_depth(level)
39
- end
40
- end
41
-
42
- CollectiveIdea::Acts::NestedSet::Model.prepend self
43
- end
44
- end