solidus_core 2.2.2 → 2.3.0.beta1
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.
- checksums.yaml +4 -4
- data/README.md +4 -7
- data/app/assets/javascripts/spree.js.erb +2 -2
- data/app/helpers/spree/base_helper.rb +3 -4
- data/app/models/spree/address.rb +1 -1
- data/app/models/spree/adjustment.rb +3 -1
- data/app/models/spree/app_configuration.rb +43 -0
- data/app/models/spree/billing_integration.rb +2 -2
- data/app/models/spree/calculator/default_tax.rb +3 -1
- data/app/models/spree/calculator/distributed_amount.rb +24 -0
- data/app/models/spree/calculator/free_shipping.rb +0 -1
- data/app/models/spree/calculator/tiered_flat_rate.rb +17 -3
- data/app/models/spree/calculator/tiered_percent.rb +18 -3
- data/app/models/spree/distributed_amounts_handler.rb +43 -0
- data/app/models/spree/gateway/bogus.rb +7 -83
- data/app/models/spree/gateway/bogus_simple.rb +7 -20
- data/app/models/spree/gateway.rb +8 -58
- data/app/models/spree/image.rb +1 -1
- data/app/models/spree/line_item.rb +1 -1
- data/app/models/spree/option_value.rb +1 -1
- data/app/models/spree/order/checkout.rb +1 -4
- data/app/models/spree/order/number_generator.rb +43 -0
- data/app/models/spree/order.rb +33 -38
- data/app/models/spree/order_contents.rb +1 -1
- data/app/models/spree/order_taxation.rb +79 -0
- data/app/models/spree/order_update_attributes.rb +0 -2
- data/app/models/spree/order_updater.rb +55 -33
- data/app/models/spree/payment.rb +0 -1
- data/app/models/spree/payment_method/bogus_credit_card.rb +87 -0
- data/app/models/spree/payment_method/check.rb +14 -6
- data/app/models/spree/payment_method/credit_card.rb +41 -0
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +24 -0
- data/app/models/spree/payment_method/store_credit.rb +5 -13
- data/app/models/spree/payment_method.rb +126 -40
- data/app/models/spree/preferences/preferable.rb +5 -1
- data/app/models/spree/preferences/store.rb +2 -2
- data/app/models/spree/product/scopes.rb +14 -1
- data/app/models/spree/product.rb +10 -4
- data/app/models/spree/promotion_action.rb +4 -0
- data/app/models/spree/promotion_code/batch_builder.rb +3 -2
- data/app/models/spree/promotion_rule.rb +4 -0
- data/app/models/spree/role.rb +2 -0
- data/app/models/spree/role_user.rb +2 -0
- data/app/models/spree/shipment.rb +4 -2
- data/app/models/spree/shipping_method.rb +3 -1
- data/app/models/spree/shipping_rate.rb +1 -1
- data/app/models/spree/state.rb +10 -2
- data/app/models/spree/stock_item.rb +3 -3
- data/app/models/spree/store.rb +5 -0
- data/app/models/spree/store_credit.rb +2 -2
- data/app/models/spree/store_credit_event.rb +1 -1
- data/app/models/spree/store_selector/by_server_name.rb +30 -0
- data/app/models/spree/store_selector/legacy.rb +48 -0
- data/app/models/spree/tax/item_tax.rb +20 -0
- data/app/models/spree/tax/order_adjuster.rb +2 -14
- data/app/models/spree/tax/order_tax.rb +18 -0
- data/app/models/spree/tax/shipping_rate_taxer.rb +4 -13
- data/app/models/spree/tax/tax_helpers.rb +5 -3
- data/app/models/spree/tax_calculator/default.rb +83 -0
- data/app/models/spree/tax_calculator/shipping_rate.rb +46 -0
- data/app/models/spree/tax_category.rb +9 -1
- data/app/models/spree/tax_rate.rb +31 -7
- data/app/models/spree/tax_rate_tax_category.rb +6 -0
- data/app/models/spree/taxon.rb +1 -1
- data/app/models/spree/variant.rb +1 -1
- data/app/views/spree/{shipment_mailer → carton_mailer}/shipped_email.html.erb +3 -3
- data/app/views/spree/order_mailer/cancel_email.html.erb +3 -3
- data/app/views/spree/order_mailer/confirm_email.html.erb +2 -2
- data/app/views/spree/order_mailer/inventory_cancellation_email.html.erb +26 -0
- data/app/views/spree/reimbursement_mailer/reimbursement_email.html.erb +2 -2
- data/app/views/spree/test_mailer/test_email.html.erb +2 -2
- data/config/locales/en.yml +66 -57
- data/db/default/spree/refund_reasons.rb +1 -0
- data/db/default/spree/shipping_categories.rb +1 -0
- data/db/default/spree/stock_locations.rb +2 -0
- data/db/default/spree/stores.rb +3 -4
- data/db/migrate/20170412103617_transform_tax_rate_category_relation.rb +48 -0
- data/db/migrate/20170422134804_add_roles_unique_constraints.rb +6 -0
- data/db/migrate/20170522143442_add_time_range_to_tax_rate.rb +6 -0
- data/db/migrate/20170608074534_rename_bogus_gateways.rb +13 -0
- data/lib/generators/spree/custom_user/custom_user_generator.rb +1 -1
- data/lib/generators/spree/dummy/dummy_generator.rb +10 -4
- data/lib/generators/spree/dummy/templates/rails/database.yml +12 -12
- data/lib/generators/spree/install/install_generator.rb +5 -5
- data/lib/generators/spree/install/templates/config/initializers/{spree.rb → solidus.rb} +0 -0
- data/lib/solidus/migrations/rename_gateways.rb +39 -0
- data/lib/spree/core/controller_helpers/auth.rb +1 -1
- data/lib/spree/core/controller_helpers/order.rb +10 -5
- data/lib/spree/core/controller_helpers/store.rb +1 -9
- data/lib/spree/core/current_store.rb +6 -14
- data/lib/spree/core/engine.rb +4 -3
- data/lib/spree/core/importer/order.rb +4 -4
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +0 -1
- data/lib/spree/localized_number.rb +2 -1
- data/lib/spree/permitted_attributes.rb +12 -6
- data/lib/spree/testing_support/capybara_ext.rb +0 -1
- data/lib/spree/testing_support/factories/adjustment_factory.rb +5 -1
- data/lib/spree/testing_support/factories/order_factory.rb +26 -24
- data/lib/spree/testing_support/factories/payment_factory.rb +4 -0
- data/lib/spree/testing_support/factories/payment_method_factory.rb +3 -3
- data/lib/spree/testing_support/factories/shipment_factory.rb +7 -3
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +1 -1
- data/lib/spree/testing_support/factories/variant_factory.rb +3 -1
- data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -4
- data/lib/tasks/migrations/migrate_user_addresses.rake +2 -2
- data/lib/tasks/migrations/rename_gateways.rake +19 -0
- data/solidus_core.gemspec +2 -3
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +32 -6
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -1
- data/spec/lib/spree/core/current_store_spec.rb +6 -11
- data/spec/lib/spree/core/price_migrator_spec.rb +4 -4
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +199 -91
- data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +18 -0
- data/spec/lib/spree/localized_number_spec.rb +6 -0
- data/spec/mailers/carton_mailer_spec.rb +3 -3
- data/spec/models/spree/address_spec.rb +3 -3
- data/spec/models/spree/adjustment_spec.rb +71 -27
- data/spec/models/spree/calculator/default_tax_spec.rb +72 -1
- data/spec/models/spree/calculator/distributed_amount_spec.rb +32 -0
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +20 -1
- data/spec/models/spree/calculator/tiered_percent_spec.rb +20 -1
- data/spec/models/spree/distributed_amounts_handler_spec.rb +79 -0
- data/spec/models/spree/gateway/bogus_simple.rb +7 -13
- data/spec/models/spree/gateway/bogus_spec.rb +8 -4
- data/spec/models/spree/gateway_spec.rb +6 -105
- data/spec/models/spree/image_spec.rb +23 -0
- data/spec/models/spree/order/checkout_spec.rb +3 -18
- data/spec/models/spree/order/number_generator_spec.rb +45 -0
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +135 -0
- data/spec/models/spree/order/payment_spec.rb +7 -2
- data/spec/models/spree/order/state_machine_spec.rb +4 -2
- data/spec/models/spree/order_capturing_spec.rb +8 -8
- data/spec/models/spree/order_contents_spec.rb +8 -1
- data/spec/models/spree/order_shipping_spec.rb +5 -1
- data/spec/models/spree/order_spec.rb +156 -83
- data/spec/models/spree/order_taxation_spec.rb +126 -0
- data/spec/models/spree/order_update_attributes_spec.rb +1 -5
- data/spec/models/spree/order_updater_spec.rb +20 -21
- data/spec/models/spree/payment_create_spec.rb +14 -6
- data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +8 -0
- data/spec/models/spree/payment_method/check_spec.rb +78 -0
- data/spec/models/spree/payment_method/credit_card_spec.rb +66 -0
- data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +18 -0
- data/spec/models/spree/payment_method_spec.rb +47 -2
- data/spec/models/spree/payment_spec.rb +6 -8
- data/spec/models/spree/preference_spec.rb +1 -1
- data/spec/models/spree/price_spec.rb +1 -1
- data/spec/models/spree/product/scopes_spec.rb +46 -0
- data/spec/models/spree/promotion_action_spec.rb +4 -0
- data/spec/models/spree/promotion_code/batch_builder_spec.rb +25 -3
- data/spec/models/spree/promotion_code_batch_spec.rb +0 -6
- data/spec/models/spree/promotion_handler/coupon_spec.rb +1 -1
- data/spec/models/spree/promotion_rule_spec.rb +5 -0
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +1 -1
- data/spec/models/spree/shipment_spec.rb +24 -3
- data/spec/models/spree/shipping_rate_spec.rb +5 -5
- data/spec/models/spree/state_spec.rb +31 -4
- data/spec/models/spree/stock/coordinator_spec.rb +24 -0
- data/spec/models/spree/stock/estimator_spec.rb +1 -1
- data/spec/models/spree/store_selector/by_server_name_spec.rb +26 -0
- data/spec/models/spree/store_selector/legacy_spec.rb +44 -0
- data/spec/models/spree/store_spec.rb +10 -2
- data/spec/models/spree/tax/order_adjuster_spec.rb +11 -21
- data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +10 -3
- data/spec/models/spree/tax/taxation_integration_spec.rb +43 -8
- data/spec/models/spree/tax_calculator/default_spec.rb +54 -0
- data/spec/models/spree/tax_rate_spec.rb +92 -0
- data/spec/models/spree/variant/vat_price_generator_spec.rb +4 -4
- data/spec/models/spree/variant_spec.rb +8 -2
- data/spec/spec_helper.rb +2 -1
- data/spec/support/test_gateway.rb +1 -1
- metadata +45 -24
- data/app/models/spree/tax/item_adjuster.rb +0 -51
- data/spec/models/spree/tax/item_adjuster_spec.rb +0 -82
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: 2.
|
|
4
|
+
version: 2.3.0.beta1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Solidus Team
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-07-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activemerchant
|
|
@@ -188,42 +188,28 @@ dependencies:
|
|
|
188
188
|
requirements:
|
|
189
189
|
- - "~>"
|
|
190
190
|
- !ruby/object:Gem::Version
|
|
191
|
-
version: 2.
|
|
191
|
+
version: '2.3'
|
|
192
192
|
type: :runtime
|
|
193
193
|
prerelease: false
|
|
194
194
|
version_requirements: !ruby/object:Gem::Requirement
|
|
195
195
|
requirements:
|
|
196
196
|
- - "~>"
|
|
197
197
|
- !ruby/object:Gem::Version
|
|
198
|
-
version: 2.
|
|
199
|
-
- !ruby/object:Gem::Dependency
|
|
200
|
-
name: premailer-rails
|
|
201
|
-
requirement: !ruby/object:Gem::Requirement
|
|
202
|
-
requirements:
|
|
203
|
-
- - ">="
|
|
204
|
-
- !ruby/object:Gem::Version
|
|
205
|
-
version: '0'
|
|
206
|
-
type: :runtime
|
|
207
|
-
prerelease: false
|
|
208
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
209
|
-
requirements:
|
|
210
|
-
- - ">="
|
|
211
|
-
- !ruby/object:Gem::Version
|
|
212
|
-
version: '0'
|
|
198
|
+
version: '2.3'
|
|
213
199
|
- !ruby/object:Gem::Dependency
|
|
214
200
|
name: rails
|
|
215
201
|
requirement: !ruby/object:Gem::Requirement
|
|
216
202
|
requirements:
|
|
217
203
|
- - "~>"
|
|
218
204
|
- !ruby/object:Gem::Version
|
|
219
|
-
version: 5.
|
|
205
|
+
version: 5.1.0
|
|
220
206
|
type: :runtime
|
|
221
207
|
prerelease: false
|
|
222
208
|
version_requirements: !ruby/object:Gem::Requirement
|
|
223
209
|
requirements:
|
|
224
210
|
- - "~>"
|
|
225
211
|
- !ruby/object:Gem::Version
|
|
226
|
-
version: 5.
|
|
212
|
+
version: 5.1.0
|
|
227
213
|
- !ruby/object:Gem::Dependency
|
|
228
214
|
name: ransack
|
|
229
215
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -387,6 +373,7 @@ files:
|
|
|
387
373
|
- app/models/spree/billing_integration.rb
|
|
388
374
|
- app/models/spree/calculator.rb
|
|
389
375
|
- app/models/spree/calculator/default_tax.rb
|
|
376
|
+
- app/models/spree/calculator/distributed_amount.rb
|
|
390
377
|
- app/models/spree/calculator/flat_percent_item_total.rb
|
|
391
378
|
- app/models/spree/calculator/flat_rate.rb
|
|
392
379
|
- app/models/spree/calculator/flexi_rate.rb
|
|
@@ -407,6 +394,7 @@ files:
|
|
|
407
394
|
- app/models/spree/country.rb
|
|
408
395
|
- app/models/spree/credit_card.rb
|
|
409
396
|
- app/models/spree/customer_return.rb
|
|
397
|
+
- app/models/spree/distributed_amounts_handler.rb
|
|
410
398
|
- app/models/spree/exchange.rb
|
|
411
399
|
- app/models/spree/gateway.rb
|
|
412
400
|
- app/models/spree/gateway/bogus.rb
|
|
@@ -422,6 +410,7 @@ files:
|
|
|
422
410
|
- app/models/spree/option_values_variant.rb
|
|
423
411
|
- app/models/spree/order.rb
|
|
424
412
|
- app/models/spree/order/checkout.rb
|
|
413
|
+
- app/models/spree/order/number_generator.rb
|
|
425
414
|
- app/models/spree/order/payments.rb
|
|
426
415
|
- app/models/spree/order_cancellations.rb
|
|
427
416
|
- app/models/spree/order_capturing.rb
|
|
@@ -432,6 +421,7 @@ files:
|
|
|
432
421
|
- app/models/spree/order_promotion.rb
|
|
433
422
|
- app/models/spree/order_shipping.rb
|
|
434
423
|
- app/models/spree/order_stock_location.rb
|
|
424
|
+
- app/models/spree/order_taxation.rb
|
|
435
425
|
- app/models/spree/order_update_attributes.rb
|
|
436
426
|
- app/models/spree/order_updater.rb
|
|
437
427
|
- app/models/spree/payment.rb
|
|
@@ -439,7 +429,10 @@ files:
|
|
|
439
429
|
- app/models/spree/payment_capture_event.rb
|
|
440
430
|
- app/models/spree/payment_create.rb
|
|
441
431
|
- app/models/spree/payment_method.rb
|
|
432
|
+
- app/models/spree/payment_method/bogus_credit_card.rb
|
|
442
433
|
- app/models/spree/payment_method/check.rb
|
|
434
|
+
- app/models/spree/payment_method/credit_card.rb
|
|
435
|
+
- app/models/spree/payment_method/simple_bogus_credit_card.rb
|
|
443
436
|
- app/models/spree/payment_method/store_credit.rb
|
|
444
437
|
- app/models/spree/payment_source.rb
|
|
445
438
|
- app/models/spree/preference.rb
|
|
@@ -557,13 +550,19 @@ files:
|
|
|
557
550
|
- app/models/spree/store_credit_type.rb
|
|
558
551
|
- app/models/spree/store_credit_update_reason.rb
|
|
559
552
|
- app/models/spree/store_payment_method.rb
|
|
560
|
-
- app/models/spree/
|
|
553
|
+
- app/models/spree/store_selector/by_server_name.rb
|
|
554
|
+
- app/models/spree/store_selector/legacy.rb
|
|
555
|
+
- app/models/spree/tax/item_tax.rb
|
|
561
556
|
- app/models/spree/tax/order_adjuster.rb
|
|
557
|
+
- app/models/spree/tax/order_tax.rb
|
|
562
558
|
- app/models/spree/tax/shipping_rate_taxer.rb
|
|
563
559
|
- app/models/spree/tax/tax_helpers.rb
|
|
564
560
|
- app/models/spree/tax/tax_location.rb
|
|
561
|
+
- app/models/spree/tax_calculator/default.rb
|
|
562
|
+
- app/models/spree/tax_calculator/shipping_rate.rb
|
|
565
563
|
- app/models/spree/tax_category.rb
|
|
566
564
|
- app/models/spree/tax_rate.rb
|
|
565
|
+
- app/models/spree/tax_rate_tax_category.rb
|
|
567
566
|
- app/models/spree/taxon.rb
|
|
568
567
|
- app/models/spree/taxonomy.rb
|
|
569
568
|
- app/models/spree/transfer_item.rb
|
|
@@ -587,11 +586,13 @@ files:
|
|
|
587
586
|
- app/models/spree/zone.rb
|
|
588
587
|
- app/models/spree/zone_member.rb
|
|
589
588
|
- app/views/layouts/spree/base_mailer.html.erb
|
|
589
|
+
- app/views/spree/carton_mailer/shipped_email.html.erb
|
|
590
590
|
- app/views/spree/carton_mailer/shipped_email.text.erb
|
|
591
591
|
- app/views/spree/order_mailer/cancel_email.html.erb
|
|
592
592
|
- app/views/spree/order_mailer/cancel_email.text.erb
|
|
593
593
|
- app/views/spree/order_mailer/confirm_email.html.erb
|
|
594
594
|
- app/views/spree/order_mailer/confirm_email.text.erb
|
|
595
|
+
- app/views/spree/order_mailer/inventory_cancellation_email.html.erb
|
|
595
596
|
- app/views/spree/order_mailer/inventory_cancellation_email.text.erb
|
|
596
597
|
- app/views/spree/promotion_code_batch_mailer/promotion_code_batch_errored.text.erb
|
|
597
598
|
- app/views/spree/promotion_code_batch_mailer/promotion_code_batch_finished.text.erb
|
|
@@ -600,16 +601,18 @@ files:
|
|
|
600
601
|
- app/views/spree/shared/_base_mailer_footer.html.erb
|
|
601
602
|
- app/views/spree/shared/_base_mailer_header.html.erb
|
|
602
603
|
- app/views/spree/shared/_error_messages.html.erb
|
|
603
|
-
- app/views/spree/shipment_mailer/shipped_email.html.erb
|
|
604
604
|
- app/views/spree/test_mailer/test_email.html.erb
|
|
605
605
|
- app/views/spree/test_mailer/test_email.text.erb
|
|
606
606
|
- config/initializers/assets.rb
|
|
607
607
|
- config/initializers/friendly_id.rb
|
|
608
608
|
- config/locales/en.yml
|
|
609
609
|
- db/default/spree/countries.rb
|
|
610
|
+
- db/default/spree/refund_reasons.rb
|
|
610
611
|
- db/default/spree/return_reasons.rb
|
|
611
612
|
- db/default/spree/roles.rb
|
|
613
|
+
- db/default/spree/shipping_categories.rb
|
|
612
614
|
- db/default/spree/states.rb
|
|
615
|
+
- db/default/spree/stock_locations.rb
|
|
613
616
|
- db/default/spree/store_credit.rb
|
|
614
617
|
- db/default/spree/stores.rb
|
|
615
618
|
- db/default/spree/zones.rb
|
|
@@ -918,6 +921,10 @@ files:
|
|
|
918
921
|
- db/migrate/20161123154034_add_available_to_users_and_remove_display_on_from_shipping_methods.rb
|
|
919
922
|
- db/migrate/20161129035810_add_index_to_spree_payments_number.rb
|
|
920
923
|
- db/migrate/20170223235001_remove_spree_store_credits_column.rb
|
|
924
|
+
- db/migrate/20170412103617_transform_tax_rate_category_relation.rb
|
|
925
|
+
- db/migrate/20170422134804_add_roles_unique_constraints.rb
|
|
926
|
+
- db/migrate/20170522143442_add_time_range_to_tax_rate.rb
|
|
927
|
+
- db/migrate/20170608074534_rename_bogus_gateways.rb
|
|
921
928
|
- db/seeds.rb
|
|
922
929
|
- lib/generators/spree/custom_user/custom_user_generator.rb
|
|
923
930
|
- lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt
|
|
@@ -931,11 +938,12 @@ files:
|
|
|
931
938
|
- lib/generators/spree/dummy/templates/rails/script/rails
|
|
932
939
|
- lib/generators/spree/dummy/templates/rails/test.rb
|
|
933
940
|
- lib/generators/spree/install/install_generator.rb
|
|
934
|
-
- lib/generators/spree/install/templates/config/initializers/
|
|
941
|
+
- lib/generators/spree/install/templates/config/initializers/solidus.rb
|
|
935
942
|
- lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js
|
|
936
943
|
- lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js
|
|
937
944
|
- lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css
|
|
938
945
|
- lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css
|
|
946
|
+
- lib/solidus/migrations/rename_gateways.rb
|
|
939
947
|
- lib/solidus_core.rb
|
|
940
948
|
- lib/spree/core.rb
|
|
941
949
|
- lib/spree/core/class_constantizer.rb
|
|
@@ -1085,6 +1093,7 @@ files:
|
|
|
1085
1093
|
- lib/tasks/migrations/create_vat_prices.rake
|
|
1086
1094
|
- lib/tasks/migrations/migrate_shipping_rate_taxes.rake
|
|
1087
1095
|
- lib/tasks/migrations/migrate_user_addresses.rake
|
|
1096
|
+
- lib/tasks/migrations/rename_gateways.rake
|
|
1088
1097
|
- lib/tasks/order_capturing.rake
|
|
1089
1098
|
- lib/tasks/upgrade.rake
|
|
1090
1099
|
- script/rails
|
|
@@ -1199,6 +1208,7 @@ files:
|
|
|
1199
1208
|
- spec/models/spree/app_configuration_spec.rb
|
|
1200
1209
|
- spec/models/spree/asset_spec.rb
|
|
1201
1210
|
- spec/models/spree/calculator/default_tax_spec.rb
|
|
1211
|
+
- spec/models/spree/calculator/distributed_amount_spec.rb
|
|
1202
1212
|
- spec/models/spree/calculator/flat_percent_item_total_spec.rb
|
|
1203
1213
|
- spec/models/spree/calculator/flat_rate_spec.rb
|
|
1204
1214
|
- spec/models/spree/calculator/flexi_rate_spec.rb
|
|
@@ -1224,10 +1234,12 @@ files:
|
|
|
1224
1234
|
- spec/models/spree/country_spec.rb
|
|
1225
1235
|
- spec/models/spree/credit_card_spec.rb
|
|
1226
1236
|
- spec/models/spree/customer_return_spec.rb
|
|
1237
|
+
- spec/models/spree/distributed_amounts_handler_spec.rb
|
|
1227
1238
|
- spec/models/spree/exchange_spec.rb
|
|
1228
1239
|
- spec/models/spree/gateway/bogus_simple.rb
|
|
1229
1240
|
- spec/models/spree/gateway/bogus_spec.rb
|
|
1230
1241
|
- spec/models/spree/gateway_spec.rb
|
|
1242
|
+
- spec/models/spree/image_spec.rb
|
|
1231
1243
|
- spec/models/spree/inventory_unit_spec.rb
|
|
1232
1244
|
- spec/models/spree/line_item_spec.rb
|
|
1233
1245
|
- spec/models/spree/option_type_spec.rb
|
|
@@ -1237,6 +1249,8 @@ files:
|
|
|
1237
1249
|
- spec/models/spree/order/callbacks_spec.rb
|
|
1238
1250
|
- spec/models/spree/order/checkout_spec.rb
|
|
1239
1251
|
- spec/models/spree/order/finalizing_spec.rb
|
|
1252
|
+
- spec/models/spree/order/number_generator_spec.rb
|
|
1253
|
+
- spec/models/spree/order/outstanding_balance_integration_spec.rb
|
|
1240
1254
|
- spec/models/spree/order/payment_spec.rb
|
|
1241
1255
|
- spec/models/spree/order/risk_assessment_spec.rb
|
|
1242
1256
|
- spec/models/spree/order/state_machine_spec.rb
|
|
@@ -1254,9 +1268,14 @@ files:
|
|
|
1254
1268
|
- spec/models/spree/order_shipping_spec.rb
|
|
1255
1269
|
- spec/models/spree/order_spec.rb
|
|
1256
1270
|
- spec/models/spree/order_stock_location_spec.rb
|
|
1271
|
+
- spec/models/spree/order_taxation_spec.rb
|
|
1257
1272
|
- spec/models/spree/order_update_attributes_spec.rb
|
|
1258
1273
|
- spec/models/spree/order_updater_spec.rb
|
|
1259
1274
|
- spec/models/spree/payment_create_spec.rb
|
|
1275
|
+
- spec/models/spree/payment_method/bogus_credit_card_spec.rb
|
|
1276
|
+
- spec/models/spree/payment_method/check_spec.rb
|
|
1277
|
+
- spec/models/spree/payment_method/credit_card_spec.rb
|
|
1278
|
+
- spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb
|
|
1260
1279
|
- spec/models/spree/payment_method/store_credit_spec.rb
|
|
1261
1280
|
- spec/models/spree/payment_method_spec.rb
|
|
1262
1281
|
- spec/models/spree/payment_spec.rb
|
|
@@ -1371,12 +1390,14 @@ files:
|
|
|
1371
1390
|
- spec/models/spree/store_credit_category_spec.rb
|
|
1372
1391
|
- spec/models/spree/store_credit_event_spec.rb
|
|
1373
1392
|
- spec/models/spree/store_credit_spec.rb
|
|
1393
|
+
- spec/models/spree/store_selector/by_server_name_spec.rb
|
|
1394
|
+
- spec/models/spree/store_selector/legacy_spec.rb
|
|
1374
1395
|
- spec/models/spree/store_spec.rb
|
|
1375
|
-
- spec/models/spree/tax/item_adjuster_spec.rb
|
|
1376
1396
|
- spec/models/spree/tax/order_adjuster_spec.rb
|
|
1377
1397
|
- spec/models/spree/tax/shipping_rate_taxer_spec.rb
|
|
1378
1398
|
- spec/models/spree/tax/tax_location_spec.rb
|
|
1379
1399
|
- spec/models/spree/tax/taxation_integration_spec.rb
|
|
1400
|
+
- spec/models/spree/tax_calculator/default_spec.rb
|
|
1380
1401
|
- spec/models/spree/tax_category_spec.rb
|
|
1381
1402
|
- spec/models/spree/tax_rate_spec.rb
|
|
1382
1403
|
- spec/models/spree/taxon_spec.rb
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
# @api private
|
|
2
|
-
# @note This is a helper class for Tax::OrderAdjuster. It is marked as api
|
|
3
|
-
# private because taxes should always be calculated on the entire order, so
|
|
4
|
-
# external code should call Tax::OrderAdjuster instead of Tax::ItemAdjuster.
|
|
5
|
-
module Spree
|
|
6
|
-
module Tax
|
|
7
|
-
# Adjust a single taxable item (line item or shipment)
|
|
8
|
-
class ItemAdjuster
|
|
9
|
-
attr_reader :item, :order
|
|
10
|
-
|
|
11
|
-
include TaxHelpers
|
|
12
|
-
|
|
13
|
-
# @param [Spree::LineItem,Spree::Shipment] item to adjust
|
|
14
|
-
# @param [Hash] options like already known tax rates for the order's zone
|
|
15
|
-
def initialize(item, options = {})
|
|
16
|
-
@item = item
|
|
17
|
-
@order = @item.order
|
|
18
|
-
# set instance variable so `TaxRate.match` is only called when necessary
|
|
19
|
-
@rates_for_order = options[:rates_for_order]
|
|
20
|
-
@rates_for_default_zone = options[:rates_for_default_zone]
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
# This updates the amounts for adjustments which already exist and
|
|
24
|
-
# creates and remove adjustments as needed to match the applicable
|
|
25
|
-
# (geographically and category-wise) tax rates.
|
|
26
|
-
def adjust!
|
|
27
|
-
rates = rates_for_item(item)
|
|
28
|
-
|
|
29
|
-
tax_adjustments = item.adjustments.select(&:tax?)
|
|
30
|
-
active_adjustments = rates.map do |rate|
|
|
31
|
-
# Find an existing adjustment from the same source.
|
|
32
|
-
# All tax adjustments already have source_type == 'Spree::TaxRate' so
|
|
33
|
-
# we need only check source_id.
|
|
34
|
-
adjustment = tax_adjustments.detect{|a| a.source_id == rate.id }
|
|
35
|
-
if adjustment
|
|
36
|
-
adjustment.update!
|
|
37
|
-
adjustment
|
|
38
|
-
else
|
|
39
|
-
# Create a new adjustment
|
|
40
|
-
rate.adjust(nil, item)
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
unmatched_adjustments = tax_adjustments - active_adjustments
|
|
45
|
-
|
|
46
|
-
# Remove any tax adjustments tied to rates which no longer match
|
|
47
|
-
item.adjustments.destroy(unmatched_adjustments)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
RSpec.describe Spree::Tax::ItemAdjuster do
|
|
4
|
-
subject(:adjuster) { described_class.new(item) }
|
|
5
|
-
let(:order) { create(:order) }
|
|
6
|
-
let(:item) { create(:line_item, order: order) }
|
|
7
|
-
|
|
8
|
-
def tax_adjustments
|
|
9
|
-
item.adjustments.tax.to_a
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
describe 'initialization' do
|
|
13
|
-
it 'sets order to item order' do
|
|
14
|
-
expect(adjuster.order).to eq(item.order)
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
it 'sets adjustable' do
|
|
18
|
-
expect(adjuster.item).to eq(item)
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
shared_examples_for 'untaxed item' do
|
|
23
|
-
it 'creates no adjustments' do
|
|
24
|
-
adjuster.adjust!
|
|
25
|
-
expect(tax_adjustments).to eq([])
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
context 'with an existing tax adjustment' do
|
|
29
|
-
let!(:existing_adjustment) { create(:tax_adjustment, adjustable: item) }
|
|
30
|
-
|
|
31
|
-
it 'removes the existing adjustment' do
|
|
32
|
-
adjuster.adjust!
|
|
33
|
-
aggregate_failures do
|
|
34
|
-
expect(tax_adjustments).to eq([])
|
|
35
|
-
expect(Spree::Adjustment).to_not be_exists(existing_adjustment.id)
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
describe '#adjust!' do
|
|
42
|
-
before do
|
|
43
|
-
expect(order).to receive(:tax_address).at_least(:once).and_return(address)
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
context 'when the order has no tax zone' do
|
|
47
|
-
let(:address) { Spree::Tax::TaxLocation.new }
|
|
48
|
-
|
|
49
|
-
it_behaves_like 'untaxed item'
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
context 'when the order has a taxable address' do
|
|
53
|
-
let(:item) { build_stubbed :line_item, order: order }
|
|
54
|
-
let(:address) { order.tax_address }
|
|
55
|
-
|
|
56
|
-
before do
|
|
57
|
-
expect(Spree::TaxRate).to receive(:for_address).with(order.tax_address).and_return(rates_for_order_zone)
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
context 'when there are no matching rates' do
|
|
61
|
-
let(:rates_for_order_zone) { [] }
|
|
62
|
-
|
|
63
|
-
it_behaves_like 'untaxed item'
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
context 'when there are matching rates for the zone' do
|
|
67
|
-
context 'and all rates have the same tax category as the item' do
|
|
68
|
-
let(:item) { build_stubbed :line_item, order: order, tax_category: item_tax_category }
|
|
69
|
-
let(:item_tax_category) { build_stubbed(:tax_category) }
|
|
70
|
-
let(:rate_1) { create :tax_rate, tax_category: item_tax_category }
|
|
71
|
-
let(:rate_2) { create :tax_rate }
|
|
72
|
-
let(:rates_for_order_zone) { [rate_1, rate_2] }
|
|
73
|
-
|
|
74
|
-
it 'creates an adjustment for every matching rate' do
|
|
75
|
-
adjuster.adjust!
|
|
76
|
-
expect(tax_adjustments.length).to eq(1)
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
end
|