@things-factory/operato-pms 6.2.176 → 6.2.178

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 (310) hide show
  1. package/dist-server/constants/block.d.ts +4 -0
  2. package/dist-server/constants/index.d.ts +8 -0
  3. package/dist-server/constants/inventory.d.ts +8 -0
  4. package/dist-server/constants/master.d.ts +8 -0
  5. package/dist-server/constants/organization.d.ts +14 -0
  6. package/dist-server/constants/ramp.d.ts +8 -0
  7. package/dist-server/constants/record.d.ts +4 -0
  8. package/dist-server/constants/template.d.ts +3 -0
  9. package/dist-server/constants/transaction.d.ts +9 -0
  10. package/dist-server/controllers/index.d.ts +1 -0
  11. package/dist-server/controllers/render-dispatchment.d.ts +4 -0
  12. package/dist-server/controllers/render-dispatchment.js +1 -2
  13. package/dist-server/controllers/render-dispatchment.js.map +1 -1
  14. package/dist-server/entities/block-detail.d.ts +20 -0
  15. package/dist-server/entities/block-detail.js +2 -2
  16. package/dist-server/entities/block-detail.js.map +1 -1
  17. package/dist-server/entities/block.d.ts +16 -0
  18. package/dist-server/entities/block.js +4 -5
  19. package/dist-server/entities/block.js.map +1 -1
  20. package/dist-server/entities/daily-block-detail.d.ts +17 -0
  21. package/dist-server/entities/daily-block-detail.js +2 -2
  22. package/dist-server/entities/daily-block-detail.js.map +1 -1
  23. package/dist-server/entities/daily-dispatch-detail.d.ts +21 -0
  24. package/dist-server/entities/daily-dispatch-detail.js +2 -2
  25. package/dist-server/entities/daily-dispatch-detail.js.map +1 -1
  26. package/dist-server/entities/daily-dispatch.d.ts +26 -0
  27. package/dist-server/entities/daily-dispatch.js +2 -2
  28. package/dist-server/entities/daily-dispatch.js.map +1 -1
  29. package/dist-server/entities/daily-harvest-detail.d.ts +19 -0
  30. package/dist-server/entities/daily-harvest-detail.js +2 -2
  31. package/dist-server/entities/daily-harvest-detail.js.map +1 -1
  32. package/dist-server/entities/daily-harvest.d.ts +27 -0
  33. package/dist-server/entities/daily-harvest.js +2 -2
  34. package/dist-server/entities/daily-harvest.js.map +1 -1
  35. package/dist-server/entities/daily-loading-detail.d.ts +21 -0
  36. package/dist-server/entities/daily-loading-detail.js +2 -2
  37. package/dist-server/entities/daily-loading-detail.js.map +1 -1
  38. package/dist-server/entities/daily-loading-ramp.d.ts +17 -0
  39. package/dist-server/entities/daily-loading-ramp.js +2 -2
  40. package/dist-server/entities/daily-loading-ramp.js.map +1 -1
  41. package/dist-server/entities/daily-loading.d.ts +20 -0
  42. package/dist-server/entities/daily-loading.js +2 -2
  43. package/dist-server/entities/daily-loading.js.map +1 -1
  44. package/dist-server/entities/index.d.ts +19 -0
  45. package/dist-server/entities/organization-staff.d.ts +19 -0
  46. package/dist-server/entities/organization-staff.js +2 -2
  47. package/dist-server/entities/organization-staff.js.map +1 -1
  48. package/dist-server/entities/organization.d.ts +14 -0
  49. package/dist-server/entities/organization.js +2 -2
  50. package/dist-server/entities/organization.js.map +1 -1
  51. package/dist-server/entities/plantation-inventory.d.ts +19 -0
  52. package/dist-server/entities/plantation-inventory.js +2 -2
  53. package/dist-server/entities/plantation-inventory.js.map +1 -1
  54. package/dist-server/entities/plantation-setting.d.ts +17 -0
  55. package/dist-server/entities/plantation-setting.js +2 -2
  56. package/dist-server/entities/plantation-setting.js.map +1 -1
  57. package/dist-server/entities/ramp.d.ts +16 -0
  58. package/dist-server/entities/ramp.js +2 -2
  59. package/dist-server/entities/ramp.js.map +1 -1
  60. package/dist-server/entities/record-transaction.d.ts +29 -0
  61. package/dist-server/entities/record-transaction.js +2 -2
  62. package/dist-server/entities/record-transaction.js.map +1 -1
  63. package/dist-server/entities/truck.d.ts +18 -0
  64. package/dist-server/entities/truck.js +2 -2
  65. package/dist-server/entities/truck.js.map +1 -1
  66. package/dist-server/graphql/index.d.ts +5 -0
  67. package/dist-server/graphql/resolvers/block/block-query.d.ts +11 -0
  68. package/dist-server/graphql/resolvers/block/delete-blocks.d.ts +5 -0
  69. package/dist-server/graphql/resolvers/block/delete-blocks.js.map +1 -1
  70. package/dist-server/graphql/resolvers/block/index.d.ts +17 -0
  71. package/dist-server/graphql/resolvers/block/update-multiple-block.d.ts +10 -0
  72. package/dist-server/graphql/resolvers/block/update-multiple-block.js +3 -3
  73. package/dist-server/graphql/resolvers/block/update-multiple-block.js.map +1 -1
  74. package/dist-server/graphql/resolvers/block-detail/block-detail-query.d.ts +14 -0
  75. package/dist-server/graphql/resolvers/block-detail/block-detail-query.js.map +1 -1
  76. package/dist-server/graphql/resolvers/block-detail/delete-block-details.d.ts +5 -0
  77. package/dist-server/graphql/resolvers/block-detail/index.d.ts +22 -0
  78. package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.d.ts +5 -0
  79. package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js.map +1 -1
  80. package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.d.ts +5 -0
  81. package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.d.ts +11 -0
  82. package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-detail.d.ts +5 -0
  83. package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-details.d.ts +5 -0
  84. package/dist-server/graphql/resolvers/daily-block-detail/index.d.ts +29 -0
  85. package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.d.ts +6 -0
  86. package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.d.ts +5 -0
  87. package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js.map +1 -1
  88. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.d.ts +11 -0
  89. package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.d.ts +5 -0
  90. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.d.ts +11 -0
  91. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +3 -3
  92. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
  93. package/dist-server/graphql/resolvers/daily-dispatch/index.d.ts +47 -0
  94. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.d.ts +31 -0
  95. package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.d.ts +11 -0
  96. package/dist-server/graphql/resolvers/daily-dispatch-detail/index.d.ts +12 -0
  97. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.d.ts +11 -0
  98. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.d.ts +5 -0
  99. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js.map +1 -1
  100. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.d.ts +11 -0
  101. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +3 -3
  102. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  103. package/dist-server/graphql/resolvers/daily-harvest/index.d.ts +23 -0
  104. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.d.ts +11 -0
  105. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +2 -2
  106. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
  107. package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.d.ts +11 -0
  108. package/dist-server/graphql/resolvers/daily-harvest-detail/index.d.ts +12 -0
  109. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.d.ts +11 -0
  110. package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.d.ts +5 -0
  111. package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js.map +1 -1
  112. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.d.ts +11 -0
  113. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +3 -3
  114. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
  115. package/dist-server/graphql/resolvers/daily-loading/index.d.ts +23 -0
  116. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.d.ts +12 -0
  117. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +3 -3
  118. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  119. package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.d.ts +11 -0
  120. package/dist-server/graphql/resolvers/daily-loading-detail/index.d.ts +12 -0
  121. package/dist-server/graphql/resolvers/daily-loading-ramp/daily-loading-ramp-query.d.ts +11 -0
  122. package/dist-server/graphql/resolvers/daily-loading-ramp/delete-daily-loading-ramp.d.ts +5 -0
  123. package/dist-server/graphql/resolvers/daily-loading-ramp/index.d.ts +20 -0
  124. package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.d.ts +6 -0
  125. package/dist-server/graphql/resolvers/dashboard/dashboard-query.d.ts +33 -0
  126. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +2 -2
  127. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -1
  128. package/dist-server/graphql/resolvers/dashboard/index.d.ts +28 -0
  129. package/dist-server/graphql/resolvers/index.d.ts +19 -0
  130. package/dist-server/graphql/resolvers/organization/delete-organizations.d.ts +5 -0
  131. package/dist-server/graphql/resolvers/organization/delete-organizations.js.map +1 -1
  132. package/dist-server/graphql/resolvers/organization/index.d.ts +17 -0
  133. package/dist-server/graphql/resolvers/organization/organization-query.d.ts +11 -0
  134. package/dist-server/graphql/resolvers/organization/update-multiple-organization.d.ts +6 -0
  135. package/dist-server/graphql/resolvers/organization/update-multiple-organization.js +2 -2
  136. package/dist-server/graphql/resolvers/organization/update-multiple-organization.js.map +1 -1
  137. package/dist-server/graphql/resolvers/organization-staff/delete-organization-staffs.d.ts +5 -0
  138. package/dist-server/graphql/resolvers/organization-staff/index.d.ts +17 -0
  139. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.d.ts +11 -0
  140. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.d.ts +6 -0
  141. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js +2 -2
  142. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js.map +1 -1
  143. package/dist-server/graphql/resolvers/plantation-inventory/index.d.ts +13 -0
  144. package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.d.ts +12 -0
  145. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.d.ts +5 -0
  146. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.d.ts +5 -0
  147. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.d.ts +5 -0
  148. package/dist-server/graphql/resolvers/plantation-setting/index.d.ts +34 -0
  149. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.d.ts +17 -0
  150. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.d.ts +5 -0
  151. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -1
  152. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.d.ts +6 -0
  153. package/dist-server/graphql/resolvers/ramp/delete-ramps.d.ts +5 -0
  154. package/dist-server/graphql/resolvers/ramp/delete-ramps.js.map +1 -1
  155. package/dist-server/graphql/resolvers/ramp/index.d.ts +17 -0
  156. package/dist-server/graphql/resolvers/ramp/ramp-query.d.ts +11 -0
  157. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.d.ts +6 -0
  158. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js +2 -2
  159. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js.map +1 -1
  160. package/dist-server/graphql/resolvers/record-transaction/index.d.ts +12 -0
  161. package/dist-server/graphql/resolvers/record-transaction/record-transaction-query.d.ts +11 -0
  162. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.d.ts +7 -0
  163. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -1
  164. package/dist-server/graphql/resolvers/report/daily-production-reports.d.ts +7 -0
  165. package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -1
  166. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.d.ts +7 -0
  167. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -1
  168. package/dist-server/graphql/resolvers/report/index.d.ts +37 -0
  169. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.d.ts +7 -0
  170. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -1
  171. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.d.ts +7 -0
  172. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -1
  173. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.d.ts +7 -0
  174. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -1
  175. package/dist-server/graphql/resolvers/report/monthly-production-reports.d.ts +7 -0
  176. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
  177. package/dist-server/graphql/resolvers/report/yearly-production-reports.d.ts +7 -0
  178. package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -1
  179. package/dist-server/graphql/resolvers/truck/delete-trucks.d.ts +5 -0
  180. package/dist-server/graphql/resolvers/truck/index.d.ts +24 -0
  181. package/dist-server/graphql/resolvers/truck/truck-query.d.ts +17 -0
  182. package/dist-server/graphql/resolvers/truck/update-multiple-truck.d.ts +5 -0
  183. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -1
  184. package/dist-server/graphql/types/block/block-list.d.ts +1 -0
  185. package/dist-server/graphql/types/block/block-patch.d.ts +1 -0
  186. package/dist-server/graphql/types/block/block.d.ts +1 -0
  187. package/dist-server/graphql/types/block/index.d.ts +5 -0
  188. package/dist-server/graphql/types/block/new-block.d.ts +1 -0
  189. package/dist-server/graphql/types/block-detail/block-detail-list.d.ts +1 -0
  190. package/dist-server/graphql/types/block-detail/block-detail-patch.d.ts +1 -0
  191. package/dist-server/graphql/types/block-detail/block-detail.d.ts +1 -0
  192. package/dist-server/graphql/types/block-detail/index.d.ts +5 -0
  193. package/dist-server/graphql/types/block-detail/new-block-detail.d.ts +1 -0
  194. package/dist-server/graphql/types/daily-block-detail/daily-block-detail-list.d.ts +1 -0
  195. package/dist-server/graphql/types/daily-block-detail/daily-block-detail-patch.d.ts +1 -0
  196. package/dist-server/graphql/types/daily-block-detail/daily-block-detail.d.ts +1 -0
  197. package/dist-server/graphql/types/daily-block-detail/index.d.ts +5 -0
  198. package/dist-server/graphql/types/daily-block-detail/new-daily-block-detail.d.ts +1 -0
  199. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-list.d.ts +1 -0
  200. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.d.ts +1 -0
  201. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.d.ts +1 -0
  202. package/dist-server/graphql/types/daily-dispatch/index.d.ts +5 -0
  203. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.d.ts +1 -0
  204. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-list.d.ts +1 -0
  205. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-patch.d.ts +1 -0
  206. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail.d.ts +1 -0
  207. package/dist-server/graphql/types/daily-dispatch-detail/index.d.ts +5 -0
  208. package/dist-server/graphql/types/daily-dispatch-detail/new-daily-dispatch-detail.d.ts +1 -0
  209. package/dist-server/graphql/types/daily-harvest/daily-harvest-list.d.ts +1 -0
  210. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.d.ts +1 -0
  211. package/dist-server/graphql/types/daily-harvest/daily-harvest.d.ts +1 -0
  212. package/dist-server/graphql/types/daily-harvest/index.d.ts +5 -0
  213. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.d.ts +1 -0
  214. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-list.d.ts +1 -0
  215. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.d.ts +1 -0
  216. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.d.ts +1 -0
  217. package/dist-server/graphql/types/daily-harvest-detail/index.d.ts +5 -0
  218. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.d.ts +1 -0
  219. package/dist-server/graphql/types/daily-loading/daily-loading-list.d.ts +1 -0
  220. package/dist-server/graphql/types/daily-loading/daily-loading-patch.d.ts +1 -0
  221. package/dist-server/graphql/types/daily-loading/daily-loading.d.ts +1 -0
  222. package/dist-server/graphql/types/daily-loading/index.d.ts +5 -0
  223. package/dist-server/graphql/types/daily-loading/new-daily-loading.d.ts +1 -0
  224. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-list.d.ts +1 -0
  225. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.d.ts +1 -0
  226. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.d.ts +1 -0
  227. package/dist-server/graphql/types/daily-loading-detail/index.d.ts +5 -0
  228. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.d.ts +1 -0
  229. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-list.d.ts +1 -0
  230. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-patch.d.ts +1 -0
  231. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp.d.ts +1 -0
  232. package/dist-server/graphql/types/daily-loading-ramp/index.d.ts +5 -0
  233. package/dist-server/graphql/types/daily-loading-ramp/new-daily-loading-ramp.d.ts +1 -0
  234. package/dist-server/graphql/types/dashboard/bunches-count.d.ts +1 -0
  235. package/dist-server/graphql/types/dashboard/index.d.ts +6 -0
  236. package/dist-server/graphql/types/dashboard/productions-overview.d.ts +1 -0
  237. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.d.ts +1 -0
  238. package/dist-server/graphql/types/dashboard/tonnage-production.d.ts +1 -0
  239. package/dist-server/graphql/types/dashboard/yield-production.d.ts +1 -0
  240. package/dist-server/graphql/types/index.d.ts +19 -0
  241. package/dist-server/graphql/types/organization/index.d.ts +5 -0
  242. package/dist-server/graphql/types/organization/new-organization.d.ts +1 -0
  243. package/dist-server/graphql/types/organization/organization-list.d.ts +1 -0
  244. package/dist-server/graphql/types/organization/organization-patch.d.ts +1 -0
  245. package/dist-server/graphql/types/organization/organization.d.ts +1 -0
  246. package/dist-server/graphql/types/organization-staff/index.d.ts +5 -0
  247. package/dist-server/graphql/types/organization-staff/new-organization-staff.d.ts +1 -0
  248. package/dist-server/graphql/types/organization-staff/organization-staff-list.d.ts +1 -0
  249. package/dist-server/graphql/types/organization-staff/organization-staff-patch.d.ts +1 -0
  250. package/dist-server/graphql/types/organization-staff/organization-staff.d.ts +1 -0
  251. package/dist-server/graphql/types/plantation-inventory/index.d.ts +5 -0
  252. package/dist-server/graphql/types/plantation-inventory/new-plantation-inventory.d.ts +1 -0
  253. package/dist-server/graphql/types/plantation-inventory/plantation-inventory-list.d.ts +1 -0
  254. package/dist-server/graphql/types/plantation-inventory/plantation-inventory-patch.d.ts +1 -0
  255. package/dist-server/graphql/types/plantation-inventory/plantation-inventory.d.ts +1 -0
  256. package/dist-server/graphql/types/plantation-setting/index.d.ts +5 -0
  257. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.d.ts +1 -0
  258. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.d.ts +1 -0
  259. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.d.ts +1 -0
  260. package/dist-server/graphql/types/plantation-setting/plantation-setting.d.ts +1 -0
  261. package/dist-server/graphql/types/ramp/index.d.ts +5 -0
  262. package/dist-server/graphql/types/ramp/new-ramp.d.ts +1 -0
  263. package/dist-server/graphql/types/ramp/ramp-list.d.ts +1 -0
  264. package/dist-server/graphql/types/ramp/ramp-patch.d.ts +1 -0
  265. package/dist-server/graphql/types/ramp/ramp.d.ts +1 -0
  266. package/dist-server/graphql/types/record-transaction/index.d.ts +5 -0
  267. package/dist-server/graphql/types/record-transaction/new-record-transaction.d.ts +1 -0
  268. package/dist-server/graphql/types/record-transaction/record-transaction-list.d.ts +1 -0
  269. package/dist-server/graphql/types/record-transaction/record-transaction-patch.d.ts +1 -0
  270. package/dist-server/graphql/types/record-transaction/record-transaction.d.ts +1 -0
  271. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.d.ts +1 -0
  272. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.d.ts +1 -0
  273. package/dist-server/graphql/types/report/daily-production-report-list.d.ts +1 -0
  274. package/dist-server/graphql/types/report/daily-production-report.d.ts +1 -0
  275. package/dist-server/graphql/types/report/daily-staff-harvest-report-list.d.ts +1 -0
  276. package/dist-server/graphql/types/report/daily-staff-harvest-report.d.ts +1 -0
  277. package/dist-server/graphql/types/report/index.d.ts +15 -0
  278. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.d.ts +1 -0
  279. package/dist-server/graphql/types/report/monthly-block-dispatch-report.d.ts +1 -0
  280. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.d.ts +1 -0
  281. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.d.ts +1 -0
  282. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.d.ts +1 -0
  283. package/dist-server/graphql/types/report/monthly-ffb-sale-report.d.ts +1 -0
  284. package/dist-server/graphql/types/report/monthly-production-report-list.d.ts +1 -0
  285. package/dist-server/graphql/types/report/monthly-production-report.d.ts +1 -0
  286. package/dist-server/graphql/types/report/yearly-production-report-list.d.ts +1 -0
  287. package/dist-server/graphql/types/report/yearly-production-report.d.ts +1 -0
  288. package/dist-server/graphql/types/truck/index.d.ts +5 -0
  289. package/dist-server/graphql/types/truck/new-truck.d.ts +1 -0
  290. package/dist-server/graphql/types/truck/truck-list.d.ts +1 -0
  291. package/dist-server/graphql/types/truck/truck-patch.d.ts +1 -0
  292. package/dist-server/graphql/types/truck/truck.d.ts +1 -0
  293. package/dist-server/index.d.ts +5 -0
  294. package/dist-server/middlewares/index.d.ts +1 -0
  295. package/dist-server/middlewares/index.js +1 -2
  296. package/dist-server/middlewares/index.js.map +1 -1
  297. package/dist-server/migrations/index.d.ts +1 -0
  298. package/dist-server/routes.d.ts +1 -0
  299. package/dist-server/tsconfig.tsbuildinfo +1 -1
  300. package/dist-server/utils/core-values.d.ts +12 -0
  301. package/dist-server/utils/core-values.js +1 -2
  302. package/dist-server/utils/core-values.js.map +1 -1
  303. package/dist-server/utils/datetime-util.d.ts +4 -0
  304. package/dist-server/utils/datetime-util.js.map +1 -1
  305. package/dist-server/utils/index.d.ts +4 -0
  306. package/dist-server/utils/no-generator.d.ts +15 -0
  307. package/dist-server/utils/transaction-util.d.ts +17 -0
  308. package/dist-server/utils/transaction-util.js +2 -3
  309. package/dist-server/utils/transaction-util.js.map +1 -1
  310. package/package.json +28 -28
