solidus_core 1.1.4 → 1.2.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of solidus_core might be problematic. Click here for more details.

Files changed (296) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/logo/solidus_logo.png +0 -0
  3. data/app/helpers/spree/base_helper.rb +2 -3
  4. data/app/models/concerns/spree/adjustment_source.rb +1 -1
  5. data/app/models/concerns/spree/default_price.rb +3 -1
  6. data/app/models/concerns/spree/named_type.rb +1 -1
  7. data/app/models/concerns/spree/user_methods.rb +10 -0
  8. data/app/models/spree/adjustment.rb +1 -1
  9. data/app/models/spree/adjustment_reason.rb +2 -4
  10. data/app/models/spree/app_configuration.rb +36 -0
  11. data/app/models/spree/base.rb +10 -1
  12. data/app/models/spree/calculator/tiered_percent.rb +2 -1
  13. data/app/models/spree/classification.rb +1 -1
  14. data/app/models/spree/country.rb +3 -3
  15. data/app/models/spree/credit_card.rb +2 -2
  16. data/app/models/spree/customer_return.rb +3 -4
  17. data/app/models/spree/inventory_unit.rb +13 -24
  18. data/app/models/spree/item_adjustments.rb +5 -5
  19. data/app/models/spree/line_item.rb +6 -15
  20. data/app/models/spree/log_entry.rb +1 -1
  21. data/app/models/spree/option_type.rb +4 -2
  22. data/app/models/spree/option_type_prototype.rb +6 -0
  23. data/app/models/spree/option_value.rb +1 -1
  24. data/app/models/spree/order.rb +18 -63
  25. data/app/models/spree/order/checkout.rb +4 -2
  26. data/app/models/spree/order_cancellations.rb +52 -1
  27. data/app/models/spree/order_contents.rb +1 -1
  28. data/app/models/spree/order_merger.rb +143 -0
  29. data/app/models/spree/order_shipping.rb +3 -3
  30. data/app/models/spree/order_update_attributes.rb +42 -0
  31. data/app/models/spree/order_updater.rb +1 -1
  32. data/app/models/spree/payment.rb +16 -10
  33. data/app/models/spree/payment_create.rb +68 -0
  34. data/app/models/spree/payment_method.rb +0 -1
  35. data/app/models/spree/preference.rb +1 -1
  36. data/app/models/spree/price.rb +1 -8
  37. data/app/models/spree/product.rb +9 -44
  38. data/app/models/spree/product/scopes.rb +9 -7
  39. data/app/models/spree/promotion/rules/nth_order.rb +1 -1
  40. data/app/models/spree/promotion/rules/taxon.rb +2 -1
  41. data/app/models/spree/promotion_chooser.rb +1 -0
  42. data/app/models/spree/promotion_code.rb +1 -1
  43. data/app/models/spree/promotion_rule_taxon.rb +6 -0
  44. data/app/models/spree/property.rb +2 -1
  45. data/app/models/spree/property_prototype.rb +6 -0
  46. data/app/models/spree/prototype.rb +6 -2
  47. data/app/models/spree/reimbursement.rb +10 -0
  48. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +1 -1
  49. data/app/models/spree/return_reason.rb +1 -7
  50. data/app/models/spree/role_user.rb +3 -5
  51. data/app/models/spree/shipment.rb +6 -11
  52. data/app/models/spree/shipping_method.rb +1 -7
  53. data/app/models/spree/shipping_rate.rb +3 -14
  54. data/app/models/spree/stock/coordinator.rb +48 -4
  55. data/app/models/spree/stock/estimator.rb +3 -6
  56. data/app/models/spree/stock/packer.rb +18 -2
  57. data/app/models/spree/stock/shipping_rate_selector.rb +16 -0
  58. data/app/models/spree/stock/shipping_rate_sorter.rb +16 -0
  59. data/app/models/spree/stock_item.rb +19 -15
  60. data/app/models/spree/stock_location.rb +2 -12
  61. data/app/models/spree/stock_transfer.rb +3 -3
  62. data/app/models/spree/store_credit.rb +2 -2
  63. data/app/models/spree/tax_category.rb +3 -2
  64. data/app/models/spree/tax_rate.rb +7 -14
  65. data/app/models/spree/taxon.rb +4 -1
  66. data/app/models/spree/taxonomy.rb +1 -1
  67. data/app/models/spree/transfer_item.rb +2 -2
  68. data/app/models/spree/unit_cancel.rb +2 -0
  69. data/app/models/spree/variant.rb +9 -14
  70. data/app/models/spree/zone.rb +6 -0
  71. data/app/models/spree/zone_member.rb +1 -4
  72. data/app/views/spree/order_mailer/cancel_email.text.erb +0 -0
  73. data/config/locales/en.yml +7 -5
  74. data/db/default/spree/countries.rb +1 -1
  75. data/db/default/spree/zones.rb +5 -11
  76. data/db/migrate/20130213191427_create_default_stock.rb +1 -1
  77. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +1 -1
  78. data/db/migrate/20140309033438_create_store_from_preferences.rb +5 -2
  79. data/db/migrate/20141009204607_add_store_id_to_orders.rb +6 -2
  80. data/db/migrate/20141215235502_remove_extra_products_slug_index.rb +5 -0
  81. data/db/migrate/20141217215630_update_product_slug_index.rb +6 -0
  82. data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +2 -2
  83. data/db/migrate/20150609093816_increase_scale_on_pre_tax_amounts.rb +10 -0
  84. data/db/migrate/20151117063249_convert_habtm_to_hmt_for_properties_prototypes.rb +17 -0
  85. data/db/migrate/20151124062500_convert_habtm_to_hmt_for_option_type_prototypes.rb +17 -0
  86. data/db/migrate/20151126063028_convert_habtm_to_hmt_for_taxons_promotion_rules.rb +15 -0
  87. data/db/migrate/20151219020209_add_stock_item_unique_index.rb +9 -0
  88. data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
  89. data/lib/generators/spree/dummy/templates/rails/database.yml +1 -1
  90. data/lib/generators/spree/install/templates/config/initializers/spree.rb +25 -1
  91. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +3 -0
  92. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +3 -0
  93. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +3 -0
  94. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +3 -0
  95. data/lib/spree/core/controller_helpers/common.rb +1 -1
  96. data/lib/spree/core/controller_helpers/order.rb +1 -1
  97. data/lib/spree/core/controller_helpers/payment_parameters.rb +104 -5
  98. data/lib/spree/core/engine.rb +3 -2
  99. data/lib/spree/core/stock_configuration.rb +11 -0
  100. data/lib/spree/core/unreturned_item_charger.rb +4 -4
  101. data/lib/spree/core/version.rb +9 -1
  102. data/lib/spree/permission_sets/restricted_stock_transfer_management.rb +15 -24
  103. data/lib/spree/permitted_attributes.rb +3 -1
  104. data/lib/spree/testing_support/capybara_ext.rb +14 -40
  105. data/lib/spree/testing_support/factories.rb +0 -15
  106. data/lib/spree/testing_support/factories/address_factory.rb +3 -0
  107. data/lib/spree/testing_support/factories/adjustment_factory.rb +9 -1
  108. data/lib/spree/testing_support/factories/carton_factory.rb +4 -1
  109. data/lib/spree/testing_support/factories/customer_return_factory.rb +4 -0
  110. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +5 -0
  111. data/lib/spree/testing_support/factories/line_item_factory.rb +3 -0
  112. data/lib/spree/testing_support/factories/option_type_factory.rb +6 -0
  113. data/lib/spree/testing_support/factories/{options_factory.rb → option_value_factory.rb} +0 -5
  114. data/lib/spree/testing_support/factories/order_factory.rb +13 -3
  115. data/lib/spree/testing_support/factories/order_promotion_factory.rb +3 -0
  116. data/lib/spree/testing_support/factories/payment_factory.rb +13 -5
  117. data/lib/spree/testing_support/factories/price_factory.rb +2 -0
  118. data/lib/spree/testing_support/factories/product_factory.rb +7 -1
  119. data/lib/spree/testing_support/factories/product_option_type_factory.rb +3 -0
  120. data/lib/spree/testing_support/factories/product_property_factory.rb +3 -0
  121. data/lib/spree/testing_support/factories/promotion_code_factory.rb +3 -0
  122. data/lib/spree/testing_support/factories/promotion_factory.rb +3 -0
  123. data/lib/spree/testing_support/factories/prototype_factory.rb +2 -0
  124. data/lib/spree/testing_support/factories/refund_factory.rb +10 -5
  125. data/lib/spree/testing_support/factories/refund_reason_factory.rb +5 -0
  126. data/lib/spree/testing_support/factories/reimbursement_factory.rb +2 -0
  127. data/lib/spree/testing_support/factories/return_authorization_factory.rb +4 -4
  128. data/lib/spree/testing_support/factories/return_item_factory.rb +4 -0
  129. data/lib/spree/testing_support/factories/return_reason_factory.rb +5 -0
  130. data/lib/spree/testing_support/factories/shipment_factory.rb +6 -1
  131. data/lib/spree/testing_support/factories/shipping_method_factory.rb +22 -10
  132. data/lib/spree/testing_support/factories/shipping_rate_factory.rb +9 -0
  133. data/lib/spree/testing_support/factories/state_factory.rb +2 -0
  134. data/lib/spree/testing_support/factories/stock_item_factory.rb +4 -1
  135. data/lib/spree/testing_support/factories/stock_location_factory.rb +8 -0
  136. data/lib/spree/testing_support/factories/stock_movement_factory.rb +2 -0
  137. data/lib/spree/testing_support/factories/{stock_factory.rb → stock_package_factory.rb} +5 -10
  138. data/lib/spree/testing_support/factories/stock_packer_factory.rb +13 -0
  139. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +2 -2
  140. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +4 -1
  141. data/lib/spree/testing_support/factories/store_credit_factory.rb +10 -6
  142. data/lib/spree/testing_support/factories/tax_category_factory.rb +2 -0
  143. data/lib/spree/testing_support/factories/tax_rate_factory.rb +4 -0
  144. data/lib/spree/testing_support/factories/taxon_factory.rb +2 -0
  145. data/lib/spree/testing_support/factories/user_factory.rb +6 -2
  146. data/lib/spree/testing_support/factories/variant_factory.rb +5 -0
  147. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +3 -0
  148. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +4 -0
  149. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +3 -0
  150. data/lib/spree/testing_support/factories/zone_factory.rb +6 -0
  151. data/lib/spree/testing_support/sequences.rb +9 -0
  152. data/lib/tasks/exchanges.rake +4 -3
  153. data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +2 -2
  154. data/solidus_core.gemspec +4 -5
  155. data/spec/helpers/base_helper_spec.rb +6 -6
  156. data/spec/helpers/order_helper_spec.rb +1 -1
  157. data/spec/helpers/products_helper_spec.rb +2 -2
  158. data/spec/helpers/taxons_helper_spec.rb +1 -1
  159. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +107 -7
  160. data/spec/lib/spree/core/importer/order_spec.rb +1 -1
  161. data/spec/lib/spree/core/stock_configuration_spec.rb +16 -0
  162. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +24 -0
  163. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +18 -0
  164. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +12 -0
  165. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +42 -0
  166. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +12 -0
  167. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +12 -0
  168. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +12 -0
  169. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +28 -0
  170. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +12 -0
  171. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +12 -0
  172. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +12 -0
  173. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +12 -0
  174. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +12 -0
  175. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +49 -0
  176. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +12 -0
  177. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +24 -0
  178. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +30 -0
  179. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +12 -0
  180. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +30 -0
  181. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +12 -0
  182. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +12 -0
  183. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +12 -0
  184. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +12 -0
  185. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +30 -0
  186. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +12 -0
  187. data/spec/lib/spree/core/testing_support/factories/prototype_factory_spec.rb +12 -0
  188. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +12 -0
  189. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +12 -0
  190. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +12 -0
  191. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +12 -0
  192. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +12 -0
  193. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +18 -0
  194. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +12 -0
  195. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +18 -0
  196. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +12 -0
  197. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +12 -0
  198. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +28 -0
  199. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +12 -0
  200. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +12 -0
  201. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +12 -0
  202. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +24 -0
  203. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +12 -0
  204. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +26 -0
  205. data/spec/lib/spree/core/testing_support/factories/stock_packer_factory_spec.rb +16 -0
  206. data/spec/lib/spree/core/testing_support/factories/stock_transfer_factory_spec.rb +12 -0
  207. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +12 -0
  208. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +42 -0
  209. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +12 -0
  210. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +18 -0
  211. data/spec/lib/spree/core/testing_support/factories/store_credit_update_reason_factory_spec.rb +12 -0
  212. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +12 -0
  213. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +12 -0
  214. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +12 -0
  215. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +12 -0
  216. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +12 -0
  217. data/spec/lib/spree/core/testing_support/factories/tracker_factory_spec.rb +12 -0
  218. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +22 -0
  219. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +36 -0
  220. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +12 -0
  221. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +12 -0
  222. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +12 -0
  223. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +18 -0
  224. data/spec/lib/spree/core/unreturned_item_charger_spec.rb +1 -1
  225. data/spec/lib/spree/core/version_spec.rb +17 -0
  226. data/spec/lib/spree/money_spec.rb +1 -1
  227. data/spec/mailers/carton_mailer_spec.rb +1 -1
  228. data/spec/mailers/order_mailer_spec.rb +1 -1
  229. data/spec/mailers/reimbursement_mailer_spec.rb +1 -3
  230. data/spec/mailers/test_mailer_spec.rb +1 -3
  231. data/spec/models/spree/address_spec.rb +4 -4
  232. data/spec/models/spree/adjustment_reason_spec.rb +1 -3
  233. data/spec/models/spree/app_configuration_spec.rb +4 -0
  234. data/spec/models/spree/calculator/price_sack_spec.rb +3 -3
  235. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +3 -3
  236. data/spec/models/spree/calculator/tiered_percent_spec.rb +86 -10
  237. data/spec/models/spree/carton_spec.rb +3 -1
  238. data/spec/models/spree/classification_spec.rb +3 -3
  239. data/spec/models/spree/credit_card_spec.rb +16 -16
  240. data/spec/models/spree/customer_return_spec.rb +1 -1
  241. data/spec/models/spree/gateway/bogus_simple.rb +1 -1
  242. data/spec/models/spree/inventory_unit_spec.rb +3 -3
  243. data/spec/models/spree/item_adjustments_spec.rb +1 -1
  244. data/spec/models/spree/line_item_spec.rb +2 -2
  245. data/spec/models/spree/option_type_spec.rb +2 -2
  246. data/spec/models/spree/option_value_spec.rb +2 -2
  247. data/spec/models/spree/order/callbacks_spec.rb +1 -1
  248. data/spec/models/spree/order/checkout_spec.rb +16 -11
  249. data/spec/models/spree/order/payment_spec.rb +24 -22
  250. data/spec/models/spree/order/state_machine_spec.rb +1 -1
  251. data/spec/models/spree/order/validations_spec.rb +1 -1
  252. data/spec/models/spree/order_cancellations_spec.rb +63 -0
  253. data/spec/models/spree/order_contents_spec.rb +1 -1
  254. data/spec/models/spree/order_merger_spec.rb +133 -0
  255. data/spec/models/spree/order_spec.rb +39 -159
  256. data/spec/models/spree/order_update_attributes_spec.rb +82 -0
  257. data/spec/models/spree/order_updater_spec.rb +6 -4
  258. data/spec/models/spree/payment_create_spec.rb +131 -0
  259. data/spec/models/spree/payment_spec.rb +130 -48
  260. data/spec/models/spree/permission_sets/restricted_stock_transfer_management_spec.rb +91 -33
  261. data/spec/models/spree/product_filter_spec.rb +3 -3
  262. data/spec/models/spree/product_spec.rb +80 -26
  263. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +1 -1
  264. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +2 -2
  265. data/spec/models/spree/promotion/rules/nth_order_spec.rb +1 -1
  266. data/spec/models/spree/promotion/rules/user_spec.rb +2 -2
  267. data/spec/models/spree/promotion_handler/coupon_spec.rb +2 -2
  268. data/spec/models/spree/promotion_spec.rb +18 -18
  269. data/spec/models/spree/reimbursement_spec.rb +22 -0
  270. data/spec/models/spree/return_item_spec.rb +2 -2
  271. data/spec/models/spree/shipment_spec.rb +28 -12
  272. data/spec/models/spree/shipping_method_spec.rb +2 -2
  273. data/spec/models/spree/shipping_rate_spec.rb +3 -3
  274. data/spec/models/spree/stock/coordinator_spec.rb +5 -0
  275. data/spec/models/spree/stock/estimator_spec.rb +35 -1
  276. data/spec/models/spree/stock/package_spec.rb +1 -1
  277. data/spec/models/spree/stock/packer_spec.rb +2 -3
  278. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +16 -0
  279. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +16 -0
  280. data/spec/models/spree/stock_item_spec.rb +5 -7
  281. data/spec/models/spree/stock_location_spec.rb +5 -9
  282. data/spec/models/spree/stock_transfer_spec.rb +33 -13
  283. data/spec/models/spree/store_credit_event_spec.rb +1 -1
  284. data/spec/models/spree/store_credit_spec.rb +1 -1
  285. data/spec/models/spree/tax_rate_spec.rb +381 -120
  286. data/spec/models/spree/taxon_spec.rb +3 -3
  287. data/spec/models/spree/transfer_item_spec.rb +4 -4
  288. data/spec/models/spree/unit_cancel_spec.rb +1 -1
  289. data/spec/models/spree/variant_spec.rb +3 -3
  290. data/spec/models/spree/zone_spec.rb +35 -1
  291. data/spec/support/concerns/working_factories.rb +9 -0
  292. data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
  293. data/vendor/assets/javascripts/jquery.payment.js +231 -80
  294. metadata +103 -27
  295. data/app/models/spree/order/currency_updater.rb +0 -40
  296. data/spec/models/spree/order/currency_updater_spec.rb +0 -32
