cats_core 1.5.16 → 1.5.18

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 (263) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +7 -7
  3. data/app/controllers/cats/core/access_controller.rb +4 -4
  4. data/app/controllers/cats/core/application_controller.rb +4 -4
  5. data/app/controllers/cats/core/commodities_controller.rb +7 -7
  6. data/app/controllers/cats/core/commodity_categories_controller.rb +4 -4
  7. data/app/controllers/cats/core/dispatch_authorizations_controller.rb +30 -7
  8. data/app/controllers/cats/core/dispatch_plan_items_controller.rb +4 -4
  9. data/app/controllers/cats/core/dispatch_plans_controller.rb +10 -10
  10. data/app/controllers/cats/core/dispatch_transactions_controller.rb +5 -5
  11. data/app/controllers/cats/core/dispatches_controller.rb +19 -19
  12. data/app/controllers/cats/core/loans_controller.rb +1 -1
  13. data/app/controllers/cats/core/locations_controller.rb +4 -4
  14. data/app/controllers/cats/core/menus_controller.rb +1 -1
  15. data/app/controllers/cats/core/notifications_controller.rb +5 -5
  16. data/app/controllers/cats/core/purchase_orders_controller.rb +3 -3
  17. data/app/controllers/cats/core/receipt_authorizations_controller.rb +30 -18
  18. data/app/controllers/cats/core/receipt_transactions_controller.rb +4 -4
  19. data/app/controllers/cats/core/receipts_controller.rb +1 -1
  20. data/app/controllers/cats/core/roles_controller.rb +3 -3
  21. data/app/controllers/cats/core/round_beneficiaries_controller.rb +13 -13
  22. data/app/controllers/cats/core/round_plans_controller.rb +13 -13
  23. data/app/controllers/cats/core/routes_controller.rb +2 -2
  24. data/app/controllers/cats/core/spaces_controller.rb +1 -1
  25. data/app/controllers/cats/core/stack_transactions_controller.rb +3 -3
  26. data/app/controllers/cats/core/stacks_controller.rb +15 -7
  27. data/app/controllers/cats/core/stores_controller.rb +14 -14
  28. data/app/controllers/cats/core/swaps_controller.rb +2 -2
  29. data/app/controllers/cats/core/transporters_controller.rb +1 -1
  30. data/app/controllers/cats/core/users_controller.rb +24 -12
  31. data/app/controllers/concerns/cats/core/common.rb +24 -23
  32. data/app/helpers/cats/core/document_helper.rb +1 -1
  33. data/app/models/cats/core/authorization.rb +9 -9
  34. data/app/models/cats/core/beneficiary.rb +6 -6
  35. data/app/models/cats/core/beneficiary_plan_item.rb +9 -9
  36. data/app/models/cats/core/beneficiary_round_plan_item.rb +2 -2
  37. data/app/models/cats/core/cash_donation.rb +1 -1
  38. data/app/models/cats/core/commodity.rb +47 -33
  39. data/app/models/cats/core/commodity_donation.rb +2 -2
  40. data/app/models/cats/core/commodity_substitution.rb +15 -7
  41. data/app/models/cats/core/contract_item.rb +2 -2
  42. data/app/models/cats/core/dispatch.rb +36 -21
  43. data/app/models/cats/core/dispatch_authorization.rb +31 -5
  44. data/app/models/cats/core/dispatch_plan.rb +19 -10
  45. data/app/models/cats/core/dispatch_plan_item.rb +27 -14
  46. data/app/models/cats/core/dispatch_transaction.rb +15 -5
  47. data/app/models/cats/core/gift_certificate.rb +3 -3
  48. data/app/models/cats/core/hub_authorization.rb +7 -7
  49. data/app/models/cats/core/loan.rb +2 -2
  50. data/app/models/cats/core/location.rb +12 -8
  51. data/app/models/cats/core/lost_commodity.rb +2 -2
  52. data/app/models/cats/core/notification.rb +2 -2
  53. data/app/models/cats/core/offer_item.rb +4 -4
  54. data/app/models/cats/core/plan.rb +9 -9
  55. data/app/models/cats/core/plan_item.rb +5 -5
  56. data/app/models/cats/core/plan_item_detail.rb +2 -2
  57. data/app/models/cats/core/project.rb +1 -1
  58. data/app/models/cats/core/purchase_order.rb +5 -5
  59. data/app/models/cats/core/ration.rb +1 -1
  60. data/app/models/cats/core/receipt.rb +5 -5
  61. data/app/models/cats/core/receipt_authorization.rb +6 -2
  62. data/app/models/cats/core/receipt_transaction.rb +8 -4
  63. data/app/models/cats/core/rhn_request.rb +8 -8
  64. data/app/models/cats/core/role_menu.rb +1 -1
  65. data/app/models/cats/core/round_beneficiary.rb +10 -2
  66. data/app/models/cats/core/round_plan.rb +15 -11
  67. data/app/models/cats/core/round_plan_item.rb +9 -5
  68. data/app/models/cats/core/round_plan_item_detail.rb +3 -3
  69. data/app/models/cats/core/round_ration.rb +2 -2
  70. data/app/models/cats/core/route.rb +12 -8
  71. data/app/models/cats/core/stack.rb +52 -34
  72. data/app/models/cats/core/stack_transaction.rb +3 -3
  73. data/app/models/cats/core/stacking_rule.rb +2 -2
  74. data/app/models/cats/core/store.rb +29 -7
  75. data/app/models/cats/core/swap.rb +5 -5
  76. data/app/models/cats/core/transaction.rb +6 -6
  77. data/app/models/cats/core/transport_bid.rb +13 -13
  78. data/app/models/cats/core/transport_bid_item.rb +2 -2
  79. data/app/models/cats/core/transport_offer.rb +3 -3
  80. data/app/models/cats/core/transport_order.rb +8 -8
  81. data/app/models/cats/core/transport_order_item.rb +2 -2
  82. data/app/models/cats/core/transport_plan.rb +7 -7
  83. data/app/models/cats/core/transport_plan_item.rb +2 -2
  84. data/app/models/cats/core/transport_requisition.rb +9 -9
  85. data/app/models/cats/core/transport_requisition_detail.rb +2 -2
  86. data/app/models/cats/core/transport_requisition_item.rb +3 -3
  87. data/app/models/cats/core/transporter.rb +4 -0
  88. data/app/models/cats/core/unit_conversion.rb +4 -4
  89. data/app/models/cats/core/unit_of_measure.rb +4 -4
  90. data/app/models/cats/core/user.rb +11 -11
  91. data/app/models/concerns/cats/core/dispatchable.rb +3 -3
  92. data/app/notifications/cats/core/allocation_notification.rb +1 -1
  93. data/app/notifications/cats/core/dispatch_authorization_notification.rb +35 -0
  94. data/app/notifications/cats/core/dispatch_notification.rb +1 -1
  95. data/app/notifications/cats/core/receipt_authorization_notification.rb +1 -1
  96. data/app/notifications/cats/core/round_plan_notification.rb +1 -1
  97. data/app/notifications/cats/core/simple_notification.rb +1 -1
  98. data/app/serializers/cats/core/cash_donation_serializer.rb +1 -1
  99. data/app/serializers/cats/core/commodity_donation_serializer.rb +2 -2
  100. data/app/serializers/cats/core/commodity_serializer.rb +2 -2
  101. data/app/serializers/cats/core/dispatch_authorization_serializer.rb +2 -2
  102. data/app/serializers/cats/core/dispatch_plan_item_serializer.rb +3 -3
  103. data/app/serializers/cats/core/dispatch_plan_serializer.rb +1 -1
  104. data/app/serializers/cats/core/dispatch_serializer.rb +2 -2
  105. data/app/serializers/cats/core/dispatch_transaction_serializer.rb +1 -1
  106. data/app/serializers/cats/core/loan_serializer.rb +1 -1
  107. data/app/serializers/cats/core/purchase_order_serializer.rb +2 -2
  108. data/app/serializers/cats/core/receipt_authorization_serializer.rb +2 -2
  109. data/app/serializers/cats/core/receipt_serializer.rb +1 -1
  110. data/app/serializers/cats/core/receipt_transaction_serializer.rb +2 -2
  111. data/app/serializers/cats/core/round_beneficiary_serializer.rb +1 -1
  112. data/app/serializers/cats/core/round_plan_serializer.rb +1 -1
  113. data/app/serializers/cats/core/stack_serializer.rb +1 -1
  114. data/app/serializers/cats/core/store_serializer.rb +1 -1
  115. data/app/serializers/cats/core/swap_serializer.rb +2 -2
  116. data/app/services/cats/core/authorization_service.rb +36 -18
  117. data/app/services/cats/core/beneficiary_service.rb +11 -11
  118. data/app/services/cats/core/dispatch_plan_service.rb +10 -10
  119. data/app/services/cats/core/dispatch_service.rb +31 -31
  120. data/app/services/cats/core/notification_service.rb +5 -5
  121. data/app/services/cats/core/round_plan_service.rb +23 -23
  122. data/app/services/cats/core/space_service.rb +11 -11
  123. data/app/services/cats/core/stack_service.rb +10 -10
  124. data/app/services/cats/core/token_auth_service.rb +4 -4
  125. data/app/services/cats/core/user_service.rb +19 -0
  126. data/app/utils/cats/core/util.rb +1 -1
  127. data/config/routes.rb +110 -105
  128. data/config/spring.rb +1 -0
  129. data/db/migrate/20210715114910_create_cats_core_users.rb +3 -3
  130. data/db/migrate/20210715120018_create_cats_core_roles.rb +14 -14
  131. data/db/migrate/20210715121244_create_cats_core_menus.rb +3 -3
  132. data/db/migrate/20210715122141_create_cats_core_menu_items.rb +3 -3
  133. data/db/migrate/20210715122423_create_cats_core_role_menus.rb +13 -13
  134. data/db/migrate/20210717031810_create_cats_core_plans.rb +4 -4
  135. data/db/migrate/20210717032024_create_cats_core_plan_items.rb +18 -18
  136. data/db/migrate/20210717032260_create_cats_core_beneficiary_categories.rb +3 -3
  137. data/db/migrate/20210717032270_create_cats_core_rations.rb +10 -10
  138. data/db/migrate/20210717032290_create_cats_core_beneficiary_plan_items.rb +7 -7
  139. data/db/migrate/20210717032295_create_cats_core_plan_item_details.rb +7 -7
  140. data/db/migrate/20210717032330_create_cats_core_commodity_donations.rb +12 -12
  141. data/db/migrate/20210717032408_create_cats_core_cash_donations.rb +6 -6
  142. data/db/migrate/20210717032602_create_cats_core_gift_certificates.rb +12 -12
  143. data/db/migrate/20210717032855_create_cats_core_purchase_orders.rb +12 -12
  144. data/db/migrate/20210717032927_create_cats_core_projects.rb +3 -3
  145. data/db/migrate/20210717033223_create_cats_core_commodities.rb +10 -10
  146. data/db/migrate/20210717140855_create_cats_core_stores.rb +3 -3
  147. data/db/migrate/20210717171101_create_cats_core_stacks.rb +11 -11
  148. data/db/migrate/20210718040129_create_cats_core_routes.rb +9 -9
  149. data/db/migrate/20210718042755_create_cats_core_rhn_requests.rb +6 -6
  150. data/db/migrate/20210718043328_create_cats_core_dispatch_plans.rb +7 -7
  151. data/db/migrate/20210718043401_create_cats_core_dispatch_plan_items.rb +17 -17
  152. data/db/migrate/20210718045516_create_cats_core_dispatches.rb +13 -13
  153. data/db/migrate/20210718055414_create_cats_core_dispatch_authorizations.rb +13 -13
  154. data/db/migrate/20210718202957_create_cats_core_dispatch_transactions.rb +11 -11
  155. data/db/migrate/20210727074646_create_cats_core_receipt_authorizations.rb +13 -13
  156. data/db/migrate/20210727105834_create_cats_core_receipts.rb +6 -6
  157. data/db/migrate/20210728041505_create_cats_core_lost_commodities.rb +6 -6
  158. data/db/migrate/20210814160628_create_cats_core_receipt_transactions.rb +10 -10
  159. data/db/migrate/20210814175406_create_cats_core_stack_transactions.rb +10 -10
  160. data/db/migrate/20211024063240_add_status_to_cats_core_rhn_requests.rb +1 -1
  161. data/db/migrate/20211030133752_add_status_to_cats_core_commodities.rb +1 -1
  162. data/db/migrate/20211215114737_create_cats_core_transport_plans.rb +4 -4
  163. data/db/migrate/20211215114835_create_cats_core_transport_plan_items.rb +9 -9
  164. data/db/migrate/20211215121151_create_cats_core_transport_bids.rb +4 -4
  165. data/db/migrate/20211215124452_create_cats_core_transport_bid_items.rb +10 -10
  166. data/db/migrate/20211229160125_create_cats_core_transport_offers.rb +7 -7
  167. data/db/migrate/20211229160126_create_cats_core_offer_items.rb +6 -6
  168. data/db/migrate/20211229160127_create_cats_core_transport_contracts.rb +6 -6
  169. data/db/migrate/20211229160128_create_cats_core_contract_items.rb +9 -9
  170. data/db/migrate/20211229160129_create_cats_core_commodity_substitutions.rb +10 -10
  171. data/db/migrate/20220103152802_create_cats_core_tenderers.rb +6 -6
  172. data/db/migrate/20220107121752_create_cats_core_round_plans.rb +7 -7
  173. data/db/migrate/20220107122280_create_cats_core_round_rations.rb +12 -12
  174. data/db/migrate/20220107125025_create_cats_core_round_plan_items.rb +19 -19
  175. data/db/migrate/20220107126025_create_cats_core_beneficiary_round_plan_items.rb +8 -8
  176. data/db/migrate/20220107132433_create_cats_core_round_plan_item_details.rb +9 -9
  177. data/db/migrate/20220209083928_create_cats_core_hub_authorizations.rb +12 -12
  178. data/db/migrate/20220416143416_create_cats_core_unit_conversions.rb +6 -6
  179. data/db/migrate/20220417105839_create_cats_core_transport_requisitions.rb +12 -12
  180. data/db/migrate/20220417123835_create_cats_core_transport_requisition_items.rb +9 -9
  181. data/db/migrate/20220417151821_create_cats_core_transport_requisition_details.rb +6 -6
  182. data/db/migrate/20220506082329_create_cats_core_transport_orders.rb +10 -10
  183. data/db/migrate/20220506083042_create_cats_core_transport_order_items.rb +13 -13
  184. data/db/migrate/20220511082354_create_cats_core_beneficiaries.rb +6 -6
  185. data/db/migrate/20220626063501_create_cats_core_loans.rb +6 -6
  186. data/db/migrate/20220626063757_create_cats_core_swaps.rb +12 -12
  187. data/db/migrate/20220626132050_create_cats_core_round_beneficiaries.rb +13 -13
  188. data/db/migrate/20220923190857_create_cats_core_application_settings.rb +3 -3
  189. data/lib/cats/core/engine.rb +4 -4
  190. data/lib/cats/core/version.rb +1 -1
  191. data/lib/cats_core.rb +8 -8
  192. data/spec/factories/cats/core/application_modules.rb +1 -1
  193. data/spec/factories/cats/core/application_settings.rb +1 -1
  194. data/spec/factories/cats/core/beneficiaries.rb +3 -3
  195. data/spec/factories/cats/core/beneficiary_categories.rb +1 -1
  196. data/spec/factories/cats/core/beneficiary_plan_items.rb +1 -1
  197. data/spec/factories/cats/core/beneficiary_round_plan_items.rb +1 -1
  198. data/spec/factories/cats/core/cash_donations.rb +1 -1
  199. data/spec/factories/cats/core/commodities.rb +1 -1
  200. data/spec/factories/cats/core/commodity_categories.rb +1 -1
  201. data/spec/factories/cats/core/commodity_donations.rb +1 -1
  202. data/spec/factories/cats/core/commodity_substitutions.rb +2 -2
  203. data/spec/factories/cats/core/contract_items.rb +1 -1
  204. data/spec/factories/cats/core/currencies.rb +1 -1
  205. data/spec/factories/cats/core/dispatch_authorizations.rb +7 -11
  206. data/spec/factories/cats/core/dispatch_plan_items.rb +16 -1
  207. data/spec/factories/cats/core/dispatch_plans.rb +1 -1
  208. data/spec/factories/cats/core/dispatch_transactions.rb +2 -4
  209. data/spec/factories/cats/core/dispatches.rb +16 -25
  210. data/spec/factories/cats/core/donors.rb +1 -1
  211. data/spec/factories/cats/core/gift_certificates.rb +1 -1
  212. data/spec/factories/cats/core/hub_authorizations.rb +1 -1
  213. data/spec/factories/cats/core/loans.rb +1 -1
  214. data/spec/factories/cats/core/locations.rb +6 -6
  215. data/spec/factories/cats/core/lost_commodities.rb +1 -1
  216. data/spec/factories/cats/core/menu_items.rb +1 -1
  217. data/spec/factories/cats/core/menus.rb +1 -1
  218. data/spec/factories/cats/core/notification_rules.rb +1 -1
  219. data/spec/factories/cats/core/notifications.rb +2 -2
  220. data/spec/factories/cats/core/offer_items.rb +1 -1
  221. data/spec/factories/cats/core/operators.rb +1 -1
  222. data/spec/factories/cats/core/plan_item_details.rb +1 -1
  223. data/spec/factories/cats/core/plan_items.rb +1 -1
  224. data/spec/factories/cats/core/plans.rb +1 -1
  225. data/spec/factories/cats/core/programs.rb +1 -1
  226. data/spec/factories/cats/core/projects.rb +1 -1
  227. data/spec/factories/cats/core/purchase_orders.rb +1 -1
  228. data/spec/factories/cats/core/rations.rb +1 -1
  229. data/spec/factories/cats/core/receipt_authorizations.rb +1 -1
  230. data/spec/factories/cats/core/receipt_transactions.rb +2 -2
  231. data/spec/factories/cats/core/receipts.rb +1 -1
  232. data/spec/factories/cats/core/rhn_requests.rb +1 -1
  233. data/spec/factories/cats/core/role_menus.rb +1 -1
  234. data/spec/factories/cats/core/roles.rb +1 -1
  235. data/spec/factories/cats/core/round_beneficiaries.rb +1 -1
  236. data/spec/factories/cats/core/round_plan_item_details.rb +3 -3
  237. data/spec/factories/cats/core/round_plan_items.rb +1 -1
  238. data/spec/factories/cats/core/round_plans.rb +1 -1
  239. data/spec/factories/cats/core/round_rations.rb +1 -1
  240. data/spec/factories/cats/core/routes.rb +1 -1
  241. data/spec/factories/cats/core/stack_transactions.rb +1 -1
  242. data/spec/factories/cats/core/stacking_rules.rb +1 -1
  243. data/spec/factories/cats/core/stacks.rb +1 -1
  244. data/spec/factories/cats/core/stores.rb +1 -1
  245. data/spec/factories/cats/core/suppliers.rb +1 -1
  246. data/spec/factories/cats/core/swaps.rb +1 -1
  247. data/spec/factories/cats/core/tenderers.rb +1 -1
  248. data/spec/factories/cats/core/transport_bid_items.rb +1 -1
  249. data/spec/factories/cats/core/transport_bids.rb +1 -1
  250. data/spec/factories/cats/core/transport_contracts.rb +1 -1
  251. data/spec/factories/cats/core/transport_offers.rb +1 -1
  252. data/spec/factories/cats/core/transport_order_items.rb +1 -1
  253. data/spec/factories/cats/core/transport_orders.rb +1 -1
  254. data/spec/factories/cats/core/transport_plan_items.rb +1 -1
  255. data/spec/factories/cats/core/transport_plans.rb +1 -1
  256. data/spec/factories/cats/core/transport_requisition_details.rb +1 -1
  257. data/spec/factories/cats/core/transport_requisition_items.rb +1 -1
  258. data/spec/factories/cats/core/transport_requisitions.rb +1 -1
  259. data/spec/factories/cats/core/transporters.rb +1 -1
  260. data/spec/factories/cats/core/unit_conversions.rb +1 -1
  261. data/spec/factories/cats/core/unit_of_measures.rb +1 -1
  262. data/spec/factories/cats/core/users.rb +2 -2
  263. metadata +19 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 279f9103030fd0c0a858e6d2d5c2f71b69644f17b3654b7e8cd6226deeefabb3
