@things-factory/operato-pms 3.8.0 → 3.8.20

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 +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 +157 -54
  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 +3 -3
  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,11 +171,32 @@ 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 },
138
198
  list: {
139
- fields: ['plantationInventory', 'totalTonnage', 'releaseTonange']
199
+ fields: ['ramp', 'totalTonnage', 'releaseTonange']
140
200
  },
141
201
  columns: [
142
202
  { type: 'gutter', gutterName: 'sequence' },
@@ -155,38 +215,22 @@ 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',
224
+ basicArgs: { filters: [] },
168
225
  select: [
169
226
  { 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
- }
227
+ { name: 'name', header: i18next.t('field.name'), width: 200 },
228
+ { name: 'block', type: 'object', queryName: 'blocks', field: 'name', width: 200 }
179
229
  ],
180
- list: { fields: ['rampName', 'totalTonnage'] }
230
+ list: { fields: ['id', 'name', 'block'] }
181
231
  }
182
232
  },
183
- width: 300
184
- },
185
- {
186
- type: 'integer',
187
- name: 'totalTonnage',
188
- header: i18next.t('field.available_tonnage'),
189
- width: 140
233
+ width: 130
190
234
  },
191
235
  {
192
236
  type: 'float',
@@ -226,7 +270,7 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
226
270
 
227
271
  try {
228
272
  if (changedColumn === 'collectedRampWeight') {
229
- this._validateReleaseTonnage(changeRecord.collectedRampWeight, changeRecord.totalTonnage)
273
+ this._validateReleaseTonnage(changeRecord.collectedRampWeight)
230
274
  }
231
275
  this._updateInventoryList()
232
276
  } catch (e) {
@@ -240,34 +284,29 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
240
284
  }
241
285
  }
242
286
 
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) {
287
+ _validateReleaseTonnage(collectedRampWeight) {
288
+ if (collectedRampWeight <= 0 || isNaN(collectedRampWeight)) {
248
289
  throw new Error(i18next.t('text.invalid_tonnage_input'))
249
290
  }
250
291
  }
251
292
 
252
293
  async _updateInventoryList() {
253
- const _selectedInventories = (this.dispatchmentGrist.dirtyData.records || []).map(
254
- record => record.plantationInventory.id
255
- )
294
+ const _selectedRamp = (this.dispatchmentGrist.dirtyData.records || []).map(record => record.ramp.id)
256
295
  this.dispatchmentGristConfig = {
257
296
  ...this.dispatchmentGristConfig,
258
297
  columns: this.dispatchmentGristConfig.columns.map(column => {
259
- if (column.name === 'plantationInventory') {
298
+ if (column.name === 'ramp') {
260
299
  column.record.options.basicArgs = {
261
300
  ...column.record.options.basicArgs,
262
301
  filters: [...column.record.options.basicArgs.filters.filter(filter => filter.name !== 'id')]
263
302
  }
264
303
 
265
- if (_selectedInventories.length)
304
+ if (_selectedRamp.length)
266
305
  column.record.options.basicArgs.filters = [
267
306
  ...column.record.options.basicArgs.filters,
268
307
  {
269
308
  name: 'id',
270
- value: _selectedInventories,
309
+ value: _selectedRamp,
271
310
  operator: 'notin'
272
311
  }
273
312
  ]
@@ -295,6 +334,14 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
295
334
  let dailyDispatch = this._getFormInfo()
296
335
  dailyDispatch.dailyDispatchDetails = this._getDispatchDetails()
297
336
 
337
+ dailyDispatch = {
338
+ ...dailyDispatch,
339
+ driver: { id: this.selectedDriverID, name: this.selectedDriverName },
340
+ transport: { id: this.selectedTruckID, name: this.selectedTruckName },
341
+ dispatchTo: { id: this.selectedMillID, name: this.selectedMillName },
342
+ percentage: parseFloat(dailyDispatch.percentage)
343
+ }
344
+
298
345
  const response = await client.mutate({
299
346
  mutation: gql`
300
347
  mutation generateDailyDispatch($dailyDispatch: NewDailyDispatch!) {
@@ -318,7 +365,11 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
318
365
  }
319
366
 
320
367
  _validateForm() {
321
- if (!this.dispatchmentForm.checkValidity()) throw new Error(i18next.t('text.dispatch_record_invalid'))
368
+ if (this.percentageInput?.value) {
369
+ if (isNaN(this.percentageInput.value) || this.percentageInput?.value <= 0) {
370
+ throw new Error(i18next.t('text.x_has_invalid_value', { state: 'label.percentage' }))
371
+ }
372
+ }
322
373
  }
323
374
 
324
375
  _validateDispatchmentData() {
@@ -326,16 +377,14 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
326
377
  if (!this.dispatchmentGrist.dirtyData.records || !this.dispatchmentGrist.dirtyData.records.length)
327
378
  throw new Error(i18next.t('text.no_records_in_dispatchment_list'))
328
379
 
329
- if (
330
- this.dispatchmentGrist.dirtyData.records.filter(record => !record.rampName || !record.collectedRampWeight).length
331
- )
380
+ if (this.dispatchmentGrist.dirtyData.records.filter(record => !record.ramp || !record.collectedRampWeight).length)
332
381
  throw new Error(i18next.t('text.empty_value_in_dispatchment_data'))
333
382
  }
334
383
 
335
384
  _getDispatchDetails() {
336
385
  return this.dispatchmentGrist.dirtyData.records.map(record => {
337
386
  let dailyDispatchDetails = {
338
- ramp: { id: record.plantationInventory.rampId, name: record.plantationInventory.rampName },
387
+ ramp: { id: record.ramp.id, name: record.ramp.name },
339
388
  collectedRampWeight: Number(record.collectedRampWeight),
340
389
  remark: record?.remark ? record.remark : null
341
390
  }
@@ -365,6 +414,60 @@ class DispatchmentCreateRecord extends localize(i18next)(PageView) {
365
414
  return obj
366
415
  }
367
416
 
417
+ _openDriverSelector() {
418
+ openPopup(
419
+ html`
420
+ <driver-selector-popup
421
+ @selected="${e => {
422
+ this.selectedDriverID = e.detail.id
423
+ this.selectedDriverName = `${e.detail.name} (${e.detail.idNumber})`
424
+ }}"
425
+ ></driver-selector-popup>
426
+ `,
427
+ {
428
+ backdrop: true,
429
+ size: 'large',
430
+ title: i18next.t('title.select_driver')
431
+ }
432
+ )
433
+ }
434
+
435
+ _openMillSelector() {
436
+ openPopup(
437
+ html`
438
+ <mill-selector-popup
439
+ @selected="${e => {
440
+ this.selectedMillID = e.detail.id
441
+ this.selectedMillName = `${e.detail.name}`
442
+ }}"
443
+ ></mill-selector-popup>
444
+ `,
445
+ {
446
+ backdrop: true,
447
+ size: 'large',
448
+ title: i18next.t('title.select_destination')
449
+ }
450
+ )
451
+ }
452
+
453
+ _openTruckSelector() {
454
+ openPopup(
455
+ html`
456
+ <truck-selector-popup
457
+ @selected="${e => {
458
+ this.selectedTruckID = e.detail.id
459
+ this.selectedTruckName = `${e.detail.name}`
460
+ }}"
461
+ ></truck-selector-popup>
462
+ `,
463
+ {
464
+ backdrop: true,
465
+ size: 'large',
466
+ title: i18next.t('title.select_lorry')
467
+ }
468
+ )
469
+ }
470
+
368
471
  _showToast({ type, message }) {
369
472
  document.dispatchEvent(
370
473
  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
  }