bouquet 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (386) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -4
  3. data/LICENSE.txt +1 -1
  4. data/README.md +8 -25
  5. data/bouquet.gemspec +3 -2
  6. data/core/.gitignore +0 -1
  7. data/core/Gemfile +3 -4
  8. data/core/Gemfile.lock +205 -0
  9. data/core/MIT-LICENSE +1 -1
  10. data/core/README.md +3 -0
  11. data/core/Rakefile +2 -2
  12. data/core/app/controllers/bouquet/core/application_controller.rb +6 -0
  13. data/core/app/jobs/bouquet/core/application_job.rb +6 -0
  14. data/core/app/models/application_record.rb +7 -0
  15. data/core/app/models/bouquet/arrival.rb +7 -0
  16. data/core/app/models/bouquet/assembly.rb +8 -0
  17. data/core/app/models/bouquet/customer.rb +6 -0
  18. data/core/app/models/bouquet/delivery.rb +7 -0
  19. data/core/app/models/bouquet/location.rb +10 -0
  20. data/core/app/models/bouquet/material.rb +7 -0
  21. data/core/app/models/bouquet/product.rb +6 -1
  22. data/core/app/models/bouquet/purchase_order.rb +23 -0
  23. data/core/app/models/bouquet/retrieval.rb +7 -0
  24. data/core/app/models/bouquet/sales_order.rb +16 -0
  25. data/core/app/models/bouquet/shipment.rb +44 -0
  26. data/core/app/models/bouquet/stock.rb +7 -0
  27. data/core/app/models/bouquet/storage.rb +30 -0
  28. data/core/app/models/bouquet/supplier.rb +6 -0
  29. data/core/{bouquet_core.gemspec → bouquet-core.gemspec} +5 -5
  30. data/core/db/migrate/20160102155121_create_bouquet_products.rb +10 -0
  31. data/core/db/migrate/20160108154058_create_bouquet_materials.rb +12 -0
  32. data/core/db/migrate/20160108154107_create_bouquet_assemblies.rb +12 -0
  33. data/core/db/migrate/20160108154116_create_bouquet_customers.rb +10 -0
  34. data/core/db/migrate/20160108154144_create_bouquet_suppliers.rb +10 -0
  35. data/core/db/migrate/20160108154217_create_bouquet_locations.rb +10 -0
  36. data/core/db/migrate/20160108155617_create_bouquet_shipments.rb +12 -0
  37. data/core/db/migrate/20160108155648_create_bouquet_deliveries.rb +13 -0
  38. data/core/db/migrate/20160108155711_create_bouquet_purchase_orders.rb +14 -0
  39. data/core/db/migrate/20160108155732_create_bouquet_arrivals.rb +12 -0
  40. data/core/db/migrate/20160108155753_create_bouquet_stocks.rb +13 -0
  41. data/core/db/migrate/20160108160523_create_bouquet_sales_orders.rb +14 -0
  42. data/core/db/migrate/20160111072002_create_bouquet_storages.rb +12 -0
  43. data/core/db/migrate/20160111072201_create_bouquet_retrievals.rb +13 -0
  44. data/core/lib/bouquet/core/engine.rb +1 -2
  45. data/core/lib/bouquet/core/version.rb +1 -1
  46. data/core/lib/bouquet/core.rb +1 -0
  47. data/core/lib/tasks/{bouquet_core_tasks.rake → bouquet/core_tasks.rake} +0 -0
  48. data/core/spec/dummy/README.md +4 -0
  49. data/core/spec/dummy/Rakefile +6 -0
  50. data/core/spec/dummy/app/assets/config/manifest.js +3 -0
  51. data/core/spec/dummy/app/assets/javascripts/application.js +13 -0
  52. data/{gate/app/assets/stylesheets/bouquet_gate → core/spec/dummy/app/assets/stylesheets}/application.css +3 -3
  53. data/core/spec/dummy/app/channels/application_cable/channel.rb +5 -0
  54. data/core/spec/dummy/app/channels/application_cable/connection.rb +5 -0
  55. data/core/spec/dummy/app/controllers/application_controller.rb +2 -0
  56. data/core/{app/assets/images/bouquet_core → spec/dummy/app/controllers/concerns}/.keep +0 -0
  57. data/core/spec/dummy/app/jobs/application_job.rb +2 -0
  58. data/core/spec/dummy/app/mailers/application_mailer.rb +4 -0
  59. data/core/spec/dummy/app/models/application_record.rb +3 -0
  60. data/{gate/app/assets/images/bouquet_gate → core/spec/dummy/app/models/concerns}/.keep +0 -0
  61. data/core/spec/dummy/bin/bundle +3 -0
  62. data/core/spec/dummy/bin/rails +4 -0
  63. data/core/spec/dummy/bin/rake +4 -0
  64. data/core/spec/dummy/bin/setup +34 -0
  65. data/core/spec/dummy/bin/update +29 -0
  66. data/core/spec/dummy/config/application.rb +26 -0
  67. data/core/spec/dummy/config/boot.rb +5 -0
  68. data/core/spec/dummy/config/database.yml +25 -0
  69. data/core/spec/dummy/config/environment.rb +5 -0
  70. data/core/spec/dummy/config/environments/development.rb +43 -0
  71. data/core/spec/dummy/config/environments/production.rb +70 -0
  72. data/core/spec/dummy/config/environments/test.rb +44 -0
  73. data/core/spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb +5 -0
  74. data/core/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
  75. data/core/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  76. data/core/spec/dummy/config/initializers/callback_terminator.rb +5 -0
  77. data/core/spec/dummy/config/initializers/cors.rb +16 -0
  78. data/core/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  79. data/core/spec/dummy/config/initializers/inflections.rb +16 -0
  80. data/core/spec/dummy/config/initializers/mime_types.rb +4 -0
  81. data/core/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  82. data/core/spec/dummy/config/locales/en.yml +23 -0
  83. data/core/spec/dummy/config/redis/cable.yml +9 -0
  84. data/core/spec/dummy/config/routes.rb +3 -0
  85. data/core/spec/dummy/config/secrets.yml +22 -0
  86. data/core/spec/dummy/config.ru +9 -0
  87. data/core/spec/dummy/db/schema.rb +156 -0
  88. data/core/spec/dummy/db/seeds.rb +36 -0
  89. data/core/spec/dummy/log/.keep +0 -0
  90. data/core/spec/dummy/public/404.html +67 -0
  91. data/core/spec/dummy/public/422.html +67 -0
  92. data/core/spec/dummy/public/500.html +66 -0
  93. data/core/spec/dummy/public/favicon.ico +0 -0
  94. data/core/spec/factories/bouquet_arrivals.rb +9 -0
  95. data/core/spec/factories/bouquet_assemblies.rb +8 -0
  96. data/core/spec/factories/bouquet_customers.rb +7 -0
  97. data/core/spec/factories/bouquet_deliveries.rb +10 -0
  98. data/core/spec/factories/bouquet_locations.rb +6 -0
  99. data/core/spec/factories/bouquet_materials.rb +9 -0
  100. data/core/spec/factories/bouquet_purchase_orders.rb +10 -0
  101. data/core/spec/factories/bouquet_retrievals.rb +10 -0
  102. data/core/spec/factories/bouquet_sales_orders.rb +10 -0
  103. data/core/spec/factories/bouquet_shipments.rb +9 -0
  104. data/core/spec/factories/bouquet_stocks.rb +10 -0
  105. data/core/spec/factories/bouquet_storage_retrievals.rb +10 -0
  106. data/core/spec/factories/bouquet_storages.rb +9 -0
  107. data/core/spec/factories/bouquet_suppliers.rb +6 -0
  108. data/core/spec/jobs/bouquet/shipment_job_spec.rb +7 -0
  109. data/core/spec/models/bouquet/arrival_spec.rb +7 -0
  110. data/core/spec/models/bouquet/assembly_spec.rb +7 -0
  111. data/core/spec/models/bouquet/customer_spec.rb +7 -0
  112. data/core/spec/models/bouquet/delivery_spec.rb +7 -0
  113. data/core/spec/models/bouquet/location_spec.rb +7 -0
  114. data/core/spec/models/bouquet/material_spec.rb +7 -0
  115. data/core/spec/models/bouquet/product_spec.rb +1 -1
  116. data/core/spec/models/bouquet/purchase_order_spec.rb +7 -0
  117. data/core/spec/models/bouquet/retrieval_spec.rb +7 -0
  118. data/core/spec/models/bouquet/sales_order_spec.rb +7 -0
  119. data/core/spec/models/bouquet/shipment_spec.rb +7 -0
  120. data/core/spec/models/bouquet/stock_spec.rb +7 -0
  121. data/core/spec/models/bouquet/storage_retrieval_spec.rb +7 -0
  122. data/core/spec/models/bouquet/storage_spec.rb +7 -0
  123. data/core/spec/models/bouquet/supplier_spec.rb +7 -0
  124. data/core/spec/rails_helper.rb +4 -11
  125. data/core/spec/spec_helper.rb +11 -18
  126. data/gate/.gitignore +0 -1
  127. data/gate/Gemfile +3 -7
  128. data/gate/Gemfile.lock +204 -0
  129. data/gate/MIT-LICENSE +1 -1
  130. data/gate/README.md +29 -0
  131. data/gate/Rakefile +2 -2
  132. data/gate/app/controllers/bouquet/gate/application_controller.rb +1 -1
  133. data/gate/app/controllers/bouquet/gate/materials_controller.rb +55 -0
  134. data/gate/app/controllers/bouquet/gate/products_controller.rb +62 -6
  135. data/gate/app/controllers/bouquet/gate/purchase_orders_controller.rb +56 -0
  136. data/gate/app/controllers/bouquet/gate/sales_orders_controller.rb +57 -0
  137. data/gate/app/controllers/bouquet/gate/storages_controller.rb +22 -0
  138. data/gate/app/jobs/bouquet/gate/application_job.rb +6 -0
  139. data/gate/app/jobs/bouquet/gate/shipment_job.rb +14 -0
  140. data/gate/app/models/application_record.rb +7 -0
  141. data/gate/{bouquet_gate.gemspec → bouquet-gate.gemspec} +5 -6
  142. data/gate/config/routes.rb +6 -4
  143. data/gate/lib/bouquet/gate/engine.rb +2 -6
  144. data/gate/lib/bouquet/gate/version.rb +1 -1
  145. data/gate/lib/bouquet/gate.rb +1 -1
  146. data/gate/lib/tasks/{bouquet_gate_tasks.rake → bouquet/gate_tasks.rake} +0 -0
  147. data/gate/spec/controllers/bouquet/gate/products_controller_spec.rb +13 -4
  148. data/gate/spec/controllers/bouquet/gate/purchase_orders_controller_spec.rb +14 -0
  149. data/gate/spec/controllers/bouquet/gate/sales_orders_controller_spec.rb +14 -0
  150. data/gate/spec/dummy/Rakefile +6 -0
  151. data/gate/spec/dummy/app/assets/config/manifest.js +3 -0
  152. data/gate/spec/dummy/app/assets/javascripts/application.js +13 -0
  153. data/{core/app/assets/stylesheets/bouquet_core → gate/spec/dummy/app/assets/stylesheets}/application.css +3 -3
  154. data/gate/spec/dummy/app/channels/application_cable/channel.rb +5 -0
  155. data/gate/spec/dummy/app/channels/application_cable/connection.rb +5 -0
  156. data/gate/spec/dummy/app/controllers/application_controller.rb +2 -0
  157. data/gate/spec/dummy/app/controllers/concerns/.keep +0 -0
  158. data/gate/spec/dummy/app/jobs/application_job.rb +2 -0
  159. data/gate/spec/dummy/app/mailers/application_mailer.rb +4 -0
  160. data/gate/spec/dummy/app/models/application_record.rb +3 -0
  161. data/gate/spec/dummy/app/models/concerns/.keep +0 -0
  162. data/gate/spec/dummy/bin/bundle +3 -0
  163. data/gate/spec/dummy/bin/rails +4 -0
  164. data/gate/spec/dummy/bin/rake +4 -0
  165. data/gate/spec/dummy/bin/setup +34 -0
  166. data/gate/spec/dummy/bin/update +29 -0
  167. data/gate/spec/dummy/config/application.rb +27 -0
  168. data/gate/spec/dummy/config/boot.rb +5 -0
  169. data/gate/spec/dummy/config/database.yml +25 -0
  170. data/gate/spec/dummy/config/environment.rb +5 -0
  171. data/gate/spec/dummy/config/environments/development.rb +43 -0
  172. data/gate/spec/dummy/config/environments/production.rb +70 -0
  173. data/gate/spec/dummy/config/environments/test.rb +44 -0
  174. data/gate/spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb +5 -0
  175. data/gate/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
  176. data/gate/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  177. data/gate/spec/dummy/config/initializers/callback_terminator.rb +5 -0
  178. data/gate/spec/dummy/config/initializers/cors.rb +16 -0
  179. data/gate/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  180. data/gate/spec/dummy/config/initializers/inflections.rb +16 -0
  181. data/gate/spec/dummy/config/initializers/mime_types.rb +4 -0
  182. data/gate/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  183. data/gate/spec/dummy/config/locales/en.yml +23 -0
  184. data/gate/spec/dummy/config/redis/cable.yml +9 -0
  185. data/gate/spec/dummy/config/routes.rb +3 -0
  186. data/gate/spec/dummy/config/secrets.yml +22 -0
  187. data/gate/spec/dummy/config.ru +9 -0
  188. data/gate/spec/dummy/db/migrate/20160118114717_create_bouquet_products.bouquet.rb +11 -0
  189. data/gate/spec/dummy/db/migrate/20160118114718_create_bouquet_materials.bouquet.rb +13 -0
  190. data/gate/spec/dummy/db/migrate/20160118114719_create_bouquet_assemblies.bouquet.rb +13 -0
  191. data/gate/spec/dummy/db/migrate/20160118114720_create_bouquet_customers.bouquet.rb +11 -0
  192. data/gate/spec/dummy/db/migrate/20160118114721_create_bouquet_suppliers.bouquet.rb +11 -0
  193. data/gate/spec/dummy/db/migrate/20160118114722_create_bouquet_locations.bouquet.rb +11 -0
  194. data/gate/spec/dummy/db/migrate/20160118114723_create_bouquet_shipments.bouquet.rb +13 -0
  195. data/gate/spec/dummy/db/migrate/20160118114724_create_bouquet_deliveries.bouquet.rb +14 -0
  196. data/gate/spec/dummy/db/migrate/20160118114725_create_bouquet_purchase_orders.bouquet.rb +15 -0
  197. data/gate/spec/dummy/db/migrate/20160118114726_create_bouquet_arrivals.bouquet.rb +13 -0
  198. data/gate/spec/dummy/db/migrate/20160118114727_create_bouquet_stocks.bouquet.rb +14 -0
  199. data/gate/spec/dummy/db/migrate/20160118114728_create_bouquet_sales_orders.bouquet.rb +15 -0
  200. data/gate/spec/dummy/db/migrate/20160118114729_create_bouquet_storages.bouquet.rb +13 -0
  201. data/gate/spec/dummy/db/migrate/20160118114730_create_bouquet_retrievals.bouquet.rb +14 -0
  202. data/gate/spec/dummy/db/schema.rb +156 -0
  203. data/gate/spec/dummy/db/seeds.rb +23 -0
  204. data/gate/spec/dummy/log/.keep +0 -0
  205. data/gate/spec/dummy/public/404.html +67 -0
  206. data/gate/spec/dummy/public/422.html +67 -0
  207. data/gate/spec/dummy/public/500.html +66 -0
  208. data/gate/spec/dummy/public/favicon.ico +0 -0
  209. data/gate/spec/factories/bouquet_products.rb +6 -0
  210. data/gate/spec/rails_helper.rb +6 -11
  211. data/gate/spec/spec_helper.rb +11 -18
  212. data/lib/bouquet/version.rb +1 -1
  213. data/lib/bouquet.rb +0 -2
  214. data/store/.gitignore +7 -0
  215. data/store/.rspec +2 -0
  216. data/store/Gemfile +20 -0
  217. data/store/Gemfile.lock +207 -0
  218. data/store/MIT-LICENSE +20 -0
  219. data/store/README.md +3 -0
  220. data/store/Rakefile +26 -0
  221. data/store/app/assets/config/bouquet_store_manifest.js +1 -0
  222. data/store/app/assets/images/bouquet/store/.keep +0 -0
  223. data/store/app/assets/javascripts/bouquet/store/application.js +1 -0
  224. data/store/app/assets/javascripts/bouquet/store/bundle.js +33 -0
  225. data/store/app/assets/stylesheets/bouquet/store/application.css +3 -0
  226. data/store/app/assets/stylesheets/bouquet/store/bundle.css +1 -0
  227. data/store/app/controllers/bouquet/store/application_controller.rb +6 -0
  228. data/store/app/controllers/bouquet/store/main_controller.rb +8 -0
  229. data/store/app/helpers/bouquet/store/application_helper.rb +15 -0
  230. data/store/app/jobs/bouquet/store/application_job.rb +6 -0
  231. data/store/app/models/application_record.rb +7 -0
  232. data/store/app/views/bouquet/store/main/index.html.erb +1 -0
  233. data/store/app/views/layouts/bouquet/store/application.html.erb +15 -0
  234. data/store/bin/rails +12 -0
  235. data/store/bouquet-store.gemspec +22 -0
  236. data/store/config/routes.rb +4 -0
  237. data/store/lib/bouquet/store/engine.rb +15 -0
  238. data/store/lib/bouquet/store/version.rb +5 -0
  239. data/store/lib/bouquet/store.rb +7 -0
  240. data/store/lib/tasks/bouquet/store_tasks.rake +4 -0
  241. data/store/package.json +56 -0
  242. data/store/private/static/.babelrc +20 -0
  243. data/store/private/static/app/actions/AccountActions.js +8 -0
  244. data/store/private/static/app/actions/CounterActions.js +40 -0
  245. data/store/private/static/app/actions/InventoryActions.js +20 -0
  246. data/store/private/static/app/actions/MaterialActions.js +54 -0
  247. data/store/private/static/app/actions/ProductActions.js +54 -0
  248. data/store/private/static/app/components/_globals.scss +7 -0
  249. data/store/private/static/app/components/layouts/_config.scss +8 -0
  250. data/store/private/static/app/components/layouts/contents/_config.scss +4 -0
  251. data/store/private/static/app/components/layouts/contents/about/index.js +15 -0
  252. data/store/private/static/app/components/layouts/contents/about/style.scss +1 -0
  253. data/store/private/static/app/components/layouts/contents/account/index.js +16 -0
  254. data/store/private/static/app/components/layouts/contents/account/layout.js +52 -0
  255. data/store/private/static/app/components/layouts/contents/account/style.scss +7 -0
  256. data/store/private/static/app/components/layouts/contents/content.scss +13 -0
  257. data/store/private/static/app/components/layouts/contents/counter/index.js +16 -0
  258. data/store/private/static/app/components/layouts/contents/counter/layout.js +62 -0
  259. data/store/private/static/app/components/layouts/contents/counter/style.scss +6 -0
  260. data/store/private/static/app/components/layouts/contents/index.js +7 -0
  261. data/store/private/static/app/components/layouts/contents/inventory/index.js +16 -0
  262. data/store/private/static/app/components/layouts/contents/inventory/layout.js +41 -0
  263. data/store/private/static/app/components/layouts/contents/inventory/style.scss +1 -0
  264. data/store/private/static/app/components/layouts/contents/main/index.js +36 -0
  265. data/store/private/static/app/components/layouts/contents/main/style.scss +1 -0
  266. data/store/private/static/app/components/layouts/contents/material/index.js +18 -0
  267. data/store/private/static/app/components/layouts/contents/material/layout.js +60 -0
  268. data/store/private/static/app/components/layouts/contents/material/style.scss +25 -0
  269. data/store/private/static/app/components/layouts/contents/product/index.js +18 -0
  270. data/store/private/static/app/components/layouts/contents/product/layout.js +69 -0
  271. data/store/private/static/app/components/layouts/contents/product/style.scss +30 -0
  272. data/store/private/static/app/components/layouts/header/index.js +27 -0
  273. data/store/private/static/app/components/layouts/header/style.scss +21 -0
  274. data/store/private/static/app/components/layouts/home/index.js +20 -0
  275. data/store/private/static/app/components/layouts/home/style.scss +23 -0
  276. data/store/private/static/app/components/layouts/sidebar/index.js +11 -0
  277. data/store/private/static/app/components/layouts/sidebar/layout.js +63 -0
  278. data/store/private/static/app/components/layouts/sidebar/style.scss +47 -0
  279. data/store/private/static/app/constants/ActionTypes.js +20 -0
  280. data/store/private/static/app/containers/dev_tools/index.js +13 -0
  281. data/store/private/static/app/containers/home/index.js +2 -0
  282. data/store/private/static/app/containers/index.js +2 -0
  283. data/store/private/static/app/containers/root/index.js +26 -0
  284. data/store/private/static/app/index.js +21 -0
  285. data/store/private/static/app/reducers/account.js +19 -0
  286. data/store/private/static/app/reducers/counter.js +14 -0
  287. data/store/private/static/app/reducers/index.js +18 -0
  288. data/store/private/static/app/reducers/inventory.js +17 -0
  289. data/store/private/static/app/reducers/material.js +30 -0
  290. data/store/private/static/app/reducers/product.js +30 -0
  291. data/store/private/static/app/routes/index.js +18 -0
  292. data/store/private/static/app/store/configureStore.development.js +27 -0
  293. data/store/private/static/app/store/configureStore.js +5 -0
  294. data/store/private/static/app/store/configureStore.production.js +11 -0
  295. data/store/private/static/app/toolbox-theme.scss +7 -0
  296. data/store/private/static/index.html +14 -0
  297. data/store/private/static/main.js +30 -0
  298. data/store/private/static/package.json +56 -0
  299. data/store/private/static/server.js +27 -0
  300. data/store/private/static/webpack.config.js +50 -0
  301. data/store/private/static/webpack.production.js +43 -0
  302. data/store/spec/controllers/bouquet/store/main_controller_spec.rb +15 -0
  303. data/store/spec/dummy/Procfile +2 -0
  304. data/store/spec/dummy/Rakefile +6 -0
  305. data/store/spec/dummy/app/assets/config/manifest.js +4 -0
  306. data/store/spec/dummy/app/assets/images/.keep +0 -0
  307. data/store/spec/dummy/app/assets/javascripts/application.js +13 -0
  308. data/store/spec/dummy/app/assets/stylesheets/application.css +15 -0
  309. data/store/spec/dummy/app/channels/application_cable/channel.rb +5 -0
  310. data/store/spec/dummy/app/channels/application_cable/connection.rb +5 -0
  311. data/store/spec/dummy/app/controllers/application_controller.rb +3 -0
  312. data/store/spec/dummy/app/controllers/concerns/.keep +0 -0
  313. data/store/spec/dummy/app/helpers/application_helper.rb +2 -0
  314. data/store/spec/dummy/app/jobs/application_job.rb +2 -0
  315. data/store/spec/dummy/app/mailers/application_mailer.rb +4 -0
  316. data/store/spec/dummy/app/models/application_record.rb +3 -0
  317. data/store/spec/dummy/app/models/concerns/.keep +0 -0
  318. data/store/spec/dummy/app/views/layouts/application.html.erb +14 -0
  319. data/store/spec/dummy/app/views/layouts/mailer.html.erb +13 -0
  320. data/store/spec/dummy/app/views/layouts/mailer.text.erb +1 -0
  321. data/store/spec/dummy/bin/bundle +3 -0
  322. data/store/spec/dummy/bin/rails +4 -0
  323. data/store/spec/dummy/bin/rake +4 -0
  324. data/store/spec/dummy/bin/setup +34 -0
  325. data/store/spec/dummy/bin/update +29 -0
  326. data/store/spec/dummy/config/application.rb +24 -0
  327. data/store/spec/dummy/config/boot.rb +5 -0
  328. data/store/spec/dummy/config/database.yml +25 -0
  329. data/store/spec/dummy/config/environment.rb +5 -0
  330. data/store/spec/dummy/config/environments/development.rb +56 -0
  331. data/store/spec/dummy/config/environments/production.rb +82 -0
  332. data/store/spec/dummy/config/environments/test.rb +44 -0
  333. data/store/spec/dummy/config/initializers/active_record_belongs_to_required_by_default.rb +5 -0
  334. data/store/spec/dummy/config/initializers/application_controller_renderer.rb +6 -0
  335. data/store/spec/dummy/config/initializers/assets.rb +11 -0
  336. data/store/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  337. data/store/spec/dummy/config/initializers/callback_terminator.rb +5 -0
  338. data/store/spec/dummy/config/initializers/cookies_serializer.rb +4 -0
  339. data/store/spec/dummy/config/initializers/cors.rb +16 -0
  340. data/store/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  341. data/store/spec/dummy/config/initializers/inflections.rb +16 -0
  342. data/store/spec/dummy/config/initializers/mime_types.rb +4 -0
  343. data/store/spec/dummy/config/initializers/request_forgery_protection.rb +4 -0
  344. data/store/spec/dummy/config/initializers/session_store.rb +3 -0
  345. data/store/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  346. data/store/spec/dummy/config/locales/en.yml +23 -0
  347. data/store/spec/dummy/config/redis/cable.yml +9 -0
  348. data/store/spec/dummy/config/routes.rb +4 -0
  349. data/store/spec/dummy/config/secrets.yml +22 -0
  350. data/store/spec/dummy/config.ru +9 -0
  351. data/store/spec/dummy/db/migrate/20160118140340_create_bouquet_products.bouquet.rb +11 -0
  352. data/store/spec/dummy/db/migrate/20160118140341_create_bouquet_materials.bouquet.rb +13 -0
  353. data/store/spec/dummy/db/migrate/20160118140342_create_bouquet_assemblies.bouquet.rb +13 -0
  354. data/store/spec/dummy/db/migrate/20160118140343_create_bouquet_customers.bouquet.rb +11 -0
  355. data/store/spec/dummy/db/migrate/20160118140344_create_bouquet_suppliers.bouquet.rb +11 -0
  356. data/store/spec/dummy/db/migrate/20160118140345_create_bouquet_locations.bouquet.rb +11 -0
  357. data/store/spec/dummy/db/migrate/20160118140346_create_bouquet_shipments.bouquet.rb +13 -0
  358. data/store/spec/dummy/db/migrate/20160118140347_create_bouquet_deliveries.bouquet.rb +14 -0
  359. data/store/spec/dummy/db/migrate/20160118140348_create_bouquet_purchase_orders.bouquet.rb +15 -0
  360. data/store/spec/dummy/db/migrate/20160118140349_create_bouquet_arrivals.bouquet.rb +13 -0
  361. data/store/spec/dummy/db/migrate/20160118140350_create_bouquet_stocks.bouquet.rb +14 -0
  362. data/store/spec/dummy/db/migrate/20160118140351_create_bouquet_sales_orders.bouquet.rb +15 -0
  363. data/store/spec/dummy/db/migrate/20160118140352_create_bouquet_storages.bouquet.rb +13 -0
  364. data/store/spec/dummy/db/migrate/20160118140353_create_bouquet_retrievals.bouquet.rb +14 -0
  365. data/store/spec/dummy/db/schema.rb +156 -0
  366. data/store/spec/dummy/db/seeds.rb +36 -0
  367. data/store/spec/dummy/lib/assets/.keep +0 -0
  368. data/store/spec/dummy/log/.keep +0 -0
  369. data/store/spec/dummy/public/404.html +67 -0
  370. data/store/spec/dummy/public/422.html +67 -0
  371. data/store/spec/dummy/public/500.html +66 -0
  372. data/store/spec/dummy/public/favicon.ico +0 -0
  373. data/store/spec/rails_helper.rb +50 -0
  374. data/store/spec/spec_helper.rb +85 -0
  375. data/store/spec/views/bouquet/store/main/index.html.erb_spec.rb +5 -0
  376. metadata +363 -24
  377. data/core/README.rdoc +0 -3
  378. data/core/app/controllers/bouquet_core/application_controller.rb +0 -4
  379. data/core/app/helpers/bouquet_core/application_helper.rb +0 -4
  380. data/core/app/views/layouts/bouquet_core/application.html.erb +0 -14
  381. data/core/db/migrate/20151122145140_create_bouquet_products.rb +0 -9
  382. data/gate/README.rdoc +0 -3
  383. data/gate/app/helpers/bouquet_gate/application_helper.rb +0 -4
  384. data/gate/app/views/bouquet/gate/products/index.json.jbuilder +0 -3
  385. data/gate/app/views/bouquet/gate/products/show.json.jbuilder +0 -1
  386. data/gate/app/views/layouts/bouquet_gate/application.html.erb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8209b84f641ed635e814e5c7941663e19214c574
