cats_core 1.5.16 → 1.5.18

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -2,19 +2,19 @@ class CreateCatsCoreTransportOrders < ActiveRecord::Migration[7.0]
2
2
  def change
3
3
  create_table :cats_core_transport_orders do |t|
4
4
  t.references :transport_requisition,
5
- null: false,
6
- index: { name: 'tr_on_to_indx' },
7
- foreign_key: { to_table: :cats_core_transport_requisitions }
5
+ null: false,
6
+ index: {name: "tr_on_to_indx"},
7
+ foreign_key: {to_table: :cats_core_transport_requisitions}
8
8
  t.references :prepared_by,
9
- null: false,
10
- index: { name: 'pb_on_to_indx' },
11
- foreign_key: { to_table: :cats_core_users }
9
+ null: false,
10
+ index: {name: "pb_on_to_indx"},
11
+ foreign_key: {to_table: :cats_core_users}
12
12
  t.references :approved_by,
13
- null: true,
14
- index: { name: 'ab_on_to_indx' },
15
- foreign_key: { to_table: :cats_core_users }
13
+ null: true,
14
+ index: {name: "ab_on_to_indx"},
15
+ foreign_key: {to_table: :cats_core_users}
16
16
  t.date :order_date, null: false
17
- t.string :status, null: false, default: 'Draft'
17
+ t.string :status, null: false, default: "Draft"
18
18
 
19
19
  t.timestamps
20
20
  end
@@ -2,21 +2,21 @@ class CreateCatsCoreTransportOrderItems < ActiveRecord::Migration[7.0]
2
2
  def change
3
3
  create_table :cats_core_transport_order_items do |t|
4
4
  t.references :transport_order,
5
- null: false,
6
- index: { name: 'to_on_toi_indx' },
7
- foreign_key: { to_table: :cats_core_transport_orders }
5
+ null: false,
6
+ index: {name: "to_on_toi_indx"},
7
+ foreign_key: {to_table: :cats_core_transport_orders}
8
8
  t.references :transporter,
9
- null: false,
10
- index: { name: 'transporter_on_toi_indx' },
11
- foreign_key: { to_table: :cats_core_transporters }
9
+ null: false,
10
+ index: {name: "transporter_on_toi_indx"},
11
+ foreign_key: {to_table: :cats_core_transporters}
12
12
  t.references :transport_contract,
13
- null: true,
14
- index: { name: 'tc_on_toi_indx' },
15
- foreign_key: { to_table: :cats_core_transport_contracts }
13
+ null: true,
14
+ index: {name: "tc_on_toi_indx"},
15
+ foreign_key: {to_table: :cats_core_transport_contracts}
16
16
  t.references :transport_requisition_item,
17
- null: false,
18
- index: { name: 'tri_on_toi_indx' },
19
- foreign_key: { to_table: :cats_core_transport_requisition_items }
17
+ null: false,
18
+ index: {name: "tri_on_toi_indx"},
19
+ foreign_key: {to_table: :cats_core_transport_requisition_items}
20
20
  t.integer :valid_for, null: false, default: 10
21
21
 
22
22
  t.timestamps
@@ -26,7 +26,7 @@ class CreateCatsCoreTransportOrderItems < ActiveRecord::Migration[7.0]
26
26
  :cats_core_transport_order_items,
27
27
  :transport_requisition_item_id,
28
28
  unique: true,
29
- name: 'tri_on_toi_uniq_indx'
29
+ name: "tri_on_toi_uniq_indx"
30
30
  )
31
31
  end
32
32
  end
@@ -6,13 +6,13 @@ class CreateCatsCoreBeneficiaries < ActiveRecord::Migration[7.0]
6
6
  t.string :gender, null: false
7
7
  t.string :phone
8
8
  t.references :beneficiary_category,
9
- null: false,
10
- index: { name: 'bc_on_beneficiaries_indx' },
11
- foreign_key: { to_table: :cats_core_beneficiary_categories }
9
+ null: false,
10
+ index: {name: "bc_on_beneficiaries_indx"},
11
+ foreign_key: {to_table: :cats_core_beneficiary_categories}
12
12
  t.references :fdp,
13
- null: false,
14
- index: { name: 'fdp_on_beneficiaries_indx' },
15
- foreign_key: { to_table: :cats_core_locations }
13
+ null: false,
14
+ index: {name: "fdp_on_beneficiaries_indx"},
15
+ foreign_key: {to_table: :cats_core_locations}
16
16
 