@@ -0,0 +1,5 @@
1
+ class RemoveExtraProductsSlugIndex < ActiveRecord::Migration
2
+ def change
3
+ remove_index :spree_products, name: :permalink_idx_unique
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class UpdateProductSlugIndex < ActiveRecord::Migration
2
+ def change
3
+ remove_index :spree_products, :slug
4
+ add_index :spree_products, :slug, unique: true
5
+ end
6
+ end
@@ -11,8 +11,8 @@ class MovePromotionCodeToPromotionCodeValue < ActiveRecord::Migration
11
11
  select
12
12
  spree_promotions.id,
13
13
  spree_promotions.code,
14
- '#{Time.now.to_s(:db)}',
15
- '#{Time.now.to_s(:db)}'
14
+ '#{Time.current.to_s(:db)}',
15
+ '#{Time.current.to_s(:db)}'
16
16
  from spree_promotions
17
17
  left join spree_promotion_codes
18
18
  on spree_promotion_codes.promotion_id = spree_promotions.id
@@ -10,6 +10,16 @@ class IncreaseScaleOnPreTaxAmounts < ActiveRecord::Migration
10
10
  WHERE pre_tax_amount IS NULL;
11
11
  SQL
12
12
 
13
+ # set pre_tax_amount on line_items to discounted_amount - included_tax_total
14
+ # so that the null: false option on the line_item pre_tax_amount doesn't generate
15
+ # errors.
16
+ #
17
+ execute(<<-SQL)
18
+ UPDATE spree_line_items
19
+ SET pre_tax_amount = (price * quantity + promo_total) - included_tax_total
20
+ WHERE pre_tax_amount IS NULL;
21
+ SQL
22
+
13
23
  change_column :spree_line_items, :pre_tax_amount, :decimal, precision: 12, scale: 4, default: 0.0, null: false
