@things-factory/operato-pms 3.8.0 → 3.8.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/client/bootstrap.js +20 -7
  2. package/client/component/block-selector-popup.js +125 -24
  3. package/client/component/driver-selector-popup.js +223 -0
  4. package/client/component/mill-selector-popup.js +200 -0
  5. package/client/component/tracked-plantation-setting.js +113 -0
  6. package/client/component/truck-selector-popup.js +202 -0
  7. package/client/menu.js +34 -2
  8. package/client/pages/constants/index.js +1 -0
  9. package/client/pages/constants/organization.js +5 -0
  10. package/client/pages/dispatchment/daily-dispatch-detail.js +57 -18
  11. package/client/pages/dispatchment/dispatchment-create-record.js +140 -13
  12. package/client/pages/dispatchment/dispatchment-list.js +26 -34
  13. package/client/pages/harvesting/daily-harvesting-detail.js +55 -18
  14. package/client/pages/harvesting/edit-harvesting-record.js +89 -23
  15. package/client/pages/harvesting/harvesting-create-record.js +102 -16
  16. package/client/pages/harvesting/harvesting-list.js +58 -12
  17. package/client/pages/inventory/inventory-field-bunches.js +6 -4
  18. package/client/pages/loading/daily-loading-detail.js +47 -93
  19. package/client/pages/loading/edit-loading-record.js +75 -294
  20. package/client/pages/loading/loading-create-record.js +52 -329
  21. package/client/pages/loading/loading-list.js +20 -83
  22. package/client/pages/master/block.js +1 -0
  23. package/client/pages/master/company.js +26 -13
  24. package/client/pages/master/home.js +67 -65
  25. package/client/pages/master/ramp.js +1 -0
  26. package/client/pages/master/staff.js +54 -3
  27. package/client/pages/master/truck.js +416 -0
  28. package/client/pages/report/home.js +72 -65
  29. package/client/pages/report/report-daily-ffb-dispatch-and-production.js +393 -0
  30. package/client/pages/report/report-daily-production.js +38 -6
  31. package/client/pages/report/report-daily-staff-harvest.js +50 -5
  32. package/client/pages/report/report-ffb-tonnage-between-individual-block.js +393 -0
  33. package/client/pages/report/report-monthly-ffb-sale.js +413 -0
  34. package/client/pages/report/report-monthly-production.js +33 -4
  35. package/client/pages/report/report-yearly-production.js +24 -8
  36. package/client/pages/setting/home.js +107 -0
  37. package/client/pages/setting/plantation-setting.js +109 -0
  38. package/client/route.js +25 -0
  39. package/dist-server/constants/index.js +1 -0
  40. package/dist-server/constants/index.js.map +1 -1
  41. package/dist-server/constants/organization.js +9 -0
  42. package/dist-server/constants/organization.js.map +1 -0
  43. package/dist-server/controllers/render-dispatchment.js +1 -1
  44. package/dist-server/controllers/render-dispatchment.js.map +1 -1
  45. package/dist-server/entities/daily-dispatch.js +19 -4
  46. package/dist-server/entities/daily-dispatch.js.map +1 -1
  47. package/dist-server/entities/daily-harvest-detail.js +9 -11
  48. package/dist-server/entities/daily-harvest-detail.js.map +1 -1
  49. package/dist-server/entities/daily-harvest.js +16 -6
  50. package/dist-server/entities/daily-harvest.js.map +1 -1
  51. package/dist-server/entities/daily-loading-detail.js +14 -6
  52. package/dist-server/entities/daily-loading-detail.js.map +1 -1
  53. package/dist-server/entities/daily-loading.js +3 -11
  54. package/dist-server/entities/daily-loading.js.map +1 -1
  55. package/dist-server/entities/index.js +7 -1
  56. package/dist-server/entities/index.js.map +1 -1
  57. package/dist-server/entities/organization-staff.js +5 -1
  58. package/dist-server/entities/organization-staff.js.map +1 -1
  59. package/dist-server/entities/plantation-inventory.js +4 -10
  60. package/dist-server/entities/plantation-inventory.js.map +1 -1
  61. package/dist-server/entities/plantation-setting.js +76 -0
  62. package/dist-server/entities/plantation-setting.js.map +1 -0
  63. package/dist-server/entities/truck.js +77 -0
  64. package/dist-server/entities/truck.js.map +1 -0
  65. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +13 -2
  66. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -1
  67. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +25 -11
  68. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
  69. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +3 -2
  70. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
  71. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +3 -1
  72. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -1
  73. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +21 -2
  74. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  75. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +8 -2
  76. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
  77. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +4 -6
  78. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -1
  79. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +20 -54
  80. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
  81. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +17 -105
  82. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  83. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +82 -0
  84. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -0
  85. package/dist-server/graphql/resolvers/dashboard/index.js +8 -0
  86. package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
  87. package/dist-server/graphql/resolvers/index.js +9 -6
  88. package/dist-server/graphql/resolvers/index.js.map +1 -1
  89. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +7 -3
  90. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -1
  91. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +12 -0
  92. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -0
  93. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js +13 -0
  94. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js.map +1 -0
  95. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js +16 -0
  96. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js.map +1 -0
  97. package/dist-server/graphql/resolvers/plantation-setting/index.js +15 -0
  98. package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -0
  99. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +33 -0
  100. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -0
  101. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +31 -0
  102. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -0
  103. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +16 -0
  104. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -0
  105. package/dist-server/graphql/resolvers/report/daily-production-reports.js +46 -33
  106. package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -1
  107. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +21 -10
  108. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -1
  109. package/dist-server/graphql/resolvers/report/index.js +4 -1
  110. package/dist-server/graphql/resolvers/report/index.js.map +1 -1
  111. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +89 -0
  112. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -0
  113. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +89 -0
  114. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -0
  115. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +87 -0
  116. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -0
  117. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +46 -31
  118. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
  119. package/dist-server/graphql/resolvers/report/yearly-production-reports.js +38 -28
  120. package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -1
  121. package/dist-server/graphql/resolvers/truck/delete-trucks.js +18 -0
  122. package/dist-server/graphql/resolvers/truck/delete-trucks.js.map +1 -0
  123. package/dist-server/graphql/resolvers/truck/index.js +12 -0
  124. package/dist-server/graphql/resolvers/truck/index.js.map +1 -0
  125. package/dist-server/graphql/resolvers/truck/truck-query.js +46 -0
  126. package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -0
  127. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +40 -0
  128. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -0
  129. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js +4 -1
  130. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js.map +1 -1
  131. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js +4 -1
  132. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js.map +1 -1
  133. package/dist-server/graphql/types/daily-dispatch/index.js +6 -1
  134. package/dist-server/graphql/types/daily-dispatch/index.js.map +1 -1
  135. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js +4 -1
  136. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js.map +1 -1
  137. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js +5 -2
  138. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js.map +1 -1
  139. package/dist-server/graphql/types/daily-harvest/daily-harvest.js +3 -0
  140. package/dist-server/graphql/types/daily-harvest/daily-harvest.js.map +1 -1
  141. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js +4 -1
  142. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js.map +1 -1
  143. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js +1 -0
  144. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js.map +1 -1
  145. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js +1 -0
  146. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js.map +1 -1
  147. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js +1 -0
  148. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js.map +1 -1
  149. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js +0 -2
  150. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js.map +1 -1
  151. package/dist-server/graphql/types/daily-loading/daily-loading.js +0 -2
  152. package/dist-server/graphql/types/daily-loading/daily-loading.js.map +1 -1
  153. package/dist-server/graphql/types/daily-loading/new-daily-loading.js +0 -2
  154. package/dist-server/graphql/types/daily-loading/new-daily-loading.js.map +1 -1
  155. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +6 -3
  156. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -1
  157. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js +3 -0
  158. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js.map +1 -1
  159. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js +6 -3
  160. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js.map +1 -1
  161. package/dist-server/graphql/types/dashboard/bunches-count.js +15 -0
  162. package/dist-server/graphql/types/dashboard/bunches-count.js.map +1 -0
  163. package/dist-server/graphql/types/dashboard/index.js +32 -0
  164. package/dist-server/graphql/types/dashboard/index.js.map +1 -0
  165. package/dist-server/graphql/types/dashboard/productions-overview.js +15 -0
  166. package/dist-server/graphql/types/dashboard/productions-overview.js.map +1 -0
  167. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js +14 -0
  168. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js.map +1 -0
  169. package/dist-server/graphql/types/dashboard/tonnage-production.js +17 -0
  170. package/dist-server/graphql/types/dashboard/tonnage-production.js.map +1 -0
  171. package/dist-server/graphql/types/dashboard/yield-production.js +17 -0
  172. package/dist-server/graphql/types/dashboard/yield-production.js.map +1 -0
  173. package/dist-server/graphql/types/index.js +9 -6
  174. package/dist-server/graphql/types/index.js.map +1 -1
  175. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js +2 -0
  176. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js.map +1 -1
  177. package/dist-server/graphql/types/organization-staff/organization-staff.js +3 -0
  178. package/dist-server/graphql/types/organization-staff/organization-staff.js.map +1 -1
  179. package/dist-server/graphql/types/plantation-setting/index.js +36 -0
  180. package/dist-server/graphql/types/plantation-setting/index.js.map +1 -0
  181. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js +16 -0
  182. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js.map +1 -0
  183. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js +14 -0
  184. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js.map +1 -0
  185. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js +18 -0
  186. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js.map +1 -0
  187. package/dist-server/graphql/types/plantation-setting/plantation-setting.js +22 -0
  188. package/dist-server/graphql/types/plantation-setting/plantation-setting.js.map +1 -0
  189. package/dist-server/graphql/types/report/index.js +20 -0
  190. package/dist-server/graphql/types/report/index.js.map +1 -1
  191. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js +14 -0
  192. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js.map +1 -0
  193. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js +19 -0
  194. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js.map +1 -0
  195. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js +14 -0
  196. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js.map +1 -0
  197. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js +25 -0
  198. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js.map +1 -0
  199. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js +14 -0
  200. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js.map +1 -0
  201. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js +24 -0
  202. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js.map +1 -0
  203. package/dist-server/graphql/types/truck/index.js +33 -0
  204. package/dist-server/graphql/types/truck/index.js.map +1 -0
  205. package/dist-server/graphql/types/truck/new-truck.js +14 -0
  206. package/dist-server/graphql/types/truck/new-truck.js.map +1 -0
  207. package/dist-server/graphql/types/truck/truck-list.js +14 -0
  208. package/dist-server/graphql/types/truck/truck-list.js.map +1 -0
  209. package/dist-server/graphql/types/truck/truck-patch.js +17 -0
  210. package/dist-server/graphql/types/truck/truck-patch.js.map +1 -0
  211. package/dist-server/graphql/types/truck/truck.js +22 -0
  212. package/dist-server/graphql/types/truck/truck.js.map +1 -0
  213. package/package.json +2 -2
  214. package/server/constants/index.ts +1 -0
  215. package/server/constants/organization.ts +5 -0
  216. package/server/controllers/render-dispatchment.ts +1 -1
  217. package/server/entities/daily-dispatch.ts +21 -5
  218. package/server/entities/daily-harvest-detail.ts +10 -11
  219. package/server/entities/daily-harvest.ts +16 -7
  220. package/server/entities/daily-loading-detail.ts +14 -6
  221. package/server/entities/daily-loading.ts +7 -11
  222. package/server/entities/index.ts +6 -0
  223. package/server/entities/organization-staff.ts +6 -1
  224. package/server/entities/plantation-inventory.ts +6 -10
  225. package/server/entities/plantation-setting.ts +60 -0
  226. package/server/entities/truck.ts +58 -0
  227. package/server/graphql/resolvers/daily-dispatch/daily-dispatch-query.ts +15 -2
  228. package/server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts +40 -14
  229. package/server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts +6 -2
  230. package/server/graphql/resolvers/daily-harvest/daily-harvest-query.ts +7 -2
  231. package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +50 -4
  232. package/server/graphql/resolvers/daily-harvest/update-daily-harvest.ts +12 -2
  233. package/server/graphql/resolvers/daily-loading/daily-loading-query.ts +6 -6
  234. package/server/graphql/resolvers/daily-loading/generate-daily-loading.ts +27 -109
  235. package/server/graphql/resolvers/daily-loading/update-daily-loading.ts +27 -213
  236. package/server/graphql/resolvers/dashboard/dashboard-query.ts +96 -0
  237. package/server/graphql/resolvers/dashboard/index.ts +5 -0
  238. package/server/graphql/resolvers/index.ts +10 -6
  239. package/server/graphql/resolvers/organization-staff/organization-staff-query.ts +13 -4
  240. package/server/graphql/resolvers/plantation-setting/create-plantation-setting.ts +16 -0
  241. package/server/graphql/resolvers/plantation-setting/delete-plantation-setting.ts +13 -0
  242. package/server/graphql/resolvers/plantation-setting/delete-plantation-settings.ts +16 -0
  243. package/server/graphql/resolvers/plantation-setting/index.ts +19 -0
  244. package/server/graphql/resolvers/plantation-setting/plantation-setting-query.ts +38 -0
  245. package/server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.ts +46 -0
  246. package/server/graphql/resolvers/plantation-setting/update-plantation-setting.ts +19 -0
  247. package/server/graphql/resolvers/report/daily-production-reports.ts +55 -44
  248. package/server/graphql/resolvers/report/daily-staff-harvest-reports.ts +28 -20
  249. package/server/graphql/resolvers/report/index.ts +7 -1
  250. package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +112 -0
  251. package/server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts +110 -0
  252. package/server/graphql/resolvers/report/monthly-ffb-sale-reports.ts +107 -0
  253. package/server/graphql/resolvers/report/monthly-production-reports.ts +54 -40
  254. package/server/graphql/resolvers/report/yearly-production-reports.ts +43 -38
  255. package/server/graphql/resolvers/truck/delete-trucks.ts +21 -0
  256. package/server/graphql/resolvers/truck/index.ts +12 -0
  257. package/server/graphql/resolvers/truck/truck-query.ts +52 -0
  258. package/server/graphql/resolvers/truck/update-multiple-truck.ts +55 -0
  259. package/server/graphql/types/daily-dispatch/daily-dispatch-patch.ts +4 -1
  260. package/server/graphql/types/daily-dispatch/daily-dispatch.ts +4 -1
  261. package/server/graphql/types/daily-dispatch/index.ts +6 -1
  262. package/server/graphql/types/daily-dispatch/new-daily-dispatch.ts +4 -1
  263. package/server/graphql/types/daily-harvest/daily-harvest-patch.ts +5 -2
  264. package/server/graphql/types/daily-harvest/daily-harvest.ts +3 -0
  265. package/server/graphql/types/daily-harvest/new-daily-harvest.ts +4 -1
  266. package/server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.ts +1 -0
  267. package/server/graphql/types/daily-harvest-detail/daily-harvest-detail.ts +1 -0
  268. package/server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.ts +1 -0
  269. package/server/graphql/types/daily-loading/daily-loading-patch.ts +0 -2
  270. package/server/graphql/types/daily-loading/daily-loading.ts +0 -2
  271. package/server/graphql/types/daily-loading/new-daily-loading.ts +0 -2
  272. package/server/graphql/types/daily-loading-detail/daily-loading-detail-patch.ts +6 -3
  273. package/server/graphql/types/daily-loading-detail/daily-loading-detail.ts +3 -0
  274. package/server/graphql/types/daily-loading-detail/new-daily-loading-detail.ts +6 -3
  275. package/server/graphql/types/dashboard/bunches-count.ts +9 -0
  276. package/server/graphql/types/dashboard/index.ts +17 -0
  277. package/server/graphql/types/dashboard/productions-overview.ts +9 -0
  278. package/server/graphql/types/dashboard/tonnage-bunches-inventories.ts +8 -0
  279. package/server/graphql/types/dashboard/tonnage-production.ts +11 -0
  280. package/server/graphql/types/dashboard/yield-production.ts +11 -0
  281. package/server/graphql/types/index.ts +10 -6
  282. package/server/graphql/types/organization-staff/organization-staff-patch.ts +2 -0
  283. package/server/graphql/types/organization-staff/organization-staff.ts +3 -0
  284. package/server/graphql/types/plantation-setting/index.ts +21 -0
  285. package/server/graphql/types/plantation-setting/new-plantation-setting.ts +10 -0
  286. package/server/graphql/types/plantation-setting/plantation-setting-list.ts +8 -0
  287. package/server/graphql/types/plantation-setting/plantation-setting-patch.ts +12 -0
  288. package/server/graphql/types/plantation-setting/plantation-setting.ts +16 -0
  289. package/server/graphql/types/report/index.ts +20 -0
  290. package/server/graphql/types/report/monthly-block-dispatch-report-list.ts +7 -0
  291. package/server/graphql/types/report/monthly-block-dispatch-report.ts +13 -0
  292. package/server/graphql/types/report/monthly-dispatch-summary-report-list.ts +7 -0
  293. package/server/graphql/types/report/monthly-dispatch-summary-report.ts +19 -0
  294. package/server/graphql/types/report/monthly-ffb-sale-report-list.ts +7 -0
  295. package/server/graphql/types/report/monthly-ffb-sale-report.ts +18 -0
  296. package/server/graphql/types/truck/index.ts +18 -0
  297. package/server/graphql/types/truck/new-truck.ts +8 -0
  298. package/server/graphql/types/truck/truck-list.ts +8 -0
  299. package/server/graphql/types/truck/truck-patch.ts +11 -0
  300. package/server/graphql/types/truck/truck.ts +16 -0
  301. package/things-factory.config.js +27 -1
  302. package/translations/en.json +78 -16
  303. package/translations/ko.json +77 -48
  304. package/translations/ms.json +74 -45
  305. package/translations/zh.json +77 -48
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.monthlyFfbSaleReports = void 0;
4
+ exports.monthlyFfbSaleReports = {
5
+ async monthlyFfbSaleReports(_, params, context) {
6
+ try {
7
+ const { domain, tx } = context.state;
8
+ let year = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[0]);
9
+ let month = parseInt(params.filters.filter(x => x.name == 'month')[0].value.split('-')[1]);
10
+ let organization = params.filters.find(x => x.name == 'organization');
11
+ let fromDate = new Date(year, month - 1, 1);
12
+ let toDate = new Date(year, month, 1);
13
+ toDate.setDate(toDate.getDate() - 1);
14
+ let fromDateString = [
15
+ fromDate.getFullYear().toString(),
16
+ String(fromDate.getMonth() + 1).padStart(2, '0'),
17
+ '01'
18
+ ].join('-');
19
+ let toDateString = [
20
+ toDate.getFullYear().toString(),
21
+ String(toDate.getMonth() + 1).padStart(2, '0'),
22
+ String(toDate.getDate()).padStart(2, '0')
23
+ ].join('-');
24
+ await tx.query(`
25
+ CREATE TEMP TABLE raw_block_dispatch ON COMMIT DROP AS (
26
+ SELECT dd.*,
27
+ COALESCE((SELECT SUM(COALESCE(ddd.adjusted_weight, ddd.collected_ramp_weight, 0)) FROM daily_dispatch_details ddd WHERE ddd.daily_dispatch_id = dd.id),0) AS tonnage
28
+ FROM daily_dispatches dd
29
+ WHERE dd.dispatch_at::timestamp between $1::timestamp and $2::timestamp
30
+ ${organization ? organization.value == 'null' ? `AND dd.dispatch_to_id IS NULL` : `AND dd.dispatch_to_id = '${organization.value}'` : ''}
31
+ );
32
+ `, [fromDateString, toDateString]);
33
+ await tx.query(`
34
+ CREATE TEMP TABLE temp_monthly_dispatch_to_mill_data ON COMMIT DROP AS (
35
+ SELECT "id", dispatch_at, transport_no AS "lorryNo",
36
+ driver_identification AS "driverIdentification", chit_no AS "chitNo", round(COALESCE(percentage,0)::numeric, 2)::varchar AS "percentage",
37
+ COALESCE(diapatch_to_name, 'UNKNOWN') AS "dispatchTo", round(COALESCE(tonnage,0), 2)::varchar AS "tonnage",
38
+ CASE WHEN forward_rn = 1 THEN dispatch_at::date::varchar ELSE '' END AS "dispatchAt",
39
+ CASE WHEN reverse_rn = 1 THEN round((coalesce(sum(percentage) over (PARTITION BY dispatch_to_id, dispatch_at::date ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0)/forward_rn)::numeric,2)::varchar ELSE '' END AS "todayAvg",
40
+ CASE WHEN reverse_rn = 1 THEN round((coalesce(sum(percentage) over (PARTITION BY dispatch_to_id ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0)/forward_rn)::numeric,2)::varchar ELSE '' END AS "todateAvg",
41
+ CASE WHEN reverse_rn = 1 THEN round(coalesce(sum(tonnage) over (PARTITION BY dispatch_to_id, dispatch_at::date ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar ELSE '' END AS "today",
42
+ CASE WHEN reverse_rn = 1 THEN round(coalesce(sum(tonnage) over (PARTITION BY dispatch_to_id ORDER BY dispatch_at asc rows between unbounded preceding and current row), 0),2)::varchar ELSE '' END AS "todate"
43
+ FROM (
44
+ SELECT
45
+ ROW_NUMBER() OVER(
46
+ PARTITION BY rbd.dispatch_at::date
47
+ ORDER BY rbd.dispatch_at ASC
48
+ ) as forward_rn
49
+ , ROW_NUMBER() OVER(
50
+ PARTITION BY rbd.dispatch_at::date
51
+ ORDER BY rbd.dispatch_at DESC
52
+ ) as reverse_rn
53
+ , rbd.id
54
+ , rbd.dispatch_at
55
+ , rbd.transport_no
56
+ , rbd.driver_identification
57
+ , rbd.external_driver
58
+ , rbd.chit_no
59
+ , rbd.percentage
60
+ , rbd.dispatch_to_id
61
+ , c.name AS diapatch_to_name
62
+ , rbd.tonnage
63
+ FROM raw_block_dispatch rbd
64
+ LEFT JOIN organizations c ON c.id = rbd.dispatch_to_id
65
+ ORDER BY rbd.dispatch_to_id, rbd.dispatch_at
66
+ ) src
67
+ );
68
+ `);
69
+ const result = await tx.query(`
70
+ SELECT * FROM temp_monthly_dispatch_to_mill_data
71
+ ORDER BY "dispatch_at";
72
+ `);
73
+ const total = await tx.query(`
74
+ select count(*) from temp_monthly_dispatch_to_mill_data;
75
+ `);
76
+ return {
77
+ items: result.map(itm => {
78
+ return Object.assign({}, itm);
79
+ }), total: total[0].count
80
+ };
81
+ }
82
+ catch (error) {
83
+ throw error;
84
+ }
85
+ }
86
+ };
87
+ //# sourceMappingURL=monthly-ffb-sale-reports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"monthly-ffb-sale-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-ffb-sale-reports.ts"],"names":[],"mappings":";;;AAKa,QAAA,qBAAqB,GAAG;IACnC,KAAK,CAAC,qBAAqB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACjE,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAA0C,OAAO,CAAC,KAAK,CAAA;YAE3E,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzF,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC1F,IAAI,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,cAAc,CAAC,CAAA;YAErE,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3C,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YAEpC,IAAI,cAAc,GAAG;gBACnB,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChD,IAAI;aACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAI,YAAY,GAAG;gBACjB,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;YAMI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,MAAM,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,4BAA4B,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;;SAEzI,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC,CAClC,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAmCC,CACF,CAAA;YAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAChC;;;SAGC,CACF,CAAA;YAED,MAAM,KAAK,GAAQ,MAAM,EAAE,CAAC,KAAK,CAC/B;;SAEC,CACF,CAAA;YAGD,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,yBACK,GAAG,EACP;gBACH,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aAC1B,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
@@ -21,65 +21,80 @@ exports.monthlyProductionReports = {
21
21
  String(toDate.getDate()).padStart(2, '0')
22
22
  ].join('-');
