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,58 +1,76 @@
1
- country = Spree::Country.find_by(name: 'United States')
1
+ united_states = Spree::Country.find_by(name: 'United States')
2
2
 
3
3
  Spree::State.create!([
4
- { name: 'Michigan', abbr: 'MI', country: country },
5
- { name: 'South Dakota', abbr: 'SD', country: country },
6
- { name: 'Washington', abbr: 'WA', country: country },
7
- { name: 'Wisconsin', abbr: 'WI', country: country },
8
- { name: 'Arizona', abbr: 'AZ', country: country },
9
- { name: 'Illinois', abbr: 'IL', country: country },
10
- { name: 'New Hampshire', abbr: 'NH', country: country },
11
- { name: 'North Carolina', abbr: 'NC', country: country },
12
- { name: 'Kansas', abbr: 'KS', country: country },
13
- { name: 'Missouri', abbr: 'MO', country: country },
14
- { name: 'Arkansas', abbr: 'AR', country: country },
15
- { name: 'Nevada', abbr: 'NV', country: country },
16
- { name: 'District of Columbia', abbr: 'DC', country: country },
17
- { name: 'Idaho', abbr: 'ID', country: country },
18
- { name: 'Nebraska', abbr: 'NE', country: country },
19
- { name: 'Pennsylvania', abbr: 'PA', country: country },
20
- { name: 'Hawaii', abbr: 'HI', country: country },
21
- { name: 'Utah', abbr: 'UT', country: country },
22
- { name: 'Vermont', abbr: 'VT', country: country },
23
- { name: 'Delaware', abbr: 'DE', country: country },
24
- { name: 'Rhode Island', abbr: 'RI', country: country },
25
- { name: 'Oklahoma', abbr: 'OK', country: country },
26
- { name: 'Louisiana', abbr: 'LA', country: country },
27
- { name: 'Montana', abbr: 'MT', country: country },
28
- { name: 'Tennessee', abbr: 'TN', country: country },
29
- { name: 'Maryland', abbr: 'MD', country: country },
30
- { name: 'Florida', abbr: 'FL', country: country },
31
- { name: 'Virginia', abbr: 'VA', country: country },
32
- { name: 'Minnesota', abbr: 'MN', country: country },
33
- { name: 'New Jersey', abbr: 'NJ', country: country },
34
- { name: 'Ohio', abbr: 'OH', country: country },
35
- { name: 'California', abbr: 'CA', country: country },
36
- { name: 'North Dakota', abbr: 'ND', country: country },
37
- { name: 'Maine', abbr: 'ME', country: country },
38
- { name: 'Indiana', abbr: 'IN', country: country },
39
- { name: 'Texas', abbr: 'TX', country: country },
40
- { name: 'Oregon', abbr: 'OR', country: country },
41
- { name: 'Wyoming', abbr: 'WY', country: country },
42
- { name: 'Alabama', abbr: 'AL', country: country },
43
- { name: 'Iowa', abbr: 'IA', country: country },
44
- { name: 'Mississippi', abbr: 'MS', country: country },
45
- { name: 'Kentucky', abbr: 'KY', country: country },
46
- { name: 'New Mexico', abbr: 'NM', country: country },
47
- { name: 'Georgia', abbr: 'GA', country: country },
48
- { name: 'Colorado', abbr: 'CO', country: country },
49
- { name: 'Massachusetts', abbr: 'MA', country: country },
50
- { name: 'Connecticut', abbr: 'CT', country: country },
51
- { name: 'New York', abbr: 'NY', country: country },
52
- { name: 'South Carolina', abbr: 'SC', country: country },
53
- { name: 'Alaska', abbr: 'AK', country: country },
54
- { name: 'West Virginia', abbr: 'WV', country: country },
55
- { name: 'U.S. Armed Forces - Americas', abbr: 'AA', country: country },
56
- { name: 'U.S. Armed Forces - Europe', abbr: 'AE', country: country },
57
- { name: 'U.S. Armed Forces - Pacific', abbr: 'AP', country: country }
4
+ { name: 'Michigan', abbr: 'MI', country: united_states },
5
+ { name: 'South Dakota', abbr: 'SD', country: united_states },
6
+ { name: 'Washington', abbr: 'WA', country: united_states },
7
+ { name: 'Wisconsin', abbr: 'WI', country: united_states },
8
+ { name: 'Arizona', abbr: 'AZ', country: united_states },
9
+ { name: 'Illinois', abbr: 'IL', country: united_states },
10
+ { name: 'New Hampshire', abbr: 'NH', country: united_states },
11
+ { name: 'North Carolina', abbr: 'NC', country: united_states },
12
+ { name: 'Kansas', abbr: 'KS', country: united_states },
13
+ { name: 'Missouri', abbr: 'MO', country: united_states },
14
+ { name: 'Arkansas', abbr: 'AR', country: united_states },
15
+ { name: 'Nevada', abbr: 'NV', country: united_states },
16
+ { name: 'District of Columbia', abbr: 'DC', country: united_states },
17
+ { name: 'Idaho', abbr: 'ID', country: united_states },
18
+ { name: 'Nebraska', abbr: 'NE', country: united_states },
19
+ { name: 'Pennsylvania', abbr: 'PA', country: united_states },
20
+ { name: 'Hawaii', abbr: 'HI', country: united_states },
21
+ { name: 'Utah', abbr: 'UT', country: united_states },
22
+ { name: 'Vermont', abbr: 'VT', country: united_states },
23
+ { name: 'Delaware', abbr: 'DE', country: united_states },
24
+ { name: 'Rhode Island', abbr: 'RI', country: united_states },
25
+ { name: 'Oklahoma', abbr: 'OK', country: united_states },
26
+ { name: 'Louisiana', abbr: 'LA', country: united_states },
27
+ { name: 'Montana', abbr: 'MT', country: united_states },
28
+ { name: 'Tennessee', abbr: 'TN', country: united_states },
29
+ { name: 'Maryland', abbr: 'MD', country: united_states },
30
+ { name: 'Florida', abbr: 'FL', country: united_states },
31
+ { name: 'Virginia', abbr: 'VA', country: united_states },
32
+ { name: 'Minnesota', abbr: 'MN', country: united_states },
33
+ { name: 'New Jersey', abbr: 'NJ', country: united_states },
34
+ { name: 'Ohio', abbr: 'OH', country: united_states },
35
+ { name: 'California', abbr: 'CA', country: united_states },
36
+ { name: 'North Dakota', abbr: 'ND', country: united_states },
37
+ { name: 'Maine', abbr: 'ME', country: united_states },
38
+ { name: 'Indiana', abbr: 'IN', country: united_states },
39
+ { name: 'Texas', abbr: 'TX', country: united_states },
40
+ { name: 'Oregon', abbr: 'OR', country: united_states },
41
+ { name: 'Wyoming', abbr: 'WY', country: united_states },
42
+ { name: 'Alabama', abbr: 'AL', country: united_states },
43
+ { name: 'Iowa', abbr: 'IA', country: united_states },
44
+ { name: 'Mississippi', abbr: 'MS', country: united_states },
45
+ { name: 'Kentucky', abbr: 'KY', country: united_states },
46
+ { name: 'New Mexico', abbr: 'NM', country: united_states },
47
+ { name: 'Georgia', abbr: 'GA', country: united_states },
48
+ { name: 'Colorado', abbr: 'CO', country: united_states },
49
+ { name: 'Massachusetts', abbr: 'MA', country: united_states },
50
+ { name: 'Connecticut', abbr: 'CT', country: united_states },
51
+ { name: 'New York', abbr: 'NY', country: united_states },
52
+ { name: 'South Carolina', abbr: 'SC', country: united_states },
53
+ { name: 'Alaska', abbr: 'AK', country: united_states },
54
+ { name: 'West Virginia', abbr: 'WV', country: united_states },
55
+ { name: 'U.S. Armed Forces - Americas', abbr: 'AA', country: united_states },
56
+ { name: 'U.S. Armed Forces - Europe', abbr: 'AE', country: united_states },
57
+ { name: 'U.S. Armed Forces - Pacific', abbr: 'AP', country: united_states }
58
+ ])
59
+
60
+ canada = Spree::Country.find_by(name: 'Canada')
61
+
62
+ Spree::State.create!([
63
+ { name: "Yukon", abbr: "YT", country: canada },
64
+ { name: "Nunavut", abbr: "NU", country: canada },
65
+ { name: "British Columbia", abbr: "BC", country: canada },
66
+ { name: "Alberta", abbr: "AB", country: canada },
67
+ { name: "Saskatchewan", abbr: "SK", country: canada },
68
+ { name: "Manitoba", abbr: "MB", country: canada },
69
+ { name: "Ontario", abbr: "ON", country: canada },
70
+ { name: "Quebec", abbr: "QC", country: canada },
71
+ { name: "New Brunswick", abbr: "NB", country: canada },
72
+ { name: "Newfoundland and Labrador", abbr: "NL", country: canada },
73
+ { name: "Nova Scotia", abbr: "NS", country: canada },
74
+ { name: "Prince Edward Island", abbr: "PE", country: canada },
75
+ { name: "Northwest Territories", abbr: "NT", country: canada }
58
76
  ])