14
24
  change_column :spree_shipments, :pre_tax_amount, :decimal, precision: 12, scale: 4, default: 0.0, null: false
15
25
  end
@@ -0,0 +1,17 @@
1
+ class ConvertHabtmToHmtForPropertiesPrototypes < ActiveRecord::Migration
2
+ def up
3
+ add_column :spree_properties_prototypes, :id, :primary_key
4
+ add_column :spree_properties_prototypes, :created_at, :datetime
5
+ add_column :spree_properties_prototypes, :updated_at, :datetime
6
+
7
+ rename_table :spree_properties_prototypes, :spree_property_prototypes
8
+ end
9
+
10
+ def down
11
+ rename_table :spree_property_prototypes, :spree_properties_prototypes
12
+
13
+ remove_column :spree_properties_prototypes, :id, :primary_key
14
+ remove_column :spree_properties_prototypes, :created_at, :datetime
15
+ remove_column :spree_properties_prototypes, :updated_at, :datetime
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ class ConvertHabtmToHmtForOptionTypePrototypes < ActiveRecord::Migration
2
+ def up
3
+ add_column :spree_option_types_prototypes, :id, :primary_key
4
+ add_column :spree_option_types_prototypes, :created_at, :datetime
5
+ add_column :spree_option_types_prototypes, :updated_at, :datetime
6
+
7
+ rename_table :spree_option_types_prototypes, :spree_option_type_prototypes
8
+ end
9
+
10
+ def down
11
+ remove_column :spree_option_types_prototypes, :id
12
+ remove_column :spree_option_types_prototypes, :created_at
13
+ remove_column :spree_option_types_prototypes, :updated_at
14
+
15
+ rename_table :spree_option_type_prototypes, :spree_option_types_prototypes
16
+ end
17
+ end
@@ -0,0 +1,15 @@
1
+ class ConvertHabtmToHmtForTaxonsPromotionRules < ActiveRecord::Migration
2
+ def up
3
+ add_column :spree_taxons_promotion_rules, :created_at, :datetime
4
+ add_column :spree_taxons_promotion_rules, :updated_at, :datetime
5
+
6
+ rename_table :spree_taxons_promotion_rules, :spree_promotion_rule_taxons
7
+ end
8
+
9
+ def down
10
+ rename_table :spree_promotion_rule_taxons, :spree_taxons_promotion_rules
11
+
12
+ remove_column :spree_taxons_promotion_rules, :created_at, :datetime
13
+ remove_column :spree_taxons_promotion_rules, :updated_at, :datetime
14
+ end
15
+ end
@@ -0,0 +1,9 @@
1
+ class AddStockItemUniqueIndex < ActiveRecord::Migration
2
+ def change
3
+ # Add a database-level uniqueness constraint for databases that support it
4
+ # (postgres & sqlite)
5
+ if connection.adapter_name =~ /postgres|sqlite/i
6
+ add_index 'spree_stock_items', ['variant_id', 'stock_location_id'], where: 'deleted_at is null', unique: true
7
+ end
8
+ end
9
+ end
@@ -126,7 +126,7 @@ end
126
126
  core_gems = ["spree/core", "spree/api", "spree/backend", "spree/frontend"]