4
- data.tar.gz: 58431c85a8824cd879b58f550fa28969b1f45bd9ba04cb16ab69553a6e01c3d3
3
+ metadata.gz: 8600827ecd1928a38a51faaac12c7fa5b99aabbe60f9d8f8bca25bd6ebb5ff12
4
+ data.tar.gz: 49b53ed37b83474a1fe315625edae660dce4307100f2a431d4b480e74a10cfb1
5
5
  SHA512:
6
- metadata.gz: e3f8d565b6b939cadff349df0add73ba2e50ae4eef45629d412748754e307aaf7952b69bf3138232c549c560766f23e8dcfbceb5b14ae3f7b3ddccb9c428ab92
7
- data.tar.gz: e3d1c7576b48388d6f8144401218b47fd2d40b0320f1ffbe6f9ef674e70d2ab295aed46fb2ac6d9571ca0c99d611f529dc047d3e073bde557d9e02a9c726fb77
6
+ metadata.gz: f56b80a25dbb39a4483888e722f884d46776f1c15a00d0fbd7596fcd0aab462c1a35a5d3adcfa4d4f599310f7b3d5b85079bb2794583f464286331b61b624003
7
+ data.tar.gz: 4074542f2decf95e6becf28b2cd83c438d1f141638d13ae1b33b523d1b650aa00dc8e50192ae8c4bcf4b985a95e3bc8bcd7c78dece4921363309d94549eb05cc
data/Rakefile CHANGED
@@ -1,10 +1,10 @@
1
- require 'bundler/setup'
1
+ require "bundler/setup"
2
2
 