@@ -0,0 +1,23 @@
1
+ export declare const DailyHarvestResolver: {
2
+ Query: {
3
+ dailyHarvest(_: any, { name }: {
4
+ name: any;
5
+ }, context: ResolverContext): Promise<import("../../..").DailyHarvest>;
6
+ dailyHarvests(_: any, params: import("@things-factory/shell").ListParam, context: ResolverContext): Promise<{
7
+ items: import("../../..").DailyHarvest[];
8
+ total: number;
9
+ }>;
10
+ };
11
+ Mutation: {
12
+ deleteDailyHarvest(_: any, { name }: {
13
+ name: any;
14
+ }, context: ResolverContext): Promise<boolean>;
15
+ updateDailyHarvest(_: any, { name, dailyHarvestPatch }: {
16
+ name: any;
17
+ dailyHarvestPatch: any;
18
+ }, context: ResolverContext): Promise<import("../../..").DailyHarvest>;
19
+ generateDailyHarvest(_: any, { dailyHarvest }: {
20
+ dailyHarvest: any;
21
+ }, context: ResolverContext): Promise<import("../../..").DailyHarvest>;
22
+ };
23
+ };
@@ -0,0 +1,11 @@
1
+ import { EntityManager } from 'typeorm';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { Domain } from '@things-factory/shell';
4
+ import { Block, DailyHarvest } from '../../../entities';
5
+ export declare const updateDailyHarvest: {
6
+ updateDailyHarvest(_: any, { name, dailyHarvestPatch }: {
7
+ name: any;
8
+ dailyHarvestPatch: any;
9
+ }, context: ResolverContext): Promise<DailyHarvest>;
10
+ };
11
+ export declare function updatePlantationInventory(domain: Domain, foundDailyHarvest: DailyHarvest, block: Block, user: User, tx?: EntityManager): Promise<void>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updatePlantationInventory = exports.updateDailyHarvest = void 0;
3
+ exports.updateDailyHarvest = void 0;
4
+ exports.updatePlantationInventory = updatePlantationInventory;
4
5
  const typeorm_1 = require("typeorm");
