@things-factory/operato-pms 3.7.5 → 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 +29 -29
  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,60 @@
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
+ @Entity()
16
+ @Index(
17
+ 'ix_plantation_setting_0',
18
+ (plantationSetting: PlantationSetting) => [plantationSetting.domain, plantationSetting.name],
19
+ { unique: true }
20
+ )
21
+ export class PlantationSetting {
22
+ @PrimaryGeneratedColumn('uuid')
23
+ id: string
24
+
25
+ @ManyToOne(type => Domain)
26
+ domain: Domain
27
+
28
+ @RelationId((plantationSetting: PlantationSetting) => plantationSetting.domain)
29
+ domainId: string
30
+
31
+ @Column()
32
+ name: string
33
+
34
+ @Column({ nullable: true })
35
+ description: string
36
+
37
+ @Column({ nullable: true })
38
+ category: string
39
+
40
+ @Column({ nullable: true })
41
+ value: string
42
+
43
+ @CreateDateColumn()
44
+ createdAt: Date
45
+
46
+ @UpdateDateColumn()
47
+ updatedAt: Date
48
+
49
+ @ManyToOne(type => User, { nullable: true })
50
+ creator: User
51
+
52
+ @RelationId((plantationSetting: PlantationSetting) => plantationSetting.creator)
53
+ creatorId: string
54
+
55
+ @ManyToOne(type => User, { nullable: true })
56
+ updater: User
57
+
58
+ @RelationId((plantationSetting: PlantationSetting) => plantationSetting.updater)
59
+ updaterId: string
60
+ }
@@ -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