3
- APP_RAKEFILE = File.expand_path('spec/dummy/Rakefile', __dir__)
4
- load 'rails/tasks/engine.rake'
3
+ APP_RAKEFILE = File.expand_path("spec/dummy/Rakefile", __dir__)
4
+ load "rails/tasks/engine.rake"
5
5
 
6
- load 'rails/tasks/statistics.rake'
6
+ load "rails/tasks/statistics.rake"
7
7
 
8
- require 'bundler/gem_tasks'
9
- require 'rspec/core/rake_task'
10
- RSpec::Core::RakeTask.new(spec: 'app:db:test:prepare')
8
+ require "bundler/gem_tasks"
9
+ require "rspec/core/rake_task"
10
+ RSpec::Core::RakeTask.new(spec: "app:db:test:prepare")
@@ -10,7 +10,7 @@ module Cats
10
10
  roles = user.roles.map(&:name)
11
11
 
12
12
  unless roles.count.positive?
13
- render json: { error: 'User has no roles.' }, status: :unprocessable_entity
13
+ render json: {error: "User has no roles."}, status: :unprocessable_entity
14
14
  return
15
15
  end
16
16
 
@@ -19,12 +19,12 @@ module Cats
19
19
  details: user.details
20
20
  }
21
21
  jwt = TokenAuthService.issue(payload)