5
6
  const shell_1 = require("@things-factory/shell");
6
7
  const constants_1 = require("../../../constants");
@@ -94,5 +95,4 @@ async function updatePlantationInventory(domain, foundDailyHarvest, block, user,
94
95
  await plantationInvRepo.save(existingPlantationInventory);
95
96
  await (0, utils_1.generateTransactionHistory)(block, domain, null, foundDailyHarvest.id, foundDailyHarvest.name, constants_1.TRANSACTION_TYPE.BUNCHES_ADJUSTMENT, foundDailyHarvest.harvestDate, newTotalBunches, 0, user, tx);
96
97
  }
97
- exports.updatePlantationInventory = updatePlantationInventory;
98
98
  //# sourceMappingURL=update-daily-harvest.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/update-daily-harvest.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, IsNull, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyHarvest, DailyHarvestDetail, OrganizationStaff, PlantationInventory } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const updateDailyHarvest = {\n async updateDailyHarvest(_: any, { name, dailyHarvestPatch }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n const dailyHarvestRepo = tx.getRepository(DailyHarvest)\n const dailyHarvestDetailRepo = tx.getRepository(DailyHarvestDetail)\n const organizationStaffRepo = tx.getRepository(OrganizationStaff)\n\n let foundDailyHarvest: DailyHarvest = await dailyHarvestRepo.findOne({\n where: { name },\n relations: ['block', 'dailyHarvestDetails', 'dailyHarvestDetails.organizationStaff']\n })\n\n // for existing data row\n let foundDailyHarvestDetails: DailyHarvestDetail[] = foundDailyHarvest.dailyHarvestDetails // from DB\n let existingDailyHarvestDetails: DailyHarvestDetail[] = dailyHarvestPatch.dailyHarvestDetails.filter(\n detail => detail.name !== null\n ) // from client side\n\n // new row has been added\n let newDailyHarvestDetails: DailyHarvestDetail[] = dailyHarvestPatch.dailyHarvestDetails.filter(\n detail => detail.name === null\n )\n\n const block: Block = await tx.getRepository(Block).findOne({\n where: { domain: { id: domain.id }, name: dailyHarvestPatch.block, deletedAt: IsNull() }\n })\n\n const collectedBunch: number = dailyHarvestPatch.collectedBunch || 0\n\n // get sum of bunch harvested from all staff\n var totalBunchHarvested = dailyHarvestPatch.dailyHarvestDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchHarvested\n }, 0)\n\n foundDailyHarvest.block = block\n foundDailyHarvest.coverage = dailyHarvestPatch.coverage\n foundDailyHarvest.harvestingRound = dailyHarvestPatch.harvestingRound\n foundDailyHarvest.yesterdayBalanceBunchInField = dailyHarvestPatch.yesterdayBalanceBunchInField\n foundDailyHarvest.totalBunchHarvested = totalBunchHarvested\n foundDailyHarvest.collectedBunch = collectedBunch\n foundDailyHarvest.balanceBunchInField =\n foundDailyHarvest.yesterdayBalanceBunchInField + totalBunchHarvested - collectedBunch\n foundDailyHarvest.harvestDate = dailyHarvestPatch.harvestDate\n foundDailyHarvest.updater = user\n await dailyHarvestRepo.save(foundDailyHarvest)\n\n if (existingDailyHarvestDetails?.length > 0) {\n await Promise.all(\n foundDailyHarvestDetails.map(async (record: DailyHarvestDetail) => {\n if (record.totalBunchHarvested == 0) {\n await dailyHarvestDetailRepo.delete(record.id)\n } else {\n const foundDailyHarvestDetailPatch = dailyHarvestPatch.dailyHarvestDetails.find(\n detail => detail.name === record.name\n )\n\n const foundStaff: OrganizationStaff = await organizationStaffRepo.findOne({\n where: { id: foundDailyHarvestDetailPatch.organizationStaff.id }\n })\n\n await dailyHarvestDetailRepo.save({\n ...record,\n dailyHarvest: foundDailyHarvest,\n organizationStaff: foundStaff,\n totalBunchHarvested: foundDailyHarvestDetailPatch.totalBunchHarvested,\n totalTonnageHarvested: foundDailyHarvestDetailPatch.totalTonnageHarvested,\n remark: foundDailyHarvestDetailPatch.remark,\n updater: user\n })\n }\n })\n )\n }\n\n // during edit user add new row\n if (newDailyHarvestDetails?.length > 0) {\n await Promise.all(\n newDailyHarvestDetails.map(async (dailyHarvestDetail: DailyHarvestDetail) => {\n let newDailyHarvestDetail: DailyHarvestDetail = new DailyHarvestDetail()\n newDailyHarvestDetail.dailyHarvest = await dailyHarvestRepo.findOne({\n where: { domain: { id: domain.id }, name }\n })\n newDailyHarvestDetail.domain = domain\n newDailyHarvestDetail.name = NoGenerator.dailyHarvestDetail()\n newDailyHarvestDetail.organizationStaff = await organizationStaffRepo.findOneBy({\n id: dailyHarvestDetail.organizationStaff.id\n })\n newDailyHarvestDetail.totalBunchHarvested = dailyHarvestDetail.totalBunchHarvested\n newDailyHarvestDetail.totalTonnageHarvested = dailyHarvestDetail.totalTonnageHarvested\n newDailyHarvestDetail.remark = dailyHarvestDetail.remark\n newDailyHarvestDetail.creator = user\n newDailyHarvestDetail.updater = user\n\n await dailyHarvestDetailRepo.save(newDailyHarvestDetail)\n })\n )\n }\n\n await updatePlantationInventory(domain, foundDailyHarvest, block, user, tx)\n\n return foundDailyHarvest\n }\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n foundDailyHarvest: DailyHarvest,\n block: Block,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingPlantationInventory: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, block: { id: block.id }, type: INVENTORY_TYPE.FIELD_BUNCHES },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (!existingPlantationInventory) throw new Error('Unable to find plantation bunches inventory')\n\n let newTotalBunches: number = 0\n let currentBunchInField: number = existingPlantationInventory.totalBunches\n\n newTotalBunches = foundDailyHarvest.totalBunchHarvested - currentBunchInField\n\n existingPlantationInventory.totalBunches = currentBunchInField + newTotalBunches\n existingPlantationInventory.updater = user\n await plantationInvRepo.save(existingPlantationInventory)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n foundDailyHarvest.id,\n foundDailyHarvest.name,\n TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,\n foundDailyHarvest.harvestDate,\n newTotalBunches,\n 0,\n user,\n tx\n )\n}\n"]}