23
23
  await tx.query(`
24
- create temp table temp_monthly_production_data as (
24
+ CREATE TEMP TABLE temp_blocks on commit drop AS (
25
+ WITH RECURSIVE b AS (
26
+ SELECT b.id AS block_id, * FROM blocks b
27
+ WHERE b.deleted_at IS null
28
+ UNION ALL
29
+ SELECT b.id AS block_id, cb.* FROM blocks cb
30
+ INNER JOIN b ON b.id = cb.parent_block_id
31
+ WHERE cb.deleted_at IS null
32
+ )
33
+ SELECT block_id, id, name FROM b GROUP BY block_id, id, name ORDER BY block_id, id, name
34
+ );
35
+ `);
36
+ await tx.query(`
37
+ create temp table temp_monthly_production_data on commit drop as (
25
38
  select b.id, b.name as "block",
26
39
  coalesce(harvest.total_harvester, 0) as "totalHarvester",
27
40
  coalesce(harvest.out_turn,0) as "totalOutTurn",
28
41
  coalesce(harvest.days_worked,0) as "daysWorked",
29
- round(coalesce((harvest.out_turn / harvest.days_worked),0)::DECIMAL, 2)::TEXT as "avgOutTurn",
30
- round(coalesce((harvest.total_bunch_harvested),0)::DECIMAL, 2)::text as "totalBunchHarvested",
31
- round(coalesce((loading.total_weight_loaded),0)::DECIMAL, 2)::TEXT as "production",
32
- round(case when loading.total_weight_loaded <> 0 then (loading.total_bunch_loaded / loading.total_weight_loaded * 1000) else '0' end::DECIMAL, 2)::TEXT as "bunchesPerTon",
33
- round(case when loading.total_bunch_loaded <> 0 then (loading.total_weight_loaded / loading.total_bunch_loaded * 1000) else '0' end::DECIMAL, 2)::TEXT as "bunchesWt",
34
- round(coalesce((harvest.total_bunch_harvested / harvest.total_harvest_coverage),0)::DECIMAL, 2)::TEXT as "bunchesPerHectar",
35
- round(coalesce((harvest.total_harvest_coverage / block_details.total_hectarage),0)::DECIMAL, 2)::TEXT as "harvestingRd",
36
- round(coalesce((loading.total_weight_loaded / harvest.out_turn),0)::DECIMAL, 2)::TEXT as "productivities",
37
- coalesce(block_details.total_hectarage::text, '-') as "hectarage",
38
- round(coalesce((loading.total_bunch_loaded / block_details.total_hectarage),0)::DECIMAL, 2)::TEXT as "yieldPerHectar",
39
- round(coalesce((harvest.total_harvest_coverage / harvest.days_worked),0)::DECIMAL, 2)::TEXT as "coveragePerDay",
40
- '-' as "rainfall",
41
- round(coalesce((harvest.total_bunch_harvested / block_details.total_stand),0)::DECIMAL, 2)::TEXT as "bunchesPerPalm",
42
- coalesce(block_details.year_planted::text, '-') as "yearPlanted",
43
- coalesce(block_details.total_stand::text, '-') as "totalStand"
42
+ round(coalesce((harvest.total_bunch_harvested),0)::DECIMAL, 1)::text as "totalBunchHarvested",
43
+ round(coalesce((loading.total_weight_loaded),0)::DECIMAL, 4)::TEXT as "production",
44
+ round(case when loading.total_weight_loaded <> 0 then (loading.total_bunch_loaded / loading.total_weight_loaded) else '0' end::DECIMAL, 4)::TEXT as "bunchesPerTon",
45
+ round(case when loading.total_bunch_loaded <> 0 then (loading.total_weight_loaded / loading.total_bunch_loaded) else '0' end::DECIMAL, 4)::TEXT as "bunchesWt",
46
+ round(coalesce((harvest.total_bunch_harvested / harvest.total_harvest_coverage),0)::DECIMAL, 4)::TEXT as "bunchesPerHectar",
47
+ round(coalesce((harvest.total_harvest_coverage / block_details.total_hectarage),0)::DECIMAL, 4)::TEXT as "harvestingRd",
48
+ round(coalesce((loading.total_weight_loaded / harvest.out_turn),0)::DECIMAL, 4)::TEXT as "productivities",
49
+ coalesce(block_details.total_hectarage::text, '') as "hectarage",
50
+ round(coalesce((loading.total_bunch_loaded / block_details.total_hectarage),0)::DECIMAL, 4)::TEXT as "yieldPerHectar",
51
+ round(coalesce((harvest.total_harvest_coverage / harvest.days_worked),0)::DECIMAL, 4)::TEXT as "coveragePerDay",
52
+ round(coalesce((harvest.total_bunch_harvested / block_details.total_stand),0)::DECIMAL, 4)::TEXT as "bunchesPerPalm",
53
+ coalesce(block_details.year_planted::text, '') as "yearPlanted",
54
+ coalesce(block_details.total_stand::text, '') as "totalStand",
55
+ '' as "rainfall"
44
56
  from blocks b
45
57
  left join(
46
- select dh.block_id,
58
+ select blk.block_id,
47
59
  count(distinct dhd.organization_staff_id) as total_harvester,
48
60
  count(dhd.id) as out_turn,
49
61
  count(distinct concat(dh.block_id, dh.harvest_date)) as days_worked,
50
62
  sum(dhd.total_bunch_harvested) as total_bunch_harvested,
51
63
  sum(dh.coverage) as total_harvest_coverage
52
64
  from daily_harvests dh
65
+ inner join temp_blocks blk on blk.id = dh.block_id
53
66
  inner join daily_harvest_details dhd on dhd.daily_harvest_id = dh.id
54
67
  where dh.harvest_date::timestamp between $1::timestamp and $2::timestamp
55
- group by dh.block_id
68
+ group by blk.block_id
56
69
  ) as harvest on harvest.block_id = b.id
57
70
  left join(
58
- select dl.block_id, sum(total_weight) as total_weight_loaded, sum(total_bunch) as total_bunch_loaded
71
+ select blk.block_id, sum(total_weight) as total_weight_loaded, sum(total_bunch) as total_bunch_loaded
59
72
  from daily_loadings dl
73
+ inner join temp_blocks blk on blk.id = dl.block_id
60
74
  inner join daily_loading_details dld on dld.daily_loading_id = dl.id
61
75
  where dl.loading_date::timestamp between $1::timestamp and $2::timestamp
62
- group by dl.block_id
76
+ group by blk.block_id
63
77
  ) as loading on loading.block_id = b.id
64
78
  left join(
65
- SELECT DISTINCT ON (block_id)
66
- *
79
+ SELECT DISTINCT ON (blk.block_id) bd.*
67
80
  FROM block_details bd
81
+ inner join temp_blocks blk on blk.id = bd.block_id
68
82
  where valid_from::timestamp <= $1::timestamp
69
- ORDER BY block_id, valid_from desc
83
+ ORDER BY blk.block_id, valid_from desc
70
84
  ) block_details on block_details.block_id = b.id
71
85
  order by b.name
72
86
  )`, [fromDateString, toDateString]);