22
- render json: { token: jwt, user: payload }
22
+ render json: {token: jwt, user: payload}
23
23
  else
24
- render json: { error: 'Invalid password.' }, status: 400
24
+ render json: {error: "Invalid password."}, status: 400
25
25
  end
26
26
  else
27
- render json: { error: 'User does not exist.' }, status: 400
27
+ render json: {error: "User does not exist."}, status: 400
28
28
  end
29
29
  end
30
30
 
@@ -6,12 +6,12 @@ module Cats
6
6
  def current_user
7
7
  return if token.nil?
8
8
 
9
- user = User.find(auth['id'])
9
+ user = User.find(auth["id"])
10
10
  @current_user ||= user
11
11
  end
12
12
 
13
13
  def authenticate
14
- render json: { error: 'Unauthorized' }, status: 401 if current_user.nil?
14
+ render json: {error: "Unauthorized"}, status: 401 if current_user.nil?
15
15
  end
16
16
 
17
17
  # In case we want to disable bullet for specific controller actions
@@ -30,9 +30,9 @@ module Cats
30
30
  end
31
31
 
32
32
  def token
33
- return nil if request.env['HTTP_AUTHORIZATION'].nil?
33
+ return nil if request.env["HTTP_AUTHORIZATION"].nil?
34
34
 