@@ -1,6 +1,7 @@
1
1
  class CreateDefaultStock < ActiveRecord::Migration
2
2
  def up
3
3
  Spree::StockLocation.skip_callback(:create, :after, :create_stock_items)
4
+ Spree::StockLocation.skip_callback(:save, :after, :ensure_one_default)
4
5
  Spree::StockItem.skip_callback(:save, :after, :process_backorders)
5
6
  location = Spree::StockLocation.new(name: 'default')
6
7
  location.save(validate: false)
@@ -9,14 +9,13 @@ class UpgradeAdjustments < ActiveRecord::Migration
9
9
  # Account for possible invalid data
10
10
  next if adjustment.source.nil?
11
11
  adjustment.source.update_column(:cost, adjustment.amount)
12
- adjustment.destroy!
12
+ adjustment.destroy
13
13
  end
14
14
 
15
15
  # Tax adjustments have their sources altered
16
16
  Spree::Adjustment.where(:originator_type => "Spree::TaxRate").find_each do |adjustment|
17
- adjustment.source_id = adjustment.originator_id
18
- adjustment.source_type = "Spree::TaxRate"
19
- adjustment.save!
17
+ adjustment.source = adjustment.originator
18
+ adjustment.save
20
19
  end
21
20
 
22
21
  # Promotion adjustments have their source altered also
