solidus_core 1.0.0.pre

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 (610) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +26 -0
  3. data/app/assets/images/logo/solidus.png +0 -0
  4. data/app/assets/images/logo/solidus_logo.png +0 -0
  5. data/app/assets/images/noimage/large.png +0 -0
  6. data/app/assets/images/noimage/mini.png +0 -0
  7. data/app/assets/images/noimage/product.png +0 -0
  8. data/app/assets/images/noimage/small.png +0 -0
  9. data/app/assets/javascripts/spree.js.coffee.erb +61 -0
  10. data/app/controllers/spree/base_controller.rb +15 -0
  11. data/app/helpers/spree/base_helper.rb +210 -0
  12. data/app/helpers/spree/checkout_helper.rb +31 -0
  13. data/app/helpers/spree/orders_helper.rb +17 -0
  14. data/app/helpers/spree/products_helper.rb +82 -0
  15. data/app/helpers/spree/store_helper.rb +16 -0
  16. data/app/helpers/spree/taxons_helper.rb +19 -0
  17. data/app/mailers/spree/base_mailer.rb +23 -0
  18. data/app/mailers/spree/carton_mailer.rb +12 -0
  19. data/app/mailers/spree/order_mailer.rb +35 -0
  20. data/app/mailers/spree/reimbursement_mailer.rb +10 -0
  21. data/app/mailers/spree/test_mailer.rb +8 -0
  22. data/app/models/concerns/spree/adjustment_source.rb +24 -0
  23. data/app/models/concerns/spree/calculated_adjustments.rb +33 -0
  24. data/app/models/concerns/spree/default_price.rb +34 -0
  25. data/app/models/concerns/spree/display_money.rb +32 -0
  26. data/app/models/concerns/spree/named_type.rb +12 -0
  27. data/app/models/concerns/spree/user_address.rb +30 -0
  28. data/app/models/concerns/spree/user_api_authentication.rb +13 -0
  29. data/app/models/concerns/spree/user_payment_source.rb +19 -0
  30. data/app/models/concerns/spree/user_reporting.rb +22 -0
  31. data/app/models/spree/ability.rb +74 -0
  32. data/app/models/spree/address.rb +157 -0
  33. data/app/models/spree/adjustment.rb +143 -0
  34. data/app/models/spree/app_configuration.rb +253 -0
  35. data/app/models/spree/asset.rb +6 -0
  36. data/app/models/spree/base.rb +15 -0
  37. data/app/models/spree/billing_integration.rb +21 -0
  38. data/app/models/spree/calculator.rb +47 -0
  39. data/app/models/spree/calculator/default_tax.rb +67 -0
  40. data/app/models/spree/calculator/flat_percent_item_total.rb +22 -0
  41. data/app/models/spree/calculator/flat_rate.rb +20 -0
  42. data/app/models/spree/calculator/flexi_rate.rb +33 -0
  43. data/app/models/spree/calculator/free_shipping.rb +21 -0
  44. data/app/models/spree/calculator/percent_on_line_item.rb +15 -0
  45. data/app/models/spree/calculator/percent_per_item.rb +50 -0
  46. data/app/models/spree/calculator/price_sack.rb +29 -0
  47. data/app/models/spree/calculator/returns/default_refund_amount.rb +36 -0
  48. data/app/models/spree/calculator/shipping/flat_percent_item_total.rb +22 -0
  49. data/app/models/spree/calculator/shipping/flat_rate.rb +18 -0
  50. data/app/models/spree/calculator/shipping/flexi_rate.rb +35 -0
  51. data/app/models/spree/calculator/shipping/per_item.rb +22 -0
  52. data/app/models/spree/calculator/shipping/price_sack.rb +28 -0
  53. data/app/models/spree/calculator/tiered_flat_rate.rb +37 -0
  54. data/app/models/spree/calculator/tiered_percent.rb +44 -0
  55. data/app/models/spree/carton.rb +57 -0
  56. data/app/models/spree/classification.rb +11 -0
  57. data/app/models/spree/country.rb +23 -0
  58. data/app/models/spree/credit_card.rb +197 -0
  59. data/app/models/spree/customer_return.rb +73 -0
  60. data/app/models/spree/exchange.rb +46 -0
  61. data/app/models/spree/gateway.rb +79 -0
  62. data/app/models/spree/gateway/bogus.rb +91 -0
  63. data/app/models/spree/gateway/bogus_simple.rb +26 -0
  64. data/app/models/spree/image.rb +44 -0
  65. data/app/models/spree/inventory_unit.rb +154 -0
  66. data/app/models/spree/item_adjustments.rb +85 -0
  67. data/app/models/spree/item_adjustments.rb.orig +93 -0
  68. data/app/models/spree/legacy_user.rb +38 -0
  69. data/app/models/spree/line_item.rb +183 -0
  70. data/app/models/spree/line_item_action.rb +6 -0
  71. data/app/models/spree/log_entry.rb +20 -0
  72. data/app/models/spree/option_type.rb +30 -0
  73. data/app/models/spree/option_value.rb +26 -0
  74. data/app/models/spree/option_values_variant.rb +6 -0
  75. data/app/models/spree/order.rb +811 -0
  76. data/app/models/spree/order/checkout.rb +351 -0
  77. data/app/models/spree/order/currency_updater.rb +40 -0
  78. data/app/models/spree/order/payments.rb +66 -0
  79. data/app/models/spree/order_cancellations.rb +72 -0
  80. data/app/models/spree/order_capturing.rb +49 -0
  81. data/app/models/spree/order_contents.rb +125 -0
  82. data/app/models/spree/order_inventory.rb +108 -0
  83. data/app/models/spree/order_mutex.rb +35 -0
  84. data/app/models/spree/order_promotion.rb +23 -0
  85. data/app/models/spree/order_shipping.rb +99 -0
  86. data/app/models/spree/order_stock_location.rb +15 -0
  87. data/app/models/spree/order_updater.rb +178 -0
  88. data/app/models/spree/payment.rb +292 -0
  89. data/app/models/spree/payment/processing.rb +210 -0
  90. data/app/models/spree/payment_capture_event.rb +9 -0
  91. data/app/models/spree/payment_method.rb +79 -0
  92. data/app/models/spree/payment_method/check.rb +31 -0
  93. data/app/models/spree/payment_method/store_credit.rb +127 -0
  94. data/app/models/spree/preference.rb +5 -0
  95. data/app/models/spree/preferences/configuration.rb +78 -0
  96. data/app/models/spree/preferences/preferable.rb +128 -0
  97. data/app/models/spree/preferences/preferable_class_methods.rb +64 -0
  98. data/app/models/spree/preferences/scoped_store.rb +33 -0
  99. data/app/models/spree/preferences/store.rb +93 -0
  100. data/app/models/spree/price.rb +62 -0
  101. data/app/models/spree/product.rb +347 -0
  102. data/app/models/spree/product/scopes.rb +262 -0
  103. data/app/models/spree/product_option_type.rb +7 -0
  104. data/app/models/spree/product_property.rb +25 -0
  105. data/app/models/spree/product_scope/scopes.rb +47 -0
  106. data/app/models/spree/promotion.rb +229 -0
  107. data/app/models/spree/promotion/actions/create_adjustment.rb +63 -0
  108. data/app/models/spree/promotion/actions/create_item_adjustments.rb +80 -0
  109. data/app/models/spree/promotion/actions/create_quantity_adjustments.rb +129 -0
  110. data/app/models/spree/promotion/actions/free_shipping.rb +41 -0
  111. data/app/models/spree/promotion/rules/first_order.rb +37 -0
  112. data/app/models/spree/promotion/rules/item_total.rb +61 -0
  113. data/app/models/spree/promotion/rules/one_use_per_user.rb +24 -0
  114. data/app/models/spree/promotion/rules/option_value.rb +50 -0
  115. data/app/models/spree/promotion/rules/product.rb +64 -0
  116. data/app/models/spree/promotion/rules/taxon.rb +69 -0
  117. data/app/models/spree/promotion/rules/user.rb +30 -0
  118. data/app/models/spree/promotion/rules/user_logged_in.rb +18 -0
  119. data/app/models/spree/promotion_action.rb +23 -0
  120. data/app/models/spree/promotion_builder.rb +55 -0
  121. data/app/models/spree/promotion_category.rb +6 -0
  122. data/app/models/spree/promotion_chooser.rb +30 -0
  123. data/app/models/spree/promotion_code.rb +39 -0
  124. data/app/models/spree/promotion_code/code_builder.rb +62 -0
  125. data/app/models/spree/promotion_handler/cart.rb +65 -0
  126. data/app/models/spree/promotion_handler/coupon.rb +119 -0
  127. data/app/models/spree/promotion_handler/free_shipping.rb +43 -0
  128. data/app/models/spree/promotion_handler/page.rb +24 -0
  129. data/app/models/spree/promotion_rule.rb +44 -0
  130. data/app/models/spree/property.rb +20 -0
  131. data/app/models/spree/prototype.rb +9 -0
  132. data/app/models/spree/refund.rb +96 -0
  133. data/app/models/spree/refund_reason.rb +13 -0
  134. data/app/models/spree/reimbursement.rb +188 -0
  135. data/app/models/spree/reimbursement/credit.rb +25 -0
  136. data/app/models/spree/reimbursement/reimbursement_type_engine.rb +56 -0
  137. data/app/models/spree/reimbursement/reimbursement_type_validator.rb +15 -0
  138. data/app/models/spree/reimbursement_performer.rb +43 -0
  139. data/app/models/spree/reimbursement_tax_calculator.rb +38 -0
  140. data/app/models/spree/reimbursement_type.rb +16 -0
  141. data/app/models/spree/reimbursement_type/credit.rb +13 -0
  142. data/app/models/spree/reimbursement_type/exchange.rb +9 -0
  143. data/app/models/spree/reimbursement_type/original_payment.rb +13 -0
  144. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +70 -0
  145. data/app/models/spree/reimbursement_type/store_credit.rb +27 -0
  146. data/app/models/spree/return_authorization.rb +108 -0
  147. data/app/models/spree/return_authorization_reason.rb +7 -0
  148. data/app/models/spree/return_item.rb +311 -0
  149. data/app/models/spree/return_item/eligibility_validator/base_validator.rb +24 -0
  150. data/app/models/spree/return_item/eligibility_validator/default.rb +30 -0
  151. data/app/models/spree/return_item/eligibility_validator/inventory_shipped.rb +16 -0
  152. data/app/models/spree/return_item/eligibility_validator/no_reimbursements.rb +17 -0
  153. data/app/models/spree/return_item/eligibility_validator/order_completed.rb +16 -0
  154. data/app/models/spree/return_item/eligibility_validator/rma_required.rb +17 -0
  155. data/app/models/spree/return_item/eligibility_validator/time_since_purchase.rb +16 -0
  156. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +34 -0
  157. data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +9 -0
  158. data/app/models/spree/returns_calculator.rb +8 -0
  159. data/app/models/spree/role.rb +10 -0
  160. data/app/models/spree/role_user.rb +17 -0
  161. data/app/models/spree/shipment.rb +427 -0
  162. data/app/models/spree/shipping_calculator.rb +22 -0
  163. data/app/models/spree/shipping_category.rb +8 -0
  164. data/app/models/spree/shipping_manifest.rb +23 -0
  165. data/app/models/spree/shipping_method.rb +69 -0
  166. data/app/models/spree/shipping_method_category.rb +6 -0
  167. data/app/models/spree/shipping_rate.rb +57 -0
  168. data/app/models/spree/state.rb +30 -0
  169. data/app/models/spree/state_change.rb +15 -0
  170. data/app/models/spree/static_model_preferences.rb +32 -0
  171. data/app/models/spree/stock/adjuster.rb +28 -0
  172. data/app/models/spree/stock/availability_validator.rb +35 -0
  173. data/app/models/spree/stock/content_item.rb +48 -0
  174. data/app/models/spree/stock/coordinator.rb +96 -0
  175. data/app/models/spree/stock/differentiator.rb +44 -0
  176. data/app/models/spree/stock/estimator.rb +70 -0
  177. data/app/models/spree/stock/inventory_unit_builder.rb +22 -0
  178. data/app/models/spree/stock/inventory_validator.rb +14 -0
  179. data/app/models/spree/stock/package.rb +131 -0
  180. data/app/models/spree/stock/packer.rb +49 -0
  181. data/app/models/spree/stock/prioritizer.rb +47 -0
  182. data/app/models/spree/stock/quantifier.rb +47 -0
  183. data/app/models/spree/stock/splitter/backordered.rb +23 -0
  184. data/app/models/spree/stock/splitter/base.rb +28 -0
  185. data/app/models/spree/stock/splitter/shipping_category.rb +32 -0
  186. data/app/models/spree/stock/splitter/weight.rb +32 -0
  187. data/app/models/spree/stock_item.rb +107 -0
  188. data/app/models/spree/stock_location.rb +128 -0
  189. data/app/models/spree/stock_movement.rb +26 -0
  190. data/app/models/spree/stock_transfer.rb +108 -0
  191. data/app/models/spree/store.rb +38 -0
  192. data/app/models/spree/store_credit.rb +267 -0
  193. data/app/models/spree/store_credit_category.rb +17 -0
  194. data/app/models/spree/store_credit_event.rb +52 -0
  195. data/app/models/spree/store_credit_type.rb +6 -0
  196. data/app/models/spree/tax_category.rb +19 -0
  197. data/app/models/spree/tax_rate.rb +199 -0
  198. data/app/models/spree/taxon.rb +103 -0
  199. data/app/models/spree/taxonomy.rb +27 -0
  200. data/app/models/spree/tracker.rb +8 -0
  201. data/app/models/spree/transfer_item.rb +58 -0
  202. data/app/models/spree/unit_cancel.rb +32 -0
  203. data/app/models/spree/user_stock_location.rb +6 -0
  204. data/app/models/spree/validations/db_maximum_length_validator.rb +22 -0
  205. data/app/models/spree/variant.rb +356 -0
  206. data/app/models/spree/variant/scopes.rb +40 -0
  207. data/app/models/spree/zone.rb +138 -0
  208. data/app/models/spree/zone_member.rb +11 -0
  209. data/app/views/layouts/spree/base_mailer.html.erb +784 -0
  210. data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +19 -0
  211. data/app/views/spree/carton_mailer/shipped_email.text.erb +16 -0
  212. data/app/views/spree/order_mailer/cancel_email.html.erb +45 -0
  213. data/app/views/spree/order_mailer/cancel_email.text.erb +16 -0
  214. data/app/views/spree/order_mailer/confirm_email.html.erb +84 -0
  215. data/app/views/spree/order_mailer/confirm_email.text.erb +38 -0
  216. data/app/views/spree/order_mailer/inventory_cancellation_email.text.erb +10 -0
  217. data/app/views/spree/reimbursement_mailer/reimbursement_email.text.erb +22 -0
  218. data/app/views/spree/shared/_base_mailer_footer.html.erb +20 -0
  219. data/app/views/spree/shared/_base_mailer_header.html.erb +31 -0
  220. data/app/views/spree/shared/_error_messages.html.erb +11 -0
  221. data/app/views/spree/shipment_mailer/shipped_email.html.erb +34 -0
  222. data/app/views/spree/test_mailer/test_email.html.erb +40 -0
  223. data/app/views/spree/test_mailer/test_email.text.erb +4 -0
  224. data/config/initializers/friendly_id.rb +88 -0
  225. data/config/initializers/premailer_assets.rb +1 -0
  226. data/config/initializers/user_class_extensions.rb +42 -0
  227. data/config/locales/en.yml +1534 -0
  228. data/config/routes.rb +1 -0
  229. data/db/default/spree/countries.rb +19 -0
  230. data/db/default/spree/roles.rb +2 -0
  231. data/db/default/spree/states.rb +16 -0
  232. data/db/default/spree/store_credit.rb +16 -0
  233. data/db/default/spree/stores.rb +9 -0
  234. data/db/default/spree/zones.rb +17 -0
  235. data/db/migrate/20120831092320_spree_one_two.rb +481 -0
  236. data/db/migrate/20120831092359_spree_promo_one_two.rb +45 -0
  237. data/db/migrate/20120905145253_add_tax_rate_label.rb +5 -0
  238. data/db/migrate/20120905151823_add_toggle_tax_rate_display.rb +5 -0
  239. data/db/migrate/20120929093553_remove_unused_preference_columns.rb +8 -0
  240. data/db/migrate/20121009142519_add_lock_version_to_variant.rb +5 -0
  241. data/db/migrate/20121010142909_add_states_required_to_countries.rb +5 -0
  242. data/db/migrate/20121012071449_add_on_demand_to_product_and_variant.rb +6 -0
  243. data/db/migrate/20121017010007_remove_not_null_constraint_from_products_on_hand.rb +11 -0
  244. data/db/migrate/20121031162139_split_prices_from_variants.rb +31 -0
  245. data/db/migrate/20121107003422_remove_not_null_from_spree_prices_amount.rb +9 -0
  246. data/db/migrate/20121107184631_add_currency_to_line_items.rb +5 -0
  247. data/db/migrate/20121107194006_add_currency_to_orders.rb +5 -0
  248. data/db/migrate/20121109173623_add_cost_currency_to_variants.rb +5 -0
  249. data/db/migrate/20121111231553_remove_display_on_from_payment_methods.rb +5 -0
  250. data/db/migrate/20121124203911_add_position_to_taxonomies.rb +5 -0
  251. data/db/migrate/20121126040517_add_last_ip_to_spree_orders.rb +5 -0
  252. data/db/migrate/20121213162028_add_state_to_spree_adjustments.rb +6 -0
  253. data/db/migrate/20130114053446_add_display_on_to_spree_payment_methods.rb +9 -0
  254. data/db/migrate/20130120201805_add_position_to_product_properties.spree.rb +6 -0
  255. data/db/migrate/20130203232234_add_identifier_to_spree_payments.rb +5 -0
  256. data/db/migrate/20130207155350_add_order_id_index_to_payments.rb +9 -0
  257. data/db/migrate/20130208032954_add_primary_to_spree_products_taxons.rb +5 -0
  258. data/db/migrate/20130211190146_create_spree_stock_items.rb +14 -0
  259. data/db/migrate/20130211191120_create_spree_stock_locations.rb +11 -0
  260. data/db/migrate/20130213191427_create_default_stock.rb +34 -0
  261. data/db/migrate/20130222032153_add_order_id_index_to_shipments.rb +5 -0
  262. data/db/migrate/20130226032817_change_meta_description_on_spree_products_to_text.rb +5 -0
  263. data/db/migrate/20130226191231_add_stock_location_id_to_spree_shipments.rb +5 -0
  264. data/db/migrate/20130227143905_add_pending_to_inventory_unit.rb +6 -0
  265. data/db/migrate/20130228164411_remove_on_demand_from_product_and_variant.rb +6 -0
  266. data/db/migrate/20130228210442_create_shipping_method_zone.rb +21 -0
  267. data/db/migrate/20130301162745_remove_shipping_category_id_from_shipping_method.rb +5 -0
  268. data/db/migrate/20130301162924_create_shipping_method_categories.rb +13 -0
  269. data/db/migrate/20130301205200_add_tracking_url_to_spree_shipping_methods.rb +5 -0
  270. data/db/migrate/20130304162240_create_spree_shipping_rates.rb +24 -0
  271. data/db/migrate/20130304192936_remove_category_match_attributes_from_shipping_method.rb +7 -0
  272. data/db/migrate/20130305143310_create_stock_movements.rb +12 -0
  273. data/db/migrate/20130306181701_add_address_fields_to_stock_location.rb +22 -0
  274. data/db/migrate/20130306191917_add_active_field_to_stock_locations.rb +5 -0
  275. data/db/migrate/20130306195650_add_backorderable_to_stock_item.rb +5 -0
  276. data/db/migrate/20130307161754_add_default_quantity_to_stock_movement.rb +5 -0
  277. data/db/migrate/20130318151756_add_source_and_destination_to_stock_movements.rb +8 -0
  278. data/db/migrate/20130319062004_change_orders_total_precision.rb +8 -0
  279. data/db/migrate/20130319063911_change_spree_payments_amount_precision.rb +7 -0
  280. data/db/migrate/20130319064308_change_spree_return_authorization_amount_precision.rb +7 -0
  281. data/db/migrate/20130319082943_change_adjustments_amount_precision.rb +7 -0
  282. data/db/migrate/20130319183250_add_originator_to_stock_movement.rb +7 -0
  283. data/db/migrate/20130319190507_drop_source_and_destination_from_stock_movement.rb +15 -0
  284. data/db/migrate/20130325163316_migrate_inventory_unit_sold_to_on_hand.rb +9 -0
  285. data/db/migrate/20130326175857_add_stock_location_to_rma.rb +5 -0
  286. data/db/migrate/20130328130308_update_shipment_state_for_canceled_orders.rb +15 -0
  287. data/db/migrate/20130328195253_add_seo_metas_to_taxons.rb +9 -0
  288. data/db/migrate/20130329134939_remove_stock_item_and_variant_lock.rb +14 -0
  289. data/db/migrate/20130413230529_add_name_to_spree_credit_cards.rb +5 -0
  290. data/db/migrate/20130414000512_update_name_fields_on_spree_credit_cards.rb +13 -0
  291. data/db/migrate/20130417120034_add_index_to_source_columns_on_adjustments.rb +5 -0
  292. data/db/migrate/20130417120035_update_adjustment_states.rb +16 -0
  293. data/db/migrate/20130417123427_add_shipping_rates_to_shipments.rb +15 -0
  294. data/db/migrate/20130418125341_create_spree_stock_transfers.rb +14 -0
  295. data/db/migrate/20130423110707_drop_products_count_on_hand.rb +5 -0
  296. data/db/migrate/20130423223847_set_default_shipping_rate_cost.rb +5 -0
  297. data/db/migrate/20130509115210_add_number_to_stock_transfer.rb +23 -0
  298. data/db/migrate/20130514151929_add_sku_index_to_spree_variants.rb +5 -0
  299. data/db/migrate/20130515180736_add_backorderable_default_to_spree_stock_location.rb +5 -0
  300. data/db/migrate/20130516151222_add_propage_all_variants_to_spree_stock_location.rb +5 -0
  301. data/db/migrate/20130611054351_rename_shipping_methods_zones_to_spree_shipping_methods_zones.rb +5 -0
  302. data/db/migrate/20130611185927_add_user_id_index_to_spree_orders.rb +5 -0
  303. data/db/migrate/20130618041418_add_updated_at_to_spree_countries.rb +9 -0
  304. data/db/migrate/20130619012236_add_updated_at_to_spree_states.rb +9 -0
  305. data/db/migrate/20130626232741_add_cvv_result_code_and_cvv_result_message_to_spree_payments.rb +6 -0
  306. data/db/migrate/20130628021056_add_unique_index_to_permalink_on_spree_products.rb +5 -0
  307. data/db/migrate/20130628022817_add_unique_index_to_orders_shipments_and_stock_transfers.rb +7 -0
  308. data/db/migrate/20130708052307_add_deleted_at_to_spree_tax_rates.rb +5 -0
  309. data/db/migrate/20130711200933_remove_lock_version_from_inventory_units.rb +6 -0
  310. data/db/migrate/20130718042445_add_cost_price_to_line_item.rb +5 -0
  311. data/db/migrate/20130718233855_set_backorderable_to_default_to_false.rb +6 -0
  312. data/db/migrate/20130725031716_add_created_by_id_to_spree_orders.rb +5 -0
  313. data/db/migrate/20130729214043_index_completed_at_on_spree_orders.rb +5 -0
  314. data/db/migrate/20130802014537_add_tax_category_id_to_spree_line_items.rb +5 -0
  315. data/db/migrate/20130802022321_migrate_tax_categories_to_line_items.rb +10 -0
  316. data/db/migrate/20130806022521_drop_spree_mail_methods.rb +12 -0
  317. data/db/migrate/20130806145853_set_default_stock_location_on_shipments.rb +8 -0
  318. data/db/migrate/20130807024301_upgrade_adjustments.rb +40 -0
  319. data/db/migrate/20130807024302_rename_adjustment_fields.rb +14 -0
  320. data/db/migrate/20130809164245_add_admin_name_column_to_spree_shipping_methods.rb +5 -0
  321. data/db/migrate/20130809164330_add_admin_name_column_to_spree_stock_locations.rb +5 -0
  322. data/db/migrate/20130813004002_add_shipment_total_to_spree_orders.rb +5 -0
  323. data/db/migrate/20130813140619_expand_order_number_size.rb +9 -0
  324. data/db/migrate/20130813232134_rename_activators_to_promotions.rb +5 -0
  325. data/db/migrate/20130815000406_add_adjustment_total_to_line_items.rb +5 -0
  326. data/db/migrate/20130815024413_add_adjustment_total_to_shipments.rb +5 -0
  327. data/db/migrate/20130826062534_add_depth_to_spree_taxons.rb +16 -0
  328. data/db/migrate/20130828234942_add_tax_total_to_line_items_shipments_and_orders.rb +8 -0
  329. data/db/migrate/20130830001033_add_shipping_category_to_shipping_methods_and_products.rb +15 -0
  330. data/db/migrate/20130830001159_migrate_old_shipping_calculators.rb +19 -0
  331. data/db/migrate/20130903183026_add_code_to_spree_promotion_rules.rb +5 -0
  332. data/db/migrate/20130909115621_change_states_required_for_countries.rb +9 -0
  333. data/db/migrate/20130915032339_add_deleted_at_to_spree_stock_items.rb +5 -0
  334. data/db/migrate/20130917024658_remove_promotions_event_name_field.rb +5 -0
  335. data/db/migrate/20130924040529_add_promo_total_to_line_items_and_shipments_and_orders.rb +7 -0
  336. data/db/migrate/20131001013410_remove_unused_credit_card_fields.rb +16 -0
  337. data/db/migrate/20131026154747_add_track_inventory_to_variant.rb +5 -0
  338. data/db/migrate/20131107132123_add_tax_category_to_variants.rb +6 -0
  339. data/db/migrate/20131113035136_add_channel_to_spree_orders.rb +5 -0
  340. data/db/migrate/20131118043959_add_included_to_adjustments.rb +5 -0
  341. data/db/migrate/20131118050234_rename_tax_total_fields.rb +11 -0
  342. data/db/migrate/20131118183431_add_line_item_id_to_spree_inventory_units.rb +21 -0
  343. data/db/migrate/20131120234456_add_updated_at_to_variants.rb +5 -0
  344. data/db/migrate/20131127001002_add_position_to_classifications.rb +5 -0
  345. data/db/migrate/20131211112807_create_spree_orders_promotions.rb +8 -0
  346. data/db/migrate/20131211192741_unique_shipping_method_categories.rb +24 -0
  347. data/db/migrate/20131218054603_add_item_count_to_spree_orders.rb +5 -0
  348. data/db/migrate/20140106065820_remove_value_type_from_spree_preferences.rb +8 -0
  349. data/db/migrate/20140106224208_rename_permalink_to_slug_for_products.rb +5 -0
  350. data/db/migrate/20140120160805_add_index_to_variant_id_and_currency_on_prices.rb +5 -0
  351. data/db/migrate/20140124023232_rename_activator_id_in_rules_and_actions_to_promotion_id.rb +6 -0
  352. data/db/migrate/20140129024326_add_deleted_at_to_spree_prices.rb +5 -0
  353. data/db/migrate/20140203161722_add_approver_id_and_approved_at_to_orders.rb +6 -0
  354. data/db/migrate/20140204115338_add_confirmation_delivered_to_spree_orders.rb +5 -0
  355. data/db/migrate/20140204192230_add_auto_capture_to_payment_methods.rb +5 -0
  356. data/db/migrate/20140205120320_create_spree_payment_capture_events.rb +12 -0
  357. data/db/migrate/20140205144710_add_uncaptured_amount_to_payments.rb +5 -0
  358. data/db/migrate/20140205181631_default_variant_weight_to_zero.rb +11 -0
  359. data/db/migrate/20140207085910_add_tax_category_id_to_shipping_methods.rb +5 -0
  360. data/db/migrate/20140207093021_add_tax_rate_id_to_shipping_rates.rb +5 -0
  361. data/db/migrate/20140211040159_add_pre_tax_amount_to_line_items_and_shipments.rb +6 -0
  362. data/db/migrate/20140213184916_add_more_indexes.rb +13 -0
  363. data/db/migrate/20140219060952_add_considered_risky_to_orders.rb +5 -0
  364. data/db/migrate/20140227112348_add_preference_store_to_everything.rb +8 -0
  365. data/db/migrate/20140307235515_add_user_id_to_spree_credit_cards.rb +13 -0
  366. data/db/migrate/20140309023735_migrate_old_preferences.rb +23 -0
  367. data/db/migrate/20140309024355_create_spree_stores.rb +25 -0
  368. data/db/migrate/20140309033438_create_store_from_preferences.rb +30 -0
  369. data/db/migrate/20140315053743_add_timestamps_to_spree_assets.rb +6 -0
  370. data/db/migrate/20140318191500_create_spree_taxons_promotion_rules.rb +8 -0
  371. data/db/migrate/20140331100557_add_additional_store_fields.rb +8 -0
  372. data/db/migrate/20140410141842_add_many_missing_indexes.rb +17 -0
  373. data/db/migrate/20140410150358_correct_some_polymorphic_index_and_add_more_missing.rb +66 -0
  374. data/db/migrate/20140415041315_add_user_id_created_by_id_index_to_order.rb +5 -0
  375. data/db/migrate/20140508151342_change_spree_price_amount_precision.rb +8 -0
  376. data/db/migrate/20140518174634_add_token_to_spree_orders.rb +5 -0
  377. data/db/migrate/20140530024945_move_order_token_from_tokenized_permission.rb +29 -0
  378. data/db/migrate/20140601011216_set_shipment_total_for_users_upgrading.rb +10 -0
  379. data/db/migrate/20140604135309_drop_credit_card_first_name_and_last_name.rb +6 -0
  380. data/db/migrate/20140609201656_add_deleted_at_to_spree_promotion_actions.rb +6 -0
  381. data/db/migrate/20140616202624_remove_uncaptured_amount_from_spree_payments.rb +5 -0
  382. data/db/migrate/20140625214618_create_spree_refunds.rb +12 -0
  383. data/db/migrate/20140702140656_create_spree_return_authorization_inventory_unit.rb +12 -0
  384. data/db/migrate/20140707125621_rename_return_authorization_inventory_unit_to_return_items.rb +5 -0
  385. data/db/migrate/20140708132019_create_order_mutex.rb +11 -0
  386. data/db/migrate/20140709160534_backfill_line_item_pre_tax_amount.rb +10 -0
  387. data/db/migrate/20140710041921_recreate_spree_return_authorizations.rb +55 -0
  388. data/db/migrate/20140710181204_add_amount_fields_to_return_items.rb +7 -0
  389. data/db/migrate/20140710190048_drop_return_authorization_amount.rb +5 -0
  390. data/db/migrate/20140713140455_create_spree_return_authorization_reasons.rb +28 -0
  391. data/db/migrate/20140713140527_create_spree_refund_reasons.rb +14 -0
  392. data/db/migrate/20140713142214_rename_return_authorization_reason.rb +5 -0
  393. data/db/migrate/20140715182625_create_spree_promotion_categories.rb +11 -0
  394. data/db/migrate/20140716204111_drop_received_at_on_return_items.rb +9 -0
  395. data/db/migrate/20140716212330_add_reception_and_acceptance_status_to_return_items.rb +6 -0
  396. data/db/migrate/20140717155155_create_default_refund_reason.rb +9 -0
  397. data/db/migrate/20140717185932_add_default_to_spree_stock_locations.rb +7 -0
  398. data/db/migrate/20140718133010_create_spree_customer_returns.rb +9 -0
  399. data/db/migrate/20140718133349_add_customer_return_id_to_return_item.rb +6 -0
  400. data/db/migrate/20140718195325_create_friendly_id_slugs.rb +15 -0
  401. data/db/migrate/20140723004419_rename_spree_refund_return_authorization_id.rb +5 -0
  402. data/db/migrate/20140723152808_increase_return_item_pre_tax_amount_precision.rb +13 -0
  403. data/db/migrate/20140723214541_copy_product_slugs_to_slug_history.rb +15 -0
  404. data/db/migrate/20140725131539_create_spree_reimbursements.rb +21 -0
  405. data/db/migrate/20140728225422_add_promotionable_to_spree_products.rb +5 -0
  406. data/db/migrate/20140729133613_add_exchange_inventory_unit_foreign_keys.rb +7 -0
  407. data/db/migrate/20140730155938_add_acceptance_status_errors_to_return_item.rb +5 -0
  408. data/db/migrate/20140731150017_create_spree_reimbursement_types.rb +20 -0
  409. data/db/migrate/20140804185157_add_default_to_shipment_cost.rb +10 -0
  410. data/db/migrate/20140805171035_add_default_to_spree_credit_cards.rb +5 -0
  411. data/db/migrate/20140805171219_make_existing_credit_cards_default.rb +10 -0
  412. data/db/migrate/20140806144901_add_type_to_reimbursement_type.rb +9 -0
  413. data/db/migrate/20140808184039_create_spree_reimbursement_credits.rb +10 -0
  414. data/db/migrate/20140827170513_add_meta_title_to_spree_products.rb +7 -0
  415. data/db/migrate/20140924164824_add_code_to_spree_tax_categories.rb +5 -0
  416. data/db/migrate/20140927193717_default_pre_tax_amount_should_be_zero.rb +6 -0
  417. data/db/migrate/20141002191113_add_code_to_spree_shipping_methods.rb +5 -0
  418. data/db/migrate/20141007230328_add_cancel_audit_fields_to_spree_orders.rb +6 -0
  419. data/db/migrate/20141009204607_add_store_id_to_orders.rb +8 -0
  420. data/db/migrate/20141012083513_create_spree_taxons_prototypes.rb +8 -0
  421. data/db/migrate/20141021194502_add_state_lock_version_to_order.rb +5 -0
  422. data/db/migrate/20141023005240_add_counter_cache_from_spree_variants_to_spree_stock_items.rb +8 -0
  423. data/db/migrate/20141101231208_fix_adjustment_order_presence.rb +13 -0
  424. data/db/migrate/20141105213646_update_classifications_positions.rb +9 -0
  425. data/db/migrate/20141120135441_add_guest_token_index_to_spree_orders.rb +5 -0
  426. data/db/migrate/20141231151320_add_default_column_to_price.rb +5 -0
  427. data/db/migrate/20150112194216_add_position_to_stock_location.rb +5 -0
  428. data/db/migrate/20150113002122_create_spree_promotion_codes.rb +13 -0
  429. data/db/migrate/20150113002123_create_adjustment_promotion_code_association.rb +6 -0
  430. data/db/migrate/20150121202544_add_restock_inventory_to_stock_location.rb +5 -0
  431. data/db/migrate/20150122202432_add_code_to_spree_promotion_categories.rb +5 -0
  432. data/db/migrate/20150127161843_create_order_stock_locations.rb +12 -0
  433. data/db/migrate/20150203151219_add_fulfillable_to_stock_location.rb +5 -0
  434. data/db/migrate/20150205210527_add_code_to_refund_reason.rb +5 -0
  435. data/db/migrate/20150213160148_add_promotion_code_id_to_orders_promotions.rb +7 -0
  436. data/db/migrate/20150213163612_add_approver_name_to_spree_orders.rb +5 -0
  437. data/db/migrate/20150225205344_move_promotion_code_to_promotion_code_value.rb +65 -0
  438. data/db/migrate/20150226195213_downcase_promotion_codes_values.rb +11 -0
  439. data/db/migrate/20150227161934_add_order_ids_to_adjustments_where_missing.rb +9 -0
  440. data/db/migrate/20150303212749_add_per_code_usage_limit_to_promotions.rb +5 -0
  441. data/db/migrate/20150303212826_remove_usage_limit_from_promotion_codes.rb +5 -0
  442. data/db/migrate/20150304211616_add_timestamps_to_order_promotions.rb +6 -0
  443. data/db/migrate/20150305043021_create_spree_cartons.rb +24 -0
  444. data/db/migrate/20150305210403_add_timestamps_to_spree_roles_users.rb +7 -0
  445. data/db/migrate/20150313140507_remove_considered_risky_from_spree_orders.rb +5 -0
  446. data/db/migrate/20150313192827_add_index_to_inventory_units_carton_id.rb +5 -0
  447. data/db/migrate/20150313201235_add_imported_from_shipment_id_to_cartons.rb +8 -0
  448. data/db/migrate/20150313201503_copy_shipped_shipments_to_cartons.rb +13 -0
  449. data/db/migrate/20150330144639_create_spree_user_stock_locations.rb +10 -0
  450. data/db/migrate/20150331134544_add_stock_location_code.rb +5 -0
  451. data/db/migrate/20150402210430_create_unit_cancels.rb +10 -0
  452. data/db/migrate/20150407173305_add_fields_to_stock_transfer.rb +12 -0
  453. data/db/migrate/20150407173531_create_transfer_items.rb +14 -0
  454. data/db/migrate/20150424143547_drop_stock_transfer_type.rb +10 -0
  455. data/db/migrate/20150424161102_add_stock_transfer_finalized_at.rb +8 -0
  456. data/db/migrate/20150429125822_rename_stock_transfer_reference.rb +5 -0
  457. data/db/migrate/20150430233803_create_line_item_actions.rb +10 -0
  458. data/db/migrate/20150506181159_create_spree_store_credit_categories.rb +10 -0
  459. data/db/migrate/20150506181244_create_spree_store_credits.rb +19 -0
  460. data/db/migrate/20150506181539_create_spree_store_credit_events.rb +17 -0
  461. data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +13 -0
  462. data/db/migrate/20150506181715_create_store_credit_types.rb +17 -0
  463. data/db/migrate/20150506182045_create_store_credit_reimbursement_type.rb +5 -0
  464. data/db/migrate/20150508044622_add_resellable_to_return_items.rb +5 -0
  465. data/db/migrate/20150514185559_add_invalidated_at_to_spree_store_credits.rb +5 -0
  466. data/db/migrate/20150514201836_migrate_deleted_store_credits_to_invalidated.rb +13 -0
  467. data/db/migrate/20150515170322_add_check_stock_on_transfer.rb +5 -0
  468. data/db/migrate/20150528125647_delete_inventory_units_without_shipment.rb +25 -0
  469. data/db/migrate/20150601191251_add_deleted_at_to_stock_transfers.rb +5 -0
  470. data/db/migrate/20150601204148_add_deleted_at_to_transfer_items.rb +5 -0
  471. data/db/migrate/20150609193231_add_preferences_to_promotion_actions.rb +5 -0
  472. data/db/migrate/20150610182638_add_id_to_spree_option_values_variants.rb +5 -0
  473. data/db/migrate/20150611200247_add_frontend_viewable_to_spree_orders.rb +5 -0
  474. data/db/migrate/20150612205731_remove_spree_configurations.rb +15 -0
  475. data/db/migrate/20150618191713_remove_credit_card_address_id.rb +7 -0
  476. data/db/migrate/20150626214817_remove_counter_cache_from_spree_variants_to_spree_stock_items.rb +10 -0
  477. data/db/seeds.rb +5 -0
  478. data/lib/generators/spree/custom_user/custom_user_generator.rb +56 -0
  479. data/lib/generators/spree/custom_user/templates/authentication_helpers.rb.tt +36 -0
  480. data/lib/generators/spree/custom_user/templates/initializer.rb.tt +1 -0
  481. data/lib/generators/spree/custom_user/templates/migration.rb.tt +7 -0
  482. data/lib/generators/spree/dummy/dummy_generator.rb +140 -0
  483. data/lib/generators/spree/dummy/templates/initializers/custom_user.rb +1 -0
  484. data/lib/generators/spree/dummy/templates/initializers/devise.rb +3 -0
  485. data/lib/generators/spree/dummy/templates/rails/application.rb +10 -0
  486. data/lib/generators/spree/dummy/templates/rails/boot.rb +6 -0
  487. data/lib/generators/spree/dummy/templates/rails/database.yml +65 -0
  488. data/lib/generators/spree/dummy/templates/rails/routes.rb +2 -0
  489. data/lib/generators/spree/dummy/templates/rails/script/rails +6 -0
  490. data/lib/generators/spree/dummy/templates/rails/test.rb +34 -0
  491. data/lib/generators/spree/install/install_generator.rb +191 -0
  492. data/lib/generators/spree/install/templates/config/initializers/spree.rb +41 -0
  493. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/backend/all.js +13 -0
  494. data/lib/generators/spree/install/templates/vendor/assets/javascripts/spree/frontend/all.js +13 -0
  495. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/backend/all.css +12 -0
  496. data/lib/generators/spree/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +12 -0
  497. data/lib/solidus_core.rb +1 -0
  498. data/lib/spree/core.rb +95 -0
  499. data/lib/spree/core/controller_helpers/auth.rb +83 -0
  500. data/lib/spree/core/controller_helpers/common.rb +74 -0
  501. data/lib/spree/core/controller_helpers/order.rb +106 -0
  502. data/lib/spree/core/controller_helpers/respond_with.rb +65 -0
  503. data/lib/spree/core/controller_helpers/search.rb +14 -0
  504. data/lib/spree/core/controller_helpers/store.rb +19 -0
  505. data/lib/spree/core/controller_helpers/strong_parameters.rb +42 -0
  506. data/lib/spree/core/delegate_belongs_to.rb +95 -0
  507. data/lib/spree/core/engine.rb +114 -0
  508. data/lib/spree/core/environment.rb +15 -0
  509. data/lib/spree/core/environment/calculators.rb +12 -0
  510. data/lib/spree/core/environment_extension.rb +25 -0
  511. data/lib/spree/core/importer.rb +9 -0
  512. data/lib/spree/core/importer/order.rb +202 -0
  513. data/lib/spree/core/importer/product.rb +62 -0
  514. data/lib/spree/core/permalinks.rb +71 -0
  515. data/lib/spree/core/product_duplicator.rb +74 -0
  516. data/lib/spree/core/product_filters.rb +194 -0
  517. data/lib/spree/core/routes.rb +46 -0
  518. data/lib/spree/core/search/base.rb +97 -0
  519. data/lib/spree/core/search/variant.rb +46 -0
  520. data/lib/spree/core/unreturned_item_charger.rb +102 -0
  521. data/lib/spree/core/validators/email.rb +7 -0
  522. data/lib/spree/core/version.rb +5 -0
  523. data/lib/spree/i18n.rb +37 -0
  524. data/lib/spree/i18n/base.rb +17 -0
  525. data/lib/spree/i18n/initializer.rb +1 -0
  526. data/lib/spree/localized_number.rb +24 -0
  527. data/lib/spree/migrations.rb +76 -0
  528. data/lib/spree/money.rb +72 -0
  529. data/lib/spree/permitted_attributes.rb +114 -0
  530. data/lib/spree/promo/environment.rb +9 -0
  531. data/lib/spree/responder.rb +45 -0
  532. data/lib/spree/testing_support/ability_helpers.rb +105 -0
  533. data/lib/spree/testing_support/authorization_helpers.rb +63 -0
  534. data/lib/spree/testing_support/bar_ability.rb +14 -0
  535. data/lib/spree/testing_support/caching.rb +47 -0
  536. data/lib/spree/testing_support/capybara_ext.rb +163 -0
  537. data/lib/spree/testing_support/common_rake.rb +40 -0
  538. data/lib/spree/testing_support/controller_requests.rb +83 -0
  539. data/lib/spree/testing_support/extension_rake.rb +10 -0
  540. data/lib/spree/testing_support/factories.rb +20 -0
  541. data/lib/spree/testing_support/factories/address_factory.rb +22 -0
  542. data/lib/spree/testing_support/factories/adjustment_factory.rb +26 -0
  543. data/lib/spree/testing_support/factories/calculator_factory.rb +24 -0
  544. data/lib/spree/testing_support/factories/carton_factory.rb +21 -0
  545. data/lib/spree/testing_support/factories/country_factory.rb +9 -0
  546. data/lib/spree/testing_support/factories/credit_card_factory.rb +10 -0
  547. data/lib/spree/testing_support/factories/customer_return_factory.rb +31 -0
  548. data/lib/spree/testing_support/factories/inventory_unit_factory.rb +10 -0
  549. data/lib/spree/testing_support/factories/line_item_factory.rb +14 -0
  550. data/lib/spree/testing_support/factories/options_factory.rb +13 -0
  551. data/lib/spree/testing_support/factories/order_factory.rb +100 -0
  552. data/lib/spree/testing_support/factories/order_promotion_factory.rb +6 -0
  553. data/lib/spree/testing_support/factories/payment_factory.rb +28 -0
  554. data/lib/spree/testing_support/factories/payment_method_factory.rb +27 -0
  555. data/lib/spree/testing_support/factories/price_factory.rb +7 -0
  556. data/lib/spree/testing_support/factories/product_factory.rb +36 -0
  557. data/lib/spree/testing_support/factories/product_option_type_factory.rb +6 -0
  558. data/lib/spree/testing_support/factories/product_property_factory.rb +6 -0
  559. data/lib/spree/testing_support/factories/promotion_category_factory.rb +6 -0
  560. data/lib/spree/testing_support/factories/promotion_code_factory.rb +6 -0
  561. data/lib/spree/testing_support/factories/promotion_factory.rb +62 -0
  562. data/lib/spree/testing_support/factories/property_factory.rb +6 -0
  563. data/lib/spree/testing_support/factories/prototype_factory.rb +6 -0
  564. data/lib/spree/testing_support/factories/refund_factory.rb +14 -0
  565. data/lib/spree/testing_support/factories/reimbursement_factory.rb +16 -0
  566. data/lib/spree/testing_support/factories/reimbursement_type_factory.rb +7 -0
  567. data/lib/spree/testing_support/factories/return_authorization_factory.rb +18 -0
  568. data/lib/spree/testing_support/factories/return_item_factory.rb +16 -0
  569. data/lib/spree/testing_support/factories/role_factory.rb +9 -0
  570. data/lib/spree/testing_support/factories/shipment_factory.rb +28 -0
  571. data/lib/spree/testing_support/factories/shipping_category_factory.rb +5 -0
  572. data/lib/spree/testing_support/factories/shipping_method_factory.rb +25 -0
  573. data/lib/spree/testing_support/factories/state_factory.rb +13 -0
  574. data/lib/spree/testing_support/factories/stock_factory.rb +31 -0
  575. data/lib/spree/testing_support/factories/stock_item_factory.rb +9 -0
  576. data/lib/spree/testing_support/factories/stock_location_factory.rb +28 -0
  577. data/lib/spree/testing_support/factories/stock_movement_factory.rb +11 -0
  578. data/lib/spree/testing_support/factories/stock_transfer_factory.rb +28 -0
  579. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +6 -0
  580. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +15 -0
  581. data/lib/spree/testing_support/factories/store_credit_factory.rb +10 -0
  582. data/lib/spree/testing_support/factories/store_credit_type_factory.rb +13 -0
  583. data/lib/spree/testing_support/factories/store_factory.rb +8 -0
  584. data/lib/spree/testing_support/factories/tax_category_factory.rb +7 -0
  585. data/lib/spree/testing_support/factories/tax_rate_factory.rb +8 -0
  586. data/lib/spree/testing_support/factories/taxon_factory.rb +7 -0
  587. data/lib/spree/testing_support/factories/taxonomy_factory.rb +5 -0
  588. data/lib/spree/testing_support/factories/tracker_factory.rb +7 -0
  589. data/lib/spree/testing_support/factories/user_factory.rb +22 -0
  590. data/lib/spree/testing_support/factories/variant_factory.rb +39 -0
  591. data/lib/spree/testing_support/factories/zone_factory.rb +17 -0
  592. data/lib/spree/testing_support/flash.rb +27 -0
  593. data/lib/spree/testing_support/i18n.rb +98 -0
  594. data/lib/spree/testing_support/mail.rb +20 -0
  595. data/lib/spree/testing_support/order_walkthrough.rb +78 -0
  596. data/lib/spree/testing_support/preferences.rb +29 -0
  597. data/lib/spree/testing_support/rspec-activemodel-mocks_patch.rb +8 -0
  598. data/lib/spree/testing_support/url_helpers.rb +9 -0
  599. data/lib/spree_core.rb +1 -0
  600. data/lib/tasks/core.rake +101 -0
  601. data/lib/tasks/email.rake +7 -0
  602. data/lib/tasks/exchanges.rake +48 -0
  603. data/lib/tasks/migrations/copy_shipped_shipments_to_cartons.rake +180 -0
  604. data/lib/tasks/order_capturing.rake +23 -0
  605. data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
  606. data/vendor/assets/javascripts/jquery.payment.js +497 -0
  607. data/vendor/assets/javascripts/jsuri.js +2 -0
  608. data/vendor/assets/stylesheets/normalize.css +375 -0
  609. data/vendor/assets/stylesheets/skeleton.css +242 -0
  610. metadata +993 -0