1
+ {"version":3,"file":"update-daily-harvest.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-harvest/update-daily-harvest.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, IsNull, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyHarvest, DailyHarvestDetail, OrganizationStaff, PlantationInventory } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const updateDailyHarvest = {\n async updateDailyHarvest(_: any, { name, dailyHarvestPatch }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n const dailyHarvestRepo = tx.getRepository(DailyHarvest)\n const dailyHarvestDetailRepo = tx.getRepository(DailyHarvestDetail)\n const organizationStaffRepo = tx.getRepository(OrganizationStaff)\n\n let foundDailyHarvest: DailyHarvest = await dailyHarvestRepo.findOne({\n where: { name },\n relations: ['block', 'dailyHarvestDetails', 'dailyHarvestDetails.organizationStaff']\n })\n\n // for existing data row\n let foundDailyHarvestDetails: DailyHarvestDetail[] = foundDailyHarvest.dailyHarvestDetails // from DB\n let existingDailyHarvestDetails: DailyHarvestDetail[] = dailyHarvestPatch.dailyHarvestDetails.filter(\n detail => detail.name !== null\n ) // from client side\n\n // new row has been added\n let newDailyHarvestDetails: DailyHarvestDetail[] = dailyHarvestPatch.dailyHarvestDetails.filter(\n detail => detail.name === null\n )\n\n const block: Block = await tx.getRepository(Block).findOne({\n where: { domain: { id: domain.id }, name: dailyHarvestPatch.block, deletedAt: IsNull() }\n })\n\n const collectedBunch: number = dailyHarvestPatch.collectedBunch || 0\n\n // get sum of bunch harvested from all staff\n var totalBunchHarvested = dailyHarvestPatch.dailyHarvestDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchHarvested\n }, 0)\n\n foundDailyHarvest.block = block\n foundDailyHarvest.coverage = dailyHarvestPatch.coverage\n foundDailyHarvest.harvestingRound = dailyHarvestPatch.harvestingRound\n foundDailyHarvest.yesterdayBalanceBunchInField = dailyHarvestPatch.yesterdayBalanceBunchInField\n foundDailyHarvest.totalBunchHarvested = totalBunchHarvested\n foundDailyHarvest.collectedBunch = collectedBunch\n foundDailyHarvest.balanceBunchInField =\n foundDailyHarvest.yesterdayBalanceBunchInField + totalBunchHarvested - collectedBunch\n foundDailyHarvest.harvestDate = dailyHarvestPatch.harvestDate\n foundDailyHarvest.updater = user\n await dailyHarvestRepo.save(foundDailyHarvest)\n\n if (existingDailyHarvestDetails?.length > 0) {\n await Promise.all(\n foundDailyHarvestDetails.map(async (record: DailyHarvestDetail) => {\n if (record.totalBunchHarvested == 0) {\n await dailyHarvestDetailRepo.delete(record.id)\n } else {\n const foundDailyHarvestDetailPatch = dailyHarvestPatch.dailyHarvestDetails.find(\n detail => detail.name === record.name\n )\n\n const foundStaff: OrganizationStaff = await organizationStaffRepo.findOne({\n where: { id: foundDailyHarvestDetailPatch.organizationStaff.id }\n })\n\n await dailyHarvestDetailRepo.save({\n ...record,\n dailyHarvest: foundDailyHarvest,\n organizationStaff: foundStaff,\n totalBunchHarvested: foundDailyHarvestDetailPatch.totalBunchHarvested,\n totalTonnageHarvested: foundDailyHarvestDetailPatch.totalTonnageHarvested,\n remark: foundDailyHarvestDetailPatch.remark,\n updater: user\n })\n }\n })\n )\n }\n\n // during edit user add new row\n if (newDailyHarvestDetails?.length > 0) {\n await Promise.all(\n newDailyHarvestDetails.map(async (dailyHarvestDetail: DailyHarvestDetail) => {\n let newDailyHarvestDetail: DailyHarvestDetail = new DailyHarvestDetail()\n newDailyHarvestDetail.dailyHarvest = await dailyHarvestRepo.findOne({\n where: { domain: { id: domain.id }, name }\n })\n newDailyHarvestDetail.domain = domain\n newDailyHarvestDetail.name = NoGenerator.dailyHarvestDetail()\n newDailyHarvestDetail.organizationStaff = await organizationStaffRepo.findOneBy({\n id: dailyHarvestDetail.organizationStaff.id\n })\n newDailyHarvestDetail.totalBunchHarvested = dailyHarvestDetail.totalBunchHarvested\n newDailyHarvestDetail.totalTonnageHarvested = dailyHarvestDetail.totalTonnageHarvested\n newDailyHarvestDetail.remark = dailyHarvestDetail.remark\n newDailyHarvestDetail.creator = user\n newDailyHarvestDetail.updater = user\n\n await dailyHarvestDetailRepo.save(newDailyHarvestDetail)\n })\n )\n }\n\n await updatePlantationInventory(domain, foundDailyHarvest, block, user, tx)\n\n return foundDailyHarvest\n }\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n foundDailyHarvest: DailyHarvest,\n block: Block,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingPlantationInventory: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, block: { id: block.id }, type: INVENTORY_TYPE.FIELD_BUNCHES },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (!existingPlantationInventory) throw new Error('Unable to find plantation bunches inventory')\n\n let newTotalBunches: number = 0\n let currentBunchInField: number = existingPlantationInventory.totalBunches\n\n newTotalBunches = foundDailyHarvest.totalBunchHarvested - currentBunchInField\n\n existingPlantationInventory.totalBunches = currentBunchInField + newTotalBunches\n existingPlantationInventory.updater = user\n await plantationInvRepo.save(existingPlantationInventory)\n\n await generateTransactionHistory(\n block,\n domain,\n null,\n foundDailyHarvest.id,\n foundDailyHarvest.name,\n TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,\n foundDailyHarvest.harvestDate,\n newTotalBunches,\n 0,\n user,\n tx\n )\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { ListParam } from '@things-factory/shell';
2
+ import { DailyHarvestDetail as DailyHarvestDetailEntity } from '../../../entities';
3
+ export declare const Query: {
4
+ dailyHarvestDetail(_: any, { name }: {
5
+ name: any;
6
+ }, context: ResolverContext): Promise<DailyHarvestDetailEntity>;
7
+ dailyHarvestDetails(_: any, params: ListParam, context: ResolverContext): Promise<{
8
+ items: DailyHarvestDetailEntity[];
9
+ total: number;
10
+ }>;
11
+ };
@@ -0,0 +1,12 @@
1
+ export declare const DailyHarvestDetailResolver: {
2
+ Query: {
3
+ dailyHarvestDetail(_: any, { name }: {
4
+ name: any;
5
+ }, context: ResolverContext): Promise<import("../../..").DailyHarvestDetail>;
6
+ dailyHarvestDetails(_: any, params: import("@things-factory/shell").ListParam, context: ResolverContext): Promise<{
7
+ items: import("../../..").DailyHarvestDetail[];
8
+ total: number;
9
+ }>;
10
+ };
11
+ Mutation: {};
12
+ };
@@ -0,0 +1,11 @@
1
+ import { ListParam } from '@things-factory/shell';
2
+ import { DailyLoading as DailyLoadingEntity } from '../../../entities';
3
+ export declare const Query: {
4
+ dailyLoading(_: any, { name }: {
5
+ name: any;
6
+ }, context: ResolverContext): Promise<DailyLoadingEntity>;
7
+ dailyLoadings(_: any, params: ListParam, context: ResolverContext): Promise<{
8
+ items: DailyLoadingEntity[];
9
+ total: number;
10
+ }>;
11
+ };
@@ -0,0 +1,5 @@
1
+ export declare const deleteDailyLoading: {
2
+ deleteDailyLoading(_: any, { name }: {
3
+ name: any;
4
+ }, context: ResolverContext): Promise<boolean>;
5
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"delete-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/delete-daily-loading.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAI/C,gDAAoE;AAEvD,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACjE,IAAI;YACF,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEpC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE,EAAE,CAAC,CAAA;YAEjH,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,MAAM,CACzC;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI;aACL,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YAED,MAAM,EAAE,CAAC,aAAa,CAAC,6BAAkB,CAAC,CAAC,MAAM,CAC/C;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE;aACtC,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YACD,OAAO,IAAI,CAAA;SACZ;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA","sourcesContent":["import { EntityManager, IsNull } from 'typeorm'\n\nimport { Domain } from '@things-factory/shell'\n\nimport { DailyLoading, DailyLoadingDetail } from '../../../entities'\n\nexport const deleteDailyLoading = {\n async deleteDailyLoading(_: any, { name }, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n const dailyLoading = await tx.getRepository(DailyLoading).findOneOrFail({ where: { name, deletedAt: IsNull() } })\n\n await tx.getRepository(DailyLoading).update(\n {\n domain: { id: domain.id },\n name\n },\n {\n deletedAt: new Date()\n }\n )\n\n await tx.getRepository(DailyLoadingDetail).update(\n {\n domain: { id: domain.id },\n dailyLoading: { id: dailyLoading.id }\n },\n {\n deletedAt: new Date()\n }\n )\n return true\n } catch (error) {\n throw error\n }\n }\n}\n"]}
1
+ {"version":3,"file":"delete-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/delete-daily-loading.ts"],"names":[],"mappings":";;;AAAA,qCAA+C;AAI/C,gDAAoE;AAEvD,QAAA,kBAAkB,GAAG;IAChC,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QACjE,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEpC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE,EAAE,CAAC,CAAA;YAEjH,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,MAAM,CACzC;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,IAAI;aACL,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YAED,MAAM,EAAE,CAAC,aAAa,CAAC,6BAAkB,CAAC,CAAC,MAAM,CAC/C;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,YAAY,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE;aACtC,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;CACF,CAAA","sourcesContent":["import { EntityManager, IsNull } from 'typeorm'\n\nimport { Domain } from '@things-factory/shell'\n\nimport { DailyLoading, DailyLoadingDetail } from '../../../entities'\n\nexport const deleteDailyLoading = {\n async deleteDailyLoading(_: any, { name }, context: ResolverContext) {\n try {\n const { domain, tx } = context.state\n\n const dailyLoading = await tx.getRepository(DailyLoading).findOneOrFail({ where: { name, deletedAt: IsNull() } })\n\n await tx.getRepository(DailyLoading).update(\n {\n domain: { id: domain.id },\n name\n },\n {\n deletedAt: new Date()\n }\n )\n\n await tx.getRepository(DailyLoadingDetail).update(\n {\n domain: { id: domain.id },\n dailyLoading: { id: dailyLoading.id }\n },\n {\n deletedAt: new Date()\n }\n )\n return true\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { EntityManager } from 'typeorm';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { Domain } from '@things-factory/shell';
4
+ import { DailyLoading, DailyLoadingDetail } from '../../../entities';
5
+ export declare const generateDailyLoading: {
6
+ generateDailyLoading(_: any, { dailyLoading }: {
7
+ dailyLoading: any;
8
+ }, context: ResolverContext): Promise<DailyLoading>;
9
+ };
10
+ export declare function addDailyLoadingDetail(domain: Domain, newDailyLoading: DailyLoading, dailyLoadingDetails: DailyLoadingDetail[], user: User, tx?: EntityManager): Promise<DailyLoadingDetail[]>;
11
+ export declare function updatePlantationInventory(domain: Domain, newDailyLoading: DailyLoading, dailyLoadingDetails: DailyLoadingDetail[], user: User, tx?: EntityManager): Promise<void>;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updatePlantationInventory = exports.addDailyLoadingDetail = exports.generateDailyLoading = void 0;
3
+ exports.generateDailyLoading = void 0;
4
+ exports.addDailyLoadingDetail = addDailyLoadingDetail;
5
+ exports.updatePlantationInventory = updatePlantationInventory;
4
6
  const shell_1 = require("@things-factory/shell");
5
7
  const constants_1 = require("../../../constants");
6
8
  const entities_1 = require("../../../entities");
@@ -44,7 +46,6 @@ async function addDailyLoadingDetail(domain, newDailyLoading, dailyLoadingDetail
44
46
  await updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx);
45
47
  return dailyLoadingDetails;
46
48
  }
47
- exports.addDailyLoadingDetail = addDailyLoadingDetail;
48
49
  async function updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx) {
49
50
  const plantationInvRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.PlantationInventory)) || (0, shell_1.getRepository)(entities_1.PlantationInventory);
50
51
  await Promise.all(dailyLoadingDetails.map(async (dailyLoadingDetail) => {
@@ -73,5 +74,4 @@ async function updatePlantationInventory(domain, newDailyLoading, dailyLoadingDe
73
74
  }
74
75
  }));
75
76
  }
76
- exports.updatePlantationInventory = updatePlantationInventory;
77
77
  //# sourceMappingURL=generate-daily-loading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generate-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/generate-daily-loading.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_STATUS, INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const generateDailyLoading = {\n async generateDailyLoading(_: any, { dailyLoading }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails\n\n const totalWeight: number = dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchWeight\n }, 0)\n\n const totalBunch: number = dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchLoaded\n }, 0)\n\n // 1. Create daily loading\n let newDailyLoading: DailyLoading = new DailyLoading()\n newDailyLoading.name = NoGenerator.dailyLoading()\n newDailyLoading.domain = domain\n newDailyLoading.loadingDate = dailyLoading.loadingDate\n newDailyLoading.totalBunch = totalBunch\n newDailyLoading.totalWeight = totalWeight\n newDailyLoading.status = RECORD_STATUS.STORED\n newDailyLoading.creator = user\n\n newDailyLoading = await tx.getRepository(DailyLoading).save(newDailyLoading)\n\n // 2. Create daily loading detail\n dailyLoadingDetails = await addDailyLoadingDetail(\n domain,\n newDailyLoading,\n dailyLoadingDetails.map((record: DailyLoadingDetail) => {\n return { ...record }\n }),\n user,\n tx\n )\n\n return newDailyLoading\n }\n}\n\nexport async function addDailyLoadingDetail(\n domain: Domain,\n newDailyLoading: DailyLoading,\n dailyLoadingDetails: DailyLoadingDetail[],\n user: User,\n tx?: EntityManager\n): Promise<DailyLoadingDetail[]> {\n const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)\n const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)\n const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)\n\n const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =\n tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)\n\n dailyLoadingDetails = await Promise.all(\n dailyLoadingDetails.map(async (record: DailyLoadingDetail) => {\n return {\n ...record,\n domain,\n name: NoGenerator.dailyLoadingDetail(),\n truck: await truckRepo.findOneBy({ id: record.truck.id }),\n block: await blockRepo.findOneBy({ id: record.block.id }),\n ramp: await rampRepo.findOneBy({ id: record.ramp.id }),\n dailyLoading: newDailyLoading,\n creator: user\n }\n })\n )\n\n dailyLoadingDetails = await dailyLoadingDetailRepo.save(dailyLoadingDetails)\n await updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx)\n\n return dailyLoadingDetails\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n newDailyLoading: DailyLoading,\n dailyLoadingDetails: DailyLoadingDetail[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n await Promise.all(\n dailyLoadingDetails.map(async (dailyLoadingDetail: any) => {\n let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: dailyLoadingDetail.ramp },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (existingRampTonnage) {\n existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + dailyLoadingDetail.totalBunchWeight\n existingRampTonnage.updater = user\n await plantationInvRepo.save(existingRampTonnage)\n\n await generateTransactionHistory(\n dailyLoadingDetail.block,\n domain,\n dailyLoadingDetail.ramp,\n newDailyLoading.id,\n newDailyLoading.name,\n TRANSACTION_TYPE.LOADING,\n newDailyLoading.loadingDate,\n 0,\n dailyLoadingDetail.totalBunchWeight,\n user,\n tx\n )\n } else {\n let plantationInventory: PlantationInventory = new PlantationInventory()\n plantationInventory.domain = domain\n plantationInventory.name = NoGenerator.rampTonnageName()\n plantationInventory.block = dailyLoadingDetail.block\n plantationInventory.type = INVENTORY_TYPE.RAMP_TONNAGE\n plantationInventory.totalTonnage = dailyLoadingDetail.totalBunchWeight\n plantationInventory.status = INVENTORY_STATUS.STORED\n plantationInventory.ramp = dailyLoadingDetail.ramp\n plantationInventory.creator = user\n plantationInventory = await plantationInvRepo.save(plantationInventory)\n\n await generateTransactionHistory(\n dailyLoadingDetail.block,\n domain,\n dailyLoadingDetail.ramp,\n newDailyLoading.id,\n newDailyLoading.name,\n TRANSACTION_TYPE.LOADING,\n newDailyLoading.loadingDate,\n 0,\n dailyLoadingDetail.totalBunchWeight,\n user,\n tx\n )\n }\n })\n )\n}\n"]}