35
- request.env['HTTP_AUTHORIZATION'].scan(/Bearer (.*)$/).flatten.last
35
+ request.env["HTTP_AUTHORIZATION"].scan(/Bearer (.*)$/).flatten.last
36
36
  end
37
37
 
38
38
  def auth
@@ -5,29 +5,29 @@ module Cats
5
5
 
6
6
  def index
7
7
  super do
8
- Commodity.all.includes({ project: { source: :commodity_category } }, :unit_of_measure, :package_unit)
8
+ Commodity.all.includes({project: {source: :commodity_category}}, :unit_of_measure, :package_unit)
9
9
  end
10
10
  end
11
11
 
12
12
  def approve
13
13
  commodity = Commodity.find(params[:id])
14
14
  result = commodity.approve
15
- render json: { success: result, data: serialize(commodity) }
16
- rescue StandardError => e
17
- render json: { success: false, error: e.message }
15
+ render json: {success: result, data: serialize(commodity)}
16
+ rescue => e
17
+ render json: {success: false, error: e.message}
18
18
  end
19
19
 
20
20
  def filter
21
21
  query = Commodity.includes(:project, :unit_of_measure, :package_unit).ransack(params[:q])
22
- render json: { success: true, data: serialize(query.result) }
22
+ render json: {success: true, data: serialize(query.result)}
23
23
  end
24
24
 
25
25
  private
26
26
 
27
27
  def model_params
28
28
  params.require(:payload).permit(:batch_no, :description, :unit_of_measure_id, :project_id, :commodity_grade,
29
- :source_type, :quantity, :best_use_before, :volume_per_metric_ton,
30
- :arrival_status, :shipping_reference, :package_unit_id)
29
+ :source_type, :quantity, :best_use_before, :volume_per_metric_ton,
30
+ :arrival_status, :shipping_reference, :package_unit_id)
31
31
  end
32
32
  end
33
33
  end
@@ -11,23 +11,23 @@ module Cats
11
11
 
12
12
  def all
13
13
  data = CommodityCategory.all
14
- render json: { success: true, data: data }
14
+ render json: {success: true, data: data}
15
15
  end
16
16
 
17
17
  def root
18
18
  data = CommodityCategory.roots
19
- render json: { success: true, data: serialize(data) }
19
+ render json: {success: true, data: serialize(data)}
20
20
  end
21
21
 
22
22
  def children
23
23
  parent = CommodityCategory.find(params[:id])
24
- render json: { success: true, data: serialize(parent.children) }
24
+ render json: {success: true, data: serialize(parent.children)}
25
25
  end
26
26
 
27
27
  private
28
28
 
29
29
  def model_params
30
- params.require('payload').permit(:code, :name, :description, :parent_id)
30
+ params.require("payload").permit(:code, :name, :description, :parent_id)
31
31
  end
32
32
  end
33
33
  end
@@ -5,25 +5,48 @@ module Cats
5
5
 
6
6
  def index
7
7
  super do
8
- DispatchAuthorization.includes(:dispatch, :store, :authorized_by, :unit).where(dispatch_id: params[:id])
8
+ DispatchAuthorization.includes(:dispatch, :store, :authorized_by, :unit).where(
9
+ dispatch_id: params[:id]
10
+ ).reverse_order
11
+ end
12
+ end
13
+
14
+ def create
15
+ authorization = DispatchAuthorization.new(model_params)
16
+ if authorization.save
17
+ AuthorizationService.new.send_dispatch_notification(authorization)
18
+ render json: {success: true, data: serialize(authorization)}, status: :created
19
+ else
20
+ render json: {success: false, error: authorization.errors.full_messages[0]}, status: :unprocessable_entity
9
21
  end
10
22
  end
11
23
 
12
24
  def confirm
13
25
  authorization = DispatchAuthorization.find(params[:id])
14
26
  authorization = authorization.confirm
15
- render json: { success: true, data: serialize(authorization) }
16
- rescue StandardError => e
17
- render json: { success: false, error: e.message }
27
+ render json: {success: true, data: serialize(authorization)}
28
+ rescue => e
29
+ render json: {success: false, error: e.message}
18
30
  end
19
31
 
20
32
  def storekeeper_authorizations
21
33
  storekeeper = User.find(params[:id])
22
34
  stores = storekeeper.stores
23
35
  authorizations = DispatchAuthorization.joins(:dispatch)
24
- .includes(:dispatch, :store, :authorized_by, :unit)
25
- .where(store: stores, dispatch: { dispatch_status: Dispatch::APPROVED })
26
- render json: { success: true, data: serialize(authorizations) }
36
+ .includes(:dispatch, :store, :authorized_by, :unit)
37
+ .where(store: stores, dispatch: {dispatch_status: Dispatch::APPROVED})
38
+ .reverse_order
39
+ render json: {success: true, data: serialize(authorizations)}
40
+ end
41
+
42
+ def filter
43
+ query = DispatchAuthorization.includes(
44
+ :dispatch,
45
+ :store,
46
+ :authorized_by,
47
+ :unit
48
+ ).ransack(params[:q])
49
+ render json: {success: true, data: serialize(query.result.reverse_order)}
27
50
  end