4
- data.tar.gz: 268996ceeaf4d7dc97c10eba9e8a15a39ca64bcb
3
+ metadata.gz: 017d860432b19e1c3713cba0a775a123330c1c25
4
+ data.tar.gz: 87f3051f157c9a05a7ec4c77a2a9c56cc93e8820
5
5
  SHA512:
6
- metadata.gz: 7a5e1a1e5019855e4628603b763be634dc548ceecfcec2bbc6ecd03003f3fcfcf51b5d68d543d06b6032d8fa0cf8560d07e96e16e6cb9d518e1d0fb985afa3c9
7
- data.tar.gz: 4878a37ea15d95750c83bc36915b7e9de69b56b50572a2ae4f708f671d325f3db055970fde120c694a19c4b36473fa193e937e2ced1525acd6763f4bb60e91a1
6
+ metadata.gz: 9c862f50e59d4efed00cd84175aa624c2960d63a8b44fc57a25462dd766e454414f75fdc457274f7c6051bc62e3ed776977f4ae0d551d859d569165f2ba5b1f7
7
+ data.tar.gz: ef649adacf6f6dc6f9a51542c15d15a9d022a335e63e14fbee75764d5718570d4caf994eb692c22de1af97ef31eecc3c796d266827c12fb9e3ce86a6dc1a8a9a
data/.gitignore CHANGED
@@ -1,11 +1,14 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
3
  /Gemfile.lock