17
17
  t.timestamps
18
18
  end
@@ -7,14 +7,14 @@ class CreateCatsCoreLoans < ActiveRecord::Migration[7.0]
7
7
  t.date :agreement_date, null: false
8
8
  t.date :repayment_date
9
9
  t.references :commodity_category,
10
- null: false,
11
- index: { name: 'cc_on_loan_indx' },
12
- foreign_key: { to_table: :cats_core_commodity_categories }
10
+ null: false,
11
+ index: {name: "cc_on_loan_indx"},
12
+ foreign_key: {to_table: :cats_core_commodity_categories}
13
13
  t.float :quantity, null: false
14
14
  t.references :unit,
15
- null: false,
16
- index: { name: 'unit_on_loan_indx' },
17
- foreign_key: { to_table: :cats_core_unit_of_measures }
15
+ null: false,
16
+ index: {name: "unit_on_loan_indx"},
17
+ foreign_key: {to_table: :cats_core_unit_of_measures}
18
18
 
19
19
  t.timestamps
20
20
  end
@@ -8,21 +8,21 @@ class CreateCatsCoreSwaps < ActiveRecord::Migration[7.0]
8
8
  t.float :issued_quantity, null: false
9
9
  t.float :received_quantity, null: false
10
10
  t.references :issued_commodity,
11
- null: false,
12
- index: { name: 'ic_on_swap_indx' },
13
- foreign_key: { to_table: :cats_core_commodity_categories }
11
+ null: false,
12
+ index: {name: "ic_on_swap_indx"},
13
+ foreign_key: {to_table: :cats_core_commodity_categories}
14
14
  t.references :received_commodity,
15
- null: false,
16
- index: { name: 'rc_on_swap_indx' },
17
- foreign_key: { to_table: :cats_core_commodity_categories }
15
+ null: false,
16
+ index: {name: "rc_on_swap_indx"},
17
+ foreign_key: {to_table: :cats_core_commodity_categories}
18
18
  t.references :issued_unit,
19
- null: false,
20
- index: { name: 'iu_on_swap_indx' },
21
- foreign_key: { to_table: :cats_core_unit_of_measures }
19
+ null: false,
20
+ index: {name: "iu_on_swap_indx"},
21
+ foreign_key: {to_table: :cats_core_unit_of_measures}
22
22
  t.references :received_unit,
23
- null: false,
24
- index: { name: 'ru_on_swap_indx' },
25
- foreign_key: { to_table: :cats_core_unit_of_measures }
23
+ null: false,
24
+ index: {name: "ru_on_swap_indx"},
25
+ foreign_key: {to_table: :cats_core_unit_of_measures}
26
26
 
27
27
  t.timestamps
28
28
  end
@@ -1,23 +1,23 @@
1
1
  class CreateCatsCoreRoundBeneficiaries < ActiveRecord::Migration[7.0]
2
2
  def change
3
3
  create_table :cats_core_round_beneficiaries do |t|
4
- t.references :beneficiary,
5
- null: false,
6
- index: { name: 'beneficiary_on_rb_indx' },
7
- foreign_key: { to_table: :cats_core_beneficiaries }
4
+ t.references :beneficiary,
5
+ null: false,
6
+ index: {name: "beneficiary_on_rb_indx"},
7
+ foreign_key: {to_table: :cats_core_beneficiaries}
8
8
  t.references :round_plan_item,
9
- null: false,
10
- index: { name: 'rpi_on_rb_indx' },
11
- foreign_key: { to_table: :cats_core_round_plan_items }
9
+ null: false,
10
+ index: {name: "rpi_on_rb_indx"},
11
+ foreign_key: {to_table: :cats_core_round_plan_items}
12
12
  t.references :commodity_category,
13
- null: false,
14
- index: { name: 'cc_on_rb_indx' },
15
- foreign_key: { to_table: :cats_core_commodity_categories }
13
+ null: false,
14
+ index: {name: "cc_on_rb_indx"},
15
+ foreign_key: {to_table: :cats_core_commodity_categories}
16
16
  t.float :quantity, null: false
17
17
  t.references :unit,
18
- null: false,
19
- index: { name: 'unit_on_rb_indx' },
20
- foreign_key: { to_table: :cats_core_unit_of_measures }
18
+ null: false,
19
+ index: {name: "unit_on_rb_indx"},
20
+ foreign_key: {to_table: :cats_core_unit_of_measures}
21
21
  t.boolean :received, null: false, default: false
22
22
 