28
51
 
29
52
  private
@@ -8,7 +8,7 @@ module Cats
8
8
  DispatchPlanItem.includes(
9
9
  :source,
10
10
  :destination,
11
- { commodity: { project: { source: :commodity_category } } },
11
+ {commodity: {project: {source: :commodity_category}}},
12
12
  :unit,
13
13
  :dispatch_plan
14
14
  ).where(dispatch_plan_id: params[:id])
@@ -19,18 +19,18 @@ module Cats
19
19
  query = DispatchPlanItem.includes(
20
20
  :source,
21
21
  :destination,
22
- { commodity: { project: { source: :commodity_category } } },
22
+ {commodity: {project: {source: :commodity_category}}},
23
23
  :unit,
24
24
  :dispatch_plan
25
25
  ).ransack(params[:q])
26
- render json: { success: true, data: serialize(query.result) }
26
+ render json: {success: true, data: serialize(query.result)}
27
27
  end
28
28
 
29
29
  private
30
30
 
31
31
  def model_params
32
32
  params.require(:payload).permit(:reference_no, :dispatch_plan_id, :source_id, :destination_id, :quantity,
33
- :unit_id, :commodity_status, :status, :commodity_id)
33
+ :unit_id, :commodity_status, :status, :commodity_id)
34
34
  end
35
35
  end
36
36
  end
@@ -11,41 +11,41 @@ module Cats
11
11
 
12
12
  def plans_for_user
13
13
  plans = DispatchPlan.where(prepared_by: current_user).includes(:dispatchable)
14
- render json: { success: true, data: serialize(plans) }
14
+ render json: {success: true, data: serialize(plans)}
15
15
  end
16
16
 
17
17
  def filter
18
18
  query = DispatchPlan.ransack(params[:q])
19
- render json: { success: true, data: serialize(query.result) }
19
+ render json: {success: true, data: serialize(query.result)}
20
20
  end
21
21
 
22
22
  def create
23
23
  service = DispatchPlanService.new
24
24
  plan = service.create(model_params, current_user)
25
- render json: { success: true, data: serialize(plan) }, status: :created
26
- rescue StandardError => e
27
- render json: { success: false, error: e.message }, status: :unprocessable_entity
25
+ render json: {success: true, data: serialize(plan)}, status: :created
26
+ rescue => e
27
+ render json: {success: false, error: e.message}, status: :unprocessable_entity
28
28
  end
29
29
 
30
30
  def generate
31
31
  service = DispatchPlanService.new
32
32
  items = service.generate(params[:id])
33
- render json: { success: true, data: serialize(items) }
33
+ render json: {success: true, data: serialize(items)}
34
34
  end
35
35
 
36
36
  def bulk_create
37
37
  service = DispatchPlanService.new
38
38
  plan = service.bulk_create(bulk_create_params, current_user)
39
- render json: { success: true, data: serialize(plan) }
39
+ render json: {success: true, data: serialize(plan)}
40
40
  end
41
41
 
42
42
  def approve
43
43
  service = DispatchPlanService.new
44
44
  plan = DispatchPlan.find(params[:id])
45
45
  plan = service.approve(plan)
46
- render json: { success: true, data: serialize(plan) }
47
- rescue StandardError => e
48
- render json: { success: false, error: e.message }
46
+ render json: {success: true, data: serialize(plan)}
47
+ rescue => e
48
+ render json: {success: false, error: e.message}
49
49
  end
50
50
 
51
51
  private
@@ -19,26 +19,26 @@ module Cats
19
19
  transaction = DispatchTransaction.new(model_params)
20
20
 
21
21
  # Fetch supplier stack by commodity
22
- stack = Stack.joins(:store).find_by(commodity: commodity, store: { code: 'SUP-STORE' })
22
+ stack = Stack.joins(:store).find_by(commodity: commodity, store: {code: "SUP-STORE"})
23
23
  transaction.source = stack
24
24
 
25
25
  if transaction.save
26
- render json: { success: true, data: serialize(transaction) }, status: :created
26
+ render json: {success: true, data: serialize(transaction)}, status: :created
27
27
  else
28
- render json: { success: false, error: transaction.errors.full_messages[0] }, status: :unprocessable_entity
28
+ render json: {success: false, error: transaction.errors.full_messages[0]}, status: :unprocessable_entity
29
29
  end
30
30
  end
31
31
 
32
32
  def filter
33
33
  query = DispatchTransaction.ransack(params[:q])
34
- render json: { success: true, data: serialize(query.result) }
34
+ render json: {success: true, data: serialize(query.result)}
35
35
  end
36
36
 
37
37
  private
38
38
 
39
39
  def model_params
40
40
  params.require(:payload).permit(:source_id, :dispatch_authorization_id, :transaction_date, :quantity, :unit_id,
41
- :reference_no)
41
+ :reference_no)
42
42
  end
43
43
  end
44
44
  end
@@ -9,11 +9,11 @@ module Cats
9
9
  def index
10
10
  super do
11
11
  Dispatch.includes(
12
- { dispatch_plan_item: :destination },
12
+ {dispatch_plan_item: :destination},
13
13
  :transporter,
14
14
  :prepared_by,
15
15
  :unit
16
- ).where(dispatch_plan_item_id: params[:id])
16
+ ).where(dispatch_plan_item_id: params[:id]).reverse_order
17
17
  end
18
18
  end
19
19
 
@@ -29,51 +29,51 @@ module Cats
29
29
  def approve
30
30
  dispatch = set_object
31
31
  dispatch.approve
