solidus_core 2.10.2 → 2.11.3

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 (495) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +31 -2
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/mailers/spree/base_mailer.rb +4 -0
  5. data/app/mailers/spree/order_mailer.rb +1 -1
  6. data/app/models/concerns/spree/active_storage_adapter.rb +116 -0
  7. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +69 -0
  8. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  9. data/app/models/concerns/spree/default_price.rb +1 -1
  10. data/app/models/concerns/spree/soft_deletable.rb +18 -0
  11. data/app/models/concerns/spree/user_address_book.rb +86 -32
  12. data/app/models/concerns/spree/user_methods.rb +3 -2
  13. data/app/models/spree/ability.rb +34 -10
  14. data/app/models/spree/address.rb +94 -17
  15. data/app/models/spree/address/name.rb +49 -0
  16. data/app/models/spree/address/state_validator.rb +71 -0
  17. data/app/models/spree/adjustment.rb +1 -1
  18. data/app/models/spree/base.rb +1 -0
  19. data/app/models/spree/calculator/default_tax.rb +1 -1
  20. data/app/models/spree/calculator/percent_per_item.rb +4 -4
  21. data/app/models/spree/calculator/price_sack.rb +1 -1
  22. data/app/models/spree/credit_card.rb +2 -2
  23. data/app/models/spree/customer_return.rb +4 -2
  24. data/app/models/spree/exchange.rb +1 -1
  25. data/app/models/spree/image/active_storage_attachment.rb +21 -0
  26. data/app/models/spree/inventory_unit.rb +1 -1
  27. data/app/models/spree/line_item.rb +13 -4
  28. data/app/models/spree/option_type.rb +1 -1
  29. data/app/models/spree/option_value.rb +2 -2
  30. data/app/models/spree/order.rb +91 -20
  31. data/app/models/spree/order/checkout.rb +1 -0
  32. data/app/models/spree/order_inventory.rb +16 -4
  33. data/app/models/spree/order_merger.rb +6 -4
  34. data/app/models/spree/order_promotion.rb +1 -1
  35. data/app/models/spree/order_updater.rb +11 -10
  36. data/app/models/spree/payment.rb +3 -3
  37. data/app/models/spree/payment/cancellation.rb +3 -3
  38. data/app/models/spree/payment/processing.rb +54 -30
  39. data/app/models/spree/payment_method.rb +8 -9
  40. data/app/models/spree/preference.rb +1 -1
  41. data/app/models/spree/price.rb +2 -8
  42. data/app/models/spree/product.rb +19 -14
  43. data/app/models/spree/product/scopes.rb +9 -4
  44. data/app/models/spree/promotion.rb +18 -7
  45. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  46. data/app/models/spree/promotion_action.rb +1 -7
  47. data/app/models/spree/promotion_code.rb +6 -1
  48. data/app/models/spree/promotion_code_batch.rb +1 -1
  49. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  50. data/app/models/spree/promotion_rule.rb +1 -1
  51. data/app/models/spree/promotion_rule_role.rb +1 -1
  52. data/app/models/spree/refund.rb +60 -12
  53. data/app/models/spree/reimbursement.rb +27 -0
  54. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +10 -3
  55. data/app/models/spree/return_authorization.rb +1 -1
  56. data/app/models/spree/return_item.rb +21 -10
  57. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  58. data/app/models/spree/role.rb +1 -1
  59. data/app/models/spree/shipment.rb +2 -2
  60. data/app/models/spree/shipping_calculator.rb +1 -1
  61. data/app/models/spree/shipping_manifest.rb +2 -2
  62. data/app/models/spree/shipping_method.rb +2 -9
  63. data/app/models/spree/shipping_rate.rb +1 -1
  64. data/app/models/spree/shipping_rate_tax.rb +1 -1
  65. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  66. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  67. data/app/models/spree/stock/package.rb +1 -1
  68. data/app/models/spree/stock/simple_coordinator.rb +1 -3
  69. data/app/models/spree/stock_item.rb +2 -8
  70. data/app/models/spree/stock_movement.rb +2 -0
  71. data/app/models/spree/store.rb +1 -1
  72. data/app/models/spree/store_credit.rb +1 -7
  73. data/app/models/spree/store_credit_category.rb +30 -3
  74. data/app/models/spree/store_credit_event.rb +1 -7
  75. data/app/models/spree/store_credit_reason.rb +0 -4
  76. data/app/models/spree/tax/tax_helpers.rb +1 -1
  77. data/app/models/spree/tax_category.rb +2 -8
  78. data/app/models/spree/tax_rate.rb +7 -7
  79. data/app/models/spree/taxon.rb +1 -1
  80. data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
  81. data/app/models/spree/user_address.rb +8 -2
  82. data/app/models/spree/variant.rb +7 -13
  83. data/app/models/spree/variant_property_rule.rb +5 -1
  84. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  85. data/app/models/spree/zone.rb +1 -1
  86. data/config/locales/en.yml +44 -5
  87. data/db/default/spree/countries.rb +1 -1
  88. data/db/default/spree/states.rb +12 -4
  89. data/db/default/spree/store_credit.rb +2 -2
  90. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  91. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  92. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  93. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  94. data/lib/generators/solidus/install/install_generator.rb +253 -0
  95. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +36 -5
  96. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  97. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  98. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  99. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
  100. data/lib/generators/spree/install/install_generator.rb +7 -189
  101. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  102. data/lib/spree/app_configuration.rb +117 -51
  103. data/lib/spree/awesome_nested_set_override.rb +44 -0
  104. data/lib/spree/core.rb +5 -11
  105. data/lib/spree/core/controller_helpers/auth.rb +17 -4
  106. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  107. data/lib/spree/core/controller_helpers/order.rb +8 -7
  108. data/lib/spree/core/engine.rb +39 -2
  109. data/lib/spree/core/importer/order.rb +24 -10
  110. data/lib/spree/core/permalinks.rb +1 -3
  111. data/lib/spree/core/product_filters.rb +6 -5
  112. data/lib/spree/core/state_machines.rb +20 -1
  113. data/lib/spree/core/state_machines/order.rb +249 -0
  114. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  115. data/lib/spree/core/version.rb +1 -1
  116. data/lib/spree/encryptor.rb +25 -0
  117. data/lib/spree/event.rb +40 -7
  118. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  119. data/lib/spree/event/configuration.rb +11 -6
  120. data/lib/spree/event/subscriber.rb +38 -18
  121. data/lib/spree/event/subscriber_registry.rb +92 -0
  122. data/lib/spree/i18n.rb +1 -1
  123. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  124. data/lib/spree/paranoia_deprecations.rb +32 -12
  125. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  126. data/lib/spree/permission_sets/default_customer.rb +16 -16
  127. data/lib/spree/permission_sets/order_display.rb +11 -11
  128. data/lib/spree/permission_sets/order_management.rb +1 -1
  129. data/lib/spree/permission_sets/product_display.rb +9 -9
  130. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  131. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  132. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  133. data/lib/spree/permission_sets/stock_display.rb +2 -2
  134. data/lib/spree/permission_sets/stock_management.rb +1 -1
  135. data/lib/spree/permission_sets/user_display.rb +3 -3
  136. data/lib/spree/permission_sets/user_management.rb +4 -3
  137. data/lib/spree/permitted_attributes.rb +4 -3
  138. data/lib/spree/preferences/preferable.rb +4 -3
  139. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  140. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  141. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  142. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  143. data/lib/spree/testing_support/capybara_ext.rb +3 -0
  144. data/lib/spree/testing_support/common_rake.rb +3 -3
  145. data/lib/spree/testing_support/dummy_app.rb +44 -23
  146. data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
  147. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  148. data/lib/spree/testing_support/factories/address_factory.rb +1 -2
  149. data/lib/spree/testing_support/factories/image_factory.rb +1 -1
  150. data/lib/spree/testing_support/factories/promotion_factory.rb +6 -0
  151. data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
  152. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  153. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
  154. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
  155. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
  156. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
  157. data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
  158. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  159. data/lib/spree/testing_support/fixtures/blank.jpg +0 -0
  160. data/lib/spree/testing_support/job_helpers.rb +24 -0
  161. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  162. data/lib/spree/testing_support/preferences.rb +3 -1
  163. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  164. data/lib/spree/testing_support/translations.rb +25 -0
  165. data/solidus_core.gemspec +8 -5
  166. metadata +99 -377
  167. data/script/rails +0 -10
  168. data/spec/fixtures/thinking-cat.jpg +0 -0
  169. data/spec/helpers/base_helper_spec.rb +0 -168
  170. data/spec/helpers/products_helper_spec.rb +0 -202
  171. data/spec/helpers/taxons_helper_spec.rb +0 -43
  172. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  173. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  174. data/spec/lib/i18n_spec.rb +0 -97
  175. data/spec/lib/search/base_spec.rb +0 -91
  176. data/spec/lib/search/variant_spec.rb +0 -115
  177. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  178. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  179. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  180. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  181. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  182. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  183. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  184. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  185. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
  186. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  187. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  188. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  189. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  190. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  191. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  192. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  193. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  194. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  195. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  196. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  197. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  198. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  199. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  200. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  201. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  202. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  203. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  204. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  205. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  206. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  207. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  208. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  209. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  210. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  211. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  212. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  213. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  214. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  215. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  216. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  217. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  218. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  219. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  220. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  221. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  222. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  223. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  224. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  225. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  226. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  227. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  228. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  229. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  230. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  231. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  232. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  233. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  234. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  235. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  236. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  237. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  238. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  239. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  240. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  241. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  242. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  243. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  244. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  245. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  246. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  247. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  248. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  249. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  250. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  251. data/spec/lib/spree/core/version_spec.rb +0 -19
  252. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  253. data/spec/lib/spree/event_spec.rb +0 -130
  254. data/spec/lib/spree/localized_number_spec.rb +0 -45
  255. data/spec/lib/spree/migrations_spec.rb +0 -32
  256. data/spec/lib/spree/money_spec.rb +0 -298
  257. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  258. data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
  259. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  260. data/spec/lib/tasks/dummy_task.rake +0 -12
  261. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  262. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  263. data/spec/mailers/carton_mailer_spec.rb +0 -44
  264. data/spec/mailers/order_mailer_spec.rb +0 -117
  265. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  266. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  267. data/spec/mailers/test_mailer_spec.rb +0 -13
  268. data/spec/models/spree/ability_spec.rb +0 -279
  269. data/spec/models/spree/address_spec.rb +0 -399
  270. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  271. data/spec/models/spree/adjustment_spec.rb +0 -339
  272. data/spec/models/spree/asset_spec.rb +0 -25
  273. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  274. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  275. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  276. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  277. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  278. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  279. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  280. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  281. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  282. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  283. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  284. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  285. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  286. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  287. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  288. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  289. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  290. data/spec/models/spree/calculator_spec.rb +0 -43
  291. data/spec/models/spree/carton_spec.rb +0 -145
  292. data/spec/models/spree/classification_spec.rb +0 -126
  293. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  294. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  295. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  296. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  297. data/spec/models/spree/country_spec.rb +0 -154
  298. data/spec/models/spree/credit_card_spec.rb +0 -373
  299. data/spec/models/spree/customer_return_spec.rb +0 -294
  300. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  301. data/spec/models/spree/exchange_spec.rb +0 -76
  302. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  303. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  304. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  305. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  306. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  307. data/spec/models/spree/gateway_spec.rb +0 -14
  308. data/spec/models/spree/image_spec.rb +0 -25
  309. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  310. data/spec/models/spree/line_item_spec.rb +0 -240
  311. data/spec/models/spree/option_type_spec.rb +0 -16
  312. data/spec/models/spree/option_value_spec.rb +0 -52
  313. data/spec/models/spree/order/address_spec.rb +0 -52
  314. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  315. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  316. data/spec/models/spree/order/checkout_spec.rb +0 -740
  317. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  318. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  319. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  320. data/spec/models/spree/order/payment_spec.rb +0 -280
  321. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  322. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  323. data/spec/models/spree/order/totals_spec.rb +0 -26
  324. data/spec/models/spree/order/validations_spec.rb +0 -17
  325. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  326. data/spec/models/spree/order_capturing_spec.rb +0 -16
  327. data/spec/models/spree/order_contents_spec.rb +0 -362
  328. data/spec/models/spree/order_inventory_spec.rb +0 -285
  329. data/spec/models/spree/order_merger_spec.rb +0 -162
  330. data/spec/models/spree/order_mutex_spec.rb +0 -89
  331. data/spec/models/spree/order_promotion_spec.rb +0 -33
  332. data/spec/models/spree/order_shipping_spec.rb +0 -247
  333. data/spec/models/spree/order_spec.rb +0 -1687
  334. data/spec/models/spree/order_taxation_spec.rb +0 -128
  335. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  336. data/spec/models/spree/order_updater_spec.rb +0 -556
  337. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  338. data/spec/models/spree/payment_create_spec.rb +0 -195
  339. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  340. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  341. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  342. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  343. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  344. data/spec/models/spree/payment_method_spec.rb +0 -408
  345. data/spec/models/spree/payment_spec.rb +0 -1270
  346. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  347. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  348. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  349. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  350. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  351. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  352. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  353. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  354. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  355. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  356. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  357. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  358. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  359. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  360. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  361. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  362. data/spec/models/spree/preference_spec.rb +0 -79
  363. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  364. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  365. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  366. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  367. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  368. data/spec/models/spree/preferences/store_spec.rb +0 -40
  369. data/spec/models/spree/price_spec.rb +0 -150
  370. data/spec/models/spree/product/scopes_spec.rb +0 -164
  371. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  372. data/spec/models/spree/product_filter_spec.rb +0 -28
  373. data/spec/models/spree/product_property_spec.rb +0 -20
  374. data/spec/models/spree/product_spec.rb +0 -584
  375. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  376. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  377. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  378. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  379. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  380. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  381. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  382. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  383. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  384. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  385. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  386. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  387. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
  388. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  389. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  390. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  391. data/spec/models/spree/promotion_action_spec.rb +0 -44
  392. data/spec/models/spree/promotion_category_spec.rb +0 -19
  393. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  394. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  395. data/spec/models/spree/promotion_code_spec.rb +0 -206
  396. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  397. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  398. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  399. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  400. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  401. data/spec/models/spree/promotion_spec.rb +0 -945
  402. data/spec/models/spree/refund_spec.rb +0 -200
  403. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  404. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  405. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  406. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  407. data/spec/models/spree/reimbursement_spec.rb +0 -278
  408. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  409. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  410. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  411. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  412. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  413. data/spec/models/spree/return_authorization_spec.rb +0 -226
  414. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  415. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  416. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  417. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  418. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  419. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  420. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  421. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  422. data/spec/models/spree/return_item_spec.rb +0 -785
  423. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  424. data/spec/models/spree/shipment_spec.rb +0 -914
  425. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  426. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  427. data/spec/models/spree/shipping_method_spec.rb +0 -292
  428. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  429. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  430. data/spec/models/spree/state_spec.rb +0 -43
  431. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  432. data/spec/models/spree/stock/availability_spec.rb +0 -143
  433. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  434. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  435. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  436. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  437. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  438. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  439. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  440. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  441. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  442. data/spec/models/spree/stock/package_spec.rb +0 -182
  443. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  444. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  445. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  446. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  447. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  448. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  449. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  450. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  451. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  452. data/spec/models/spree/stock_item_spec.rb +0 -348
  453. data/spec/models/spree/stock_location_spec.rb +0 -288
  454. data/spec/models/spree/stock_movement_spec.rb +0 -58
  455. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  456. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  457. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  458. data/spec/models/spree/store_credit_spec.rb +0 -900
  459. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  460. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  461. data/spec/models/spree/store_spec.rb +0 -156
  462. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  463. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  464. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  465. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  466. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  467. data/spec/models/spree/tax_category_spec.rb +0 -50
  468. data/spec/models/spree/tax_rate_spec.rb +0 -317
  469. data/spec/models/spree/taxon_spec.rb +0 -197
  470. data/spec/models/spree/taxonomy_spec.rb +0 -15
  471. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  472. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  473. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  474. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  475. data/spec/models/spree/user_spec.rb +0 -247
  476. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  477. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  478. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  479. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  480. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  481. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  482. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  483. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  484. data/spec/models/spree/variant_spec.rb +0 -862
  485. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  486. data/spec/models/spree/wallet_spec.rb +0 -155
  487. data/spec/models/spree/zone_spec.rb +0 -248
  488. data/spec/rails_helper.rb +0 -46
  489. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  490. data/spec/spec_helper.rb +0 -36
  491. data/spec/support/big_decimal.rb +0 -7
  492. data/spec/support/concerns/default_price.rb +0 -44
  493. data/spec/support/concerns/payment_source.rb +0 -66
  494. data/spec/support/concerns/working_factories.rb +0 -15
  495. data/spec/support/dummy_ability.rb +0 -7