@@ -0,0 +1,16 @@
1
+ module Spree
2
+ class ReturnItem::EligibilityValidator::TimeSincePurchase < Spree::ReturnItem::EligibilityValidator::BaseValidator
3
+ def eligible_for_return?
4
+ if (@return_item.inventory_unit.order.completed_at + Spree::Config[:return_eligibility_number_of_days].days) > Time.now
5
+ return true
6
+ else
7
+ add_error(:number_of_days, Spree.t('return_item_time_period_ineligible'))
8
+ return false
9
+ end
10
+ end
11
+
12
+ def requires_manual_intervention?
13
+ false
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,34 @@
1
+ module Spree
2
+ module ReturnItem::ExchangeVariantEligibility
3
+ class SameOptionValue
4
+ class_attribute :option_type_restrictions
5
+ self.option_type_restrictions = []
6
+ # This can be configured in an initializer, e.g.:
7
+ # Spree::ReturnItem::ExchangeVariantEligibility::SameOptionValue.option_type_restrictions = ["size", "color"]
8
+ #
9
+ # This restriction causes only variants that share the same option value for the
10
+ # specified option types to be returned. e.g.:
11
+ #
12
+ # option_type_restrictions = ["color", "waist"]
13
+ # Variant: blue pants with 32 waist and 30 inseam
14
+ #
15
+ # can be exchanged for:
16
+ # blue pants with 32 waist and 31 inseam
17
+ #
18
+ # cannot be exchanged for:
19
+ # green pants with 32 waist and 30 inseam
20
+ # blue pants with 34 waist and 32 inseam
21
+
22
+ def self.eligible_variants(variant)
23
+ product_variants = SameProduct.eligible_variants(variant).includes(option_values: :option_type)
24
+
25
+ relevant_option_values = variant.option_values.select { |ov| option_type_restrictions.include? ov.option_type.name }
26
+ if relevant_option_values.present?
27
+ product_variants.select { |v| (relevant_option_values & v.option_values) == relevant_option_values }
28
+ else
29
+ product_variants
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,9 @@
1
+ module Spree
2
+ module ReturnItem::ExchangeVariantEligibility
3
+ class SameProduct
4
+ def self.eligible_variants(variant)
5
+ Spree::Variant.where(product_id: variant.product_id, is_master: variant.is_master?).in_stock
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,8 @@
1
+ module Spree
2
+ class ReturnsCalculator < Calculator
3
+
4
+ def compute(return_item)
5
+ raise NotImplementedError, "Please implement 'compute(return_item)' in your calculator: #{self.class.name}"
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,10 @@
1
+ module Spree
2
+ class Role < Spree::Base
3
+ has_many :role_users, class_name: "Spree::RoleUser"
4
+ has_many :users, through: :role_users
5
+
6
+ def admin?
7
+ name == "admin"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ module Spree
2
+ class RoleUser < ActiveRecord::Base
3
+ self.table_name = "spree_roles_users"
4
+ belongs_to :role, class_name: "Spree::Role"
5
+ belongs_to :user, class_name: Spree.user_class.to_s
6
+
7
+ after_save :generate_admin_api_key
8
+
9
+ private
10
+
11
+ def generate_admin_api_key
12
+ if role.admin? && user.respond_to?(:spree_api_key) && !user.spree_api_key
13
+ user.generate_spree_api_key!
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,427 @@
1
+ require 'ostruct'
2
+
3
+ module Spree
4
+ class Shipment < Spree::Base
5
+ belongs_to :order, class_name: 'Spree::Order', touch: true, inverse_of: :shipments
6
+
7
+ belongs_to :order, class_name: 'Spree::Order', touch: true, inverse_of: :shipments
8
+ belongs_to :address, class_name: 'Spree::Address', inverse_of: :shipments
9
+ belongs_to :stock_location, class_name: 'Spree::StockLocation'
10
+
11
+ has_many :adjustments, as: :adjustable, inverse_of: :adjustable, dependent: :delete_all
12
+ has_many :inventory_units, dependent: :destroy, inverse_of: :shipment
13
+ has_many :shipping_rates, -> { order('cost ASC') }, dependent: :delete_all
14
+ has_many :shipping_methods, through: :shipping_rates
15
+ has_many :state_changes, as: :stateful
16
+ has_many :cartons, -> { uniq }, through: :inventory_units
17
+
18
+ after_save :update_adjustments
19
+
20
+ before_validation :set_cost_zero_when_nil
21
+
22
+ # TODO remove the suppress_mailer temporary variable once we are calling 'ship'
23
+ # from outside of the state machine and can actually pass variables through.
24
+ attr_accessor :special_instructions, :suppress_mailer
25
+
26
+ accepts_nested_attributes_for :address
27
+ accepts_nested_attributes_for :inventory_units
28
+
29
+ make_permalink field: :number, length: 11, prefix: 'H'
30
+
31
+ scope :pending, -> { with_state('pending') }
32
+ scope :ready, -> { with_state('ready') }
33
+ scope :shipped, -> { with_state('shipped') }
34
+ scope :trackable, -> { where("tracking IS NOT NULL AND tracking != ''") }
35
+ scope :with_state, ->(*s) { where(state: s) }
36
+ # sort by most recent shipped_at, falling back to created_at. add "id desc" to make specs that involve this scope more deterministic.
37
+ scope :reverse_chronological, -> { order('coalesce(spree_shipments.shipped_at, spree_shipments.created_at) desc', id: :desc) }
38
+
39
+ # shipment state machine (see http://github.com/pluginaweek/state_machine/tree/master for details)
40
+ state_machine initial: :pending, use_transactions: false do
41
+ event :ready do
42
+ transition from: :pending, to: :shipped, if: :can_transition_from_pending_to_shipped?
43
+ transition from: :pending, to: :ready, if: :can_transition_from_pending_to_ready?
44
+ end
45
+
46
+ event :pend do
47
+ transition from: :ready, to: :pending
48
+ end
49
+
50
+ event :ship do
51
+ transition from: [:ready, :canceled], to: :shipped
52
+ end
53
+ after_transition to: :shipped, do: :after_ship
54
+
55
+ event :cancel do
56
+ transition to: :canceled, from: [:pending, :ready]
57
+ end
58
+ after_transition to: :canceled, do: :after_cancel
59
+
60
+ event :resume do
61
+ transition from: :canceled, to: :ready, if: :can_transition_from_canceled_to_ready?
62
+ transition from: :canceled, to: :pending
63
+ end
64
+ after_transition from: :canceled, to: [:pending, :ready, :shipped], do: :after_resume
65
+
66
+ after_transition do |shipment, transition|
67
+ shipment.state_changes.create!(
68
+ previous_state: transition.from,
69
+ next_state: transition.to,
70
+ name: 'shipment',
71
+ )
72
+ end
73
+ end
74
+
75
+ def can_transition_from_pending_to_shipped?
76
+ !requires_shipment?
77
+ end
78
+
79
+ def can_transition_from_pending_to_ready?
80
+ order.can_ship? && !inventory_units.any?(&:backordered?) &&
81
+ (order.paid? || !Spree::Config[:require_payment_to_ship])
82
+ end
83
+
84
+ def can_transition_from_canceled_to_ready?
85
+ can_transition_from_pending_to_ready?
86
+ end
87
+
88
+ extend DisplayMoney
89
+ money_methods :cost, :discounted_cost, :final_price, :item_cost
90
+ alias display_amount display_cost
91
+
92
+ def add_shipping_method(shipping_method, selected = false)
93
+ shipping_rates.create(shipping_method: shipping_method, selected: selected, cost: cost)
94
+ end
95
+
96
+ def after_cancel
97
+ manifest.each { |item| manifest_restock(item) }
98
+ end
99
+
100
+ def after_resume
101
+ manifest.each { |item| manifest_unstock(item) }
102
+ end
103
+
104
+ def backordered?
105
+ inventory_units.any? { |inventory_unit| inventory_unit.backordered? }
106
+ end
107
+
108
+ def currency
109
+ order ? order.currency : Spree::Config[:currency]
110
+ end
111
+
112
+ def discounted_cost
113
+ cost + promo_total
114
+ end
115
+ alias discounted_amount discounted_cost
116
+
117
+
118
+ def editable_by?(user)
119
+ !shipped?
120
+ end
121
+
122
+ def final_price
123
+ cost + adjustment_total
124
+ end
125
+
126
+ def final_price_with_items
127
+ item_cost + final_price
128
+ end
129
+
130
+ def finalize!
131
+ InventoryUnit.finalize_units!(inventory_units)
132
+ manifest.each { |item| manifest_unstock(item) }
133
+ end
134
+
135
+ def include?(variant)
136
+ inventory_units_for(variant).present?
137
+ end
138
+
139
+ def inventory_units_for(variant)
140
+ inventory_units.where(variant_id: variant.id)
141
+ end
142
+
143
+ def inventory_units_for_item(line_item, variant = nil)
144
+ inventory_units.where(line_item_id: line_item.id, variant_id: line_item.variant.id || variant.id)
145
+ end
146
+
147
+ def item_cost
148
+ line_items.map(&:final_amount).sum
149
+ end
150
+
151
+ def line_items
152
+ inventory_units.includes(:line_item).map(&:line_item).uniq
153
+ end
154
+
155
+ def process_order_payments
156
+ pending_payments = order.pending_payments
157
+ .sort_by(&:uncaptured_amount).reverse
158
+
159
+ shipment_to_pay = final_price_with_items
160
+ payments_amount = 0
161
+
162
+ payments_pool = pending_payments.each_with_object([]) do |payment, pool|
163
+ break if payments_amount >= shipment_to_pay
164
+ payments_amount += payment.uncaptured_amount
165
+ pool << payment
166
+ end
167
+
168
+ payments_pool.each do |payment|
169
+ capturable_amount = if payment.amount >= shipment_to_pay
170
+ shipment_to_pay
171
+ else
172
+ payment.amount
173
+ end
174
+
175
+ cents = (capturable_amount * 100).to_i
176
+ payment.capture!(cents)
177
+ shipment_to_pay -= capturable_amount
178
+ end
179
+ end
180
+
181
+ def line_items
182
+ inventory_units.includes(:line_item).map(&:line_item).uniq
183
+ end
184
+
185
+ def ready_or_pending?
186
+ self.ready? || self.pending?
187
+ end
188
+
189
+ def refresh_rates
190
+ return shipping_rates if shipped? || order.completed?
191
+ return [] unless can_get_rates?
192
+
193
+ # StockEstimator.new assigment below will replace the current shipping_method
194
+ original_shipping_method_id = shipping_method.try!(:id)
195
+
196
+ new_rates = Stock::Estimator.new(order).shipping_rates(to_package)
197
+
198
+ # If one of the new rates matches the previously selected shipping
199
+ # method, select that instead of the default provided by the estimator.
200
+ # Otherwise, keep the default.
201
+ selected_rate = new_rates.detect{ |rate| rate.shipping_method_id == original_shipping_method_id }
202
+ if selected_rate
203
+ new_rates.each do |rate|
204
+ rate.selected = (rate == selected_rate)
205
+ end
206
+ end
207
+
208
+ self.shipping_rates = new_rates
209
+ self.save!
210
+
211
+ shipping_rates
212
+ end
213
+
214
+ def selected_shipping_rate
215
+ shipping_rates.detect(&:selected?)
216
+ end
217
+
218
+ def manifest
219
+ @manifest ||= Spree::ShippingManifest.new(inventory_units: inventory_units).items
220
+ end
221
+
222
+ def selected_shipping_rate_id
223
+ selected_shipping_rate.try(:id)
224
+ end
225
+
226
+ def selected_shipping_rate_id=(id)
227
+ shipping_rates.update_all(selected: false)
228
+ shipping_rates.update(id, selected: true)
229
+ self.save!
230
+ end
231
+
232
+ # Determines the appropriate +state+ according to the following logic:
233
+ #
234
+ # canceled if order is canceled
235
+ # pending unless order is complete and +order.payment_state+ is +paid+
236
+ # shipped if already shipped (ie. does not change the state)
237
+ # ready all other cases
238
+ def determine_state(order)
239
+ return 'canceled' if order.canceled?
240
+ return 'pending' unless order.can_ship?
241
+ return 'pending' if inventory_units.any? &:backordered?
242
+ return 'shipped' if state == 'shipped'
243
+ if order.paid? || !Spree::Config[:require_payment_to_ship]
244
+ 'ready'
245
+ else
246
+ 'pending'
247
+ end
248
+ end
249
+
250
+ def set_up_inventory(state, variant, order, line_item)
251
+ self.inventory_units.create(
252
+ state: state,
253
+ variant_id: variant.id,
254
+ order_id: order.id,
255
+ line_item_id: line_item.id
256
+ )
257
+ end
258
+
259
+ def shipped=(value)
260
+ return unless value == '1' && shipped_at.nil?
261
+ self.shipped_at = Time.now
262
+ end
263
+
264
+ def shipping_method
265
+ selected_shipping_rate.try(:shipping_method) || shipping_rates.first.try(:shipping_method)
266
+ end
267
+
268
+ def tax_category
269
+ selected_shipping_rate.try(:tax_rate).try(:tax_category)
270
+ end
271
+
272
+ # Only one of either included_tax_total or additional_tax_total is set
273
+ # This method returns the total of the two. Saves having to check if
274
+ # tax is included or additional.
275
+ def tax_total
276
+ included_tax_total + additional_tax_total
277
+ end
278
+
279
+ def to_package
280
+ package = Stock::Package.new(stock_location)
281
+ inventory_units.includes(:variant).joins(:variant).group_by(&:state).each do |state, state_inventory_units|
282
+ package.add_multiple state_inventory_units, state.to_sym
283
+ end
284
+ package
285
+ end
286
+
287
+ def to_param
288
+ number
289
+ end
290
+
291
+ def tracking_url
292
+ @tracking_url ||= shipping_method.build_tracking_url(tracking)
293
+ end
294
+
295
+ def update_amounts
296
+ if selected_shipping_rate
297
+ self.update_columns(
298
+ cost: selected_shipping_rate.cost,
299
+ adjustment_total: adjustments.additional.map(&:update!).compact.sum,
300
+ updated_at: Time.now,
301
+ )
302
+ end
303
+ end
304
+
305
+ # Update Shipment and make sure Order states follow the shipment changes
306
+ def update_attributes_and_order(params = {})
307
+ if self.update_attributes params
308
+ if params.has_key? :selected_shipping_rate_id
309
+ # Changing the selected Shipping Rate won't update the cost (for now)
310
+ # so we persist the Shipment#cost before calculating order shipment
311
+ # total and updating payment state (given a change in shipment cost
312
+ # might change the Order#payment_state)
313
+ self.update_amounts
314
+
315
+ order.updater.update_shipment_total
316
+ order.updater.update_payment_state
317
+
318
+ # Update shipment state only after order total is updated because it
319
+ # (via Order#paid?) affects the shipment state (YAY)
320
+ self.update_columns(
321
+ state: determine_state(order),
322
+ updated_at: Time.now
323
+ )
324
+
325
+ # And then it's time to update shipment states and finally persist
326
+ # order changes
327
+ order.updater.update_shipment_state
328
+ order.updater.persist_totals
329
+ end
330
+
331
+ true
332
+ end
333
+ end
334
+
335
+ # Updates various aspects of the Shipment while bypassing any callbacks. Note that this method takes an explicit reference to the
336
+ # Order object. This is necessary because the association actually has a stale (and unsaved) copy of the Order and so it will not
337
+ # yield the correct results.
338
+ def update!(order)
339
+ old_state = state
340
+ new_state = determine_state(order)
341
+ update_columns(
342
+ state: new_state,
343
+ updated_at: Time.now,
344
+ )
345
+ after_ship if new_state == 'shipped' and old_state != 'shipped'
346
+ end
347
+
348
+ def transfer_to_location(variant, quantity, stock_location)
349
+ if quantity <= 0
350
+ raise ArgumentError
351
+ end
352
+
353
+ transaction do
354
+ new_shipment = order.shipments.create!(stock_location: stock_location)
355
+
356
+ order.contents.remove(variant, quantity, {shipment: self})
357
+ order.contents.add(variant, quantity, {shipment: new_shipment})
358
+
359
+ refresh_rates
360
+ save!
361
+ new_shipment.save!
362
+ end
363
+ end
364
+
365
+ def transfer_to_shipment(variant, quantity, shipment_to_transfer_to)
366
+ quantity_already_shipment_to_transfer_to = shipment_to_transfer_to.manifest.find{|mi| mi.line_item.variant == variant}.try(:quantity) || 0
367
+ final_quantity = quantity + quantity_already_shipment_to_transfer_to
368
+
369
+ if (quantity <= 0 || self == shipment_to_transfer_to)
370
+ raise ArgumentError
371
+ end
372
+
373
+ transaction do
374
+ order.contents.remove(variant, quantity, {shipment: self})
375
+ order.contents.add(variant, quantity, {shipment: shipment_to_transfer_to})
376
+
377
+ refresh_rates
378
+ save!
379
+ shipment_to_transfer_to.refresh_rates
380
+ shipment_to_transfer_to.save!
381
+ end
382
+ end
383
+
384
+ def requires_shipment?
385
+ !stock_location || stock_location.fulfillable?
386
+ end
387
+
388
+ private
389
+
390
+ def after_ship
391
+ order.shipping.ship_shipment(self, suppress_mailer: suppress_mailer)
392
+ end
393
+
394
+ def can_get_rates?
395
+ order.ship_address && order.ship_address.valid?
396
+ end
397
+
398
+ def manifest_restock(item)
399
+ if item.states["on_hand"].to_i > 0
400
+ stock_location.restock item.variant, item.states["on_hand"], self
401
+ end
402
+
403
+ if item.states["backordered"].to_i > 0
404
+ stock_location.restock_backordered item.variant, item.states["backordered"]
405
+ end
406
+ end
407
+
408
+ def manifest_unstock(item)
409
+ stock_location.unstock item.variant, item.quantity, self
410
+ end
411
+
412
+ def recalculate_adjustments
413
+ Spree::ItemAdjustments.new(self).update
414
+ end
415
+
416
+ def set_cost_zero_when_nil
417
+ self.cost = 0 unless self.cost
418
+ end
419
+
420
+ def update_adjustments
421
+ if cost_changed? && state != 'shipped'
422
+ recalculate_adjustments
423
+ end
424
+ end
425
+
426
+ end
427
+ end