23
23
  t.timestamps
@@ -4,9 +4,9 @@ class CreateCatsCoreApplicationSettings < ActiveRecord::Migration[7.0]
4
4
  t.string :key, unique: true
5
5
  t.string :value, null: false
6
6
  t.references :application_module,
7
- null: false,
8
- index: { name: 'am_on_as_indx' },
9
- foreign_key: { to_table: :cats_core_application_modules }
7
+ null: false,
8
+ index: {name: "am_on_as_indx"},
9
+ foreign_key: {to_table: :cats_core_application_modules}
10
10
 
11
11
  t.timestamps
12
12
  end
@@ -7,16 +7,16 @@ module Cats
7
7
  config.generators do |g|
8
8
  g.test_framework :rspec
9
9
  g.fixture_replacement :factory_bot
10
- g.factory_bot dir: 'spec/factories'
10
+ g.factory_bot dir: "spec/factories"
11
11
  end
12
12
 
13
- initializer 'cats_core.factories', after: 'factory_bot.set_factory_paths' do
14
- FactoryBot.definition_file_paths << File.expand_path('../../../spec/factories', __dir__) if defined?(FactoryBot)
13
+ initializer "cats_core.factories", after: "factory_bot.set_factory_paths" do
14
+ FactoryBot.definition_file_paths << File.expand_path("../../../spec/factories", __dir__) if defined?(FactoryBot)
15
15
  end
16
16
 
17
17
  initializer :append_migrations do |app|
18
18
  unless app.root.to_s.match(root.to_s + File::SEPARATOR)
19
- app.config.paths['db/migrate'].concat(config.paths['db/migrate'].expanded)
19
+ app.config.paths["db/migrate"].concat(config.paths["db/migrate"].expanded)
20
20
  end
21
21
  end
22
22
  end
@@ -1,5 +1,5 @@
1
1
  module Cats
2
2
  module Core
3
- VERSION = '1.5.16'.freeze
3
+ VERSION = "1.5.18".freeze
4
4
  end
5
5
  end
data/lib/cats_core.rb CHANGED
@@ -1,8 +1,8 @@
1
- require 'cats/core/version'
2
- require 'cats/core/engine'
3
- require 'ancestry'
4
- require 'rolify'
5
- require 'jwt'
6
- require 'noticed'
7
- require 'active_model_serializers'
8
- require 'ransack'
1
+ require "cats/core/version"
2
+ require "cats/core/engine"
3
+ require "ancestry"
4
+ require "rolify"
5
+ require "jwt"
6
+ require "noticed"
7
+ require "active_model_serializers"
8
+ require "ransack"
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :application_module, class: 'Cats::Core::ApplicationModule' do
2
+ factory :application_module, class: "Cats::Core::ApplicationModule" do
3
3
  prefix { FFaker::Name.name }
4
4
  name { FFaker::Name.name }
5
5
  end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :application_setting, class: 'Cats::Core::ApplicationSetting' do
2
+ factory :application_setting, class: "Cats::Core::ApplicationSetting" do
3
3
  key { FFaker::Name.name }
4
4
  value { FFaker::Name.name }
5
5
  application_module
@@ -1,9 +1,9 @@
1
1
  FactoryBot.define do
2
- factory :beneficiary, class: 'Cats::Core::Beneficiary' do
2
+ factory :beneficiary, class: "Cats::Core::Beneficiary" do
3
3
  full_name { FFaker::Name.name }
4
4
  age { 30 }
5
- gender { 'M' }
6
- phone { '0911121212' }
5
+ gender { "M" }
6
+ phone { "0911121212" }
7
7
  beneficiary_category
8
8
  fdp factory: :fdp
9
9
  end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :beneficiary_category, class: 'Cats::Core::BeneficiaryCategory' do
2
+ factory :beneficiary_category, class: "Cats::Core::BeneficiaryCategory" do
3
3
  code { FFaker::Name.name }
4
4
  name { FFaker::Name.name }
5
5
  plan
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :beneficiary_plan_item, class: 'Cats::Core::BeneficiaryPlanItem' do
2
+ factory :beneficiary_plan_item, class: "Cats::Core::BeneficiaryPlanItem" do
3
3
  plan_item
4
4
  beneficiary_category
5
5
  beneficiaries { 100 }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :beneficiary_round_plan_item, class: 'Cats::Core::BeneficiaryRoundPlanItem' do
2
+ factory :beneficiary_round_plan_item, class: "Cats::Core::BeneficiaryRoundPlanItem" do
3
3
  round_plan_item