73
87
  const result = await tx.query(`
74
- select * from temp_monthly_production_data dt
75
- `);
88
+ select * from temp_monthly_production_data dt
89
+ `);
76
90
  const total = await tx.query(`
77
- select count(*) from temp_monthly_production_data
78
- `);
79
- await tx.query(`
80
- drop table temp_monthly_production_data
81
- `);
82
- return { items: result, total: total[0].count };
91
+ select count(*) from temp_monthly_production_data
92
+ `);
93
+ return {
94
+ items: result.map(itm => {
95
+ return Object.assign(Object.assign({}, itm), { avgOutTurn: ((parseFloat(itm.totalOutTurn) / parseFloat(itm.daysWorked)) || 0).toFixed(4) });
96
+ }), total: total[0].count
97
+ };
83
98
  }
84
99
  catch (error) {
85
100
  throw error;
@@ -1 +1 @@
1
- {"version":3,"file":"monthly-production-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-production-reports.ts"],"names":[],"mappings":";;;AAGa,QAAA,wBAAwB,GAAG;IACtC,KAAK,CAAC,wBAAwB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACpE,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;YAEnD,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzF,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAE1F,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3C,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YAEpC,IAAI,cAAc,GAAG;gBACnB,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChD,IAAI;aACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAI,YAAY,GAAG;gBACjB,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAiDI,EACJ,CAAC,cAAc,EAAE,YAAY,CAAC,CAC/B,CAAA;YAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAChC;;WAEG,CACJ,CAAA;YAED,MAAM,KAAK,GAAQ,MAAM,EAAE,CAAC,KAAK,CAC/B;;WAEG,CACJ,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;WAEG,CACJ,CAAA;YAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;SAChD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"monthly-production-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/monthly-production-reports.ts"],"names":[],"mappings":";;;AAIa,QAAA,wBAAwB,GAAG;IACtC,KAAK,CAAC,wBAAwB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACpE,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;YAEnD,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACzF,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAE1F,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAC3C,IAAI,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;YACrC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;YAEpC,IAAI,cAAc,GAAG;gBACnB,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBACjC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAChD,IAAI;aACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,IAAI,YAAY,GAAG;gBACjB,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;gBAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;gBAC9C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;aAC1C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAEX,MAAM,EAAE,CAAC,KAAK,CAAC;;;;;;;;;;;;OAYd,CAAC,CAAA;YAEF,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkDI,EACJ,CAAC,cAAc,EAAE,YAAY,CAAC,CAC/B,CAAA;YAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAAC;;OAElC,CAAC,CAAA;YAEF,MAAM,KAAK,GAAQ,MAAM,EAAE,CAAC,KAAK,CAAC;;OAEjC,CAAC,CAAA;YAGF,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACtB,uCACK,GAAG,KACN,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAC1F;gBACH,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK;aAC1B,CAAA;SACF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
@@ -11,67 +11,77 @@ exports.yearlyProductionReports = {
11
11
  let thisYearDateString = [fromDate.getFullYear().toString(), '01', '01'].join('-');
12
12
  let nextYearDateString = [String(fromDate.getFullYear() + 1).toString(), '01', '01'].join('-');
13
13
  await tx.query(`
14
- create temp table temp_yearly_production_data as (
14
+ CREATE TEMP TABLE temp_blocks on commit drop AS (
15
+ WITH RECURSIVE b AS (
16
+ SELECT b.id AS block_id, * FROM blocks b
17
+ WHERE b.deleted_at IS null
18
+ UNION ALL
19
+ SELECT b.id AS block_id, cb.* FROM blocks cb
20
+ INNER JOIN b ON b.id = cb.parent_block_id
21
+ WHERE cb.deleted_at IS null
22
+ )
23
+ SELECT block_id, id, name FROM b GROUP BY block_id, id, name ORDER BY block_id, id, name
24
+ );
25
+ `);
26
+ await tx.query(`
27
+ create temp table temp_yearly_production_data on commit drop as (
15
28
  select
16
29
  b.name as "block",
17
30
  coalesce(bd.year_planted::varchar, '-') as "yearPlanted",
18
- '-' as "estimatedLastFfb",
19
- coalesce(last_trans.total_ffb, 0) as "totalLastFfb",
20
- '-' as "estimatedFfb",
21
- coalesce(trans.total_ffb, 0) as "totalFfb",
22
- case when last_bd.matured_hectarage is not null then coalesce(last_trans.total_ffb, 0) / last_bd.matured_hectarage else 0 end as "lastYieldPerHectarage",
23
- case when bd.matured_hectarage is not null then coalesce(trans.total_ffb, 0) / bd.matured_hectarage else 0 end as "yieldPerHectarage",
31
+ '' as "estimatedLastFfb",
32
+ round(coalesce(last_trans.total_ffb, 0)::DECIMAL, 4)::TEXT as "totalLastFfb",
33
+ '' as "estimatedFfb",
34
+ round(coalesce(trans.total_ffb, 0)::DECIMAL, 4)::TEXT as "totalFfb",
35
+ round((case when last_bd.matured_hectarage is not null AND last_bd.matured_hectarage <> 0 then coalesce(last_trans.total_ffb, 0) / last_bd.matured_hectarage else 0 end)::DECIMAL, 4)::TEXT as "lastYieldPerHectarage",
36
+ round((case when bd.matured_hectarage is not null AND bd.matured_hectarage <> 0 then coalesce(trans.total_ffb, 0) / bd.matured_hectarage else 0 end)::DECIMAL, 4)::TEXT as "yieldPerHectarage",
24
37
  coalesce(bd.matured_hectarage, 0) as "maturedHectarage",
25
38
  coalesce(harvest.total_coverage, 0) as "totalCoverage",
26
- case when bd.matured_hectarage is not null then coalesce(harvest.total_coverage, 0)/ bd.matured_hectarage else 0 end as "totalHarvestingRd",
27
- (1 - abs(case when last_trans.total_ffb is not null then coalesce(trans.total_ffb, 0)/last_trans.total_ffb else 1 end)) * 100 as "actualAgainstLast"
39
+ round((case when bd.matured_hectarage is not null AND bd.matured_hectarage <> 0 then coalesce(harvest.total_coverage, 0)/ bd.matured_hectarage else 0 end)::DECIMAL, 4)::TEXT as "totalHarvestingRd",
40
+ round(((1 - abs(case when last_trans.total_ffb is not null AND last_trans.total_ffb <> 0 then coalesce(trans.total_ffb, 0)/last_trans.total_ffb else 1 end)) * 100)::DECIMAL, 4)::TEXT as "actualAgainstLast"
28
41
  from blocks b
29
42
  left join (
30
- SELECT DISTINCT ON (block_id)
31
- *
43
+ SELECT DISTINCT ON (block_id) *
32
44
  FROM block_details bd
33
45
  where valid_from < $3::timestamp
34
46
  ORDER BY block_id, valid_from desc
35
47
  ) bd on bd.block_id = b.id
36
48
  left join (
37
- SELECT DISTINCT ON (block_id)
38
- *
49
+ SELECT DISTINCT ON (block_id) *
39
50
  FROM block_details bd
40
51
  where valid_from < $2::timestamp
41
52
  ORDER BY block_id, valid_from desc
42
53
  ) last_bd on last_bd.block_id = b.id
43
54
  left join (
44
- select t.block_id, sum(ramp_weight) as total_ffb
45
- from record_transactions t
55
+ select blk.block_id, sum(ramp_weight) as total_ffb
56
+ from record_transactions t
57
+ inner join temp_blocks blk on blk.id = t.block_id
46
58
  where transaction_type = 'LOADING'
47
59
  and transaction_date::timestamp between $2::timestamp and $3::timestamp
48
- group by block_id
60
+ group by blk.block_id
49
61
  ) trans on trans.block_id = b.id
50
62
  left join (
51
- select t.block_id, sum(ramp_weight) as total_ffb
63
+ select blk.block_id, sum(ramp_weight) as total_ffb
52
64
  from record_transactions t
65
+ inner join temp_blocks blk on blk.id = t.block_id
53
66
  where transaction_type = 'LOADING'
54
67
  and transaction_date::timestamp between $1::timestamp and $2::timestamp
55
- group by block_id
68
+ group by blk.block_id
56
69
  ) last_trans on last_trans.block_id = b.id
57
70
  left join (
58
- select dh.block_id, sum(coverage) as total_coverage
71
+ select blk.block_id, sum(coverage) as total_coverage
59
72
  from daily_harvests dh
73
+ inner join temp_blocks blk on blk.id = dh.block_id
60
74
  where harvest_date::timestamp between $2::timestamp and $3::timestamp
61
- group by block_id
75
+ group by blk.block_id
62
76
  ) harvest on harvest.block_id = b.id
63
- where b.has_children = false
64
77
  order by b.name
65
78
  )`, [pastYearDateString, thisYearDateString, nextYearDateString]);
66
79
  const result = await tx.query(`
67
- select * from temp_yearly_production_data dt
68
- `);
80
+ select * from temp_yearly_production_data dt
81
+ `);
69
82
  const total = await tx.query(`
70
- select count(*) from temp_yearly_production_data
71
- `);
72
- await tx.query(`
73
- drop table temp_yearly_production_data
74
- `);
83
+ select count(*) from temp_yearly_production_data
84
+ `);
75
85
  return { items: result, total: total[0].count };
76
86
  }
