solidus_core 1.1.4 → 1.2.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/app/assets/images/logo/solidus_logo.png +0 -0
- data/app/helpers/spree/base_helper.rb +2 -3
- data/app/models/concerns/spree/adjustment_source.rb +1 -1
- data/app/models/concerns/spree/default_price.rb +3 -1
- data/app/models/concerns/spree/named_type.rb +1 -1
- data/app/models/concerns/spree/user_methods.rb +10 -0
- data/app/models/spree/adjustment.rb +1 -1
- data/app/models/spree/adjustment_reason.rb +2 -4
- data/app/models/spree/app_configuration.rb +36 -0
- data/app/models/spree/base.rb +10 -1
- data/app/models/spree/calculator/tiered_percent.rb +2 -1
- data/app/models/spree/classification.rb +1 -1
- data/app/models/spree/country.rb +3 -3
- data/app/models/spree/credit_card.rb +2 -2
- data/app/models/spree/customer_return.rb +3 -4
- data/app/models/spree/inventory_unit.rb +13 -24
- data/app/models/spree/item_adjustments.rb +5 -5
- data/app/models/spree/line_item.rb +6 -15
- data/app/models/spree/log_entry.rb +1 -1
- data/app/models/spree/option_type.rb +4 -2
- data/app/models/spree/option_type_prototype.rb +6 -0
- data/app/models/spree/option_value.rb +1 -1
- data/app/models/spree/order.rb +18 -63
- data/app/models/spree/order/checkout.rb +4 -2
- data/app/models/spree/order_cancellations.rb +52 -1
- data/app/models/spree/order_contents.rb +1 -1
- data/app/models/spree/order_merger.rb +143 -0
- data/app/models/spree/order_shipping.rb +3 -3
- data/app/models/spree/order_update_attributes.rb +42 -0
- data/app/models/spree/order_updater.rb +1 -1
- data/app/models/spree/payment.rb +16 -10
- data/app/models/spree/payment_create.rb +68 -0
- data/app/models/spree/payment_method.rb +0 -1
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/price.rb +1 -8
- data/app/models/spree/product.rb +9 -44
- data/app/models/spree/product/scopes.rb +9 -7
- data/app/models/spree/promotion/rules/nth_order.rb +1 -1
- data/app/models/spree/promotion/rules/taxon.rb +2 -1
- data/app/models/spree/promotion_chooser.rb +1 -0
- data/app/models/spree/promotion_code.rb +1 -1
- data/app/models/spree/promotion_rule_taxon.rb +6 -0
- data/app/models/spree/property.rb +2 -1
- data/app/models/spree/property_prototype.rb +6 -0
- data/app/models/spree/prototype.rb +6 -2
- data/app/models/spree/reimbursement.rb +10 -0
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
- data/app/models/spree/return_reason.rb +1 -7
- data/app/models/spree/role_user.rb +3 -5
- data/app/models/spree/shipment.rb +6 -11
- data/app/models/spree/shipping_method.rb +1 -7
- data/app/models/spree/shipping_rate.rb +3 -14
- data/app/models/spree/stock/coordinator.rb +48 -4
- data/app/models/spree/stock/estimator.rb +3 -6
- data/app/models/spree/stock/packer.rb +18 -2
- data/app/models/spree/stock/shipping_rate_selector.rb +16 -0
- data/app/models/spree/stock/shipping_rate_sorter.rb +16 -0
- data/app/models/spree/stock_item.rb +19 -15
- data/app/models/spree/stock_location.rb +2 -12
- data/app/models/spree/stock_transfer.rb +3 -3
- data/app/models/spree/store_credit.rb +2 -2
- data/app/models/spree/tax_category.rb +3 -2
- data/app/models/spree/tax_rate.rb +7 -14
- data/app/models/spree/taxon.rb +4 -1
- data/app/models/spree/taxonomy.rb +1 -1
- data/app/models/spree/transfer_item.rb +2 -2
- data/app/models/spree/unit_cancel.rb +2 -0
- data/app/models/spree/variant.rb +9 -14
- data/app/models/spree/zone.rb +6 -0
- data/app/models/spree/zone_member.rb +1 -4
- data/app/views/spree/order_mailer/cancel_email.text.erb +0 -0
- data/config/locales/en.yml +7 -5
- data/db/default/spree/countries.rb +1 -1
- data/db/default/spree/zones.rb +5 -11
- data/db/migrate/20130213191427_create_default_stock.rb +1 -1
- data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +1 -1
- data/db/migrate/20140309033438_create_store_from_preferences.rb +5 -2
- data/db/migrate/20141009204607_add_store_id_to_orders.rb +6 -2
- data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +5 -0
- data/db/migrate/20141217215630_update_product_slug_index.rb +6 -0
- data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +2 -2
- data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +10 -0
- data/db/migrate/20151117063249_convert_habtm_to_hmt_for_properties_prototypes.rb +17 -0
- data/db/migrate/20151124062500_convert_habtm_to_hmt_for_option_type_prototypes.rb +17 -0
- data/db/migrate/20151126063028_convert_habtm_to_hmt_for_taxons_promotion_rules.rb +15 -0
- data/db/migrate/20151219020209_add_stock_item_unique_index.rb +9 -0
- data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
- data/lib/generators/spree/dummy/templates/rails/database.yml +1 -1
- data/lib/generators/spree/install/templates/config/initializers/spree.rb +25 -1
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +3 -0
- data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +3 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +3 -0
- data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +3 -0
- data/lib/spree/core/controller_helpers/common.rb +1 -1
- data/lib/spree/core/controller_helpers/order.rb +1 -1
- data/lib/spree/core/controller_helpers/payment_parameters.rb +104 -5
- data/lib/spree/core/engine.rb +3 -2
- data/lib/spree/core/stock_configuration.rb +11 -0
- data/lib/spree/core/unreturned_item_charger.rb +4 -4
- data/lib/spree/core/version.rb +9 -1
- data/lib/spree/permission_sets/restricted_stock_transfer_management.rb +15 -24
- data/lib/spree/permitted_attributes.rb +3 -1
- data/lib/spree/testing_support/capybara_ext.rb +14 -40
- data/lib/spree/testing_support/factories.rb +0 -15
- data/lib/spree/testing_support/factories/address_factory.rb +3 -0
- data/lib/spree/testing_support/factories/adjustment_factory.rb +9 -1
- data/lib/spree/testing_support/factories/carton_factory.rb +4 -1
- data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -0
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +5 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +3 -0
- data/lib/spree/testing_support/factories/option_type_factory.rb +6 -0
- data/lib/spree/testing_support/factories/{options_factory.rb → option_value_factory.rb} +0 -5
- data/lib/spree/testing_support/factories/order_factory.rb +13 -3
- data/lib/spree/testing_support/factories/order_promotion_factory.rb +3 -0
- data/lib/spree/testing_support/factories/payment_factory.rb +13 -5
- data/lib/spree/testing_support/factories/price_factory.rb +2 -0
- data/lib/spree/testing_support/factories/product_factory.rb +7 -1
- data/lib/spree/testing_support/factories/product_option_type_factory.rb +3 -0
- data/lib/spree/testing_support/factories/product_property_factory.rb +3 -0
- data/lib/spree/testing_support/factories/promotion_code_factory.rb +3 -0
- data/lib/spree/testing_support/factories/promotion_factory.rb +3 -0
- data/lib/spree/testing_support/factories/prototype_factory.rb +2 -0
- data/lib/spree/testing_support/factories/refund_factory.rb +10 -5
- data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +2 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +4 -4
- data/lib/spree/testing_support/factories/return_item_factory.rb +4 -0
- data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +6 -1
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +22 -10
- data/lib/spree/testing_support/factories/shipping_rate_factory.rb +9 -0
- data/lib/spree/testing_support/factories/state_factory.rb +2 -0
- data/lib/spree/testing_support/factories/stock_item_factory.rb +4 -1
- data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -0
- data/lib/spree/testing_support/factories/stock_movement_factory.rb +2 -0
- data/lib/spree/testing_support/factories/{stock_factory.rb → stock_package_factory.rb} +5 -10
- data/lib/spree/testing_support/factories/stock_packer_factory.rb +13 -0
- data/lib/spree/testing_support/factories/stock_transfer_factory.rb +2 -2
- data/lib/spree/testing_support/factories/store_credit_event_factory.rb +4 -1
- data/lib/spree/testing_support/factories/store_credit_factory.rb +10 -6
- data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -0
- data/lib/spree/testing_support/factories/tax_rate_factory.rb +4 -0
- data/lib/spree/testing_support/factories/taxon_factory.rb +2 -0
- data/lib/spree/testing_support/factories/user_factory.rb +6 -2
- data/lib/spree/testing_support/factories/variant_factory.rb +5 -0
- data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +3 -0
- data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +4 -0
- data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +3 -0
- data/lib/spree/testing_support/factories/zone_factory.rb +6 -0
- data/lib/spree/testing_support/sequences.rb +9 -0
- data/lib/tasks/exchanges.rake +4 -3
- data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +2 -2
- data/solidus_core.gemspec +4 -5
- data/spec/helpers/base_helper_spec.rb +6 -6
- data/spec/helpers/order_helper_spec.rb +1 -1
- data/spec/helpers/products_helper_spec.rb +2 -2
- data/spec/helpers/taxons_helper_spec.rb +1 -1
- data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +107 -7
- data/spec/lib/spree/core/importer/order_spec.rb +1 -1
- data/spec/lib/spree/core/stock_configuration_spec.rb +16 -0
- data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +24 -0
- data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +18 -0
- data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +42 -0
- data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +28 -0
- data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +49 -0
- data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +24 -0
- data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +30 -0
- data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +30 -0
- data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +30 -0
- data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/prototype_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +18 -0
- data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +18 -0
- data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +28 -0
- data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +24 -0
- data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +26 -0
- data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +16 -0
- data/spec/lib/spree/core/testing_support/factories/stock_transfer_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +42 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +18 -0
- data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/tracker_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +22 -0
- data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +36 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +12 -0
- data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +18 -0
- data/spec/lib/spree/core/unreturned_item_charger_spec.rb +1 -1
- data/spec/lib/spree/core/version_spec.rb +17 -0
- data/spec/lib/spree/money_spec.rb +1 -1
- data/spec/mailers/carton_mailer_spec.rb +1 -1
- data/spec/mailers/order_mailer_spec.rb +1 -1
- data/spec/mailers/reimbursement_mailer_spec.rb +1 -3
- data/spec/mailers/test_mailer_spec.rb +1 -3
- data/spec/models/spree/address_spec.rb +4 -4
- data/spec/models/spree/adjustment_reason_spec.rb +1 -3
- data/spec/models/spree/app_configuration_spec.rb +4 -0
- data/spec/models/spree/calculator/price_sack_spec.rb +3 -3
- data/spec/models/spree/calculator/shipping/price_sack_spec.rb +3 -3
- data/spec/models/spree/calculator/tiered_percent_spec.rb +86 -10
- data/spec/models/spree/carton_spec.rb +3 -1
- data/spec/models/spree/classification_spec.rb +3 -3
- data/spec/models/spree/credit_card_spec.rb +16 -16
- data/spec/models/spree/customer_return_spec.rb +1 -1
- data/spec/models/spree/gateway/bogus_simple.rb +1 -1
- data/spec/models/spree/inventory_unit_spec.rb +3 -3
- data/spec/models/spree/item_adjustments_spec.rb +1 -1
- data/spec/models/spree/line_item_spec.rb +2 -2
- data/spec/models/spree/option_type_spec.rb +2 -2
- data/spec/models/spree/option_value_spec.rb +2 -2
- data/spec/models/spree/order/callbacks_spec.rb +1 -1
- data/spec/models/spree/order/checkout_spec.rb +16 -11
- data/spec/models/spree/order/payment_spec.rb +24 -22
- data/spec/models/spree/order/state_machine_spec.rb +1 -1
- data/spec/models/spree/order/validations_spec.rb +1 -1
- data/spec/models/spree/order_cancellations_spec.rb +63 -0
- data/spec/models/spree/order_contents_spec.rb +1 -1
- data/spec/models/spree/order_merger_spec.rb +133 -0
- data/spec/models/spree/order_spec.rb +39 -159
- data/spec/models/spree/order_update_attributes_spec.rb +82 -0
- data/spec/models/spree/order_updater_spec.rb +6 -4
- data/spec/models/spree/payment_create_spec.rb +131 -0
- data/spec/models/spree/payment_spec.rb +130 -48
- data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +91 -33
- data/spec/models/spree/product_filter_spec.rb +3 -3
- data/spec/models/spree/product_spec.rb +80 -26
- data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +1 -1
- data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +2 -2
- data/spec/models/spree/promotion/rules/nth_order_spec.rb +1 -1
- data/spec/models/spree/promotion/rules/user_spec.rb +2 -2
- data/spec/models/spree/promotion_handler/coupon_spec.rb +2 -2
- data/spec/models/spree/promotion_spec.rb +18 -18
- data/spec/models/spree/reimbursement_spec.rb +22 -0
- data/spec/models/spree/return_item_spec.rb +2 -2
- data/spec/models/spree/shipment_spec.rb +28 -12
- data/spec/models/spree/shipping_method_spec.rb +2 -2
- data/spec/models/spree/shipping_rate_spec.rb +3 -3
- data/spec/models/spree/stock/coordinator_spec.rb +5 -0
- data/spec/models/spree/stock/estimator_spec.rb +35 -1
- data/spec/models/spree/stock/package_spec.rb +1 -1
- data/spec/models/spree/stock/packer_spec.rb +2 -3
- data/spec/models/spree/stock/shipping_rate_selector_spec.rb +16 -0
- data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +16 -0
- data/spec/models/spree/stock_item_spec.rb +5 -7
- data/spec/models/spree/stock_location_spec.rb +5 -9
- data/spec/models/spree/stock_transfer_spec.rb +33 -13
- data/spec/models/spree/store_credit_event_spec.rb +1 -1
- data/spec/models/spree/store_credit_spec.rb +1 -1
- data/spec/models/spree/tax_rate_spec.rb +381 -120
- data/spec/models/spree/taxon_spec.rb +3 -3
- data/spec/models/spree/transfer_item_spec.rb +4 -4
- data/spec/models/spree/unit_cancel_spec.rb +1 -1
- data/spec/models/spree/variant_spec.rb +3 -3
- data/spec/models/spree/zone_spec.rb +35 -1
- data/spec/support/concerns/working_factories.rb +9 -0
- data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
- data/vendor/assets/javascripts/jquery.payment.js +231 -80
- metadata +103 -27
- data/app/models/spree/order/currency_updater.rb +0 -40
- data/spec/models/spree/order/currency_updater_spec.rb +0 -32
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 72bff98276c20b404df01879d91ae3c97a36aab8
|
|
4
|
+
data.tar.gz: f4b3d7cada13eb253db7f60ec9d735bbd2194a12
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ad9a001cd90d86458f532cf0df351c2d1199f2cbc7abdb61b92ccd5e5eb0fe88603e87a61f8d04d192005fb8b226e77c2e0249a1bdb0b147bcd4065b1da09436
|
|
7
|
+
data.tar.gz: acce15cf134e34e2c8184d53cde1ecd391d6d13f606f62ad5a46b39ce4a1cae936902331f29c855362ea81984ba7380eb295a96d638f4261a1858bb46bc93e82
|
|
Binary file
|
|
@@ -107,14 +107,13 @@ module Spree
|
|
|
107
107
|
def taxons_tree(root_taxon, current_taxon, max_level = 1)
|
|
108
108
|
return '' if max_level < 1 || root_taxon.children.empty?
|
|
109
109
|
content_tag :ul, class: 'taxons-list' do
|
|
110
|
-
|
|
110
|
+
root_taxon.children.map do |taxon|
|
|
111
111
|
css_class = (current_taxon && current_taxon.self_and_ancestors.include?(taxon)) ? 'current' : nil
|
|
112
112
|
content_tag :li, class: css_class do
|
|
113
113
|
link_to(taxon.name, seo_url(taxon)) +
|
|
114
114
|
taxons_tree(taxon, current_taxon, max_level - 1)
|
|
115
115
|
end
|
|
116
|
-
end
|
|
117
|
-
safe_join(taxons, "\n")
|
|
116
|
+
end.join("\n").html_safe
|
|
118
117
|
end
|
|
119
118
|
end
|
|
120
119
|
|
|
@@ -14,7 +14,7 @@ module Spree
|
|
|
14
14
|
# This would mean that the order's total is not altered at all.
|
|
15
15
|
attrs = {
|
|
16
16
|
source_id: nil,
|
|
17
|
-
updated_at: Time.
|
|
17
|
+
updated_at: Time.current
|
|
18
18
|
}
|
|
19
19
|
adjustment_scope.where.not(spree_orders: { completed_at: nil }).update_all(attrs)
|
|
20
20
|
end
|
|
@@ -6,7 +6,9 @@ module Spree
|
|
|
6
6
|
has_one :default_price,
|
|
7
7
|
-> { where currency: Spree::Config[:currency], is_default: true },
|
|
8
8
|
class_name: 'Spree::Price',
|
|
9
|
-
|
|
9
|
+
inverse_of: :variant,
|
|
10
|
+
dependent: :destroy,
|
|
11
|
+
autosave: true
|
|
10
12
|
|
|
11
13
|
def find_or_build_default_price
|
|
12
14
|
default_price || build_default_price
|
|
@@ -6,7 +6,7 @@ module Spree
|
|
|
6
6
|
scope :active, -> { where(active: true) }
|
|
7
7
|
default_scope -> { order(arel_table[:name].lower) }
|
|
8
8
|
|
|
9
|
-
validates :name, presence: true, uniqueness: { case_sensitive: false }
|
|
9
|
+
validates :name, presence: true, uniqueness: { case_sensitive: false, allow_blank: true }
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
end
|
|
@@ -23,6 +23,8 @@ module Spree
|
|
|
23
23
|
has_many :store_credit_events, through: :store_credits
|
|
24
24
|
money_methods :total_available_store_credit
|
|
25
25
|
|
|
26
|
+
after_create :auto_generate_spree_api_key
|
|
27
|
+
|
|
26
28
|
include Spree::RansackableAttributes unless included_modules.include?(Spree::RansackableAttributes)
|
|
27
29
|
|
|
28
30
|
self.whitelisted_ransackable_associations = %w[addresses]
|
|
@@ -34,6 +36,14 @@ module Spree
|
|
|
34
36
|
spree_roles.any? { |role| role.name == role_in_question.to_s }
|
|
35
37
|
end
|
|
36
38
|
|
|
39
|
+
def auto_generate_spree_api_key
|
|
40
|
+
return if !respond_to?(:spree_api_key) || spree_api_key.present?
|
|
41
|
+
|
|
42
|
+
if Spree::Config.generate_api_key_for_all_roles || (spree_roles.map(&:name) & Spree::Config.roles_for_auto_api_key).any?
|
|
43
|
+
generate_spree_api_key!
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
37
47
|
# @return [Spree::Order] the most-recently-created incomplete order
|
|
38
48
|
# since the customer's last complete order.
|
|
39
49
|
def last_incomplete_spree_order(store: nil, only_frontend_viewable: true)
|
|
@@ -170,7 +170,7 @@ module Spree
|
|
|
170
170
|
# Persist only if changed
|
|
171
171
|
# This is only not a save! to avoid the extra queries to load the order
|
|
172
172
|
# (for validations) and to touch the adjustment.
|
|
173
|
-
update_columns(eligible: eligible, amount: amount, updated_at: Time.
|
|
173
|
+
update_columns(eligible: eligible, amount: amount, updated_at: Time.current) if changed?
|
|
174
174
|
end
|
|
175
175
|
amount
|
|
176
176
|
end
|
|
@@ -2,10 +2,8 @@ module Spree
|
|
|
2
2
|
class AdjustmentReason < Spree::Base
|
|
3
3
|
has_many :adjustments, inverse_of: :adjustment_reason
|
|
4
4
|
|
|
5
|
-
validates :name, presence: true
|
|
6
|
-
validates :
|
|
7
|
-
validates :code, presence: true
|
|
8
|
-
validates :code, uniqueness: {case_sensitive: false}
|
|
5
|
+
validates :name, presence: true, uniqueness: { case_sensitive: false, allow_blank: true }
|
|
6
|
+
validates :code, presence: true, uniqueness: { case_sensitive: false, allow_blank: true }
|
|
9
7
|
|
|
10
8
|
scope :active, -> { where(active: true) }
|
|
11
9
|
end
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#
|
|
18
18
|
require "spree/core/search/base"
|
|
19
19
|
require "spree/core/search/variant"
|
|
20
|
+
require 'spree/core/stock_configuration'
|
|
20
21
|
|
|
21
22
|
module Spree
|
|
22
23
|
class AppConfiguration < Preferences::Configuration
|
|
@@ -136,6 +137,11 @@ module Spree
|
|
|
136
137
|
# charged (default: +14+)
|
|
137
138
|
preference :expedited_exchanges_days_window, :integer, default: 14
|
|
138
139
|
|
|
140
|
+
# @!attribute [rw] generate_api_key_for_all_roles
|
|
141
|
+
# @return [Boolean] Allow generating api key automatically for user
|
|
142
|
+
# at role_user creation for all roles. (default: +false+)
|
|
143
|
+
preference :generate_api_key_for_all_roles, :boolean, default: false
|
|
144
|
+
|
|
139
145
|
# @!attribute [rw] layout
|
|
140
146
|
# @return [String] template to use for layout on the frontend (default: +"spree/layouts/spree_application"+)
|
|
141
147
|
preference :layout, :string, default: 'spree/layouts/spree_application'
|
|
@@ -193,6 +199,12 @@ module Spree
|
|
|
193
199
|
# @return [Integer] default: 365
|
|
194
200
|
preference :return_eligibility_number_of_days, :integer, default: 365
|
|
195
201
|
|
|
202
|
+
# @!attribute [rw] roles_for_auto_api_key
|
|
203
|
+
# @return [Array] An array of roles where generating an api key for a user
|
|
204
|
+
# at role_user creation is desired when user has one of these roles.
|
|
205
|
+
# (default: +['admin']+)
|
|
206
|
+
preference :roles_for_auto_api_key, :array, default: ['admin']
|
|
207
|
+
|
|
196
208
|
# @!attribute [rw] shipping_instructions
|
|
197
209
|
# @return [Boolean] Request instructions/info for shipping (default: +false+)
|
|
198
210
|
preference :shipping_instructions, :boolean, default: false
|
|
@@ -265,6 +277,16 @@ module Spree
|
|
|
265
277
|
@promotion_chooser_class ||= Spree::PromotionChooser
|
|
266
278
|
end
|
|
267
279
|
|
|
280
|
+
attr_writer :shipping_rate_sorter_class
|
|
281
|
+
def shipping_rate_sorter_class
|
|
282
|
+
@shipping_rate_sorter_class ||= Spree::Stock::ShippingRateSorter
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
attr_writer :shipping_rate_selector_class
|
|
286
|
+
def shipping_rate_selector_class
|
|
287
|
+
@shipping_rate_selector_class ||= Spree::Stock::ShippingRateSelector
|
|
288
|
+
end
|
|
289
|
+
|
|
268
290
|
# Allows providing your own Mailer for shipped cartons.
|
|
269
291
|
#
|
|
270
292
|
# @!attribute [rw] carton_shipped_email_class
|
|
@@ -276,10 +298,24 @@ module Spree
|
|
|
276
298
|
@carton_shipped_email_class ||= Spree::CartonMailer
|
|
277
299
|
end
|
|
278
300
|
|
|
301
|
+
# Allows providing your own class for merging two orders.
|
|
302
|
+
#
|
|
303
|
+
# @!attribute [rw] order_merger_class
|
|
304
|
+
# @return [Class] a class with the same public interfaces
|
|
305
|
+
# as Spree::OrderMerger.
|
|
306
|
+
attr_writer :order_merger_class
|
|
307
|
+
def order_merger_class
|
|
308
|
+
@order_merger_class ||= Spree::OrderMerger
|
|
309
|
+
end
|
|
310
|
+
|
|
279
311
|
def static_model_preferences
|
|
280
312
|
@static_model_preferences ||= Spree::Preferences::StaticModelPreferences.new
|
|
281
313
|
end
|
|
282
314
|
|
|
315
|
+
def stock
|
|
316
|
+
Spree::StockConfiguration
|
|
317
|
+
end
|
|
318
|
+
|
|
283
319
|
# all the following can be deprecated when store prefs are no longer supported
|
|
284
320
|
# @private
|
|
285
321
|
DEPRECATED_STORE_PREFERENCES = {
|
data/app/models/spree/base.rb
CHANGED
|
@@ -4,12 +4,21 @@ class Spree::Base < ActiveRecord::Base
|
|
|
4
4
|
|
|
5
5
|
include Spree::RansackableAttributes
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
def initialize_preference_defaults
|
|
8
8
|
if has_attribute?(:preferences)
|
|
9
9
|
self.preferences = default_preferences.merge(preferences)
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
+
# Only run preference initialization on models which requires it. Improves
|
|
14
|
+
# performance of record initialization slightly.
|
|
15
|
+
def self.preference(*args)
|
|
16
|
+
# after_initialize can be called multiple times with the same symbol, it
|
|
17
|
+
# will only be called once on initialization.
|
|
18
|
+
after_initialize :initialize_preference_defaults
|
|
19
|
+
super
|
|
20
|
+
end
|
|
21
|
+
|
|
13
22
|
if Kaminari.config.page_method_name != :page
|
|
14
23
|
def self.page num
|
|
15
24
|
send Kaminari.config.page_method_name, num
|
|
@@ -23,7 +23,8 @@ module Spree
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def compute(object)
|
|
26
|
-
|
|
26
|
+
order = object.is_a?(Order) ? object : object.order
|
|
27
|
+
base, percent = preferred_tiers.sort.reverse.detect{ |b,_| order.item_total >= b }
|
|
27
28
|
(object.amount * (percent || preferred_base_percent) / 100).round(2)
|
|
28
29
|
end
|
|
29
30
|
|
|
@@ -5,7 +5,7 @@ module Spree
|
|
|
5
5
|
belongs_to :product, class_name: "Spree::Product", inverse_of: :classifications
|
|
6
6
|
belongs_to :taxon, class_name: "Spree::Taxon", inverse_of: :classifications, touch: true
|
|
7
7
|
|
|
8
|
-
# For
|
|
8
|
+
# For https://github.com/spree/spree/issues/3494
|
|
9
9
|
validates_uniqueness_of :taxon_id, scope: :product_id, message: :already_linked
|
|
10
10
|
end
|
|
11
11
|
end
|
data/app/models/spree/country.rb
CHANGED
|
@@ -13,9 +13,9 @@ module Spree
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def self.default
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
first
|
|
16
|
+
if default_country_id = Spree::Config[:default_country_id]
|
|
17
|
+
find_by_id(default_country_id)
|
|
18
|
+
end || first
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def <=>(other)
|
|
@@ -11,8 +11,8 @@ module Spree
|
|
|
11
11
|
|
|
12
12
|
accepts_nested_attributes_for :address
|
|
13
13
|
|
|
14
|
+
attr_reader :number
|
|
14
15
|
attr_accessor :encrypted_data,
|
|
15
|
-
:number,
|
|
16
16
|
:imported,
|
|
17
17
|
:verification_value
|
|
18
18
|
|
|
@@ -181,7 +181,7 @@ module Spree
|
|
|
181
181
|
def ensure_one_default
|
|
182
182
|
if self.user_id && self.default
|
|
183
183
|
CreditCard.where(default: true).where.not(id: self.id).where(user_id: self.user_id).each do |ucc|
|
|
184
|
-
ucc.update_columns(default: false, updated_at: Time.
|
|
184
|
+
ucc.update_columns(default: false, updated_at: Time.current)
|
|
185
185
|
end
|
|
186
186
|
end
|
|
187
187
|
end
|
|
@@ -19,6 +19,9 @@ module Spree
|
|
|
19
19
|
money_methods pre_tax_total: { currency: Spree::Config[:currency] },
|
|
20
20
|
total: { currency: Spree::Config[:currency] }
|
|
21
21
|
|
|
22
|
+
|
|
23
|
+
delegate :id, to: :order, prefix: true, allow_nil: true
|
|
24
|
+
|
|
22
25
|
def total
|
|
23
26
|
return_items.map(&:total).sum
|
|
24
27
|
end
|
|
@@ -33,10 +36,6 @@ module Spree
|
|
|
33
36
|
return_items.first.inventory_unit.order
|
|
34
37
|
end
|
|
35
38
|
|
|
36
|
-
def order_id
|
|
37
|
-
order.try(:id)
|
|
38
|
-
end
|
|
39
|
-
|
|
40
39
|
def fully_reimbursed?
|
|
41
40
|
completely_decided? && return_items.accepted.includes(:reimbursement).all? { |return_item| return_item.reimbursement.try(:reimbursed?) }
|
|
42
41
|
end
|
|
@@ -2,9 +2,9 @@ module Spree
|
|
|
2
2
|
class InventoryUnit < Spree::Base
|
|
3
3
|
PRE_SHIPMENT_STATES = %w(backordered on_hand)
|
|
4
4
|
POST_SHIPMENT_STATES = %w(returned)
|
|
5
|
-
CANCELABLE_STATES = ['on_hand', 'backordered']
|
|
5
|
+
CANCELABLE_STATES = ['on_hand', 'backordered', 'shipped']
|
|
6
6
|
|
|
7
|
-
belongs_to :variant, class_name: "Spree::Variant", inverse_of: :inventory_units
|
|
7
|
+
belongs_to :variant, -> { with_deleted }, class_name: "Spree::Variant", inverse_of: :inventory_units
|
|
8
8
|
belongs_to :order, class_name: "Spree::Order", inverse_of: :inventory_units
|
|
9
9
|
belongs_to :shipment, class_name: "Spree::Shipment", touch: true, inverse_of: :inventory_units
|
|
10
10
|
belongs_to :return_authorization, class_name: "Spree::ReturnAuthorization", inverse_of: :inventory_units
|
|
@@ -35,6 +35,16 @@ module Spree
|
|
|
35
35
|
.where('spree_orders.completed_at is not null')
|
|
36
36
|
.backordered.order(Spree::Order.arel_table[:completed_at].asc)
|
|
37
37
|
end
|
|
38
|
+
|
|
39
|
+
# @param stock_item [Spree::StockItem] the stock item of the desired
|
|
40
|
+
# inventory units
|
|
41
|
+
# @return [ActiveRecord::Relation<Spree::InventoryUnit>] backordered
|
|
42
|
+
# inventory units for the given stock item
|
|
43
|
+
scope :backordered_for_stock_item, ->(stock_item) do
|
|
44
|
+
backordered_per_variant(stock_item)
|
|
45
|
+
.where(spree_shipments: { stock_location_id: stock_item.stock_location_id })
|
|
46
|
+
end
|
|
47
|
+
|
|
38
48
|
scope :shippable, -> { on_hand }
|
|
39
49
|
|
|
40
50
|
# state machine (see http://github.com/pluginaweek/state_machine/tree/master for details)
|
|
@@ -57,20 +67,6 @@ module Spree
|
|
|
57
67
|
end
|
|
58
68
|
end
|
|
59
69
|
|
|
60
|
-
# @param stock_item [Spree::StockItem] the stock item of the desired
|
|
61
|
-
# inventory units
|
|
62
|
-
# @return [Array<Spree::InventoryUnit>] an array of backordered inventory
|
|
63
|
-
# units for the given stock item
|
|
64
|
-
def self.backordered_for_stock_item(stock_item)
|
|
65
|
-
# This was refactored from a simpler query because the previous
|
|
66
|
-
# implementation led to issues once users tried to modify the objects
|
|
67
|
-
# returned. That's due to ActiveRecord `joins(shipment: :stock_location)`
|
|
68
|
-
# only returning readonly objects
|
|
69
|
-
backordered_per_variant(stock_item).select do |unit|
|
|
70
|
-
unit.shipment.stock_location == stock_item.stock_location
|
|
71
|
-
end
|
|
72
|
-
end
|
|
73
|
-
|
|
74
70
|
# Updates the given inventory units to not be pending.
|
|
75
71
|
#
|
|
76
72
|
# @param inventory_units [<Spree::InventoryUnit>] the inventory to be
|
|
@@ -79,7 +75,7 @@ module Spree
|
|
|
79
75
|
inventory_units.map do |iu|
|
|
80
76
|
iu.update_columns(
|
|
81
77
|
pending: false,
|
|
82
|
-
updated_at: Time.
|
|
78
|
+
updated_at: Time.current,
|
|
83
79
|
)
|
|
84
80
|
end
|
|
85
81
|
end
|
|
@@ -91,13 +87,6 @@ module Spree
|
|
|
91
87
|
variant_id: variant_id).first
|
|
92
88
|
end
|
|
93
89
|
|
|
94
|
-
# @note This returns the variant regardless of whether it was soft
|
|
95
|
-
# deleted.
|
|
96
|
-
# @return [Spree::Variant] this inventory unit's variant.
|
|
97
|
-
def variant
|
|
98
|
-
Spree::Variant.unscoped { super }
|
|
99
|
-
end
|
|
100
|
-
|
|
101
90
|
# @return [Spree::ReturnItem] a valid return item for this inventory unit
|
|
102
91
|
# if one exists, or a new one if one does not
|
|
103
92
|
def current_or_new_return_item
|
|
@@ -63,11 +63,11 @@ module Spree
|
|
|
63
63
|
@item.adjustment_total = @item.promo_total + @item.additional_tax_total + item_cancellation_total
|
|
64
64
|
|
|
65
65
|
@item.update_columns(
|
|
66
|
-
:
|
|
67
|
-
:
|
|
68
|
-
:
|
|
69
|
-
:
|
|
70
|
-
:
|
|
66
|
+
promo_total: @item.promo_total,
|
|
67
|
+
included_tax_total: @item.included_tax_total,
|
|
68
|
+
additional_tax_total: @item.additional_tax_total,
|
|
69
|
+
adjustment_total: @item.adjustment_total,
|
|
70
|
+
updated_at: Time.current,
|
|
71
71
|
) if @item.changed?
|
|
72
72
|
|
|
73
73
|
@item
|
|
@@ -2,7 +2,7 @@ module Spree
|
|
|
2
2
|
class LineItem < Spree::Base
|
|
3
3
|
before_validation :invalid_quantity_check
|
|
4
4
|
belongs_to :order, class_name: "Spree::Order", inverse_of: :line_items, touch: true
|
|
5
|
-
belongs_to :variant, class_name: "Spree::Variant", inverse_of: :line_items
|
|
5
|
+
belongs_to :variant, -> { with_deleted }, class_name: "Spree::Variant", inverse_of: :line_items
|
|
6
6
|
belongs_to :tax_category, class_name: "Spree::TaxCategory"
|
|
7
7
|
|
|
8
8
|
has_one :product, through: :variant
|
|
@@ -34,6 +34,11 @@ module Spree
|
|
|
34
34
|
after_create :update_tax_charge
|
|
35
35
|
|
|
36
36
|
delegate :name, :description, :sku, :should_track_inventory?, to: :variant
|
|
37
|
+
# @note This will return the product even if it has been deleted.
|
|
38
|
+
# @return [Spree::Product, nil] the product associated with this line
|
|
39
|
+
# item, if there is one
|
|
40
|
+
delegate :product, to: :variant
|
|
41
|
+
|
|
37
42
|
|
|
38
43
|
attr_accessor :target_shipment
|
|
39
44
|
|
|
@@ -114,20 +119,6 @@ module Spree
|
|
|
114
119
|
!sufficient_stock?
|
|
115
120
|
end
|
|
116
121
|
|
|
117
|
-
# @note This will return the product even if it has been deleted.
|
|
118
|
-
# @return [Spree::Product, nil] the product associated with this line
|
|
119
|
-
# item, if there is one
|
|
120
|
-
def product
|
|
121
|
-
variant.product
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
# @note This will return the variant even if it has been deleted.
|
|
125
|
-
# @return [Spree::Variant, nil] the variant associated with this line
|
|
126
|
-
# item, if there is one
|
|
127
|
-
def variant
|
|
128
|
-
Spree::Variant.unscoped { super }
|
|
129
|
-
end
|
|
130
|
-
|
|
131
122
|
# Sets the options on the line item according to the order's currency or
|
|
132
123
|
# one passed in.
|
|
133
124
|
#
|
|
@@ -2,7 +2,7 @@ module Spree
|
|
|
2
2
|
class LogEntry < Spree::Base
|
|
3
3
|
belongs_to :source, polymorphic: true
|
|
4
4
|
|
|
5
|
-
# Fix for
|
|
5
|
+
# Fix for https://github.com/spree/spree/issues/1767
|
|
6
6
|
# If a payment fails, we want to make sure we keep the record of it failing
|
|
7
7
|
after_rollback :save_anyway
|
|
8
8
|
|
|
@@ -12,9 +12,11 @@ module Spree
|
|
|
12
12
|
has_many :option_values, -> { order(:position) }, dependent: :destroy, inverse_of: :option_type
|
|
13
13
|
has_many :product_option_types, dependent: :destroy, inverse_of: :option_type
|
|
14
14
|
has_many :products, through: :product_option_types
|
|
15
|
-
has_and_belongs_to_many :prototypes, join_table: 'spree_option_types_prototypes'
|
|
16
15
|
|
|
17
|
-
|
|
16
|
+
has_many :option_type_prototypes
|
|
17
|
+
has_many :prototypes, through: :option_type_prototypes
|
|
18
|
+
|
|
19
|
+
validates :name, presence: true, uniqueness: { allow_blank: true }
|
|
18
20
|
validates :presentation, presence: true
|
|
19
21
|
|
|
20
22
|
default_scope -> { order(:position) }
|