@things-factory/operato-pms 3.8.0 → 3.8.13

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 (305) hide show
  1. package/client/bootstrap.js +20 -7
  2. package/client/component/block-selector-popup.js +125 -24
  3. package/client/component/driver-selector-popup.js +223 -0
  4. package/client/component/mill-selector-popup.js +200 -0
  5. package/client/component/tracked-plantation-setting.js +113 -0
  6. package/client/component/truck-selector-popup.js +202 -0
  7. package/client/menu.js +34 -2
  8. package/client/pages/constants/index.js +1 -0
  9. package/client/pages/constants/organization.js +5 -0
  10. package/client/pages/dispatchment/daily-dispatch-detail.js +57 -18
  11. package/client/pages/dispatchment/dispatchment-create-record.js +140 -13
  12. package/client/pages/dispatchment/dispatchment-list.js +26 -34
  13. package/client/pages/harvesting/daily-harvesting-detail.js +55 -18
  14. package/client/pages/harvesting/edit-harvesting-record.js +89 -23
  15. package/client/pages/harvesting/harvesting-create-record.js +102 -16
  16. package/client/pages/harvesting/harvesting-list.js +58 -12
  17. package/client/pages/inventory/inventory-field-bunches.js +6 -4
  18. package/client/pages/loading/daily-loading-detail.js +47 -93
  19. package/client/pages/loading/edit-loading-record.js +75 -294
  20. package/client/pages/loading/loading-create-record.js +52 -329
  21. package/client/pages/loading/loading-list.js +20 -83
  22. package/client/pages/master/block.js +1 -0
  23. package/client/pages/master/company.js +26 -13
  24. package/client/pages/master/home.js +67 -65
  25. package/client/pages/master/ramp.js +1 -0
  26. package/client/pages/master/staff.js +54 -3
  27. package/client/pages/master/truck.js +416 -0
  28. package/client/pages/report/home.js +72 -65
  29. package/client/pages/report/report-daily-ffb-dispatch-and-production.js +393 -0
  30. package/client/pages/report/report-daily-production.js +38 -6
  31. package/client/pages/report/report-daily-staff-harvest.js +50 -5
  32. package/client/pages/report/report-ffb-tonnage-between-individual-block.js +393 -0
  33. package/client/pages/report/report-monthly-ffb-sale.js +413 -0
  34. package/client/pages/report/report-monthly-production.js +33 -4
  35. package/client/pages/report/report-yearly-production.js +24 -8
  36. package/client/pages/setting/home.js +107 -0
  37. package/client/pages/setting/plantation-setting.js +109 -0
  38. package/client/route.js +25 -0
  39. package/dist-server/constants/index.js +1 -0
  40. package/dist-server/constants/index.js.map +1 -1
  41. package/dist-server/constants/organization.js +9 -0
  42. package/dist-server/constants/organization.js.map +1 -0
  43. package/dist-server/controllers/render-dispatchment.js +1 -1
  44. package/dist-server/controllers/render-dispatchment.js.map +1 -1
  45. package/dist-server/entities/daily-dispatch.js +19 -4
  46. package/dist-server/entities/daily-dispatch.js.map +1 -1
  47. package/dist-server/entities/daily-harvest-detail.js +9 -11
  48. package/dist-server/entities/daily-harvest-detail.js.map +1 -1
  49. package/dist-server/entities/daily-harvest.js +16 -6
  50. package/dist-server/entities/daily-harvest.js.map +1 -1
  51. package/dist-server/entities/daily-loading-detail.js +14 -6
  52. package/dist-server/entities/daily-loading-detail.js.map +1 -1
  53. package/dist-server/entities/daily-loading.js +3 -11
  54. package/dist-server/entities/daily-loading.js.map +1 -1
  55. package/dist-server/entities/index.js +7 -1
  56. package/dist-server/entities/index.js.map +1 -1
  57. package/dist-server/entities/organization-staff.js +5 -1
  58. package/dist-server/entities/organization-staff.js.map +1 -1
  59. package/dist-server/entities/plantation-inventory.js +4 -10
  60. package/dist-server/entities/plantation-inventory.js.map +1 -1
  61. package/dist-server/entities/plantation-setting.js +76 -0
  62. package/dist-server/entities/plantation-setting.js.map +1 -0
  63. package/dist-server/entities/truck.js +77 -0
  64. package/dist-server/entities/truck.js.map +1 -0
  65. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +13 -2
  66. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -1
  67. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +25 -11
  68. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
  69. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +3 -2
  70. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
  71. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +3 -1
  72. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -1
  73. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +21 -2
  74. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  75. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +8 -2
  76. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
  77. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +4 -6
  78. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -1
  79. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +20 -54
  80. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
  81. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +17 -105
  82. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  83. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +82 -0
  84. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -0
  85. package/dist-server/graphql/resolvers/dashboard/index.js +8 -0
  86. package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
  87. package/dist-server/graphql/resolvers/index.js +9 -6
  88. package/dist-server/graphql/resolvers/index.js.map +1 -1
  89. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +7 -3
  90. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -1
  91. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +12 -0
  92. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -0
  93. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js +13 -0
  94. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js.map +1 -0
  95. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js +16 -0
  96. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js.map +1 -0
  97. package/dist-server/graphql/resolvers/plantation-setting/index.js +15 -0
  98. package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -0
  99. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +33 -0
  100. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -0
  101. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +31 -0
  102. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -0
  103. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +16 -0
  104. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -0
  105. package/dist-server/graphql/resolvers/report/daily-production-reports.js +46 -33
  106. package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -1
  107. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +21 -10
  108. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -1
  109. package/dist-server/graphql/resolvers/report/index.js +4 -1
  110. package/dist-server/graphql/resolvers/report/index.js.map +1 -1
  111. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +89 -0
  112. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -0
  113. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +89 -0
  114. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -0
  115. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +87 -0
  116. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -0
  117. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +46 -31
  118. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
  119. package/dist-server/graphql/resolvers/report/yearly-production-reports.js +38 -28
  120. package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -1
  121. package/dist-server/graphql/resolvers/truck/delete-trucks.js +18 -0
  122. package/dist-server/graphql/resolvers/truck/delete-trucks.js.map +1 -0
  123. package/dist-server/graphql/resolvers/truck/index.js +12 -0
  124. package/dist-server/graphql/resolvers/truck/index.js.map +1 -0
  125. package/dist-server/graphql/resolvers/truck/truck-query.js +46 -0
  126. package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -0
  127. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +40 -0
  128. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -0
  129. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js +4 -1
  130. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js.map +1 -1
  131. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js +4 -1
  132. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js.map +1 -1
  133. package/dist-server/graphql/types/daily-dispatch/index.js +6 -1
  134. package/dist-server/graphql/types/daily-dispatch/index.js.map +1 -1
  135. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js +4 -1
  136. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js.map +1 -1
  137. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js +5 -2
  138. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js.map +1 -1
  139. package/dist-server/graphql/types/daily-harvest/daily-harvest.js +3 -0
  140. package/dist-server/graphql/types/daily-harvest/daily-harvest.js.map +1 -1
  141. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js +4 -1
  142. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js.map +1 -1
  143. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js +1 -0
  144. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js.map +1 -1
  145. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js +1 -0
  146. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js.map +1 -1
  147. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js +1 -0
  148. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js.map +1 -1
  149. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js +0 -2
  150. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js.map +1 -1
  151. package/dist-server/graphql/types/daily-loading/daily-loading.js +0 -2
  152. package/dist-server/graphql/types/daily-loading/daily-loading.js.map +1 -1
  153. package/dist-server/graphql/types/daily-loading/new-daily-loading.js +0 -2
  154. package/dist-server/graphql/types/daily-loading/new-daily-loading.js.map +1 -1
  155. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +6 -3
  156. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -1
  157. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js +3 -0
  158. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js.map +1 -1
  159. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js +6 -3
  160. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js.map +1 -1
  161. package/dist-server/graphql/types/dashboard/bunches-count.js +15 -0
  162. package/dist-server/graphql/types/dashboard/bunches-count.js.map +1 -0
  163. package/dist-server/graphql/types/dashboard/index.js +32 -0
  164. package/dist-server/graphql/types/dashboard/index.js.map +1 -0
  165. package/dist-server/graphql/types/dashboard/productions-overview.js +15 -0
  166. package/dist-server/graphql/types/dashboard/productions-overview.js.map +1 -0
  167. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js +14 -0
  168. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js.map +1 -0
  169. package/dist-server/graphql/types/dashboard/tonnage-production.js +17 -0
  170. package/dist-server/graphql/types/dashboard/tonnage-production.js.map +1 -0
  171. package/dist-server/graphql/types/dashboard/yield-production.js +17 -0
  172. package/dist-server/graphql/types/dashboard/yield-production.js.map +1 -0
  173. package/dist-server/graphql/types/index.js +9 -6
  174. package/dist-server/graphql/types/index.js.map +1 -1
  175. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js +2 -0
  176. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js.map +1 -1
  177. package/dist-server/graphql/types/organization-staff/organization-staff.js +3 -0
  178. package/dist-server/graphql/types/organization-staff/organization-staff.js.map +1 -1
  179. package/dist-server/graphql/types/plantation-setting/index.js +36 -0
  180. package/dist-server/graphql/types/plantation-setting/index.js.map +1 -0
  181. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js +16 -0
  182. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js.map +1 -0
  183. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js +14 -0
  184. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js.map +1 -0
  185. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js +18 -0
  186. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js.map +1 -0
  187. package/dist-server/graphql/types/plantation-setting/plantation-setting.js +22 -0
  188. package/dist-server/graphql/types/plantation-setting/plantation-setting.js.map +1 -0
  189. package/dist-server/graphql/types/report/index.js +20 -0
  190. package/dist-server/graphql/types/report/index.js.map +1 -1
  191. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js +14 -0
  192. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js.map +1 -0
  193. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js +19 -0
  194. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js.map +1 -0
  195. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js +14 -0
  196. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js.map +1 -0
  197. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js +25 -0
  198. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js.map +1 -0
  199. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js +14 -0
  200. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js.map +1 -0
  201. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js +24 -0
  202. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js.map +1 -0
  203. package/dist-server/graphql/types/truck/index.js +33 -0
  204. package/dist-server/graphql/types/truck/index.js.map +1 -0
  205. package/dist-server/graphql/types/truck/new-truck.js +14 -0
  206. package/dist-server/graphql/types/truck/new-truck.js.map +1 -0
  207. package/dist-server/graphql/types/truck/truck-list.js +14 -0
  208. package/dist-server/graphql/types/truck/truck-list.js.map +1 -0
  209. package/dist-server/graphql/types/truck/truck-patch.js +17 -0
  210. package/dist-server/graphql/types/truck/truck-patch.js.map +1 -0
  211. package/dist-server/graphql/types/truck/truck.js +22 -0
  212. package/dist-server/graphql/types/truck/truck.js.map +1 -0
  213. package/package.json +2 -2
  214. package/server/constants/index.ts +1 -0
  215. package/server/constants/organization.ts +5 -0
  216. package/server/controllers/render-dispatchment.ts +1 -1
  217. package/server/entities/daily-dispatch.ts +21 -5
  218. package/server/entities/daily-harvest-detail.ts +10 -11
  219. package/server/entities/daily-harvest.ts +16 -7
  220. package/server/entities/daily-loading-detail.ts +14 -6
  221. package/server/entities/daily-loading.ts +7 -11
  222. package/server/entities/index.ts +6 -0
  223. package/server/entities/organization-staff.ts +6 -1
  224. package/server/entities/plantation-inventory.ts +6 -10
  225. package/server/entities/plantation-setting.ts +60 -0
  226. package/server/entities/truck.ts +58 -0
  227. package/server/graphql/resolvers/daily-dispatch/daily-dispatch-query.ts +15 -2
  228. package/server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts +40 -14
  229. package/server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts +6 -2
  230. package/server/graphql/resolvers/daily-harvest/daily-harvest-query.ts +7 -2
  231. package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +50 -4
  232. package/server/graphql/resolvers/daily-harvest/update-daily-harvest.ts +12 -2
  233. package/server/graphql/resolvers/daily-loading/daily-loading-query.ts +6 -6
  234. package/server/graphql/resolvers/daily-loading/generate-daily-loading.ts +27 -109
  235. package/server/graphql/resolvers/daily-loading/update-daily-loading.ts +27 -213
  236. package/server/graphql/resolvers/dashboard/dashboard-query.ts +96 -0
  237. package/server/graphql/resolvers/dashboard/index.ts +5 -0
  238. package/server/graphql/resolvers/index.ts +10 -6
  239. package/server/graphql/resolvers/organization-staff/organization-staff-query.ts +13 -4
  240. package/server/graphql/resolvers/plantation-setting/create-plantation-setting.ts +16 -0
  241. package/server/graphql/resolvers/plantation-setting/delete-plantation-setting.ts +13 -0
  242. package/server/graphql/resolvers/plantation-setting/delete-plantation-settings.ts +16 -0
  243. package/server/graphql/resolvers/plantation-setting/index.ts +19 -0
  244. package/server/graphql/resolvers/plantation-setting/plantation-setting-query.ts +38 -0
  245. package/server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.ts +46 -0
  246. package/server/graphql/resolvers/plantation-setting/update-plantation-setting.ts +19 -0
  247. package/server/graphql/resolvers/report/daily-production-reports.ts +55 -44
  248. package/server/graphql/resolvers/report/daily-staff-harvest-reports.ts +28 -20
  249. package/server/graphql/resolvers/report/index.ts +7 -1
  250. package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +112 -0
  251. package/server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts +110 -0
  252. package/server/graphql/resolvers/report/monthly-ffb-sale-reports.ts +107 -0
  253. package/server/graphql/resolvers/report/monthly-production-reports.ts +54 -40
  254. package/server/graphql/resolvers/report/yearly-production-reports.ts +43 -38
  255. package/server/graphql/resolvers/truck/delete-trucks.ts +21 -0
  256. package/server/graphql/resolvers/truck/index.ts +12 -0
  257. package/server/graphql/resolvers/truck/truck-query.ts +52 -0
  258. package/server/graphql/resolvers/truck/update-multiple-truck.ts +55 -0
  259. package/server/graphql/types/daily-dispatch/daily-dispatch-patch.ts +4 -1
  260. package/server/graphql/types/daily-dispatch/daily-dispatch.ts +4 -1
  261. package/server/graphql/types/daily-dispatch/index.ts +6 -1
  262. package/server/graphql/types/daily-dispatch/new-daily-dispatch.ts +4 -1
  263. package/server/graphql/types/daily-harvest/daily-harvest-patch.ts +5 -2
  264. package/server/graphql/types/daily-harvest/daily-harvest.ts +3 -0
  265. package/server/graphql/types/daily-harvest/new-daily-harvest.ts +4 -1
  266. package/server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.ts +1 -0
  267. package/server/graphql/types/daily-harvest-detail/daily-harvest-detail.ts +1 -0
  268. package/server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.ts +1 -0
  269. package/server/graphql/types/daily-loading/daily-loading-patch.ts +0 -2
  270. package/server/graphql/types/daily-loading/daily-loading.ts +0 -2
  271. package/server/graphql/types/daily-loading/new-daily-loading.ts +0 -2
  272. package/server/graphql/types/daily-loading-detail/daily-loading-detail-patch.ts +6 -3
  273. package/server/graphql/types/daily-loading-detail/daily-loading-detail.ts +3 -0
  274. package/server/graphql/types/daily-loading-detail/new-daily-loading-detail.ts +6 -3
  275. package/server/graphql/types/dashboard/bunches-count.ts +9 -0
  276. package/server/graphql/types/dashboard/index.ts +17 -0
  277. package/server/graphql/types/dashboard/productions-overview.ts +9 -0
  278. package/server/graphql/types/dashboard/tonnage-bunches-inventories.ts +8 -0
  279. package/server/graphql/types/dashboard/tonnage-production.ts +11 -0
  280. package/server/graphql/types/dashboard/yield-production.ts +11 -0
  281. package/server/graphql/types/index.ts +10 -6
  282. package/server/graphql/types/organization-staff/organization-staff-patch.ts +2 -0
  283. package/server/graphql/types/organization-staff/organization-staff.ts +3 -0
  284. package/server/graphql/types/plantation-setting/index.ts +21 -0
  285. package/server/graphql/types/plantation-setting/new-plantation-setting.ts +10 -0
  286. package/server/graphql/types/plantation-setting/plantation-setting-list.ts +8 -0
  287. package/server/graphql/types/plantation-setting/plantation-setting-patch.ts +12 -0
  288. package/server/graphql/types/plantation-setting/plantation-setting.ts +16 -0
  289. package/server/graphql/types/report/index.ts +20 -0
  290. package/server/graphql/types/report/monthly-block-dispatch-report-list.ts +7 -0
  291. package/server/graphql/types/report/monthly-block-dispatch-report.ts +13 -0
  292. package/server/graphql/types/report/monthly-dispatch-summary-report-list.ts +7 -0
  293. package/server/graphql/types/report/monthly-dispatch-summary-report.ts +19 -0
  294. package/server/graphql/types/report/monthly-ffb-sale-report-list.ts +7 -0
  295. package/server/graphql/types/report/monthly-ffb-sale-report.ts +18 -0
  296. package/server/graphql/types/truck/index.ts +18 -0
  297. package/server/graphql/types/truck/new-truck.ts +8 -0
  298. package/server/graphql/types/truck/truck-list.ts +8 -0
  299. package/server/graphql/types/truck/truck-patch.ts +11 -0
  300. package/server/graphql/types/truck/truck.ts +16 -0
  301. package/things-factory.config.js +27 -1
  302. package/translations/en.json +78 -16
  303. package/translations/ko.json +77 -48
  304. package/translations/ms.json +74 -45
  305. package/translations/zh.json +77 -48