1
+ {"version":3,"file":"generate-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/generate-daily-loading.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_STATUS, INVENTORY_TYPE, RECORD_STATUS, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const generateDailyLoading = {\n async generateDailyLoading(_: any, { dailyLoading }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n\n let dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails\n\n const totalWeight: number = dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchWeight\n }, 0)\n\n const totalBunch: number = dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchLoaded\n }, 0)\n\n // 1. Create daily loading\n let newDailyLoading: DailyLoading = new DailyLoading()\n newDailyLoading.name = NoGenerator.dailyLoading()\n newDailyLoading.domain = domain\n newDailyLoading.loadingDate = dailyLoading.loadingDate\n newDailyLoading.totalBunch = totalBunch\n newDailyLoading.totalWeight = totalWeight\n newDailyLoading.status = RECORD_STATUS.STORED\n newDailyLoading.creator = user\n\n newDailyLoading = await tx.getRepository(DailyLoading).save(newDailyLoading)\n\n // 2. Create daily loading detail\n dailyLoadingDetails = await addDailyLoadingDetail(\n domain,\n newDailyLoading,\n dailyLoadingDetails.map((record: DailyLoadingDetail) => {\n return { ...record }\n }),\n user,\n tx\n )\n\n return newDailyLoading\n }\n}\n\nexport async function addDailyLoadingDetail(\n domain: Domain,\n newDailyLoading: DailyLoading,\n dailyLoadingDetails: DailyLoadingDetail[],\n user: User,\n tx?: EntityManager\n): Promise<DailyLoadingDetail[]> {\n const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)\n const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)\n const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)\n\n const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =\n tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)\n\n dailyLoadingDetails = await Promise.all(\n dailyLoadingDetails.map(async (record: DailyLoadingDetail) => {\n return {\n ...record,\n domain,\n name: NoGenerator.dailyLoadingDetail(),\n truck: await truckRepo.findOneBy({ id: record.truck.id }),\n block: await blockRepo.findOneBy({ id: record.block.id }),\n ramp: await rampRepo.findOneBy({ id: record.ramp.id }),\n dailyLoading: newDailyLoading,\n creator: user\n }\n })\n )\n\n dailyLoadingDetails = await dailyLoadingDetailRepo.save(dailyLoadingDetails)\n await updatePlantationInventory(domain, newDailyLoading, dailyLoadingDetails, user, tx)\n\n return dailyLoadingDetails\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n newDailyLoading: DailyLoading,\n dailyLoadingDetails: DailyLoadingDetail[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n await Promise.all(\n dailyLoadingDetails.map(async (dailyLoadingDetail: any) => {\n let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: dailyLoadingDetail.ramp },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (existingRampTonnage) {\n existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + dailyLoadingDetail.totalBunchWeight\n existingRampTonnage.updater = user\n await plantationInvRepo.save(existingRampTonnage)\n\n await generateTransactionHistory(\n dailyLoadingDetail.block,\n domain,\n dailyLoadingDetail.ramp,\n newDailyLoading.id,\n newDailyLoading.name,\n TRANSACTION_TYPE.LOADING,\n newDailyLoading.loadingDate,\n 0,\n dailyLoadingDetail.totalBunchWeight,\n user,\n tx\n )\n } else {\n let plantationInventory: PlantationInventory = new PlantationInventory()\n plantationInventory.domain = domain\n plantationInventory.name = NoGenerator.rampTonnageName()\n plantationInventory.block = dailyLoadingDetail.block\n plantationInventory.type = INVENTORY_TYPE.RAMP_TONNAGE\n plantationInventory.totalTonnage = dailyLoadingDetail.totalBunchWeight\n plantationInventory.status = INVENTORY_STATUS.STORED\n plantationInventory.ramp = dailyLoadingDetail.ramp\n plantationInventory.creator = user\n plantationInventory = await plantationInvRepo.save(plantationInventory)\n\n await generateTransactionHistory(\n dailyLoadingDetail.block,\n domain,\n dailyLoadingDetail.ramp,\n newDailyLoading.id,\n newDailyLoading.name,\n TRANSACTION_TYPE.LOADING,\n newDailyLoading.loadingDate,\n 0,\n dailyLoadingDetail.totalBunchWeight,\n user,\n tx\n )\n }\n })\n )\n}\n"]}
@@ -0,0 +1,23 @@
1
+ export declare const DailyLoadingResolver: {
2
+ Query: {
3
+ dailyLoading(_: any, { name }: {
4
+ name: any;
5
+ }, context: ResolverContext): Promise<import("../../..").DailyLoading>;
6
+ dailyLoadings(_: any, params: import("@things-factory/shell").ListParam, context: ResolverContext): Promise<{
7
+ items: import("../../..").DailyLoading[];
8
+ total: number;
9
+ }>;
10
+ };
11
+ Mutation: {
12
+ deleteDailyLoading(_: any, { name }: {
13
+ name: any;
14
+ }, context: ResolverContext): Promise<boolean>;
15
+ updateDailyLoading(_: any, { name, dailyLoadingPatch }: {
16
+ name: any;
17
+ dailyLoadingPatch: any;
18
+ }, context: ResolverContext): Promise<import("../../..").DailyLoading>;
19
+ generateDailyLoading(_: any, { dailyLoading }: {
20
+ dailyLoading: any;
21
+ }, context: ResolverContext): Promise<import("../../..").DailyLoading>;
22
+ };
23
+ };
@@ -0,0 +1,12 @@
1
+ import { EntityManager } from 'typeorm';
2
+ import { User } from '@things-factory/auth-base';
3
+ import { Domain } from '@things-factory/shell';
4
+ import { DailyLoading, DailyLoadingDetail } from '../../../entities';
5
+ export declare const updateDailyLoading: {
6
+ updateDailyLoading(_: any, { name, dailyLoadingPatch }: {
7
+ name: any;
8
+ dailyLoadingPatch: any;
9
+ }, context: ResolverContext): Promise<DailyLoading>;
10
+ };
11
+ export declare function updateDailyLoadingDetail(domain: Domain, dailyLoading: DailyLoading, dailyLoadingDetailPatches: any[], user: User, tx?: EntityManager): Promise<void>;
12
+ export declare function updatePlantationInventory(domain: Domain, dailyLoading: DailyLoading, foundDailyLoadingDetailPatch: any, existingRecord: DailyLoadingDetail, user: User, tx?: EntityManager): Promise<void>;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updatePlantationInventory = exports.updateDailyLoadingDetail = exports.updateDailyLoading = void 0;
3
+ exports.updateDailyLoading = void 0;
4
+ exports.updateDailyLoadingDetail = updateDailyLoadingDetail;
5
+ exports.updatePlantationInventory = updatePlantationInventory;
4
6
  const shell_1 = require("@things-factory/shell");
5
7
  const constants_1 = require("../../../constants");
6
8
  const entities_1 = require("../../../entities");
@@ -73,7 +75,6 @@ async function updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingDetail
73
75
  }));
74
76
  }
75
77
  }
