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.
Files changed (232) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.coffee.erb +1 -5
  3. data/app/helpers/spree/base_helper.rb +22 -11
  4. data/app/helpers/spree/products_helper.rb +8 -7
  5. data/app/mailers/spree/base_mailer.rb +1 -0
  6. data/app/mailers/spree/reimbursement_mailer.rb +10 -0
  7. data/app/mailers/spree/test_mailer.rb +2 -3
  8. data/app/models/concerns/spree/adjustment_source.rb +24 -0
  9. data/app/models/concerns/spree/calculated_adjustments.rb +33 -0
  10. data/app/models/concerns/spree/named_type.rb +12 -0
  11. data/app/models/concerns/spree/user_address.rb +30 -0
  12. data/app/models/concerns/spree/user_payment_source.rb +19 -0
  13. data/app/models/spree/address.rb +13 -6
  14. data/app/models/spree/adjustment.rb +5 -5
  15. data/app/models/spree/app_configuration.rb +8 -4
  16. data/app/models/spree/asset.rb +1 -1
  17. data/app/models/spree/base.rb +0 -3
  18. data/app/models/spree/calculator/flat_rate.rb +1 -5
  19. data/app/models/spree/calculator/returns/default_refund_amount.rb +36 -0
  20. data/app/models/spree/classification.rb +1 -1
  21. data/app/models/spree/credit_card.rb +18 -22
  22. data/app/models/spree/customer_return.rb +70 -0
  23. data/app/models/spree/exchange.rb +42 -0
  24. data/app/models/spree/gateway/bogus.rb +3 -3
  25. data/app/models/spree/image.rb +1 -1
  26. data/app/models/spree/inventory_unit.rb +32 -8
  27. data/app/models/spree/item_adjustments.rb +7 -11
  28. data/app/models/spree/legacy_user.rb +2 -2
  29. data/app/models/spree/line_item.rb +25 -12
  30. data/app/models/spree/option_type.rb +1 -1
  31. data/app/models/spree/option_value.rb +1 -8
  32. data/app/models/spree/order.rb +163 -145
  33. data/app/models/spree/order/checkout.rb +35 -23
  34. data/app/models/spree/order/payments.rb +66 -0
  35. data/app/models/spree/order_contents.rb +34 -24
  36. data/app/models/spree/order_populator.rb +6 -4
  37. data/app/models/spree/order_updater.rb +10 -1
  38. data/app/models/spree/payment.rb +19 -16
  39. data/app/models/spree/payment/processing.rb +40 -72
  40. data/app/models/spree/payment_method.rb +1 -1
  41. data/app/models/spree/payment_method/check.rb +0 -2
  42. data/app/models/spree/preference.rb +1 -1
  43. data/app/models/spree/preferences/preferable.rb +20 -0
  44. data/app/models/spree/price.rb +13 -3
  45. data/app/models/spree/product.rb +24 -29
  46. data/app/models/spree/product_property.rb +0 -2
  47. data/app/models/spree/promotion.rb +66 -24
  48. data/app/models/spree/promotion/actions/create_adjustment.rb +2 -2
  49. data/app/models/spree/promotion/actions/create_item_adjustments.rb +15 -11
  50. data/app/models/spree/promotion/actions/create_line_items.rb +2 -12
  51. data/app/models/spree/promotion/rules/first_order.rb +6 -2
  52. data/app/models/spree/promotion/rules/item_total.rb +42 -4
  53. data/app/models/spree/promotion/rules/one_use_per_user.rb +24 -0
  54. data/app/models/spree/promotion/rules/product.rb +13 -11
  55. data/app/models/spree/promotion/rules/taxon.rb +61 -0
  56. data/app/models/spree/promotion/rules/user.rb +1 -1
  57. data/app/models/spree/promotion/rules/user_logged_in.rb +4 -1
  58. data/app/models/spree/promotion_category.rb +6 -0
  59. data/app/models/spree/promotion_handler/cart.rb +14 -18
  60. data/app/models/spree/promotion_handler/coupon.rb +25 -16
  61. data/app/models/spree/promotion_rule.rb +13 -0
  62. data/app/models/spree/property.rb +1 -3
  63. data/app/models/spree/refund.rb +91 -0
  64. data/app/models/spree/refund_reason.rb +13 -0
  65. data/app/models/spree/reimbursement.rb +148 -0
  66. data/app/models/spree/reimbursement/credit.rb +25 -0
  67. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +56 -0
  68. data/app/models/spree/reimbursement/reimbursement_type_validator.rb +12 -0
  69. data/app/models/spree/reimbursement_performer.rb +43 -0
  70. data/app/models/spree/reimbursement_tax_calculator.rb +38 -0
  71. data/app/models/spree/reimbursement_type.rb +16 -0
  72. data/app/models/spree/reimbursement_type/credit.rb +13 -0
  73. data/app/models/spree/reimbursement_type/exchange.rb +9 -0
  74. data/app/models/spree/reimbursement_type/original_payment.rb +13 -0
  75. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +50 -0
  76. data/app/models/spree/return_authorization.rb +52 -68
  77. data/app/models/spree/return_authorization_reason.rb +7 -0
  78. data/app/models/spree/return_item.rb +230 -0
  79. data/app/models/spree/return_item/default_eligibility_validator.rb +27 -0
  80. data/app/models/spree/return_item/eligibility_validator/base_validator.rb +24 -0
  81. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +17 -0
  82. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +16 -0
  83. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +34 -0
  84. data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +10 -0
  85. data/app/models/spree/returns_calculator.rb +8 -0
  86. data/app/models/spree/shipment.rb +209 -154
  87. data/app/models/spree/shipment_handler.rb +43 -0
  88. data/app/models/spree/shipping_calculator.rb +1 -1
  89. data/app/models/spree/shipping_category.rb +2 -2
  90. data/app/models/spree/shipping_method.rb +1 -1
  91. data/app/models/spree/shipping_method_category.rb +1 -1
  92. data/app/models/spree/shipping_rate.rb +4 -0
  93. data/app/models/spree/stock/adjuster.rb +10 -11
  94. data/app/models/spree/stock/availability_validator.rb +6 -10
  95. data/app/models/spree/stock/content_item.rb +48 -0
  96. data/app/models/spree/stock/coordinator.rb +14 -7
  97. data/app/models/spree/stock/estimator.rb +1 -1
  98. data/app/models/spree/stock/inventory_unit_builder.rb +21 -0
  99. data/app/models/spree/stock/package.rb +38 -51
  100. data/app/models/spree/stock/packer.rb +13 -11
  101. data/app/models/spree/stock/prioritizer.rb +7 -7
  102. data/app/models/spree/stock/splitter/base.rb +2 -2
  103. data/app/models/spree/stock_item.rb +6 -9
  104. data/app/models/spree/stock_location.rb +17 -25
  105. data/app/models/spree/stock_movement.rb +1 -8
  106. data/app/models/spree/stock_transfer.rb +0 -2
  107. data/app/models/spree/store.rb +1 -1
  108. data/app/models/spree/tax_category.rb +2 -2
  109. data/app/models/spree/tax_rate.rb +16 -22
  110. data/app/models/spree/taxon.rb +1 -1
  111. data/app/models/spree/variant.rb +45 -23
  112. data/app/models/spree/zone.rb +17 -17
  113. data/app/models/spree/zone_member.rb +1 -1
  114. data/app/views/layouts/spree/base_mailer.html.erb +784 -0
  115. data/app/views/spree/order_mailer/cancel_email.html.erb +45 -0
  116. data/app/views/spree/order_mailer/cancel_email.text.erb +2 -2
  117. data/app/views/spree/order_mailer/confirm_email.html.erb +84 -0
  118. data/app/views/spree/order_mailer/confirm_email.text.erb +2 -2
  119. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +22 -0
  120. data/app/views/spree/shared/_base_mailer_footer.html.erb +20 -0
  121. data/app/views/spree/shared/_base_mailer_header.html.erb +31 -0
  122. data/app/views/spree/shipment_mailer/shipped_email.html.erb +34 -0
  123. data/app/views/spree/test_mailer/test_email.html.erb +40 -0
  124. data/app/views/spree/test_mailer/test_email.text.erb +2 -2
  125. data/config/initializers/friendly_id.rb +88 -0
  126. data/config/initializers/premailer_assets.rb +1 -0
  127. data/config/initializers/user_class_extensions.rb +9 -22
  128. data/config/locales/en.yml +180 -12
  129. data/db/default/spree/states.rb +73 -55
  130. data/db/migrate/20130213191427_create_default_stock.rb +1 -0
  131. data/db/migrate/20130807024301_upgrade_adjustments.rb +4 -5
  132. data/db/migrate/20140309033438_create_store_from_preferences.rb +0 -7
  133. data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +8 -0
  134. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +1 -1
  135. data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +5 -3
  136. data/db/migrate/20140625214618_create_spree_refunds.rb +12 -0
  137. data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +12 -0
  138. data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +5 -0
  139. data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +10 -0
  140. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +55 -0
  141. data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +7 -0
  142. data/db/migrate/20140710190048_drop_return_authorization_amount.rb +5 -0
  143. data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +28 -0
  144. data/db/migrate/20140713140527_create_spree_refund_reasons.rb +14 -0
  145. data/db/migrate/20140713142214_rename_return_authorization_reason.rb +5 -0
  146. data/db/migrate/20140715182625_create_spree_promotion_categories.rb +11 -0
  147. data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +9 -0
  148. data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +6 -0
  149. data/db/migrate/20140717155155_create_default_refund_reason.rb +9 -0
  150. data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +5 -0
  151. data/db/migrate/20140718133010_create_spree_customer_returns.rb +9 -0
  152. data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +6 -0
  153. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +15 -0
  154. data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +5 -0
  155. data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +13 -0
  156. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +15 -0
  157. data/db/migrate/20140725131539_create_spree_reimbursements.rb +21 -0
  158. data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +5 -0
  159. data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +7 -0
  160. data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +5 -0
  161. data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +20 -0
  162. data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +5 -0
  163. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +10 -0
  164. data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +9 -0
  165. data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +10 -0
  166. data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +7 -0
  167. data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +5 -0
  168. data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +5 -0
  169. data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +6 -0
  170. data/db/migrate/20141009204607_add_store_id_to_orders.rb +8 -0
  171. data/lib/generators/spree/install/install_generator.rb +7 -3
  172. data/lib/spree/core.rb +11 -10
  173. data/lib/spree/core/controller_helpers/common.rb +3 -10
  174. data/lib/spree/core/controller_helpers/order.rb +15 -12
  175. data/lib/spree/core/controller_helpers/strong_parameters.rb +9 -9
  176. data/lib/spree/core/engine.rb +8 -1
  177. data/lib/spree/core/importer/order.rb +5 -17
  178. data/lib/spree/core/search/base.rb +1 -1
  179. data/lib/spree/core/validators/email.rb +1 -1
  180. data/lib/spree/core/version.rb +1 -1
  181. data/lib/spree/instrumentation.rb +41 -0
  182. data/lib/spree/migrations.rb +3 -7
  183. data/lib/spree/money.rb +2 -2
  184. data/lib/spree/permitted_attributes.rb +10 -9
  185. data/lib/spree/testing_support/ability_helpers.rb +25 -25
  186. data/lib/spree/testing_support/authorization_helpers.rb +3 -5
  187. data/lib/spree/testing_support/capybara_ext.rb +2 -2
  188. data/lib/spree/testing_support/factories/calculator_factory.rb +0 -8
  189. data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -1
  190. data/lib/spree/testing_support/factories/customer_return_factory.rb +31 -0
  191. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +1 -0
  192. data/lib/spree/testing_support/factories/line_item_factory.rb +2 -1
  193. data/lib/spree/testing_support/factories/order_factory.rb +11 -6
  194. data/lib/spree/testing_support/factories/promotion_category_factory.rb +6 -0
  195. data/lib/spree/testing_support/factories/promotion_factory.rb +9 -7
  196. data/lib/spree/testing_support/factories/refund_factory.rb +14 -0
  197. data/lib/spree/testing_support/factories/reimbursement_factory.rb +16 -0
  198. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +7 -0
  199. data/lib/spree/testing_support/factories/return_authorization_factory.rb +9 -3
  200. data/lib/spree/testing_support/factories/return_item_factory.rb +10 -0
  201. data/lib/spree/testing_support/factories/shipment_factory.rb +1 -0
  202. data/lib/spree/testing_support/factories/shipping_method_factory.rb +3 -2
  203. data/lib/spree/testing_support/factories/stock_factory.rb +12 -11
  204. data/lib/spree/testing_support/flash.rb +2 -2
  205. data/lib/tasks/email.rake +7 -0
  206. data/lib/tasks/exchanges.rake +70 -0
  207. data/vendor/assets/javascripts/jquery.validate/localization/messages_et.js +23 -0
  208. data/vendor/assets/javascripts/jquery.validate/localization/messages_eu.js +25 -0
  209. data/vendor/assets/javascripts/jquery.validate/localization/messages_hr.js +25 -0
  210. data/vendor/assets/javascripts/jquery.validate/localization/messages_ka.js +25 -0
  211. data/vendor/assets/javascripts/jquery.validate/localization/messages_ko.js +25 -0
  212. data/vendor/assets/javascripts/jquery.validate/localization/messages_my.js +25 -0
  213. data/vendor/assets/javascripts/jquery.validate/localization/messages_pt_BR.js +26 -0
  214. data/vendor/assets/javascripts/jquery.validate/localization/messages_pt_PT.js +26 -0
  215. data/vendor/assets/javascripts/jquery.validate/localization/messages_sl.js +25 -0
  216. data/vendor/assets/javascripts/jquery.validate/localization/messages_sv.js +23 -0
  217. data/vendor/assets/javascripts/jquery.validate/localization/messages_uk.js +25 -0
  218. data/vendor/assets/javascripts/jquery.validate/localization/messages_zh.js +25 -0
  219. data/vendor/assets/javascripts/jquery.validate/localization/messages_zh_TW.js +26 -0
  220. metadata +163 -47
  221. data/app/models/concerns/spree/ransackable_attributes.rb +0 -19
  222. data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +0 -5
  223. data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +0 -13
  224. data/db/migrate/20141105213646_update_classifications_positions.rb +0 -9
  225. data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +0 -5
  226. data/db/migrate/20150515211137_fix_adjustment_order_id.rb +0 -70
  227. data/lib/spree/core/adjustment_source.rb +0 -26
  228. data/lib/spree/core/calculated_adjustments.rb +0 -35
  229. data/lib/spree/core/controller_helpers.rb +0 -20
  230. data/lib/spree/core/user_address.rb +0 -32
  231. data/lib/spree/core/user_payment_source.rb +0 -20
  232. 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,5 +0,0 @@
1
- class AddStateLockVersionToOrder < ActiveRecord::Migration
2
- def change
3
- add_column :spree_orders, :state_lock_version, :integer, default: 0, null: false
4
- end
5
- 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,9 +0,0 @@
1
- class UpdateClassificationsPositions < ActiveRecord::Migration
2
- def up
3
- Spree::Taxon.all.each do |taxon|
4
- taxon.classifications.each_with_index do |c12n, i|
5
- c12n.set_list_position(i + 1)
6
- end
7
- end
8
- end
9
- end
@@ -1,5 +0,0 @@
1
- class AddGuestTokenIndexToSpreeOrders < ActiveRecord::Migration
2
- def change
3
- add_index :spree_orders, :guest_token
4
- end
5
- 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