@@ -34,7 +33,7 @@ class UpgradeAdjustments < ActiveRecord::Migration
34
33
  # Fail silently. This is primarily in instances where the calculator no longer exists
35
34
  end
36
35
 
37
- adjustment.save!
36
+ adjustment.save
38
37
  end
39
38
  end
40
39
  end
@@ -1,12 +1,5 @@
1
1
  class CreateStoreFromPreferences < ActiveRecord::Migration
2
2
  def change
3
- # workaround for spree_i18n and Store translations
4
- Spree::Store.class_eval do
5
- def self.translated?(name)
6
- false
7
- end
8
- end
9
-
10
3
  preference_store = Spree::Preferences::Store.instance
11
4
  if store = Spree::Store.where(default: true).first
12
5
  store.meta_description = preference_store.get('spree/app_configuration/default_meta_description') {}
@@ -0,0 +1,8 @@
1
+ class CreateSpreeTaxonsPromotionRules < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_taxons_promotion_rules do |t|
4
+ t.references :taxon, index: true
5
+ t.references :promotion_rule, index: true
6
+ end
7
+ end
8
+ end
@@ -10,7 +10,7 @@ class MoveOrderTokenFromTokenizedPermission < ActiveRecord::Migration
10
10
  Spree::Order.includes(:tokenized_permission).each do |o|
11
11
  o.update_column :guest_token, o.tokenized_permission.token
12
12
  end
13
- when 'Mysql2', 'MySQL'
13
+ when 'Mysql2'
14
14
  execute "UPDATE spree_orders, spree_tokenized_permissions
15
15
  SET spree_orders.guest_token = spree_tokenized_permissions.token
16
16
  WHERE spree_tokenized_permissions.permissable_id = spree_orders.id
@@ -3,8 +3,10 @@ class SetShipmentTotalForUsersUpgrading < ActiveRecord::Migration
3
3
  # NOTE You might not need this at all unless you're upgrading from Spree 2.1.x
4
4
  # or below. For those upgrading this should populate the Order#shipment_total
5
5
  # for legacy orders
6
- Spree::Order.complete.where('shipment_total = ?', 0).includes(:shipments).find_each do |order|
7
- order.update_column(:shipment_total, order.shipments.sum(:cost))
8
- end
6
+ execute "UPDATE spree_orders
7
+ SET shipment_total = (SELECT SUM(spree_shipments.cost) AS sum_id
8
+ FROM spree_shipments
9
+ WHERE spree_shipments.order_id = spree_orders.id)
10
+ WHERE spree_orders.completed_at IS NOT NULL AND spree_orders.shipment_total = 0"
9
11
  end