4
- */Gemfile.lock
5
4
  /_yardoc/
6
5
  /coverage/
7
6
  /doc/
8
- pkg/
7
+ /pkg/
9
8
  /spec/reports/
10
- tmp/
11
- **/spec/dummy
9
+ /tmp/
10
+ */spec/dummy/db/*.sqlite3
11
+ */spec/dummy/db/*.sqlite3-journal
12
+ */spec/dummy/log/*.log
13
+ */spec/dummy/tmp/
14
+ */node_modules
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2015 ogom
3
+ Copyright (c) 2016 ogom
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,8 +1,6 @@
1
1
  # Bouquet
2
2
 
3
- Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/bouquet`. To experiment with that code, run `bin/console` for an interactive prompt.
4
-
5
- TODO: Delete this and the text above, and describe your gem
3
+ Implement florist in Ruby on Rails.
6
4
 
7
5
  ## Installation
8
6
 
@@ -12,30 +10,15 @@ Add this line to your application's Gemfile:
12
10
  gem 'bouquet'
13
11
  ```
14
12
 
15
- And then execute:
16
-
17
- $ bundle
18
-
19
- Or install it yourself as:
20
-
21
- $ gem install bouquet
22
-
23
13
  ## Usage
24
14
 
25
- TODO: Write usage instructions here
26
-
27
- ## Development
28
-
29
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
30
-
31
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
32
-
33
- ## Contributing
34
-
35
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/bouquet. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
36
-
15
+ ```
16
+ Rails.application.routes.draw do
17
+ mount Bouquet::Gate::Engine => '/api'
18
+ mount Bouquet::Store::Engine => '/store'
19
+ end
20
+ ```
37
21
 
