@things-factory/operato-pms 4.0.24 → 4.0.28

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 (323) hide show
  1. package/client/bootstrap.js +12 -1
  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 +154 -52
  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/inventory/inventory-ramp-tonnage.js +23 -31
  19. package/client/pages/loading/daily-loading-detail.js +47 -93
  20. package/client/pages/loading/edit-loading-record.js +75 -294
  21. package/client/pages/loading/loading-create-record.js +52 -329
  22. package/client/pages/loading/loading-list.js +20 -83
  23. package/client/pages/master/block.js +1 -0
  24. package/client/pages/master/company.js +26 -13
  25. package/client/pages/master/home.js +67 -65
  26. package/client/pages/master/ramp.js +1 -0
  27. package/client/pages/master/staff.js +54 -3
  28. package/client/pages/master/truck.js +416 -0
  29. package/client/pages/report/home.js +72 -65
  30. package/client/pages/report/report-daily-ffb-dispatch-and-production.js +436 -0
  31. package/client/pages/report/report-daily-production.js +38 -6
  32. package/client/pages/report/report-daily-staff-harvest.js +50 -5
  33. package/client/pages/report/report-ffb-tonnage-between-individual-block.js +398 -0
  34. package/client/pages/report/report-monthly-ffb-sale.js +413 -0
  35. package/client/pages/report/report-monthly-production.js +33 -4
  36. package/client/pages/report/report-yearly-production.js +24 -8
  37. package/client/pages/setting/home.js +107 -0
  38. package/client/pages/setting/plantation-setting.js +109 -0
  39. package/client/route.js +25 -0
  40. package/dist-server/constants/index.js +1 -0
  41. package/dist-server/constants/index.js.map +1 -1
  42. package/dist-server/constants/organization.js +9 -0
  43. package/dist-server/constants/organization.js.map +1 -0
  44. package/dist-server/constants/transaction.js +2 -1
  45. package/dist-server/constants/transaction.js.map +1 -1
  46. package/dist-server/controllers/render-dispatchment.js +1 -1
  47. package/dist-server/controllers/render-dispatchment.js.map +1 -1
  48. package/dist-server/entities/daily-dispatch.js +18 -4
  49. package/dist-server/entities/daily-dispatch.js.map +1 -1
  50. package/dist-server/entities/daily-harvest-detail.js +9 -11
  51. package/dist-server/entities/daily-harvest-detail.js.map +1 -1
  52. package/dist-server/entities/daily-harvest.js +16 -6
  53. package/dist-server/entities/daily-harvest.js.map +1 -1
  54. package/dist-server/entities/daily-loading-detail.js +14 -6
  55. package/dist-server/entities/daily-loading-detail.js.map +1 -1
  56. package/dist-server/entities/daily-loading.js +3 -11
  57. package/dist-server/entities/daily-loading.js.map +1 -1
  58. package/dist-server/entities/index.js +7 -1
  59. package/dist-server/entities/index.js.map +1 -1
  60. package/dist-server/entities/organization-staff.js +5 -1
  61. package/dist-server/entities/organization-staff.js.map +1 -1
  62. package/dist-server/entities/plantation-inventory.js +4 -10
  63. package/dist-server/entities/plantation-inventory.js.map +1 -1
  64. package/dist-server/entities/plantation-setting.js +76 -0
  65. package/dist-server/entities/plantation-setting.js.map +1 -0
  66. package/dist-server/entities/truck.js +77 -0
  67. package/dist-server/entities/truck.js.map +1 -0
  68. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +13 -2
  69. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -1
  70. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +25 -11
  71. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
  72. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +4 -3
  73. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
  74. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +3 -1
  75. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -1
  76. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +21 -2
  77. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  78. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +8 -2
  79. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
  80. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +4 -6
  81. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -1
  82. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +20 -54
  83. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
  84. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +31 -106
  85. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  86. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +204 -0
  87. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -0
  88. package/dist-server/graphql/resolvers/dashboard/index.js +8 -0
  89. package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
  90. package/dist-server/graphql/resolvers/index.js +9 -6
  91. package/dist-server/graphql/resolvers/index.js.map +1 -1
  92. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +7 -3
  93. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -1
  94. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +12 -0
  95. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -0
  96. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js +13 -0
  97. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js.map +1 -0
  98. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js +16 -0
  99. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js.map +1 -0
  100. package/dist-server/graphql/resolvers/plantation-setting/index.js +15 -0
  101. package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -0
  102. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +33 -0
  103. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -0
  104. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +31 -0
  105. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -0
  106. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +16 -0
  107. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -0
  108. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +111 -0
  109. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -0
  110. package/dist-server/graphql/resolvers/report/daily-production-reports.js +50 -37
  111. package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -1
  112. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +21 -10
  113. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -1
  114. package/dist-server/graphql/resolvers/report/index.js +5 -1
  115. package/dist-server/graphql/resolvers/report/index.js.map +1 -1
  116. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +91 -0
  117. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -0
  118. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +89 -0
  119. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -0
  120. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +87 -0
  121. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -0
  122. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +46 -31
  123. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
  124. package/dist-server/graphql/resolvers/report/yearly-production-reports.js +38 -28
  125. package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -1
  126. package/dist-server/graphql/resolvers/truck/delete-trucks.js +18 -0
  127. package/dist-server/graphql/resolvers/truck/delete-trucks.js.map +1 -0
  128. package/dist-server/graphql/resolvers/truck/index.js +12 -0
  129. package/dist-server/graphql/resolvers/truck/index.js.map +1 -0
  130. package/dist-server/graphql/resolvers/truck/truck-query.js +46 -0
  131. package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -0
  132. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +40 -0
  133. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -0
  134. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js +4 -1
  135. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js.map +1 -1
  136. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js +4 -1
  137. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js.map +1 -1
  138. package/dist-server/graphql/types/daily-dispatch/index.js +6 -1
  139. package/dist-server/graphql/types/daily-dispatch/index.js.map +1 -1
  140. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js +4 -1
  141. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js.map +1 -1
  142. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js +5 -2
  143. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js.map +1 -1
  144. package/dist-server/graphql/types/daily-harvest/daily-harvest.js +3 -0
  145. package/dist-server/graphql/types/daily-harvest/daily-harvest.js.map +1 -1
  146. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js +4 -1
  147. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js.map +1 -1
  148. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js +1 -0
  149. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js.map +1 -1
  150. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js +1 -0
  151. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js.map +1 -1
  152. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js +1 -0
  153. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js.map +1 -1
  154. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js +0 -2
  155. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js.map +1 -1
  156. package/dist-server/graphql/types/daily-loading/daily-loading.js +0 -2
  157. package/dist-server/graphql/types/daily-loading/daily-loading.js.map +1 -1
  158. package/dist-server/graphql/types/daily-loading/new-daily-loading.js +0 -2
  159. package/dist-server/graphql/types/daily-loading/new-daily-loading.js.map +1 -1
  160. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +6 -3
  161. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -1
  162. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js +3 -0
  163. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js.map +1 -1
  164. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js +6 -3
  165. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js.map +1 -1
  166. package/dist-server/graphql/types/dashboard/bunches-count.js +15 -0
  167. package/dist-server/graphql/types/dashboard/bunches-count.js.map +1 -0
  168. package/dist-server/graphql/types/dashboard/index.js +32 -0
  169. package/dist-server/graphql/types/dashboard/index.js.map +1 -0
  170. package/dist-server/graphql/types/dashboard/productions-overview.js +15 -0
  171. package/dist-server/graphql/types/dashboard/productions-overview.js.map +1 -0
  172. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js +14 -0
  173. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js.map +1 -0
  174. package/dist-server/graphql/types/dashboard/tonnage-production.js +17 -0
  175. package/dist-server/graphql/types/dashboard/tonnage-production.js.map +1 -0
  176. package/dist-server/graphql/types/dashboard/yield-production.js +17 -0
  177. package/dist-server/graphql/types/dashboard/yield-production.js.map +1 -0
  178. package/dist-server/graphql/types/index.js +9 -6
  179. package/dist-server/graphql/types/index.js.map +1 -1
  180. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js +2 -0
  181. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js.map +1 -1
  182. package/dist-server/graphql/types/organization-staff/organization-staff.js +3 -0
  183. package/dist-server/graphql/types/organization-staff/organization-staff.js.map +1 -1
  184. package/dist-server/graphql/types/plantation-setting/index.js +36 -0
  185. package/dist-server/graphql/types/plantation-setting/index.js.map +1 -0
  186. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js +16 -0
  187. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js.map +1 -0
  188. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js +14 -0
  189. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js.map +1 -0
  190. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js +18 -0
  191. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js.map +1 -0
  192. package/dist-server/graphql/types/plantation-setting/plantation-setting.js +22 -0
  193. package/dist-server/graphql/types/plantation-setting/plantation-setting.js.map +1 -0
  194. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js +14 -0
  195. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js.map +1 -0
  196. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js +15 -0
  197. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js.map +1 -0
  198. package/dist-server/graphql/types/report/index.js +33 -0
  199. package/dist-server/graphql/types/report/index.js.map +1 -1
  200. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js +14 -0
  201. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js.map +1 -0
  202. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js +19 -0
  203. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js.map +1 -0
  204. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js +14 -0
  205. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js.map +1 -0
  206. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js +25 -0
  207. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js.map +1 -0
  208. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js +14 -0
  209. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js.map +1 -0
  210. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js +24 -0
  211. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js.map +1 -0
  212. package/dist-server/graphql/types/truck/index.js +33 -0
  213. package/dist-server/graphql/types/truck/index.js.map +1 -0
  214. package/dist-server/graphql/types/truck/new-truck.js +14 -0
  215. package/dist-server/graphql/types/truck/new-truck.js.map +1 -0
  216. package/dist-server/graphql/types/truck/truck-list.js +14 -0
  217. package/dist-server/graphql/types/truck/truck-list.js.map +1 -0
  218. package/dist-server/graphql/types/truck/truck-patch.js +17 -0
  219. package/dist-server/graphql/types/truck/truck-patch.js.map +1 -0
  220. package/dist-server/graphql/types/truck/truck.js +22 -0
  221. package/dist-server/graphql/types/truck/truck.js.map +1 -0
  222. package/dist-server/utils/core-values.js +2 -2
  223. package/dist-server/utils/transaction-util.js +2 -1
  224. package/dist-server/utils/transaction-util.js.map +1 -1
  225. package/package.json +56 -56
  226. package/server/constants/index.ts +1 -0
  227. package/server/constants/organization.ts +5 -0
  228. package/server/constants/transaction.ts +2 -1
  229. package/server/controllers/render-dispatchment.ts +1 -1
  230. package/server/entities/daily-dispatch.ts +18 -5
  231. package/server/entities/daily-harvest-detail.ts +10 -11
  232. package/server/entities/daily-harvest.ts +16 -7
  233. package/server/entities/daily-loading-detail.ts +14 -6
  234. package/server/entities/daily-loading.ts +7 -11
  235. package/server/entities/index.ts +6 -0
  236. package/server/entities/organization-staff.ts +6 -1
  237. package/server/entities/plantation-inventory.ts +6 -10
  238. package/server/entities/plantation-setting.ts +60 -0
  239. package/server/entities/truck.ts +58 -0
  240. package/server/graphql/resolvers/daily-dispatch/daily-dispatch-query.ts +15 -2
  241. package/server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts +40 -14
  242. package/server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts +8 -4
  243. package/server/graphql/resolvers/daily-harvest/daily-harvest-query.ts +7 -2
  244. package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +50 -4
  245. package/server/graphql/resolvers/daily-harvest/update-daily-harvest.ts +12 -2
  246. package/server/graphql/resolvers/daily-loading/daily-loading-query.ts +6 -6
  247. package/server/graphql/resolvers/daily-loading/generate-daily-loading.ts +27 -109
  248. package/server/graphql/resolvers/daily-loading/update-daily-loading.ts +56 -214
  249. package/server/graphql/resolvers/dashboard/dashboard-query.ts +252 -0
  250. package/server/graphql/resolvers/dashboard/index.ts +5 -0
  251. package/server/graphql/resolvers/index.ts +10 -6
  252. package/server/graphql/resolvers/organization-staff/organization-staff-query.ts +13 -4
  253. package/server/graphql/resolvers/plantation-setting/create-plantation-setting.ts +16 -0
  254. package/server/graphql/resolvers/plantation-setting/delete-plantation-setting.ts +13 -0
  255. package/server/graphql/resolvers/plantation-setting/delete-plantation-settings.ts +16 -0
  256. package/server/graphql/resolvers/plantation-setting/index.ts +19 -0
  257. package/server/graphql/resolvers/plantation-setting/plantation-setting-query.ts +38 -0
  258. package/server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.ts +46 -0
  259. package/server/graphql/resolvers/plantation-setting/update-plantation-setting.ts +19 -0
  260. package/server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.ts +138 -0
  261. package/server/graphql/resolvers/report/daily-production-reports.ts +59 -48
  262. package/server/graphql/resolvers/report/daily-staff-harvest-reports.ts +28 -20
  263. package/server/graphql/resolvers/report/index.ts +9 -1
  264. package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +114 -0
  265. package/server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts +110 -0
  266. package/server/graphql/resolvers/report/monthly-ffb-sale-reports.ts +107 -0
  267. package/server/graphql/resolvers/report/monthly-production-reports.ts +54 -40
  268. package/server/graphql/resolvers/report/yearly-production-reports.ts +43 -38
  269. package/server/graphql/resolvers/truck/delete-trucks.ts +21 -0
  270. package/server/graphql/resolvers/truck/index.ts +12 -0
  271. package/server/graphql/resolvers/truck/truck-query.ts +52 -0
  272. package/server/graphql/resolvers/truck/update-multiple-truck.ts +55 -0
  273. package/server/graphql/types/daily-dispatch/daily-dispatch-patch.ts +4 -1
  274. package/server/graphql/types/daily-dispatch/daily-dispatch.ts +4 -1
  275. package/server/graphql/types/daily-dispatch/index.ts +6 -1
  276. package/server/graphql/types/daily-dispatch/new-daily-dispatch.ts +4 -1
  277. package/server/graphql/types/daily-harvest/daily-harvest-patch.ts +5 -2
  278. package/server/graphql/types/daily-harvest/daily-harvest.ts +3 -0
  279. package/server/graphql/types/daily-harvest/new-daily-harvest.ts +4 -1
  280. package/server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.ts +1 -0
  281. package/server/graphql/types/daily-harvest-detail/daily-harvest-detail.ts +1 -0
  282. package/server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.ts +1 -0
  283. package/server/graphql/types/daily-loading/daily-loading-patch.ts +0 -2
  284. package/server/graphql/types/daily-loading/daily-loading.ts +0 -2
  285. package/server/graphql/types/daily-loading/new-daily-loading.ts +0 -2
  286. package/server/graphql/types/daily-loading-detail/daily-loading-detail-patch.ts +6 -3
  287. package/server/graphql/types/daily-loading-detail/daily-loading-detail.ts +3 -0
  288. package/server/graphql/types/daily-loading-detail/new-daily-loading-detail.ts +6 -3
  289. package/server/graphql/types/dashboard/bunches-count.ts +9 -0
  290. package/server/graphql/types/dashboard/index.ts +17 -0
  291. package/server/graphql/types/dashboard/productions-overview.ts +9 -0
  292. package/server/graphql/types/dashboard/tonnage-bunches-inventories.ts +8 -0
  293. package/server/graphql/types/dashboard/tonnage-production.ts +11 -0
  294. package/server/graphql/types/dashboard/yield-production.ts +11 -0
  295. package/server/graphql/types/index.ts +10 -6
  296. package/server/graphql/types/organization-staff/organization-staff-patch.ts +2 -0
  297. package/server/graphql/types/organization-staff/organization-staff.ts +3 -0
  298. package/server/graphql/types/plantation-setting/index.ts +21 -0
  299. package/server/graphql/types/plantation-setting/new-plantation-setting.ts +10 -0
  300. package/server/graphql/types/plantation-setting/plantation-setting-list.ts +8 -0
  301. package/server/graphql/types/plantation-setting/plantation-setting-patch.ts +12 -0
  302. package/server/graphql/types/plantation-setting/plantation-setting.ts +16 -0
  303. package/server/graphql/types/report/daily-ffb-dispatch-production-report-list.ts +8 -0
  304. package/server/graphql/types/report/daily-ffb-dispatch-production-report.ts +9 -0
  305. package/server/graphql/types/report/index.ts +33 -0
  306. package/server/graphql/types/report/monthly-block-dispatch-report-list.ts +7 -0
  307. package/server/graphql/types/report/monthly-block-dispatch-report.ts +13 -0
  308. package/server/graphql/types/report/monthly-dispatch-summary-report-list.ts +7 -0
  309. package/server/graphql/types/report/monthly-dispatch-summary-report.ts +19 -0
  310. package/server/graphql/types/report/monthly-ffb-sale-report-list.ts +7 -0
  311. package/server/graphql/types/report/monthly-ffb-sale-report.ts +18 -0
  312. package/server/graphql/types/truck/index.ts +18 -0
  313. package/server/graphql/types/truck/new-truck.ts +8 -0
  314. package/server/graphql/types/truck/truck-list.ts +8 -0
  315. package/server/graphql/types/truck/truck-patch.ts +11 -0
  316. package/server/graphql/types/truck/truck.ts +16 -0
  317. package/server/utils/core-values.ts +2 -2
  318. package/server/utils/transaction-util.ts +2 -1
  319. package/things-factory.config.js +27 -1
  320. package/translations/en.json +79 -16
  321. package/translations/ko.json +78 -48
  322. package/translations/ms.json +78 -48
  323. package/translations/zh.json +78 -48