@@ -0,0 +1,58 @@
1
+ import {
2
+ Column,
3
+ CreateDateColumn,
4
+ Entity,
5
+ Index,
6
+ ManyToOne,
7
+ PrimaryGeneratedColumn,
8
+ RelationId,
9
+ UpdateDateColumn
10
+ } from 'typeorm'
11
+
12
+ import { User } from '@things-factory/auth-base'
13
+ import { Domain } from '@things-factory/shell'
14
+
15
+ import { Organization } from '../entities'
16
+
17
+ @Entity()
18
+ @Index('ix_truck_0', (truck: Truck) => [truck.domain, truck.id], { unique: true })
19
+ export class Truck {
20
+ @PrimaryGeneratedColumn('uuid')
21
+ id: string
22
+
23
+ @ManyToOne(type => Domain)
24
+ domain: Domain
25
+
26
+ @RelationId((truck: Truck) => truck.domain)
27
+ domainId: string
28
+
29
+ @Column()
30
+ name: string
31
+
32
+ @Column({ nullable: true })
33
+ description: string
34
+
35
+ @ManyToOne(type => Organization)
36
+ organization: Organization
37
+
38
+ @Column({ nullable: true })
39
+ deletedAt: Date
40
+
41
+ @CreateDateColumn()
42
+ createdAt: Date
43
+
44
+ @UpdateDateColumn()
45
+ updatedAt: Date
46
+
47
+ @ManyToOne(type => User, { nullable: true })
48
+ creator: User
49
+
50
+ @RelationId((truck: Truck) => truck.creator)
51
+ creatorId: string
52
+
53
+ @ManyToOne(type => User, { nullable: true })
54
+ updater: User
55
+
56
+ @RelationId((truck: Truck) => truck.updater)
57
+ updaterId: string
58
+ }
@@ -1,5 +1,7 @@
1
- import { buildQuery, Domain, ListParam } from '@things-factory/shell'
2
1
  import { EntityManager, IsNull } from 'typeorm'
