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
|
@@ -77,7 +77,7 @@ module Spree
|
|
|
77
77
|
item = stock_item_or_create(variant)
|
|
78
78
|
item.update_columns(
|
|
79
79
|
count_on_hand: item.count_on_hand + quantity,
|
|
80
|
-
updated_at: Time.
|
|
80
|
+
updated_at: Time.current
|
|
81
81
|
)
|
|
82
82
|
end
|
|
83
83
|
|
|
@@ -95,17 +95,7 @@ module Spree
|
|
|
95
95
|
|
|
96
96
|
def fill_status(variant, quantity)
|
|
97
97
|
if item = stock_item(variant)
|
|
98
|
-
|
|
99
|
-
if item.count_on_hand >= quantity
|
|
100
|
-
on_hand = quantity
|
|
101
|
-
backordered = 0
|
|
102
|
-
else
|
|
103
|
-
on_hand = item.count_on_hand
|
|
104
|
-
on_hand = 0 if on_hand < 0
|
|
105
|
-
backordered = item.backorderable? ? (quantity - on_hand) : 0
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
[on_hand, backordered]
|
|
98
|
+
item.fill_status(quantity)
|
|
109
99
|
else
|
|
110
100
|
[0, 0]
|
|
111
101
|
end
|
|
@@ -46,7 +46,7 @@ module Spree
|
|
|
46
46
|
finalized? && shipped? && !closed?
|
|
47
47
|
end
|
|
48
48
|
|
|
49
|
-
def ship(tracking_number:
|
|
49
|
+
def ship(tracking_number: self.tracking_number, shipped_at: nil)
|
|
50
50
|
update_attributes!(tracking_number: tracking_number, shipped_at: shipped_at)
|
|
51
51
|
end
|
|
52
52
|
|
|
@@ -70,7 +70,7 @@ module Spree
|
|
|
70
70
|
|
|
71
71
|
def finalize(finalized_by)
|
|
72
72
|
if finalizable?
|
|
73
|
-
self.update_attributes({ finalized_at: Time.
|
|
73
|
+
self.update_attributes({ finalized_at: Time.current, finalized_by: finalized_by })
|
|
74
74
|
else
|
|
75
75
|
errors.add(:base, Spree.t(:stock_transfer_cannot_be_finalized))
|
|
76
76
|
false
|
|
@@ -91,7 +91,7 @@ module Spree
|
|
|
91
91
|
|
|
92
92
|
def close(closed_by)
|
|
93
93
|
if receivable?
|
|
94
|
-
self.update_attributes({ closed_at: Time.
|
|
94
|
+
self.update_attributes({ closed_at: Time.current, closed_by: closed_by })
|
|
95
95
|
else
|
|
96
96
|
errors.add(:base, Spree.t(:stock_transfer_must_be_receivable))
|
|
97
97
|
false
|
|
@@ -162,7 +162,7 @@ class Spree::StoreCredit < Spree::Base
|
|
|
162
162
|
end
|
|
163
163
|
|
|
164
164
|
def generate_authorization_code
|
|
165
|
-
"#{self.id}-SC-#{Time.
|
|
165
|
+
"#{self.id}-SC-#{Time.current.utc.strftime("%Y%m%d%H%M%S%6N")}"
|
|
166
166
|
end
|
|
167
167
|
|
|
168
168
|
def editable?
|
|
@@ -192,7 +192,7 @@ class Spree::StoreCredit < Spree::Base
|
|
|
192
192
|
self.action = INVALIDATE_ACTION
|
|
193
193
|
self.update_reason = reason
|
|
194
194
|
self.action_originator = user_performing_invalidation
|
|
195
|
-
self.invalidated_at = Time.
|
|
195
|
+
self.invalidated_at = Time.current
|
|
196
196
|
save
|
|
197
197
|
else
|
|
198
198
|
errors.add(:invalidated_at, Spree.t("store_credit.errors.cannot_invalidate_uncaptured_authorization"))
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
module Spree
|
|
2
2
|
class TaxCategory < Spree::Base
|
|
3
3
|
acts_as_paranoid
|
|
4
|
-
validates :name, presence: true
|
|
4
|
+
validates :name, presence: true
|
|
5
|
+
validates_uniqueness_of :name, unless: :deleted_at
|
|
5
6
|
|
|
6
7
|
has_many :tax_rates, dependent: :destroy, inverse_of: :tax_category
|
|
7
8
|
after_save :ensure_one_default
|
|
@@ -12,7 +13,7 @@ module Spree
|
|
|
12
13
|
|
|
13
14
|
def ensure_one_default
|
|
14
15
|
if is_default
|
|
15
|
-
Spree::TaxCategory.where(is_default: true).where.not(id: self.id).update_all(is_default: false, updated_at: Time.
|
|
16
|
+
Spree::TaxCategory.where(is_default: true).where.not(id: self.id).update_all(is_default: false, updated_at: Time.current)
|
|
16
17
|
end
|
|
17
18
|
end
|
|
18
19
|
end
|
|
@@ -50,7 +50,7 @@ module Spree
|
|
|
50
50
|
# When you ship to France, you'll see a Spanish refund AND a French tax.
|
|
51
51
|
# This little bit of code at the end stops the Spanish refund from appearing.
|
|
52
52
|
#
|
|
53
|
-
# For further discussion, see
|
|
53
|
+
# For further discussion, see https://github.com/spree/spree/issues/4397 and https://github.com/spree/spree/issues/4327.
|
|
54
54
|
|
|
55
55
|
remaining_rates = rates.dup
|
|
56
56
|
rates.each do |rate|
|
|
@@ -145,12 +145,10 @@ module Spree
|
|
|
145
145
|
#
|
|
146
146
|
# Those rates should never come into play at all and only the French rates should apply.
|
|
147
147
|
def potentially_applicable?(order_tax_zone)
|
|
148
|
-
# If the rate's zone matches the order's tax zone, then it's applicable.
|
|
149
|
-
self.zone == order_tax_zone ||
|
|
150
148
|
# If the rate's zone *contains* the order's tax zone, then it's applicable.
|
|
151
149
|
self.zone.contains?(order_tax_zone) ||
|
|
152
|
-
#
|
|
153
|
-
(self.included_in_price? && self.zone.default_tax)
|
|
150
|
+
# The rate is a VAT and its zone contains the default zone, then it's applicable.
|
|
151
|
+
(self.included_in_price? && self.zone.contains?(Spree::Zone.default_tax))
|
|
154
152
|
end
|
|
155
153
|
|
|
156
154
|
# Creates necessary tax adjustments for the order.
|
|
@@ -175,21 +173,16 @@ module Spree
|
|
|
175
173
|
|
|
176
174
|
# This method is used by Adjustment#update to recalculate the cost.
|
|
177
175
|
def compute_amount(item)
|
|
178
|
-
if included_in_price
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
else
|
|
182
|
-
# In this case, it's a refund.
|
|
183
|
-
calculator.compute(item) * - 1
|
|
184
|
-
end
|
|
176
|
+
if included_in_price && !default_zone_or_zone_match?(item.order.tax_zone)
|
|
177
|
+
# In this case, it's a refund.
|
|
178
|
+
calculator.compute(item) * - 1
|
|
185
179
|
else
|
|
186
180
|
calculator.compute(item)
|
|
187
181
|
end
|
|
188
182
|
end
|
|
189
183
|
|
|
190
184
|
def default_zone_or_zone_match?(order_tax_zone)
|
|
191
|
-
default_tax
|
|
192
|
-
(default_tax && default_tax.contains?(order_tax_zone)) || order_tax_zone == self.zone
|
|
185
|
+
Zone.default_tax.try!(:contains?, order_tax_zone) || self.zone.contains?(order_tax_zone)
|
|
193
186
|
end
|
|
194
187
|
|
|
195
188
|
private
|
data/app/models/spree/taxon.rb
CHANGED
|
@@ -9,6 +9,9 @@ module Spree
|
|
|
9
9
|
has_many :prototype_taxons, dependent: :destroy
|
|
10
10
|
has_many :prototypes, through: :prototype_taxons
|
|
11
11
|
|
|
12
|
+
has_many :promotion_rule_taxons
|
|
13
|
+
has_many :promotion_rules, through: :promotion_rule_taxons
|
|
14
|
+
|
|
12
15
|
before_create :set_permalink
|
|
13
16
|
|
|
14
17
|
validates :name, presence: true
|
|
@@ -96,7 +99,7 @@ module Spree
|
|
|
96
99
|
|
|
97
100
|
def touch_ancestors_and_taxonomy
|
|
98
101
|
# Touches all ancestors at once to avoid recursive taxonomy touch, and reduce queries.
|
|
99
|
-
self.class.where(id: ancestors.pluck(:id)).update_all(updated_at: Time.
|
|
102
|
+
self.class.where(id: ancestors.pluck(:id)).update_all(updated_at: Time.current)
|
|
100
103
|
# Have taxonomy touch happen in #touch_ancestors_and_taxonomy rather than association option in order for imports to override.
|
|
101
104
|
taxonomy.try!(:touch)
|
|
102
105
|
end
|
|
@@ -5,8 +5,8 @@ module Spree
|
|
|
5
5
|
belongs_to :variant
|
|
6
6
|
|
|
7
7
|
validate :stock_availability, if: :check_stock?
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
validates :stock_transfer, :variant, presence: true
|
|
9
|
+
validates :variant_id, uniqueness: { scope: :stock_transfer_id }, allow_blank: true
|
|
10
10
|
validates :expected_quantity, numericality: { greater_than: 0 }
|
|
11
11
|
validates :received_quantity, numericality: { greater_than_or_equal_to: 0, less_than_or_equal_to: :expected_quantity }
|
|
12
12
|
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
# This class should encapsulate logic related to canceling inventory after order complete
|
|
4
4
|
class Spree::UnitCancel < Spree::Base
|
|
5
5
|
SHORT_SHIP = 'Short Ship'
|
|
6
|
+
DEFAULT_REASON = 'Cancel'
|
|
7
|
+
|
|
6
8
|
belongs_to :inventory_unit
|
|
7
9
|
has_one :adjustment, as: :source, dependent: :destroy
|
|
8
10
|
|
data/app/models/spree/variant.rb
CHANGED
|
@@ -18,7 +18,7 @@ module Spree
|
|
|
18
18
|
|
|
19
19
|
include Spree::DefaultPrice
|
|
20
20
|
|
|
21
|
-
belongs_to :product, touch: true, class_name: 'Spree::Product', inverse_of: :variants
|
|
21
|
+
belongs_to :product, -> { with_deleted }, touch: true, class_name: 'Spree::Product', inverse_of: :variants
|
|
22
22
|
belongs_to :tax_category, class_name: 'Spree::TaxCategory'
|
|
23
23
|
|
|
24
24
|
delegate :name, :description, :slug, :available_on, :shipping_category_id,
|
|
@@ -49,7 +49,7 @@ module Spree
|
|
|
49
49
|
|
|
50
50
|
validates :cost_price, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
|
|
51
51
|
validates :price, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
|
|
52
|
-
validates_uniqueness_of :sku, allow_blank: true,
|
|
52
|
+
validates_uniqueness_of :sku, allow_blank: true, unless: :deleted_at
|
|
53
53
|
|
|
54
54
|
after_create :create_stock_items
|
|
55
55
|
after_create :set_position
|
|
@@ -158,14 +158,6 @@ module Spree
|
|
|
158
158
|
!!deleted_at
|
|
159
159
|
end
|
|
160
160
|
|
|
161
|
-
# Override ActiveRecord finder to function even if the product has been
|
|
162
|
-
# deleted.
|
|
163
|
-
#
|
|
164
|
-
# @return [Spree::Product]
|
|
165
|
-
def product
|
|
166
|
-
Spree::Product.unscoped { super }
|
|
167
|
-
end
|
|
168
|
-
|
|
169
161
|
# Assign given options hash to option values.
|
|
170
162
|
#
|
|
171
163
|
# @param options [Array] array of hashes with a name and value.
|
|
@@ -346,9 +338,12 @@ module Spree
|
|
|
346
338
|
# Ensures a new variant takes the product master price when price is not supplied
|
|
347
339
|
def check_price
|
|
348
340
|
if price.nil? && Spree::Config[:require_master_price]
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
341
|
+
if is_master?
|
|
342
|
+
errors.add :price, 'Must supply price for variant or master.price for product.'
|
|
343
|
+
else
|
|
344
|
+
raise 'No master variant found to infer price' unless (product && product.master)
|
|
345
|
+
self.price = product.master.price
|
|
346
|
+
end
|
|
352
347
|
end
|
|
353
348
|
if currency.nil?
|
|
354
349
|
self.currency = Spree::Config[:currency]
|
|
@@ -356,7 +351,7 @@ module Spree
|
|
|
356
351
|
end
|
|
357
352
|
|
|
358
353
|
def set_cost_currency
|
|
359
|
-
self.cost_currency = Spree::Config[:currency] if cost_currency.
|
|
354
|
+
self.cost_currency = Spree::Config[:currency] if cost_currency.blank?
|
|
360
355
|
end
|
|
361
356
|
|
|
362
357
|
def create_stock_items
|
data/app/models/spree/zone.rb
CHANGED
|
@@ -3,6 +3,11 @@ module Spree
|
|
|
3
3
|
has_many :zone_members, dependent: :destroy, class_name: "Spree::ZoneMember", inverse_of: :zone
|
|
4
4
|
has_many :tax_rates, dependent: :destroy, inverse_of: :zone
|
|
5
5
|
|
|
6
|
+
with_options through: :zone_members, source: :zoneable do
|
|
7
|
+
has_many :countries, source_type: "Spree::Country"
|
|
8
|
+
has_many :states, source_type: "Spree::State"
|
|
9
|
+
end
|
|
10
|
+
|
|
6
11
|
has_many :shipping_method_zones
|
|
7
12
|
has_many :shipping_methods, through: :shipping_method_zones
|
|
8
13
|
|
|
@@ -106,6 +111,7 @@ module Spree
|
|
|
106
111
|
# Indicates whether the specified zone falls entirely within the zone performing
|
|
107
112
|
# the check.
|
|
108
113
|
def contains?(target)
|
|
114
|
+
return true if self == target
|
|
109
115
|
return false if kind == 'state' && target.kind == 'country'
|
|
110
116
|
return false if zone_members.empty? || target.zone_members.empty?
|
|
111
117
|
|
|
@@ -3,9 +3,6 @@ module Spree
|
|
|
3
3
|
belongs_to :zone, class_name: 'Spree::Zone', counter_cache: true, inverse_of: :zone_members
|
|
4
4
|
belongs_to :zoneable, polymorphic: true
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
return nil if zoneable.nil?
|
|
8
|
-
zoneable.name
|
|
9
|
-
end
|
|
6
|
+
delegate :name, to: :zoneable, allow_nil: true
|
|
10
7
|
end
|
|
11
8
|
end
|
|
File without changes
|
data/config/locales/en.yml
CHANGED
|
@@ -419,6 +419,7 @@ en:
|
|
|
419
419
|
add_state: Add State
|
|
420
420
|
add_stock: Add Stock
|
|
421
421
|
add_stock_management: Add Stock Management
|
|
422
|
+
add_taxon: Add taxon
|
|
422
423
|
add_to_cart: Add To Cart
|
|
423
424
|
add_to_stock_location: Add to location
|
|
424
425
|
add_variant: Add Variant
|
|
@@ -502,8 +503,8 @@ en:
|
|
|
502
503
|
agree_to_privacy_policy: Agree to Privacy Policy
|
|
503
504
|
agree_to_terms_of_service: Agree to Terms of Service
|
|
504
505
|
all: All
|
|
505
|
-
|
|
506
|
-
|
|
506
|
+
all_adjustments_finalized: All adjustments successfully finalized!
|
|
507
|
+
all_adjustments_unfinalized: All adjustments successfully unfinalized!
|
|
507
508
|
all_departments: All departments
|
|
508
509
|
all_items_have_been_returned: All items have been returned
|
|
509
510
|
already_signed_up_for_analytics: You have already signed up for Spree Analytics
|
|
@@ -554,6 +555,7 @@ en:
|
|
|
554
555
|
back_to_reports_list: Back To Reports List
|
|
555
556
|
back_to_refund_reason_list: Back To Refund Reason List
|
|
556
557
|
back_to_reimbursement_type_list: Back To Reimbursement Type List
|
|
558
|
+
back_to_return_authorizations_list: Back To Return Authorizations List
|
|
557
559
|
back_to_rma_reason_list: Back To RMA Reason List
|
|
558
560
|
back_to_shipping_categories: Back To Shipping Categories
|
|
559
561
|
back_to_shipping_categories_list: Back To Shipping Categories List
|
|
@@ -623,7 +625,6 @@ en:
|
|
|
623
625
|
clear_cache_warning: Clearing cache will temporarily reduce the performance of your store.
|
|
624
626
|
clone: Clone
|
|
625
627
|
close: Close
|
|
626
|
-
close_all_adjustments: Close All Adjustments
|
|
627
628
|
close_stock_transfer:
|
|
628
629
|
will_cause: Closing a stock transfer will cause the following
|
|
629
630
|
no_longer_edit: You will no longer be able to edit the stock transfer in any way
|
|
@@ -814,6 +815,7 @@ en:
|
|
|
814
815
|
fill_in_customer_info: Please fill in customer info
|
|
815
816
|
filter_results: Filter Results
|
|
816
817
|
finalize: Finalize
|
|
818
|
+
finalize_all_adjustments: Finalize All Adjustments
|
|
817
819
|
finalize_stock_transfer:
|
|
818
820
|
will_cause: Finalizing a stock transfer will cause the following
|
|
819
821
|
no_longer_change_items: You will no longer be able to add or edit any transfer items
|
|
@@ -884,7 +886,6 @@ en:
|
|
|
884
886
|
intercept_email_address: Intercept Email Address
|
|
885
887
|
intercept_email_instructions: Override email recipient and replace with this address.
|
|
886
888
|
internal_name: Internal Name
|
|
887
|
-
invalid_credit_card: Invalid credit card.
|
|
888
889
|
invalid_exchange_variant: Invalid exchange variant.
|
|
889
890
|
invalid_payment_provider: Invalid payment provider.
|
|
890
891
|
invalid_promotion_action: Invalid promotion action.
|
|
@@ -942,6 +943,7 @@ en:
|
|
|
942
943
|
make_refund: Make refund
|
|
943
944
|
make_sure_the_above_reimbursement_amount_is_correct: Make sure the above reimbursement amount is correct
|
|
944
945
|
manage_promotion_categories: Manage Promotion Categories
|
|
946
|
+
manage_stock: Manage Stock
|
|
945
947
|
manual_intervention_required: Manual intervention required
|
|
946
948
|
manage_variants: Manage Variants
|
|
947
949
|
master_price: Master Price
|
|
@@ -1043,7 +1045,6 @@ en:
|
|
|
1043
1045
|
number_of_codes: ! '%{count} codes'
|
|
1044
1046
|
on_hand: On Hand
|
|
1045
1047
|
open: Open
|
|
1046
|
-
open_all_adjustments: Open All Adjustments
|
|
1047
1048
|
option_type: Option Type
|
|
1048
1049
|
option_type_placeholder: Choose an option type
|
|
1049
1050
|
option_types: Option Types
|
|
@@ -1549,6 +1550,7 @@ en:
|
|
|
1549
1550
|
unable_to_connect_to_gateway: Unable to connect to gateway.
|
|
1550
1551
|
unable_to_create_reimbursements: Unable to create reimbursements because there are items pending manual intervention.
|
|
1551
1552
|
unable_to_create_stock_transfer: Unable to create the stock transfer
|
|
1553
|
+
unfinalize_all_adjustments: Unfinalize All Adjustments
|
|
1552
1554
|
under_price: Under %{price}
|
|
1553
1555
|
unlock: Unlock
|
|
1554
1556
|
unrecognized_card_type: Unrecognized card type
|
data/db/default/spree/zones.rb
CHANGED
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
eu_vat = Spree::Zone.find_or_create_by!(name: "EU_VAT", description: "Countries that make up the EU VAT zone.")
|
|
2
2
|
north_america = Spree::Zone.find_or_create_by!(name: "North America", description: "USA + Canada")
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
"Lithuania", "Cyprus", "Luxembourg", "Malta", "Denmark", "Netherlands",
|
|
8
|
-
"Estonia", "Croatia", "Czech Republic", "Greece"].
|
|
9
|
-
each do |name|
|
|
10
|
-
eu_vat.zone_members.create!(zoneable: Spree::Country.find_by!(name: name))
|
|
4
|
+
%w(PL FI PT RO DE FR SK HU SI IE AT ES IT BE SE LV BG GB LT CY LU MT DK NL EE).
|
|
5
|
+
each do |symbol|
|
|
6
|
+
eu_vat.zone_members.create!(zoneable: Spree::Country.find_by!(iso: symbol))
|
|
11
7
|
end
|
|
12
8
|
|
|
13
|
-
|
|
14
|
-
north_america.zone_members.create!(zoneable: Spree::Country.find_by!(
|
|
9
|
+
%w(US CA).each do |symbol|
|
|
10
|
+
north_america.zone_members.create!(zoneable: Spree::Country.find_by!(iso: symbol))
|
|
15
11
|
end
|
|
16
|
-
|
|
17
|
-
|
|
@@ -13,7 +13,7 @@ class CreateDefaultStock < ActiveRecord::Migration
|
|
|
13
13
|
Spree::Variant.find_each do |variant|
|
|
14
14
|
stock_item = Spree::StockItem.unscoped.build(stock_location: location, variant: variant)
|
|
15
15
|
stock_item.send(:count_on_hand=, variant.count_on_hand)
|
|
16
|
-
# Avoid running default_scope defined by acts_as_paranoid, related to
|
|
16
|
+
# Avoid running default_scope defined by acts_as_paranoid, related to https://github.com/spree/spree/issues/3805,
|
|
17
17
|
# validations would run a query with a delete_at column that might not be present yet
|
|
18
18
|
stock_item.save! validate: false
|
|
19
19
|
end
|
|
@@ -14,7 +14,7 @@ class AddAddressFieldsToStockLocation < ActiveRecord::Migration
|
|
|
14
14
|
|
|
15
15
|
usa = Spree::Country.where(:iso => 'US').first
|
|
16
16
|
# In case USA isn't found.
|
|
17
|
-
# See
|
|
17
|
+
# See https://github.com/spree/spree/issues/3115
|
|
18
18
|
country = usa || Spree::Country.first
|
|
19
19
|
Spree::Country.reset_column_information
|
|
20
20
|
Spree::StockLocation.update_all(:country_id => country)
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
class CreateStoreFromPreferences < ActiveRecord::Migration
|
|
2
|
+
class Store < ActiveRecord::Base
|
|
3
|
+
self.table_name = 'spree_stores'
|
|
4
|
+
end
|
|
2
5
|
def change
|
|
3
6
|
preference_store = Spree::Preferences::Store.instance
|
|
4
|
-
if store =
|
|
7
|
+
if store = Store.where(default: true).first
|
|
5
8
|
store.meta_description = preference_store.get('spree/app_configuration/default_meta_description') {}
|
|
6
9
|
store.meta_keywords = preference_store.get('spree/app_configuration/default_meta_keywords') {}
|
|
7
10
|
store.seo_title = preference_store.get('spree/app_configuration/default_seo_title') {}
|
|
8
11
|
store.save!
|
|
9
12
|
else
|
|
10
13
|
# we set defaults for the things we now require
|
|
11
|
-
|
|
14
|
+
Store.new do |s|
|
|
12
15
|
s.name = preference_store.get 'spree/app_configuration/site_name' do
|
|
13
16
|
'Sample Store'
|
|
14
17
|
end
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
class AddStoreIdToOrders < ActiveRecord::Migration
|
|
2
|
+
class Store < ActiveRecord::Base
|
|
3
|
+
self.table_name = 'spree_stores'
|
|
4
|
+
end
|
|
2
5
|
def change
|
|
3
6
|
add_column :spree_orders, :store_id, :integer
|
|
4
|
-
|
|
5
|
-
|
|
7
|
+
default_store = Store.where(default: true).first
|
|
8
|
+
if default_store
|
|
9
|
+
Spree::Order.where(store_id: nil).update_all(store_id: default_store.id)
|
|
6
10
|
end
|
|
7
11
|
end
|
|
8
12
|
end
|