77
87
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"yearly-production-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/yearly-production-reports.ts"],"names":[],"mappings":";;;AAGa,QAAA,uBAAuB,GAAG;IACrC,KAAK,CAAC,uBAAuB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACnE,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;YAEnD,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC1E,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAEnC,IAAI,kBAAkB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAE9F,IAAI,kBAAkB,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAElF,IAAI,kBAAkB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAE9F,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAoDI,EACJ,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAC7D,CAAA;YAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAChC;;WAEG,CACJ,CAAA;YAED,MAAM,KAAK,GAAQ,MAAM,EAAE,CAAC,KAAK,CAC/B;;WAEG,CACJ,CAAA;YAED,MAAM,EAAE,CAAC,KAAK,CACZ;;WAEG,CACJ,CAAA;YAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;SAChD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
1
+ {"version":3,"file":"yearly-production-reports.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/report/yearly-production-reports.ts"],"names":[],"mappings":";;;AAIa,QAAA,uBAAuB,GAAG;IACrC,KAAK,CAAC,uBAAuB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;QACnE,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;YAEnD,IAAI,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;YAC1E,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YAEnC,IAAI,kBAAkB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAE9F,IAAI,kBAAkB,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAElF,IAAI,kBAAkB,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAE9F,MAAM,EAAE,CAAC,KAAK,CAAC;;;;;;;;;;;;OAYd,CAAC,CAAA;YAEF,MAAM,EAAE,CAAC,KAAK,CACZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAoDI,EACJ,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAC7D,CAAA;YAED,MAAM,MAAM,GAAQ,MAAM,EAAE,CAAC,KAAK,CAAC;;OAElC,CAAC,CAAA;YAEF,MAAM,KAAK,GAAQ,MAAM,EAAE,CAAC,KAAK,CAAC;;OAEjC,CAAC,CAAA;YAEF,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;SAChD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteTrucks = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const entities_1 = require("../../../entities");
6
+ exports.deleteTrucks = {
7
+ async deleteTrucks(_, { ids }, context) {
8
+ const { domain, tx } = context.state;
9
+ await tx.getRepository(entities_1.Truck).update({
10
+ domain,
11
+ id: (0, typeorm_1.In)(ids)
12
+ }, {
13
+ deletedAt: new Date()
14
+ });
15
+ return true;
16
+ }
17
+ };
18
+ //# sourceMappingURL=delete-trucks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-trucks.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/truck/delete-trucks.ts"],"names":[],"mappings":";;;AAAA,qCAA4B;AAE5B,gDAAyC;AAE5B,QAAA,YAAY,GAAG;IAC1B,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAY;QAC9C,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAC,MAAM,CAClC;YACE,MAAM;YACN,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,EACD;YACE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CACF,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TruckResolver = void 0;
4
+ const delete_trucks_1 = require("./delete-trucks");
5
+ const truck_query_1 = require("./truck-query");
6
+ const update_multiple_truck_1 = require("./update-multiple-truck");
7
+ exports.TruckResolver = {
8
+ Truck: truck_query_1.Truck,
9
+ Query: truck_query_1.Query,
10
+ Mutation: Object.assign(Object.assign({}, update_multiple_truck_1.updateMultipleTruck), delete_trucks_1.deleteTrucks)
11
+ };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/truck/index.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAC9C,+CAA4C;AAC5C,mEAA6D;AAEhD,QAAA,aAAa,GAAG;IAC3B,KAAK,EAAL,mBAAK;IACL,KAAK,EAAL,mBAAK;IACL,QAAQ,kCACH,2CAAmB,GACnB,4BAAY,CAChB;CACF,CAAA"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Truck = exports.Query = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const auth_base_1 = require("@things-factory/auth-base");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const entities_1 = require("../../../entities");
8
+ exports.Query = {
9
+ async truck(_, { name }, context) {
10
+ const { domain, tx } = context.state;
11
+ const repository = await tx.getRepository(entities_1.Truck);
12
+ return await repository.findOne({
13
+ where: { domain, name },
14
+ relations: ['domain', 'organization', 'creator', 'updater']
15
+ });
16
+ },
17
+ async trucks(_, params, context) {
18
+ var _a;
19
+ const { tx } = context.state;
20
+ const queryBuilder = await tx.getRepository(entities_1.Truck).createQueryBuilder();
21
+ (0, shell_1.buildQuery)(queryBuilder, params, context);
22
+ queryBuilder
23
+ .leftJoinAndSelect('Truck.domain', 'Domain')
24
+ .leftJoinAndSelect('Truck.organization', 'Organization')
25
+ .leftJoinAndSelect('Truck.creator', 'Creator')
26
+ .leftJoinAndSelect('Truck.updater', 'Updater');
27
+ if (((_a = params.filters) === null || _a === void 0 ? void 0 : _a.length) > 0)
28
+ queryBuilder.andWhere('Truck.deletedAt IS NULL');
29
+ else
30
+ queryBuilder.where('Truck.deletedAt IS NULL');
31
+ const [items, total] = await queryBuilder.getManyAndCount();
32
+ return { items, total };
33
+ }
34
+ };
35
+ exports.Truck = {
36
+ async domain(truck) {
37
+ return await (0, typeorm_1.getRepository)(shell_1.Domain).findOne(truck.domainId);
38
+ },
39
+ async creator(truck) {
40
+ return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(truck.creatorId);
41
+ },
42
+ async updater(truck) {
43
+ return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(truck.updaterId);
44
+ }
45
+ };
46
+ //# sourceMappingURL=truck-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"truck-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/truck/truck-query.ts"],"names":[],"mappings":";;;AAAA,qCAAsD;AAEtD,yDAAgD;AAChD,iDAAqE;AAErE,gDAAwD;AAE3C,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,KAAK,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAY;QACxC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACpC,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAW,CAAC,CAAA;QAEtD,OAAO,MAAM,UAAU,CAAC,OAAO,CAAC;YAC9B,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;YACvB,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAY;;QAClD,MAAM,EAAE,EAAE,EAAE,GAA0B,OAAO,CAAC,KAAK,CAAA;QAEnD,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAW,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC7E,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC;aAC3C,iBAAiB,CAAC,oBAAoB,EAAE,cAAc,CAAC;aACvD,iBAAiB,CAAC,eAAe,EAAE,SAAS,CAAC;aAC7C,iBAAiB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;QAEhD,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAA;;YAC3E,YAAY,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAElD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA;AAEY,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,MAAM,CAAC,KAAK;QAChB,OAAO,MAAM,IAAA,uBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAK;QACjB,OAAO,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAK;QACjB,OAAO,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC3D,CAAC;CACF,CAAA"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateMultipleTruck = void 0;
4
+ const entities_1 = require("../../../entities");
5
+ exports.updateMultipleTruck = {
6
+ async updateMultipleTruck(_, { patches }, context) {
7
+ var _a, _b, _c;
8
+ const { domain, user, tx } = context.state;
9
+ let results = [];
10
+ const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
11
+ const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
12
+ const truckRepo = tx.getRepository(entities_1.Truck);
13
+ if (_createRecords.length > 0) {
14
+ for (let i = 0; i < _createRecords.length; i++) {
15
+ const newRecord = _createRecords[i];
16
+ const organization = await tx.getRepository(entities_1.Organization).findOneOrFail({
17
+ where: { id: (_a = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _a === void 0 ? void 0 : _a.id }
18
+ });
19
+ const result = await truckRepo.save(Object.assign(Object.assign({}, newRecord), { domain: domain, creator: user, updater: user }));
20
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
21
+ }
22
+ }
23
+ if (_updateRecords.length > 0) {
24
+ for (let i = 0; i < _updateRecords.length; i++) {
25
+ let newRecord = _updateRecords[i];
26
+ const truck = await truckRepo.findOne({ domain, id: newRecord.id });
27
+ if ((_b = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _b === void 0 ? void 0 : _b.id) {
28
+ const organization = await tx.getRepository(entities_1.Organization).findOneOrFail({
29
+ where: { id: (_c = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _c === void 0 ? void 0 : _c.id }
30
+ });
31
+ newRecord = Object.assign(Object.assign({}, newRecord), { organization });
32
+ }
33
+ const result = await truckRepo.save(Object.assign(Object.assign(Object.assign({}, truck), newRecord), { updater: user }));
34
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
35
+ }
36
+ }
37
+ return results;
38
+ }
39
+ };
40
+ //# sourceMappingURL=update-multiple-truck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-multiple-truck.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/truck/update-multiple-truck.ts"],"names":[],"mappings":";;;AAAA,gDAAuD;AAE1C,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAY;;QACzD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,SAAS,GAAG,EAAE,CAAC,aAAa,CAAC,gBAAK,CAAC,CAAA;QAEzC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBAEnC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC;oBACtE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE;iBAC3C,CAAC,CAAA;gBAEF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,iCAC9B,SAAS,KACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAC9C,IAAI,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACjC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;gBAEnE,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE;oBAC/B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC;wBACtE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE;qBAC3C,CAAC,CAAA;oBACF,SAAS,mCAAQ,SAAS,KAAE,YAAY,GAAE,CAAA;iBAC3C;gBAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,+CAC9B,KAAK,GACL,SAAS,KACZ,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;aACzC;SACF;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAA"}
@@ -10,10 +10,13 @@ exports.DailyDispatchPatch = (0, graphql_tag_1.default) `
10
10
  id: String
11
11
  name: String
12
12
  description: String
13
+ transport: ObjectRef
13
14
  transportNo: String
15
+ chitNo: String
16
+ percentage: Float
14
17
  driverIdentification: String
15
18
  totalTonnageRelease: Float
16
- dispatchTo: String
19
+ dispatchTo: ObjectRef
17
20
  dispatchAt: String
18
21
  externalDriver: String
19
22
  driver: ObjectRef
@@ -1 +1 @@
1
- {"version":3,"file":"daily-dispatch-patch.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-dispatch/daily-dispatch-patch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,kBAAkB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;CAgBpC,CAAA"}
1
+ {"version":3,"file":"daily-dispatch-patch.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-dispatch/daily-dispatch-patch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,kBAAkB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;CAmBpC,CAAA"}
@@ -11,8 +11,11 @@ exports.DailyDispatch = (0, graphql_tag_1.default) `
11
11
  name: String
12
12
  domain: Domain
13
13
  dispatchAt: String
14
- dispatchTo: String
14
+ dispatchTo: Organization
15
15
  driverIdentification: String
16
+ chitNo: String
17
+ percentage: Float
18
+ transport: Truck
16
19
  transportNo: String
17
20
  driver: OrganizationStaff
18
21
  externalDriver: String
@@ -1 +1 @@
1
- {"version":3,"file":"daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-dispatch/daily-dispatch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,aAAa,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;CAqB/B,CAAA"}
1
+ {"version":3,"file":"daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-dispatch/daily-dispatch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,aAAa,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;CAwB/B,CAAA"}
@@ -22,7 +22,12 @@ __exportStar(require("./new-daily-dispatch"), exports);
22
22
  exports.DailyDispatchResolver = (0, graphql_tag_1.default) `
23
23
  extend type Mutation {
24
24
  generateDailyDispatch(dailyDispatch: NewDailyDispatch!): DailyDispatch @transaction
25
- updateDailyDispatch(name: String!, dailyDispatchDetails: [DailyDispatchDetailPatch]): DailyDispatch @transaction
25
+ updateDailyDispatch(
26
+ name: String!
27
+ chitNo: String
28
+ percentage: Float
29
+ dailyDispatchDetails: [DailyDispatchDetailPatch]
30
+ ): DailyDispatch @transaction
26
31
  deleteDailyDispatch(name: String!): Boolean @transaction
27
32
  }
28
33
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-dispatch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA6B;AAE7B,mDAAgC;AAChC,wDAAqC;AACrC,yDAAsC;AACtC,uDAAoC;AAEvB,QAAA,qBAAqB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;CAWvC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-dispatch/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA6B;AAE7B,mDAAgC;AAChC,wDAAqC;AACrC,yDAAsC;AACtC,uDAAoC;AAEvB,QAAA,qBAAqB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;CAgBvC,CAAA"}
@@ -9,10 +9,13 @@ exports.NewDailyDispatch = (0, graphql_tag_1.default) `
9
9
  input NewDailyDispatch {
10
10
  name: String
11
11
  description: String
12
+ transport: ObjectRef
12
13
  transportNo: String
13
14
  driverIdentification: String
14
15
  totalTonnageRelease: Float
15
- dispatchTo: String!
16
+ dispatchTo: ObjectRef!
17
+ chitNo: String
18
+ percentage: Float
16
19
  dispatchAt: String!
17
20
  driver: ObjectRef
18
21
  externalDriver: String
@@ -1 +1 @@
1
- {"version":3,"file":"new-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-dispatch/new-daily-dispatch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;CAclC,CAAA"}
1
+ {"version":3,"file":"new-daily-dispatch.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-dispatch/new-daily-dispatch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,gBAAgB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;CAiBlC,CAAA"}
@@ -8,9 +8,12 @@ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
8
  exports.DailyHarvestPatch = (0, graphql_tag_1.default) `
9
9
  input DailyHarvestPatch {
10
10
  name: String
11
- harvestDate: String!
12
- harvestingRound: Int!
11
+ harvestDate: String
12
+ harvestingRound: Int
13
13
  totalBunchHarvested: Float
14
+ yesterdayBalanceBunchInField: Float
15
+ balanceBunchInField: Float
16
+ collectedBunch: Float
14
17
  block: String!
15
18
  coverage: Float
16
19
  rainfall: String
@@ -1 +1 @@
1
- {"version":3,"file":"daily-harvest-patch.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-harvest/daily-harvest-patch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,iBAAiB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;CAWnC,CAAA"}
1
+ {"version":3,"file":"daily-harvest-patch.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-harvest/daily-harvest-patch.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,iBAAiB,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;CAcnC,CAAA"}
@@ -14,6 +14,9 @@ exports.DailyHarvest = (0, graphql_tag_1.default) `
14
14
  dailyHarvestDetails: [DailyHarvestDetail]
15
15
  harvestDate: String
16
16
  totalBunchHarvested: Float
17
+ yesterdayBalanceBunchInField: Float
18
+ balanceBunchInField: Float
19
+ collectedBunch: Float
17
20
  harvestingRound: Int
18
21
  coverage: Float
19
22
  rainfall: String
@@ -1 +1 @@
1
- {"version":3,"file":"daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-harvest/daily-harvest.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,YAAY,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;CAqB9B,CAAA"}
1
+ {"version":3,"file":"daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/types/daily-harvest/daily-harvest.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6B;AAEhB,QAAA,YAAY,GAAG,IAAA,qBAAG,EAAA;;;;;;;;;;;;;;;;;;;;;;;;CAwB9B,CAAA"}
@@ -8,8 +8,11 @@ const graphql_tag_1 = __importDefault(require("graphql-tag"));
8
8
  exports.NewDailyHarvest = (0, graphql_tag_1.default) `
9
9
  input NewDailyHarvest {
10
10
  harvestDate: String!
11
- harvestingRound: Int!
11
+ harvestingRound: Int
12
12
  block: String!
13
+ balanceBunchInField: Float
14
+ yesterdayBalanceBunchInField: Float
15
+ collectedBunch: Float
13
16
  coverage: Float
14
17
  rainfall: String
15
18
  dailyHarvestDetails: [NewDailyHarvestDetail]