4
4
  beneficiary_category
5
5
  planned_beneficiaries { 100 }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :cash_donation, class: 'Cats::Core::CashDonation' do
2
+ factory :cash_donation, class: "Cats::Core::CashDonation" do
3
3
  reference_no { FFaker::Name.name }
4
4
  description { FFaker::Name.name }
5
5
  donated_on { Date.today.prev_week }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :commodity, class: 'Cats::Core::Commodity' do
2
+ factory :commodity, class: "Cats::Core::Commodity" do
3
3
  batch_no { FFaker::Name.name }
4
4
  description { FFaker::Name.name }
5
5
  unit_of_measure
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :commodity_category, class: 'Cats::Core::CommodityCategory' do
2
+ factory :commodity_category, class: "Cats::Core::CommodityCategory" do
3
3
  code { FFaker::Name.name }
4
4
  name { FFaker::Name.name }
5
5
  description { FFaker::Name.name }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :commodity_donation, class: 'Cats::Core::CommodityDonation' do
2
+ factory :commodity_donation, class: "Cats::Core::CommodityDonation" do
3
3
  reference_no { FFaker::Name.name }
4
4
  description { FFaker::Name.name }
5
5
  shipping_reference { FFaker::Name.name }
@@ -1,8 +1,8 @@
1
1
  FactoryBot.define do
2
- factory :commodity_substitution, class: 'Cats::Core::CommoditySubstitution' do
2
+ factory :commodity_substitution, class: "Cats::Core::CommoditySubstitution" do
3
3
  program
4
4
  commodity factory: :commodity_category
5
5
  replaced_by factory: :commodity_category
6
- ratio { '1:2' }
6
+ ratio { "1:2" }
7
7
  end
8
8
  end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :contract_item, class: 'Cats::Core::ContractItem' do
2
+ factory :contract_item, class: "Cats::Core::ContractItem" do
3
3
  transport_contract
4
4
  route
5
5
  price { 150 }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :currency, class: 'Cats::Core::Currency' do
2
+ factory :currency, class: "Cats::Core::Currency" do
3
3
  code { FFaker::Name.name }
4
4
  name { FFaker::Name.name }
5
5
  end
@@ -1,26 +1,22 @@
1
1
  FactoryBot.define do
2
- factory :dispatch_authorization, class: 'Cats::Core::DispatchAuthorization' do
3
- transient do
4
- s { create(:store) }
5
- stack { create(:stack, quantity: 100, store: s) }
6
- end
2
+ factory :dispatch_authorization, class: "Cats::Core::DispatchAuthorization" do
7
3
  dispatch
8
- store { s }
4
+ store { dispatch.dispatch_plan_item.hub_authorizations.first.store }
9
5
  quantity { 100 }
10
6
  unit { dispatch.unit }
11
7
  status { Cats::Core::ReceiptAuthorization::AUTHORIZED }
12
8
  authorized_by factory: :user
13
9
 
14
10
  trait :approved do
15
- after(:create) do |obj|
16
- obj.dispatch.approve
11
+ after(:create) do |authorization|
12
+ authorization.dispatch.approve
17
13
  end
18
14
  end
19
15
 
20
16
  trait :with_transaction do
21
- after(:create) do |obj, options|
22
- obj.dispatch.approve
23
- create(:dispatch_transaction, dispatch_authorization: obj, source: options.stack, quantity: 100)
17
+ after(:create) do |authorization, options|
18
+ authorization.dispatch.approve
19
+ create(:dispatch_transaction, dispatch_authorization: authorization)
24
20
  end
25
21
  end
26
22
  end
@@ -1,5 +1,8 @@
1
1
  FactoryBot.define do
2
- factory :dispatch_plan_item, class: 'Cats::Core::DispatchPlanItem' do
2
+ factory :dispatch_plan_item, class: "Cats::Core::DispatchPlanItem" do
3
+ transient do
4
+ stack { create(:stack, commodity: commodity, unit: unit) }
5
+ end
3
6
  reference_no { FFaker::Name.name }
4
7
  source factory: :location
5
8
  destination factory: :woreda
@@ -9,5 +12,17 @@ FactoryBot.define do
9
12
  commodity
10
13
  commodity_status { Cats::Core::Commodity::GOOD }
11
14
  status { Cats::Core::DispatchPlanItem::UNAUTHORIZED }