32
- render json: { success: true, data: serialize(dispatch) }
33
- rescue StandardError => e
34
- render json: { success: false, error: e.message }
32
+ render json: {success: true, data: serialize(dispatch)}
33
+ rescue => e
34
+ render json: {success: false, error: e.message}
35
35
  end
36
36
 
37
37
  def start
38
38
  dispatch = @service.start(set_object)
39
- render json: { success: true, data: serialize(dispatch) }
40
- rescue StandardError => e
41
- render json: { success: false, error: e.message }
39
+ render json: {success: true, data: serialize(dispatch)}
40
+ rescue => e
41
+ render json: {success: false, error: e.message}
42
42
  end
43
43
 
44
44
  def start_with_pin
45
45
  dispatch = @service.start_with_pin(params[:id], start_with_pin_params[:pin])
46
- render json: { success: true, data: serialize(dispatch) }
47
- rescue StandardError => e
48
- render json: { success: false, error: e.message }
46
+ render json: {success: true, data: serialize(dispatch)}
47
+ rescue => e
48
+ render json: {success: false, error: e.message}
49
49
  end
50
50
 
51
51
  def confirm
52
52
  dispatch = set_object
53
53
  dispatch.confirm
54
- render json: { success: true, data: serialize(dispatch) }
55
- rescue StandardError => e
56
- render json: { success: false, error: e.message }
54
+ render json: {success: true, data: serialize(dispatch)}
55
+ rescue => e
56
+ render json: {success: false, error: e.message}
57
57
  end
58
58
 
59
59
  def filter
60
60
  query = Dispatch.includes(
61
- { dispatch_plan_item: :destination },
61
+ {dispatch_plan_item: :destination},
62
62
  :transporter,
63
63
  :prepared_by,
64
64
  :unit
65
65
  ).ransack(params[:q])
66
- render json: { success: true, data: serialize(query.result) }
66
+ render json: {success: true, data: serialize(query.result.reverse_order)}
67
67
  end
68
68
 
69
69
  def search
70
70
  data = @service.search(current_user, params[:status])
71
- render json: { success: true, data: serialize(data) }
71
+ render json: {success: true, data: serialize(data)}
72
72
  end
73
73
 
74
74
  def commodity
75
75
  data = set_object.dispatch_plan_item.commodity
76
- render json: { success: true, data: serialize(data) }
76
+ render json: {success: true, data: serialize(data)}
77
77
  end
78
78
 
79
79
  private
@@ -84,7 +84,7 @@ module Cats
84
84
 
85
85
  def model_params
86
86
  params.require(:payload).permit(:reference_no, :dispatch_plan_item_id, :transporter_id, :plate_no, :unit_id,
87
- :driver_name, :driver_phone, :remark)
87
+ :driver_name, :driver_phone, :remark)
88
88
  end
89
89
 
90
90
  def start_with_pin_params
@@ -13,7 +13,7 @@ module Cats
13
13
 
14
14
  def model_params
15
15
  params.require(:payload).permit(:reference_no, :description, :lender, :agreement_date, :repayment_date,
16
- :quantity, :unit_id, :commodity_category_id)
16
+ :quantity, :unit_id, :commodity_category_id)
17
17
  end
18
18
  end
19
19
  end
@@ -11,25 +11,25 @@ module Cats
11
11
 
12
12
  def children
13
13
  parent = Location.find(params[:id])
14
- render json: { success: true, data: serialize(parent.children) }
14
+ render json: {success: true, data: serialize(parent.children)}
15
15
  end
16
16
 
17
17
  def filter
18
18
  query = Location.ransack(params[:q])
19
- render json: { success: true, data: serialize(query.result) }
19
+ render json: {success: true, data: serialize(query.result)}
20
20
  end
21
21
 
22
22
  def woredas
23
23
  region = Location.find(params[:id])
24
24
  woredas = Location.where(id: region.descendant_ids, location_type: Location::WOREDA)
25
- render json: { success: true, data: serialize(woredas) }
25
+ render json: {success: true, data: serialize(woredas)}
26
26
  end
27
27
 
28
28
  def create_fdp
29
29
  service = LocationService.new
30
30
  p = fdp_params
31
31
  fdp = service.create_fdp(p[:code], p[:name], p[:parent_id], p[:description])
32
- render json: { success: true, data: serialize(fdp) }
32
+ render json: {success: true, data: serialize(fdp)}
33
33
  end
34
34
 
35
35
  private
@@ -6,7 +6,7 @@ module Cats
6
6
  def index
7
7
  menu = @service.fetch_menu(current_user)
8
8
  data = ActiveModelSerializers::SerializableResource.new(menu, each_serializer: RoleMenuSerializer)
9
- render json: { success: true, data: data }
9
+ render json: {success: true, data: data}
10
10
  end
11
11
 
12
12
  private
@@ -5,27 +5,27 @@ module Cats
5
5
 
6
6
  def index
7
7
  data = Notification.messages(current_user.notifications.newest_first)
8
- render json: { success: true, data: data }
8
+ render json: {success: true, data: data}
9
9
  end
10
10
 
11
11
  def read
12
12
  data = Notification.messages(current_user.notifications.read.newest_first)
13
- render json: { success: true, data: data }
13
+ render json: {success: true, data: data}
14
14
  end
15
15
 
16
16
  def unread
17
17
  data = Notification.messages(current_user.notifications.unread.newest_first)
18
- render json: { success: true, data: data }
18
+ render json: {success: true, data: data}
19
19
  end
20
20
 
21
21
  def mark_as_read
22
22
  @notification.mark_as_read!
23
- render json: { success: true, data: @notification.message }
23
+ render json: {success: true, data: @notification.message}
24
24
  end
25
25
 
26
26
  def mark_as_unread
27
27
  @notification.mark_as_unread!
28
- render json: { success: true, data: @notification.message }
28
+ render json: {success: true, data: @notification.message}
29
29
  end
30
30
 
31
31
  private
@@ -9,15 +9,15 @@ module Cats
9
9
  :unit,
10
10
  :currency
11
11
  )