127
127
 
128
128
  if core_gems.include?(lib_name)
129
- '../../../../Gemfile'
129
+ '../../../../../Gemfile'
130
130
  else
131
131
  '../../../../Gemfile'
132
132
  end
@@ -26,7 +26,7 @@ production:
26
26
  adapter: mysql2
27
27
  database: <%= database_prefix %><%= options[:lib_name] %>_spree_production
28
28
  encoding: utf8
29
- <% when 'postgres' %>
29
+ <% when 'postgres', 'postgresql' %>
30
30
  <% db_host = ENV['DB_HOST'] -%>
31
31
  development:
32
32
  adapter: postgresql
@@ -47,8 +47,32 @@ Spree.config do |config|
47
47
  # secret_key: ENV['STRIPE_SECRET_KEY'],
48
48
  # publishable_key: ENV['STRIPE_PUBLISHABLE_KEY'],
49
49
  # server: Rails.env.production? ? 'production' : 'test',
50
- # test: !Rails.env.production?
50
+ # test_mode: !Rails.env.production?
51
51
  # )
52
52
  end
53
53
 
54
+ <% if defined?(Spree::Frontend::Engine) -%>
55
+ Spree::Frontend::Config.configure do |config|
56
+ config.use_static_preferences!
57
+
58
+ config.locale = 'en'
59
+ end
60
+ <% end -%>
61
+
62
+ <% if defined?(Spree::Backend::Engine) -%>
63
+ Spree::Backend::Config.configure do |config|
64
+ config.use_static_preferences!
65
+
66
+ config.locale = 'en'
67
+ end
68
+ <% end -%>
69
+
70
+ <% if defined?(Spree::Api::Engine) -%>
71
+ Spree::Api::Config.configure do |config|
72
+ config.use_static_preferences!
73
+
74
+ config.requires_authentication = true
75
+ end
76
+ <% end -%>
77
+
54
78
  Spree.user_class = <%= (options[:user_class].blank? ? "Spree::LegacyUser" : options[:user_class]).inspect %>