15
+
16
+ trait :approved do
17
+ after(:create) do |item, options|
18
+ item.dispatch_plan.approve
19
+ end
20
+ end
21
+
22
+ trait :with_authorization do
23
+ after(:create) do |item, options|
24
+ create(:hub_authorization, dispatch_plan_item: item, store: options.stack.store)
25
+ end
26
+ end
12
27
  end
13
28
  end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :dispatch_plan, class: 'Cats::Core::DispatchPlan' do
2
+ factory :dispatch_plan, class: "Cats::Core::DispatchPlan" do
3
3
  reference_no { FFaker::Name.name }
4
4
  status { Cats::Core::DispatchPlan::DRAFT }
5
5
  dispatchable { nil }
@@ -1,9 +1,7 @@
1
1
  FactoryBot.define do
2
- factory :dispatch_transaction, class: 'Cats::Core::DispatchTransaction' do
2
+ factory :dispatch_transaction, class: "Cats::Core::DispatchTransaction" do
3
3
  association :dispatch_authorization, :approved
4
- source do
5
- create(:stack, unit: dispatch_authorization.unit)
6
- end
4
+ source { dispatch_authorization.store.stacks.first }
7
5
 
8
6
  transaction_date { Date.today }
9
7
  quantity { 100 }
@@ -1,15 +1,7 @@
1
1
  FactoryBot.define do
2
- factory :dispatch, class: 'Cats::Core::Dispatch' do
3
- transient do
4
- stack { create(:stack, quantity: 100) }
5
- end
2
+ factory :dispatch, class: "Cats::Core::Dispatch" do
6
3
  reference_no { FFaker::Name.name }
7
- dispatch_plan_item do
8
- plan_item = create(:dispatch_plan_item, quantity: 100)
9
- plan_item.dispatch_plan.approve
10
- create(:hub_authorization, dispatch_plan_item: plan_item, quantity: 100, store: stack.store)
11
- plan_item
12
- end
4
+ association :dispatch_plan_item, :approved, :with_authorization
13
5
  unit { dispatch_plan_item.unit }
14
6
  transporter
15
7
  plate_no { FFaker::Name.name }
@@ -19,31 +11,33 @@ FactoryBot.define do
19
11
  prepared_by factory: :user
20
12
  dispatch_status { Cats::Core::Dispatch::DRAFT }
21
13
 
14
+ trait :approved do
15
+ after(:create) do |dispatch|
16
+ create(:dispatch_authorization, dispatch: dispatch)
17
+ dispatch.approve
18
+ end
19
+ end
20
+
22
21
  trait :with_authorization do
23
22
  after(:create) do |dispatch, options|
24
- create(:dispatch_authorization, dispatch: dispatch, store: options.stack.store)
23
+ create(:dispatch_authorization, dispatch: dispatch)
25
24
  end
26
25
  end
27
26
 
28
27
  trait :with_transaction do
29
28
  after(:create) do |dispatch, options|
30
- authorization = create(:dispatch_authorization, dispatch: dispatch, store: options.stack.store)
29
+ authorization = create(:dispatch_authorization, dispatch: dispatch)
31
30
  dispatch.approve
32
- options.stack.unit = dispatch.unit
33
- options.stack.save!
34
- create(:dispatch_transaction, dispatch_authorization: authorization, source: options.stack, quantity: 100)
31
+ create(:dispatch_transaction, dispatch_authorization: authorization)
35
32
  end
36
33
  end
37
34
 
38
35
  trait :ready_to_start do
39
36
  after(:create) do |dispatch, options|
40
- authorization = create(:dispatch_authorization, dispatch: dispatch, store: options.stack.store)
37
+ authorization = create(:dispatch_authorization, dispatch: dispatch)
41
38
  dispatch.approve
42
- options.stack.unit = dispatch.unit
43
- options.stack.save!
44
- create(:dispatch_transaction, dispatch_authorization: authorization, source: options.stack, quantity: 100)
39
+ create(:dispatch_transaction, dispatch_authorization: authorization)
45
40
  authorization.confirm
46
- dispatch.quantity = 100
47
41
  dispatch.dispatch_status = Cats::Core::Dispatch::READY_TO_START
48
42
  dispatch.save!
49
43
  end
@@ -51,13 +45,10 @@ FactoryBot.define do
51
45
 
52
46
  trait :started do
53
47
  after(:create) do |dispatch, options|
54
- authorization = create(:dispatch_authorization, dispatch: dispatch, store: options.stack.store)
48
+ authorization = create(:dispatch_authorization, dispatch: dispatch)
55
49
  dispatch.approve
