solidus_core 2.10.5 → 3.0.8
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/app/assets/javascripts/spree.js.erb +0 -22
- data/app/controllers/spree/base_controller.rb +1 -0
- data/app/helpers/spree/store_helper.rb +0 -11
- data/app/mailers/spree/base_mailer.rb +4 -0
- data/app/mailers/spree/carton_mailer.rb +1 -5
- data/app/mailers/spree/order_mailer.rb +1 -1
- data/app/models/concerns/spree/active_storage_adapter/attachment.rb +71 -0
- data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
- data/app/models/concerns/spree/active_storage_adapter.rb +118 -0
- data/app/models/concerns/spree/adjustment_source.rb +0 -15
- data/app/models/concerns/spree/calculated_adjustments.rb +0 -18
- data/app/models/concerns/spree/default_price.rb +1 -1
- data/app/models/concerns/spree/soft_deletable.rb +16 -0
- data/app/models/concerns/spree/user_address_book.rb +61 -44
- data/app/models/concerns/spree/user_methods.rb +23 -12
- data/app/models/spree/ability.rb +0 -13
- data/app/models/spree/address/name.rb +31 -0
- data/app/models/spree/address/state_validator.rb +71 -0
- data/app/models/spree/address.rb +17 -95
- data/app/models/spree/adjustment.rb +1 -29
- data/app/models/spree/base.rb +1 -28
- data/app/models/spree/calculator/default_tax.rb +1 -1
- data/app/models/spree/calculator/flexi_rate.rb +0 -5
- data/app/models/spree/calculator.rb +8 -11
- data/app/models/spree/country.rb +1 -6
- data/app/models/spree/credit_card.rb +2 -29
- data/app/models/spree/customer_return.rb +5 -6
- data/app/models/spree/exchange.rb +1 -1
- data/app/models/spree/image/active_storage_attachment.rb +29 -0
- data/app/models/spree/image/paperclip_attachment.rb +1 -1
- data/app/models/spree/image.rb +0 -7
- data/app/models/spree/inventory_unit.rb +1 -22
- data/app/models/spree/line_item.rb +12 -46
- data/app/models/spree/log_entry.rb +74 -1
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +2 -2
- data/app/models/spree/order/payments.rb +2 -2
- data/app/models/spree/order.rb +70 -132
- data/app/models/spree/order_cancellations.rb +4 -24
- data/app/models/spree/order_inventory.rb +16 -4
- data/app/models/spree/order_merger.rb +7 -5
- data/app/models/spree/order_promotion.rb +1 -1
- data/app/models/spree/order_shipping.rb +6 -9
- data/app/models/spree/order_updater.rb +7 -15
- data/app/models/spree/payment/cancellation.rb +3 -22
- data/app/models/spree/payment/processing.rb +54 -30
- data/app/models/spree/payment.rb +13 -9
- data/app/models/spree/payment_create.rb +1 -13
- data/app/models/spree/payment_method/bogus_credit_card.rb +13 -9
- data/app/models/spree/payment_method/credit_card.rb +1 -3
- data/app/models/spree/payment_method/simple_bogus_credit_card.rb +4 -4
- data/app/models/spree/payment_method.rb +7 -106
- data/app/models/spree/payment_source.rb +2 -2
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +3 -9
- data/app/models/spree/product/scopes.rb +9 -32
- data/app/models/spree/product.rb +24 -52
- data/app/models/spree/promotion/actions/create_adjustment.rb +0 -3
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +0 -3
- data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +0 -3
- data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
- data/app/models/spree/promotion/rules/taxon.rb +2 -15
- data/app/models/spree/promotion.rb +15 -8
- data/app/models/spree/promotion_action.rb +5 -15
- data/app/models/spree/promotion_code/batch_builder.rb +0 -14
- data/app/models/spree/promotion_code.rb +8 -3
- data/app/models/spree/promotion_code_batch.rb +1 -1
- data/app/models/spree/promotion_handler/coupon.rb +2 -2
- data/app/models/spree/promotion_rule.rb +5 -1
- data/app/models/spree/promotion_rule_role.rb +1 -1
- data/app/models/spree/refund.rb +19 -13
- data/app/models/spree/reimbursement.rb +11 -22
- data/app/models/spree/reimbursement_performer.rb +2 -8
- data/app/models/spree/reimbursement_type/credit.rb +1 -4
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +8 -2
- data/app/models/spree/reimbursement_type/store_credit.rb +1 -4
- data/app/models/spree/return_authorization.rb +2 -5
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
- data/app/models/spree/return_item.rb +10 -18
- data/app/models/spree/role.rb +1 -1
- data/app/models/spree/shipment.rb +3 -56
- data/app/models/spree/shipping_calculator.rb +1 -1
- data/app/models/spree/shipping_manifest.rb +2 -2
- data/app/models/spree/shipping_method.rb +3 -35
- data/app/models/spree/shipping_rate.rb +1 -3
- data/app/models/spree/shipping_rate_tax.rb +1 -1
- data/app/models/spree/state.rb +0 -4
- data/app/models/spree/stock/availability_validator.rb +2 -2
- data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
- data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
- data/app/models/spree/stock/inventory_validator.rb +2 -2
- data/app/models/spree/stock/package.rb +1 -1
- data/app/models/spree/stock/simple_coordinator.rb +7 -18
- data/app/models/spree/stock/splitter/base.rb +2 -7
- data/app/models/spree/stock_item.rb +3 -15
- data/app/models/spree/stock_movement.rb +2 -0
- data/app/models/spree/store.rb +1 -13
- data/app/models/spree/store_credit.rb +9 -7
- data/app/models/spree/store_credit_category.rb +3 -8
- data/app/models/spree/store_credit_event.rb +1 -7
- data/app/models/spree/store_credit_reason.rb +0 -4
- data/app/models/spree/tax/tax_helpers.rb +1 -1
- data/app/models/spree/tax_calculator/shipping_rate.rb +1 -12
- data/app/models/spree/tax_category.rb +2 -8
- data/app/models/spree/tax_rate.rb +7 -34
- data/app/models/spree/taxon/active_storage_attachment.rb +13 -0
- data/app/models/spree/taxon/paperclip_attachment.rb +0 -4
- data/app/models/spree/taxon.rb +1 -12
- data/app/models/spree/user_address.rb +3 -2
- data/app/models/spree/variant.rb +8 -58
- data/app/models/spree/variant_property_rule.rb +5 -1
- data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
- data/app/models/spree/zone.rb +1 -1
- data/config/locales/en.yml +293 -13
- data/db/default/spree/countries.rb +1 -1
- data/db/default/spree/states.rb +12 -4
- data/db/default/spree/store_credit.rb +2 -2
- data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
- data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
- data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
- data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
- data/db/migrate/20210122110141_add_name_to_spree_addresses.rb +13 -0
- data/lib/generators/{spree → solidus}/install/install_generator.rb +82 -14
- data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +4 -9
- data/lib/generators/spree/dummy/dummy_generator.rb +2 -1
- data/lib/generators/spree/dummy/templates/rails/database.yml +6 -1
- data/lib/generators/spree/dummy/templates/rails/storage.yml +3 -0
- data/lib/generators/spree/dummy/templates/rails/test.rb +6 -1
- data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
- data/lib/spree/app_configuration.rb +104 -72
- data/lib/spree/core/class_constantizer.rb +2 -0
- data/lib/spree/core/controller_helpers/auth.rb +4 -4
- data/lib/spree/core/controller_helpers/current_host.rb +17 -0
- data/lib/spree/core/controller_helpers/order.rb +8 -27
- data/lib/spree/core/controller_helpers/payment_parameters.rb +0 -54
- data/lib/spree/core/controller_helpers/pricing.rb +0 -8
- data/lib/spree/core/controller_helpers/strong_parameters.rb +0 -4
- data/lib/spree/core/engine.rb +23 -8
- data/lib/spree/core/environment_extension.rb +0 -9
- data/lib/spree/core/importer/order.rb +24 -10
- data/lib/spree/core/permalinks.rb +1 -3
- data/lib/spree/core/product_filters.rb +5 -44
- data/lib/spree/core/role_configuration.rb +0 -14
- data/lib/spree/core/search/base.rb +0 -26
- data/lib/spree/core/state_machines/order.rb +249 -0
- data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
- data/lib/spree/core/state_machines.rb +11 -1
- data/lib/spree/core/validators/email.rb +2 -2
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/core.rb +11 -19
- data/lib/spree/deprecation.rb +1 -1
- data/lib/spree/encryptor.rb +25 -0
- data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
- data/lib/spree/event/configuration.rb +7 -7
- data/lib/spree/event/subscriber.rb +22 -20
- data/lib/spree/event/subscriber_registry.rb +94 -0
- data/lib/spree/event.rb +20 -18
- data/lib/spree/i18n.rb +0 -22
- data/lib/spree/mailer_previews/carton_preview.rb +2 -1
- data/lib/spree/money.rb +3 -18
- data/lib/spree/permission_sets/configuration_display.rb +14 -14
- data/lib/spree/permission_sets/default_customer.rb +16 -16
- data/lib/spree/permission_sets/order_display.rb +11 -11
- data/lib/spree/permission_sets/order_management.rb +1 -1
- data/lib/spree/permission_sets/product_display.rb +9 -9
- data/lib/spree/permission_sets/promotion_display.rb +5 -5
- data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
- data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
- data/lib/spree/permission_sets/stock_display.rb +2 -2
- data/lib/spree/permission_sets/stock_management.rb +1 -1
- data/lib/spree/permission_sets/user_display.rb +3 -3
- data/lib/spree/permission_sets/user_management.rb +4 -3
- data/lib/spree/permitted_attributes.rb +12 -56
- data/lib/spree/preferences/persistable.rb +23 -0
- data/lib/spree/preferences/preferable.rb +4 -3
- data/lib/spree/preferences/preferable_class_methods.rb +22 -3
- data/lib/spree/testing_support/ability_helpers.rb +9 -9
- data/lib/spree/testing_support/authorization_helpers.rb +1 -0
- data/lib/spree/testing_support/blacklist_urls.rb +23 -0
- data/lib/spree/testing_support/capybara_ext.rb +3 -30
- data/lib/spree/testing_support/common_rake.rb +3 -3
- data/lib/spree/testing_support/controller_requests.rb +0 -82
- data/lib/spree/testing_support/dummy_app/mailer_previews/test_mailer_preview.rb +4 -0
- data/lib/spree/testing_support/dummy_app/migrations.rb +2 -6
- data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
- data/lib/spree/testing_support/dummy_app.rb +41 -24
- data/lib/spree/testing_support/factories/address_factory.rb +7 -4
- data/lib/spree/testing_support/factories/adjustment_factory.rb +10 -5
- data/lib/spree/testing_support/factories/adjustment_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/calculator_factory.rb +5 -0
- data/lib/spree/testing_support/factories/carton_factory.rb +7 -2
- data/lib/spree/testing_support/factories/country_factory.rb +5 -0
- data/lib/spree/testing_support/factories/credit_card_factory.rb +5 -0
- data/lib/spree/testing_support/factories/customer_return_factory.rb +8 -3
- data/lib/spree/testing_support/factories/image_factory.rb +6 -1
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +9 -4
- data/lib/spree/testing_support/factories/line_item_factory.rb +7 -2
- data/lib/spree/testing_support/factories/option_type_factory.rb +8 -0
- data/lib/spree/testing_support/factories/option_value_factory.rb +5 -0
- data/lib/spree/testing_support/factories/order_factory.rb +11 -7
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +7 -2
- data/lib/spree/testing_support/factories/payment_factory.rb +9 -4
- data/lib/spree/testing_support/factories/payment_method_factory.rb +5 -0
- data/lib/spree/testing_support/factories/price_factory.rb +6 -1
- data/lib/spree/testing_support/factories/product_factory.rb +10 -5
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +7 -2
- data/lib/spree/testing_support/factories/product_property_factory.rb +7 -2
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +5 -0
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +7 -2
- data/lib/spree/testing_support/factories/promotion_factory.rb +13 -2
- data/lib/spree/testing_support/factories/property_factory.rb +5 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +7 -2
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +7 -2
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +5 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +8 -3
- data/lib/spree/testing_support/factories/return_item_factory.rb +8 -4
- data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/role_factory.rb +5 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +9 -3
- data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +8 -3
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +7 -2
- data/lib/spree/testing_support/factories/state_factory.rb +7 -1
- data/lib/spree/testing_support/factories/stock_item_factory.rb +7 -2
- data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -3
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +6 -1
- data/lib/spree/testing_support/factories/stock_package_factory.rb +7 -2
- data/lib/spree/testing_support/factories/store_credit_category_factory.rb +13 -0
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +8 -2
- data/lib/spree/testing_support/factories/store_credit_factory.rb +8 -3
- data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +8 -1
- data/lib/spree/testing_support/factories/store_credit_type_factory.rb +5 -0
- data/lib/spree/testing_support/factories/store_factory.rb +6 -1
- data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -1
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -3
- data/lib/spree/testing_support/factories/taxon_factory.rb +10 -1
- data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
- data/lib/spree/testing_support/factories/user_factory.rb +14 -3
- data/lib/spree/testing_support/factories/variant_factory.rb +9 -4
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +7 -2
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +8 -3
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +7 -2
- data/lib/spree/testing_support/factories/zone_factory.rb +8 -3
- data/lib/spree/testing_support/factories.rb +8 -4
- data/lib/spree/testing_support/factory_bot.rb +68 -0
- data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
- data/lib/spree/testing_support/fixtures/file.txt +1 -0
- data/lib/spree/testing_support/job_helpers.rb +24 -0
- data/lib/spree/testing_support/order_walkthrough.rb +10 -13
- data/lib/spree/testing_support/precompiled_assets.rb +15 -0
- data/lib/spree/testing_support/preferences.rb +0 -23
- data/lib/spree/testing_support/sequences.rb +4 -1
- data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
- data/lib/spree/testing_support/translations.rb +25 -0
- data/lib/spree/testing_support.rb +31 -0
- data/lib/tasks/solidus/check_orders_with_invalid_email.rake +18 -0
- data/lib/tasks/upgrade.rake +15 -0
- data/solidus_core.gemspec +30 -7
- metadata +137 -408
- data/app/mailers/spree/test_mailer.rb +0 -13
- data/app/models/concerns/spree/user_payment_source.rb +0 -26
- data/app/models/spree/calculator/free_shipping.rb +0 -21
- data/app/models/spree/calculator/percent_per_item.rb +0 -49
- data/app/models/spree/calculator/price_sack.rb +0 -27
- data/app/models/spree/gateway/bogus.rb +0 -13
- data/app/models/spree/gateway/bogus_simple.rb +0 -13
- data/app/models/spree/gateway.rb +0 -14
- data/app/models/spree/order/checkout.rb +0 -243
- data/app/models/spree/order_capturing.rb +0 -50
- data/app/models/spree/promotion_handler/free_shipping.rb +0 -9
- data/lib/solidus/migrations/rename_gateways.rb +0 -41
- data/lib/spree/core/current_store.rb +0 -24
- data/lib/spree/paranoia_deprecations.rb +0 -21
- data/lib/spree/promo/environment.rb +0 -12
- data/lib/spree/testing_support/bar_ability.rb +0 -19
- data/lib/tasks/core.rake +0 -104
- data/lib/tasks/email.rake +0 -11
- data/lib/tasks/migrations/copy_order_bill_address_to_credit_card.rake +0 -119
- data/lib/tasks/migrations/migrate_shipping_rate_taxes.rake +0 -22
- data/lib/tasks/migrations/migrate_user_addresses.rake +0 -34
- data/lib/tasks/migrations/rename_gateways.rake +0 -23
- data/lib/tasks/order_capturing.rake +0 -27
- data/script/rails +0 -10
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spec/helpers/base_helper_spec.rb +0 -168
- data/spec/helpers/products_helper_spec.rb +0 -202
- data/spec/helpers/taxons_helper_spec.rb +0 -43
- data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
- data/spec/lib/calculated_adjustments_spec.rb +0 -133
- data/spec/lib/i18n_spec.rb +0 -97
- data/spec/lib/search/base_spec.rb +0 -91
- data/spec/lib/search/variant_spec.rb +0 -115
- data/spec/lib/spree/app_configuration_spec.rb +0 -140
- data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
- data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
- data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
- data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
- data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
- data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
- data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
- data/spec/lib/spree/core/current_store_spec.rb +0 -33
- data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
- data/spec/lib/spree/core/importer/order_spec.rb +0 -484
- data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
- data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
- data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
- data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
- data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
- data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
- data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
- data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
- data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
- data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
- data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
- data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
- data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
- data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
- data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
- data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
- data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
- data/spec/lib/spree/core/validators/email_spec.rb +0 -53
- data/spec/lib/spree/core/version_spec.rb +0 -19
- data/spec/lib/spree/event/subscriber_spec.rb +0 -85
- data/spec/lib/spree/event_spec.rb +0 -130
- data/spec/lib/spree/localized_number_spec.rb +0 -45
- data/spec/lib/spree/migrations_spec.rb +0 -32
- data/spec/lib/spree/money_spec.rb +0 -298
- data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
- data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
- data/spec/lib/spree/promo/environment_spec.rb +0 -53
- data/spec/lib/tasks/dummy_task.rake +0 -12
- data/spec/lib/tasks/dummy_task_spec.rb +0 -30
- data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
- data/spec/mailers/carton_mailer_spec.rb +0 -44
- data/spec/mailers/order_mailer_spec.rb +0 -117
- data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
- data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
- data/spec/mailers/test_mailer_spec.rb +0 -13
- data/spec/models/spree/ability_spec.rb +0 -279
- data/spec/models/spree/address_spec.rb +0 -399
- data/spec/models/spree/adjustment_reason_spec.rb +0 -11
- data/spec/models/spree/adjustment_spec.rb +0 -339
- data/spec/models/spree/asset_spec.rb +0 -25
- data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
- data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
- data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
- data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
- data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
- data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
- data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
- data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
- data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
- data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
- data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
- data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
- data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
- data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
- data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
- data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
- data/spec/models/spree/calculator_spec.rb +0 -43
- data/spec/models/spree/carton_spec.rb +0 -145
- data/spec/models/spree/classification_spec.rb +0 -126
- data/spec/models/spree/concerns/display_money_spec.rb +0 -44
- data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
- data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
- data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
- data/spec/models/spree/country_spec.rb +0 -154
- data/spec/models/spree/credit_card_spec.rb +0 -373
- data/spec/models/spree/customer_return_spec.rb +0 -294
- data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
- data/spec/models/spree/exchange_spec.rb +0 -76
- data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
- data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
- data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
- data/spec/models/spree/gateway/bogus_simple.rb +0 -14
- data/spec/models/spree/gateway/bogus_spec.rb +0 -14
- data/spec/models/spree/gateway_spec.rb +0 -14
- data/spec/models/spree/image_spec.rb +0 -25
- data/spec/models/spree/inventory_unit_spec.rb +0 -309
- data/spec/models/spree/line_item_spec.rb +0 -240
- data/spec/models/spree/option_type_spec.rb +0 -16
- data/spec/models/spree/option_value_spec.rb +0 -52
- data/spec/models/spree/order/address_spec.rb +0 -52
- data/spec/models/spree/order/adjustments_spec.rb +0 -29
- data/spec/models/spree/order/callbacks_spec.rb +0 -44
- data/spec/models/spree/order/checkout_spec.rb +0 -740
- data/spec/models/spree/order/finalizing_spec.rb +0 -92
- data/spec/models/spree/order/number_generator_spec.rb +0 -47
- data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
- data/spec/models/spree/order/payment_spec.rb +0 -280
- data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
- data/spec/models/spree/order/state_machine_spec.rb +0 -122
- data/spec/models/spree/order/totals_spec.rb +0 -26
- data/spec/models/spree/order/validations_spec.rb +0 -17
- data/spec/models/spree/order_cancellations_spec.rb +0 -233
- data/spec/models/spree/order_capturing_spec.rb +0 -16
- data/spec/models/spree/order_contents_spec.rb +0 -362
- data/spec/models/spree/order_inventory_spec.rb +0 -285
- data/spec/models/spree/order_merger_spec.rb +0 -162
- data/spec/models/spree/order_mutex_spec.rb +0 -89
- data/spec/models/spree/order_promotion_spec.rb +0 -33
- data/spec/models/spree/order_shipping_spec.rb +0 -247
- data/spec/models/spree/order_spec.rb +0 -1687
- data/spec/models/spree/order_taxation_spec.rb +0 -128
- data/spec/models/spree/order_update_attributes_spec.rb +0 -49
- data/spec/models/spree/order_updater_spec.rb +0 -556
- data/spec/models/spree/payment/cancellation_spec.rb +0 -84
- data/spec/models/spree/payment_create_spec.rb +0 -195
- data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
- data/spec/models/spree/payment_method/check_spec.rb +0 -80
- data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
- data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
- data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
- data/spec/models/spree/payment_method_spec.rb +0 -408
- data/spec/models/spree/payment_spec.rb +0 -1270
- data/spec/models/spree/permission_sets/base_spec.rb +0 -14
- data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
- data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
- data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
- data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
- data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
- data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
- data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
- data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
- data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
- data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
- data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
- data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
- data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
- data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
- data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
- data/spec/models/spree/preference_spec.rb +0 -79
- data/spec/models/spree/preferences/configuration_spec.rb +0 -27
- data/spec/models/spree/preferences/preferable_spec.rb +0 -334
- data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
- data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
- data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
- data/spec/models/spree/preferences/store_spec.rb +0 -40
- data/spec/models/spree/price_spec.rb +0 -150
- data/spec/models/spree/product/scopes_spec.rb +0 -164
- data/spec/models/spree/product_duplicator_spec.rb +0 -92
- data/spec/models/spree/product_filter_spec.rb +0 -28
- data/spec/models/spree/product_property_spec.rb +0 -20
- data/spec/models/spree/product_spec.rb +0 -584
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
- data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
- data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
- data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
- data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
- data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
- data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
- data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
- data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
- data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
- data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
- data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
- data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
- data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
- data/spec/models/spree/promotion_action_spec.rb +0 -44
- data/spec/models/spree/promotion_category_spec.rb +0 -19
- data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
- data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
- data/spec/models/spree/promotion_code_spec.rb +0 -206
- data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
- data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
- data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
- data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
- data/spec/models/spree/promotion_rule_spec.rb +0 -34
- data/spec/models/spree/promotion_spec.rb +0 -945
- data/spec/models/spree/refund_spec.rb +0 -200
- data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
- data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
- data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
- data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
- data/spec/models/spree/reimbursement_spec.rb +0 -278
- data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
- data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
- data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
- data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
- data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
- data/spec/models/spree/return_authorization_spec.rb +0 -226
- data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
- data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
- data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
- data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
- data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
- data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
- data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
- data/spec/models/spree/return_item_spec.rb +0 -785
- data/spec/models/spree/returns_calculator_spec.rb +0 -16
- data/spec/models/spree/shipment_spec.rb +0 -914
- data/spec/models/spree/shipping_calculator_spec.rb +0 -45
- data/spec/models/spree/shipping_manifest_spec.rb +0 -110
- data/spec/models/spree/shipping_method_spec.rb +0 -292
- data/spec/models/spree/shipping_rate_spec.rb +0 -154
- data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
- data/spec/models/spree/state_spec.rb +0 -43
- data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
- data/spec/models/spree/stock/availability_spec.rb +0 -143
- data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
- data/spec/models/spree/stock/content_item_spec.rb +0 -70
- data/spec/models/spree/stock/differentiator_spec.rb +0 -41
- data/spec/models/spree/stock/estimator_spec.rb +0 -241
- data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
- data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
- data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
- data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
- data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
- data/spec/models/spree/stock/package_spec.rb +0 -182
- data/spec/models/spree/stock/quantifier_spec.rb +0 -113
- data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
- data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
- data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
- data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
- data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
- data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
- data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
- data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
- data/spec/models/spree/stock_item_spec.rb +0 -348
- data/spec/models/spree/stock_location_spec.rb +0 -288
- data/spec/models/spree/stock_movement_spec.rb +0 -58
- data/spec/models/spree/stock_quantities_spec.rb +0 -249
- data/spec/models/spree/store_credit_category_spec.rb +0 -19
- data/spec/models/spree/store_credit_event_spec.rb +0 -328
- data/spec/models/spree/store_credit_spec.rb +0 -900
- data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
- data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
- data/spec/models/spree/store_spec.rb +0 -156
- data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
- data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
- data/spec/models/spree/tax/tax_location_spec.rb +0 -79
- data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
- data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
- data/spec/models/spree/tax_category_spec.rb +0 -50
- data/spec/models/spree/tax_rate_spec.rb +0 -317
- data/spec/models/spree/taxon_spec.rb +0 -197
- data/spec/models/spree/taxonomy_spec.rb +0 -15
- data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
- data/spec/models/spree/unit_cancel_spec.rb +0 -126
- data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
- data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
- data/spec/models/spree/user_spec.rb +0 -247
- data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
- data/spec/models/spree/variant/price_selector_spec.rb +0 -90
- data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
- data/spec/models/spree/variant/scopes_spec.rb +0 -94
- data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
- data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
- data/spec/models/spree/variant_property_rule_spec.rb +0 -85
- data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
- data/spec/models/spree/variant_spec.rb +0 -862
- data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
- data/spec/models/spree/wallet_spec.rb +0 -155
- data/spec/models/spree/zone_spec.rb +0 -248
- data/spec/rails_helper.rb +0 -46
- data/spec/shared_examples/calculator_shared_examples.rb +0 -10
- data/spec/spec_helper.rb +0 -36
- data/spec/support/big_decimal.rb +0 -7
- data/spec/support/concerns/default_price.rb +0 -44
- data/spec/support/concerns/payment_source.rb +0 -66
- data/spec/support/concerns/working_factories.rb +0 -15
- data/spec/support/dummy_ability.rb +0 -7
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
- /data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
- /data/{app/models → lib}/spree/user_class_handle.rb +0 -0
@@ -10,10 +10,8 @@ module Spree
|
|
10
10
|
# promotion system.
|
11
11
|
#
|
12
12
|
class LineItem < Spree::Base
|
13
|
-
class CurrencyMismatch < StandardError; end
|
14
|
-
|
15
13
|
belongs_to :order, class_name: "Spree::Order", inverse_of: :line_items, touch: true, optional: true
|
16
|
-
belongs_to :variant, -> {
|
14
|
+
belongs_to :variant, -> { with_discarded }, class_name: "Spree::Variant", inverse_of: :line_items, optional: true
|
17
15
|
belongs_to :tax_category, class_name: "Spree::TaxCategory", optional: true
|
18
16
|
|
19
17
|
has_one :product, through: :variant
|
@@ -33,6 +31,7 @@ module Spree
|
|
33
31
|
greater_than: -1
|
34
32
|
}
|
35
33
|
validates :price, numericality: true
|
34
|
+
validate :price_match_order_currency
|
36
35
|
|
37
36
|
after_save :update_inventory
|
38
37
|
|
@@ -42,7 +41,7 @@ module Spree
|
|
42
41
|
delegate :name, :description, :sku, :should_track_inventory?, to: :variant
|
43
42
|
delegate :currency, to: :order, allow_nil: true
|
44
43
|
|
45
|
-
attr_accessor :target_shipment
|
44
|
+
attr_accessor :target_shipment, :price_currency
|
46
45
|
|
47
46
|
self.whitelisted_ransackable_associations = ['variant']
|
48
47
|
self.whitelisted_ransackable_attributes = ['variant_id']
|
@@ -54,20 +53,11 @@ module Spree
|
|
54
53
|
end
|
55
54
|
alias subtotal amount
|
56
55
|
|
57
|
-
# @return [BigDecimal] the amount of this line item, taking into
|
58
|
-
# consideration line item promotions.
|
59
|
-
def discounted_amount
|
60
|
-
amount + promo_total
|
61
|
-
end
|
62
|
-
deprecate discounted_amount: :total_before_tax, deprecator: Spree::Deprecation
|
63
|
-
|
64
56
|
# @return [BigDecimal] the amount of this line item, taking into
|
65
57
|
# consideration all its adjustments.
|
66
58
|
def total
|
67
59
|
amount + adjustment_total
|
68
60
|
end
|
69
|
-
alias final_amount total
|
70
|
-
deprecate final_amount: :total, deprecator: Spree::Deprecation
|
71
61
|
|
72
62
|
# @return [BigDecimal] the amount of this item, taking into consideration
|
73
63
|
# all non-tax adjustments.
|
@@ -80,20 +70,11 @@ module Spree
|
|
80
70
|
def total_excluding_vat
|
81
71
|
total_before_tax - included_tax_total
|
82
72
|
end
|
83
|
-
alias pre_tax_amount total_excluding_vat
|
84
|
-
deprecate pre_tax_amount: :total_excluding_vat, deprecator: Spree::Deprecation
|
85
73
|
|
86
74
|
extend Spree::DisplayMoney
|
87
|
-
money_methods :amount, :
|
75
|
+
money_methods :amount, :price,
|
88
76
|
:included_tax_total, :additional_tax_total,
|
89
77
|
:total, :total_before_tax, :total_excluding_vat
|
90
|
-
deprecate display_discounted_amount: :display_total_before_tax, deprecator: Spree::Deprecation
|
91
|
-
alias display_final_amount display_total
|
92
|
-
deprecate display_final_amount: :display_total, deprecator: Spree::Deprecation
|
93
|
-
alias display_pre_tax_amount display_total_excluding_vat
|
94
|
-
deprecate display_pre_tax_amount: :display_total_excluding_vat, deprecator: Spree::Deprecation
|
95
|
-
alias discounted_money display_discounted_amount
|
96
|
-
deprecate discounted_money: :display_total_before_tax, deprecator: Spree::Deprecation
|
97
78
|
|
98
79
|
# @return [Spree::Money] the price of this line item
|
99
80
|
alias money_price display_price
|
@@ -102,8 +83,6 @@ module Spree
|
|
102
83
|
|
103
84
|
# @return [Spree::Money] the amount of this line item
|
104
85
|
alias money display_amount
|
105
|
-
alias display_total display_amount
|
106
|
-
deprecate display_total: :display_amount, deprecator: Spree::Deprecation
|
107
86
|
|
108
87
|
# Sets price from a `Spree::Money` object
|
109
88
|
#
|
@@ -111,9 +90,8 @@ module Spree
|
|
111
90
|
def money_price=(money)
|
112
91
|
if !money
|
113
92
|
self.price = nil
|
114
|
-
elsif money.currency.iso_code != currency
|
115
|
-
raise CurrencyMismatch, "Line item price currency must match order currency!"
|
116
93
|
else
|
94
|
+
self.price_currency = money.currency.iso_code
|
117
95
|
self.price = money.to_d
|
118
96
|
end
|
119
97
|
end
|
@@ -153,12 +131,6 @@ module Spree
|
|
153
131
|
Spree::Config.pricing_options_class.from_line_item(self)
|
154
132
|
end
|
155
133
|
|
156
|
-
def currency=(_currency)
|
157
|
-
Spree::Deprecation.warn 'Spree::LineItem#currency= is deprecated ' \
|
158
|
-
'and will take no effect.',
|
159
|
-
caller
|
160
|
-
end
|
161
|
-
|
162
134
|
private
|
163
135
|
|
164
136
|
# Sets the quantity to zero if it is nil or less than zero.
|
@@ -174,25 +146,13 @@ module Spree
|
|
174
146
|
set_pricing_attributes
|
175
147
|
end
|
176
148
|
|
177
|
-
# Set price, cost_price and currency.
|
178
|
-
# did more than just setting the price, hence renamed to #set_pricing_attributes
|
149
|
+
# Set price, cost_price and currency.
|
179
150
|
def set_pricing_attributes
|
180
|
-
# If the legacy method #copy_price has been overridden, handle that gracefully
|
181
|
-
return handle_copy_price_override if respond_to?(:copy_price)
|
182
|
-
|
183
151
|
self.cost_price ||= variant.cost_price
|
184
152
|
self.money_price = variant.price_for(pricing_options) if price.nil?
|
185
153
|
true
|
186
154
|
end
|
187
155
|
|
188
|
-
def handle_copy_price_override
|
189
|
-
copy_price
|
190
|
-
Spree::Deprecation.warn 'You have overridden Spree::LineItem#copy_price. ' \
|
191
|
-
'This method is now called Spree::LineItem#set_pricing_attributes. ' \
|
192
|
-
'Please adjust your override.',
|
193
|
-
caller
|
194
|
-
end
|
195
|
-
|
196
156
|
def update_inventory
|
197
157
|
if (saved_changes? || target_shipment.present?) && order.has_checkout_step?("delivery")
|
198
158
|
Spree::OrderInventory.new(order, self).verify(target_shipment)
|
@@ -202,5 +162,11 @@ module Spree
|
|
202
162
|
def destroy_inventory_units
|
203
163
|
inventory_units.destroy_all
|
204
164
|
end
|
165
|
+
|
166
|
+
def price_match_order_currency
|
167
|
+
return if price_currency.blank? || price_currency == currency
|
168
|
+
|
169
|
+
errors.add(:price, :does_not_match_order_currency)
|
170
|
+
end
|
205
171
|
end
|
206
172
|
end
|
@@ -2,10 +2,83 @@
|
|
2
2
|
|
3
3
|
module Spree
|
4
4
|
class LogEntry < Spree::Base
|
5
|
+
# Classes used in core that can be present in serialized details
|
6
|
+
#
|
7
|
+
# Users can add their own classes in
|
8
|
+
# `Spree::Config#log_entry_permitted_classes`.
|
9
|
+
#
|
10
|
+
# @see Spree::AppConfiguration#log_entry_permitted_classes
|
11
|
+
CORE_PERMITTED_CLASSES = [
|
12
|
+
ActiveMerchant::Billing::Response,
|
13
|
+
ActiveSupport::TimeWithZone,
|
14
|
+
Time,
|
15
|
+
ActiveSupport::TimeZone
|
16
|
+
].freeze
|
17
|
+
|
18
|
+
# Raised when a disallowed class is tried to be loaded
|
19
|
+
class DisallowedClass < RuntimeError
|
20
|
+
attr_reader :psych_exception
|
21
|
+
|
22
|
+
def initialize(psych_exception:)
|
23
|
+
@psych_exception = psych_exception
|
24
|
+
super(default_message)
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def default_message
|
30
|
+
<<~MSG
|
31
|
+
#{psych_exception.message}
|
32
|
+
|
33
|
+
You can specify custom classes to be loaded in config/initializers/spree.rb. E.g:
|
34
|
+
|
35
|
+
Spree.config do |config|
|
36
|
+
config.log_entry_permitted_classes = ['MyClass']
|
37
|
+
end
|
38
|
+
MSG
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# Raised when YAML contains aliases and they're not enabled
|
43
|
+
class BadAlias < RuntimeError
|
44
|
+
attr_reader :psych_exception
|
45
|
+
|
46
|
+
def initialize(psych_exception:)
|
47
|
+
@psych_exception = psych_exception
|
48
|
+
super(default_message)
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def default_message
|
54
|
+
<<~MSG
|
55
|
+
#{psych_exception.message}
|
56
|
+
|
57
|
+
You can explicitly enable aliases in config/initializers/spree.rb. E.g:
|
58
|
+
|
59
|
+
Spree.config do |config|
|
60
|
+
config.log_entry_allow_aliases = true
|
61
|
+
end
|
62
|
+
MSG
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.permitted_classes
|
67
|
+
CORE_PERMITTED_CLASSES + Spree::Config.log_entry_permitted_classes.map(&:constantize)
|
68
|
+
end
|
69
|
+
|
5
70
|
belongs_to :source, polymorphic: true, optional: true
|
6
71
|
|
7
72
|
def parsed_details
|
8
|
-
@details ||= YAML.
|
73
|
+
@details ||= YAML.safe_load(
|
74
|
+
details,
|
75
|
+
permitted_classes: self.class.permitted_classes,
|
76
|
+
aliases: Spree::Config.log_entry_allow_aliases
|
77
|
+
)
|
78
|
+
rescue Psych::DisallowedClass => e
|
79
|
+
raise DisallowedClass.new(psych_exception: e)
|
80
|
+
rescue Psych::BadAlias => e
|
81
|
+
raise BadAlias.new(psych_exception: e)
|
9
82
|
end
|
10
83
|
end
|
11
84
|
end
|
@@ -15,7 +15,7 @@ module Spree
|
|
15
15
|
has_many :product_option_types, dependent: :destroy, inverse_of: :option_type
|
16
16
|
has_many :products, through: :product_option_types
|
17
17
|
|
18
|
-
validates :name, presence: true, uniqueness: { allow_blank: true }
|
18
|
+
validates :name, presence: true, uniqueness: { allow_blank: true, case_sensitive: true }
|
19
19
|
validates :presentation, presence: true
|
20
20
|
|
21
21
|
default_scope -> { order(:position) }
|
@@ -8,13 +8,13 @@ module Spree
|
|
8
8
|
has_many :option_values_variants, dependent: :destroy
|
9
9
|
has_many :variants, through: :option_values_variants
|
10
10
|
|
11
|
-
validates :name, presence: true, uniqueness: { scope: :option_type_id, allow_blank: true }
|
11
|
+
validates :name, presence: true, uniqueness: { scope: :option_type_id, allow_blank: true, case_sensitive: true }
|
12
12
|
validates :presentation, presence: true
|
13
13
|
|
14
14
|
after_save :touch, if: :saved_changes?
|
15
15
|
after_touch :touch_all_variants
|
16
16
|
|
17
|
-
delegate :name, :presentation, to: :option_type, prefix: :option_type
|
17
|
+
delegate :name, :presentation, to: :option_type, prefix: :option_type, allow_nil: true
|
18
18
|
|
19
19
|
self.whitelisted_ransackable_attributes = %w[name presentation]
|
20
20
|
|
@@ -37,14 +37,14 @@ module Spree
|
|
37
37
|
|
38
38
|
private
|
39
39
|
|
40
|
-
def process_payments_with(
|
40
|
+
def process_payments_with(method_name)
|
41
41
|
# Don't run if there is nothing to pay.
|
42
42
|
return true if payment_total >= total
|
43
43
|
|
44
44
|
unprocessed_payments.each do |payment|
|
45
45
|
break if payment_total >= total
|
46
46
|
|
47
|
-
payment.public_send(
|
47
|
+
payment.public_send(method_name)
|
48
48
|
end
|
49
49
|
rescue Core::GatewayError => error
|
50
50
|
result = !!Spree::Config[:allow_checkout_on_gateway_error]
|
data/app/models/spree/order.rb
CHANGED
@@ -23,10 +23,18 @@ module Spree
|
|
23
23
|
ORDER_NUMBER_LETTERS = false
|
24
24
|
ORDER_NUMBER_PREFIX = 'R'
|
25
25
|
|
26
|
-
include Spree::
|
26
|
+
include ::Spree::Config.state_machines.order
|
27
|
+
|
27
28
|
include Spree::Order::Payments
|
28
29
|
|
29
|
-
class InsufficientStock < StandardError
|
30
|
+
class InsufficientStock < StandardError
|
31
|
+
attr_reader :items
|
32
|
+
|
33
|
+
def initialize(message = nil, items: {})
|
34
|
+
@items = items
|
35
|
+
super message
|
36
|
+
end
|
37
|
+
end
|
30
38
|
class CannotRebuildShipments < StandardError; end
|
31
39
|
|
32
40
|
extend Spree::DisplayMoney
|
@@ -49,10 +57,6 @@ module Spree
|
|
49
57
|
attr_accessor :temporary_address
|
50
58
|
|
51
59
|
attr_accessor :temporary_payment_source
|
52
|
-
alias_method :temporary_credit_card, :temporary_payment_source
|
53
|
-
alias_method :temporary_credit_card=, :temporary_payment_source=
|
54
|
-
deprecate temporary_credit_card: :temporary_payment_source, deprecator: Spree::Deprecation
|
55
|
-
deprecate :temporary_credit_card= => :temporary_payment_source=, deprecator: Spree::Deprecation
|
56
60
|
|
57
61
|
# Customer info
|
58
62
|
belongs_to :user, class_name: Spree::UserClassHandle.new, optional: true
|
@@ -97,6 +101,8 @@ module Spree
|
|
97
101
|
|
98
102
|
# Returns
|
99
103
|
has_many :return_authorizations, dependent: :destroy, inverse_of: :order
|
104
|
+
has_many :return_items, through: :inventory_units
|
105
|
+
has_many :customer_returns, through: :return_items
|
100
106
|
has_many :reimbursements, inverse_of: :order
|
101
107
|
has_many :refunds, through: :payments
|
102
108
|
|
@@ -125,7 +131,7 @@ module Spree
|
|
125
131
|
validates :email, presence: true, if: :require_email
|
126
132
|
validates :email, 'spree/email' => true, allow_blank: true
|
127
133
|
validates :guest_token, presence: { allow_nil: true }
|
128
|
-
validates :number, presence: true, uniqueness: { allow_blank: true }
|
134
|
+
validates :number, presence: true, uniqueness: { allow_blank: true, case_sensitive: true }
|
129
135
|
validates :store_id, presence: true
|
130
136
|
|
131
137
|
def self.find_by_param(value)
|
@@ -136,12 +142,8 @@ module Spree
|
|
136
142
|
find_by! number: value
|
137
143
|
end
|
138
144
|
|
139
|
-
delegate :
|
140
|
-
alias_method :
|
141
|
-
alias_method :billing_lastname, :bill_address_lastname
|
142
|
-
|
143
|
-
class_attribute :update_hooks
|
144
|
-
self.update_hooks = Set.new
|
145
|
+
delegate :name, to: :bill_address, prefix: true, allow_nil: true
|
146
|
+
alias_method :billing_name, :bill_address_name
|
145
147
|
|
146
148
|
class_attribute :line_item_comparison_hooks
|
147
149
|
self.line_item_comparison_hooks = Set.new
|
@@ -178,12 +180,6 @@ module Spree
|
|
178
180
|
where.not(state: 'canceled')
|
179
181
|
end
|
180
182
|
|
181
|
-
# Use this method in other gems that wish to register their own custom logic
|
182
|
-
# that should be called after Order#update
|
183
|
-
def self.register_update_hook(hook)
|
184
|
-
update_hooks.add(hook)
|
185
|
-
end
|
186
|
-
|
187
183
|
# Use this method in other gems that wish to register their own custom logic
|
188
184
|
# that should be called when determining if two line items are equal.
|
189
185
|
def self.register_line_item_comparison_hook(hook)
|
@@ -192,14 +188,8 @@ module Spree
|
|
192
188
|
|
193
189
|
# For compatiblity with Calculator::PriceSack
|
194
190
|
def amount
|
195
|
-
line_items.
|
196
|
-
end
|
197
|
-
|
198
|
-
# Sum of all line item amounts after promotions, before added tax
|
199
|
-
def discounted_item_amount
|
200
|
-
line_items.to_a.sum(&:discounted_amount)
|
191
|
+
line_items.sum(&:amount)
|
201
192
|
end
|
202
|
-
deprecate discounted_item_amount: :item_total_before_tax, deprecator: Spree::Deprecation
|
203
193
|
|
204
194
|
def item_total_before_tax
|
205
195
|
line_items.to_a.sum(&:total_before_tax)
|
@@ -209,15 +199,13 @@ module Spree
|
|
209
199
|
def item_total_excluding_vat
|
210
200
|
line_items.to_a.sum(&:total_excluding_vat)
|
211
201
|
end
|
212
|
-
alias pre_tax_item_amount item_total_excluding_vat
|
213
|
-
deprecate pre_tax_item_amount: :item_total_excluding_vat, deprecator: Spree::Deprecation
|
214
202
|
|
215
203
|
def currency
|
216
204
|
self[:currency] || Spree::Config[:currency]
|
217
205
|
end
|
218
206
|
|
219
207
|
def shipping_discount
|
220
|
-
shipment_adjustments.eligible.sum(:amount) * - 1
|
208
|
+
shipment_adjustments.credit.eligible.sum(:amount) * - 1
|
221
209
|
end
|
222
210
|
|
223
211
|
def to_param
|
@@ -241,11 +229,6 @@ module Spree
|
|
241
229
|
total > 0
|
242
230
|
end
|
243
231
|
|
244
|
-
def confirmation_required?
|
245
|
-
true
|
246
|
-
end
|
247
|
-
deprecate :confirmation_required?, deprecator: Spree::Deprecation
|
248
|
-
|
249
232
|
def backordered?
|
250
233
|
shipments.any?(&:backordered?)
|
251
234
|
end
|
@@ -267,15 +250,6 @@ module Spree
|
|
267
250
|
updater.update
|
268
251
|
end
|
269
252
|
|
270
|
-
def update!(*args)
|
271
|
-
if args.empty?
|
272
|
-
Spree::Deprecation.warn "Calling order.update! with no arguments as a way to invoke the OrderUpdater is deprecated, since it conflicts with AR::Base#update! Please use order.recalculate instead"
|
273
|
-
recalculate
|
274
|
-
else
|
275
|
-
super
|
276
|
-
end
|
277
|
-
end
|
278
|
-
|
279
253
|
def assign_billing_to_shipping_address
|
280
254
|
self.ship_address = bill_address if bill_address
|
281
255
|
true
|
@@ -287,7 +261,11 @@ module Spree
|
|
287
261
|
end
|
288
262
|
|
289
263
|
def all_inventory_units_returned?
|
290
|
-
|
264
|
+
# Inventory units are transitioned to the "return" state through CustomerReturn and
|
265
|
+
# ReturnItem instead of using Order#inventory_units, thus making the latter method
|
266
|
+
# potentially return stale data. This situation requires to *reload* `inventory_units`
|
267
|
+
# in order to pick-up the latest changes and make the check on `returned?` reliable.
|
268
|
+
inventory_units.reload.all?(&:returned?)
|
291
269
|
end
|
292
270
|
|
293
271
|
def contents
|
@@ -317,14 +295,7 @@ module Spree
|
|
317
295
|
assign_attributes(attrs_to_set)
|
318
296
|
end
|
319
297
|
|
320
|
-
def generate_order_number
|
321
|
-
if options
|
322
|
-
Spree::Deprecation.warn \
|
323
|
-
"Passing options to Order#generate_order_number is deprecated. " \
|
324
|
-
"Please add your own instance of the order number generator " \
|
325
|
-
"with your options (#{options.inspect}) and store it as " \
|
326
|
-
"Spree::Config.order_number_generator in your stores config."
|
327
|
-
end
|
298
|
+
def generate_order_number
|
328
299
|
self.number ||= Spree::Config.order_number_generator.generate
|
329
300
|
end
|
330
301
|
|
@@ -365,14 +336,6 @@ module Spree
|
|
365
336
|
}
|
366
337
|
end
|
367
338
|
|
368
|
-
# Creates new tax charges if there are any applicable rates. If prices already
|
369
|
-
# include taxes then price adjustments are created instead.
|
370
|
-
# @deprecated This now happens during #recalculate
|
371
|
-
def create_tax_charge!
|
372
|
-
recalculate
|
373
|
-
end
|
374
|
-
deprecate create_tax_charge!: :recalculate, deprecator: Spree::Deprecation
|
375
|
-
|
376
339
|
def reimbursement_total
|
377
340
|
reimbursements.sum(:total)
|
378
341
|
end
|
@@ -398,7 +361,7 @@ module Spree
|
|
398
361
|
|
399
362
|
def name
|
400
363
|
if (address = bill_address || ship_address)
|
401
|
-
|
364
|
+
address.name
|
402
365
|
end
|
403
366
|
end
|
404
367
|
|
@@ -431,7 +394,6 @@ module Spree
|
|
431
394
|
|
432
395
|
updater.update_shipment_state
|
433
396
|
save!
|
434
|
-
updater.run_hooks
|
435
397
|
|
436
398
|
touch :completed_at
|
437
399
|
|
@@ -487,26 +449,6 @@ module Spree
|
|
487
449
|
recalculate
|
488
450
|
end
|
489
451
|
|
490
|
-
alias_method :has_step?, :has_checkout_step?
|
491
|
-
deprecate has_step?: :has_checkout_step?, deprecator: Spree::Deprecation
|
492
|
-
|
493
|
-
def state_changed(name)
|
494
|
-
state = "#{name}_state"
|
495
|
-
if persisted?
|
496
|
-
old_state = send("#{state}_was")
|
497
|
-
new_state = send(state)
|
498
|
-
unless old_state == new_state
|
499
|
-
state_changes.create(
|
500
|
-
previous_state: old_state,
|
501
|
-
next_state: new_state,
|
502
|
-
name: name,
|
503
|
-
user_id: user_id
|
504
|
-
)
|
505
|
-
end
|
506
|
-
end
|
507
|
-
end
|
508
|
-
deprecate :state_changed, deprecator: Spree::Deprecation
|
509
|
-
|
510
452
|
def coupon_code=(code)
|
511
453
|
@coupon_code = begin
|
512
454
|
code.strip.downcase
|
@@ -529,6 +471,18 @@ module Spree
|
|
529
471
|
end
|
530
472
|
end
|
531
473
|
|
474
|
+
def ensure_billing_address
|
475
|
+
return unless billing_address_required?
|
476
|
+
return if bill_address&.valid?
|
477
|
+
|
478
|
+
errors.add(:base, I18n.t('spree.bill_address_required'))
|
479
|
+
false
|
480
|
+
end
|
481
|
+
|
482
|
+
def billing_address_required?
|
483
|
+
Spree::Config.billing_address_required
|
484
|
+
end
|
485
|
+
|
532
486
|
def create_proposed_shipments
|
533
487
|
if completed?
|
534
488
|
raise CannotRebuildShipments.new(I18n.t('spree.cannot_rebuild_shipments_order_completed'))
|
@@ -536,7 +490,14 @@ module Spree
|
|
536
490
|
raise CannotRebuildShipments.new(I18n.t('spree.cannot_rebuild_shipments_shipments_not_pending'))
|
537
491
|
else
|
538
492
|
shipments.destroy_all
|
539
|
-
|
493
|
+
shipments.push(*Spree::Config.stock.coordinator_class.new(self).shipments)
|
494
|
+
end
|
495
|
+
end
|
496
|
+
|
497
|
+
def create_shipments_for_line_item(line_item)
|
498
|
+
units = Spree::Stock::InventoryUnitBuilder.new(self).missing_units_for_line_item(line_item)
|
499
|
+
Spree::Config.stock.coordinator_class.new(self, units).shipments.each do |shipment|
|
500
|
+
shipments << shipment
|
540
501
|
end
|
541
502
|
end
|
542
503
|
|
@@ -544,8 +505,6 @@ module Spree
|
|
544
505
|
Spree::PromotionHandler::Shipping.new(self).activate
|
545
506
|
recalculate
|
546
507
|
end
|
547
|
-
alias_method :apply_free_shipping_promotions, :apply_shipping_promotions
|
548
|
-
deprecate apply_free_shipping_promotions: :apply_shipping_promotions, deprecator: Spree::Deprecation
|
549
508
|
|
550
509
|
# Clean shipments and make order back to address state
|
551
510
|
#
|
@@ -578,12 +537,6 @@ module Spree
|
|
578
537
|
bill_address == ship_address
|
579
538
|
end
|
580
539
|
|
581
|
-
# @deprecated This now happens during #recalculate
|
582
|
-
def set_shipments_cost
|
583
|
-
recalculate
|
584
|
-
end
|
585
|
-
deprecate set_shipments_cost: :recalculate, deprecator: Spree::Deprecation
|
586
|
-
|
587
540
|
def is_risky?
|
588
541
|
payments.risky.count > 0
|
589
542
|
end
|
@@ -591,10 +544,9 @@ module Spree
|
|
591
544
|
def canceled_by(user)
|
592
545
|
transaction do
|
593
546
|
cancel!
|
594
|
-
|
595
|
-
|
596
|
-
|
597
|
-
)
|
547
|
+
# rubocop:disable Rails/SkipsModelValidations
|
548
|
+
update_column(:canceler_id, user.id)
|
549
|
+
# rubocop:enable Rails/SkipsModelValidations
|
598
550
|
end
|
599
551
|
end
|
600
552
|
|
@@ -615,11 +567,6 @@ module Spree
|
|
615
567
|
payments.offset_payment.exists? # how old versions of spree stored refunds
|
616
568
|
end
|
617
569
|
|
618
|
-
def token
|
619
|
-
Spree::Deprecation.warn("Spree::Order#token is DEPRECATED, please use #guest_token instead.", caller)
|
620
|
-
guest_token
|
621
|
-
end
|
622
|
-
|
623
570
|
def tax_total
|
624
571
|
additional_tax_total + included_tax_total
|
625
572
|
end
|
@@ -714,8 +661,8 @@ module Spree
|
|
714
661
|
# @note This doesn't persist the change bill_address or ship_address
|
715
662
|
def assign_default_user_addresses
|
716
663
|
if user
|
717
|
-
bill_address =
|
718
|
-
ship_address =
|
664
|
+
bill_address = user.bill_address
|
665
|
+
ship_address = user.ship_address
|
719
666
|
# this is one of 2 places still using User#bill_address
|
720
667
|
self.bill_address ||= bill_address if bill_address.try!(:valid?)
|
721
668
|
# Skip setting ship address if order doesn't have a delivery checkout step
|
@@ -724,11 +671,6 @@ module Spree
|
|
724
671
|
end
|
725
672
|
end
|
726
673
|
|
727
|
-
alias_method :assign_default_user_addresses!, :assign_default_user_addresses
|
728
|
-
deprecate assign_default_user_addresses!: :assign_default_user_addresses, deprecator: Spree::Deprecation
|
729
|
-
alias_method :assign_default_addresses!, :assign_default_user_addresses
|
730
|
-
deprecate assign_default_addresses!: :assign_default_user_addresses, deprecator: Spree::Deprecation
|
731
|
-
|
732
674
|
def persist_user_address!
|
733
675
|
if !temporary_address && user && user.respond_to?(:persist_order_address) && bill_address_id
|
734
676
|
user.persist_order_address(self)
|
@@ -740,8 +682,6 @@ module Spree
|
|
740
682
|
add_payment_sources_to_wallet_class.new(self).
|
741
683
|
add_to_wallet
|
742
684
|
end
|
743
|
-
alias_method :persist_user_credit_card, :add_payment_sources_to_wallet
|
744
|
-
deprecate persist_user_credit_card: :add_payment_sources_to_wallet, deprecator: Spree::Deprecation
|
745
685
|
|
746
686
|
def add_default_payment_from_wallet
|
747
687
|
builder = Spree::Config.default_payment_builder_class.new(self)
|
@@ -756,11 +696,11 @@ module Spree
|
|
756
696
|
end
|
757
697
|
end
|
758
698
|
end
|
759
|
-
alias_method :assign_default_credit_card, :add_default_payment_from_wallet
|
760
|
-
deprecate assign_default_credit_card: :add_default_payment_from_wallet, deprecator: Spree::Deprecation
|
761
699
|
|
762
700
|
def record_ip_address(ip_address)
|
763
|
-
if
|
701
|
+
if new_record?
|
702
|
+
self.last_ip_address = ip_address
|
703
|
+
elsif last_ip_address != ip_address
|
764
704
|
update_column(:last_ip_address, ip_address)
|
765
705
|
end
|
766
706
|
end
|
@@ -801,23 +741,6 @@ module Spree
|
|
801
741
|
end
|
802
742
|
end
|
803
743
|
|
804
|
-
# In case a existing credit card is provided it needs to build the payment
|
805
|
-
# attributes from scratch so we can set the amount. example payload:
|
806
|
-
#
|
807
|
-
# {
|
808
|
-
# "order": {
|
809
|
-
# "existing_card": "2"
|
810
|
-
# }
|
811
|
-
# }
|
812
|
-
#
|
813
|
-
def update_params_payment_source
|
814
|
-
Spree::Deprecation.warn('update_params_payment_source is deprecated. Please use set_payment_parameters_amount instead.', caller)
|
815
|
-
if @updating_params[:order] && (@updating_params[:order][:payments_attributes] || @updating_params[:order][:existing_card])
|
816
|
-
@updating_params[:order][:payments_attributes] ||= [{}]
|
817
|
-
@updating_params[:order][:payments_attributes].first[:amount] = total
|
818
|
-
end
|
819
|
-
end
|
820
|
-
|
821
744
|
def associate_store
|
822
745
|
self.store ||= Spree::Store.default
|
823
746
|
end
|
@@ -873,14 +796,29 @@ module Spree
|
|
873
796
|
end
|
874
797
|
|
875
798
|
def after_cancel
|
876
|
-
|
877
|
-
|
878
|
-
payments.store_credits.pending.each(&:void_transaction!)
|
799
|
+
cancel_shipments!
|
800
|
+
cancel_payments!
|
879
801
|
|
880
802
|
send_cancel_email
|
803
|
+
# rubocop:disable Rails/SkipsModelValidations
|
804
|
+
update_column(:canceled_at, Time.current)
|
805
|
+
# rubocop:enable Rails/SkipsModelValidations
|
881
806
|
recalculate
|
882
807
|
end
|
883
808
|
|
809
|
+
def cancel_shipments!
|
810
|
+
shipments.each(&:cancel!)
|
811
|
+
end
|
812
|
+
|
813
|
+
def cancel_payments!
|
814
|
+
payments.each do |payment|
|
815
|
+
next if payment.fully_refunded?
|
816
|
+
next unless payment.pending? || payment.completed?
|
817
|
+
|
818
|
+
payment.cancel!
|
819
|
+
end
|
820
|
+
end
|
821
|
+
|
884
822
|
def send_cancel_email
|
885
823
|
Spree::Config.order_mailer_class.cancel_email(self).deliver_later
|
886
824
|
end
|