@@ -150,7 +150,7 @@ module Spree
150
150
  end
151
151
 
152
152
  def item_cost
153
- line_items.map(&:total).sum
153
+ line_items.sum(&:total)
154
154
  end
155
155
 
156
156
  def ready_or_pending?
@@ -262,7 +262,7 @@ module Spree
262
262
  def to_package
263
263
  package = Stock::Package.new(stock_location)
264
264
  package.shipment = self
265
- inventory_units.includes(:variant).joins(:variant).group_by(&:state).each do |state, state_inventory_units|
265
+ inventory_units.includes(variant: :product).joins(:variant).group_by(&:state).each do |state, state_inventory_units|
266
266
  package.add_multiple state_inventory_units, state.to_sym
267
267
  end
268
268
  package
@@ -13,7 +13,7 @@ module Spree
13
13
  private
14
14
 
15
15
  def total(content_items)
16
- content_items.map(&:amount).sum
16
+ content_items.sum(&:amount)
17
17
  end
18
18
  end
19
19
  end
@@ -16,7 +16,7 @@ class Spree::ShippingManifest
16
16
  def items
17
17
  # Grouping by the ID means that we don't have to call out to the association accessor
18
18
  # This makes the grouping by faster because it results in less SQL cache hits.
19
- @inventory_units.group_by(&:variant_id).map do |_variant_id, variant_units|
19
+ @inventory_units.group_by(&:variant_id).flat_map do |_variant_id, variant_units|
20
20
  variant_units.group_by(&:line_item_id).map do |_line_item_id, units|