12
- render json: { success: true, data: serialize(purchase_orders) }
12
+ render json: {success: true, data: serialize(purchase_orders)}
13
13
  end
14
14
 
15
15
  private
16
16
 
17
17
  def model_params
18
18
  params.require(:payload).permit(:reference_no, :order_date, :requisition_no, :supplier, :cash_donation_id,
19
- :commodity_category_id, :quantity, :purchase_type, :unit_id, :price,
20
- :currency_id, :description)
19
+ :commodity_category_id, :quantity, :purchase_type, :unit_id, :price,
20
+ :currency_id, :description)
21
21
  end
22
22
  end
23
23
  end
@@ -7,43 +7,45 @@ module Cats
7
7
 
8
8
  def index
9
9
  super do
10
- ReceiptAuthorization.includes(:dispatch, :store, :authorized_by, :unit).where(dispatch_id: params[:id])
10
+ ReceiptAuthorization.includes(:dispatch, :store, :authorized_by, :unit).where(dispatch_id: params[:id]).reverse_order
11
11
  end
12
12
  end
13
13
 
14
14
  def create
15
15
  authorization = ReceiptAuthorization.new(model_params)
16
16
  if authorization.save
17
- AuthorizationService.new.send_notification(authorization)
18
- render json: { success: true, data: serialize(authorization) }, status: :created
17
+ AuthorizationService.new.send_receipt_notification(authorization)
18
+ render json: {success: true, data: serialize(authorization)}, status: :created
19
19
  else
20
- render json: { success: false, error: authorization.errors.full_messages[0] }, status: :unprocessable_entity
20
+ render json: {success: false, error: authorization.errors.full_messages[0]}, status: :unprocessable_entity
21
21
  end
22
22
  end
23
23
 
24
24
  def confirm
25
25
  authorization = ReceiptAuthorization.find(params[:id])
26
26
  authorization.confirm
27
- render json: { success: true, data: serialize(authorization) }
28
- rescue StandardError => e
29
- render json: { success: false, error: e.message }
27
+ render json: {success: true, data: serialize(authorization)}
28
+ rescue => e
29
+ render json: {success: false, error: e.message}
30
30
  end
31
31
 
32
32
  def driver_confirm
33
33
  service = AuthorizationService.new
34
- authorization = service.driver_confirm(params[:id], driver_confirm_params[:pin])
35
- render json: { success: true, data: serialize(authorization) }
36
- rescue StandardError => e
37
- render json: { success: false, error: e.message }
34
+ authorization = service.driver_confirm(
35
+ params[:id], driver_confirm_params[:pin], driver_confirm_params[:receipt_number]
36
+ )
37
+ render json: {success: true, data: serialize(authorization)}
38
+ rescue => e
39
+ render json: {success: false, error: e.message}
38
40
  end
39
41
 
40
42
  def stack
41
43
  service = AuthorizationService.new
42
44
  authorization = ReceiptAuthorization.find(params[:id])
43
45
  authorization = service.stack(authorization.id)
44
- render json: { success: true, data: serialize(authorization) }
45
- rescue StandardError => e
46
- render json: { success: false, error: e.message }
46
+ render json: {success: true, data: serialize(authorization)}
47
+ rescue => e
48
+ render json: {success: false, error: e.message}
47
49
  end
48
50
 
49
51
  def storekeeper_authorizations
@@ -51,19 +53,29 @@ module Cats
51
53
  status = params[:status]
52
54
  stores = storekeeper.stores
53
55
  authorizations = ReceiptAuthorization.includes(:dispatch, :store, :authorized_by, :unit)
54
- .where(store: stores, status: status)
55
- render json: { success: true, data: serialize(authorizations) }
56
+ .where(store: stores, status: status)
57
+ render json: {success: true, data: serialize(authorizations)}
58
+ end
59
+
60
+ def filter
61
+ query = ReceiptAuthorization.includes(
62
+ :dispatch,
63
+ :store,
64
+ :authorized_by,
65
+ :unit
66
+ ).ransack(params[:q])
67
+ render json: {success: true, data: serialize(query.result.reverse_order)}
56
68
  end
57
69
 
58
70
  private
59
71
 
60
72
  def model_params
61
73
  params.require(:payload).permit(:dispatch_id, :store_id, :quantity, :unit_id, :remark, :status,
62
- :authorized_by_id)
74
+ :authorized_by_id)
63
75
  end
64
76
 
65
77
  def driver_confirm_params
66
- params.require(:payload).permit(:pin)
78
+ params.require(:payload).permit(:pin, :receipt_number)
67
79
  end
68
80
  end
69
81
  end
@@ -5,21 +5,21 @@ module Cats
5
5
 
6
6
  def index
7
7
  super do
8
- ReceiptTransaction.includes(:destination, { receipt_authorization: :dispatch }, :unit)
9
- .where(receipt_authorization_id: params[:id])
8
+ ReceiptTransaction.includes(:destination, {receipt_authorization: :dispatch}, :unit)
9
+ .where(receipt_authorization_id: params[:id])
10
10
  end
11
11
  end
12
12
 
13
13
  def filter
14
14
  query = ReceiptTransaction.ransack(params[:q])
15
- render json: { success: true, data: serialize(query.result) }
15
+ render json: {success: true, data: serialize(query.result)}
16
16
  end
17
17
 
18
18
  private
19
19
 
20
20
  def model_params
21
21
  params.require(:payload).permit(:receipt_authorization_id, :receipt_number, :destination_id,
22
- :transaction_date, :quantity, :unit_id)
22
+ :transaction_date, :quantity, :unit_id)
23
23
  end
24
24
  end
25
25
  end
@@ -13,7 +13,7 @@ module Cats
13
13
 
14
14
  def model_params
15
15
  params.require(:payload).permit(:receipt_authorization_id, :commodity_status, :commodity_grade, :quantity,
16
- :unit_id, :remark, :reference_no)
16
+ :unit_id, :remark, :reference_no)
17
17
  end
18
18
  end
19
19
  end