76
- exports.updateDailyLoadingDetail = updateDailyLoadingDetail;
77
78
  async function updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx) {
78
79
  const plantationInvRepo = (tx === null || tx === void 0 ? void 0 : tx.getRepository(entities_1.PlantationInventory)) || (0, shell_1.getRepository)(entities_1.PlantationInventory);
79
80
  let existingRampTonnage = await plantationInvRepo.findOne({
@@ -88,5 +89,4 @@ async function updatePlantationInventory(domain, dailyLoading, foundDailyLoading
88
89
  await (0, utils_1.generateTransactionHistory)(existingRampTonnage.block, domain, existingRampTonnage.ramp, dailyLoading.id, dailyLoading.name, constants_1.TRANSACTION_TYPE.LOADING_ADJUSTMENT, dailyLoading.loadingDate, 0, tonnageChanges, user, tx);
89
90
  }
90
91
  }
91
- exports.updatePlantationInventory = updatePlantationInventory;
92
92
  //# sourceMappingURL=update-daily-loading.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"update-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/update-daily-loading.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const updateDailyLoading = {\n async updateDailyLoading(_: any, { name, dailyLoadingPatch }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n const dailyLoadingRepo = tx.getRepository(DailyLoading)\n\n let dailyLoading: DailyLoading = await dailyLoadingRepo.findOne({\n where: { name },\n relations: [\n 'dailyLoadingDetails',\n 'dailyLoadingDetails.truck',\n 'dailyLoadingDetails.ramp',\n 'dailyLoadingDetails.block'\n ]\n })\n\n // get sum of bunch loaded from all trip\n var totalBunch: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchLoaded\n }, 0)\n\n var totalWeight: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchWeight\n }, 0)\n\n dailyLoading.totalBunch = totalBunch\n dailyLoading.totalWeight = totalWeight\n dailyLoading.loadingDate = dailyLoadingPatch.loadingDate\n dailyLoading.updater = user\n dailyLoading = await dailyLoadingRepo.save(dailyLoading)\n\n // 2. Create daily loading detail\n await updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingPatch.dailyLoadingDetails, user, tx)\n\n return dailyLoading\n }\n}\n\nexport async function updateDailyLoadingDetail(\n domain: Domain,\n dailyLoading: DailyLoading,\n dailyLoadingDetailPatches: any[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)\n const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)\n const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)\n const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =\n tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)\n\n let updatedDailyLoadingDetails: any[] = []\n const dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails\n // for existing data row\n const existingDailyLoadingDetails: DailyLoadingDetail[] = dailyLoadingDetailPatches.filter(\n detail => detail.name !== null\n )\n\n // new row added in client side\n const newDailyLoadingDetail: DailyLoadingDetail[] = dailyLoadingDetailPatches.filter(detail => detail.name === null)\n\n if (existingDailyLoadingDetails?.length > 0) {\n updatedDailyLoadingDetails = await Promise.all(\n dailyLoadingDetails.map(async (existingRecord: DailyLoadingDetail) => {\n const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(\n detail => detail.name === existingRecord.name\n )\n\n if (foundDailyLoadingDetailPatch.totalBunchWeight !== existingRecord.totalBunchWeight) {\n await updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx)\n }\n\n return {\n ...existingRecord,\n dailyLoading,\n truck: await truckRepo.findOneBy({ id: existingRecord.truck.id }),\n block: await blockRepo.findOneBy({ id: existingRecord.block.id }),\n ramp: await rampRepo.findOneBy({ id: existingRecord.ramp.id }),\n totalBunchLoaded: foundDailyLoadingDetailPatch?.totalBunchLoaded || 0,\n totalBunchWeight: foundDailyLoadingDetailPatch?.totalBunchWeight || 0,\n remark: foundDailyLoadingDetailPatch?.remark || null,\n updater: user\n }\n })\n )\n updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)\n }\n\n if (newDailyLoadingDetail?.length > 0) {\n await Promise.all(\n newDailyLoadingDetail.map(async (dailyLoadingDetail: DailyLoadingDetail) => {\n let newDailyLoadingDetail: DailyLoadingDetail = new DailyLoadingDetail()\n newDailyLoadingDetail.domain = domain\n newDailyLoadingDetail.name = NoGenerator.dailyLoadingDetail()\n newDailyLoadingDetail.truck = await truckRepo.findOneBy({ id: dailyLoadingDetail.truck.id })\n newDailyLoadingDetail.block = await blockRepo.findOneBy({ id: dailyLoadingDetail.block.id })\n newDailyLoadingDetail.ramp = await rampRepo.findOneBy({ id: dailyLoadingDetail.ramp.id })\n newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail?.totalBunchLoaded || 0\n newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail?.totalBunchWeight || 0\n newDailyLoadingDetail.remark = dailyLoadingDetail?.remark || null\n newDailyLoadingDetail.creator = user\n newDailyLoadingDetail.dailyLoading = dailyLoading\n\n await dailyLoadingDetailRepo.save(newDailyLoadingDetail)\n })\n )\n }\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n dailyLoading: DailyLoading,\n foundDailyLoadingDetailPatch: any,\n existingRecord: DailyLoadingDetail,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: { id: existingRecord.ramp.id } },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (existingRampTonnage) {\n const tonnageChanges: number = foundDailyLoadingDetailPatch.totalBunchWeight - existingRecord.totalBunchWeight\n existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + tonnageChanges\n existingRampTonnage.updater = user\n await plantationInvRepo.save(existingRampTonnage)\n\n await generateTransactionHistory(\n existingRampTonnage.block,\n domain,\n existingRampTonnage.ramp,\n dailyLoading.id,\n dailyLoading.name,\n TRANSACTION_TYPE.LOADING_ADJUSTMENT,\n dailyLoading.loadingDate,\n 0,\n tonnageChanges,\n user,\n tx\n )\n }\n}\n"]}
1
+ {"version":3,"file":"update-daily-loading.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/daily-loading/update-daily-loading.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, Repository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { INVENTORY_TYPE, TRANSACTION_TYPE } from '../../../constants'\nimport { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'\nimport { generateTransactionHistory, NoGenerator } from '../../../utils'\n\nexport const updateDailyLoading = {\n async updateDailyLoading(_: any, { name, dailyLoadingPatch }, context: ResolverContext) {\n const { domain, user, tx } = context.state\n const dailyLoadingRepo = tx.getRepository(DailyLoading)\n\n let dailyLoading: DailyLoading = await dailyLoadingRepo.findOne({\n where: { name },\n relations: [\n 'dailyLoadingDetails',\n 'dailyLoadingDetails.truck',\n 'dailyLoadingDetails.ramp',\n 'dailyLoadingDetails.block'\n ]\n })\n\n // get sum of bunch loaded from all trip\n var totalBunch: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchLoaded\n }, 0)\n\n var totalWeight: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {\n return prev + cur.totalBunchWeight\n }, 0)\n\n dailyLoading.totalBunch = totalBunch\n dailyLoading.totalWeight = totalWeight\n dailyLoading.loadingDate = dailyLoadingPatch.loadingDate\n dailyLoading.updater = user\n dailyLoading = await dailyLoadingRepo.save(dailyLoading)\n\n // 2. Create daily loading detail\n await updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingPatch.dailyLoadingDetails, user, tx)\n\n return dailyLoading\n }\n}\n\nexport async function updateDailyLoadingDetail(\n domain: Domain,\n dailyLoading: DailyLoading,\n dailyLoadingDetailPatches: any[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)\n const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)\n const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)\n const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =\n tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)\n\n let updatedDailyLoadingDetails: any[] = []\n const dailyLoadingDetails: DailyLoadingDetail[] = dailyLoading.dailyLoadingDetails\n // for existing data row\n const existingDailyLoadingDetails: DailyLoadingDetail[] = dailyLoadingDetailPatches.filter(\n detail => detail.name !== null\n )\n\n // new row added in client side\n const newDailyLoadingDetail: DailyLoadingDetail[] = dailyLoadingDetailPatches.filter(detail => detail.name === null)\n\n if (existingDailyLoadingDetails?.length > 0) {\n updatedDailyLoadingDetails = await Promise.all(\n dailyLoadingDetails.map(async (existingRecord: DailyLoadingDetail) => {\n const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(\n detail => detail.name === existingRecord.name\n )\n\n if (foundDailyLoadingDetailPatch.totalBunchWeight !== existingRecord.totalBunchWeight) {\n await updatePlantationInventory(domain, dailyLoading, foundDailyLoadingDetailPatch, existingRecord, user, tx)\n }\n\n return {\n ...existingRecord,\n dailyLoading,\n truck: await truckRepo.findOneBy({ id: existingRecord.truck.id }),\n block: await blockRepo.findOneBy({ id: existingRecord.block.id }),\n ramp: await rampRepo.findOneBy({ id: existingRecord.ramp.id }),\n totalBunchLoaded: foundDailyLoadingDetailPatch?.totalBunchLoaded || 0,\n totalBunchWeight: foundDailyLoadingDetailPatch?.totalBunchWeight || 0,\n remark: foundDailyLoadingDetailPatch?.remark || null,\n updater: user\n }\n })\n )\n updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)\n }\n\n if (newDailyLoadingDetail?.length > 0) {\n await Promise.all(\n newDailyLoadingDetail.map(async (dailyLoadingDetail: DailyLoadingDetail) => {\n let newDailyLoadingDetail: DailyLoadingDetail = new DailyLoadingDetail()\n newDailyLoadingDetail.domain = domain\n newDailyLoadingDetail.name = NoGenerator.dailyLoadingDetail()\n newDailyLoadingDetail.truck = await truckRepo.findOneBy({ id: dailyLoadingDetail.truck.id })\n newDailyLoadingDetail.block = await blockRepo.findOneBy({ id: dailyLoadingDetail.block.id })\n newDailyLoadingDetail.ramp = await rampRepo.findOneBy({ id: dailyLoadingDetail.ramp.id })\n newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail?.totalBunchLoaded || 0\n newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail?.totalBunchWeight || 0\n newDailyLoadingDetail.remark = dailyLoadingDetail?.remark || null\n newDailyLoadingDetail.creator = user\n newDailyLoadingDetail.dailyLoading = dailyLoading\n\n await dailyLoadingDetailRepo.save(newDailyLoadingDetail)\n })\n )\n }\n}\n\nexport async function updatePlantationInventory(\n domain: Domain,\n dailyLoading: DailyLoading,\n foundDailyLoadingDetailPatch: any,\n existingRecord: DailyLoadingDetail,\n user: User,\n tx?: EntityManager\n): Promise<void> {\n const plantationInvRepo: Repository<PlantationInventory> =\n tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)\n\n let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({\n where: { domain: { id: domain.id }, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp: { id: existingRecord.ramp.id } },\n relations: ['domain', 'block', 'ramp']\n })\n\n if (existingRampTonnage) {\n const tonnageChanges: number = foundDailyLoadingDetailPatch.totalBunchWeight - existingRecord.totalBunchWeight\n existingRampTonnage.totalTonnage = existingRampTonnage.totalTonnage + tonnageChanges\n existingRampTonnage.updater = user\n await plantationInvRepo.save(existingRampTonnage)\n\n await generateTransactionHistory(\n existingRampTonnage.block,\n domain,\n existingRampTonnage.ramp,\n dailyLoading.id,\n dailyLoading.name,\n TRANSACTION_TYPE.LOADING_ADJUSTMENT,\n dailyLoading.loadingDate,\n 0,\n tonnageChanges,\n user,\n tx\n )\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ import { ListParam } from '@things-factory/shell';
2
+ import { DailyLoadingDetail as DailyLoadingDetailEntity } from '../../../entities';
3
+ export declare const Query: {
4
+ dailyLoadingDetail(_: any, { name }: {
5
+ name: any;
6
+ }, context: ResolverContext): Promise<DailyLoadingDetailEntity>;
7
+ dailyLoadingDetails(_: any, params: ListParam, context: ResolverContext): Promise<{
8
+ items: DailyLoadingDetailEntity[];
9
+ total: number;
10
+ }>;
11
+ };
@@ -0,0 +1,12 @@
1
+ export declare const DailyLoadingDetailResolver: {
2
+ Query: {
3
+ dailyLoadingDetail(_: any, { name }: {
4
+ name: any;
5
+ }, context: ResolverContext): Promise<import("../../..").DailyLoadingDetail>;
6
+ dailyLoadingDetails(_: any, params: import("@things-factory/shell").ListParam, context: ResolverContext): Promise<{
7
+ items: import("../../..").DailyLoadingDetail[];
8
+ total: number;
9
+ }>;
10
+ };
11
+ Mutation: {};
12
+ };
@@ -0,0 +1,11 @@
1
+ import { ListParam } from '@things-factory/shell';
2
+ import { DailyLoadingRamp as DailyLoadingRampEntity } from '../../../entities';
3
+ export declare const Query: {
4
+ dailyLoadingRamp(_: any, { name }: {
5
+ name: any;
6
+ }, context: ResolverContext): Promise<DailyLoadingRampEntity>;
7
+ dailyLoadingRamps(_: any, params: ListParam, context: ResolverContext): Promise<{
8
+ items: DailyLoadingRampEntity[];
9
+ total: number;
10
+ }>;
11
+ };
@@ -0,0 +1,5 @@
1
+ export declare const deleteDailyLoadingRamp: {
2
+ deleteDailyLoadingRamp(_: any, { name }: {
3
+ name: any;
4
+ }, context: ResolverContext): Promise<boolean>;
5
+ };
@@ -0,0 +1,20 @@
1
+ export declare const DailyLoadingRampResolver: {
2
+ Query: {
3
+ dailyLoadingRamp(_: any, { name }: {
4
+ name: any;
5
+ }, context: ResolverContext): Promise<import("../../..").DailyLoadingRamp>;
6
+ dailyLoadingRamps(_: any, params: import("@things-factory/shell").ListParam, context: ResolverContext): Promise<{
7
+ items: import("../../..").DailyLoadingRamp[];
8
+ total: number;
9
+ }>;
10
+ };
11
+ Mutation: {
12
+ deleteDailyLoadingRamp(_: any, { name }: {
13
+ name: any;
14
+ }, context: ResolverContext): Promise<boolean>;
15
+ updateDailyLoadingRamp(_: any, { name, patch }: {
16
+ name: any;
17
+ patch: any;
18
+ }, context: ResolverContext): Promise<any>;
19
+ };
20
+ };
@@ -0,0 +1,6 @@
1
+ export declare const updateDailyLoadingRamp: {
2
+ updateDailyLoadingRamp(_: any, { name, patch }: {
3
+ name: any;
4
+ patch: any;
5
+ }, context: ResolverContext): Promise<any>;
6
+ };
@@ -0,0 +1,33 @@
1
+ import { EntityManager } from 'typeorm';
2
+ export declare const Query: {
3
+ /**
4
+ * @param blockId: id of the block
5
+ * @param yearAndMonth: the format will be something like 202001; combination of year 2020 and month 01
6
+ * @returns tonnage data with its sorted date
7
+ */
8
+ monthlyTonnageProductions(_: any, { blockId, yearAndMonth }: {
9
+ blockId: any;
10
+ yearAndMonth: any;
11
+ }, context: ResolverContext): Promise<any[]>;
12
+ monthlyYields(_: any, { blockId, yearAndMonth }: {
13
+ blockId: any;
14
+ yearAndMonth: any;
15
+ }, context: ResolverContext): Promise<any[]>;
16
+ weeklyBunchesCount(_: any, { targetDate }: {
17
+ targetDate: any;
18
+ }, context: ResolverContext): Promise<any[]>;
19
+ tonnageAndBunchesInventories(_: any, { something }: {
20
+ something: any;
21
+ }, context: ResolverContext): Promise<{
22
+ bunches: number;
23
+ tonnage: number;
24
+ }>;
25
+ productionsOverview(_: any, { something }: {
26
+ something: any;
27
+ }, context: ResolverContext): Promise<{
28
+ averageBunchWeight: number;
29
+ bunchesCount: number;
30
+ tonnageWeighed: number;
31
+ }>;
32
+ };
33
+ export declare function getDailyProductionData(blockId: String, year: number, month: number, tx: EntityManager): Promise<any>;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getDailyProductionData = exports.Query = void 0;
3
+ exports.Query = void 0;
4
+ exports.getDailyProductionData = getDailyProductionData;
4
5
  // import { buildQuery, ListParam } from '@things-factory/shell'
5
6
  exports.Query = {
6
7
  /**
@@ -194,5 +195,4 @@ async function getDailyProductionData(blockId, year, month, tx) {
194
195
  };
195
196
  });
196
197
  }
197
- exports.getDailyProductionData = getDailyProductionData;
198
198
  //# sourceMappingURL=dashboard-query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/dashboard/dashboard-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager } from 'typeorm'\n\n// import { buildQuery, ListParam } from '@things-factory/shell'\n\nexport const Query = {\n /**\n * @param blockId: id of the block\n * @param yearAndMonth: the format will be something like 202001; combination of year 2020 and month 01\n * @returns tonnage data with its sorted date\n */\n async monthlyTonnageProductions(_: any, { blockId, yearAndMonth }, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n const year = parseInt(yearAndMonth.substring(0, 4))\n const month = parseInt(yearAndMonth.substring(4))\n\n let data: any[] = await getDailyProductionData(blockId, year, month, tx)\n let result = []\n\n result = data.map(itm => {\n return {\n ...itm,\n blockId,\n tonnage: itm.todayWeightCollected,\n year: itm.dateDay.getFullYear(),\n month: itm.dateDay.getMonth(),\n date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })\n }\n })\n\n return result\n } catch (ex) {}\n },\n\n async monthlyYields(_: any, { blockId, yearAndMonth }, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n const year = parseInt(yearAndMonth.substring(0, 4))\n const month = parseInt(yearAndMonth.substring(4))\n\n let data: any[] = await getDailyProductionData(blockId, year, month, tx)\n let result = []\n\n result = data.map(itm => {\n return {\n ...itm,\n blockId,\n yield: (itm.todayHectareCover != 0 ? itm.todayWeightCollected / itm.todayHectareCover : 0).toFixed(4),\n year: itm.dateDay.getFullYear(),\n month: itm.dateDay.getMonth(),\n date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })\n }\n })\n\n return result\n } catch (ex) {}\n },\n\n async weeklyBunchesCount(_: any, { targetDate }, context: ResolverContext) {\n if (!targetDate || targetDate == '') targetDate = new Date()\n\n let bunchesCount = []\n\n for (let i = 0; i < 7; i++) {\n bunchesCount.push({\n date: new Date(targetDate).toLocaleString('default', { day: '2-digit', month: 'short' }),\n harvestedCount: 0,\n collectedCount: 0\n // harvestedCount: Math.floor(Math.random() * 1000) + 500,\n // collectedCount: Math.floor(Math.random() * 500) + 50\n })\n targetDate.setDate(targetDate.getDate() - 1)\n }\n\n return bunchesCount.reverse()\n },\n\n async tonnageAndBunchesInventories(_: any, { something }, context: ResolverContext) {\n return {\n bunches: 0,\n tonnage: 0\n // bunches: Math.floor(Math.random() * 10000) + 500,\n // tonnage: Math.floor(Math.random() * 10000) + 500\n }\n },\n\n async productionsOverview(_: any, { something }, context: ResolverContext) {\n return {\n averageBunchWeight: 0,\n bunchesCount: 0,\n tonnageWeighed: 0\n // averageBunchWeight: Math.floor(Math.random() * 150) + 70,\n // bunchesCount: Math.floor(Math.random() * 10000) + 500,\n // tonnageWeighed: Math.floor(Math.random() * 10000) + 500\n }\n }\n}\n\nexport async function getDailyProductionData(\n blockId: String,\n year: number,\n month: number,\n tx: EntityManager\n): Promise<any> {\n await tx.query(`\n CREATE TEMP TABLE temp_blocks on commit drop AS (\n WITH RECURSIVE b AS ( \n SELECT b.id AS block_id, * FROM blocks b \n WHERE b.deleted_at IS null\n UNION ALL\n SELECT b.id AS block_id, cb.* FROM blocks cb\n INNER JOIN b ON b.id = cb.parent_block_id\n WHERE cb.deleted_at IS null\n )\n SELECT block_id, id, name FROM b \n ${blockId != 'all-blocks' && blockId != '' ? `WHERE block_id = '${blockId}' or id = '${blockId}'` : ``}\n GROUP BY block_id, id, name \n ORDER BY block_id, id, name \n );\n `)\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [fromDate.getFullYear().toString(), String(fromDate.getMonth() + 1).padStart(2, '0'), '01'].join(\n '-'\n )\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_records on commit drop AS (\t\n select blk.block_id, coalesce(sum(field_bunches),0) AS today_field_bunches, \n round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,\n sum(case when transaction_type = 'HARVEST' OR transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,\n sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,\n round(sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,\n round(sum(case when transaction_type = 'DISPATCHMENT' OR transaction_type = 'DISPATCHMENT_ADJUSTMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,\t \n transaction_date\n from record_transactions t2\n inner join temp_blocks blk on blk.id = t2.block_id\n where transaction_date <= $1\n group by blk.block_id, transaction_date\n )\n `,\n [toDateString]\n )\n\n await tx.query(\n `\n create temp table temp_daily_production_data on commit drop as (\n select *,\n prev_bunch_bal_in_field + today_bunch_harvest as today_bunch_in_field,\n prev_bunch_bal_in_field + today_bunch_harvest - today_bunch_collected as today_bunch_bal_in_field,\n prev_weight_bal_in_ramp + today_ramp_weight_collected - today_weight_dispatch as today_weight_bal_in_ramp FROM (\n select md.dateDay as date_day,\n coalesce(\n (\n select sum(today_field_bunches) from temp_records t2 \n where transaction_date::timestamp < md.dateDay\n )\n , 0) as prev_bunch_bal_in_field,\n coalesce(\n (\n select sum(today_ramp_weight) from temp_records t2 \n where transaction_date::timestamp < md.dateDay\n )\n , 0) as prev_weight_bal_in_ramp,\n coalesce(today_bunch_harvest, 0) as today_bunch_harvest,\n coalesce(sum(today_bunch_harvest) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_harvest,\n coalesce(today_bunch_collected, 0) as today_bunch_collected, \n coalesce(sum(today_bunch_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_collected,\n coalesce(today_ramp_weight_collected, 0) as today_ramp_weight_collected, \n coalesce(sum(today_ramp_weight_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_ramp_weight_collected,\n coalesce(today_weight_dispatch, 0) as today_weight_dispatch, \n coalesce(sum(today_weight_dispatch) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_weight_dispatch,\n coalesce(tot.today_out_turn, 0) as today_out_turn,\n coalesce(sum(tot.today_out_turn) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_out_turn,\n ${\n blockId != 'all-blocks' && blockId != '' ? `(select name from blocks b2 WHERE id = '${blockId}')` : `''`\n } as block,\n coalesce(thr.today_harvesting_round, 0) as today_harvesting_round,\n coalesce(thr.today_hectare_cover, 0) as today_hectare_cover\n from \n (select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md \n left join (\n select * from temp_records trx\n where transaction_date between $1 and $2 \n order by transaction_date\n ) as dt on dt.transaction_date::date = md.dateDay\n LEFT JOIN (\n select sum(harvesting_round) AS today_harvesting_round, sum(coverage) AS today_hectare_cover, harvest_date \n from daily_harvests dh \n inner join temp_blocks blk on blk.id = dh.block_id\n where harvest_date between $1 and $2\n group by blk.block_id, harvest_date\n ) as thr ON thr.harvest_date::date = md.dateDay\n LEFT JOIN (\n select count(*) AS today_out_turn, dh.harvest_date \n from daily_harvest_details dhd \n inner join daily_harvests dh on dh.id = dhd.daily_harvest_id\n inner join temp_blocks blk on blk.id = dh.block_id\n where dh.harvest_date between $1 and $2\n GROUP BY blk.block_id, dh.harvest_date\n ) as tot ON tot.harvest_date::date = md.dateDay\n ) dt\n )`,\n [fromDateString, toDateString]\n )\n\n const result: any = await tx.query(`\n select * from temp_daily_production_data dt\n `)\n\n return result.map(itm => {\n return {\n block: itm.block,\n dateDay: itm.date_day,\n diffInBunches: parseFloat(itm.diff_in_bunches).toFixed(1),\n prevBunchBalInField: parseFloat(itm.prev_bunch_bal_in_field).toFixed(1),\n prevWeightBalInRamp: parseFloat(itm.prev_weight_bal_in_ramp).toFixed(4),\n toDateBunchHarvest: parseFloat(itm.to_date_bunch_harvest).toFixed(1),\n toDateOutTurn: itm.to_date_out_turn,\n toDateWeightDispatch: parseFloat(itm.to_date_weight_dispatch).toFixed(4),\n todayBunchBalInField: parseFloat(itm.today_bunch_bal_in_field).toFixed(1),\n todayBunchCollected: parseFloat(itm.today_bunch_collected).toFixed(1),\n todayBunchHarvest: parseFloat(itm.today_bunch_harvest).toFixed(1),\n todayBunchInField: parseFloat(itm.today_bunch_in_field).toFixed(1),\n todayHarvestingRound: itm.today_harvesting_round,\n todayHectareCover: parseFloat(itm.today_hectare_cover).toFixed(4),\n todayOutTurn: itm.today_out_turn,\n todayWeightCollected: parseFloat(itm.today_ramp_weight_collected).toFixed(4),\n todayWeightBalInRamp: parseFloat(itm.today_weight_bal_in_ramp).toFixed(4),\n todayWeightDispatch: parseFloat(itm.today_weight_dispatch).toFixed(4)\n }\n })\n}\n"]}
1
+ {"version":3,"file":"dashboard-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/dashboard/dashboard-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager } from 'typeorm'\n\n// import { buildQuery, ListParam } from '@things-factory/shell'\n\nexport const Query = {\n /**\n * @param blockId: id of the block\n * @param yearAndMonth: the format will be something like 202001; combination of year 2020 and month 01\n * @returns tonnage data with its sorted date\n */\n async monthlyTonnageProductions(_: any, { blockId, yearAndMonth }, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n const year = parseInt(yearAndMonth.substring(0, 4))\n const month = parseInt(yearAndMonth.substring(4))\n\n let data: any[] = await getDailyProductionData(blockId, year, month, tx)\n let result = []\n\n result = data.map(itm => {\n return {\n ...itm,\n blockId,\n tonnage: itm.todayWeightCollected,\n year: itm.dateDay.getFullYear(),\n month: itm.dateDay.getMonth(),\n date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })\n }\n })\n\n return result\n } catch (ex) {}\n },\n\n async monthlyYields(_: any, { blockId, yearAndMonth }, context: ResolverContext) {\n try {\n const { tx } = context.state\n\n const year = parseInt(yearAndMonth.substring(0, 4))\n const month = parseInt(yearAndMonth.substring(4))\n\n let data: any[] = await getDailyProductionData(blockId, year, month, tx)\n let result = []\n\n result = data.map(itm => {\n return {\n ...itm,\n blockId,\n yield: (itm.todayHectareCover != 0 ? itm.todayWeightCollected / itm.todayHectareCover : 0).toFixed(4),\n year: itm.dateDay.getFullYear(),\n month: itm.dateDay.getMonth(),\n date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' })\n }\n })\n\n return result\n } catch (ex) {}\n },\n\n async weeklyBunchesCount(_: any, { targetDate }, context: ResolverContext) {\n if (!targetDate || targetDate == '') targetDate = new Date()\n\n let bunchesCount = []\n\n for (let i = 0; i < 7; i++) {\n bunchesCount.push({\n date: new Date(targetDate).toLocaleString('default', { day: '2-digit', month: 'short' }),\n harvestedCount: 0,\n collectedCount: 0\n // harvestedCount: Math.floor(Math.random() * 1000) + 500,\n // collectedCount: Math.floor(Math.random() * 500) + 50\n })\n targetDate.setDate(targetDate.getDate() - 1)\n }\n\n return bunchesCount.reverse()\n },\n\n async tonnageAndBunchesInventories(_: any, { something }, context: ResolverContext) {\n return {\n bunches: 0,\n tonnage: 0\n // bunches: Math.floor(Math.random() * 10000) + 500,\n // tonnage: Math.floor(Math.random() * 10000) + 500\n }\n },\n\n async productionsOverview(_: any, { something }, context: ResolverContext) {\n return {\n averageBunchWeight: 0,\n bunchesCount: 0,\n tonnageWeighed: 0\n // averageBunchWeight: Math.floor(Math.random() * 150) + 70,\n // bunchesCount: Math.floor(Math.random() * 10000) + 500,\n // tonnageWeighed: Math.floor(Math.random() * 10000) + 500\n }\n }\n}\n\nexport async function getDailyProductionData(\n blockId: String,\n year: number,\n month: number,\n tx: EntityManager\n): Promise<any> {\n await tx.query(`\n CREATE TEMP TABLE temp_blocks on commit drop AS (\n WITH RECURSIVE b AS ( \n SELECT b.id AS block_id, * FROM blocks b \n WHERE b.deleted_at IS null\n UNION ALL\n SELECT b.id AS block_id, cb.* FROM blocks cb\n INNER JOIN b ON b.id = cb.parent_block_id\n WHERE cb.deleted_at IS null\n )\n SELECT block_id, id, name FROM b \n ${blockId != 'all-blocks' && blockId != '' ? `WHERE block_id = '${blockId}' or id = '${blockId}'` : ``}\n GROUP BY block_id, id, name \n ORDER BY block_id, id, name \n );\n `)\n\n let fromDate = new Date(year, month - 1, 1)\n let toDate = new Date(year, month, 1)\n toDate.setDate(toDate.getDate() - 1)\n\n let fromDateString = [fromDate.getFullYear().toString(), String(fromDate.getMonth() + 1).padStart(2, '0'), '01'].join(\n '-'\n )\n\n let toDateString = [\n toDate.getFullYear().toString(),\n String(toDate.getMonth() + 1).padStart(2, '0'),\n String(toDate.getDate()).padStart(2, '0')\n ].join('-')\n\n await tx.query(\n `\n CREATE TEMP TABLE temp_records on commit drop AS (\t\n select blk.block_id, coalesce(sum(field_bunches),0) AS today_field_bunches, \n round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,\n sum(case when transaction_type = 'HARVEST' OR transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,\n sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,\n round(sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then ramp_weight else 0 end)::numeric,4) as today_ramp_weight_collected,\n round(sum(case when transaction_type = 'DISPATCHMENT' OR transaction_type = 'DISPATCHMENT_ADJUSTMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,\t \n transaction_date\n from record_transactions t2\n inner join temp_blocks blk on blk.id = t2.block_id\n where transaction_date <= $1\n group by blk.block_id, transaction_date\n )\n `,\n [toDateString]\n )\n\n await tx.query(\n `\n create temp table temp_daily_production_data on commit drop as (\n select *,\n prev_bunch_bal_in_field + today_bunch_harvest as today_bunch_in_field,\n prev_bunch_bal_in_field + today_bunch_harvest - today_bunch_collected as today_bunch_bal_in_field,\n prev_weight_bal_in_ramp + today_ramp_weight_collected - today_weight_dispatch as today_weight_bal_in_ramp FROM (\n select md.dateDay as date_day,\n coalesce(\n (\n select sum(today_field_bunches) from temp_records t2 \n where transaction_date::timestamp < md.dateDay\n )\n , 0) as prev_bunch_bal_in_field,\n coalesce(\n (\n select sum(today_ramp_weight) from temp_records t2 \n where transaction_date::timestamp < md.dateDay\n )\n , 0) as prev_weight_bal_in_ramp,\n coalesce(today_bunch_harvest, 0) as today_bunch_harvest,\n coalesce(sum(today_bunch_harvest) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_harvest,\n coalesce(today_bunch_collected, 0) as today_bunch_collected, \n coalesce(sum(today_bunch_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_collected,\n coalesce(today_ramp_weight_collected, 0) as today_ramp_weight_collected, \n coalesce(sum(today_ramp_weight_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_ramp_weight_collected,\n coalesce(today_weight_dispatch, 0) as today_weight_dispatch, \n coalesce(sum(today_weight_dispatch) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_weight_dispatch,\n coalesce(tot.today_out_turn, 0) as today_out_turn,\n coalesce(sum(tot.today_out_turn) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_out_turn,\n ${\n blockId != 'all-blocks' && blockId != '' ? `(select name from blocks b2 WHERE id = '${blockId}')` : `''`\n } as block,\n coalesce(thr.today_harvesting_round, 0) as today_harvesting_round,\n coalesce(thr.today_hectare_cover, 0) as today_hectare_cover\n from \n (select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md \n left join (\n select * from temp_records trx\n where transaction_date between $1 and $2 \n order by transaction_date\n ) as dt on dt.transaction_date::date = md.dateDay\n LEFT JOIN (\n select sum(harvesting_round) AS today_harvesting_round, sum(coverage) AS today_hectare_cover, harvest_date \n from daily_harvests dh \n inner join temp_blocks blk on blk.id = dh.block_id\n where harvest_date between $1 and $2\n group by blk.block_id, harvest_date\n ) as thr ON thr.harvest_date::date = md.dateDay\n LEFT JOIN (\n select count(*) AS today_out_turn, dh.harvest_date \n from daily_harvest_details dhd \n inner join daily_harvests dh on dh.id = dhd.daily_harvest_id\n inner join temp_blocks blk on blk.id = dh.block_id\n where dh.harvest_date between $1 and $2\n GROUP BY blk.block_id, dh.harvest_date\n ) as tot ON tot.harvest_date::date = md.dateDay\n ) dt\n )`,\n [fromDateString, toDateString]\n )\n\n const result: any = await tx.query(`\n select * from temp_daily_production_data dt\n `)\n\n return result.map(itm => {\n return {\n block: itm.block,\n dateDay: itm.date_day,\n diffInBunches: parseFloat(itm.diff_in_bunches).toFixed(1),\n prevBunchBalInField: parseFloat(itm.prev_bunch_bal_in_field).toFixed(1),\n prevWeightBalInRamp: parseFloat(itm.prev_weight_bal_in_ramp).toFixed(4),\n toDateBunchHarvest: parseFloat(itm.to_date_bunch_harvest).toFixed(1),\n toDateOutTurn: itm.to_date_out_turn,\n toDateWeightDispatch: parseFloat(itm.to_date_weight_dispatch).toFixed(4),\n todayBunchBalInField: parseFloat(itm.today_bunch_bal_in_field).toFixed(1),\n todayBunchCollected: parseFloat(itm.today_bunch_collected).toFixed(1),\n todayBunchHarvest: parseFloat(itm.today_bunch_harvest).toFixed(1),\n todayBunchInField: parseFloat(itm.today_bunch_in_field).toFixed(1),\n todayHarvestingRound: itm.today_harvesting_round,\n todayHectareCover: parseFloat(itm.today_hectare_cover).toFixed(4),\n todayOutTurn: itm.today_out_turn,\n todayWeightCollected: parseFloat(itm.today_ramp_weight_collected).toFixed(4),\n todayWeightBalInRamp: parseFloat(itm.today_weight_bal_in_ramp).toFixed(4),\n todayWeightDispatch: parseFloat(itm.today_weight_dispatch).toFixed(4)\n }\n })\n}\n"]}
@@ -0,0 +1,28 @@
1
+ export declare const DashboardResolver: {
2
+ Query: {
3
+ monthlyTonnageProductions(_: any, { blockId, yearAndMonth }: {
4
+ blockId: any;
5
+ yearAndMonth: any;
6
+ }, context: ResolverContext): Promise<any[]>;
7
+ monthlyYields(_: any, { blockId, yearAndMonth }: {
8
+ blockId: any;
9
+ yearAndMonth: any;
10
+ }, context: ResolverContext): Promise<any[]>;
11
+ weeklyBunchesCount(_: any, { targetDate }: {
12
+ targetDate: any;
13
+ }, context: ResolverContext): Promise<any[]>;
14
+ tonnageAndBunchesInventories(_: any, { something }: {
15
+ something: any;
16
+ }, context: ResolverContext): Promise<{
17
+ bunches: number;
18
+ tonnage: number;
19
+ }>;
20
+ productionsOverview(_: any, { something }: {
21
+ something: any;
22
+ }, context: ResolverContext): Promise<{
23
+ averageBunchWeight: number;
24
+ bunchesCount: number;
25
+ tonnageWeighed: number;
26
+ }>;
27
+ };
28
+ };