@@ -7,4 +7,7 @@
7
7
  //= require jquery
8
8
  //= require jquery_ujs
9
9
  //= require spree/backend
10
+ <% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/backend' %>
11
+ //= require spree/backend/<%= options[:lib_name].gsub("/", "_") %>
12
+ <% end %>
10
13
  //= require_tree .
@@ -7,4 +7,7 @@
7
7
  //= require jquery
8
8
  //= require jquery_ujs
9
9
  //= require spree/frontend
10
+ <% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/frontend' %>
11
+ //= require spree/frontend/<%= options[:lib_name].gsub("/", "_") %>
12
+ <% end %>
10
13
  //= require_tree .
@@ -4,6 +4,9 @@
4
4
  * the top of the compiled file, but it's generally better to create a new file per style scope.
5
5
  *
6
6
  *= require spree/backend
7
+ <% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/backend' %>
8
+ *= require spree/backend/<%= options[:lib_name].gsub("/", "_") %>
9
+ <% end %>
7
10
  *= require_self
8
11
  *= require_tree .
9
12
  */
@@ -4,6 +4,9 @@
4
4
  * the top of the compiled file, but it's generally better to create a new file per style scope.
5
5
  *
6
6
  *= require spree/frontend
7
+ <% unless options[:lib_name] == 'spree' || options[:lib_name] == 'spree/frontend' %>
8
+ *= require spree/frontend/<%= options[:lib_name].gsub("/", "_") %>
9
+ <% end %>
7
10
  *= require_self