@@ -1,23 +1,41 @@
1
- import { MultiColumnFormStyles } from '@things-factory/form-ui'
1
+ import '../../component/driver-selector-popup'
2
+ import '../../component/truck-selector-popup'
3
+ import '../../component/mill-selector-popup'
2
4
  import '@things-factory/grist-ui'
5
+
6
+ import gql from 'graphql-tag'
7
+ import { css, html } from 'lit-element'
8
+
9
+ import { MultiColumnFormStyles } from '@things-factory/form-ui'
3
10
  import { i18next, localize } from '@things-factory/i18n-base'
11
+ import { openPopup } from '@things-factory/layout-base'
4
12
  import { client, CustomAlert, navigate, PageView } from '@things-factory/shell'
5
- import gql from 'graphql-tag'
6
13
  import { CommonButtonStyles } from '@things-factory/styles'
7
14
  import { isMobileDevice } from '@things-factory/utils'
8
- import { css, html } from 'lit-element'
9
15
 
10
16
  class DispatchmentCreateRecord extends localize(i18next)(PageView) {
11
17
  static get properties() {
12
18
  return {
13
19
  dispatchmentGristConfig: Object,
14
- dispatchmentData: Object
20
+ dispatchmentData: Object,
21
+ selectedDriverName: String,
22
+ selectedDriverID: String,
23
+ selectedTruckName: String,
24
+ selectedMillName: String,
25
+ selectedTruckID: String,
26
+ selectedMillID: String
15
27
  }
16
28
  }
17
29
 
18
30
  constructor() {
19
31
  super()
20
32
  this.dispatchmentData = { records: [] }
33
+ this.selectedDriverName = ''
34
+ this.selectedMillName = ''
35
+ this.selectedMillID = ''
36
+ this.selectedDriverID = ''
37
+ this.selectedTruckName = ''
38
+ this.selectedTruckID = ''
21
39
  }
22
40
 
23
41
  static get styles() {
@@ -93,17 +111,38 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
93
111
  <label>${i18next.t('label.dispatchment_date')}</label>
94
112
  <input type="datetime-local" name="dispatchAt" required />
95
113
 
96
- <label>${i18next.t('label.truck_driver')}</label>
97
- <input name="externalDriver" />
98
-
99
- <label>${i18next.t('label.driver_identification')}</label>
100
- <input name="driverIdentification" />
101
-
102
- <label>${i18next.t('label.truck_no')}</label>
103
- <input name="transportNo" required />
114
+ <label>${i18next.t('label.driver')}</label>
115
+ <input
116
+ name="driver"
117
+ readonly
118
+ @click="${this._openDriverSelector.bind(this)}"
119
+ value=${this.selectedDriverName}
120
+ required
121
+ />
122
+
123
+ <label>${i18next.t('label.lorry_no')}</label>
124
+ <input
125
+ name="transport"
126
+ readonly
127
+ @click="${this._openTruckSelector.bind(this)}"
128
+ value=${this.selectedTruckName}
129
+ required
130
+ />
104
131
 
105
132
  <label>${i18next.t('label.destination')}</label>
106
- <input name="dispatchTo" required />
133
+ <input
134
+ name="dispatchTo"
135
+ readonly
136
+ @click="${this._openMillSelector.bind(this)}"
137
+ value=${this.selectedMillName}
138
+ required
139
+ />
140
+
141
+ <label>${i18next.t('label.chit_no')}</label>
142
+ <input name="chitNo" />
143
+
144
+ <label>${i18next.t('label.oer_percentage')}</label>
145
+ <input name="percentage" type="number" min="0" />
107
146
  </fieldset>
108
147
  </form>
109
148
 
@@ -132,6 +171,27 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
132
171
  return this.shadowRoot.querySelector('data-grist#dispatchment-grist')
133
172
  }
134
173
 
174
+ get driverInput() {
175
+ return this.shadowRoot.querySelector('input[name=driver]')
176
+ }
177
+
178
+ get percentageInput() {
179
+ return this.shadowRoot.querySelector('input[name=percentage]')
180
+ }
181
+
182
+ get truckInput() {
183
+ return this.shadowRoot.querySelector('input[name=transport]')
184
+ }
185
+
186
+ pageUpdated() {
187
+ this.selectedDriverName = ''
188
+ this.selectedDriverID = ''
189
+ this.selectedTruckName = ''
190
+ this.selectedTruckID = ''
191
+ this.selectedMillName = ''
192
+ this.selectedMillID = ''
193
+ }
194
+
135
195
  pageInitialized() {
136
196
  this.dispatchmentGristConfig = {
137
197
  pagination: { infinite: true },
@@ -155,38 +215,20 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
155
215
  },
156
216
  {
157
217
  type: 'object',
158
- name: 'plantationInventory',
218
+ name: 'ramp',
159
219
  header: i18next.t('field.ramp'),
160
220
  record: {
161
221
  editable: true,
162
222
  options: {
163
- queryName: 'plantationInventories',
164
- nameField: 'rampName',
165
- basicArgs: {
166
- filters: [{ name: 'type', value: 'RAMP_TONNAGE', operator: 'eq' }]
167
- },
223
+ queryName: 'ramps',
168
224
  select: [
169
225
  { name: 'id', hidden: true },
170
- { name: 'rampId', hidden: true },
171
- { name: 'rampName', header: i18next.t('field.ramp'), width: 200 },
172
- {
173
- name: 'totalTonnage',
174
- type: 'float',
175
- header: i18next.t('field.remaining_tonnage'),
176
- width: 200,
177
- ignoreCondition: true
178
- }
226
+ { name: 'name', header: i18next.t('field.name'), width: 200 }
179
227
  ],
180
- list: { fields: ['rampName', 'totalTonnage'] }
228
+ list: { fields: ['id', 'name'] }
181
229
  }
182
230
  },
183
- width: 300
184
- },
185
- {
186
- type: 'integer',
187
- name: 'totalTonnage',
188
- header: i18next.t('field.available_tonnage'),
189
- width: 140
231
+ width: 130
190
232
  },
191
233
  {
192
234
  type: 'float',
@@ -226,7 +268,7 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
226
268
 
227
269
  try {
228
270
  if (changedColumn === 'collectedRampWeight') {
229
- this._validateReleaseTonnage(changeRecord.collectedRampWeight, changeRecord.totalTonnage)
271
+ this._validateReleaseTonnage(changeRecord.collectedRampWeight)
230
272
  }
231
273
  this._updateInventoryList()
232
274
  } catch (e) {
@@ -240,34 +282,29 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
240
282
  }
241
283
  }
242
284
 
243
- _validateReleaseTonnage(collectedRampWeight, totalTonnage) {
244
- if (totalTonnage === undefined) throw new Error(i18next.t('text.there_is_no_selected_items'))
245
- if (collectedRampWeight > totalTonnage) {
246
- throw new Error(i18next.t('text.available_tonnage_insufficient'))
247
- } else if (collectedRampWeight <= 0) {
285
+ _validateReleaseTonnage(collectedRampWeight) {
286
+ if (collectedRampWeight <= 0 || isNaN(collectedRampWeight)) {
248
287
  throw new Error(i18next.t('text.invalid_tonnage_input'))
249
288
  }
250
289
  }
251
290
 
252
291
  async _updateInventoryList() {
253
- const _selectedInventories = (this.dispatchmentGrist.dirtyData.records || []).map(
254
- record => record.plantationInventory.id
255
- )
292
+ const _selectedRamp = (this.dispatchmentGrist.dirtyData.records || []).map(record => record.ramp.id)
256
293
  this.dispatchmentGristConfig = {
257
294
  ...this.dispatchmentGristConfig,
258
295
  columns: this.dispatchmentGristConfig.columns.map(column => {
259
- if (column.name === 'plantationInventory') {
296
+ if (column.name === 'ramp') {
260
297
  column.record.options.basicArgs = {
261
298
  ...column.record.options.basicArgs,
262
299
  filters: [...column.record.options.basicArgs.filters.filter(filter => filter.name !== 'id')]
263
300
  }
264
301
 
265
- if (_selectedInventories.length)
302
+ if (_selectedRamp.length)
266
303
  column.record.options.basicArgs.filters = [
267
304
  ...column.record.options.basicArgs.filters,
268
305
  {
269
306
  name: 'id',
270
- value: _selectedInventories,
307
+ value: _selectedRamp,
271
308
  operator: 'notin'
272
309
  }
273
310
  ]
@@ -295,6 +332,13 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
295
332
  let dailyDispatch = this._getFormInfo()
296
333
  dailyDispatch.dailyDispatchDetails = this._getDispatchDetails()
297
334
 
335
+ dailyDispatch = {
336
+ ...dailyDispatch,
337
+ driver: { id: this.selectedDriverID, name: this.selectedDriverName },
338
+ transport: { id: this.selectedTruckID, name: this.selectedTruckName },
339
+ dispatchTo: { id: this.selectedMillID, name: this.selectedMillName }
340
+ }
341
+
298
342
  const response = await client.mutate({
299
343
  mutation: gql`
300
344
  mutation generateDailyDispatch($dailyDispatch: NewDailyDispatch!) {
@@ -319,6 +363,12 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
319
363
 
320
364
  _validateForm() {
321
365
  if (!this.dispatchmentForm.checkValidity()) throw new Error(i18next.t('text.dispatch_record_invalid'))
366
+
367
+ if (this.percentageInput?.value) {
368
+ if (isNaN(this.percentageInput.value) || this.percentageInput?.value <= 0) {
369
+ throw new Error(i18next.t('text.x_has_invalid_value', { state: 'label.percentage' }))
370
+ }
371
+ }
322
372
  }
323
373
 
324
374
  _validateDispatchmentData() {
@@ -326,16 +376,14 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
326
376
  if (!this.dispatchmentGrist.dirtyData.records || !this.dispatchmentGrist.dirtyData.records.length)
327
377
  throw new Error(i18next.t('text.no_records_in_dispatchment_list'))
328
378
 
329
- if (
330
- this.dispatchmentGrist.dirtyData.records.filter(record => !record.rampName || !record.collectedRampWeight).length
331
- )
379
+ if (this.dispatchmentGrist.dirtyData.records.filter(record => !record.ramp || !record.collectedRampWeight).length)
332
380
  throw new Error(i18next.t('text.empty_value_in_dispatchment_data'))
333
381
  }
334
382
 
335
383
  _getDispatchDetails() {
336
384
  return this.dispatchmentGrist.dirtyData.records.map(record => {
337
385
  let dailyDispatchDetails = {
338
- ramp: { id: record.plantationInventory.rampId, name: record.plantationInventory.rampName },
386
+ ramp: { id: record.ramp.id, name: record.ramp.name },
339
387
  collectedRampWeight: Number(record.collectedRampWeight),
340
388
  remark: record?.remark ? record.remark : null
341
389
  }
@@ -365,6 +413,60 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
365
413
  return obj
366
414
  }
367
415
 
416
+ _openDriverSelector() {
417
+ openPopup(
418
+ html`
419
+ <driver-selector-popup
420
+ @selected="${e => {
421
+ this.selectedDriverID = e.detail.id
422
+ this.selectedDriverName = `${e.detail.name} (${e.detail.idNumber})`
423
+ }}"
424
+ ></driver-selector-popup>
425
+ `,
426
+ {
427
+ backdrop: true,
428
+ size: 'large',
429
+ title: i18next.t('title.select_driver')
430
+ }
431
+ )
432
+ }
433
+
434
+ _openMillSelector() {
435
+ openPopup(
436
+ html`
437
+ <mill-selector-popup
438
+ @selected="${e => {
439
+ this.selectedMillID = e.detail.id
440
+ this.selectedMillName = `${e.detail.name}`
441
+ }}"
442
+ ></mill-selector-popup>
443
+ `,
444
+ {
445
+ backdrop: true,
446
+ size: 'large',
447
+ title: i18next.t('title.select_destination')
448
+ }
449
+ )
450
+ }
451
+
452
+ _openTruckSelector() {
453
+ openPopup(
454
+ html`
455
+ <truck-selector-popup
456
+ @selected="${e => {
457
+ this.selectedTruckID = e.detail.id
458
+ this.selectedTruckName = `${e.detail.name}`
459
+ }}"
460
+ ></truck-selector-popup>
461
+ `,
462
+ {
463
+ backdrop: true,
464
+ size: 'large',
465
+ title: i18next.t('title.select_lorry')
466
+ }
467
+ )
468
+ }
469
+
368
470
  _showToast({ type, message }) {
369
471
  document.dispatchEvent(
370
472
  new CustomEvent('notify', {
@@ -1,11 +1,13 @@
1
1
  import '@things-factory/form-ui'
2
2
  import '@things-factory/grist-ui'
3
+
4
+ import gql from 'graphql-tag'
5
+ import { css, html } from 'lit-element'
6
+
3
7
  import { i18next, localize } from '@things-factory/i18n-base'
4
8
  import { client, navigate, PageView } from '@things-factory/shell'
5
9
  import { ScrollbarStyles } from '@things-factory/styles'
6
10
  import { isMobileDevice } from '@things-factory/utils'
7
- import gql from 'graphql-tag'
8
- import { css, html } from 'lit-element'
9
11
 
10
12
  class DispatchmentList extends localize(i18next)(PageView) {
11
13
  static get properties() {
@@ -73,18 +75,12 @@ class DispatchmentList extends localize(i18next)(PageView) {
73
75
  name: 'dispatchAt',
74
76
  type: 'date',
75
77
  props: { searchOper: 'eq' }
76
- },
77
- {
78
- label: i18next.t('field.truck_no'),
79
- name: 'transportNo',
80
- type: 'string',
81
- props: { searchOper: 'i_like' }
82
78
  }
83
79
  ]
84
80
 
85
81
  this.config = {
86
82
  list: {
87
- fields: ['dispatchAt', 'totalTonnageRelease', 'transportNo', 'driverName', 'updatedAt', 'updater']
83
+ fields: ['dispatchAt', 'totalTonnageRelease', 'driver', 'transportNo', 'dispatchTo', 'updatedAt', 'updater']
88
84
  },
89
85
  rows: { appendable: false, selectable: { multiple: true } },
90
86
  columns: [
@@ -104,6 +100,7 @@ class DispatchmentList extends localize(i18next)(PageView) {
104
100
  name: 'dispatchAt',
105
101
  header: i18next.t('field.dispatchment_date'),
106
102
  sortable: true,
103
+ label: true,
107
104
  width: 150
108
105
  },
109
106
  {
@@ -111,13 +108,15 @@ class DispatchmentList extends localize(i18next)(PageView) {
111
108
  name: 'totalTonnageRelease',
112
109
  header: i18next.t('field.total_tonnage_release'),
113
110
  sortable: true,
111
+ label: true,
114
112
  width: 150
115
113
  },
116
114
  {
117
- type: 'string',
118
- name: 'driverName',
115
+ type: 'object',
116
+ name: 'driver',
119
117
  header: i18next.t('field.transport_driver'),
120
118
  sortable: true,
119
+ label: true,
121
120
  width: 150
122
121
  },
123
122
  {
@@ -125,22 +124,31 @@ class DispatchmentList extends localize(i18next)(PageView) {
125
124
  name: 'transportNo',
126
125
  header: i18next.t('field.truck_no'),
127
126
  sortable: true,
127
+ label: true,
128
+ width: 150
129
+ },
130
+ {
131
+ type: 'object',
132
+ name: 'dispatchTo',
133
+ header: i18next.t('field.destination'),
134
+ sortable: true,
135
+ label: true,
128
136
  width: 150
129
137
  },
130
138
  {
131
139
  type: 'datetime',
132
140
  name: 'updatedAt',
133
141
  header: i18next.t('field.updated_at'),
134
- record: { align: 'left' },
135
142
  sortable: true,
143
+ label: true,
136
144
  width: 160
137
145
  },
138
146
  {
139
147
  type: 'object',
140
148
  name: 'updater',
141
149
  header: i18next.t('field.updater'),
142
- record: { align: 'left' },
143
150
  sortable: true,
151
+ label: true,
144
152
  width: 200
145
153
  }
146
154
  ]
@@ -172,14 +180,17 @@ class DispatchmentList extends localize(i18next)(PageView) {
172
180
  id
173
181
  name
174
182
  dispatchAt
175
- dispatchTo
183
+ dispatchTo {
184
+ id
185
+ name
186
+ description
187
+ }
176
188
  transportNo
177
189
  driver {
178
190
  id
179
191
  name
180
192
  description
181
193
  }
182
- externalDriver
183
194
  totalTonnageRelease
184
195
  deletedAt
185
196
  createdAt
@@ -210,25 +221,6 @@ class DispatchmentList extends localize(i18next)(PageView) {
210
221
  }
211
222
  }
212
223
 
213
- _compareValues(key, order = 'asc') {
214
- return function innerSort(a, b) {
215
- if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
216
- return 0
217
- }
218
-
219
- const varA = typeof a[key] === 'string' ? a[key].toUpperCase() : a[key]
220
- const varB = typeof b[key] === 'string' ? b[key].toUpperCase() : b[key]
221
-
222
- let comparison = 0
223
- if (varA > varB) {
224
- comparison = 1
225
- } else if (varA < varB) {
226
- comparison = -1
227
- }
228
- return order === 'desc' ? comparison * -1 : comparison
229
- }
230
- }
231
-
232
224
  _exportableData() {
233
225
  return this.dataGrist.exportRecords()
234
226
  }
@@ -1,11 +1,14 @@
1
- import { MultiColumnFormStyles } from '@things-factory/form-ui'
2
1
  import '@things-factory/grist-ui'
2
+
3
+ import gql from 'graphql-tag'
4
+ import { css, html } from 'lit-element'
5
+
6
+ import { MultiColumnFormStyles } from '@things-factory/form-ui'
3
7
  import { i18next, localize } from '@things-factory/i18n-base'
4
8
  import { client, CustomAlert, navigate, PageView } from '@things-factory/shell'
5
9
  import { CommonButtonStyles } from '@things-factory/styles'
6
10
  import { isMobileDevice } from '@things-factory/utils'
7
- import gql from 'graphql-tag'
8
- import { css, html } from 'lit-element'
11
+
9
12
  import { RECORD_STATUS } from '../constants'
10
13
 
11
14
  class DailyHarvestingDetail extends localize(i18next)(PageView) {
@@ -95,7 +98,7 @@ class DailyHarvestingDetail extends localize(i18next)(PageView) {
95
98
  }
96
99
 
97
100
  return {
98
- title: i18next.t('title.harvesting_record_detail'),
101
+ title: i18next.t('title.harvesting_contractors_daily_harvesting_record'),
99
102
  actions
100
103
  }
101
104
  }
@@ -105,7 +108,7 @@ class DailyHarvestingDetail extends localize(i18next)(PageView) {
105
108
  <form name="dailyHarvest" class="multi-column-form" autocomplete="off">
106
109
  <fieldset>
107
110
  <legend>${i18next.t('title.harvest_no')}: ${this._harvestNo}</legend>
108
- <label>${i18next.t('label.harvest_date')}</label>
111
+ <label>${i18next.t('label.date')}</label>
109
112
  <input type="date" name="harvestDate" readonly />
110
113
 
111
114
  <label>${i18next.t('label.block')}</label>
@@ -114,13 +117,22 @@ class DailyHarvestingDetail extends localize(i18next)(PageView) {
114
117
  <label>${i18next.t('label.harvesting_round')}</label>
115
118
  <input type="number" name="harvestingRound" readonly />
116
119
 
117
- <label>${i18next.t('label.coverage')}</label>
120
+ <label>${i18next.t('label.total_task_covered')}</label>
118
121
  <input type="number" name="coverage" readonly />
119
122
  </fieldset>
120
123
  <fieldset>
121
- <legend>${i18next.t('title.overall_record')}</legend>
122
- <label>${i18next.t('label.total_bunch_harvested')}</label>
124
+ <legend>${i18next.t('title.summary')}</legend>
125
+ <label>${i18next.t('label.yesterday_balance_in_field')}</label>
126
+ <input type="number" name="yesterdayBalanceBunchInField" readonly />
127
+
128
+ <label>${i18next.t('label.harvested_today')}</label>
123
129
  <input type="number" name="totalBunchHarvested" readonly />
130
+
131
+ <label>${i18next.t('label.collected_today')}</label>
132
+ <input type="number" name="collectedBunch" readonly />
133
+
134
+ <label>${i18next.t('label.total_number_of_bunches')}</label>
135
+ <input type="number" name="balanceBunchInField" readonly />
124
136
  </fieldset>
125
137
  </form>
126
138
 
@@ -156,7 +168,7 @@ class DailyHarvestingDetail extends localize(i18next)(PageView) {
156
168
  this.harvestGristConfig = {
157
169
  pagination: { infinite: true },
158
170
  list: {
159
- fields: ['organizationStaff', 'totalBunchHarvested', 'remark']
171
+ fields: ['organizationStaff', 'organizationName', 'totalTonnageHarvested', 'totalBunchHarvested', 'remark']
160
172
  },
161
173
  rows: { appendable: false },
162
174
  columns: [
@@ -165,18 +177,35 @@ class DailyHarvestingDetail extends localize(i18next)(PageView) {
165
177
  type: 'string',
166
178
  name: 'staffName',
167
179
  header: i18next.t('field.task_no'),
180
+ label: true,
181
+ width: 300
182
+ },
183
+ {
184
+ type: 'string',
185
+ name: 'organizationName',
186
+ header: i18next.t('field.contractor'),
187
+ label: true,
168
188
  width: 300
169
189
  },
170
190
  {
171
191
  type: 'float',
172
192
  name: 'totalBunchHarvested',
173
193
  header: i18next.t('field.total_no_of_bunches'),
194
+ label: true,
174
195
  width: 150
175
196
  },
197
+ {
198
+ type: 'float',
199
+ name: 'totalTonnageHarvested',
200
+ header: i18next.t('field.total_tonnage_estimated'),
201
+ label: true,
202
+ width: 200
203
+ },
176
204
  {
177
205
  type: 'string',
178
206
  name: 'remark',
179
207
  header: i18next.t('field.remarks'),
208
+ label: true,
180
209
  width: 300
181
210
  }
182
211
  ]
@@ -192,13 +221,7 @@ class DailyHarvestingDetail extends localize(i18next)(PageView) {
192
221
  }
193
222
 
194
223
  async _fetchHarvestRecord() {
195
- if (!this._harvestNo) {
196
- CustomAlert({
197
- title: i18next.t('text.no_records'),
198
- text: i18next.t('text.unable_to_find_harvest_record')
199
- })
200
- }
201
-
224
+ if (!this._harvestNo) return
202
225
  const response = await client.query({
203
226
  query: gql`
204
227
  query dailyHarvest($name: String!) {
@@ -211,16 +234,24 @@ class DailyHarvestingDetail extends localize(i18next)(PageView) {
211
234
  }
212
235
  harvestDate
213
236
  totalBunchHarvested
237
+ yesterdayBalanceBunchInField
238
+ balanceBunchInField
239
+ collectedBunch
214
240
  coverage
215
241
  rainfall
216
242
  harvestingRound
217
243
  status
218
244
  dailyHarvestDetails {
219
245
  totalBunchHarvested
246
+ totalTonnageHarvested
220
247
  remark
221
248
  organizationStaff {
222
249
  id
223
250
  name
251
+ organization {
252
+ id
253
+ name
254
+ }
224
255
  }
225
256
  }
226
257
  }
@@ -232,13 +263,19 @@ class DailyHarvestingDetail extends localize(i18next)(PageView) {
232
263
  if (!response.errors) {
233
264
  const dailyHarvest = response.data.dailyHarvest
234
265
  const dailyHarvestDetails = dailyHarvest.dailyHarvestDetails
235
- this._fillupHarvestForm({ ...dailyHarvest, blockName: dailyHarvest.block.name })
266
+
267
+ this._fillupHarvestForm({
268
+ ...dailyHarvest,
269
+ blockName: dailyHarvest.block.name
270
+ })
271
+
236
272
  this._status = dailyHarvest.status
237
273
  this.harvestData = {
238
274
  records: dailyHarvestDetails.map(detail => {
239
275
  return {
240
276
  ...detail,
241
- staffName: detail.organizationStaff && detail.organizationStaff.name
277
+ staffName: detail.organizationStaff && detail.organizationStaff.name,
278
+ organizationName: detail.organizationStaff.organization && detail.organizationStaff.organization.name
242
279
  }
243
280
  })
244
281
  }