56
- options.stack.unit = dispatch.unit
57
- options.stack.save!
58
- create(:dispatch_transaction, dispatch_authorization: authorization, source: options.stack, quantity: 100)
50
+ create(:dispatch_transaction, dispatch_authorization: authorization)
59
51
  authorization.confirm
60
- dispatch.quantity = 100
61
52
  dispatch.dispatch_status = Cats::Core::Dispatch::READY_TO_START
62
53
  dispatch.save!
63
54
  dispatch.start
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :donor, class: 'Cats::Core::Donor' do
2
+ factory :donor, class: "Cats::Core::Donor" do
3
3
  code { FFaker::Name.name }
4
4
  name { FFaker::Name.name }
5
5
  end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :gift_certificate, class: 'Cats::Core::GiftCertificate' do
2
+ factory :gift_certificate, class: "Cats::Core::GiftCertificate" do
3
3
  reference_no { FFaker::Name.name }
4
4
  gift_date { Date.today - 1.month }
5
5
  vessel { FFaker::Name.name }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :hub_authorization, class: 'Cats::Core::HubAuthorization' do
2
+ factory :hub_authorization, class: "Cats::Core::HubAuthorization" do
3
3
  dispatch_plan_item
4
4
  store
5
5
  quantity { 100 }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :loan, class: 'Cats::Core::Loan' do
2
+ factory :loan, class: "Cats::Core::Loan" do
3
3
  reference_no { FFaker::Name.name }
4
4
  description { FFaker::Name.name }
5
5
  lender { FFaker::Name.name }
@@ -1,22 +1,22 @@
1
1
  FactoryBot.define do
2
- factory :location, class: 'Cats::Core::Location', aliases: [:parent] do
2
+ factory :location, class: "Cats::Core::Location", aliases: [:parent] do
3
3
  code { FFaker::Name.name }
4
4
  name { FFaker::Name.name }
5
5
  location_type { Cats::Core::Location::REGION }
6
6
  ancestry { nil }
7
7
  end
8
8
 
9
- factory :zone, parent: :location, class: 'Cats::Core::Location' do
9
+ factory :zone, parent: :location, class: "Cats::Core::Location" do
10
10
  location_type { Cats::Core::Location::ZONE }
11
11
  parent
12
12
  end
13
13
 
14
- factory :woreda, parent: :location, class: 'Cats::Core::Location' do
14
+ factory :woreda, parent: :location, class: "Cats::Core::Location" do
15
15
  location_type { Cats::Core::Location::WOREDA }
16
16
  parent factory: :zone
17
17
  end
18
18
 
19
- factory :fdp, parent: :woreda, class: 'Cats::Core::Location' do
19
+ factory :fdp, parent: :woreda, class: "Cats::Core::Location" do
20
20
  location_type { Cats::Core::Location::FDP }
21
21
  parent factory: :woreda
22
22
 
@@ -30,12 +30,12 @@ FactoryBot.define do
30
30
  end
31
31
  end
32
32
 
33
- factory :hub, parent: :location, class: 'Cats::Core::Location' do
33
+ factory :hub, parent: :location, class: "Cats::Core::Location" do
34
34
  location_type { Cats::Core::Location::HUB }
35
35
  parent factory: :woreda
36
36
  end
37
37
 
38
- factory :warehouse, parent: :location, class: 'Cats::Core::Location' do
38
+ factory :warehouse, parent: :location, class: "Cats::Core::Location" do
39
39
  location_type { Cats::Core::Location::WAREHOUSE }
40
40
  parent factory: :hub
41
41
  end
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :lost_commodity, class: 'Cats::Core::LostCommodity' do
2
+ factory :lost_commodity, class: "Cats::Core::LostCommodity" do
3
3
  receipt_authorization
4
4
  quantity { 100 }
5
5
  unit { receipt_authorization.unit }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :menu_item, class: 'Cats::Core::MenuItem' do
2
+ factory :menu_item, class: "Cats::Core::MenuItem" do
3
3
  label { FFaker::Name.name }
4
4
  icon { FFaker::Name.name }
5
5
  route { FFaker::Name.name }
@@ -1,5 +1,5 @@
1
1
  FactoryBot.define do
2
- factory :menu, class: 'Cats::Core::Menu' do
2
+ factory :menu, class: "Cats::Core::Menu" do
3
3
  label { FFaker::Name.name }
4
4
  icon { FFaker::Name.name }
5
5
  application_module