8
11
  *= require_tree .
9
12
  */
@@ -53,7 +53,7 @@ module Spree
53
53
  locale = session[:locale]
54
54
  locale ||= config_locale if respond_to?(:config_locale, true)
55
55
  locale ||= Rails.application.config.i18n.default_locale
56
- locale ||= I18n.default_locale unless I18n.available_locales.map(&:to_s).include?(locale)
56
+ locale ||= I18n.default_locale
57
57
  I18n.locale = locale
58
58
  end
59
59
 
@@ -38,7 +38,7 @@ module Spree
38
38
  if options[:create_order_if_necessary] && (@current_order.nil? || @current_order.completed?)
39
39
  @current_order = Spree::Order.new(current_order_params)
40
40
  @current_order.user ||= try_spree_current_user
41
- # See issue #3346 for reasons why this line is here
41
+ # See issue https://github.com/spree/spree/issues/3346 for reasons why this line is here
42
42
  @current_order.created_by ||= try_spree_current_user
43
43
  @current_order.save!
44
44
  end
@@ -1,7 +1,7 @@
1
1
  module Spree
2
2
  module Core::ControllerHelpers::PaymentParameters
3
3
  # This method handles the awkwardness of how the html forms are currently
4
- # set up for frontend and admin.
4
+ # set up for frontend.
5
5
  #
6
6
  # This method expects a params hash in the format of:
7
7
  #
@@ -23,7 +23,7 @@ module Spree
23
23
  # ...other params...
