spree_core 2.3.13 → 2.4.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|