2
+
3
+ import { buildQuery, Domain, ListParam } from '@things-factory/shell'
4
+
3
5
  import { DailyDispatch as DailyDispatchEntity } from '../../../entities'
4
6
 
5
7
  export const Query = {
@@ -8,7 +10,16 @@ export const Query = {
8
10
 
9
11
  return await tx.getRepository(DailyDispatchEntity).findOne({
10
12
  where: { domain, name, deletedAt: IsNull() },
11
- relations: ['domain', 'dailyDispatchDetails', 'dailyDispatchDetails.ramp', 'driver', 'creator', 'updater']
13
+ relations: [
14
+ 'domain',
15
+ 'dailyDispatchDetails',
16
+ 'dailyDispatchDetails.ramp',
17
+ 'driver',
18
+ 'dispatchTo',
19
+ 'transport',
20
+ 'creator',
21
+ 'updater'
22
+ ]
12
23
  })
13
24
  },
14
25
 
@@ -21,6 +32,8 @@ export const Query = {
21
32
  queryBuilder
22
33
  .leftJoinAndSelect('DailyDispatch.domain', 'Domain')
23
34
  .leftJoinAndSelect('DailyDispatch.driver', 'Driver')
35
+ .leftJoinAndSelect('DailyDispatch.dispatchTo', 'DispatchTo')
36
+ .leftJoinAndSelect('DailyDispatch.transport', 'Transport')
24
37
  .leftJoinAndSelect('DailyDispatch.creator', 'Creator')
25
38
  .leftJoinAndSelect('DailyDispatch.updater', 'Updater')
26
39
  .leftJoinAndSelect('DailyDispatch.dailyDispatchDetails', 'DailyDispatchDetails')
@@ -1,8 +1,18 @@
1
+ import { EntityManager, getRepository, Repository } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Domain } from '@things-factory/shell'
3
- import { EntityManager, getRepository, Repository } from 'typeorm'
4
- import { RECORD_STATUS, INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'
5
- import { DailyDispatch, DailyDispatchDetail, OrganizationStaff, PlantationInventory, Ramp } from '../../../entities'
5
+
6
+ import { INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'
7
+ import {
8
+ DailyDispatch,
9
+ DailyDispatchDetail,
10
+ Organization,
11
+ OrganizationStaff,
12
+ PlantationInventory,
13
+ Ramp,
14
+ Truck
15
+ } from '../../../entities'
6
16
  import { generateTransactionHistory, NoGenerator } from '../../../utils'
7
17
 
8
18
  export const generateDailyDispatch = {
@@ -11,10 +21,24 @@ export const generateDailyDispatch = {
11
21
 
12
22
  let dailyDispatchDetails: DailyDispatchDetail[] = dailyDispatch.dailyDispatchDetails
13
23
  let driver: OrganizationStaff
24
+ let transport: Truck
25
+ let dispatchTo: Organization
14
26
 
15
- if (!dailyDispatch?.externalDriver) {
27
+ if (dailyDispatch?.driver) {
16
28
  driver = await tx.getRepository(OrganizationStaff).findOne({
17
- where: { staffId: dailyDispatch.staffId }
29
+ where: { id: dailyDispatch.driver.id }
30
+ })
31
+ }
32
+
33
+ if (dailyDispatch?.transport) {
34
+ transport = await tx.getRepository(Truck).findOne({
35
+ where: { id: dailyDispatch.transport.id }
36
+ })
37
+ }
38
+
39
+ if (dailyDispatch?.dispatchTo) {
40
+ dispatchTo = await tx.getRepository(Organization).findOne({
41
+ where: { id: dailyDispatch.dispatchTo.id }
18
42
  })
19
43
  }
20
44
 
@@ -26,14 +50,15 @@ export const generateDailyDispatch = {
26
50
  let newDailyDispatch: DailyDispatch = new DailyDispatch()
27
51
  newDailyDispatch.name = NoGenerator.dailyDispatch()
28
52
  newDailyDispatch.domain = domain
29
- newDailyDispatch.transportNo = dailyDispatch.transportNo
30
- newDailyDispatch.driverIdentification = dailyDispatch?.driverIdentification
31
- ? dailyDispatch.driverIdentification
32
- : null
33
- newDailyDispatch.driver = driver ? driver : null
34
- newDailyDispatch.externalDriver = dailyDispatch?.externalDriver ? dailyDispatch.externalDriver : null
53
+ newDailyDispatch.transport = transport
54
+ newDailyDispatch.transportNo = transport.name
55
+ newDailyDispatch.driver = driver
56
+ newDailyDispatch.driverIdentification = driver?.idNumber ? driver.idNumber : null
57
+ newDailyDispatch.externalDriver = driver?.name ? driver?.name : null
35
58
  newDailyDispatch.totalTonnageRelease = totalTonnageRelease
36
- newDailyDispatch.dispatchTo = dailyDispatch.dispatchTo
59
+ newDailyDispatch.chitNo = dailyDispatch?.chitNo
60
+ newDailyDispatch.percentage = dailyDispatch?.percentage
61
+ newDailyDispatch.dispatchTo = dispatchTo
37
62
  newDailyDispatch.dispatchAt = dailyDispatch.dispatchAt
38
63
  newDailyDispatch.status = RECORD_STATUS.STORED
39
64
  newDailyDispatch.creator = user
@@ -50,7 +75,7 @@ export const generateDailyDispatch = {
50
75
  tx
51
76
  )
52
77
 
53
- // await updatePlantationInventory(domain, newDailyDispatch, dailyDispatchDetails, user, tx)
78
+ await updatePlantationInventory(domain, newDailyDispatch, dailyDispatchDetails, user, tx)
54
79
 
55
80
  return newDailyDispatch
56
81
  }
@@ -108,13 +133,14 @@ export async function updatePlantationInventory(
108
133
  rampInventory.totalTonnage = currentRampTonnage - dispatchedTonnage
109
134
  rampInventory.updater = user
110
135
  rampInventory = await plantationInvRepo.save(rampInventory)
136
+ const dispatchDate: string = newDailyDispatch.dispatchAt.toString().split('T')[0]
111
137
 
112
138
  await generateTransactionHistory(
113
139
  rampInventory,
114
140
  newDailyDispatch.id,
115
141
  newDailyDispatch.name,
116
142
  TRANSACTION_TYPE.DISPATCHMENT,
117
- newDailyDispatch.dispatchAt.toISOString().split('T')[0],
143
+ dispatchDate,
118
144
  0,
119
145
  -dispatchedTonnage,
120
146
  user,
@@ -1,10 +1,12 @@
1
+ import { EntityManager } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Domain } from '@things-factory/shell'
3
- import { EntityManager } from 'typeorm'
5
+
4
6
  import { DailyDispatch, DailyDispatchDetail } from '../../../entities'
5
7
 
6
8
  export const updateDailyDispatch = {
7
- async updateDailyDispatch(_: any, { name, dailyDispatchDetails }, context: any) {
9
+ async updateDailyDispatch(_: any, { name, chitNo, percentage, dailyDispatchDetails }, context: any) {
8
10
  const { domain, tx, user }: { domain: Domain; tx: EntityManager; user: User } = context.state
9
11
 
10
12
  const repository = tx.getRepository(DailyDispatch)
@@ -31,6 +33,8 @@ export const updateDailyDispatch = {
31
33
 
32
34
  return await repository.save({
33
35
  ...dailyDispatch,
36
+ chitNo,
37
+ percentage,
34
38
  updater: user
35
39
  })
36
40
  }
@@ -1,11 +1,15 @@
1
- import { buildQuery, Domain, ListParam } from '@things-factory/shell'
2
1
  import { EntityManager, IsNull } from 'typeorm'
3
- import { DailyHarvest as DailyHarvestEntity } from '../../../entities'
2
+
3
+ import { buildQuery, Domain, ListParam } from '@things-factory/shell'
4
+
5
+ import { DailyHarvest as DailyHarvestEntity, RecordTransaction } from '../../../entities'
4
6
 
5
7
  export const Query = {
6
8
  async dailyHarvest(_: any, { name }, context: any) {
7
9
  const { domain, tx }: { domain: Domain; tx: EntityManager } = context.state
8
10
 
11
+ const transaction: RecordTransaction = await tx.getRepository(RecordTransaction).findOne({ where: { domain } })
12
+
9
13
  return await tx.getRepository(DailyHarvestEntity).findOne({
10
14
  where: { domain, name, deletedAt: IsNull() },
11
15
  relations: [
@@ -13,6 +17,7 @@ export const Query = {
13
17
  'block',
14
18
  'dailyHarvestDetails',
15
19
  'dailyHarvestDetails.organizationStaff',
20
+ 'dailyHarvestDetails.organizationStaff.organization',
16
21
  'creator',
17
22
  'updater'
18
23
  ]
@@ -1,6 +1,8 @@
1
+ import { EntityManager, getRepository, IsNull, Repository } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Domain } from '@things-factory/shell'
3
- import { EntityManager, getRepository, IsNull, Repository } from 'typeorm'
5
+
4
6
  import { INVENTORY_STATUS, INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'
5
7
  import { Block, DailyHarvest, DailyHarvestDetail, OrganizationStaff, PlantationInventory } from '../../../entities'
6
8
  import { generateTransactionHistory, NoGenerator } from '../../../utils'
@@ -12,14 +14,19 @@ export const generateDailyHarvest = {
12
14
  let dailyHarvestDetails: DailyHarvestDetail[] = dailyHarvest.dailyHarvestDetails
13
15
 
14
16
  const block: Block = await tx.getRepository(Block).findOne({
15
- where: { name: dailyHarvest.block, deletedAt: IsNull() }
17
+ where: { domain, name: dailyHarvest.block, deletedAt: IsNull() }
16
18
  })
17
19
 
18
20
  // get sum of bunch harvested from all staff
19
- const totalBunchHarvested = dailyHarvestDetails.reduce(function (prev, cur) {
21
+ const totalBunchHarvested: number = dailyHarvestDetails.reduce(function (prev, cur) {
20
22
  return prev + cur.totalBunchHarvested
21
23
  }, 0)
22
24
 
25
+ const collectedBunch: number = dailyHarvest.collectedBunch || 0
26
+ let yesterdayBalanceBunchInField: number = dailyHarvest.yesterdayBalanceBunchInField || 0
27
+
28
+ if (collectedBunch > totalBunchHarvested) throw new Error('Collected bunch more than total bunch harvested today')
29
+
23
30
  // 1. Create daily harvest
24
31
  let newDailyHarvest: DailyHarvest = new DailyHarvest()
25
32
  newDailyHarvest.name = NoGenerator.dailyHarvest()
@@ -28,7 +35,10 @@ export const generateDailyHarvest = {
28
35
  newDailyHarvest.harvestingRound = dailyHarvest.harvestingRound
29
36
  newDailyHarvest.harvestDate = dailyHarvest.harvestDate
30
37
  newDailyHarvest.coverage = dailyHarvest.coverage
38
+ newDailyHarvest.yesterdayBalanceBunchInField = yesterdayBalanceBunchInField
31
39
  newDailyHarvest.totalBunchHarvested = totalBunchHarvested
40
+ newDailyHarvest.collectedBunch = collectedBunch
41
+ newDailyHarvest.balanceBunchInField = yesterdayBalanceBunchInField + totalBunchHarvested - collectedBunch
32
42
  newDailyHarvest.status = RECORD_STATUS.STORED
33
43
  newDailyHarvest.creator = user
34
44
  newDailyHarvest.updater = user
@@ -104,7 +114,7 @@ export async function addPlantationInventory(
104
114
 
105
115
  existingFieldBunch.totalBunches = newTotalBunches
106
116
  existingFieldBunch.updater = user
107
- await plantationInvRepo.save(existingFieldBunch)
117
+ existingFieldBunch = await plantationInvRepo.save(existingFieldBunch)
108
118
 
109
119
  await generateTransactionHistory(
110
120
  existingFieldBunch,
@@ -117,6 +127,24 @@ export async function addPlantationInventory(
117
127
  user,
118
128
  tx
119
129
  )
130
+
131
+ if (newDailyHarvest.collectedBunch > 0) {
132
+ existingFieldBunch.totalBunches -= newDailyHarvest.collectedBunch
133
+ existingFieldBunch.updater = user
134
+ existingFieldBunch = await plantationInvRepo.save(existingFieldBunch)
135
+
136
+ await generateTransactionHistory(
137
+ existingFieldBunch,
138
+ newDailyHarvest.id,
139
+ newDailyHarvest.name,
140
+ TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
141
+ newDailyHarvest.harvestDate,
142
+ -newDailyHarvest.collectedBunch,
143
+ 0,
144
+ user,
145
+ tx
146
+ )
147
+ }
120
148
  } else {
121
149
  newTotalBunches = newTotalBunches + newDailyHarvest.totalBunchHarvested
122
150
 
@@ -143,5 +171,23 @@ export async function addPlantationInventory(
143
171
  user,
144
172
  tx
145
173
  )
174
+
175
+ if (newDailyHarvest.collectedBunch > 0) {
176
+ plantationInventory.totalBunches -= newDailyHarvest.collectedBunch
177
+ plantationInventory.updater = user
178
+ plantationInventory = await plantationInvRepo.save(plantationInventory)
179
+
180
+ await generateTransactionHistory(
181
+ plantationInventory,
182
+ newDailyHarvest.id,
183
+ newDailyHarvest.name,
184
+ TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
185
+ newDailyHarvest.harvestDate,
186
+ -newDailyHarvest.collectedBunch,
187
+ 0,
188
+ user,
189
+ tx
190
+ )
191
+ }
146
192
  }
147
193
  }
@@ -1,6 +1,8 @@
1
+ import { EntityManager, getRepository, IsNull, Repository } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Domain } from '@things-factory/shell'
3
- import { EntityManager, getRepository, IsNull, Repository } from 'typeorm'
5
+
4
6
  import { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'
5
7
  import { Block, DailyHarvest, DailyHarvestDetail, OrganizationStaff, PlantationInventory } from '../../../entities'
6
8
  import { generateTransactionHistory, NoGenerator } from '../../../utils'
@@ -29,9 +31,11 @@ export const updateDailyHarvest = {
29
31
  )
30
32
 
31
33
  const block: Block = await tx.getRepository(Block).findOne({
32
- where: { name: dailyHarvestPatch.block, deletedAt: IsNull() }
34
+ where: { domain, name: dailyHarvestPatch.block, deletedAt: IsNull() }
33
35
  })
34
36
 
37
+ const collectedBunch: number = dailyHarvestPatch.collectedBunch || 0
38
+
35
39
  // get sum of bunch harvested from all staff
36
40
  var totalBunchHarvested = dailyHarvestPatch.dailyHarvestDetails.reduce(function (prev, cur) {
37
41
  return prev + cur.totalBunchHarvested
@@ -40,7 +44,11 @@ export const updateDailyHarvest = {
40
44
  foundDailyHarvest.block = block
41
45
  foundDailyHarvest.coverage = dailyHarvestPatch.coverage
42
46
  foundDailyHarvest.harvestingRound = dailyHarvestPatch.harvestingRound
47
+ foundDailyHarvest.yesterdayBalanceBunchInField = dailyHarvestPatch.yesterdayBalanceBunchInField
43
48
  foundDailyHarvest.totalBunchHarvested = totalBunchHarvested
49
+ foundDailyHarvest.collectedBunch = collectedBunch
50
+ foundDailyHarvest.balanceBunchInField =
51
+ foundDailyHarvest.yesterdayBalanceBunchInField + totalBunchHarvested - collectedBunch
44
52
  foundDailyHarvest.harvestDate = dailyHarvestPatch.harvestDate
45
53
  foundDailyHarvest.updater = user
46
54
  await dailyHarvestRepo.save(foundDailyHarvest)
@@ -64,6 +72,7 @@ export const updateDailyHarvest = {
64
72
  dailyHarvest: foundDailyHarvest,
65
73
  organizationStaff: foundStaff,
66
74
  totalBunchHarvested: foundDailyHarvestDetailPatch.totalBunchHarvested,
75
+ totalTonnageHarvested: foundDailyHarvestDetailPatch.totalTonnageHarvested,
67
76
  remark: foundDailyHarvestDetailPatch.remark,
68
77
  updater: user
69
78
  })
@@ -84,6 +93,7 @@ export const updateDailyHarvest = {
84
93
  id: dailyHarvestDetail.organizationStaff.id
85
94
  })
86
95
  newDailyHarvestDetail.totalBunchHarvested = dailyHarvestDetail.totalBunchHarvested
96
+ newDailyHarvestDetail.totalTonnageHarvested = dailyHarvestDetail.totalTonnageHarvested
87
97
  newDailyHarvestDetail.remark = dailyHarvestDetail.remark
88
98
  newDailyHarvestDetail.creator = user
89
99
  newDailyHarvestDetail.updater = user
@@ -1,5 +1,7 @@
1
- import { buildQuery, ListParam, Domain } from '@things-factory/shell'
2
1
  import { EntityManager, IsNull } from 'typeorm'
2
+
3
+ import { buildQuery, Domain, ListParam } from '@things-factory/shell'
4
+
3
5
  import { DailyLoading as DailyLoadingEntity } from '../../../entities'
4
6
 
5
7
  export const Query = {
@@ -10,11 +12,10 @@ export const Query = {
10
12
  where: { domain, name, deletedAt: IsNull() },
11
13
  relations: [
12
14
  'domain',
13
- 'block',
14
15
  'dailyLoadingDetails',
15
- 'dailyLoadingDetails.organizationStaff',
16
- 'dailyLoadingRamps',
17
- 'dailyLoadingRamps.ramp',
16
+ 'dailyLoadingDetails.truck',
17
+ 'dailyLoadingDetails.block',
18
+ 'dailyLoadingDetails.ramp',
18
19
  'creator',
19
20
  'updater'
20
21
  ]
@@ -29,7 +30,6 @@ export const Query = {
29
30
 
30
31
  queryBuilder
31
32
  .leftJoinAndSelect('DailyLoading.domain', 'Domain')
32
- .leftJoinAndSelect('DailyLoading.block', 'Block')
33
33
  .leftJoinAndSelect('DailyLoading.creator', 'Creator')
34
34
  .leftJoinAndSelect('DailyLoading.updater', 'Updater')
35
35
 
@@ -1,16 +1,10 @@
1
+ import { EntityManager, getRepository, Repository } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Domain } from '@things-factory/shell'
3
- import { EntityManager, getRepository, Repository } from 'typeorm'
5
+
4
6
  import { INVENTORY_STATUS, INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'
5
- import {
6
- Block,
7
- DailyLoading,
8
- DailyLoadingDetail,
9
- DailyLoadingRamp,
10
- OrganizationStaff,
11
- PlantationInventory,
12
- Ramp
13
- } from '../../../entities'
7
+ import { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'
14
8
  import { generateTransactionHistory, NoGenerator } from '../../../utils'
15
9
 
16
10
  export const generateDailyLoading = {
@@ -18,26 +12,19 @@ export const generateDailyLoading = {
18
12
  const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
19
13
 
20
14
  let dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails
21
- let dailyLoadingRamps: DailyLoadingRamp[] = dailyLoading.dailyLoadingRamps
22
15
 
23
- const block: Block = await tx.getRepository(Block).findOne({
24
- where: { name: dailyLoading.block }
25
- })
16
+ const totalWeight: number = dailyLoadingDetails.reduce(function (prev, cur) {
17
+ return prev + cur.totalBunchWeight
18
+ }, 0)
26
19
 
27
- // get sum of bunch loaded from all trip
28
20
  const totalBunch: number = dailyLoadingDetails.reduce(function (prev, cur) {
29
21
  return prev + cur.totalBunchLoaded
30
22
  }, 0)
31
23
 
32
- const totalWeight: number = dailyLoadingDetails.reduce(function (prev, cur) {
33
- return prev + cur.totalBunchWeight
34
- }, 0)
35
-
36
24
  // 1. Create daily loading
37
25
  let newDailyLoading: DailyLoading = new DailyLoading()
38
26
  newDailyLoading.name = NoGenerator.dailyLoading()
39
27
  newDailyLoading.domain = domain
40
- newDailyLoading.block = block
41
28
  newDailyLoading.loadingDate = dailyLoading.loadingDate
42
29
  newDailyLoading.totalBunch = totalBunch
43
30
  newDailyLoading.totalWeight = totalWeight
@@ -57,20 +44,6 @@ export const generateDailyLoading = {
57
44
  tx
58
45
  )
59
46
 
60
- // 2. Create daily loading ramp
61
- dailyLoadingRamps = await addDailyLoadingRamps(
62
- domain,
63
- newDailyLoading,
64
- dailyLoadingRamps.map((record: DailyLoadingRamp) => {
65
- return { ...record }
66
- }),
67
- user,
68
- tx
69
- )
70
-
71
- // 3. Deduct bunches inventory in field and add ramp tonnage
72
- await updatePlantationInventory(domain, newDailyLoading, dailyLoadingRamps, block, user, tx)
73
-
74
47
  return newDailyLoading
75
48
  }
76
49
  }
@@ -82,8 +55,10 @@ export async function addDailyLoadingDetail(
82
55
  user: User,
83
56
  tx?: EntityManager
84
57
  ): Promise<DailyLoadingDetail[]> {
85
- const organizationStaffRepo: Repository<OrganizationStaff> =
86
- tx?.getRepository(OrganizationStaff) || getRepository(OrganizationStaff)
58
+ const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)
59
+ const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)
60
+ const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
61
+
87
62
  const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =
88
63
  tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)
89
64
 
@@ -93,97 +68,40 @@ export async function addDailyLoadingDetail(
93
68
  ...record,
94
69
  domain,
95
70
  name: NoGenerator.dailyLoadingDetail(),
96
- organizationStaff: await organizationStaffRepo.findOne({ id: record.organizationStaff.id }),
97
- dailyLoading: newDailyLoading,
98
- creator: user,
99
- updater: user
100
- }
101
- })
102
- )
103
-
104
- return await dailyLoadingDetailRepo.save(dailyLoadingDetails)
105
- }
106
-
107
- export async function addDailyLoadingRamps(
108
- domain: Domain,
109
- newDailyLoading: DailyLoading,
110
- dailyLoadingRamps: DailyLoadingRamp[],
111
- user: User,
112
- tx?: EntityManager
113
- ): Promise<DailyLoadingRamp[]> {
114
- const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
115
- const dailyLoadingRampRepo: Repository<DailyLoadingRamp> =
116
- tx?.getRepository(DailyLoadingRamp) || getRepository(DailyLoadingRamp)
117
-
118
- dailyLoadingRamps = await Promise.all(
119
- dailyLoadingRamps.map(async (record: DailyLoadingRamp) => {
120
- return {
121
- ...record,
122
- domain,
123
- name: NoGenerator.dailyLoadingRamp(),
71
+ truck: await truckRepo.findOne({ id: record.truck.id }),
72
+ block: await blockRepo.findOne({ id: record.block.id }),
124
73
  ramp: await rampRepo.findOne({ id: record.ramp.id }),
125
74
  dailyLoading: newDailyLoading,
126
- creator: user,
127
- updater: user
75
+ creator: user
128
76
  }
129
77
  })
130
78
  )
131
79
 
132
- return await dailyLoadingRampRepo.save(dailyLoadingRamps)
80
+ dailyLoadingDetails = await dailyLoadingDetailRepo.save(dailyLoadingDetails)
81
+ await updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx)
82
+
83
+ return dailyLoadingDetails
133
84
  }
134
85
 
135
86
  export async function updatePlantationInventory(
136
87
  domain: Domain,
137
88
  newDailyLoading: DailyLoading,
138
- dailyLoadingRamps: DailyLoadingRamp[],
139
- block: Block,
89
+ dailyLoadingDetails: DailyLoadingDetail[],
140
90
  user: User,
141
91
  tx?: EntityManager
142
92
  ): Promise<void> {
143
93
  const plantationInvRepo: Repository<PlantationInventory> =
144
94
  tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)
145
95
 
146
- const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
147
-
148
- let existingBunchesInventory: PlantationInventory = await plantationInvRepo.findOne({
149
- where: { domain, block, type: INVENTORY_TYPE.FIELD_BUNCHES },
150
- relations: ['domain', 'block']
151
- })
152
-
153
- const currentFieldBunches: number = existingBunchesInventory.totalBunches
154
- const loadedFieldBunches: number = newDailyLoading.totalBunch
155
-
156
- // deduct field bunches
157
- if (loadedFieldBunches > currentFieldBunches) throw new Error('Insufficient Bunches in Field to be Loaded')
158
- existingBunchesInventory.totalBunches = currentFieldBunches - loadedFieldBunches
159
- existingBunchesInventory.updater = user
160
- existingBunchesInventory = await plantationInvRepo.save(existingBunchesInventory)
161
-
162
- await generateTransactionHistory(
163
- existingBunchesInventory,
164
- newDailyLoading.id,
165
- newDailyLoading.name,
166
- TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
167
- newDailyLoading.loadingDate,
168
- -loadedFieldBunches,
169
- 0,
170
- user,
171
- tx
172
- )
173
-
174
96
  await Promise.all(
175
- dailyLoadingRamps.map(async (record: any) => {
176
- let ramp: Ramp = await rampRepo.findOne({
177
- where: { domain, id: record.ramp.id }
178
- })
179
-
97
+ dailyLoadingDetails.map(async (dailyLoadingDetail: any) => {
180
98
  let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({
181
- where: { domain, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp },
99
+ where: { domain, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: dailyLoadingDetail.ramp },
182
100
  relations: ['domain', 'block', 'ramp']
183
101
  })
184
102
 
185
103
  if (existingRampTonnage) {
186
- existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + record.totalBunchWeight
104
+ existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + dailyLoadingDetail.totalBunchWeight
187
105
  existingRampTonnage.updater = user
188
106
  await plantationInvRepo.save(existingRampTonnage)
189
107
 
@@ -194,7 +112,7 @@ export async function updatePlantationInventory(
194
112
  TRANSACTION_TYPE.LOADING,
195
113
  newDailyLoading.loadingDate,
196
114
  0,
197
- record.totalBunchWeight,
115
+ dailyLoadingDetail.totalBunchWeight,
198
116
  user,
199
117
  tx
200
118
  )
@@ -202,11 +120,11 @@ export async function updatePlantationInventory(
202
120
  let plantationInventory: PlantationInventory = new PlantationInventory()
203
121
  plantationInventory.domain = domain
204
122
  plantationInventory.name = NoGenerator.rampTonnageName()
205
- plantationInventory.block = block
123
+ plantationInventory.block = dailyLoadingDetail.block
206
124
  plantationInventory.type = INVENTORY_TYPE.RAMP_TONNAGE
207
- plantationInventory.totalTonnage = record.totalBunchWeight
125
+ plantationInventory.totalTonnage = dailyLoadingDetail.totalBunchWeight
208
126
  plantationInventory.status = INVENTORY_STATUS.STORED
209
- plantationInventory.ramp = ramp
127
+ plantationInventory.ramp = dailyLoadingDetail.ramp
210
128
  plantationInventory.creator = user
211
129
  plantationInventory = await plantationInvRepo.save(plantationInventory)
212
130
 
@@ -217,7 +135,7 @@ export async function updatePlantationInventory(
217
135
  TRANSACTION_TYPE.LOADING,
218
136
  newDailyLoading.loadingDate,
219
137
  0,
220
- record.totalBunchWeight,
138
+ dailyLoadingDetail.totalBunchWeight,
221
139
  user,
222
140
  tx
223
141
  )