solidus_core 4.3.4 → 4.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/helpers/spree/base_helper.rb +2 -2
- data/app/mailers/spree/base_mailer.rb +1 -1
- data/app/mailers/spree/carton_mailer.rb +1 -1
- data/app/mailers/spree/order_mailer.rb +3 -3
- data/app/mailers/spree/reimbursement_mailer.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter.rb +1 -1
- data/app/models/concerns/spree/display_money.rb +1 -1
- data/app/models/concerns/spree/ordered_property_value_list.rb +2 -2
- data/app/models/concerns/spree/user_address_book.rb +4 -4
- data/app/models/concerns/spree/user_methods.rb +3 -3
- data/app/models/spree/address.rb +6 -6
- data/app/models/spree/adjustment.rb +13 -66
- data/app/models/spree/calculator/returns/default_refund_amount.rb +1 -1
- data/app/models/spree/carton.rb +2 -2
- data/app/models/spree/credit_card.rb +6 -6
- data/app/models/spree/deprecated_configurable_class.rb +40 -0
- data/app/models/spree/fulfilment_changer.rb +4 -4
- data/app/models/spree/inventory_unit.rb +2 -2
- data/app/models/spree/line_item.rb +1 -1
- data/app/models/spree/null_promotion_adjuster.rb +13 -0
- data/app/models/spree/null_promotion_advertiser.rb +9 -0
- data/app/models/spree/null_promotion_finder.rb +9 -0
- data/app/models/spree/null_promotion_handler.rb +44 -0
- data/app/models/spree/order.rb +15 -22
- data/app/models/spree/order_cancellations.rb +8 -8
- data/app/models/spree/order_mutex.rb +2 -2
- data/app/models/spree/order_shipping.rb +9 -9
- data/app/models/spree/order_updater.rb +6 -10
- data/app/models/spree/payment/processing.rb +2 -2
- data/app/models/spree/payment.rb +2 -2
- data/app/models/spree/payment_create.rb +1 -1
- data/app/models/spree/payment_method/store_credit.rb +1 -1
- data/app/models/spree/payment_source.rb +5 -1
- data/app/models/spree/permission_set.rb +11 -0
- data/app/models/spree/product.rb +7 -28
- data/app/models/spree/refund.rb +1 -1
- data/app/models/spree/reimbursement.rb +4 -4
- data/app/models/spree/reimbursement_performer.rb +3 -3
- data/app/models/spree/reimbursement_tax_calculator.rb +2 -2
- data/app/models/spree/reimbursement_type/credit.rb +1 -1
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +6 -6
- data/app/models/spree/reimbursement_type/store_credit.rb +1 -1
- data/app/models/spree/return_item.rb +9 -9
- data/app/models/spree/role.rb +3 -1
- data/app/models/spree/role_permission.rb +8 -0
- data/app/models/spree/shipment.rb +7 -7
- data/app/models/spree/shipping_category.rb +2 -0
- data/app/models/spree/shipping_rate.rb +1 -1
- data/app/models/spree/{order_contents.rb → simple_order_contents.rb} +4 -11
- data/app/models/spree/stock/estimator.rb +1 -1
- data/app/models/spree/stock/inventory_unit_builder.rb +1 -1
- data/app/models/spree/stock/package.rb +2 -2
- data/app/models/spree/stock/simple_coordinator.rb +1 -1
- data/app/models/spree/stock_location.rb +5 -5
- data/app/models/spree/store.rb +1 -1
- data/app/models/spree/store_credit.rb +17 -15
- data/app/models/spree/store_credit_event.rb +3 -3
- data/app/models/spree/tax_calculator/default.rb +2 -2
- data/app/models/spree/tax_calculator/shipping_rate.rb +1 -1
- data/app/models/spree/tax_category.rb +3 -1
- data/app/models/spree/tax_rate.rb +3 -3
- data/app/models/spree/taxonomy.rb +2 -2
- data/app/models/spree/unit_cancel.rb +1 -2
- data/app/models/spree/variant/vat_price_generator.rb +1 -1
- data/app/models/spree/variant.rb +7 -2
- data/app/models/spree/wallet.rb +2 -2
- data/app/views/spree/order_mailer/cancel_email.html.erb +1 -1
- data/app/views/spree/order_mailer/cancel_email.text.erb +1 -1
- data/app/views/spree/order_mailer/confirm_email.html.erb +5 -5
- data/app/views/spree/order_mailer/confirm_email.text.erb +5 -5
- data/config/locales/en.yml +4 -90
- data/db/default/spree/permission_sets.rb +10 -0
- data/db/default/spree/return_reasons.rb +3 -1
- data/db/default/spree/states.rb +1 -1
- data/db/migrate/20160101010000_solidus_one_four.rb +0 -117
- data/db/migrate/20240821173254_create_spree_permission_sets_in_core.rb +9 -0
- data/db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb +9 -0
- data/db/migrate/20240821173641_add_description_to_spree_roles.rb +5 -0
- data/db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb +6 -0
- data/db/seeds.rb +1 -0
- data/lib/generators/solidus/install/app_templates/frontend/starter.rb +1 -1
- data/lib/generators/solidus/update/update_generator.rb +1 -1
- data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
- data/lib/spree/app_configuration.rb +53 -84
- data/lib/spree/core/class_constantizer.rb +2 -2
- data/lib/spree/core/controller_helpers/payment_parameters.rb +1 -1
- data/lib/spree/core/engine.rb +1 -0
- data/lib/spree/core/environment/calculators.rb +35 -3
- data/lib/spree/core/environment/promotions.rb +25 -4
- data/lib/spree/core/environment_extension.rb +16 -2
- data/lib/spree/core/importer/order.rb +5 -5
- data/lib/spree/core/importer/product.rb +3 -3
- data/lib/spree/core/nested_class_set.rb +28 -0
- data/lib/spree/core/null_promotion_configuration.rb +84 -0
- data/lib/spree/core/product_filters.rb +1 -1
- data/lib/spree/core/search/variant.rb +2 -2
- data/lib/spree/core/state_machines/order.rb +0 -1
- data/lib/spree/core/validators/email.rb +1 -1
- data/lib/spree/core/version.rb +2 -2
- data/lib/spree/core.rb +2 -6
- data/lib/spree/deprecator.rb +9 -0
- data/lib/spree/i18n.rb +1 -1
- data/lib/spree/mailer_previews/carton_preview.rb +1 -1
- data/lib/spree/permission_sets/base.rb +13 -1
- data/lib/spree/permission_sets/configuration_display.rb +10 -0
- data/lib/spree/permission_sets/configuration_management.rb +10 -0
- data/lib/spree/permission_sets/dashboard_display.rb +12 -0
- data/lib/spree/permission_sets/default_customer.rb +11 -1
- data/lib/spree/permission_sets/order_display.rb +10 -0
- data/lib/spree/permission_sets/order_management.rb +10 -0
- data/lib/spree/permission_sets/product_display.rb +10 -0
- data/lib/spree/permission_sets/product_management.rb +10 -0
- data/lib/spree/permission_sets/restricted_stock_display.rb +10 -0
- data/lib/spree/permission_sets/restricted_stock_management.rb +10 -0
- data/lib/spree/permission_sets/stock_display.rb +10 -0
- data/lib/spree/permission_sets/stock_management.rb +10 -0
- data/lib/spree/permission_sets/super_user.rb +10 -0
- data/lib/spree/permission_sets/user_display.rb +10 -0
- data/lib/spree/permission_sets/user_management.rb +10 -0
- data/lib/spree/permission_sets.rb +0 -2
- data/lib/spree/permitted_attributes.rb +2 -2
- data/lib/spree/preferences/store.rb +2 -2
- data/lib/spree/testing_support/capybara_ext.rb +1 -1
- data/lib/spree/testing_support/dummy_ability.rb +7 -0
- data/lib/spree/testing_support/dummy_app/database.yml +2 -2
- data/lib/spree/testing_support/dummy_app/migrations.rb +8 -15
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +2 -2
- data/lib/spree/testing_support/dummy_app.rb +17 -12
- data/lib/spree/testing_support/factories/adjustment_factory.rb +1 -2
- data/lib/spree/testing_support/factories/calculator_factory.rb +1 -5
- data/lib/spree/testing_support/factories/carton_factory.rb +2 -2
- data/lib/spree/testing_support/factories/customer_return_factory.rb +2 -2
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +3 -3
- data/lib/spree/testing_support/factories/order_factory.rb +5 -24
- data/lib/spree/testing_support/factories/product_factory.rb +1 -1
- data/lib/spree/testing_support/factories/shipment_factory.rb +1 -1
- data/lib/spree/testing_support/factories/stock_item_factory.rb +5 -1
- data/lib/spree/testing_support/factories/stock_package_factory.rb +1 -1
- data/lib/spree/testing_support/factories/user_factory.rb +1 -1
- data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
- data/lib/spree/testing_support/order_walkthrough.rb +3 -3
- data/lib/spree/testing_support/shared_examples/calculator.rb +10 -0
- data/lib/spree/testing_support/shared_examples/order_factory.rb +141 -0
- data/lib/spree/testing_support/shared_examples/working_factory.rb +15 -0
- data/lib/tasks/colorado_delivery_fee.rake +2 -2
- data/solidus_core.gemspec +6 -6
- metadata +60 -91
- data/app/jobs/spree/promotion_code_batch_job.rb +0 -26
- data/app/mailers/spree/promotion_code_batch_mailer.rb +0 -15
- data/app/models/spree/calculator/distributed_amount.rb +0 -33
- data/app/models/spree/calculator/flat_percent_item_total.rb +0 -23
- data/app/models/spree/calculator/flexi_rate.rb +0 -22
- data/app/models/spree/calculator/percent_on_line_item.rb +0 -13
- data/app/models/spree/calculator/tiered_flat_rate.rb +0 -52
- data/app/models/spree/calculator/tiered_percent.rb +0 -62
- data/app/models/spree/order_promotion.rb +0 -27
- data/app/models/spree/promotion/actions/create_adjustment.rb +0 -81
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -98
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -139
- data/app/models/spree/promotion/actions/free_shipping.rb +0 -59
- data/app/models/spree/promotion/order_adjustments_recalculator.rb +0 -92
- data/app/models/spree/promotion/rules/first_order.rb +0 -38
- data/app/models/spree/promotion/rules/first_repeat_purchase_since.rb +0 -36
- data/app/models/spree/promotion/rules/item_total.rb +0 -86
- data/app/models/spree/promotion/rules/minimum_quantity.rb +0 -59
- data/app/models/spree/promotion/rules/nth_order.rb +0 -45
- data/app/models/spree/promotion/rules/one_use_per_user.rb +0 -25
- data/app/models/spree/promotion/rules/option_value.rb +0 -50
- data/app/models/spree/promotion/rules/product.rb +0 -86
- data/app/models/spree/promotion/rules/store.rb +0 -26
- data/app/models/spree/promotion/rules/taxon.rb +0 -91
- data/app/models/spree/promotion/rules/user.rb +0 -34
- data/app/models/spree/promotion/rules/user_logged_in.rb +0 -20
- data/app/models/spree/promotion/rules/user_role.rb +0 -45
- data/app/models/spree/promotion.rb +0 -271
- data/app/models/spree/promotion_action.rb +0 -47
- data/app/models/spree/promotion_category.rb +0 -8
- data/app/models/spree/promotion_chooser.rb +0 -34
- data/app/models/spree/promotion_code/batch_builder.rb +0 -64
- data/app/models/spree/promotion_code.rb +0 -54
- data/app/models/spree/promotion_code_batch.rb +0 -27
- data/app/models/spree/promotion_handler/cart.rb +0 -75
- data/app/models/spree/promotion_handler/coupon.rb +0 -123
- data/app/models/spree/promotion_handler/page.rb +0 -26
- data/app/models/spree/promotion_handler/shipping.rb +0 -61
- data/app/models/spree/promotion_rule.rb +0 -55
- data/app/models/spree/promotion_rule_store.rb +0 -10
- data/app/models/spree/promotion_rule_taxon.rb +0 -8
- data/app/models/spree/promotion_rule_user.rb +0 -10
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb +0 -2
- data/app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb +0 -2
- data/db/migrate/20161017102621_create_spree_promotion_code_batch.rb +0 -38
- data/db/migrate/20180202190713_create_promotion_rule_stores.rb +0 -12
- data/db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb +0 -11
- data/db/migrate/20190106184413_remove_code_from_spree_promotions.rb +0 -42
- data/db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb +0 -20
- data/db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb +0 -5
- data/db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb +0 -6
- data/db/migrate/20230325161633_drop_unused_promo_action_line_items.rb +0 -13
- data/db/migrate/20231027084517_add_order_promotions_foreign_key.rb +0 -10
- data/db/migrate/20231031175215_add_promotion_order_promotion_foreign_key.rb +0 -10
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +0 -66
- data/lib/spree/permission_sets/promotion_display.rb +0 -25
- data/lib/spree/permission_sets/promotion_management.rb +0 -25
- data/lib/spree/ransack_4_1_patch.rb +0 -16
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +0 -8
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +0 -7
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +0 -8
- data/lib/spree/testing_support/factories/promotion_factory.rb +0 -98
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Solidus Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionmailer
|
@@ -19,7 +19,7 @@ dependencies:
|
|
19
19
|
version: '7.0'
|
20
20
|
- - "<"
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
22
|
+
version: 8.0.0.beta1
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,7 +29,7 @@ dependencies:
|
|
29
29
|
version: '7.0'
|
30
30
|
- - "<"
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
32
|
+
version: 8.0.0.beta1
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: actionpack
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
version: '7.0'
|
40
40
|
- - "<"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 8.0.0.beta1
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -49,7 +49,7 @@ dependencies:
|
|
49
49
|
version: '7.0'
|
50
50
|
- - "<"
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
52
|
+
version: 8.0.0.beta1
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: actionview
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '7.0'
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: 8.0.0.beta1
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '7.0'
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version:
|
72
|
+
version: 8.0.0.beta1
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: activejob
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -79,7 +79,7 @@ dependencies:
|
|
79
79
|
version: '7.0'
|
80
80
|
- - "<"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 8.0.0.beta1
|
83
83
|
type: :runtime
|
84
84
|
prerelease: false
|
85
85
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: '7.0'
|
90
90
|
- - "<"
|
91
91
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
92
|
+
version: 8.0.0.beta1
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
94
|
name: activemodel
|
95
95
|
requirement: !ruby/object:Gem::Requirement
|
@@ -99,7 +99,7 @@ dependencies:
|
|
99
99
|
version: '7.0'
|
100
100
|
- - "<"
|
101
101
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
102
|
+
version: 8.0.0.beta1
|
103
103
|
type: :runtime
|
104
104
|
prerelease: false
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
version: '7.0'
|
110
110
|
- - "<"
|
111
111
|
- !ruby/object:Gem::Version
|
112
|
-
version:
|
112
|
+
version: 8.0.0.beta1
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: activerecord
|
115
115
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,7 +119,7 @@ dependencies:
|
|
119
119
|
version: '7.0'
|
120
120
|
- - "<"
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version:
|
122
|
+
version: 8.0.0.beta1
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -129,7 +129,7 @@ dependencies:
|
|
129
129
|
version: '7.0'
|
130
130
|
- - "<"
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version:
|
132
|
+
version: 8.0.0.beta1
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
134
|
name: activestorage
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,7 +139,7 @@ dependencies:
|
|
139
139
|
version: '7.0'
|
140
140
|
- - "<"
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
142
|
+
version: 8.0.0.beta1
|
143
143
|
type: :runtime
|
144
144
|
prerelease: false
|
145
145
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -149,7 +149,7 @@ dependencies:
|
|
149
149
|
version: '7.0'
|
150
150
|
- - "<"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 8.0.0.beta1
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: activesupport
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -159,7 +159,7 @@ dependencies:
|
|
159
159
|
version: '7.0'
|
160
160
|
- - "<"
|
161
161
|
- !ruby/object:Gem::Version
|
162
|
-
version:
|
162
|
+
version: 8.0.0.beta1
|
163
163
|
type: :runtime
|
164
164
|
prerelease: false
|
165
165
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -169,7 +169,7 @@ dependencies:
|
|
169
169
|
version: '7.0'
|
170
170
|
- - "<"
|
171
171
|
- !ruby/object:Gem::Version
|
172
|
-
version:
|
172
|
+
version: 8.0.0.beta1
|
173
173
|
- !ruby/object:Gem::Dependency
|
174
174
|
name: railties
|
175
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,7 +179,7 @@ dependencies:
|
|
179
179
|
version: '7.0'
|
180
180
|
- - "<"
|
181
181
|
- !ruby/object:Gem::Version
|
182
|
-
version:
|
182
|
+
version: 8.0.0.beta1
|
183
183
|
type: :runtime
|
184
184
|
prerelease: false
|
185
185
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -189,7 +189,7 @@ dependencies:
|
|
189
189
|
version: '7.0'
|
190
190
|
- - "<"
|
191
191
|
- !ruby/object:Gem::Version
|
192
|
-
version:
|
192
|
+
version: 8.0.0.beta1
|
193
193
|
- !ruby/object:Gem::Dependency
|
194
194
|
name: activemerchant
|
195
195
|
requirement: !ruby/object:Gem::Requirement
|
@@ -225,6 +225,9 @@ dependencies:
|
|
225
225
|
- - "~>"
|
226
226
|
- !ruby/object:Gem::Version
|
227
227
|
version: '3.3'
|
228
|
+
- - ">="
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: 3.7.0
|
228
231
|
type: :runtime
|
229
232
|
prerelease: false
|
230
233
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -232,6 +235,9 @@ dependencies:
|
|
232
235
|
- - "~>"
|
233
236
|
- !ruby/object:Gem::Version
|
234
237
|
version: '3.3'
|
238
|
+
- - ">="
|
239
|
+
- !ruby/object:Gem::Version
|
240
|
+
version: 3.7.0
|
235
241
|
- !ruby/object:Gem::Dependency
|
236
242
|
name: cancancan
|
237
243
|
requirement: !ruby/object:Gem::Requirement
|
@@ -379,7 +385,7 @@ dependencies:
|
|
379
385
|
version: 4.0.1
|
380
386
|
- - "<"
|
381
387
|
- !ruby/object:Gem::Version
|
382
|
-
version: '
|
388
|
+
version: '6.0'
|
383
389
|
type: :runtime
|
384
390
|
prerelease: false
|
385
391
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -389,7 +395,7 @@ dependencies:
|
|
389
395
|
version: 4.0.1
|
390
396
|
- - "<"
|
391
397
|
- !ruby/object:Gem::Version
|
392
|
-
version: '
|
398
|
+
version: '6.0'
|
393
399
|
- !ruby/object:Gem::Dependency
|
394
400
|
name: ransack
|
395
401
|
requirement: !ruby/object:Gem::Requirement
|
@@ -397,6 +403,9 @@ dependencies:
|
|
397
403
|
- - "~>"
|
398
404
|
- !ruby/object:Gem::Version
|
399
405
|
version: '4.0'
|
406
|
+
- - "<"
|
407
|
+
- !ruby/object:Gem::Version
|
408
|
+
version: '5'
|
400
409
|
type: :runtime
|
401
410
|
prerelease: false
|
402
411
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -404,20 +413,23 @@ dependencies:
|
|
404
413
|
- - "~>"
|
405
414
|
- !ruby/object:Gem::Version
|
406
415
|
version: '4.0'
|
416
|
+
- - "<"
|
417
|
+
- !ruby/object:Gem::Version
|
418
|
+
version: '5'
|
407
419
|
- !ruby/object:Gem::Dependency
|
408
420
|
name: sprockets-rails
|
409
421
|
requirement: !ruby/object:Gem::Requirement
|
410
422
|
requirements:
|
411
|
-
- - "
|
423
|
+
- - "!="
|
412
424
|
- !ruby/object:Gem::Version
|
413
|
-
version:
|
425
|
+
version: 3.5.0
|
414
426
|
type: :runtime
|
415
427
|
prerelease: false
|
416
428
|
version_requirements: !ruby/object:Gem::Requirement
|
417
429
|
requirements:
|
418
|
-
- - "
|
430
|
+
- - "!="
|
419
431
|
- !ruby/object:Gem::Version
|
420
|
-
version:
|
432
|
+
version: 3.5.0
|
421
433
|
- !ruby/object:Gem::Dependency
|
422
434
|
name: state_machines-activerecord
|
423
435
|
requirement: !ruby/object:Gem::Requirement
|
@@ -469,11 +481,9 @@ files:
|
|
469
481
|
- app/helpers/spree/products_helper.rb
|
470
482
|
- app/helpers/spree/store_helper.rb
|
471
483
|
- app/helpers/spree/taxons_helper.rb
|
472
|
-
- app/jobs/spree/promotion_code_batch_job.rb
|
473
484
|
- app/mailers/spree/base_mailer.rb
|
474
485
|
- app/mailers/spree/carton_mailer.rb
|
475
486
|
- app/mailers/spree/order_mailer.rb
|
476
|
-
- app/mailers/spree/promotion_code_batch_mailer.rb
|
477
487
|
- app/mailers/spree/reimbursement_mailer.rb
|
478
488
|
- app/models/concerns/spree/active_storage_adapter.rb
|
479
489
|
- app/models/concerns/spree/active_storage_adapter/attachment.rb
|
@@ -501,25 +511,20 @@ files:
|
|
501
511
|
- app/models/spree/billing_integration.rb
|
502
512
|
- app/models/spree/calculator.rb
|
503
513
|
- app/models/spree/calculator/default_tax.rb
|
504
|
-
- app/models/spree/calculator/distributed_amount.rb
|
505
514
|
- app/models/spree/calculator/flat_fee.rb
|
506
|
-
- app/models/spree/calculator/flat_percent_item_total.rb
|
507
515
|
- app/models/spree/calculator/flat_rate.rb
|
508
|
-
- app/models/spree/calculator/flexi_rate.rb
|
509
|
-
- app/models/spree/calculator/percent_on_line_item.rb
|
510
516
|
- app/models/spree/calculator/returns/default_refund_amount.rb
|
511
517
|
- app/models/spree/calculator/shipping/flat_percent_item_total.rb
|
512
518
|
- app/models/spree/calculator/shipping/flat_rate.rb
|
513
519
|
- app/models/spree/calculator/shipping/flexi_rate.rb
|
514
520
|
- app/models/spree/calculator/shipping/per_item.rb
|
515
521
|
- app/models/spree/calculator/shipping/price_sack.rb
|
516
|
-
- app/models/spree/calculator/tiered_flat_rate.rb
|
517
|
-
- app/models/spree/calculator/tiered_percent.rb
|
518
522
|
- app/models/spree/carton.rb
|
519
523
|
- app/models/spree/classification.rb
|
520
524
|
- app/models/spree/country.rb
|
521
525
|
- app/models/spree/credit_card.rb
|
522
526
|
- app/models/spree/customer_return.rb
|
527
|
+
- app/models/spree/deprecated_configurable_class.rb
|
523
528
|
- app/models/spree/distributed_amounts_handler.rb
|
524
529
|
- app/models/spree/exchange.rb
|
525
530
|
- app/models/spree/fulfilment_changer.rb
|
@@ -533,6 +538,10 @@ files:
|
|
533
538
|
- app/models/spree/line_item.rb
|
534
539
|
- app/models/spree/line_item_action.rb
|
535
540
|
- app/models/spree/log_entry.rb
|
541
|
+
- app/models/spree/null_promotion_adjuster.rb
|
542
|
+
- app/models/spree/null_promotion_advertiser.rb
|
543
|
+
- app/models/spree/null_promotion_finder.rb
|
544
|
+
- app/models/spree/null_promotion_handler.rb
|
536
545
|
- app/models/spree/option_type.rb
|
537
546
|
- app/models/spree/option_value.rb
|
538
547
|
- app/models/spree/option_values_variant.rb
|
@@ -540,11 +549,9 @@ files:
|
|
540
549
|
- app/models/spree/order/number_generator.rb
|
541
550
|
- app/models/spree/order/payments.rb
|
542
551
|
- app/models/spree/order_cancellations.rb
|
543
|
-
- app/models/spree/order_contents.rb
|
544
552
|
- app/models/spree/order_inventory.rb
|
545
553
|
- app/models/spree/order_merger.rb
|
546
554
|
- app/models/spree/order_mutex.rb
|
547
|
-
- app/models/spree/order_promotion.rb
|
548
555
|
- app/models/spree/order_shipping.rb
|
549
556
|
- app/models/spree/order_taxation.rb
|
550
557
|
- app/models/spree/order_update_attributes.rb
|
@@ -561,6 +568,7 @@ files:
|
|
561
568
|
- app/models/spree/payment_method/simple_bogus_credit_card.rb
|
562
569
|
- app/models/spree/payment_method/store_credit.rb
|
563
570
|
- app/models/spree/payment_source.rb
|
571
|
+
- app/models/spree/permission_set.rb
|
564
572
|
- app/models/spree/preference.rb
|
565
573
|
- app/models/spree/price.rb
|
566
574
|
- app/models/spree/product.rb
|
@@ -568,39 +576,6 @@ files:
|
|
568
576
|
- app/models/spree/product_option_type.rb
|
569
577
|
- app/models/spree/product_promotion_rule.rb
|
570
578
|
- app/models/spree/product_property.rb
|
571
|
-
- app/models/spree/promotion.rb
|
572
|
-
- app/models/spree/promotion/actions/create_adjustment.rb
|
573
|
-
- app/models/spree/promotion/actions/create_item_adjustments.rb
|
574
|
-
- app/models/spree/promotion/actions/create_quantity_adjustments.rb
|
575
|
-
- app/models/spree/promotion/actions/free_shipping.rb
|
576
|
-
- app/models/spree/promotion/order_adjustments_recalculator.rb
|
577
|
-
- app/models/spree/promotion/rules/first_order.rb
|
578
|
-
- app/models/spree/promotion/rules/first_repeat_purchase_since.rb
|
579
|
-
- app/models/spree/promotion/rules/item_total.rb
|
580
|
-
- app/models/spree/promotion/rules/minimum_quantity.rb
|
581
|
-
- app/models/spree/promotion/rules/nth_order.rb
|
582
|
-
- app/models/spree/promotion/rules/one_use_per_user.rb
|
583
|
-
- app/models/spree/promotion/rules/option_value.rb
|
584
|
-
- app/models/spree/promotion/rules/product.rb
|
585
|
-
- app/models/spree/promotion/rules/store.rb
|
586
|
-
- app/models/spree/promotion/rules/taxon.rb
|
587
|
-
- app/models/spree/promotion/rules/user.rb
|
588
|
-
- app/models/spree/promotion/rules/user_logged_in.rb
|
589
|
-
- app/models/spree/promotion/rules/user_role.rb
|
590
|
-
- app/models/spree/promotion_action.rb
|
591
|
-
- app/models/spree/promotion_category.rb
|
592
|
-
- app/models/spree/promotion_chooser.rb
|
593
|
-
- app/models/spree/promotion_code.rb
|
594
|
-
- app/models/spree/promotion_code/batch_builder.rb
|
595
|
-
- app/models/spree/promotion_code_batch.rb
|
596
|
-
- app/models/spree/promotion_handler/cart.rb
|
597
|
-
- app/models/spree/promotion_handler/coupon.rb
|
598
|
-
- app/models/spree/promotion_handler/page.rb
|
599
|
-
- app/models/spree/promotion_handler/shipping.rb
|
600
|
-
- app/models/spree/promotion_rule.rb
|
601
|
-
- app/models/spree/promotion_rule_store.rb
|
602
|
-
- app/models/spree/promotion_rule_taxon.rb
|
603
|
-
- app/models/spree/promotion_rule_user.rb
|
604
579
|
- app/models/spree/property.rb
|
605
580
|
- app/models/spree/refund.rb
|
606
581
|
- app/models/spree/refund_reason.rb
|
@@ -630,6 +605,7 @@ files:
|
|
630
605
|
- app/models/spree/return_reason.rb
|
631
606
|
- app/models/spree/returns_calculator.rb
|
632
607
|
- app/models/spree/role.rb
|
608
|
+
- app/models/spree/role_permission.rb
|
633
609
|
- app/models/spree/role_user.rb
|
634
610
|
- app/models/spree/shipment.rb
|
635
611
|
- app/models/spree/shipping_calculator.rb
|
@@ -641,6 +617,7 @@ files:
|
|
641
617
|
- app/models/spree/shipping_method_zone.rb
|
642
618
|
- app/models/spree/shipping_rate.rb
|
643
619
|
- app/models/spree/shipping_rate_tax.rb
|
620
|
+
- app/models/spree/simple_order_contents.rb
|
644
621
|
- app/models/spree/state.rb
|
645
622
|
- app/models/spree/state_change.rb
|
646
623
|
- app/models/spree/stock/allocator/base.rb
|
@@ -727,8 +704,6 @@ files:
|
|
727
704
|
- app/views/spree/order_mailer/confirm_email.text.erb
|
728
705
|
- app/views/spree/order_mailer/inventory_cancellation_email.html.erb
|
729
706
|
- app/views/spree/order_mailer/inventory_cancellation_email.text.erb
|
730
|
-
- app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb
|
731
|
-
- app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb
|
732
707
|
- app/views/spree/reimbursement_mailer/reimbursement_email.html.erb
|
733
708
|
- app/views/spree/reimbursement_mailer/reimbursement_email.text.erb
|
734
709
|
- app/views/spree/shared/_base_mailer_footer.html.erb
|
@@ -744,6 +719,7 @@ files:
|
|
744
719
|
- config/initializers/money.rb
|
745
720
|
- config/locales/en.yml
|
746
721
|
- db/default/spree/countries.rb
|
722
|
+
- db/default/spree/permission_sets.rb
|
747
723
|
- db/default/spree/refund_reasons.rb
|
748
724
|
- db/default/spree/return_reasons.rb
|
749
725
|
- db/default/spree/roles.rb
|
@@ -759,7 +735,6 @@ files:
|
|
759
735
|
- db/migrate/20160924135758_remove_is_default_from_prices.rb
|
760
736
|
- db/migrate/20161009141333_remove_currency_from_line_items.rb
|
761
737
|
- db/migrate/20161014221052_add_available_to_columns_and_remove_display_on_from_payment_methods.rb
|
762
|
-
- db/migrate/20161017102621_create_spree_promotion_code_batch.rb
|
763
738
|
- db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb
|
764
739
|
- db/migrate/20161129035810_add_index_to_spree_payments_number.rb
|
765
740
|
- db/migrate/20170223235001_remove_spree_store_credits_column.rb
|
@@ -770,14 +745,11 @@ files:
|
|
770
745
|
- db/migrate/20170522143442_add_time_range_to_tax_rate.rb
|
771
746
|
- db/migrate/20170608074534_rename_bogus_gateways.rb
|
772
747
|
- db/migrate/20170831201542_remove_default_tax_from_spree_zones.rb
|
773
|
-
- db/migrate/20180202190713_create_promotion_rule_stores.rb
|
774
748
|
- db/migrate/20180202222641_create_store_shipping_methods.rb
|
775
749
|
- db/migrate/20180313220213_add_available_locales_to_stores.rb
|
776
750
|
- db/migrate/20180322142651_add_amount_remaining_to_store_credit_events.rb
|
777
|
-
- db/migrate/20180328172631_add_join_characters_to_promotion_code_batch.rb
|
778
751
|
- db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb
|
779
752
|
- db/migrate/20180710170104_create_spree_store_credit_reasons_table.rb
|
780
|
-
- db/migrate/20190106184413_remove_code_from_spree_promotions.rb
|
781
753
|
- db/migrate/20190220093635_drop_spree_store_credit_update_reasons.rb
|
782
754
|
- db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb
|
783
755
|
- db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb
|
@@ -786,17 +758,15 @@ files:
|
|
786
758
|
- db/migrate/20210122110141_add_name_to_spree_addresses.rb
|
787
759
|
- db/migrate/20210312061050_change_column_null_on_prices.rb
|
788
760
|
- db/migrate/20210815004823_add_unique_index_to_option_values_variants.rb
|
789
|
-
- db/migrate/20220317165036_set_promotions_with_any_policy_to_all_if_possible.rb
|
790
761
|
- db/migrate/20220805202442_add_level_to_spree_tax_rates.rb
|
791
762
|
- db/migrate/20221123152807_add_shipping_category_to_spree_variants.rb
|
792
763
|
- db/migrate/20230321161854_change_column_null_option_values_option_type_id.rb
|
793
|
-
- db/migrate/20230322085416_remove_match_policy_from_spree_promotion.rb
|
794
|
-
- db/migrate/20230325132905_remove_unused_columns_from_promotion_rules.rb
|
795
|
-
- db/migrate/20230325161633_drop_unused_promo_action_line_items.rb
|
796
764
|
- db/migrate/20230425103509_remove_taxon_position.rb
|
797
765
|
- db/migrate/20230427095534_drop_deprecated_address_id_from_shipments.rb
|
798
|
-
- db/migrate/
|
799
|
-
- db/migrate/
|
766
|
+
- db/migrate/20240821173254_create_spree_permission_sets_in_core.rb
|
767
|
+
- db/migrate/20240821173341_create_spree_roles_permissions_in_core.rb
|
768
|
+
- db/migrate/20240821173641_add_description_to_spree_roles.rb
|
769
|
+
- db/migrate/20240904152041_add_privilege_and_category_to_spree_permission_sets.rb
|
800
770
|
- db/seeds.rb
|
801
771
|
- lib/generators/solidus/install/app_templates/authentication/custom.rb
|
802
772
|
- lib/generators/solidus/install/app_templates/authentication/devise.rb
|
@@ -825,7 +795,6 @@ files:
|
|
825
795
|
- lib/generators/spree/dummy/templates/rails/script/rails
|
826
796
|
- lib/generators/spree/dummy/templates/rails/storage.yml
|
827
797
|
- lib/generators/spree/dummy/templates/rails/test.rb
|
828
|
-
- lib/solidus/migrations/promotions_with_code_handlers.rb
|
829
798
|
- lib/solidus_core.rb
|
830
799
|
- lib/spree/app_configuration.rb
|
831
800
|
- lib/spree/bus.rb
|
@@ -849,6 +818,8 @@ files:
|
|
849
818
|
- lib/spree/core/importer.rb
|
850
819
|
- lib/spree/core/importer/order.rb
|
851
820
|
- lib/spree/core/importer/product.rb
|
821
|
+
- lib/spree/core/nested_class_set.rb
|
822
|
+
- lib/spree/core/null_promotion_configuration.rb
|
852
823
|
- lib/spree/core/permalinks.rb
|
853
824
|
- lib/spree/core/product_duplicator.rb
|
854
825
|
- lib/spree/core/product_filters.rb
|
@@ -870,6 +841,7 @@ files:
|
|
870
841
|
- lib/spree/core/versioned_value.rb
|
871
842
|
- lib/spree/deprecated_instance_variable_proxy.rb
|
872
843
|
- lib/spree/deprecation.rb
|
844
|
+
- lib/spree/deprecator.rb
|
873
845
|
- lib/spree/encryptor.rb
|
874
846
|
- lib/spree/i18n.rb
|
875
847
|
- lib/spree/localized_number.rb
|
@@ -889,8 +861,6 @@ files:
|
|
889
861
|
- lib/spree/permission_sets/order_management.rb
|
890
862
|
- lib/spree/permission_sets/product_display.rb
|
891
863
|
- lib/spree/permission_sets/product_management.rb
|
892
|
-
- lib/spree/permission_sets/promotion_display.rb
|
893
|
-
- lib/spree/permission_sets/promotion_management.rb
|
894
864
|
- lib/spree/permission_sets/restricted_stock_display.rb
|
895
865
|
- lib/spree/permission_sets/restricted_stock_management.rb
|
896
866
|
- lib/spree/permission_sets/stock_display.rb
|
@@ -908,7 +878,6 @@ files:
|
|
908
878
|
- lib/spree/preferences/static_model_preferences.rb
|
909
879
|
- lib/spree/preferences/statically_configurable.rb
|
910
880
|
- lib/spree/preferences/store.rb
|
911
|
-
- lib/spree/ransack_4_1_patch.rb
|
912
881
|
- lib/spree/testing_support/ability_helpers.rb
|
913
882
|
- lib/spree/testing_support/authorization_helpers.rb
|
914
883
|
- lib/spree/testing_support/blacklist_urls.rb
|
@@ -917,6 +886,7 @@ files:
|
|
917
886
|
- lib/spree/testing_support/capybara_ext.rb
|
918
887
|
- lib/spree/testing_support/common_rake.rb
|
919
888
|
- lib/spree/testing_support/controller_requests.rb
|
889
|
+
- lib/spree/testing_support/dummy_ability.rb
|
920
890
|
- lib/spree/testing_support/dummy_app.rb
|
921
891
|
- lib/spree/testing_support/dummy_app/assets/javascripts/spree/backend/all.js
|
922
892
|
- lib/spree/testing_support/dummy_app/assets/stylesheets/solidus_admin/tailwind.css
|
@@ -941,16 +911,12 @@ files:
|
|
941
911
|
- lib/spree/testing_support/factories/option_type_factory.rb
|
942
912
|
- lib/spree/testing_support/factories/option_value_factory.rb
|
943
913
|
- lib/spree/testing_support/factories/order_factory.rb
|
944
|
-
- lib/spree/testing_support/factories/order_promotion_factory.rb
|
945
914
|
- lib/spree/testing_support/factories/payment_factory.rb
|
946
915
|
- lib/spree/testing_support/factories/payment_method_factory.rb
|
947
916
|
- lib/spree/testing_support/factories/price_factory.rb
|
948
917
|
- lib/spree/testing_support/factories/product_factory.rb
|
949
918
|
- lib/spree/testing_support/factories/product_option_type_factory.rb
|
950
919
|
- lib/spree/testing_support/factories/product_property_factory.rb
|
951
|
-
- lib/spree/testing_support/factories/promotion_category_factory.rb
|
952
|
-
- lib/spree/testing_support/factories/promotion_code_factory.rb
|
953
|
-
- lib/spree/testing_support/factories/promotion_factory.rb
|
954
920
|
- lib/spree/testing_support/factories/property_factory.rb
|
955
921
|
- lib/spree/testing_support/factories/refund_factory.rb
|
956
922
|
- lib/spree/testing_support/factories/refund_reason_factory.rb
|
@@ -997,7 +963,10 @@ files:
|
|
997
963
|
- lib/spree/testing_support/preferences.rb
|
998
964
|
- lib/spree/testing_support/rake.rb
|
999
965
|
- lib/spree/testing_support/sequences.rb
|
966
|
+
- lib/spree/testing_support/shared_examples/calculator.rb
|
1000
967
|
- lib/spree/testing_support/shared_examples/gallery.rb
|
968
|
+
- lib/spree/testing_support/shared_examples/order_factory.rb
|
969
|
+
- lib/spree/testing_support/shared_examples/working_factory.rb
|
1001
970
|
- lib/spree/testing_support/silence_deprecations.rb
|
1002
971
|
- lib/spree/testing_support/translations.rb
|
1003
972
|
- lib/spree/testing_support/url_helpers.rb
|
@@ -1045,14 +1014,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1045
1014
|
requirements:
|
1046
1015
|
- - ">="
|
1047
1016
|
- !ruby/object:Gem::Version
|
1048
|
-
version: 3.
|
1017
|
+
version: 3.1.0
|
1049
1018
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1050
1019
|
requirements:
|
1051
1020
|
- - ">="
|
1052
1021
|
- !ruby/object:Gem::Version
|
1053
1022
|
version: 1.8.23
|
1054
1023
|
requirements: []
|
1055
|
-
rubygems_version: 3.
|
1024
|
+
rubygems_version: 3.5.22
|
1056
1025
|
signing_key:
|
1057
1026
|
specification_version: 4
|
1058
1027
|
summary: Essential models, mailers, and classes for the Solidus e-commerce project.
|
@@ -1,26 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
class PromotionCodeBatchJob < ActiveJob::Base
|
5
|
-
queue_as :default
|
6
|
-
|
7
|
-
def perform(promotion_code_batch)
|
8
|
-
PromotionCode::BatchBuilder.new(
|
9
|
-
promotion_code_batch
|
10
|
-
).build_promotion_codes
|
11
|
-
|
12
|
-
if promotion_code_batch.email?
|
13
|
-
Spree::Config.promotion_code_batch_mailer_class
|
14
|
-
.promotion_code_batch_finished(promotion_code_batch)
|
15
|
-
.deliver_now
|
16
|
-
end
|
17
|
-
rescue StandardError => error
|
18
|
-
if promotion_code_batch.email?
|
19
|
-
Spree::Config.promotion_code_batch_mailer_class
|
20
|
-
.promotion_code_batch_errored(promotion_code_batch)
|
21
|
-
.deliver_now
|
22
|
-
end
|
23
|
-
raise error
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
class PromotionCodeBatchMailer < Spree::BaseMailer
|
5
|
-
def promotion_code_batch_finished(promotion_code_batch)
|
6
|
-
@promotion_code_batch = promotion_code_batch
|
7
|
-
mail(to: promotion_code_batch.email)
|
8
|
-
end
|
9
|
-
|
10
|
-
def promotion_code_batch_errored(promotion_code_batch)
|
11
|
-
@promotion_code_batch = promotion_code_batch
|
12
|
-
mail(to: promotion_code_batch.email)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency 'spree/calculator'
|
4
|
-
|
5
|
-
# This is a calculator for line item adjustment actions. It accepts a line item
|
6
|
-
# and calculates its weighted adjustment amount based on the value of the
|
7
|
-
# preferred amount and the price of the other line items. More expensive line
|
8
|
-
# items will receive a greater share of the preferred amount.
|
9
|
-
|
10
|
-
module Spree
|
11
|
-
class Calculator::DistributedAmount < Calculator
|
12
|
-
preference :amount, :decimal, default: 0
|
13
|
-
preference :currency, :string, default: -> { Spree::Config[:currency] }
|
14
|
-
|
15
|
-
def compute_line_item(line_item)
|
16
|
-
return 0 unless line_item
|
17
|
-
return 0 unless preferred_currency.casecmp(line_item.currency).zero?
|
18
|
-
return 0 unless calculable.promotion.line_item_actionable?(line_item.order, line_item)
|
19
|
-
Spree::DistributedAmountsHandler.new(
|
20
|
-
actionable_line_items(line_item.order),
|
21
|
-
preferred_amount
|
22
|
-
).amount(line_item)
|
23
|
-
end
|
24
|
-
|
25
|
-
private
|
26
|
-
|
27
|
-
def actionable_line_items(order)
|
28
|
-
order.line_items.select do |line_item|
|
29
|
-
calculable.promotion.line_item_actionable?(order, line_item)
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency 'spree/calculator'
|
4
|
-
|
5
|
-
module Spree
|
6
|
-
class Calculator::FlatPercentItemTotal < Calculator
|
7
|
-
preference :flat_percent, :decimal, default: 0
|
8
|
-
|
9
|
-
def compute(object)
|
10
|
-
order = object.is_a?(Order) ? object : object.order
|
11
|
-
preferred_currency = order.currency
|
12
|
-
currency_exponent = ::Money::Currency.find(preferred_currency).exponent
|
13
|
-
computed_amount = (object.amount * preferred_flat_percent / 100).round(currency_exponent)
|
14
|
-
|
15
|
-
# We don't want to cause the promotion adjustments to push the order into a negative total.
|
16
|
-
if computed_amount > object.amount
|
17
|
-
object.amount
|
18
|
-
else
|
19
|
-
computed_amount
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency 'spree/calculator'
|
4
|
-
|
5
|
-
module Spree
|
6
|
-
class Calculator::FlexiRate < Calculator
|
7
|
-
preference :first_item, :decimal, default: 0
|
8
|
-
preference :additional_item, :decimal, default: 0
|
9
|
-
preference :max_items, :integer, default: 0
|
10
|
-
preference :currency, :string, default: ->{ Spree::Config[:currency] }
|
11
|
-
|
12
|
-
def compute(object)
|
13
|
-
items_count = object.quantity
|
14
|
-
items_count = [items_count, preferred_max_items].min unless preferred_max_items.zero?
|
15
|
-
|
16
|
-
return BigDecimal(0) if items_count == 0
|
17
|
-
|
18
|
-
additional_items_count = items_count - 1
|
19
|
-
preferred_first_item + preferred_additional_item * additional_items_count
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_dependency 'spree/calculator'
|
4
|
-
|
5
|
-
module Spree
|
6
|
-
class Calculator::PercentOnLineItem < Calculator
|
7
|
-
preference :percent, :decimal, default: 0
|
8
|
-
|
9
|
-
def compute(object)
|
10
|
-
(object.amount * preferred_percent) / 100
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|