spree_order_reporting 0.0.1

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 (362) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +26 -0
  3. data/README.md +100 -0
  4. data/Rakefile +38 -0
  5. data/app/assets/javascripts/spree/backend/order_reporting.js +2 -0
  6. data/app/assets/javascripts/spree/frontend/order_reporting.js +2 -0
  7. data/app/assets/stylesheets/spree/backend/order_reporting.css +4 -0
  8. data/app/assets/stylesheets/spree/frontend/order_reporting.css +4 -0
  9. data/app/jobs/order_reporting/recurring_report_delayed_job.rb +11 -0
  10. data/config/locales/en.yml +5 -0
  11. data/config/routes.rb +3 -0
  12. data/lib/generators/order_reporting/install/install_generator.rb +30 -0
  13. data/lib/order_reporting.rb +27 -0
  14. data/lib/order_reporting/engine.rb +20 -0
  15. data/lib/order_reporting/factories.rb +6 -0
  16. data/lib/order_reporting/queries/latest_orders_query.rb +7 -0
  17. data/lib/order_reporting/report.rb +25 -0
  18. data/lib/order_reporting/schedulers/delayed_job_scheduler.rb +8 -0
  19. data/lib/order_reporting/version.rb +3 -0
  20. data/lib/solidus_order_reporting.rb +2 -0
  21. data/lib/spree_order_reporting.rb +2 -0
  22. data/spec/dummy/README.rdoc +28 -0
  23. data/spec/dummy/Rakefile +6 -0
  24. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  25. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  26. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  27. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  28. data/spec/dummy/bin/bundle +3 -0
  29. data/spec/dummy/bin/delayed_job +5 -0
  30. data/spec/dummy/bin/rails +4 -0
  31. data/spec/dummy/bin/rake +4 -0
  32. data/spec/dummy/bin/setup +29 -0
  33. data/spec/dummy/config.ru +4 -0
  34. data/spec/dummy/config/application.rb +59 -0
  35. data/spec/dummy/config/boot.rb +6 -0
  36. data/spec/dummy/config/database.yml +12 -0
  37. data/spec/dummy/config/environment.rb +5 -0
  38. data/spec/dummy/config/environments/development.rb +41 -0
  39. data/spec/dummy/config/environments/production.rb +79 -0
  40. data/spec/dummy/config/environments/test.rb +34 -0
  41. data/spec/dummy/config/initializers/assets.rb +11 -0
  42. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  43. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  44. data/spec/dummy/config/initializers/custom_user.rb +1 -0
  45. data/spec/dummy/config/initializers/devise.rb +3 -0
  46. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  47. data/spec/dummy/config/initializers/inflections.rb +16 -0
  48. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  49. data/spec/dummy/config/initializers/session_store.rb +3 -0
  50. data/spec/dummy/config/initializers/spree.rb +57 -0
  51. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  52. data/spec/dummy/config/locales/en.yml +23 -0
  53. data/spec/dummy/config/routes.rb +9 -0
  54. data/spec/dummy/config/secrets.yml +22 -0
  55. data/spec/dummy/db/migrate/20160706112305_spree_one_two.spree.rb +482 -0
  56. data/spec/dummy/db/migrate/20160706112306_spree_promo_one_two.spree.rb +46 -0
  57. data/spec/dummy/db/migrate/20160706112307_add_tax_rate_label.spree.rb +6 -0
  58. data/spec/dummy/db/migrate/20160706112308_add_toggle_tax_rate_display.spree.rb +6 -0
  59. data/spec/dummy/db/migrate/20160706112309_remove_unused_preference_columns.spree.rb +9 -0
  60. data/spec/dummy/db/migrate/20160706112310_add_lock_version_to_variant.spree.rb +6 -0
  61. data/spec/dummy/db/migrate/20160706112311_add_states_required_to_countries.spree.rb +6 -0
  62. data/spec/dummy/db/migrate/20160706112312_add_on_demand_to_product_and_variant.spree.rb +7 -0
  63. data/spec/dummy/db/migrate/20160706112313_remove_not_null_constraint_from_products_on_hand.spree.rb +12 -0
  64. data/spec/dummy/db/migrate/20160706112314_split_prices_from_variants.spree.rb +32 -0
  65. data/spec/dummy/db/migrate/20160706112315_remove_not_null_from_spree_prices_amount.spree.rb +10 -0
  66. data/spec/dummy/db/migrate/20160706112316_add_currency_to_line_items.spree.rb +6 -0
  67. data/spec/dummy/db/migrate/20160706112317_add_currency_to_orders.spree.rb +6 -0
  68. data/spec/dummy/db/migrate/20160706112318_add_cost_currency_to_variants.spree.rb +6 -0
  69. data/spec/dummy/db/migrate/20160706112319_remove_display_on_from_payment_methods.spree.rb +6 -0
  70. data/spec/dummy/db/migrate/20160706112320_add_position_to_taxonomies.spree.rb +6 -0
  71. data/spec/dummy/db/migrate/20160706112321_add_last_ip_to_spree_orders.spree.rb +6 -0
  72. data/spec/dummy/db/migrate/20160706112322_add_state_to_spree_adjustments.spree.rb +7 -0
  73. data/spec/dummy/db/migrate/20160706112323_add_display_on_to_spree_payment_methods.spree.rb +10 -0
  74. data/spec/dummy/db/migrate/20160706112324_add_position_to_product_properties.spree.rb +7 -0
  75. data/spec/dummy/db/migrate/20160706112325_add_identifier_to_spree_payments.spree.rb +6 -0
  76. data/spec/dummy/db/migrate/20160706112326_add_order_id_index_to_payments.spree.rb +10 -0
  77. data/spec/dummy/db/migrate/20160706112327_add_primary_to_spree_products_taxons.spree.rb +6 -0
  78. data/spec/dummy/db/migrate/20160706112328_create_spree_stock_items.spree.rb +15 -0
  79. data/spec/dummy/db/migrate/20160706112329_create_spree_stock_locations.spree.rb +12 -0
  80. data/spec/dummy/db/migrate/20160706112330_create_default_stock.spree.rb +35 -0
  81. data/spec/dummy/db/migrate/20160706112331_add_order_id_index_to_shipments.spree.rb +6 -0
  82. data/spec/dummy/db/migrate/20160706112332_change_meta_description_on_spree_products_to_text.spree.rb +6 -0
  83. data/spec/dummy/db/migrate/20160706112333_add_stock_location_id_to_spree_shipments.spree.rb +6 -0
  84. data/spec/dummy/db/migrate/20160706112334_add_pending_to_inventory_unit.spree.rb +7 -0
  85. data/spec/dummy/db/migrate/20160706112335_remove_on_demand_from_product_and_variant.spree.rb +7 -0
  86. data/spec/dummy/db/migrate/20160706112336_create_shipping_method_zone.spree.rb +22 -0
  87. data/spec/dummy/db/migrate/20160706112337_remove_shipping_category_id_from_shipping_method.spree.rb +6 -0
  88. data/spec/dummy/db/migrate/20160706112338_create_shipping_method_categories.spree.rb +14 -0
  89. data/spec/dummy/db/migrate/20160706112339_add_tracking_url_to_spree_shipping_methods.spree.rb +6 -0
  90. data/spec/dummy/db/migrate/20160706112340_create_spree_shipping_rates.spree.rb +25 -0
  91. data/spec/dummy/db/migrate/20160706112341_remove_category_match_attributes_from_shipping_method.spree.rb +8 -0
  92. data/spec/dummy/db/migrate/20160706112342_create_stock_movements.spree.rb +13 -0
  93. data/spec/dummy/db/migrate/20160706112343_add_address_fields_to_stock_location.spree.rb +23 -0
  94. data/spec/dummy/db/migrate/20160706112344_add_active_field_to_stock_locations.spree.rb +6 -0
  95. data/spec/dummy/db/migrate/20160706112345_add_backorderable_to_stock_item.spree.rb +6 -0
  96. data/spec/dummy/db/migrate/20160706112346_add_default_quantity_to_stock_movement.spree.rb +6 -0
  97. data/spec/dummy/db/migrate/20160706112347_add_source_and_destination_to_stock_movements.spree.rb +9 -0
  98. data/spec/dummy/db/migrate/20160706112348_change_orders_total_precision.spree.rb +9 -0
  99. data/spec/dummy/db/migrate/20160706112349_change_spree_payments_amount_precision.spree.rb +8 -0
  100. data/spec/dummy/db/migrate/20160706112350_change_spree_return_authorization_amount_precision.spree.rb +8 -0
  101. data/spec/dummy/db/migrate/20160706112351_change_adjustments_amount_precision.spree.rb +8 -0
  102. data/spec/dummy/db/migrate/20160706112352_add_originator_to_stock_movement.spree.rb +8 -0
  103. data/spec/dummy/db/migrate/20160706112353_drop_source_and_destination_from_stock_movement.spree.rb +16 -0
  104. data/spec/dummy/db/migrate/20160706112354_migrate_inventory_unit_sold_to_on_hand.spree.rb +10 -0
  105. data/spec/dummy/db/migrate/20160706112355_add_stock_location_to_rma.spree.rb +6 -0
  106. data/spec/dummy/db/migrate/20160706112356_update_shipment_state_for_canceled_orders.spree.rb +16 -0
  107. data/spec/dummy/db/migrate/20160706112357_add_seo_metas_to_taxons.spree.rb +10 -0
  108. data/spec/dummy/db/migrate/20160706112358_remove_stock_item_and_variant_lock.spree.rb +15 -0
  109. data/spec/dummy/db/migrate/20160706112359_add_name_to_spree_credit_cards.spree.rb +6 -0
  110. data/spec/dummy/db/migrate/20160706112360_update_name_fields_on_spree_credit_cards.spree.rb +14 -0
  111. data/spec/dummy/db/migrate/20160706112361_add_index_to_source_columns_on_adjustments.spree.rb +6 -0
  112. data/spec/dummy/db/migrate/20160706112362_update_adjustment_states.spree.rb +17 -0
  113. data/spec/dummy/db/migrate/20160706112363_add_shipping_rates_to_shipments.spree.rb +16 -0
  114. data/spec/dummy/db/migrate/20160706112364_create_spree_stock_transfers.spree.rb +15 -0
  115. data/spec/dummy/db/migrate/20160706112365_drop_products_count_on_hand.spree.rb +6 -0
  116. data/spec/dummy/db/migrate/20160706112366_set_default_shipping_rate_cost.spree.rb +6 -0
  117. data/spec/dummy/db/migrate/20160706112367_add_number_to_stock_transfer.spree.rb +24 -0
  118. data/spec/dummy/db/migrate/20160706112368_add_sku_index_to_spree_variants.spree.rb +6 -0
  119. data/spec/dummy/db/migrate/20160706112369_add_backorderable_default_to_spree_stock_location.spree.rb +6 -0
  120. data/spec/dummy/db/migrate/20160706112370_add_propage_all_variants_to_spree_stock_location.spree.rb +6 -0
  121. data/spec/dummy/db/migrate/20160706112371_rename_shipping_methods_zones_to_spree_shipping_methods_zones.spree.rb +6 -0
  122. data/spec/dummy/db/migrate/20160706112372_add_user_id_index_to_spree_orders.spree.rb +6 -0
  123. data/spec/dummy/db/migrate/20160706112373_add_updated_at_to_spree_countries.spree.rb +10 -0
  124. data/spec/dummy/db/migrate/20160706112374_add_updated_at_to_spree_states.spree.rb +10 -0
  125. data/spec/dummy/db/migrate/20160706112375_add_cvv_result_code_and_cvv_result_message_to_spree_payments.spree.rb +7 -0
  126. data/spec/dummy/db/migrate/20160706112376_add_unique_index_to_permalink_on_spree_products.spree.rb +6 -0
  127. data/spec/dummy/db/migrate/20160706112377_add_unique_index_to_orders_shipments_and_stock_transfers.spree.rb +8 -0
  128. data/spec/dummy/db/migrate/20160706112378_add_deleted_at_to_spree_tax_rates.spree.rb +6 -0
  129. data/spec/dummy/db/migrate/20160706112379_remove_lock_version_from_inventory_units.spree.rb +7 -0
  130. data/spec/dummy/db/migrate/20160706112380_add_cost_price_to_line_item.spree.rb +6 -0
  131. data/spec/dummy/db/migrate/20160706112381_set_backorderable_to_default_to_false.spree.rb +7 -0
  132. data/spec/dummy/db/migrate/20160706112382_add_created_by_id_to_spree_orders.spree.rb +6 -0
  133. data/spec/dummy/db/migrate/20160706112383_index_completed_at_on_spree_orders.spree.rb +6 -0
  134. data/spec/dummy/db/migrate/20160706112384_add_tax_category_id_to_spree_line_items.spree.rb +6 -0
  135. data/spec/dummy/db/migrate/20160706112385_migrate_tax_categories_to_line_items.spree.rb +11 -0
  136. data/spec/dummy/db/migrate/20160706112386_drop_spree_mail_methods.spree.rb +13 -0
  137. data/spec/dummy/db/migrate/20160706112387_set_default_stock_location_on_shipments.spree.rb +9 -0
  138. data/spec/dummy/db/migrate/20160706112388_upgrade_adjustments.spree.rb +41 -0
  139. data/spec/dummy/db/migrate/20160706112389_rename_adjustment_fields.spree.rb +15 -0
  140. data/spec/dummy/db/migrate/20160706112390_add_admin_name_column_to_spree_shipping_methods.spree.rb +6 -0
  141. data/spec/dummy/db/migrate/20160706112391_add_admin_name_column_to_spree_stock_locations.spree.rb +6 -0
  142. data/spec/dummy/db/migrate/20160706112392_add_shipment_total_to_spree_orders.spree.rb +6 -0
  143. data/spec/dummy/db/migrate/20160706112393_expand_order_number_size.spree.rb +10 -0
  144. data/spec/dummy/db/migrate/20160706112394_rename_activators_to_promotions.spree.rb +6 -0
  145. data/spec/dummy/db/migrate/20160706112395_add_adjustment_total_to_line_items.spree.rb +6 -0
  146. data/spec/dummy/db/migrate/20160706112396_add_adjustment_total_to_shipments.spree.rb +6 -0
  147. data/spec/dummy/db/migrate/20160706112397_add_depth_to_spree_taxons.spree.rb +17 -0
  148. data/spec/dummy/db/migrate/20160706112398_add_tax_total_to_line_items_shipments_and_orders.spree.rb +9 -0
  149. data/spec/dummy/db/migrate/20160706112399_add_shipping_category_to_shipping_methods_and_products.spree.rb +16 -0
  150. data/spec/dummy/db/migrate/20160706112400_migrate_old_shipping_calculators.spree.rb +20 -0
  151. data/spec/dummy/db/migrate/20160706112401_add_code_to_spree_promotion_rules.spree.rb +6 -0
  152. data/spec/dummy/db/migrate/20160706112402_change_states_required_for_countries.spree.rb +10 -0
  153. data/spec/dummy/db/migrate/20160706112403_add_deleted_at_to_spree_stock_items.spree.rb +6 -0
  154. data/spec/dummy/db/migrate/20160706112404_remove_promotions_event_name_field.spree.rb +6 -0
  155. data/spec/dummy/db/migrate/20160706112405_add_promo_total_to_line_items_and_shipments_and_orders.spree.rb +8 -0
  156. data/spec/dummy/db/migrate/20160706112406_remove_unused_credit_card_fields.spree.rb +17 -0
  157. data/spec/dummy/db/migrate/20160706112407_add_track_inventory_to_variant.spree.rb +6 -0
  158. data/spec/dummy/db/migrate/20160706112408_add_tax_category_to_variants.spree.rb +7 -0
  159. data/spec/dummy/db/migrate/20160706112409_add_channel_to_spree_orders.spree.rb +6 -0
  160. data/spec/dummy/db/migrate/20160706112410_add_included_to_adjustments.spree.rb +6 -0
  161. data/spec/dummy/db/migrate/20160706112411_rename_tax_total_fields.spree.rb +12 -0
  162. data/spec/dummy/db/migrate/20160706112412_add_line_item_id_to_spree_inventory_units.spree.rb +22 -0
  163. data/spec/dummy/db/migrate/20160706112413_add_updated_at_to_variants.spree.rb +6 -0
  164. data/spec/dummy/db/migrate/20160706112414_add_position_to_classifications.spree.rb +6 -0
  165. data/spec/dummy/db/migrate/20160706112415_create_spree_orders_promotions.spree.rb +9 -0
  166. data/spec/dummy/db/migrate/20160706112416_unique_shipping_method_categories.spree.rb +25 -0
  167. data/spec/dummy/db/migrate/20160706112417_add_item_count_to_spree_orders.spree.rb +6 -0
  168. data/spec/dummy/db/migrate/20160706112418_remove_value_type_from_spree_preferences.spree.rb +9 -0
  169. data/spec/dummy/db/migrate/20160706112419_rename_permalink_to_slug_for_products.spree.rb +6 -0
  170. data/spec/dummy/db/migrate/20160706112420_add_index_to_variant_id_and_currency_on_prices.spree.rb +6 -0
  171. data/spec/dummy/db/migrate/20160706112421_rename_activator_id_in_rules_and_actions_to_promotion_id.spree.rb +7 -0
  172. data/spec/dummy/db/migrate/20160706112422_add_deleted_at_to_spree_prices.spree.rb +6 -0
  173. data/spec/dummy/db/migrate/20160706112423_add_approver_id_and_approved_at_to_orders.spree.rb +7 -0
  174. data/spec/dummy/db/migrate/20160706112424_add_confirmation_delivered_to_spree_orders.spree.rb +6 -0
  175. data/spec/dummy/db/migrate/20160706112425_add_auto_capture_to_payment_methods.spree.rb +6 -0
  176. data/spec/dummy/db/migrate/20160706112426_create_spree_payment_capture_events.spree.rb +13 -0
  177. data/spec/dummy/db/migrate/20160706112427_add_uncaptured_amount_to_payments.spree.rb +6 -0
  178. data/spec/dummy/db/migrate/20160706112428_default_variant_weight_to_zero.spree.rb +12 -0
  179. data/spec/dummy/db/migrate/20160706112429_add_tax_category_id_to_shipping_methods.spree.rb +6 -0
  180. data/spec/dummy/db/migrate/20160706112430_add_tax_rate_id_to_shipping_rates.spree.rb +6 -0
  181. data/spec/dummy/db/migrate/20160706112431_add_pre_tax_amount_to_line_items_and_shipments.spree.rb +7 -0
  182. data/spec/dummy/db/migrate/20160706112432_add_more_indexes.spree.rb +14 -0
  183. data/spec/dummy/db/migrate/20160706112433_add_considered_risky_to_orders.spree.rb +6 -0
  184. data/spec/dummy/db/migrate/20160706112434_add_preference_store_to_everything.spree.rb +9 -0
  185. data/spec/dummy/db/migrate/20160706112435_add_user_id_to_spree_credit_cards.spree.rb +14 -0
  186. data/spec/dummy/db/migrate/20160706112436_migrate_old_preferences.spree.rb +52 -0
  187. data/spec/dummy/db/migrate/20160706112437_create_spree_stores.spree.rb +26 -0
  188. data/spec/dummy/db/migrate/20160706112438_create_store_from_preferences.spree.rb +34 -0
  189. data/spec/dummy/db/migrate/20160706112439_add_timestamps_to_spree_assets.spree.rb +7 -0
  190. data/spec/dummy/db/migrate/20160706112440_create_spree_taxons_promotion_rules.spree.rb +9 -0
  191. data/spec/dummy/db/migrate/20160706112441_add_additional_store_fields.spree.rb +9 -0
  192. data/spec/dummy/db/migrate/20160706112442_add_many_missing_indexes.spree.rb +20 -0
  193. data/spec/dummy/db/migrate/20160706112443_correct_some_polymorphic_index_and_add_more_missing.spree.rb +66 -0
  194. data/spec/dummy/db/migrate/20160706112444_add_user_id_created_by_id_index_to_order.spree.rb +6 -0
  195. data/spec/dummy/db/migrate/20160706112445_change_spree_price_amount_precision.spree.rb +9 -0
  196. data/spec/dummy/db/migrate/20160706112446_add_token_to_spree_orders.spree.rb +6 -0
  197. data/spec/dummy/db/migrate/20160706112447_move_order_token_from_tokenized_permission.spree.rb +30 -0
  198. data/spec/dummy/db/migrate/20160706112448_set_shipment_total_for_users_upgrading.spree.rb +11 -0
  199. data/spec/dummy/db/migrate/20160706112449_drop_credit_card_first_name_and_last_name.spree.rb +7 -0
  200. data/spec/dummy/db/migrate/20160706112450_add_deleted_at_to_spree_promotion_actions.spree.rb +7 -0
  201. data/spec/dummy/db/migrate/20160706112451_remove_uncaptured_amount_from_spree_payments.spree.rb +6 -0
  202. data/spec/dummy/db/migrate/20160706112452_create_spree_refunds.spree.rb +13 -0
  203. data/spec/dummy/db/migrate/20160706112453_create_spree_return_authorization_inventory_unit.spree.rb +13 -0
  204. data/spec/dummy/db/migrate/20160706112454_rename_return_authorization_inventory_unit_to_return_items.spree.rb +6 -0
  205. data/spec/dummy/db/migrate/20160706112455_create_order_mutex.spree.rb +12 -0
  206. data/spec/dummy/db/migrate/20160706112456_backfill_line_item_pre_tax_amount.spree.rb +11 -0
  207. data/spec/dummy/db/migrate/20160706112457_recreate_spree_return_authorizations.spree.rb +56 -0
  208. data/spec/dummy/db/migrate/20160706112458_add_amount_fields_to_return_items.spree.rb +8 -0
  209. data/spec/dummy/db/migrate/20160706112459_drop_return_authorization_amount.spree.rb +6 -0
  210. data/spec/dummy/db/migrate/20160706112460_create_spree_return_authorization_reasons.spree.rb +33 -0
  211. data/spec/dummy/db/migrate/20160706112461_create_spree_refund_reasons.spree.rb +15 -0
  212. data/spec/dummy/db/migrate/20160706112462_rename_return_authorization_reason.spree.rb +6 -0
  213. data/spec/dummy/db/migrate/20160706112463_create_spree_promotion_categories.spree.rb +12 -0
  214. data/spec/dummy/db/migrate/20160706112464_drop_received_at_on_return_items.spree.rb +10 -0
  215. data/spec/dummy/db/migrate/20160706112465_add_reception_and_acceptance_status_to_return_items.spree.rb +7 -0
  216. data/spec/dummy/db/migrate/20160706112466_create_default_refund_reason.spree.rb +10 -0
  217. data/spec/dummy/db/migrate/20160706112467_add_default_to_spree_stock_locations.spree.rb +8 -0
  218. data/spec/dummy/db/migrate/20160706112468_create_spree_customer_returns.spree.rb +10 -0
  219. data/spec/dummy/db/migrate/20160706112469_add_customer_return_id_to_return_item.spree.rb +7 -0
  220. data/spec/dummy/db/migrate/20160706112470_create_friendly_id_slugs.spree.rb +16 -0
  221. data/spec/dummy/db/migrate/20160706112471_rename_spree_refund_return_authorization_id.spree.rb +6 -0
  222. data/spec/dummy/db/migrate/20160706112472_increase_return_item_pre_tax_amount_precision.spree.rb +14 -0
  223. data/spec/dummy/db/migrate/20160706112473_copy_product_slugs_to_slug_history.spree.rb +16 -0
  224. data/spec/dummy/db/migrate/20160706112474_create_spree_reimbursements.spree.rb +22 -0
  225. data/spec/dummy/db/migrate/20160706112475_add_promotionable_to_spree_products.spree.rb +6 -0
  226. data/spec/dummy/db/migrate/20160706112476_add_exchange_inventory_unit_foreign_keys.spree.rb +8 -0
  227. data/spec/dummy/db/migrate/20160706112477_add_acceptance_status_errors_to_return_item.spree.rb +6 -0
  228. data/spec/dummy/db/migrate/20160706112478_create_spree_reimbursement_types.spree.rb +21 -0
  229. data/spec/dummy/db/migrate/20160706112479_add_default_to_shipment_cost.spree.rb +11 -0
  230. data/spec/dummy/db/migrate/20160706112480_add_default_to_spree_credit_cards.spree.rb +6 -0
  231. data/spec/dummy/db/migrate/20160706112481_make_existing_credit_cards_default.spree.rb +11 -0
  232. data/spec/dummy/db/migrate/20160706112482_add_type_to_reimbursement_type.spree.rb +10 -0
  233. data/spec/dummy/db/migrate/20160706112483_create_spree_reimbursement_credits.spree.rb +11 -0
  234. data/spec/dummy/db/migrate/20160706112484_add_meta_title_to_spree_products.spree.rb +8 -0
  235. data/spec/dummy/db/migrate/20160706112485_add_code_to_spree_tax_categories.spree.rb +6 -0
  236. data/spec/dummy/db/migrate/20160706112486_default_pre_tax_amount_should_be_zero.spree.rb +7 -0
  237. data/spec/dummy/db/migrate/20160706112487_add_code_to_spree_shipping_methods.spree.rb +6 -0
  238. data/spec/dummy/db/migrate/20160706112488_add_cancel_audit_fields_to_spree_orders.spree.rb +7 -0
  239. data/spec/dummy/db/migrate/20160706112489_add_store_id_to_orders.spree.rb +13 -0
  240. data/spec/dummy/db/migrate/20160706112490_create_spree_taxons_prototypes.spree.rb +9 -0
  241. data/spec/dummy/db/migrate/20160706112491_add_counter_cache_from_spree_variants_to_spree_stock_items.spree.rb +9 -0
  242. data/spec/dummy/db/migrate/20160706112492_fix_adjustment_order_presence.spree.rb +14 -0
  243. data/spec/dummy/db/migrate/20160706112493_update_classifications_positions.spree.rb +10 -0
  244. data/spec/dummy/db/migrate/20160706112494_add_guest_token_index_to_spree_orders.spree.rb +6 -0
  245. data/spec/dummy/db/migrate/20160706112495_remove_extra_products_slug_index.spree.rb +6 -0
  246. data/spec/dummy/db/migrate/20160706112496_update_product_slug_index.spree.rb +9 -0
  247. data/spec/dummy/db/migrate/20160706112497_add_default_column_to_price.spree.rb +6 -0
  248. data/spec/dummy/db/migrate/20160706112498_add_position_to_stock_location.spree.rb +6 -0
  249. data/spec/dummy/db/migrate/20160706112499_create_spree_promotion_codes.spree.rb +14 -0
  250. data/spec/dummy/db/migrate/20160706112500_create_adjustment_promotion_code_association.spree.rb +7 -0
  251. data/spec/dummy/db/migrate/20160706112501_remove_environment_from_payment_method.spree.rb +7 -0
  252. data/spec/dummy/db/migrate/20160706112502_add_restock_inventory_to_stock_location.spree.rb +6 -0
  253. data/spec/dummy/db/migrate/20160706112503_add_code_to_spree_promotion_categories.spree.rb +6 -0
  254. data/spec/dummy/db/migrate/20160706112504_create_order_stock_locations.spree.rb +13 -0
  255. data/spec/dummy/db/migrate/20160706112505_remove_environment_from_tracker.spree.rb +7 -0
  256. data/spec/dummy/db/migrate/20160706112506_add_fulfillable_to_stock_location.spree.rb +6 -0
  257. data/spec/dummy/db/migrate/20160706112507_add_code_to_refund_reason.spree.rb +6 -0
  258. data/spec/dummy/db/migrate/20160706112508_add_promotion_code_id_to_orders_promotions.spree.rb +8 -0
  259. data/spec/dummy/db/migrate/20160706112509_add_approver_name_to_spree_orders.spree.rb +6 -0
  260. data/spec/dummy/db/migrate/20160706112510_move_promotion_code_to_promotion_code_value.spree.rb +66 -0
  261. data/spec/dummy/db/migrate/20160706112511_downcase_promotion_codes_values.spree.rb +12 -0
  262. data/spec/dummy/db/migrate/20160706112512_add_order_ids_to_adjustments_where_missing.spree.rb +10 -0
  263. data/spec/dummy/db/migrate/20160706112513_add_per_code_usage_limit_to_promotions.spree.rb +6 -0
  264. data/spec/dummy/db/migrate/20160706112514_remove_usage_limit_from_promotion_codes.spree.rb +6 -0
  265. data/spec/dummy/db/migrate/20160706112515_add_timestamps_to_order_promotions.spree.rb +7 -0
  266. data/spec/dummy/db/migrate/20160706112516_create_spree_cartons.spree.rb +25 -0
  267. data/spec/dummy/db/migrate/20160706112517_add_timestamps_to_spree_roles_users.spree.rb +8 -0
  268. data/spec/dummy/db/migrate/20160706112518_remove_considered_risky_from_spree_orders.spree.rb +6 -0
  269. data/spec/dummy/db/migrate/20160706112519_add_index_to_inventory_units_carton_id.spree.rb +6 -0
  270. data/spec/dummy/db/migrate/20160706112520_add_imported_from_shipment_id_to_cartons.spree.rb +9 -0
  271. data/spec/dummy/db/migrate/20160706112521_copy_shipped_shipments_to_cartons.spree.rb +14 -0
  272. data/spec/dummy/db/migrate/20160706112522_create_spree_user_stock_locations.spree.rb +11 -0
  273. data/spec/dummy/db/migrate/20160706112523_add_stock_location_code.spree.rb +6 -0
  274. data/spec/dummy/db/migrate/20160706112524_create_unit_cancels.spree.rb +11 -0
  275. data/spec/dummy/db/migrate/20160706112525_add_fields_to_stock_transfer.spree.rb +13 -0
  276. data/spec/dummy/db/migrate/20160706112526_create_transfer_items.spree.rb +15 -0
  277. data/spec/dummy/db/migrate/20160706112527_drop_stock_transfer_type.spree.rb +11 -0
  278. data/spec/dummy/db/migrate/20160706112528_add_stock_transfer_finalized_at.spree.rb +9 -0
  279. data/spec/dummy/db/migrate/20160706112529_rename_stock_transfer_reference.spree.rb +6 -0
  280. data/spec/dummy/db/migrate/20160706112530_create_line_item_actions.spree.rb +11 -0
  281. data/spec/dummy/db/migrate/20160706112531_create_spree_store_credit_categories.spree.rb +11 -0
  282. data/spec/dummy/db/migrate/20160706112532_create_spree_store_credits.spree.rb +20 -0
  283. data/spec/dummy/db/migrate/20160706112533_create_spree_store_credit_events.spree.rb +18 -0
  284. data/spec/dummy/db/migrate/20160706112534_create_spree_store_credit_payment_method.spree.rb +22 -0
  285. data/spec/dummy/db/migrate/20160706112535_create_store_credit_types.spree.rb +18 -0
  286. data/spec/dummy/db/migrate/20160706112536_create_store_credit_reimbursement_type.spree.rb +6 -0
  287. data/spec/dummy/db/migrate/20160706112537_add_resellable_to_return_items.spree.rb +6 -0
  288. data/spec/dummy/db/migrate/20160706112538_add_invalidated_at_to_spree_store_credits.spree.rb +6 -0
  289. data/spec/dummy/db/migrate/20160706112539_migrate_deleted_store_credits_to_invalidated.spree.rb +14 -0
  290. data/spec/dummy/db/migrate/20160706112540_add_check_stock_on_transfer.spree.rb +6 -0
  291. data/spec/dummy/db/migrate/20160706112541_fix_adjustment_order_id.spree.rb +81 -0
  292. data/spec/dummy/db/migrate/20160706112542_delete_inventory_units_without_shipment.spree.rb +26 -0
  293. data/spec/dummy/db/migrate/20160706112543_add_deleted_at_to_stock_transfers.spree.rb +6 -0
  294. data/spec/dummy/db/migrate/20160706112544_add_deleted_at_to_transfer_items.spree.rb +6 -0
  295. data/spec/dummy/db/migrate/20160706112545_increase_scale_on_pre_tax_amounts.spree.rb +27 -0
  296. data/spec/dummy/db/migrate/20160706112546_add_preferences_to_promotion_actions.spree.rb +6 -0
  297. data/spec/dummy/db/migrate/20160706112547_add_id_to_spree_option_values_variants.spree.rb +6 -0
  298. data/spec/dummy/db/migrate/20160706112548_add_frontend_viewable_to_spree_orders.spree.rb +6 -0
  299. data/spec/dummy/db/migrate/20160706112549_remove_spree_configurations.spree.rb +16 -0
  300. data/spec/dummy/db/migrate/20160706112550_add_preference_source_to_spree_payment_methods.spree.rb +6 -0
  301. data/spec/dummy/db/migrate/20160706112551_remove_credit_card_address_id.spree.rb +8 -0
  302. data/spec/dummy/db/migrate/20160706112552_create_spree_store_credit_update_reasons.spree.rb +9 -0
  303. data/spec/dummy/db/migrate/20160706112553_create_adjustment_reason.spree.rb +19 -0
  304. data/spec/dummy/db/migrate/20160706112554_add_update_reason_to_store_credit_events.spree.rb +6 -0
  305. data/spec/dummy/db/migrate/20160706112555_add_return_authorization_reason_id_to_return_items.spree.rb +8 -0
  306. data/spec/dummy/db/migrate/20160706112556_seed_store_credit_update_reasons.spree.rb +10 -0
  307. data/spec/dummy/db/migrate/20160706112557_remove_shipping_method_id_from_spree_orders.spree.rb +10 -0
  308. data/spec/dummy/db/migrate/20160706112558_remove_counter_cache_from_spree_variants_to_spree_stock_items.spree.rb +11 -0
  309. data/spec/dummy/db/migrate/20160706112559_add_address_id_to_credit_card.spree.rb +6 -0
  310. data/spec/dummy/db/migrate/20160706112560_copy_order_bill_address_to_credit_card.spree.rb +13 -0
  311. data/spec/dummy/db/migrate/20160706112561_remove_unnecessary_indexes.spree.rb +65 -0
  312. data/spec/dummy/db/migrate/20160706112562_remove_state_lock_version_from_order.spree.rb +12 -0
  313. data/spec/dummy/db/migrate/20160706112563_add_spree_user_addresses.spree.rb +17 -0
  314. data/spec/dummy/db/migrate/20160706112564_add_id_and_timestamp_to_promotion_rule_user.spree.rb +14 -0
  315. data/spec/dummy/db/migrate/20160706112565_remove_mandatory_from_adjustments.spree.rb +6 -0
  316. data/spec/dummy/db/migrate/20160706112566_add_finalized_to_spree_adjustments.spree.rb +12 -0
  317. data/spec/dummy/db/migrate/20160706112567_add_store_payment_methods.spree.rb +11 -0
  318. data/spec/dummy/db/migrate/20160706112568_convert_habtm_to_hmt_for_shipping_methods_zones.spree.rb +18 -0
  319. data/spec/dummy/db/migrate/20160706112569_convert_habtm_to_hmt_for_products_promotion_rules.spree.rb +18 -0
  320. data/spec/dummy/db/migrate/20160706112570_drop_spree_gateways.spree.rb +21 -0
  321. data/spec/dummy/db/migrate/20160706112571_convert_habtm_to_hmt_for_taxon_prototypes.spree.rb +16 -0
  322. data/spec/dummy/db/migrate/20160706112572_create_variant_properties_and_rules.spree.rb +29 -0
  323. data/spec/dummy/db/migrate/20160706112573_add_foreign_keys_for_taxons_prototypes.spree.rb +7 -0
  324. data/spec/dummy/db/migrate/20160706112574_remove_token_permissions_table.spree.rb +17 -0
  325. data/spec/dummy/db/migrate/20160706112575_rename_identifier_to_number_for_payment.spree.rb +8 -0
  326. data/spec/dummy/db/migrate/20160706112576_add_foreign_keys_for_product_promotion_rules.spree.rb +10 -0
  327. data/spec/dummy/db/migrate/20160706112577_add_sale_to_spree_promotions.spree.rb +7 -0
  328. data/spec/dummy/db/migrate/20160706112578_convert_sale_promotions.spree.rb +29 -0
  329. data/spec/dummy/db/migrate/20160706112579_convert_habtm_to_hmt_for_properties_prototypes.spree.rb +18 -0
  330. data/spec/dummy/db/migrate/20160706112580_convert_habtm_to_hmt_for_option_type_prototypes.spree.rb +18 -0
  331. data/spec/dummy/db/migrate/20160706112581_convert_habtm_to_hmt_for_taxons_promotion_rules.spree.rb +16 -0
  332. data/spec/dummy/db/migrate/20160706112582_add_stock_item_unique_index.spree.rb +10 -0
  333. data/spec/dummy/db/migrate/20160706112583_add_api_key_to_spree_users.spree_api.rb +8 -0
  334. data/spec/dummy/db/migrate/20160706112584_resize_api_key_field.spree_api.rb +8 -0
  335. data/spec/dummy/db/migrate/20160706112585_rename_api_key_to_spree_api_key.spree_api.rb +8 -0
  336. data/spec/dummy/db/migrate/20160706112586_add_index_to_user_spree_api_key.spree_api.rb +8 -0
  337. data/spec/dummy/db/migrate/20160706112587_create_users.solidus_auth.rb +30 -0
  338. data/spec/dummy/db/migrate/20160706112588_rename_columns_for_devise.solidus_auth.rb +38 -0
  339. data/spec/dummy/db/migrate/20160706112589_convert_user_remember_field.solidus_auth.rb +12 -0
  340. data/spec/dummy/db/migrate/20160706112590_add_reset_password_sent_at_to_spree_users.solidus_auth.rb +9 -0
  341. data/spec/dummy/db/migrate/20160706112591_make_users_email_index_unique.solidus_auth.rb +10 -0
  342. data/spec/dummy/db/migrate/20160706112592_add_deleted_at_to_users.solidus_auth.rb +7 -0
  343. data/spec/dummy/db/migrate/20160706112593_add_confirmable_to_users.solidus_auth.rb +8 -0
  344. data/spec/dummy/db/migrate/20160706112594_create_delayed_jobs.rb +22 -0
  345. data/spec/dummy/db/schema.rb +1206 -0
  346. data/spec/dummy/db/seeds.rb +11 -0
  347. data/spec/dummy/db/spree_test.sqlite3 +0 -0
  348. data/spec/dummy/log/test.log +15214 -0
  349. data/spec/dummy/public/404.html +67 -0
  350. data/spec/dummy/public/422.html +67 -0
  351. data/spec/dummy/public/500.html +66 -0
  352. data/spec/dummy/public/favicon.ico +0 -0
  353. data/spec/dummy/tmp/cache/F65/550/spree%2Fauth_configuration%2Fconfirmable +1 -0
  354. data/spec/dummy/vendor/assets/javascripts/spree/backend/all.js +10 -0
  355. data/spec/dummy/vendor/assets/javascripts/spree/frontend/all.js +10 -0
  356. data/spec/dummy/vendor/assets/stylesheets/spree/backend/all.css +9 -0
  357. data/spec/dummy/vendor/assets/stylesheets/spree/frontend/all.css +9 -0
  358. data/spec/features/recurring_reports_spec.rb +23 -0
  359. data/spec/features/specifying_criteria_spec.rb +21 -0
  360. data/spec/spec_helper.rb +88 -0
  361. data/spec/unit/lib/order_reporting/delayed_job_scheduler_spec.rb +18 -0
  362. metadata +925 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d43a65960efeb542d22489ce40233395a4acef38