21
21
  states = {}
22
22
  units.group_by(&:state).each { |state, iu| states[state] = iu.count }
@@ -25,6 +25,6 @@ class Spree::ShippingManifest
25
25
 
26
26
  ManifestItem.new(first_unit.line_item, first_unit.variant, units.length, states)
27
27
  end
28
- end.flatten
28
+ end
29
29
  end
30
30
  end
@@ -1,17 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'discard'
4
-
5
3
  module Spree
6
4
  # Represents a means of having a shipment delivered, such as FedEx or UPS.
7
5
  #
8
6
  class ShippingMethod < Spree::Base
9
- acts_as_paranoid
10
- include Spree::ParanoiaDeprecations
11
-
12
- include Discard::Model
13
- self.discard_column = :deleted_at
14
-
7
+ include Spree::SoftDeletable
15
8
  include Spree::CalculatedAdjustments
16
9
  DISPLAY = ActiveSupport::Deprecation::DeprecatedObjectProxy.new(
17
10
  [:both, :front_end, :back_end],
@@ -28,7 +21,7 @@ module Spree
28
21
  has_many :shipping_method_zones, dependent: :destroy
29
22
  has_many :zones, through: :shipping_method_zones
30
23
 
31
- belongs_to :tax_category, -> { with_deleted }, class_name: 'Spree::TaxCategory', optional: true
24
+ belongs_to :tax_category, -> { with_discarded }, class_name: 'Spree::TaxCategory', optional: true
32
25
  has_many :shipping_method_stock_locations, dependent: :destroy, class_name: "Spree::ShippingMethodStockLocation"
33
26
  has_many :stock_locations, through: :shipping_method_stock_locations
34
27
 
@@ -6,7 +6,7 @@ module Spree
6
6
  #
7
7
  class ShippingRate < Spree::Base
8
8
  belongs_to :shipment, class_name: 'Spree::Shipment', touch: true, optional: true
9
- belongs_to :shipping_method, -> { with_deleted }, class_name: 'Spree::ShippingMethod', inverse_of: :shipping_rates, optional: true
9
+ belongs_to :shipping_method, -> { with_discarded }, class_name: 'Spree::ShippingMethod', inverse_of: :shipping_rates, optional: true
10
10
 
11
11
  has_many :taxes,
12
12
  class_name: "Spree::ShippingRateTax",
@@ -6,7 +6,7 @@ module Spree
6
6
  # @attr [Spree::TaxRate] tax_rate The tax rate used to calculate the tax amount
7
7
  # @since 1.3.0
8
8
  # @see Spree::Tax::ShippingRateTaxer
9
- class ShippingRateTax < ActiveRecord::Base
9
+ class ShippingRateTax < Spree::Base
10
10
  belongs_to :shipping_rate, class_name: "Spree::ShippingRate", optional: true
11
11
  belongs_to :tax_rate, class_name: "Spree::TaxRate", optional: true
12
12
 
@@ -9,13 +9,24 @@ module Spree
9
9
 
10
10
  def units
11
11
  @order.line_items.flat_map do |line_item|
12
- Array.new(line_item.quantity) do
13
- Spree::InventoryUnit.new(
14
- pending: true,
15
- variant: line_item.variant,
16
- line_item: line_item
17
- )
18
- end
12
+ build_units(line_item, line_item.quantity)
13
+ end
14
+ end
15
+
16
+ def missing_units_for_line_item(line_item)
17
+ quantity = line_item.quantity - line_item.inventory_units.count
18
+ build_units(line_item, quantity)
19
+ end
20
+
21
+ private
22
+
23
+ def build_units(line_item, quantity)
24
+ Array.new(quantity) do
25
+ Spree::InventoryUnit.new(
26
+ pending: true,
27
+ variant: line_item.variant,
28
+ line_item: line_item
29
+ )
19
30
  end
20
31
  end
21
32
  end
@@ -34,11 +34,9 @@ module Spree
34
34
  end
35
35
 
36
36
  def unstock_inventory_units
37
- inventory_units.group_by(&:shipment_id).each_value do |inventory_units_for_shipment|
38
- inventory_units_for_shipment.group_by(&:line_item_id).each_value do |units|
39
- shipment = units.first.shipment
40
- line_item = units.first.line_item
41
- shipment.stock_location.unstock line_item.variant, units.count, shipment
37
+ inventory_units.group_by(&:shipment).each do |shipment, units_by_shipment|
38
+ units_by_shipment.group_by(&:variant).each do |variant, units|
39
+ shipment.stock_location.unstock variant, units.count, shipment
42
40
  end
43
41
  end
44
42
  end
@@ -86,7 +86,7 @@ module Spree
86
86
  # counting only those in the given state if it was specified
87
87
  def quantity(state = nil)
88
88
  matched_contents = state.nil? ? contents : contents.select { |content| content.state.to_s == state.to_s }
89
- matched_contents.map(&:quantity).sum
89
+ matched_contents.sum(&:quantity)
90
90
  end
91
91
 
92
92
  # @return [Boolean] true if there are no inventory units in this
@@ -51,9 +51,7 @@ module Spree
51
51
  # Allocate any available on hand inventory and remaining desired inventory from backorders
52
52
  on_hand_packages, backordered_packages, leftover = @allocator.allocate_inventory(@desired)
53
53
 
54
- unless leftover.empty?
55
- raise Spree::Order::InsufficientStock
56
- end
54
+ raise Spree::Order::InsufficientStock.new(items: leftover.quantities) unless leftover.empty?
57
55
 
58
56
  packages = @stock_locations.map do |stock_location|
59
57
  # Combine on_hand and backorders into a single package per-location
@@ -1,17 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'discard'
4
-
5
3
  module Spree
6
4
  class StockItem < Spree::Base
7
- acts_as_paranoid
8
- include Spree::ParanoiaDeprecations
9
-
10
- include Discard::Model
11
- self.discard_column = :deleted_at
5
+ include Spree::SoftDeletable
12
6
 
13
7
  belongs_to :stock_location, class_name: 'Spree::StockLocation', inverse_of: :stock_items, optional: true
14
- belongs_to :variant, -> { with_deleted }, class_name: 'Spree::Variant', inverse_of: :stock_items, optional: true
8
+ belongs_to :variant, -> { with_discarded }, class_name: 'Spree::Variant', inverse_of: :stock_items, optional: true
15
9
  has_many :stock_movements, inverse_of: :stock_item
16
10
 
17
11
  validates :stock_location, :variant, presence: true
@@ -4,6 +4,7 @@ module Spree
4
4
  class StockMovement < Spree::Base
5
5
  belongs_to :stock_item, class_name: 'Spree::StockItem', inverse_of: :stock_movements, optional: true
6
6
  belongs_to :originator, polymorphic: true, optional: true
7
+ has_one :variant, through: :stock_item
7
8
 
8
9
  after_create :update_stock_item_quantity
9
10
 
@@ -12,6 +13,7 @@ module Spree
12
13
 
13
14
  scope :recent, -> { order(created_at: :desc) }
14
15
 
16
+ self.whitelisted_ransackable_associations = %w[variant]
15
17
  self.whitelisted_ransackable_attributes = ['quantity']
16
18
 
17
19
  def readonly?
@@ -17,7 +17,7 @@ module Spree
17
17
 
18
18
  has_many :orders, class_name: "Spree::Order"
19
19
 
20
- validates :code, presence: true, uniqueness: { allow_blank: true }
20
+ validates :code, presence: true, uniqueness: { allow_blank: true, case_sensitive: true }
21
21
  validates :name, presence: true
22
22
  validates :url, presence: true
23
23
  validates :mail_from_address, presence: true
@@ -1,13 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'discard'
4
-
5
3
  class Spree::StoreCredit < Spree::PaymentSource
6
- acts_as_paranoid
7
- include Spree::ParanoiaDeprecations
8
-
9
- include Discard::Model
10
- self.discard_column = :deleted_at
4
+ include Spree::SoftDeletable
11
5
 
12
6
  VOID_ACTION = 'void'
13
7
  CREDIT_ACTION = 'credit'
@@ -1,18 +1,45 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Spree::StoreCreditCategory < Spree::Base
4
+ GIFT_CARD = 'Gift Card'
5
+ REIMBURSEMENT = 'Reimbursement'
6
+
4
7
  class_attribute :non_expiring_credit_types
5
8
  self.non_expiring_credit_types = [Spree::StoreCreditType::NON_EXPIRING]
6
9
 
10
+ # @deprecated
7
11
  class_attribute :reimbursement_category_name
8
12
  self.reimbursement_category_name = I18n.t('spree.store_credit_category.default')
9
13
 
10
- def self.reimbursement_category(_reimbursement)
11
- Spree::StoreCreditCategory.find_by(name: reimbursement_category_name) ||
12
- Spree::StoreCreditCategory.first
14
+ # @deprecated
15
+ def self.reimbursement_category(reimbursement)
16
+ reimbursement.store_credit_category
13
17
  end
14
18
 
15
19
  def non_expiring?
16
20
  self.class.non_expiring_credit_types.include? name
17
21
  end
22
+
23
+ public_instance_methods.grep(/^reimbursement_category_name/).each do |method|
24
+ deprecate(
25
+ method => 'Use Spree::Reimbursement#store_credit_category.name instead',
26
+ deprecator: Spree::Deprecation
27
+ )
28
+ end
29
+
30
+ class << self
31
+ public_instance_methods.grep(/^reimbursement_category_name/).each do |method|
32
+ deprecate(
33
+ method => 'Use Spree::Reimbursement.store_credit_category.name instead',
34
+ deprecator: Spree::Deprecation
35
+ )
36
+ end
37
+
38
+ public_instance_methods.grep(/^reimbursement_category$/).each do |method|
39
+ deprecate(
40
+ method => 'Use Spree::Reimbursement.store_credit_category instead',
41
+ deprecator: Spree::Deprecation
42
+ )
43
+ end
44
+ end
18
45
  end
@@ -1,14 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'discard'
4
-
5
3
  module Spree
6
4
  class StoreCreditEvent < Spree::Base
7
- acts_as_paranoid
8
- include Spree::ParanoiaDeprecations
9
-
10
- include Discard::Model
11
- self.discard_column = :deleted_at
5
+ include Spree::SoftDeletable
12
6
 
13
7
  belongs_to :store_credit, optional: true
14
8
  belongs_to :originator, polymorphic: true, optional: true
@@ -4,8 +4,4 @@ class Spree::StoreCreditReason < Spree::Base
4
4
  include Spree::NamedType
5
5
 
6
6
  has_many :store_credit_events, inverse_of: :store_credit_reason
7
-
8
- validates :name, presence: true, uniqueness: { case_sensitive: false, allow_blank: true }
9
-
10
- scope :active, -> { where(active: true) }
11
7
  end
@@ -9,7 +9,7 @@ module Spree
9
9
  @rates_for_order ||= Spree::TaxRate.for_address(item.order.tax_address)
10
10
 
11
11
  @rates_for_order.select do |rate|
12
- rate.tax_categories.map(&:id).include?(item.tax_category_id)
12
+ rate.active? && rate.tax_categories.map(&:id).include?(item.tax_category_id)
13
13
  end
14
14
  end
15
15
  end
@@ -1,21 +1,15 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'discard'
4
-
5
3
  module Spree
6
4
  class TaxCategory < Spree::Base
7
- acts_as_paranoid
8
- include Spree::ParanoiaDeprecations
9
-
10
- include Discard::Model
11
- self.discard_column = :deleted_at
5
+ include Spree::SoftDeletable
12
6
 
13
7
  after_discard do
14
8
  self.tax_rate_tax_categories = []
15
9
  end
16
10
 
17
11
  validates :name, presence: true
18
- validates_uniqueness_of :name, unless: :deleted_at
12
+ validates_uniqueness_of :name, case_sensitive: true, unless: :deleted_at
19
13
 
20
14
  has_many :tax_rate_tax_categories,
21
15
  class_name: 'Spree::TaxRateTaxCategory',
@@ -1,14 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'discard'
4
-
5
3
  module Spree
6
4
  class TaxRate < Spree::Base
7
- acts_as_paranoid
8
- include Spree::ParanoiaDeprecations
9
-
10
- include Discard::Model
11
- self.discard_column = :deleted_at
5
+ include Spree::SoftDeletable
12
6
 
13
7
  # Need to deal with adjustments before calculator is destroyed.
14
8
  before_destroy :remove_adjustments_from_incomplete_orders
@@ -37,6 +31,12 @@ module Spree
37
31
  scope :for_address, ->(address) { joins(:zone).merge(Spree::Zone.for_address(address)) }
38
32
  scope :for_country,
39
33
  ->(country) { for_address(Spree::Tax::TaxLocation.new(country: country)) }
34
+ scope :active, -> do
35
+ table = arel_table
36
+ time = Time.current
37
+ where(table[:starts_at].eq(nil).or(table[:starts_at].lt(time))).
38
+ where(table[:expires_at].eq(nil).or(table[:expires_at].gt(time)))
39
+ end
40
40
 
41
41
  # Finds geographically matching tax rates for a tax zone.
42
42
  # We do not know if they are/aren't applicable until we attempt to apply these rates to
@@ -134,7 +134,7 @@ module Spree
134
134
 
135
135
  def touch_ancestors_and_taxonomy
136
136
  # Touches all ancestors at once to avoid recursive taxonomy touch, and reduce queries.
137
- self.class.where(id: ancestors.pluck(:id)).update_all(updated_at: Time.current)
137
+ self.class.default_scoped.where(id: ancestors.pluck(:id)).update_all(updated_at: Time.current)
138
138
  # Have taxonomy touch happen in #touch_ancestors_and_taxonomy rather than association option in order for imports to override.
139
139
  taxonomy.try!(:touch)
140
140
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Spree::Taxon::ActiveStorageAttachment
4
+ extend ActiveSupport::Concern
5
+ include Spree::ActiveStorageAdapter
6
+
7
+ included do
8
+ has_attachment :icon,
9
+ styles: { mini: '32x32>', normal: '128x128>' },
10
+ default_style: :mini
11
+ validate :icon_is_an_image
12
+
13
+
14
+ end
15
+
16
+ def attachment_partial_name
17
+ 'paperclip'
18
+ end
19
+ end
@@ -6,7 +6,7 @@ module Spree
6
6
  belongs_to :address, class_name: "Spree::Address", optional: true
7
7
 
8
8
  validates_uniqueness_of :address_id, scope: :user_id
9
- validates_uniqueness_of :user_id, conditions: -> { active.default }, message: :default_address_exists, if: :default?
9
+ validates_uniqueness_of :user_id, conditions: -> { active.default_shipping }, message: :default_address_exists, if: :default?
10
10
 
11
11
  scope :with_address_values, ->(address_attributes) do
12
12
  joins(:address).merge(
@@ -15,9 +15,15 @@ module Spree
15
15
  end
16
16
 
17
17
  scope :all_historical, -> { unscope(where: :archived) }
18
- scope :default, -> { where(default: true) }
18
+ scope :default_shipping, -> { where(default: true) }
19
+ scope :default_billing, -> { where(default_billing: true) }
19
20
  scope :active, -> { where(archived: false) }
20
21
 
22
+ scope :default, -> do
23
+ Spree::Deprecation.warn "This scope is deprecated. Please start using ::default_shipping."
24
+ default_shipping
25
+ end
26
+
21
27
  default_scope -> { order([default: :desc, updated_at: :desc]) }
22
28
  end
23
29
  end
@@ -1,7 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'discard'
4
-
5
3
  module Spree
6
4
  # == Master Variant
7
5
  #
@@ -20,11 +18,7 @@ module Spree
20
18
  class Variant < Spree::Base
21
19
  acts_as_list scope: :product
22
20
 
23
- acts_as_paranoid
24
- include Spree::ParanoiaDeprecations
25
-
26
- include Discard::Model
27
- self.discard_column = :deleted_at
21
+ include Spree::SoftDeletable
28
22
 
29
23
  after_discard do
30
24
  stock_items.discard_all
@@ -36,11 +30,11 @@ module Spree
36
30
  attr_writer :rebuild_vat_prices
37
31
  include Spree::DefaultPrice
38
32
 
39
- belongs_to :product, -> { with_deleted }, touch: true, class_name: 'Spree::Product', inverse_of: :variants, optional: false
33
+ belongs_to :product, -> { with_discarded }, touch: true, class_name: 'Spree::Product', inverse_of: :variants, optional: false
40
34
  belongs_to :tax_category, class_name: 'Spree::TaxCategory', optional: true
41
35
 
42
- delegate :name, :description, :slug, :available_on, :shipping_category_id,
43
- :meta_description, :meta_keywords, :shipping_category,
36
+ delegate :name, :description, :slug, :available_on, :discontinue_on, :discontinued?,
37
+ :shipping_category_id, :meta_description, :meta_keywords, :shipping_category,
44
38
  to: :product
45
39
  delegate :tax_category, to: :product, prefix: true
46
40
  delegate :tax_rates, to: :tax_category
@@ -80,7 +74,7 @@ module Spree
80
74
 
81
75
  validates :cost_price, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
82
76
  validates :price, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
83
- validates_uniqueness_of :sku, allow_blank: true, if: :enforce_unique_sku?
77
+ validates_uniqueness_of :sku, allow_blank: true, case_sensitive: true, if: :enforce_unique_sku?
84
78
 
85
79
  after_create :create_stock_items
86
80
  after_create :set_position
@@ -391,9 +385,9 @@ module Spree
391
385
  #
392
386
  # @return [Array<Spree::VariantPropertyRuleValue>] variant_properties
393
387
  def variant_properties
394
- product.variant_property_rules.map do |rule|
388
+ product.variant_property_rules.flat_map do |rule|
395
389
  rule.values if rule.applies_to_variant?(self)
396
- end.flatten.compact
390
+ end.compact
397
391
  end
398
392
 
399
393
  # The gallery for the variant, which represents all the images