24
24
  # }
25
25
  #
26
- # And this method returns a new params hash in the format of:
26
+ # And this method modifies the params into the format of:
27
27
  #
28
28
  # {
29
29
  # order: {
@@ -38,9 +38,7 @@ module Spree
38
38
  # ...other params...
39
39
  # }
40
40
  #
41
- def move_payment_source_into_payments_attributes(original_params)
42
- params = original_params.deep_dup
43
-
41
+ def move_payment_source_into_payments_attributes(params)
44
42
  # Step 1: Gather all the information and ensure all the pieces are there.
45
43
 
46
44
  return params if params[:payment_source].blank?
@@ -63,5 +61,106 @@ module Spree
63
61
 
64
62
  params
65
63
  end
64
+
65
+ # This method handles the awkwardness of how the html forms are currently
66
+ # set up for frontend.
67
+ #
68
+ # This method expects a params hash in the format of:
69
+ #
70
+ # {
71
+ # order: {
72
+ # existing_card: '123',
73
+ # ...other params...
74
+ # },
75
+ # cvc_confirm: '456', # optional
76
+ # ...other params...
77
+ # }
78
+ #
79
+ # And this method modifies the params into the format of:
80
+ #
81
+ # {
82
+ # order: {
83
+ # payments_attributes: [
84
+ # {
85
+ # source_attributes: {
86
+ # existing_card_id: '123',
87
+ # verification_value: '456',
88
+ # },
89
+ # },
90
+ # ]
91
+ # ...other params...
92
+ # },
93
+ # ...other params...
94
+ # }
95
+ #
96
+ def move_existing_card_into_payments_attributes(params)
97
+ return params if params[:order].blank?
98
+
99
+ card_id = params[:order][:existing_card].presence
100
+ cvc_confirm = params[:cvc_confirm].presence
101
+
102
+ return params if card_id.nil?
103
+
104
+ params[:order][:payments_attributes] = [
105
+ {
106
+ source_attributes: {
107
+ existing_card_id: card_id,
108
+ verification_value: cvc_confirm,
109
+ }
110
+ },
111
+ ]
112
+
113
+ params[:order].delete(:existing_card)
114
+ params.delete(:cvc_confirm)
115
+
116
+ params
117
+ end
118
+
119
+ # This is a strange thing to do since an order can have multiple payments
120
+ # but we always assume that it only has a single payment and that its
121
+ # amount should be the current order total. Also, this is pretty much
122
+ # overridden when the order transitions to confirm by the logic inside of
123
+ # Order#add_store_credit_payments.
124
+ # We should reconsider this method and its usage at some point.
125
+ #
126
+ # This method expects a params hash in the format of:
127
+ #
128
+ # {
129
+ # order: {
130
+ # # Note that only a single entry is expected/handled in this array
131
+ # payments_attributes: [
132
+ # {
133
+ # ...params...
134
+ # },
135
+ # ],
136
+ # ...other params...
137
+ # },
138
+ # ...other params...
139
+ # }
140
+ #
141
+ # And this method modifies the params into the format of:
142
+ #
143
+ # {
144
+ # order: {
145
+ # payments_attributes: [
146
+ # {
147
+ # ...params...
148
+ # amount: <the order total>,
149
+ # },
150
+ # ],
151
+ # ...other params...
152
+ # },
153
+ # ...other params...
154
+ # }
155
+ #
156
+ def set_payment_parameters_amount(params, order)
157
+ return params if params[:order].blank?
158
+ return params if params[:order][:payments_attributes].blank?
159
+
160
+ params[:order][:payments_attributes].first[:amount] = order.total
161
+
162
+ params
163
+ end
164
+
66
165
  end
67
166
  end
@@ -69,11 +69,12 @@ module Spree
69
69
  app.config.spree.calculators.promotion_actions_create_item_adjustments = [
70
70
  Spree::Calculator::PercentOnLineItem,
71
71
  Spree::Calculator::FlatRate,
72
- Spree::Calculator::FlexiRate
72
+ Spree::Calculator::FlexiRate,
73
+ Spree::Calculator::TieredPercent
73
74
  ]
74
75
 
75
76
  app.config.spree.calculators.add_class('promotion_actions_create_quantity_adjustments')
