spree_core 2.3.13 → 2.4.0.rc1
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.coffee.erb +1 -5
- data/app/helpers/spree/base_helper.rb +22 -11
- data/app/helpers/spree/products_helper.rb +8 -7
- data/app/mailers/spree/base_mailer.rb +1 -0
- data/app/mailers/spree/reimbursement_mailer.rb +10 -0
- data/app/mailers/spree/test_mailer.rb +2 -3
- data/app/models/concerns/spree/adjustment_source.rb +24 -0
- data/app/models/concerns/spree/calculated_adjustments.rb +33 -0
- data/app/models/concerns/spree/named_type.rb +12 -0
- data/app/models/concerns/spree/user_address.rb +30 -0
- data/app/models/concerns/spree/user_payment_source.rb +19 -0
- data/app/models/spree/address.rb +13 -6
- data/app/models/spree/adjustment.rb +5 -5
- data/app/models/spree/app_configuration.rb +8 -4
- data/app/models/spree/asset.rb +1 -1
- data/app/models/spree/base.rb +0 -3
- data/app/models/spree/calculator/flat_rate.rb +1 -5
- data/app/models/spree/calculator/returns/default_refund_amount.rb +36 -0
- data/app/models/spree/classification.rb +1 -1
- data/app/models/spree/credit_card.rb +18 -22
- data/app/models/spree/customer_return.rb +70 -0
- data/app/models/spree/exchange.rb +42 -0
- data/app/models/spree/gateway/bogus.rb +3 -3
- data/app/models/spree/image.rb +1 -1
- data/app/models/spree/inventory_unit.rb +32 -8
- data/app/models/spree/item_adjustments.rb +7 -11
- data/app/models/spree/legacy_user.rb +2 -2
- data/app/models/spree/line_item.rb +25 -12
- data/app/models/spree/option_type.rb +1 -1
- data/app/models/spree/option_value.rb +1 -8
- data/app/models/spree/order.rb +163 -145
- data/app/models/spree/order/checkout.rb +35 -23
- data/app/models/spree/order/payments.rb +66 -0
- data/app/models/spree/order_contents.rb +34 -24
- data/app/models/spree/order_populator.rb +6 -4
- data/app/models/spree/order_updater.rb +10 -1
- data/app/models/spree/payment.rb +19 -16
- data/app/models/spree/payment/processing.rb +40 -72
- data/app/models/spree/payment_method.rb +1 -1
- data/app/models/spree/payment_method/check.rb +0 -2
- data/app/models/spree/preference.rb +1 -1
- data/app/models/spree/preferences/preferable.rb +20 -0
- data/app/models/spree/price.rb +13 -3
- data/app/models/spree/product.rb +24 -29
- data/app/models/spree/product_property.rb +0 -2
- data/app/models/spree/promotion.rb +66 -24
- data/app/models/spree/promotion/actions/create_adjustment.rb +2 -2
- data/app/models/spree/promotion/actions/create_item_adjustments.rb +15 -11
- data/app/models/spree/promotion/actions/create_line_items.rb +2 -12
- data/app/models/spree/promotion/rules/first_order.rb +6 -2
- data/app/models/spree/promotion/rules/item_total.rb +42 -4
- data/app/models/spree/promotion/rules/one_use_per_user.rb +24 -0
- data/app/models/spree/promotion/rules/product.rb +13 -11
- data/app/models/spree/promotion/rules/taxon.rb +61 -0
- data/app/models/spree/promotion/rules/user.rb +1 -1
- data/app/models/spree/promotion/rules/user_logged_in.rb +4 -1
- data/app/models/spree/promotion_category.rb +6 -0
- data/app/models/spree/promotion_handler/cart.rb +14 -18
- data/app/models/spree/promotion_handler/coupon.rb +25 -16
- data/app/models/spree/promotion_rule.rb +13 -0
- data/app/models/spree/property.rb +1 -3
- data/app/models/spree/refund.rb +91 -0
- data/app/models/spree/refund_reason.rb +13 -0
- data/app/models/spree/reimbursement.rb +148 -0
- data/app/models/spree/reimbursement/credit.rb +25 -0
- data/app/models/spree/reimbursement/reimbursement_type_engine.rb +56 -0
- data/app/models/spree/reimbursement/reimbursement_type_validator.rb +12 -0
- data/app/models/spree/reimbursement_performer.rb +43 -0
- data/app/models/spree/reimbursement_tax_calculator.rb +38 -0
- data/app/models/spree/reimbursement_type.rb +16 -0
- data/app/models/spree/reimbursement_type/credit.rb +13 -0
- data/app/models/spree/reimbursement_type/exchange.rb +9 -0
- data/app/models/spree/reimbursement_type/original_payment.rb +13 -0
- data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +50 -0
- data/app/models/spree/return_authorization.rb +52 -68
- data/app/models/spree/return_authorization_reason.rb +7 -0
- data/app/models/spree/return_item.rb +230 -0
- data/app/models/spree/return_item/default_eligibility_validator.rb +27 -0
- data/app/models/spree/return_item/eligibility_validator/base_validator.rb +24 -0
- data/app/models/spree/return_item/eligibility_validator/rma_required.rb +17 -0
- data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +16 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +34 -0
- data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +10 -0
- data/app/models/spree/returns_calculator.rb +8 -0
- data/app/models/spree/shipment.rb +209 -154
- data/app/models/spree/shipment_handler.rb +43 -0
- data/app/models/spree/shipping_calculator.rb +1 -1
- data/app/models/spree/shipping_category.rb +2 -2
- data/app/models/spree/shipping_method.rb +1 -1
- data/app/models/spree/shipping_method_category.rb +1 -1
- data/app/models/spree/shipping_rate.rb +4 -0
- data/app/models/spree/stock/adjuster.rb +10 -11
- data/app/models/spree/stock/availability_validator.rb +6 -10
- data/app/models/spree/stock/content_item.rb +48 -0
- data/app/models/spree/stock/coordinator.rb +14 -7
- data/app/models/spree/stock/estimator.rb +1 -1
- data/app/models/spree/stock/inventory_unit_builder.rb +21 -0
- data/app/models/spree/stock/package.rb +38 -51
- data/app/models/spree/stock/packer.rb +13 -11
- data/app/models/spree/stock/prioritizer.rb +7 -7
- data/app/models/spree/stock/splitter/base.rb +2 -2
- data/app/models/spree/stock_item.rb +6 -9
- data/app/models/spree/stock_location.rb +17 -25
- data/app/models/spree/stock_movement.rb +1 -8
- data/app/models/spree/stock_transfer.rb +0 -2
- data/app/models/spree/store.rb +1 -1
- data/app/models/spree/tax_category.rb +2 -2
- data/app/models/spree/tax_rate.rb +16 -22
- data/app/models/spree/taxon.rb +1 -1
- data/app/models/spree/variant.rb +45 -23
- data/app/models/spree/zone.rb +17 -17
- data/app/models/spree/zone_member.rb +1 -1
- data/app/views/layouts/spree/base_mailer.html.erb +784 -0
- data/app/views/spree/order_mailer/cancel_email.html.erb +45 -0
- data/app/views/spree/order_mailer/cancel_email.text.erb +2 -2
- data/app/views/spree/order_mailer/confirm_email.html.erb +84 -0
- data/app/views/spree/order_mailer/confirm_email.text.erb +2 -2
- data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +22 -0
- data/app/views/spree/shared/_base_mailer_footer.html.erb +20 -0
- data/app/views/spree/shared/_base_mailer_header.html.erb +31 -0
- data/app/views/spree/shipment_mailer/shipped_email.html.erb +34 -0
- data/app/views/spree/test_mailer/test_email.html.erb +40 -0
- data/app/views/spree/test_mailer/test_email.text.erb +2 -2
- data/config/initializers/friendly_id.rb +88 -0
- data/config/initializers/premailer_assets.rb +1 -0
- data/config/initializers/user_class_extensions.rb +9 -22
- data/config/locales/en.yml +180 -12
- data/db/default/spree/states.rb +73 -55
- data/db/migrate/20130213191427_create_default_stock.rb +1 -0
- data/db/migrate/20130807024301_upgrade_adjustments.rb +4 -5
- data/db/migrate/20140309033438_create_store_from_preferences.rb +0 -7
- data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +8 -0
- data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +1 -1
- data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +5 -3
- data/db/migrate/20140625214618_create_spree_refunds.rb +12 -0
- data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +12 -0
- data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +5 -0
- data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +10 -0
- data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +55 -0
- data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +7 -0
- data/db/migrate/20140710190048_drop_return_authorization_amount.rb +5 -0
- data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +28 -0
- data/db/migrate/20140713140527_create_spree_refund_reasons.rb +14 -0
- data/db/migrate/20140713142214_rename_return_authorization_reason.rb +5 -0
- data/db/migrate/20140715182625_create_spree_promotion_categories.rb +11 -0
- data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +9 -0
- data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +6 -0
- data/db/migrate/20140717155155_create_default_refund_reason.rb +9 -0
- data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +5 -0
- data/db/migrate/20140718133010_create_spree_customer_returns.rb +9 -0
- data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +6 -0
- data/db/migrate/20140718195325_create_friendly_id_slugs.rb +15 -0
- data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +5 -0
- data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +13 -0
- data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +15 -0
- data/db/migrate/20140725131539_create_spree_reimbursements.rb +21 -0
- data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +5 -0
- data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +7 -0
- data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +5 -0
- data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +20 -0
- data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +5 -0
- data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +10 -0
- data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +9 -0
- data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +10 -0
- data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +7 -0
- data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +5 -0
- data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +5 -0
- data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +6 -0
- data/db/migrate/20141009204607_add_store_id_to_orders.rb +8 -0
- data/lib/generators/spree/install/install_generator.rb +7 -3
- data/lib/spree/core.rb +11 -10
- data/lib/spree/core/controller_helpers/common.rb +3 -10
- data/lib/spree/core/controller_helpers/order.rb +15 -12
- data/lib/spree/core/controller_helpers/strong_parameters.rb +9 -9
- data/lib/spree/core/engine.rb +8 -1
- data/lib/spree/core/importer/order.rb +5 -17
- data/lib/spree/core/search/base.rb +1 -1
- data/lib/spree/core/validators/email.rb +1 -1
- data/lib/spree/core/version.rb +1 -1
- data/lib/spree/instrumentation.rb +41 -0
- data/lib/spree/migrations.rb +3 -7
- data/lib/spree/money.rb +2 -2
- data/lib/spree/permitted_attributes.rb +10 -9
- data/lib/spree/testing_support/ability_helpers.rb +25 -25
- data/lib/spree/testing_support/authorization_helpers.rb +3 -5
- data/lib/spree/testing_support/capybara_ext.rb +2 -2
- data/lib/spree/testing_support/factories/calculator_factory.rb +0 -8
- data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -1
- data/lib/spree/testing_support/factories/customer_return_factory.rb +31 -0
- data/lib/spree/testing_support/factories/inventory_unit_factory.rb +1 -0
- data/lib/spree/testing_support/factories/line_item_factory.rb +2 -1
- data/lib/spree/testing_support/factories/order_factory.rb +11 -6
- data/lib/spree/testing_support/factories/promotion_category_factory.rb +6 -0
- data/lib/spree/testing_support/factories/promotion_factory.rb +9 -7
- data/lib/spree/testing_support/factories/refund_factory.rb +14 -0
- data/lib/spree/testing_support/factories/reimbursement_factory.rb +16 -0
- data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +7 -0
- data/lib/spree/testing_support/factories/return_authorization_factory.rb +9 -3
- data/lib/spree/testing_support/factories/return_item_factory.rb +10 -0
- data/lib/spree/testing_support/factories/shipment_factory.rb +1 -0
- data/lib/spree/testing_support/factories/shipping_method_factory.rb +3 -2
- data/lib/spree/testing_support/factories/stock_factory.rb +12 -11
- data/lib/spree/testing_support/flash.rb +2 -2
- data/lib/tasks/email.rake +7 -0
- data/lib/tasks/exchanges.rake +70 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_et.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_eu.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_hr.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ka.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_ko.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_my.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_pt_BR.js +26 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_pt_PT.js +26 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_sl.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_sv.js +23 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_uk.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_zh.js +25 -0
- data/vendor/assets/javascripts/jquery.validate/localization/messages_zh_TW.js +26 -0
- metadata +163 -47
- data/app/models/concerns/spree/ransackable_attributes.rb +0 -19
- data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +0 -5
- data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +0 -13
- data/db/migrate/20141105213646_update_classifications_positions.rb +0 -9
- data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +0 -5
- data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -70
- data/lib/spree/core/adjustment_source.rb +0 -26
- data/lib/spree/core/calculated_adjustments.rb +0 -35
- data/lib/spree/core/controller_helpers.rb +0 -20
- data/lib/spree/core/user_address.rb +0 -32
- data/lib/spree/core/user_payment_source.rb +0 -20
- data/lib/spree/localized_number.rb +0 -20
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
module Spree::RansackableAttributes
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
included do
|
|
4
|
-
class_attribute :whitelisted_ransackable_associations
|
|
5
|
-
class_attribute :whitelisted_ransackable_attributes
|
|
6
|
-
|
|
7
|
-
class_attribute :default_ransackable_attributes
|
|
8
|
-
self.default_ransackable_attributes = %w[id name]
|
|
9
|
-
|
|
10
|
-
def self.ransackable_associations(*args)
|
|
11
|
-
self.whitelisted_ransackable_associations || []
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def self.ransackable_attributes(*args)
|
|
15
|
-
self.default_ransackable_attributes | (self.whitelisted_ransackable_attributes || [])
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
class FixAdjustmentOrderPresence < ActiveRecord::Migration
|
|
2
|
-
def change
|
|
3
|
-
say 'Fixing adjustments without direct order reference'
|
|
4
|
-
Spree::Adjustment.where(order: nil).find_each do |adjustment|
|
|
5
|
-
adjustable = adjustment.adjustable
|
|
6
|
-
if adjustable.is_a? Spree::Order
|
|
7
|
-
adjustment.update_attributes!(order_id: adjustable.id)
|
|
8
|
-
else
|
|
9
|
-
adjustment.update_attributes!(adjustable: adjustable.order)
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
class FixAdjustmentOrderId < ActiveRecord::Migration
|
|
2
|
-
def change
|
|
3
|
-
say 'Populate order_id from adjustable_id where appropriate'
|
|
4
|
-
execute(<<-SQL.squish)
|
|
5
|
-
UPDATE
|
|
6
|
-
spree_adjustments
|
|
7
|
-
SET
|
|
8
|
-
order_id = adjustable_id
|
|
9
|
-
WHERE
|
|
10
|
-
adjustable_type = 'Spree::Order'
|
|
11
|
-
;
|
|
12
|
-
SQL
|
|
13
|
-
|
|
14
|
-
# Submitter of change does not care about MySQL, as it is not officially supported.
|
|
15
|
-
# Still spree officials decided to provide a working code path for MySQL users, hence
|
|
16
|
-
# submitter made a AR code path he could validate on PostgreSQL.
|
|
17
|
-
#
|
|
18
|
-
# Whoever runs a big enough MySQL installation where the AR solution hurts:
|
|
19
|
-
# Will have to write a better MySQL specific equivalent.
|
|
20
|
-
if Spree::Order.connection.adapter_name.eql?('MySQL')
|
|
21
|
-
Spree::Adjustment.where(adjustable_type: 'Spree::LineItem').find_each do |adjustment|
|
|
22
|
-
adjustment.update_columns(order_id: Spree::LineItem.find(adjustment.adjustable_id).order_id)
|
|
23
|
-
end
|
|
24
|
-
else
|
|
25
|
-
execute(<<-SQL.squish)
|
|
26
|
-
UPDATE
|
|
27
|
-
spree_adjustments
|
|
28
|
-
SET
|
|
29
|
-
order_id =
|
|
30
|
-
(SELECT order_id FROM spree_line_items WHERE spree_line_items.id = spree_adjustments.adjustable_id)
|
|
31
|
-
WHERE
|
|
32
|
-
adjustable_type = 'Spree::LineItem'
|
|
33
|
-
SQL
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
say 'Fix schema for spree_adjustments order_id column'
|
|
37
|
-
change_table :spree_adjustments do |t|
|
|
38
|
-
t.change :order_id, :integer, null: false
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
# Improved schema for postgresql, uncomment if you like it:
|
|
42
|
-
#
|
|
43
|
-
# # Negated Logical implication.
|
|
44
|
-
# #
|
|
45
|
-
# # When adjustable_type is 'Spree::Order' (p) the adjustable_id must be order_id (q).
|
|
46
|
-
# #
|
|
47
|
-
# # When adjustable_type is NOT 'Spree::Order' the adjustable id allowed to be any value (including of order_id in
|
|
48
|
-
# # case foreign keys match). XOR does not work here.
|
|
49
|
-
# #
|
|
50
|
-
# # Postgresql does not have an operator for logical implication. So we need to build the following truth table
|
|
51
|
-
# # via AND with OR:
|
|
52
|
-
# #
|
|
53
|
-
# # p q | CHECK = !(p -> q)
|
|
54
|
-
# # -----------
|
|
55
|
-
# # t t | t
|
|
56
|
-
# # t f | f
|
|
57
|
-
# # f t | t
|
|
58
|
-
# # f f | t
|
|
59
|
-
# #
|
|
60
|
-
# # According to de-morgans law the logical implication q -> p is equivalent to !p || q
|
|
61
|
-
# #
|
|
62
|
-
# execute(<<-SQL.squish)
|
|
63
|
-
# ALTER TABLE ONLY spree_adjustments
|
|
64
|
-
# ADD CONSTRAINT fk_spree_adjustments FOREIGN KEY (order_id)
|
|
65
|
-
# REFERENCES spree_orders(id) ON UPDATE RESTRICT ON DELETE RESTRICT,
|
|
66
|
-
# ADD CONSTRAINT check_spree_adjustments_order_id CHECK
|
|
67
|
-
# (adjustable_type <> 'Spree::Order' OR order_id = adjustable_id);
|
|
68
|
-
# SQL
|
|
69
|
-
end
|
|
70
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Core
|
|
3
|
-
module AdjustmentSource
|
|
4
|
-
def self.included(klass)
|
|
5
|
-
klass.class_eval do
|
|
6
|
-
def deals_with_adjustments_for_deleted_source
|
|
7
|
-
adjustment_scope = self.adjustments.includes(:order).references(:spree_orders)
|
|
8
|
-
|
|
9
|
-
# For incomplete orders, remove the adjustment completely.
|
|
10
|
-
adjustment_scope.where("spree_orders.completed_at IS NULL").destroy_all
|
|
11
|
-
|
|
12
|
-
# For complete orders, the source will be invalid.
|
|
13
|
-
# Therefore we nullify the source_id, leaving the adjustment in place.
|
|
14
|
-
# This would mean that the order's total is not altered at all.
|
|
15
|
-
adjustment_scope.where("spree_orders.completed_at IS NOT NULL").each do |adjustment|
|
|
16
|
-
adjustment.update_columns(
|
|
17
|
-
source_id: nil,
|
|
18
|
-
updated_at: Time.now,
|
|
19
|
-
)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Core
|
|
3
|
-
module CalculatedAdjustments
|
|
4
|
-
def self.included(klass)
|
|
5
|
-
klass.class_eval do
|
|
6
|
-
has_one :calculator, class_name: "Spree::Calculator", as: :calculable, inverse_of: :calculable, dependent: :destroy, autosave: true
|
|
7
|
-
accepts_nested_attributes_for :calculator
|
|
8
|
-
validates :calculator, :presence => true
|
|
9
|
-
|
|
10
|
-
def self.calculators
|
|
11
|
-
spree_calculators.send model_name_without_spree_namespace
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def calculator_type
|
|
15
|
-
calculator.class.to_s if calculator
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def calculator_type=(calculator_type)
|
|
19
|
-
klass = calculator_type.constantize if calculator_type
|
|
20
|
-
self.calculator = klass.new if klass && !self.calculator.is_a?(klass)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
private
|
|
24
|
-
def self.model_name_without_spree_namespace
|
|
25
|
-
self.to_s.tableize.gsub('/', '_').sub('spree_', '')
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def self.spree_calculators
|
|
29
|
-
Rails.application.config.spree.calculators
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
require 'spree/core/controller_helpers/auth'
|
|
2
|
-
require 'spree/core/controller_helpers/common'
|
|
3
|
-
require 'spree/core/controller_helpers/order'
|
|
4
|
-
require 'spree/core/controller_helpers/respond_with'
|
|
5
|
-
require 'spree/core/controller_helpers/store'
|
|
6
|
-
|
|
7
|
-
module Spree
|
|
8
|
-
module Core
|
|
9
|
-
module ControllerHelpers
|
|
10
|
-
extend ActiveSupport::Concern
|
|
11
|
-
included do
|
|
12
|
-
include Spree::Core::ControllerHelpers::Auth
|
|
13
|
-
include Spree::Core::ControllerHelpers::Common
|
|
14
|
-
include Spree::Core::ControllerHelpers::Order
|
|
15
|
-
include Spree::Core::ControllerHelpers::RespondWith
|
|
16
|
-
include Spree::Core::ControllerHelpers::Store
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Core
|
|
3
|
-
module UserAddress
|
|
4
|
-
extend ActiveSupport::Concern
|
|
5
|
-
|
|
6
|
-
included do
|
|
7
|
-
belongs_to :bill_address, foreign_key: :bill_address_id, class_name: 'Spree::Address'
|
|
8
|
-
alias_attribute :billing_address, :bill_address
|
|
9
|
-
|
|
10
|
-
belongs_to :ship_address, foreign_key: :ship_address_id, class_name: 'Spree::Address'
|
|
11
|
-
alias_attribute :shipping_address, :ship_address
|
|
12
|
-
|
|
13
|
-
accepts_nested_attributes_for :ship_address, :bill_address
|
|
14
|
-
|
|
15
|
-
def persist_order_address(order)
|
|
16
|
-
b_address = self.bill_address || self.build_bill_address
|
|
17
|
-
b_address.attributes = order.bill_address.attributes.except('id', 'updated_at', 'created_at')
|
|
18
|
-
b_address.save
|
|
19
|
-
self.update_attributes(bill_address_id: b_address.id)
|
|
20
|
-
|
|
21
|
-
# May not be present if delivery step has been removed
|
|
22
|
-
if order.ship_address
|
|
23
|
-
s_address = self.ship_address || self.build_ship_address
|
|
24
|
-
s_address.attributes = order.ship_address.attributes.except('id', 'updated_at', 'created_at')
|
|
25
|
-
s_address.save
|
|
26
|
-
self.update_attributes(ship_address_id: s_address.id)
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
module Core
|
|
3
|
-
module UserPaymentSource
|
|
4
|
-
extend ActiveSupport::Concern
|
|
5
|
-
|
|
6
|
-
included do
|
|
7
|
-
has_many :credit_cards, class_name: "Spree::CreditCard", foreign_key: :user_id
|
|
8
|
-
|
|
9
|
-
def payment_sources
|
|
10
|
-
credit_cards.with_payment_profile
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def drop_payment_source(source)
|
|
14
|
-
gateway = source.payment_method
|
|
15
|
-
gateway.disable_customer_profile(source)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
module Spree
|
|
2
|
-
class LocalizedNumber
|
|
3
|
-
|
|
4
|
-
# Strips all non-price-like characters from the number, taking into account locale settings.
|
|
5
|
-
def self.parse(number)
|
|
6
|
-
return number unless number.is_a?(String)
|
|
7
|
-
|
|
8
|
-
separator, delimiter = I18n.t([:'number.currency.format.separator', :'number.currency.format.delimiter'])
|
|
9
|
-
non_number_characters = /[^0-9\-#{separator}]/
|
|
10
|
-
|
|
11
|
-
# strip everything else first
|
|
12
|
-
number.gsub!(non_number_characters, '')
|
|
13
|
-
# then replace the locale-specific decimal separator with the standard separator if necessary
|
|
14
|
-
number.gsub!(separator, '.') unless separator == '.'
|
|
15
|
-
|
|
16
|
-
number.to_d
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
end
|
|
20
|
-
end
|