38
22
  ## License
39
23
 
40
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
-
24
+ * MIT
data/bouquet.gemspec CHANGED
@@ -19,8 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency "bouquet_core"
23
- spec.add_dependency "bouquet_gate"
22
+ spec.add_dependency "bouquet-core"
23
+ spec.add_dependency "bouquet-gate"
24
+ spec.add_dependency "bouquet-store"
24
25
 
25
26
  spec.add_development_dependency "bundler", "~> 1.10"
26
27
  spec.add_development_dependency "rake", "~> 10.0"
data/core/.gitignore CHANGED
@@ -5,4 +5,3 @@ spec/dummy/db/*.sqlite3
5
5
  spec/dummy/db/*.sqlite3-journal
6
6
  spec/dummy/log/*.log
7
7
  spec/dummy/tmp/
8
- spec/dummy/.sass-cache
data/core/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Declare your gem's dependencies in bouquet_core.gemspec.
3
+ # Declare your gem's dependencies in bouquet-core.gemspec.
4
4
  # Bundler will treat runtime dependencies like base dependencies, and
5
5
  # development dependencies will be added by default to the :development group.
6
6
  gemspec
@@ -10,8 +10,7 @@ gemspec
10
10
  # Git. Remember to move these dependencies to your gemspec before releasing
11
11
  # your gem to rubygems.org.
12
12
 
13
- # To use a debugger
14
- # gem 'byebug', group: [:development, :test]
15
-
13
+ gem 'pry-rails', group: [:development, :test]
16
14
  gem 'rspec-rails', group: [:development, :test]
17
15
  gem 'factory_girl_rails', group: [:development, :test]
16
+ gem 'rails-erd', group: [:development, :test]
data/core/Gemfile.lock ADDED
@@ -0,0 +1,205 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ bouquet-core (0.1.0)
5
+ rails (>= 5.0.0.beta1, < 5.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actioncable (5.0.0.beta1)
11
+ actionpack (= 5.0.0.beta1)
12
+ celluloid (~> 0.17.2)
13
+ coffee-rails (~> 4.1.0)
14
+ em-hiredis (~> 0.3.0)
15
+ faye-websocket (~> 0.10.0)
16
+ redis (~> 3.0)
17
+ websocket-driver (~> 0.6.1)
18
+ actionmailer (5.0.0.beta1)
19
+ actionpack (= 5.0.0.beta1)
20
+ actionview (= 5.0.0.beta1)
21
+ activejob (= 5.0.0.beta1)
22
+ mail (~> 2.5, >= 2.5.4)
23
+ rails-dom-testing (~> 1.0, >= 1.0.5)
24
+ actionpack (5.0.0.beta1)
25
+ actionview (= 5.0.0.beta1)
26
+ activesupport (= 5.0.0.beta1)
27
+ rack (~> 2.x)
28
+ rack-test (~> 0.6.3)
29
+ rails-dom-testing (~> 1.0, >= 1.0.5)
30
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
31
+ actionview (5.0.0.beta1)
32
+ activesupport (= 5.0.0.beta1)
33
+ builder (~> 3.1)
34
+ erubis (~> 2.7.0)
35
+ rails-dom-testing (~> 1.0, >= 1.0.5)
36
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
37
+ activejob (5.0.0.beta1)
38
+ activesupport (= 5.0.0.beta1)
39
+ globalid (>= 0.3.6)
40
+ activemodel (5.0.0.beta1)
41
+ activesupport (= 5.0.0.beta1)
42
+ builder (~> 3.1)
43
+ activerecord (5.0.0.beta1)
44
+ activemodel (= 5.0.0.beta1)
45
+ activesupport (= 5.0.0.beta1)
46
+ arel (~> 7.0)
47
+ activesupport (5.0.0.beta1)
48
+ concurrent-ruby (~> 1.0)
49
+ i18n (~> 0.7)
50
+ json (~> 1.7, >= 1.7.7)
51
+ method_source
52
+ minitest (~> 5.1)
53
+ tzinfo (~> 1.1)
54
+ arel (7.0.0)
55
+ builder (3.2.2)
56
+ celluloid (0.17.2)
57
+ celluloid-essentials
58
+ celluloid-extras
59
+ celluloid-fsm
60
+ celluloid-pool
61
+ celluloid-supervision
62
+ timers (>= 4.1.1)
63
+ celluloid-essentials (0.20.5)
64
+ timers (>= 4.1.1)
65
+ celluloid-extras (0.20.5)
66
+ timers (>= 4.1.1)
67
+ celluloid-fsm (0.20.5)
68
+ timers (>= 4.1.1)
69
+ celluloid-pool (0.20.5)
70
+ timers (>= 4.1.1)
71
+ celluloid-supervision (0.20.5)
72
+ timers (>= 4.1.1)
73
+ choice (0.2.0)
74
+ coderay (1.1.0)
75
+ coffee-rails (4.1.1)
76
+ coffee-script (>= 2.2.0)
77
+ railties (>= 4.0.0, < 5.1.x)
78
+ coffee-script (2.4.1)
79
+ coffee-script-source
80
+ execjs
81
+ coffee-script-source (1.10.0)
82
+ concurrent-ruby (1.0.0)
83
+ diff-lcs (1.2.5)
84
+ em-hiredis (0.3.0)
85
+ eventmachine (~> 1.0)
86
+ hiredis (~> 0.5.0)
87
+ erubis (2.7.0)
88
+ eventmachine (1.0.8)
89
+ execjs (2.6.0)
90
+ factory_girl (4.5.0)
91
+ activesupport (>= 3.0.0)
92
+ factory_girl_rails (4.5.0)
93
+ factory_girl (~> 4.5.0)
94
+ railties (>= 3.0.0)
95
+ faye-websocket (0.10.2)
96
+ eventmachine (>= 0.12.0)
97
+ websocket-driver (>= 0.5.1)
98
+ globalid (0.3.6)
99
+ activesupport (>= 4.1.0)
100
+ hiredis (0.5.2)
101
+ hitimes (1.2.3)
102
+ i18n (0.7.0)
103
+ json (1.8.3)
104
+ loofah (2.0.3)
105
+ nokogiri (>= 1.5.9)
106
+ mail (2.6.3)
107
+ mime-types (>= 1.16, < 3)
108
+ method_source (0.8.2)
109
+ mime-types (2.99)
110
+ mini_portile2 (2.0.0)
111
+ minitest (5.8.3)
112
+ nokogiri (1.6.7.1)
113
+ mini_portile2 (~> 2.0.0.rc2)
114
+ pry (0.10.3)
115
+ coderay (~> 1.1.0)
116
+ method_source (~> 0.8.1)
117
+ slop (~> 3.4)
118
+ pry-rails (0.3.4)
119
+ pry (>= 0.9.10)
120
+ rack (2.0.0.alpha)
121
+ json
122
+ rack-test (0.6.3)
123
+ rack (>= 1.0)
124
+ rails (5.0.0.beta1)
125
+ actioncable (= 5.0.0.beta1)
126
+ actionmailer (= 5.0.0.beta1)
127
+ actionpack (= 5.0.0.beta1)
128
+ actionview (= 5.0.0.beta1)
129
+ activejob (= 5.0.0.beta1)
130
+ activemodel (= 5.0.0.beta1)
131
+ activerecord (= 5.0.0.beta1)
132
+ activesupport (= 5.0.0.beta1)
133
+ bundler (>= 1.3.0, < 2.0)
134
+ railties (= 5.0.0.beta1)
135
+ sprockets-rails (>= 2.0.0)
136
+ rails-deprecated_sanitizer (1.0.3)
137
+ activesupport (>= 4.2.0.alpha)
138
+ rails-dom-testing (1.0.7)
139
+ activesupport (>= 4.2.0.beta, < 5.0)
140
+ nokogiri (~> 1.6.0)
141
+ rails-deprecated_sanitizer (>= 1.0.1)
142
+ rails-erd (1.4.4)
143
+ activerecord (>= 3.2)
144
+ activesupport (>= 3.2)
145
+ choice (~> 0.2.0)
146
+ ruby-graphviz (~> 1.2)
147
+ rails-html-sanitizer (1.0.2)
148
+ loofah (~> 2.0)
149
+ railties (5.0.0.beta1)
150
+ actionpack (= 5.0.0.beta1)
151
+ activesupport (= 5.0.0.beta1)
152
+ method_source
153
+ rake (>= 0.8.7)
154
+ thor (>= 0.18.1, < 2.0)
155
+ rake (10.4.2)
156
+ redis (3.2.2)
157
+ rspec-core (3.1.7)
158
+ rspec-support (~> 3.1.0)
159
+ rspec-expectations (3.1.2)
160
+ diff-lcs (>= 1.2.0, < 2.0)
161
+ rspec-support (~> 3.1.0)
162
+ rspec-mocks (3.1.3)
163
+ rspec-support (~> 3.1.0)
164
+ rspec-rails (3.1.0)
165
+ actionpack (>= 3.0)
166
+ activesupport (>= 3.0)
167
+ railties (>= 3.0)
168
+ rspec-core (~> 3.1.0)
169
+ rspec-expectations (~> 3.1.0)
170
+ rspec-mocks (~> 3.1.0)
171
+ rspec-support (~> 3.1.0)
172
+ rspec-support (3.1.2)
173
+ ruby-graphviz (1.2.2)
174
+ slop (3.6.0)
175
+ sprockets (3.5.2)
176
+ concurrent-ruby (~> 1.0)
177
+ rack (> 1, < 3)
178
+ sprockets-rails (3.0.0)
179
+ actionpack (>= 4.0)
180
+ activesupport (>= 4.0)
181
+ sprockets (>= 3.0.0)
182
+ sqlite3 (1.3.11)
183
+ thor (0.19.1)
184
+ thread_safe (0.3.5)
185
+ timers (4.1.1)
186
+ hitimes
187
+ tzinfo (1.2.2)
188
+ thread_safe (~> 0.1)
189
+ websocket-driver (0.6.3)
190
+ websocket-extensions (>= 0.1.0)
191
+ websocket-extensions (0.1.2)
192
+
193
+ PLATFORMS
194
+ ruby
195
+
196
+ DEPENDENCIES
197
+ bouquet-core!
198
+ factory_girl_rails
199
+ pry-rails
200
+ rails-erd
201
+ rspec-rails
202
+ sqlite3
203
+
204
+ BUNDLED WITH
205
+ 1.11.2
data/core/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2015 ogom
1
+ Copyright 2016 ogom
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/core/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Bouquet::Core
2
+
3
+ This project rocks and uses MIT-LICENSE.
data/core/Rakefile CHANGED
@@ -8,9 +8,9 @@ require 'rdoc/task'
8
8
 
9
9
  RDoc::Task.new(:rdoc) do |rdoc|
10
10
  rdoc.rdoc_dir = 'rdoc'
11
- rdoc.title = 'BouquetCore'
11
+ rdoc.title = 'Bouquet::Core'
12
12
  rdoc.options << '--line-numbers'
13
- rdoc.rdoc_files.include('README.rdoc')
13
+ rdoc.rdoc_files.include('README.md')
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
15
15
  end
16
16
 
@@ -0,0 +1,6 @@
1
+ module Bouquet
2
+ module Core
3
+ class ApplicationController < ActionController::API
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Bouquet
2
+ module Core
3
+ class ApplicationJob < ActiveJob::Base
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ module Bouquet
2
+ module Core
3
+ class ApplicationRecord < ActiveRecord::Base
4
+ self.abstract_class = true
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Bouquet
2
+ class Arrival < ApplicationRecord
3
+ belongs_to :purchase_order
4
+ has_many :stocks
5
+ has_many :locations, through: :stocks
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ # Bouquet::Product.find_by(name: :p1).assemblies.create(material_id: Bouquet::Material.find_by(name: :m1).id)
2
+ # Bouquet::Product.find_by(name: :p1).assemblies.create(material_id: Bouquet::Material.find_by(name: :m2).id)
3
+ module Bouquet
4
+ class Assembly < ApplicationRecord
5
+ belongs_to :product
6
+ belongs_to :material
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ module Bouquet
2
+ class Customer < ApplicationRecord
3
+ has_many :sales_orders
4
+ has_many :products, through: :sales_orders
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ module Bouquet
2
+ class Delivery < ApplicationRecord
3
+ belongs_to :shipment
4
+ belongs_to :location
5
+ has_many :retrievals
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ # Bouquet::Location.create(name: :l1)
2
+ # Bouquet::Location.find_by(name: :l1)
3
+ module Bouquet
4
+ class Location < ApplicationRecord
5
+ has_many :deliveries
6
+ has_many :shipments, through: :deliveries
7
+ has_many :stocks
8
+ has_many :arrivals, through: :stocks
9
+ end
10
+ end
@@ -0,0 +1,7 @@
1
+ # Bouquet::Material.find_by(name: :m1).products
2
+ module Bouquet
3
+ class Material < ApplicationRecord
4
+ has_many :assemblies
5
+ has_many :products, through: :assemblies
6
+ end
7
+ end
@@ -1,4 +1,9 @@
1
+ # Bouquet::Product.find_by(name: :p1).materials
1
2
  module Bouquet
2
- class Product < ActiveRecord::Base
3
+ class Product < ApplicationRecord
4
+ has_many :assemblies
5
+ has_many :materials, through: :assemblies
6
+ has_many :sales_orders
7
+ has_many :customers, through: :sales_orders
3
8
  end
4
9
  end
@@ -0,0 +1,23 @@
1
+ # purchase_order = Bouquet::PurchaseOrder.new(quantity: 1, material_id: 1, supplier_id: 1)
2
+ # purchase_order.save
3
+ # purchase_order.arrival.stocks.first.storages.first
4
+ module Bouquet
5
+ class PurchaseOrder < ApplicationRecord
6
+ belongs_to :material
7
+ belongs_to :supplier
8
+ has_one :arrival, dependent: :destroy
9
+
10
+ after_create do
11
+ location = Bouquet::Location.first
12
+
13
+ arrival = build_arrival(quantity: quantity, date: Time.current)
14
+ arrival.save
15
+
16
+ stock = arrival.stocks.new(quantity: quantity, date: Time.current, location_id: location.id)
17
+ stock.save
18
+
19
+ storage = stock.storages.new(initial_quantity: quantity, date: Time.current)
20
+ storage.save
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,7 @@
1
+ # Bouquet::Retrieval
2
+ module Bouquet
3
+ class Retrieval < ApplicationRecord
4
+ belongs_to :storage
5
+ belongs_to :delivery
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ # sales_order = Bouquet::SalesOrder.new(quantity: 1, customer_id: 1, product_id: 1)
2
+ # sales_order.save
3
+ # Bouquet::SalesOrder.last.shipping
4
+ module Bouquet
5
+ class SalesOrder < ApplicationRecord
6
+ belongs_to :product
7
+ belongs_to :customer
8
+ has_one :shipment, dependent: :destroy
9
+
10
+ def shipping
11
+ shipment = build_shipment
12
+ shipment.date = Time.current
13
+ shipment.save
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,44 @@
1
+ # Bouquet::Shipment.last.delivering
2
+ module Bouquet
3
+ class Shipment < ApplicationRecord
4
+ belongs_to :sales_order
5
+ has_many :deliveries
6
+ has_many :locations, through: :deliveries
7
+
8
+ def delivering
9
+ location = Bouquet::Location.first
10
+
11
+ deliverie = deliveries.new(quantity: quantity, location_id: location.id)
12
+ deliverie.date = Time.current
13
+ deliverie.save
14
+
15
+ sales_order.product.assemblies.each do |assembly|
16
+ assembly_quantity = assembly.quantity
17
+
18
+ storages = Bouquet::Storage.with_material(assembly.material_id)
19
+ storages.each do |storage|
20
+ break if assembly_quantity <= 0
21
+
22
+ if storage.quantity > 0
23
+ retrieval_quantity = if storage.quantity - assembly_quantity >= 0
24
+ assembly_quantity
25
+ else
26
+ storage.quantity
27
+ end
28
+
29
+ retrieval = deliverie.retrievals.create(quantity: retrieval_quantity, storage_id: storage.id)
30
+ retrieval.date = Time.current
31
+ retrieval.save
32
+
33
+ assembly_quantity = assembly_quantity - retrieval_quantity
34
+ end
35
+ end
36
+
37
+ if assembly_quantity > 0
38
+ puts "Delivering Error: Shortage #{assembly.material.name} = #{assembly_quantity}"
39
+ raise ActiveRecord::Rollback
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,7 @@
1
+ module Bouquet
2
+ class Stock < ApplicationRecord
3
+ belongs_to :arrival
4
+ belongs_to :location
5
+ has_many :storages
6
+ end
7
+ end
@@ -0,0 +1,30 @@
1
+ # Bouquet::Storage.all
2
+ # Bouquet::Storage.with_material(1)
3
+ # Bouquet::Storage.last.quantity
4
+ module Bouquet
5
+ class Storage < ApplicationRecord
6
+ belongs_to :stock
7
+ has_many :retrievals
8
+
9
+ scope :with_material, ->(id) {
10
+ joins({stock: {arrival: :purchase_order}})
11
+ .where(bouquet_purchase_orders: {material_id: id})
12
+ }
13
+
14
+ def retrieval_quantity
15
+ retrievals.reduce(0) {|sum, retrieval| sum + retrieval.quantity}
16
+ end
17
+
18
+ def quantity
19
+ initial_quantity - retrieval_quantity
20
+ end
21
+
22
+ def material_id
23
+ stock.arrival.purchase_order.material_id
24
+ end
25
+
26
+ def material_name
27
+ stock.arrival.purchase_order.material.name
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,6 @@
1
+ module Bouquet
2
+ class Supplier < ApplicationRecord
3
+ has_many :purchase_orders
4
+ has_many :materials, through: :purchase_orders
5
+ end
6
+ end
@@ -5,18 +5,18 @@ require "bouquet/core/version"
5
5
 
6
6
  # Describe your gem and declare its dependencies:
7
7
  Gem::Specification.new do |s|
8
- s.name = "bouquet_core"
8
+ s.name = "bouquet-core"
9
9
  s.version = Bouquet::Core::VERSION
10
10
  s.authors = ["ogom"]
11
11
  s.email = ["ogom@outlook.com"]
12
12
  s.homepage = "https://github.com/dddrb/bouquet"
13
- s.summary = "Summary of BouquetCore."
14
- s.description = "Description of BouquetCore."
13
+ s.summary = "Summary of Bouquet::Core."
14
+ s.description = "Description of Bouquet::Core."
15
15
  s.license = "MIT"
16
16
 
17
- s.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.rdoc"]
17
+ s.files = Dir["{app,config,db,lib}/**/*", "MIT-LICENSE", "Rakefile", "README.md"]
18
18
 
19
- s.add_dependency "rails", "~> 4.2.5"
19
+ s.add_dependency "rails", ">= 5.0.0.beta1", "< 5.1"
20
20
 
21
21
  s.add_development_dependency "sqlite3"
22
22
  end
@@ -0,0 +1,10 @@
1
+ class CreateBouquetProducts < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :bouquet_products do |t|
4
+ t.string :name
5
+ t.integer :price
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ class CreateBouquetMaterials < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :bouquet_materials do |t|
4
+ t.string :name
5
+ t.integer :expiration_days
6
+ t.integer :order_lead_time
7
+ t.integer :order_quantity
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateBouquetAssemblies < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :bouquet_assemblies do |t|
4
+ t.string :name
5
+ t.integer :quantity
6
+ t.references :product, index: true, foreign_key: true
7
+ t.references :material, index: true, foreign_key: true
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,10 @@
1
+ class CreateBouquetCustomers < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :bouquet_customers do |t|
4
+ t.string :name
5
+ t.string :email
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end