10
12
  end
@@ -0,0 +1,12 @@
1
+ class CreateSpreeRefunds < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_refunds do |t|
4
+ t.integer :payment_id
5
+ t.integer :return_authorization_id
6
+ t.decimal :amount, precision: 10, scale: 2, default: 0.0, null: false
7
+ t.string :transaction_id
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateSpreeReturnAuthorizationInventoryUnit < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_return_authorization_inventory_units do |t|
4
+ t.integer :return_authorization_id
5
+ t.integer :inventory_unit_id
6
+ t.integer :exchange_variant_id
7
+ t.datetime :received_at
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ class RenameReturnAuthorizationInventoryUnitToReturnItems < ActiveRecord::Migration
2
+ def change
3
+ rename_table :spree_return_authorization_inventory_units, :spree_return_items
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ class BackfillLineItemPreTaxAmount < ActiveRecord::Migration
2
+ def change
3
+ # set pre_tax_amount to discounted_amount - included_tax_total
4
+ execute(<<-SQL)
5
+ UPDATE spree_line_items
6
+ SET pre_tax_amount = ((price * quantity) + promo_total) - included_tax_total
7
+ WHERE pre_tax_amount IS NULL;
8
+ SQL
9
+ end
10
+ end
@@ -0,0 +1,55 @@
1
+ class RecreateSpreeReturnAuthorizations < ActiveRecord::Migration
2
+ def up
3
+ # If the app has any legacy return authorizations then rename the table & columns and leave them there
4
+ # for the spree_legacy_return_authorizations extension to pick up with.
5
+ # Otherwise just drop the tables/columns as they are no longer used in stock spree. The spree_legacy_return_authorizations
6
+ # extension will recreate these tables for dev environments & etc as needed.
7
+ if Spree::ReturnAuthorization.exists?
8
+ rename_table :spree_return_authorizations, :spree_legacy_return_authorizations
9
+ rename_column :spree_inventory_units, :return_authorization_id, :legacy_return_authorization_id
10
+ else
11
+ drop_table :spree_return_authorizations
12
+ remove_column :spree_inventory_units, :return_authorization_id
13
+ end
14
+
15
+ Spree::Adjustment.where(source_type: 'Spree::ReturnAuthorization').update_all(source_type: 'Spree::LegacyReturnAuthorization')
16
+
17
+ # For now just recreate the table as it was. Future changes to the schema (including dropping "amount") will be coming in a
18
+ # separate commit.
19
+ create_table :spree_return_authorizations do |t|
20
+ t.string "number"
21
+ t.string "state"
22
+ t.decimal "amount", precision: 10, scale: 2, default: 0.0, null: false
23
+ t.integer "order_id"
24
+ t.text "reason"
25
+ t.datetime "created_at"
26
+ t.datetime "updated_at"
27
+ t.integer "stock_location_id"
28
+ end
29
+
30
+ end
31
+
32
+ def down
33
+ drop_table :spree_return_authorizations
34
+
35
+ Spree::Adjustment.where(source_type: 'Spree::LegacyReturnAuthorization').update_all(source_type: 'Spree::ReturnAuthorization')
36
+
37
+ if table_exists?(:spree_legacy_return_authorizations)
38
+ rename_table :spree_legacy_return_authorizations, :spree_return_authorizations
39
+ rename_column :spree_inventory_units, :legacy_return_authorization_id, :return_authorization_id
40
+ else
41
+ create_table :spree_return_authorizations do |t|
42
+ t.string "number"
43
+ t.string "state"
44
+ t.decimal "amount", precision: 10, scale: 2, default: 0.0, null: false
45
+ t.integer "order_id"
46
+ t.text "reason"
47
+ t.datetime "created_at"
48
+ t.datetime "updated_at"
49
+ t.integer "stock_location_id"
50
+ end
51
+ add_column :spree_inventory_units, :return_authorization_id, :integer, after: :shipment_id
52
+ add_index :spree_inventory_units, :return_authorization_id
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,7 @@
1
+ class AddAmountFieldsToReturnItems < ActiveRecord::Migration
2
+ def change
3
+ add_column :spree_return_items, :pre_tax_amount, :decimal, precision: 10, scale: 2, default: 0.0, null: false
4
+ add_column :spree_return_items, :included_tax_total, :decimal, precision: 10, scale: 2, default: 0.0, null: false
5
+ add_column :spree_return_items, :additional_tax_total, :decimal, precision: 10, scale: 2, default: 0.0, null: false
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ class DropReturnAuthorizationAmount < ActiveRecord::Migration
2
+ def change
3
+ remove_column :spree_return_authorizations, :amount
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+ class CreateSpreeReturnAuthorizationReasons < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_return_authorization_reasons do |t|
4
+ t.string :name
5
+ t.boolean :active, default: true
6
+ t.boolean :mutable, default: true
7
+
8
+ t.timestamps
9
+ end
10
+
11
+ reversible do |direction|
12
+ direction.up do
13
+ Spree::ReturnAuthorizationReason.create!(name: 'Better price available')
14
+ Spree::ReturnAuthorizationReason.create!(name: 'Missed estimated delivery date')
15
+ Spree::ReturnAuthorizationReason.create!(name: 'Missing parts or accessories')
16
+ Spree::ReturnAuthorizationReason.create!(name: 'Damaged/Defective')
17
+ Spree::ReturnAuthorizationReason.create!(name: 'Different from what was ordered')
18
+ Spree::ReturnAuthorizationReason.create!(name: 'Different from description')
19
+ Spree::ReturnAuthorizationReason.create!(name: 'No longer needed/wanted')
20
+ Spree::ReturnAuthorizationReason.create!(name: 'Accidental order')
21
+ Spree::ReturnAuthorizationReason.create!(name: 'Unauthorized purchase')
22
+ end
23
+ end
24
+
25
+ add_column :spree_return_authorizations, :return_authorization_reason_id, :integer
26
+ add_index :spree_return_authorizations, :return_authorization_reason_id, name: 'index_return_authorizations_on_return_authorization_reason_id'
27
+ end
28
+ end
@@ -0,0 +1,14 @@
1
+ class CreateSpreeRefundReasons < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_refund_reasons do |t|
4
+ t.string :name
5
+ t.boolean :active, default: true
6
+ t.boolean :mutable, default: true
7
+
8
+ t.timestamps
9
+ end
10
+
11
+ add_column :spree_refunds, :refund_reason_id, :integer
12
+ add_index :spree_refunds, :refund_reason_id, name: 'index_refunds_on_refund_reason_id'
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ class RenameReturnAuthorizationReason < ActiveRecord::Migration
2
+ def change
3
+ rename_column :spree_return_authorizations, :reason, :memo
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class CreateSpreePromotionCategories < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_promotion_categories do |t|
4
+ t.string :name
5
+ t.timestamps
6
+ end
7
+
8
+ add_column :spree_promotions, :promotion_category_id, :integer
9
+ add_index :spree_promotions, :promotion_category_id
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ class DropReceivedAtOnReturnItems < ActiveRecord::Migration
2
+ def up
3
+ remove_column :spree_return_items, :received_at
4
+ end
5
+
6
+ def down
7
+ add_column :spree_return_items, :received_at, :datetime
8
+ end
9
+ end
@@ -0,0 +1,6 @@
1
+ class AddReceptionAndAcceptanceStatusToReturnItems < ActiveRecord::Migration
2
+ def change
3
+ add_column :spree_return_items, :reception_status, :string
4
+ add_column :spree_return_items, :acceptance_status, :string
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ class CreateDefaultRefundReason < ActiveRecord::Migration
2
+ def up
3
+ Spree::RefundReason.create!(name: Spree::RefundReason::RETURN_PROCESSING_REASON, mutable: false)
4
+ end
5
+
6
+ def down
7
+ Spree::RefundReason.find_by(name: Spree::RefundReason::RETURN_PROCESSING_REASON, mutable: false).destroy
8
+ end
9
+ end
@@ -0,0 +1,5 @@
1
+ class AddDefaultToSpreeStockLocations < ActiveRecord::Migration
2
+ def change
3
+ add_column :spree_stock_locations, :default, :boolean, null: false, default: false
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class CreateSpreeCustomerReturns < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_customer_returns do |t|
4
+ t.string :number
5
+ t.integer :stock_location_id
6
+ t.timestamps
7
+ end
8
+ end
9
+ end