76
- app.config.spree.calculators.promotion_actions_create_item_adjustments = [
77
+ app.config.spree.calculators.promotion_actions_create_quantity_adjustments = [
77
78
  Spree::Calculator::PercentOnLineItem,
78
79
  Spree::Calculator::FlatRate
79
80
  ]
@@ -0,0 +1,11 @@
1
+ module Spree
2
+ module StockConfiguration
3
+ mattr_accessor :estimator_class do
4
+ '::Spree::Stock::Estimator'
5
+ end
6
+
7
+ def self.estimator_class
8
+ @@estimator_class.constantize
9
+ end
10
+ end
11
+ end
@@ -10,7 +10,7 @@ module Spree
10
10
 
11
11
  class_attribute :failure_handler
12
12
 
13
- attr_reader :original_order
13
+ attr_reader :original_order, :new_order
14
14
 
15
15
  def initialize(shipment, return_items)
16
16
  @shipment = shipment
@@ -19,6 +19,8 @@ module Spree
19
19
  end
20
20
 
21
21
  def charge_for_items
22
+ self.new_order = Spree::Order.create!(exchange_order_attributes)
23
+
22
24
  new_order.associate_user!(@original_order.user) if @original_order.user
23
25
 
24
26
  add_exchange_variants_to_order
@@ -55,9 +57,7 @@ module Spree
55
57
 
56
58
  private
57
59
 
58
- def new_order
59
- @new_order ||= Spree::Order.create!(exchange_order_attributes)
60
- end
60
+ attr_writer :new_order
61
61
 
62
62
  def add_exchange_variants_to_order
63
63
  @return_items.group_by(&:exchange_variant).map do |variant, variant_return_items|
@@ -1,6 +1,14 @@
1
1
  module Spree
2
2
  def self.version
3
- ActiveSupport::Deprecation.warn("Spree.version does not work and will be removed from solidus")
3
+ ActiveSupport::Deprecation.warn("Spree.version does not work and will be removed from solidus. Use Spree.solidus_version instead to determine the solidus version")
4
4
  "2.4.6.beta"
5
5
  end
6
+
7
+ def self.solidus_version
8
+ "1.2.0.beta1"
9
+ end
10
+
11
+ def self.solidus_gem_version
12
+ Gem::Version.new(solidus_version)
13
+ end
6
14
  end
@@ -20,20 +20,21 @@ module Spree
20
20
  def activate!
21
21
  if user.stock_locations.any?
22
22
  can :display, Spree::StockLocation, id: user_location_ids
23
- can [:admin, :create], Spree::StockTransfer
24
- can :display, Spree::StockTransfer, source_location_id: source_location_ids
25
- can :display, Spree::StockTransfer, destination_location_id: destination_location_ids
26
- can :manage, Spree::StockTransfer,
27
- source_location_id: source_location_ids,
28
- destination_location_id: destination_location_ids_with_undefined_destination
29
23
 
30
- can :transfer_from, Spree::StockLocation, id: source_location_ids
31
- can :transfer_to, Spree::StockLocation, id: destination_location_ids
24
+ can :transfer_from, Spree::StockLocation, id: user_location_ids
25
+ can :transfer_to, Spree::StockLocation, id: user_location_ids
32
26
 
33
- can :manage, Spree::TransferItem, stock_transfer: {
34
- source_location_id: source_location_ids,
35
- destination_location_id: destination_location_ids_with_undefined_destination
36
- }
27
+ can :display, Spree::StockTransfer, source_location_id: user_location_ids
28
+ can :manage, Spree::StockTransfer, source_location_id: user_location_ids + [nil], shipped_at: nil
29
+ can :manage, Spree::StockTransfer, destination_location_id: user_location_ids
30
+ # Do not allow managing transfers to a permitted destination_location_id from an
31
+ # unauthorized stock location until it's been shipped to the permitted location.
32
+ cannot :manage, Spree::StockTransfer, source_location_id: not_permitted_location_ids, shipped_at: nil
33
+
34
+ can :display, Spree::TransferItem, stock_transfer: { source_location_id: user_location_ids }
35
+ can :manage, Spree::TransferItem, stock_transfer: { source_location_id: user_location_ids + [nil], shipped_at: nil }
36
+ can :manage, Spree::TransferItem, stock_transfer: { destination_location_id: user_location_ids }
37
+ cannot :manage, Spree::TransferItem, stock_transfer: { source_location_id: not_permitted_location_ids, shipped_at: nil }
37
38
  end
38
39
  end
39
40
 
@@ -43,18 +44,8 @@ module Spree
43
44
  @user_location_ids ||= user.stock_locations.pluck(:id)
44
45
  end
45
46
 
46
- # @note Meant to facilitate extension - override to define custom ids
47
- def source_location_ids
48
- user_location_ids
49
- end
50
-
51
- # @note Meant to facilitate extension - override to define custom ids
52
- def destination_location_ids
53
- user_location_ids
54
- end
55
-
56
- def destination_location_ids_with_undefined_destination
57
- destination_location_ids + [nil]
47
+ def not_permitted_location_ids
48
+ @not_permitted_location_ids ||= Spree::StockLocation.where.not(id: user_location_ids).pluck(:id)
58
49
  end
59
50
  end
60
51
  end