4
+ data.tar.gz: e9915012a7fece1f04dd87f329a0379d92de56a5
5
+ SHA512:
6
+ metadata.gz: 4eb8a3c14f76b55a4398c1aa52f698dc346fc83659dc6239c62ca50bd202b720b21226ae37896eb8ba38605536ab74cea6c29533f7f0f3f84aa16ba4b1fc63af
7
+ data.tar.gz: 18381f2337e8fe1aea412d3c98aeb0d180f7b4742b568fefae24fd144d2849fdafa7f473134a80fbc315f055a199b6e57eceec4dc38bab42bd247018214f473a
data/LICENSE ADDED
@@ -0,0 +1,26 @@
1
+ Copyright (c) 2016 [name of plugin creator]
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice,
8
+ this list of conditions and the following disclaimer.
9
+ * Redistributions in binary form must reproduce the above copyright notice,
10
+ this list of conditions and the following disclaimer in the documentation
11
+ and/or other materials provided with the distribution.
12
+ * Neither the name Spree nor the names of its contributors may be used to
13
+ endorse or promote products derived from this software without specific
14
+ prior written permission.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
+ A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20
+ CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22
+ PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
23
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.md ADDED
@@ -0,0 +1,100 @@
1
+ # Order Reporting for Spree and Solidus
2
+
3
+ [![Build Status](https://travis-ci.org/madetech/order_reporting.svg?branch=master)](https://travis-ci.org/madetech/order_reporting)
4
+
5
+ Automatically sends lists of orders via email based on criteria.
6
+
7
+ ## Installing in Spree app
8
+
9
+ Add this to your Gemfile:
10
+
11
+ ```
12
+ gem 'spree_order_reporting'
13
+ ```
14
+
15
+ ## Installing in Solidus app
16
+
17
+ Add this to your Gemfile:
18
+
19
+ ```
20
+ gem 'solidus_order_reporting'
21
+ ```
22
+
23
+ ## Setup
24
+
25
+ Three steps to configure:
26
+
27
+ 1. Setup gem with initializer
28
+ 2. Create mailer and template
29
+ 3. Create query object for selecting orders
30
+
31
+ ### 1. Setup gem with initializer
32
+
33
+ Create an application initializer in `config/initializers/order_reporting.rb`:
34
+
35
+ ``` ruby
36
+ OrderReporting.mailer_class = OrderReportMailer
37
+ OrderReporting.scheduler = OrderReporting::DelayedJobScheduler.new
38
+
39
+ OrderReporting.define_report :exported_orders do |config|
40
+ config.send_every = 24.hours
41
+ config.query = ExportedOrdersQuery.new
42
+ end
43
+ ```
44
+
45
+ ### 2. Create mailer and template
46
+
47
+ ```ruby
48
+ class OrderReportMailer < ActionMailer::Base
49
+ def exported_orders(orders)
50
+ @orders = orders
51
+ mail(to: 'cs@shop.com', subject: 'Exported Orders')
52
+ end
53
+ end
54
+ ```
55
+
56
+ ### 3. Create query object for selecting orders
57
+
58
+ ```ruby
59
+ class ExportedOrdersQuery
60
+ def orders
61
+ Spree::Order.exported.where('completed_at > ?', 24.hours.ago)
62
+ end
63
+ end
64
+ ```
65
+
66
+ ## Development
67
+
68
+ Run spree tests:
69
+
70
+ ```
71
+ rm -rf spec/dummy/
72
+ BUNDLE_GEMFILE=Gemfile.spree.rb bundle
73
+ BUNDLE_GEMFILE=Gemfile.spree.rb bundle exec rake
74
+ ```
75
+
76
+ Run solidus tests:
77
+
78
+ ```
79
+ rm -rf spec/dummy/
80
+ BUNDLE_GEMFILE=Gemfile.solidus.rb bundle
81
+ BUNDLE_GEMFILE=Gemfile.solidus.rb bundle exec rake
82
+ ```
83
+
84
+ ## Publishing
85
+
86
+ Before publishing you will need to have created a new release. To do so update `lib/order_reporting/version.rb` to new version number and commit this change as "New release vx.x.x". Then tag this commit with ```git tag vx.x.x``` and push it `git push origin vx.x.x`. Then you need to publish to RubyGems...
87
+
88
+ Publish Spree gem:
89
+
90
+ ```
91
+ gem build spree_order_reporting.gemspec
92
+ gem publish spree_order_reporting-x.x.x.gem
93
+ ```
94
+
95
+ Publish Solidus gem:
96
+
97
+ ```
98
+ gem build solidus_order_reporting.gemspec
99
+ gem publish solidus_order_reporting-x.x.x.gem
100
+ ```
data/Rakefile ADDED
@@ -0,0 +1,38 @@
1
+ require 'bundler'
2
+
3
+ begin
4
+ require 'spree/testing_support/extension_rake'
5
+ require 'rubocop/rake_task'
6
+ require 'rspec/core/rake_task'
7
+
8
+ RSpec::Core::RakeTask.new(:spec)
9
+
10
+ RuboCop::RakeTask.new
11
+
12
+ task default: %i(first_run rubocop spec)
13
+ rescue LoadError
14
+ # no rspec available
15
+ end
16
+
17
+ task :first_run do
18
+ if Dir['spec/dummy'].empty?
19
+ Rake::Task[:test_app].invoke
20
+ Dir.chdir('../../')
21
+ end
22
+ end
23
+
24
+ desc 'Generates a dummy app for testing'
25
+ task :test_app do
26
+ case ENV['BUNDLE_GEMFILE']
27
+ when /spree/
28
+ ENV['LIB_NAME'] = 'spree_order_reporting'
29
+ when /solidus/
30
+ ENV['LIB_NAME'] = 'solidus_order_reporting'
31
+ else
32
+ raise 'Specify BUNDLE_GEMFILE'
33
+ end
34
+
35
+ Rake::Task['extension:test_app'].invoke
36
+ system 'bundle exec rails g delayed_job:active_record'
37
+ system 'bundle exec rake db:migrate'
38
+ end
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/backend/all.js'
@@ -0,0 +1,2 @@
1
+ // Placeholder manifest file.
2
+ // the installer will append this file to the app vendored assets here: vendor/assets/javascripts/spree/frontend/all.js'
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/backend/all.css'
4
+ */
@@ -0,0 +1,4 @@
1
+ /*
2
+ Placeholder manifest file.
3
+ the installer will append this file to the app vendored assets here: 'vendor/assets/stylesheets/spree/frontend/all.css'
4
+ */
@@ -0,0 +1,11 @@
1
+ module OrderReporting
2
+ RecurringReportJob = Struct.new(:scheduler, :report, :options)
3
+
4
+ class RecurringReportDelayedJob < RecurringReportJob
5
+ def perform
6
+ report.send_report
7
+ ensure
8
+ scheduler.schedule(report, options)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: Hello world
data/config/routes.rb ADDED
@@ -0,0 +1,3 @@
1
+ Spree::Core::Engine.routes.draw do
2
+ # Add your extension routes here
3
+ end
@@ -0,0 +1,30 @@
1
+ module OrderReporting
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ class_option :auto_run_migrations, type: :boolean, default: false
5
+
6
+ def add_javascripts
7
+ append_file 'vendor/assets/javascripts/spree/frontend/all.js', "//= require spree/frontend/order_reporting\n"
8
+ append_file 'vendor/assets/javascripts/spree/backend/all.js', "//= require spree/backend/order_reporting\n"
9
+ end
10
+
11
+ def add_stylesheets
12
+ inject_into_file 'vendor/assets/stylesheets/spree/frontend/all.css', " *= require spree/frontend/order_reporting\n", before: /\*\//, verbose: true
13
+ inject_into_file 'vendor/assets/stylesheets/spree/backend/all.css', " *= require spree/backend/order_reporting\n", before: /\*\//, verbose: true
14
+ end
15
+
16
+ def add_migrations
17
+ run 'bundle exec rake railties:install:migrations FROM=order_reporting'
18
+ end
19
+
20
+ def run_migrations
21
+ run_migrations = options[:auto_run_migrations] || ['', 'y', 'Y'].include?(ask('Would you like to run the migrations now? [Y/n]'))
22
+ if run_migrations
23
+ run 'bundle exec rake db:migrate'
24
+ else
25
+ puts 'Skipping rake db:migrate, don\'t forget to run it!'
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,27 @@
1
+ require 'order_reporting/engine'
2
+ require 'order_reporting/report'
3
+ require 'order_reporting/schedulers/delayed_job_scheduler'
4
+ require 'order_reporting/queries/latest_orders_query'
5
+
6
+ module OrderReporting
7
+ extend self
8
+
9
+ attr_accessor :scheduler
10
+ attr_accessor :mailer_class
11
+
12
+ def define_report(name)
13
+ @reports ||= {}
14
+ @reports[name] = OpenStruct.new(name: name)
15
+ yield @reports[name]
16
+ setup_recurring_report(name)
17
+ end
18
+
19
+ def setup_recurring_report(name)
20
+ return unless @reports[name].respond_to?(:send_every)
21
+ scheduler.schedule(Report.new(name), self[name])
22
+ end
23
+
24
+ def [](name)
25
+ @reports[name]
26
+ end
27
+ end
@@ -0,0 +1,20 @@
1
+ module OrderReporting
2
+ class Engine < Rails::Engine
3
+ require 'spree/core'
4
+ isolate_namespace Spree
5
+ engine_name 'order_reporting'
6
+
7
+ # use rspec for tests
8
+ config.generators do |g|
9
+ g.test_framework :rspec
10
+ end
11
+
12
+ def self.activate
13
+ Dir.glob(File.join(File.dirname(__FILE__), '../../app/**/*_decorator*.rb')) do |c|
14
+ Rails.configuration.cache_classes ? require(c) : load(c)
15
+ end
16
+ end
17
+
18
+ config.to_prepare(&method(:activate).to_proc)
19
+ end
20
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ # Define your Spree extensions Factories within this file to enable applications, and other extensions to use and override them.
3
+ #
4
+ # Example adding this to your spec_helper will load these Factories for use:
5
+ # require 'order_reporting/factories'
6
+ end
@@ -0,0 +1,7 @@
1
+ module OrderReporting
2
+ class LatestOrdersQuery
3
+ def orders
4
+ Spree::Order.complete.where('updated_at > ?', 24.hours.ago)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,25 @@
1
+ module OrderReporting
2
+ class Report
3
+ def initialize(name)
4
+ @name = name
5
+ end
6
+
7
+ def send_report
8
+ orders.tap { |orders| mailer.send(@name, orders) }
9
+ end
10
+
11
+ private
12
+
13
+ def mailer
14
+ report[:mailer_class] || OrderReporting.mailer_class
15
+ end
16
+
17
+ def orders
18
+ report[:query].orders
19
+ end
20
+
21
+ def report
22
+ OrderReporting[@name]
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,8 @@
1
+ module OrderReporting
2
+ class DelayedJobScheduler
3
+ def schedule(report, options)
4
+ job = RecurringReportDelayedJob.new(self, report, options)
5
+ Delayed::Job.enqueue(job, run_at: options[:send_every].from_now)
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,3 @@
1
+ module OrderReporting
2
+ VERSION = '0.0.1'
3
+ end
@@ -0,0 +1,2 @@
1
+ require 'solidus_core'
2
+ require 'order_reporting'
@@ -0,0 +1,2 @@
1
+ require 'spree_core'
2
+ require 'order_reporting'
@@ -0,0 +1,28 @@
1
+ == README
2
+
3
+ This README would normally document whatever steps are necessary to get the
4
+ application up and running.
5
+
6
+ Things you may want to cover:
7
+
8
+ * Ruby version
9
+
10
+ * System dependencies
11
+
12
+ * Configuration
13
+
14
+ * Database creation
15
+
16
+ * Database initialization
17
+
18
+ * How to run the test suite
19
+
20
+ * Services (job queues, cache servers, search engines, etc.)
21
+
22
+ * Deployment instructions
23
+
24
+ * ...
25
+
26
+
27
+ Please feel free to use a different markup language if you do not plan to run
28
+ <tt>rake doc:app</tt>.
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require File.expand_path('../config/application', __FILE__)
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any styles
10
+ * defined in the other CSS/SCSS files in this directory. It is generally better to create a new
11
+ * file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,5 @@
1
+ class ApplicationController < ActionController::Base
2
+ # Prevent CSRF attacks by raising an exception.
3
+ # For APIs, you may want to use :null_session instead.
4
+ protect_from_forgery with: :exception
5
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
6
+ <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>