@things-factory/operato-pms 3.8.0 → 3.8.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (305) hide show
  1. package/client/bootstrap.js +20 -7
  2. package/client/component/block-selector-popup.js +125 -24
  3. package/client/component/driver-selector-popup.js +223 -0
  4. package/client/component/mill-selector-popup.js +200 -0
  5. package/client/component/tracked-plantation-setting.js +113 -0
  6. package/client/component/truck-selector-popup.js +202 -0
  7. package/client/menu.js +34 -2
  8. package/client/pages/constants/index.js +1 -0
  9. package/client/pages/constants/organization.js +5 -0
  10. package/client/pages/dispatchment/daily-dispatch-detail.js +57 -18
  11. package/client/pages/dispatchment/dispatchment-create-record.js +140 -13
  12. package/client/pages/dispatchment/dispatchment-list.js +26 -34
  13. package/client/pages/harvesting/daily-harvesting-detail.js +55 -18
  14. package/client/pages/harvesting/edit-harvesting-record.js +89 -23
  15. package/client/pages/harvesting/harvesting-create-record.js +102 -16
  16. package/client/pages/harvesting/harvesting-list.js +58 -12
  17. package/client/pages/inventory/inventory-field-bunches.js +6 -4
  18. package/client/pages/loading/daily-loading-detail.js +47 -93
  19. package/client/pages/loading/edit-loading-record.js +75 -294
  20. package/client/pages/loading/loading-create-record.js +52 -329
  21. package/client/pages/loading/loading-list.js +20 -83
  22. package/client/pages/master/block.js +1 -0
  23. package/client/pages/master/company.js +26 -13
  24. package/client/pages/master/home.js +67 -65
  25. package/client/pages/master/ramp.js +1 -0
  26. package/client/pages/master/staff.js +54 -3
  27. package/client/pages/master/truck.js +416 -0
  28. package/client/pages/report/home.js +72 -65
  29. package/client/pages/report/report-daily-ffb-dispatch-and-production.js +393 -0
  30. package/client/pages/report/report-daily-production.js +38 -6
  31. package/client/pages/report/report-daily-staff-harvest.js +50 -5
  32. package/client/pages/report/report-ffb-tonnage-between-individual-block.js +393 -0
  33. package/client/pages/report/report-monthly-ffb-sale.js +413 -0
  34. package/client/pages/report/report-monthly-production.js +33 -4
  35. package/client/pages/report/report-yearly-production.js +24 -8
  36. package/client/pages/setting/home.js +107 -0
  37. package/client/pages/setting/plantation-setting.js +109 -0
  38. package/client/route.js +25 -0
  39. package/dist-server/constants/index.js +1 -0
  40. package/dist-server/constants/index.js.map +1 -1
  41. package/dist-server/constants/organization.js +9 -0
  42. package/dist-server/constants/organization.js.map +1 -0
  43. package/dist-server/controllers/render-dispatchment.js +1 -1
  44. package/dist-server/controllers/render-dispatchment.js.map +1 -1
  45. package/dist-server/entities/daily-dispatch.js +19 -4
  46. package/dist-server/entities/daily-dispatch.js.map +1 -1
  47. package/dist-server/entities/daily-harvest-detail.js +9 -11
  48. package/dist-server/entities/daily-harvest-detail.js.map +1 -1
  49. package/dist-server/entities/daily-harvest.js +16 -6
  50. package/dist-server/entities/daily-harvest.js.map +1 -1
  51. package/dist-server/entities/daily-loading-detail.js +14 -6
  52. package/dist-server/entities/daily-loading-detail.js.map +1 -1
  53. package/dist-server/entities/daily-loading.js +3 -11
  54. package/dist-server/entities/daily-loading.js.map +1 -1
  55. package/dist-server/entities/index.js +7 -1
  56. package/dist-server/entities/index.js.map +1 -1
  57. package/dist-server/entities/organization-staff.js +5 -1
  58. package/dist-server/entities/organization-staff.js.map +1 -1
  59. package/dist-server/entities/plantation-inventory.js +4 -10
  60. package/dist-server/entities/plantation-inventory.js.map +1 -1
  61. package/dist-server/entities/plantation-setting.js +76 -0
  62. package/dist-server/entities/plantation-setting.js.map +1 -0
  63. package/dist-server/entities/truck.js +77 -0
  64. package/dist-server/entities/truck.js.map +1 -0
  65. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +13 -2
  66. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -1
  67. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +25 -11
  68. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -1
  69. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +3 -2
  70. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -1
  71. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +3 -1
  72. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -1
  73. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +21 -2
  74. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -1
  75. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +8 -2
  76. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -1
  77. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +4 -6
  78. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -1
  79. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +20 -54
  80. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -1
  81. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +17 -105
  82. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -1
  83. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +82 -0
  84. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -0
  85. package/dist-server/graphql/resolvers/dashboard/index.js +8 -0
  86. package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
  87. package/dist-server/graphql/resolvers/index.js +9 -6
  88. package/dist-server/graphql/resolvers/index.js.map +1 -1
  89. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +7 -3
  90. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -1
  91. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +12 -0
  92. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -0
  93. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js +13 -0
  94. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js.map +1 -0
  95. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js +16 -0
  96. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js.map +1 -0
  97. package/dist-server/graphql/resolvers/plantation-setting/index.js +15 -0
  98. package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -0
  99. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +33 -0
  100. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -0
  101. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +31 -0
  102. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -0
  103. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +16 -0
  104. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -0
  105. package/dist-server/graphql/resolvers/report/daily-production-reports.js +46 -33
  106. package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -1
  107. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +21 -10
  108. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -1
  109. package/dist-server/graphql/resolvers/report/index.js +4 -1
  110. package/dist-server/graphql/resolvers/report/index.js.map +1 -1
  111. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +89 -0
  112. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -0
  113. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +89 -0
  114. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -0
  115. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +87 -0
  116. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -0
  117. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +46 -31
  118. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -1
  119. package/dist-server/graphql/resolvers/report/yearly-production-reports.js +38 -28
  120. package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -1
  121. package/dist-server/graphql/resolvers/truck/delete-trucks.js +18 -0
  122. package/dist-server/graphql/resolvers/truck/delete-trucks.js.map +1 -0
  123. package/dist-server/graphql/resolvers/truck/index.js +12 -0
  124. package/dist-server/graphql/resolvers/truck/index.js.map +1 -0
  125. package/dist-server/graphql/resolvers/truck/truck-query.js +46 -0
  126. package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -0
  127. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +40 -0
  128. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -0
  129. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js +4 -1
  130. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js.map +1 -1
  131. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js +4 -1
  132. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js.map +1 -1
  133. package/dist-server/graphql/types/daily-dispatch/index.js +6 -1
  134. package/dist-server/graphql/types/daily-dispatch/index.js.map +1 -1
  135. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js +4 -1
  136. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js.map +1 -1
  137. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js +5 -2
  138. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js.map +1 -1
  139. package/dist-server/graphql/types/daily-harvest/daily-harvest.js +3 -0
  140. package/dist-server/graphql/types/daily-harvest/daily-harvest.js.map +1 -1
  141. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js +4 -1
  142. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js.map +1 -1
  143. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js +1 -0
  144. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js.map +1 -1
  145. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js +1 -0
  146. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js.map +1 -1
  147. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js +1 -0
  148. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js.map +1 -1
  149. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js +0 -2
  150. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js.map +1 -1
  151. package/dist-server/graphql/types/daily-loading/daily-loading.js +0 -2
  152. package/dist-server/graphql/types/daily-loading/daily-loading.js.map +1 -1
  153. package/dist-server/graphql/types/daily-loading/new-daily-loading.js +0 -2
  154. package/dist-server/graphql/types/daily-loading/new-daily-loading.js.map +1 -1
  155. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +6 -3
  156. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -1
  157. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js +3 -0
  158. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js.map +1 -1
  159. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js +6 -3
  160. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js.map +1 -1
  161. package/dist-server/graphql/types/dashboard/bunches-count.js +15 -0
  162. package/dist-server/graphql/types/dashboard/bunches-count.js.map +1 -0
  163. package/dist-server/graphql/types/dashboard/index.js +32 -0
  164. package/dist-server/graphql/types/dashboard/index.js.map +1 -0
  165. package/dist-server/graphql/types/dashboard/productions-overview.js +15 -0
  166. package/dist-server/graphql/types/dashboard/productions-overview.js.map +1 -0
  167. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js +14 -0
  168. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js.map +1 -0
  169. package/dist-server/graphql/types/dashboard/tonnage-production.js +17 -0
  170. package/dist-server/graphql/types/dashboard/tonnage-production.js.map +1 -0
  171. package/dist-server/graphql/types/dashboard/yield-production.js +17 -0
  172. package/dist-server/graphql/types/dashboard/yield-production.js.map +1 -0
  173. package/dist-server/graphql/types/index.js +9 -6
  174. package/dist-server/graphql/types/index.js.map +1 -1
  175. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js +2 -0
  176. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js.map +1 -1
  177. package/dist-server/graphql/types/organization-staff/organization-staff.js +3 -0
  178. package/dist-server/graphql/types/organization-staff/organization-staff.js.map +1 -1
  179. package/dist-server/graphql/types/plantation-setting/index.js +36 -0
  180. package/dist-server/graphql/types/plantation-setting/index.js.map +1 -0
  181. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js +16 -0
  182. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js.map +1 -0
  183. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js +14 -0
  184. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js.map +1 -0
  185. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js +18 -0
  186. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js.map +1 -0
  187. package/dist-server/graphql/types/plantation-setting/plantation-setting.js +22 -0
  188. package/dist-server/graphql/types/plantation-setting/plantation-setting.js.map +1 -0
  189. package/dist-server/graphql/types/report/index.js +20 -0
  190. package/dist-server/graphql/types/report/index.js.map +1 -1
  191. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js +14 -0
  192. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js.map +1 -0
  193. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js +19 -0
  194. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js.map +1 -0
  195. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js +14 -0
  196. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js.map +1 -0
  197. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js +25 -0
  198. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js.map +1 -0
  199. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js +14 -0
  200. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js.map +1 -0
  201. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js +24 -0
  202. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js.map +1 -0
  203. package/dist-server/graphql/types/truck/index.js +33 -0
  204. package/dist-server/graphql/types/truck/index.js.map +1 -0
  205. package/dist-server/graphql/types/truck/new-truck.js +14 -0
  206. package/dist-server/graphql/types/truck/new-truck.js.map +1 -0
  207. package/dist-server/graphql/types/truck/truck-list.js +14 -0
  208. package/dist-server/graphql/types/truck/truck-list.js.map +1 -0
  209. package/dist-server/graphql/types/truck/truck-patch.js +17 -0
  210. package/dist-server/graphql/types/truck/truck-patch.js.map +1 -0
  211. package/dist-server/graphql/types/truck/truck.js +22 -0
  212. package/dist-server/graphql/types/truck/truck.js.map +1 -0
  213. package/package.json +2 -2
  214. package/server/constants/index.ts +1 -0
  215. package/server/constants/organization.ts +5 -0
  216. package/server/controllers/render-dispatchment.ts +1 -1
  217. package/server/entities/daily-dispatch.ts +21 -5
  218. package/server/entities/daily-harvest-detail.ts +10 -11
  219. package/server/entities/daily-harvest.ts +16 -7
  220. package/server/entities/daily-loading-detail.ts +14 -6
  221. package/server/entities/daily-loading.ts +7 -11
  222. package/server/entities/index.ts +6 -0
  223. package/server/entities/organization-staff.ts +6 -1
  224. package/server/entities/plantation-inventory.ts +6 -10
  225. package/server/entities/plantation-setting.ts +60 -0
  226. package/server/entities/truck.ts +58 -0
  227. package/server/graphql/resolvers/daily-dispatch/daily-dispatch-query.ts +15 -2
  228. package/server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.ts +40 -14
  229. package/server/graphql/resolvers/daily-dispatch/update-daily-dispatch.ts +6 -2
  230. package/server/graphql/resolvers/daily-harvest/daily-harvest-query.ts +7 -2
  231. package/server/graphql/resolvers/daily-harvest/generate-daily-harvest.ts +50 -4
  232. package/server/graphql/resolvers/daily-harvest/update-daily-harvest.ts +12 -2
  233. package/server/graphql/resolvers/daily-loading/daily-loading-query.ts +6 -6
  234. package/server/graphql/resolvers/daily-loading/generate-daily-loading.ts +27 -109
  235. package/server/graphql/resolvers/daily-loading/update-daily-loading.ts +27 -213
  236. package/server/graphql/resolvers/dashboard/dashboard-query.ts +96 -0
  237. package/server/graphql/resolvers/dashboard/index.ts +5 -0
  238. package/server/graphql/resolvers/index.ts +10 -6
  239. package/server/graphql/resolvers/organization-staff/organization-staff-query.ts +13 -4
  240. package/server/graphql/resolvers/plantation-setting/create-plantation-setting.ts +16 -0
  241. package/server/graphql/resolvers/plantation-setting/delete-plantation-setting.ts +13 -0
  242. package/server/graphql/resolvers/plantation-setting/delete-plantation-settings.ts +16 -0
  243. package/server/graphql/resolvers/plantation-setting/index.ts +19 -0
  244. package/server/graphql/resolvers/plantation-setting/plantation-setting-query.ts +38 -0
  245. package/server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.ts +46 -0
  246. package/server/graphql/resolvers/plantation-setting/update-plantation-setting.ts +19 -0
  247. package/server/graphql/resolvers/report/daily-production-reports.ts +55 -44
  248. package/server/graphql/resolvers/report/daily-staff-harvest-reports.ts +28 -20
  249. package/server/graphql/resolvers/report/index.ts +7 -1
  250. package/server/graphql/resolvers/report/monthly-block-dispatch-reports.ts +112 -0
  251. package/server/graphql/resolvers/report/monthly-dispatch-summary-reports.ts +110 -0
  252. package/server/graphql/resolvers/report/monthly-ffb-sale-reports.ts +107 -0
  253. package/server/graphql/resolvers/report/monthly-production-reports.ts +54 -40
  254. package/server/graphql/resolvers/report/yearly-production-reports.ts +43 -38
  255. package/server/graphql/resolvers/truck/delete-trucks.ts +21 -0
  256. package/server/graphql/resolvers/truck/index.ts +12 -0
  257. package/server/graphql/resolvers/truck/truck-query.ts +52 -0
  258. package/server/graphql/resolvers/truck/update-multiple-truck.ts +55 -0
  259. package/server/graphql/types/daily-dispatch/daily-dispatch-patch.ts +4 -1
  260. package/server/graphql/types/daily-dispatch/daily-dispatch.ts +4 -1
  261. package/server/graphql/types/daily-dispatch/index.ts +6 -1
  262. package/server/graphql/types/daily-dispatch/new-daily-dispatch.ts +4 -1
  263. package/server/graphql/types/daily-harvest/daily-harvest-patch.ts +5 -2
  264. package/server/graphql/types/daily-harvest/daily-harvest.ts +3 -0
  265. package/server/graphql/types/daily-harvest/new-daily-harvest.ts +4 -1
  266. package/server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.ts +1 -0
  267. package/server/graphql/types/daily-harvest-detail/daily-harvest-detail.ts +1 -0
  268. package/server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.ts +1 -0
  269. package/server/graphql/types/daily-loading/daily-loading-patch.ts +0 -2
  270. package/server/graphql/types/daily-loading/daily-loading.ts +0 -2
  271. package/server/graphql/types/daily-loading/new-daily-loading.ts +0 -2
  272. package/server/graphql/types/daily-loading-detail/daily-loading-detail-patch.ts +6 -3
  273. package/server/graphql/types/daily-loading-detail/daily-loading-detail.ts +3 -0
  274. package/server/graphql/types/daily-loading-detail/new-daily-loading-detail.ts +6 -3
  275. package/server/graphql/types/dashboard/bunches-count.ts +9 -0
  276. package/server/graphql/types/dashboard/index.ts +17 -0
  277. package/server/graphql/types/dashboard/productions-overview.ts +9 -0
  278. package/server/graphql/types/dashboard/tonnage-bunches-inventories.ts +8 -0
  279. package/server/graphql/types/dashboard/tonnage-production.ts +11 -0
  280. package/server/graphql/types/dashboard/yield-production.ts +11 -0
  281. package/server/graphql/types/index.ts +10 -6
  282. package/server/graphql/types/organization-staff/organization-staff-patch.ts +2 -0
  283. package/server/graphql/types/organization-staff/organization-staff.ts +3 -0
  284. package/server/graphql/types/plantation-setting/index.ts +21 -0
  285. package/server/graphql/types/plantation-setting/new-plantation-setting.ts +10 -0
  286. package/server/graphql/types/plantation-setting/plantation-setting-list.ts +8 -0
  287. package/server/graphql/types/plantation-setting/plantation-setting-patch.ts +12 -0
  288. package/server/graphql/types/plantation-setting/plantation-setting.ts +16 -0
  289. package/server/graphql/types/report/index.ts +20 -0
  290. package/server/graphql/types/report/monthly-block-dispatch-report-list.ts +7 -0
  291. package/server/graphql/types/report/monthly-block-dispatch-report.ts +13 -0
  292. package/server/graphql/types/report/monthly-dispatch-summary-report-list.ts +7 -0
  293. package/server/graphql/types/report/monthly-dispatch-summary-report.ts +19 -0
  294. package/server/graphql/types/report/monthly-ffb-sale-report-list.ts +7 -0
  295. package/server/graphql/types/report/monthly-ffb-sale-report.ts +18 -0
  296. package/server/graphql/types/truck/index.ts +18 -0
  297. package/server/graphql/types/truck/new-truck.ts +8 -0
  298. package/server/graphql/types/truck/truck-list.ts +8 -0
  299. package/server/graphql/types/truck/truck-patch.ts +11 -0
  300. package/server/graphql/types/truck/truck.ts +16 -0
  301. package/things-factory.config.js +27 -1
  302. package/translations/en.json +78 -16
  303. package/translations/ko.json +77 -48
  304. package/translations/ms.json +74 -45
  305. package/translations/zh.json +77 -48
@@ -1,17 +1,10 @@
1
+ import { EntityManager, getRepository, Repository } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Domain } from '@things-factory/shell'
3
- import { EntityManager, getRepository, Repository } from 'typeorm'
4
- import { INVENTORY_TYPE, INVENTORY_STATUS, TRANSACTION_TYPE } from '../../../constants'
5
- import {
6
- Block,
7
- DailyLoading,
8
- DailyLoadingDetail,
9
- DailyLoadingRamp,
10
- Ramp,
11
- OrganizationStaff,
12
- PlantationInventory
13
- } from '../../../entities'
14
- import { NoGenerator, generateTransactionHistory } from '../../../utils'
5
+
6
+ import { Block, DailyLoading, DailyLoadingDetail, PlantationInventory, Ramp, Truck } from '../../../entities'
7
+ import { NoGenerator } from '../../../utils'
15
8
 
16
9
  export const updateDailyLoading = {
17
10
  async updateDailyLoading(_: any, { name, dailyLoadingPatch }, context: any) {
@@ -21,23 +14,13 @@ export const updateDailyLoading = {
21
14
  let dailyLoading: DailyLoading = await dailyLoadingRepo.findOne({
22
15
  where: { name },
23
16
  relations: [
24
- 'block',
25
17
  'dailyLoadingDetails',
26
- 'dailyLoadingDetails.organizationStaff',
27
- 'dailyLoadingRamps',
28
- 'dailyLoadingRamps.ramp'
18
+ 'dailyLoadingDetails.truck',
19
+ 'dailyLoadingDetails.ramp',
20
+ 'dailyLoadingDetails.block'
29
21
  ]
30
22
  })
31
23
 
32
- const block: Block = await tx.getRepository(Block).findOne({
33
- where: { name: dailyLoadingPatch.block }
34
- })
35
-
36
- const {
37
- totalBunch: prevLoadedBunch,
38
- totalWeight: prevLoadedTonnage
39
- }: { totalBunch: number; totalWeight: number } = dailyLoading
40
-
41
24
  // get sum of bunch loaded from all trip
42
25
  var totalBunch: number = dailyLoadingPatch.dailyLoadingDetails.reduce(function (prev, cur) {
43
26
  return prev + cur.totalBunchLoaded
@@ -47,7 +30,6 @@ export const updateDailyLoading = {
47
30
  return prev + cur.totalBunchWeight
48
31
  }, 0)
49
32
 
50
- dailyLoading.block = block
51
33
  dailyLoading.totalBunch = totalBunch
52
34
  dailyLoading.totalWeight = totalWeight
53
35
  dailyLoading.loadingDate = dailyLoadingPatch.loadingDate
@@ -56,8 +38,6 @@ export const updateDailyLoading = {
56
38
 
57
39
  // 2. Create daily loading detail
58
40
  await updateDailyLoadingDetail(domain, dailyLoading, dailyLoadingPatch.dailyLoadingDetails, user, tx)
59
- await updateDailyLoadingRamp(domain, dailyLoading, dailyLoadingPatch.dailyLoadingRamps, user, tx)
60
- await updatePlantationInventory(domain, dailyLoading, prevLoadedBunch, prevLoadedTonnage, block, user, tx)
61
41
 
62
42
  return dailyLoading
63
43
  }
@@ -70,8 +50,9 @@ export async function updateDailyLoadingDetail(
70
50
  user: User,
71
51
  tx?: EntityManager
72
52
  ): Promise<void> {
73
- const organizationStaffRepo: Repository<OrganizationStaff> =
74
- tx?.getRepository(OrganizationStaff) || getRepository(OrganizationStaff)
53
+ const truckRepo: Repository<Truck> = tx?.getRepository(Truck) || getRepository(Truck)
54
+ const blockRepo: Repository<Block> = tx?.getRepository(Block) || getRepository(Block)
55
+ const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
75
56
  const dailyLoadingDetailRepo: Repository<DailyLoadingDetail> =
76
57
  tx?.getRepository(DailyLoadingDetail) || getRepository(DailyLoadingDetail)
77
58
 
@@ -90,22 +71,22 @@ export async function updateDailyLoadingDetail(
90
71
  dailyLoadingDetails.map(async (record: DailyLoadingDetail) => {
91
72
  const foundDailyLoadingDetailPatch = dailyLoadingDetailPatches.find(detail => detail.name === record.name)
92
73
 
93
- const foundStaff: OrganizationStaff = await organizationStaffRepo.findOne({
94
- where: { id: foundDailyLoadingDetailPatch.organizationStaff.id }
95
- })
96
-
97
74
  return {
98
75
  ...record,
99
76
  dailyLoading,
100
- organizationStaff: foundStaff,
101
- totalBunchLoaded: foundDailyLoadingDetailPatch.totalBunchLoaded,
102
- totalBunchWeight: foundDailyLoadingDetailPatch.totalBunchWeight,
103
- remark: foundDailyLoadingDetailPatch.remark,
77
+ truck: await truckRepo.findOne({ id: record.truck.id }),
78
+ block: await blockRepo.findOne({ id: record.block.id }),
79
+ ramp: await rampRepo.findOne({ id: record.ramp.id }),
80
+ totalBunchLoaded: foundDailyLoadingDetailPatch?.totalBunchLoaded || 0,
81
+ totalBunchWeight: foundDailyLoadingDetailPatch?.totalBunchWeight || 0,
82
+ remark: foundDailyLoadingDetailPatch?.remark || null,
104
83
  updater: user
105
84
  }
106
85
  })
107
86
  )
108
- await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)
87
+ updatedDailyLoadingDetails = await dailyLoadingDetailRepo.save(updatedDailyLoadingDetails)
88
+
89
+ // await updatePlantationInventory(domain, dailyLoading, updatedDailyLoadingDetails, user, tx)
109
90
  }
110
91
 
111
92
  if (newDailyLoadingDetail?.length > 0) {
@@ -114,14 +95,13 @@ export async function updateDailyLoadingDetail(
114
95
  let newDailyLoadingDetail: DailyLoadingDetail = new DailyLoadingDetail()
115
96
  newDailyLoadingDetail.domain = domain
116
97
  newDailyLoadingDetail.name = NoGenerator.dailyLoadingDetail()
117
- newDailyLoadingDetail.organizationStaff = await organizationStaffRepo.findOne({
118
- id: dailyLoadingDetail.organizationStaff.id
119
- })
120
- newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail.totalBunchLoaded
121
- newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail.totalBunchWeight
122
- newDailyLoadingDetail.remark = dailyLoadingDetail.remark
98
+ newDailyLoadingDetail.truck = await truckRepo.findOne({ id: dailyLoadingDetail.truck.id })
99
+ newDailyLoadingDetail.block = await blockRepo.findOne({ id: dailyLoadingDetail.block.id })
100
+ newDailyLoadingDetail.ramp = await rampRepo.findOne({ id: dailyLoadingDetail.ramp.id })
101
+ newDailyLoadingDetail.totalBunchLoaded = dailyLoadingDetail?.totalBunchLoaded || 0
102
+ newDailyLoadingDetail.totalBunchWeight = dailyLoadingDetail?.totalBunchWeight || 0
103
+ newDailyLoadingDetail.remark = dailyLoadingDetail?.remark || null
123
104
  newDailyLoadingDetail.creator = user
124
- newDailyLoadingDetail.updater = user
125
105
  newDailyLoadingDetail.dailyLoading = dailyLoading
126
106
 
127
107
  await dailyLoadingDetailRepo.save(newDailyLoadingDetail)
@@ -130,70 +110,10 @@ export async function updateDailyLoadingDetail(
130
110
  }
131
111
  }
132
112
 
133
- export async function updateDailyLoadingRamp(
134
- domain: Domain,
135
- dailyLoading: DailyLoading,
136
- dailyLoadingRampPatches: DailyLoadingRamp[],
137
- user: User,
138
- tx?: EntityManager
139
- ): Promise<void> {
140
- const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
141
- const dailyLoadingRampRepo: Repository<DailyLoadingRamp> =
142
- tx?.getRepository(DailyLoadingRamp) || getRepository(DailyLoadingRamp)
143
-
144
- let updatedDailyLoadingRamps: any[] = []
145
- const dailyLoadingRamps: DailyLoadingRamp[] = dailyLoading.dailyLoadingRamps
146
- const existingDailyLoadingRamps: DailyLoadingRamp[] = dailyLoadingRampPatches.filter(detail => detail.name !== null)
147
-
148
- // new row added in client side
149
- const newDailyLoadingRamps: DailyLoadingRamp[] = dailyLoadingRampPatches.filter(detail => detail.name === null)
150
-
151
- if (existingDailyLoadingRamps?.length > 0) {
152
- // TODO: delete function for removing data
153
- updatedDailyLoadingRamps = await Promise.all(
154
- dailyLoadingRamps.map(async (dailyLoadingRamp: DailyLoadingRamp) => {
155
- const foundDailyLoadingRampPatch = dailyLoadingRampPatches.find(detail => detail.name === dailyLoadingRamp.name)
156
-
157
- const foundRamp: Ramp = await rampRepo.findOne({
158
- where: { id: foundDailyLoadingRampPatch.ramp.id }
159
- })
160
-
161
- return {
162
- ...dailyLoadingRamp,
163
- dailyLoading,
164
- ramp: foundRamp,
165
- totalBunchWeight: foundDailyLoadingRampPatch.totalBunchWeight,
166
- updater: user
167
- }
168
- })
169
- )
170
- await dailyLoadingRampRepo.save(updatedDailyLoadingRamps)
171
- }
172
-
173
- if (newDailyLoadingRamps?.length > 0) {
174
- await Promise.all(
175
- newDailyLoadingRamps.map(async (dailyLoadingRamp: DailyLoadingRamp) => {
176
- let newDailyLoadingRamp: DailyLoadingRamp = new DailyLoadingRamp()
177
- newDailyLoadingRamp.domain = domain
178
- newDailyLoadingRamp.name = NoGenerator.dailyLoadingDetail()
179
- newDailyLoadingRamp.ramp = await rampRepo.findOne({ id: dailyLoadingRamp.ramp.id })
180
- newDailyLoadingRamp.totalBunchWeight = dailyLoadingRamp.totalBunchWeight
181
- newDailyLoadingRamp.creator = user
182
- newDailyLoadingRamp.updater = user
183
- newDailyLoadingRamp.dailyLoading = dailyLoading
184
-
185
- await dailyLoadingRampRepo.save(newDailyLoadingRamp)
186
- })
187
- )
188
- }
189
- }
190
-
191
113
  export async function updatePlantationInventory(
192
114
  domain: Domain,
193
115
  dailyLoading: DailyLoading,
194
- prevLoadedBunch: number,
195
- prevLoadedTonnage: number,
196
- block: Block,
116
+ updatedDailyLoadingDetails: DailyLoadingDetail[],
197
117
  user: User,
198
118
  tx?: EntityManager
199
119
  ): Promise<void> {
@@ -201,110 +121,4 @@ export async function updatePlantationInventory(
201
121
  tx?.getRepository(PlantationInventory) || getRepository(PlantationInventory)
202
122
 
203
123
  const rampRepo: Repository<Ramp> = tx?.getRepository(Ramp) || getRepository(Ramp)
204
-
205
- let existingBunchesInventory: PlantationInventory = await plantationInvRepo.findOne({
206
- where: { domain, block, type: INVENTORY_TYPE.FIELD_BUNCHES },
207
- relations: ['domain', 'block']
208
- })
209
-
210
- const originBunchesInventory: number = existingBunchesInventory.totalBunches + prevLoadedBunch
211
- const loadedFieldBunches: number = dailyLoading.totalBunch
212
-
213
- if (!existingBunchesInventory) throw new Error('Unable to find plantation bunches inventory')
214
- existingBunchesInventory.totalBunches = originBunchesInventory - loadedFieldBunches
215
- existingBunchesInventory.updater = user
216
- existingBunchesInventory = await plantationInvRepo.save(existingBunchesInventory)
217
-
218
- await generateTransactionHistory(
219
- existingBunchesInventory,
220
- dailyLoading.id,
221
- dailyLoading.name,
222
- TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
223
- dailyLoading.loadingDate,
224
- prevLoadedBunch,
225
- 0,
226
- user,
227
- tx
228
- )
229
-
230
- await generateTransactionHistory(
231
- existingBunchesInventory,
232
- dailyLoading.id,
233
- dailyLoading.name,
234
- TRANSACTION_TYPE.BUNCHES_ADJUSTMENT,
235
- dailyLoading.loadingDate,
236
- -loadedFieldBunches,
237
- 0,
238
- user,
239
- tx
240
- )
241
-
242
- await Promise.all(
243
- dailyLoading.dailyLoadingRamps.map(async (record: any) => {
244
- const ramp: Ramp = await rampRepo.findOne({
245
- where: { domain, id: record.ramp.id }
246
- })
247
-
248
- let existingRampTonnage: PlantationInventory = await plantationInvRepo.findOne({
249
- where: { domain, type: INVENTORY_TYPE.RAMP_TONNAGE, ramp },
250
- relations: ['domain', 'block', 'ramp']
251
- })
252
-
253
- const originRampTonnage: number = existingRampTonnage.totalTonnage - prevLoadedTonnage
254
- const loadedRampTonnage: number = dailyLoading.totalWeight
255
-
256
- if (existingRampTonnage) {
257
- existingRampTonnage.totalTonnage = originRampTonnage - loadedRampTonnage
258
- existingRampTonnage.updater = user
259
- await plantationInvRepo.save(existingRampTonnage)
260
-
261
- await generateTransactionHistory(
262
- existingRampTonnage,
263
- dailyLoading.id,
264
- dailyLoading.name,
265
- TRANSACTION_TYPE.TONNAGE_ADJUSTMENT,
266
- dailyLoading.loadingDate,
267
- 0,
268
- -prevLoadedTonnage,
269
- user,
270
- tx
271
- )
272
-
273
- await generateTransactionHistory(
274
- existingRampTonnage,
275
- dailyLoading.id,
276
- dailyLoading.name,
277
- TRANSACTION_TYPE.TONNAGE_ADJUSTMENT,
278
- dailyLoading.loadingDate,
279
- 0,
280
- loadedRampTonnage,
281
- user,
282
- tx
283
- )
284
- } else {
285
- let plantationInventory: PlantationInventory = new PlantationInventory()
286
- plantationInventory.domain = domain
287
- plantationInventory.name = NoGenerator.rampTonnageName()
288
- plantationInventory.block = block
289
- plantationInventory.type = INVENTORY_TYPE.RAMP_TONNAGE
290
- plantationInventory.totalTonnage = record.totalBunchWeight
291
- plantationInventory.status = INVENTORY_STATUS.STORED
292
- plantationInventory.ramp = ramp
293
- plantationInventory.creator = user
294
- plantationInventory = await plantationInvRepo.save(plantationInventory)
295
-
296
- await generateTransactionHistory(
297
- plantationInventory,
298
- dailyLoading.id,
299
- dailyLoading.name,
300
- TRANSACTION_TYPE.LOADING,
301
- dailyLoading.loadingDate,
302
- 0,
303
- record.totalBunchWeight,
304
- user,
305
- tx
306
- )
307
- }
308
- })
309
- )
310
124
  }
@@ -0,0 +1,96 @@
1
+ // import { EntityManager } from 'typeorm'
2
+
3
+ // import { buildQuery, ListParam } from '@things-factory/shell'
4
+
5
+ export const Query = {
6
+ /**
7
+ * @param blockId: id of the block
8
+ * @param yearAndMonth: the format will be something like 202001; combination of year 2020 and month 01
9
+ * @returns tonnage data with its sorted date
10
+ */
11
+ async monthlyTonnageProductions(_: any, { blockId, yearAndMonth }, context: any) {
12
+ if (blockId == 'ALL_BLOCKS') {
13
+ // should remove block filter
14
+ // 'ALL_BLOCKS' was hardcoded from dashboard
15
+ }
16
+
17
+ const year: string = yearAndMonth.substring(0, 4)
18
+ const month: string = yearAndMonth.substring(4)
19
+
20
+ let data = []
21
+
22
+ for (let i = 1, l = new Date(Number(year), Number(month), 0).getDate(); i <= l; i++) {
23
+ let theDate = new Date(`${year}-${month}-${i}`)
24
+ theDate.setHours(8, 0, 0, 0)
25
+
26
+ data.push({
27
+ blockId,
28
+ tonnage: Math.floor(Math.random() * 1000) + 200, // generate random value within 200-1000
29
+ year,
30
+ month,
31
+ date: theDate.toLocaleString('default', { day: '2-digit', month: 'short' })
32
+ })
33
+ }
34
+
35
+ return data.sort((a, b) => (a.date > b.date ? 1 : -1))
36
+ },
37
+
38
+ async monthlyYields(_: any, { blockId, yearAndMonth }, context: any) {
39
+ if (blockId == 'ALL_BLOCKS') {
40
+ // should remove block filter
41
+ // 'ALL_BLOCKS' was hardcoded from dashboard
42
+ }
43
+
44
+ const year: string = yearAndMonth.substring(0, 4)
45
+ const month: string = yearAndMonth.substring(4)
46
+
47
+ let data = []
48
+
49
+ for (let i = 1, l = new Date(Number(year), Number(month), 0).getDate(); i <= l; i++) {
50
+ let theDate = new Date(`${year}-${month}-${i}`)
51
+ theDate.setHours(8, 0, 0, 0)
52
+
53
+ data.push({
54
+ blockId,
55
+ yield: Math.floor(Math.random() * 1000) + 200, // generate random value within 200-1000
56
+ year,
57
+ month,
58
+ date: theDate.toLocaleString('default', { day: '2-digit', month: 'short' })
59
+ })
60
+ }
61
+
62
+ return data.sort((a, b) => (a.date > b.date ? 1 : -1))
63
+ },
64
+
65
+ async weeklyBunchesCount(_: any, { targetDate }, context: any) {
66
+ if (!targetDate || targetDate == '') targetDate = new Date()
67
+
68
+ let bunchesCount = []
69
+
70
+ for (let i = 0; i < 7; i++) {
71
+ bunchesCount.push({
72
+ date: new Date(targetDate).toLocaleString('default', { day: '2-digit', month: 'short' }),
73
+ harvestedCount: Math.floor(Math.random() * 1000) + 500,
74
+ collectedCount: Math.floor(Math.random() * 500) + 50
75
+ })
76
+ targetDate.setDate(targetDate.getDate() - 1)
77
+ }
78
+
79
+ return bunchesCount.reverse()
80
+ },
81
+
82
+ async tonnageAndBunchesInventories(_: any, { something }, context: any) {
83
+ return {
84
+ bunches: Math.floor(Math.random() * 10000) + 500,
85
+ tonnage: Math.floor(Math.random() * 10000) + 500
86
+ }
87
+ },
88
+
89
+ async productionsOverview(_: any, { something }, context: any) {
90
+ return {
91
+ averageBunchWeight: Math.floor(Math.random() * 150) + 70,
92
+ bunchesCount: Math.floor(Math.random() * 10000) + 500,
93
+ tonnageWeighed: Math.floor(Math.random() * 10000) + 500
94
+ }
95
+ }
96
+ }
@@ -0,0 +1,5 @@
1
+ import { Query } from './dashboard-query'
2
+
3
+ export const DashboardResolver = {
4
+ Query
5
+ }
@@ -1,16 +1,20 @@
1
- export * from './block'
2
1
  export * from './block-detail'
2
+ export * from './block'
3
3
  export * from './daily-block-detail'
4
- export * from './daily-dispatch'
5
4
  export * from './daily-dispatch-detail'
6
- export * from './daily-harvest'
5
+ export * from './daily-dispatch'
7
6
  export * from './daily-harvest-detail'
8
- export * from './daily-loading'
7
+ export * from './daily-harvest'
9
8
  export * from './daily-loading-detail'
10
9
  export * from './daily-loading-ramp'
11
- export * from './organization'
10
+ export * from './daily-loading'
11
+ export * from './dashboard'
12
12
  export * from './organization-staff'
13
+ export * from './organization'
13
14
  export * from './plantation-inventory'
15
+ export * from './plantation-setting'
14
16
  export * from './ramp'
15
- export * from './report'
16
17
  export * from './record-transaction'
18
+ export * from './report'
19
+
20
+ export * from './truck'
@@ -1,5 +1,7 @@
1
- import { buildQuery, ListParam, Domain } from '@things-factory/shell'
2
- import { IsNull, EntityManager } from 'typeorm'
1
+ import { EntityManager, IsNull } from 'typeorm'
2
+
3
+ import { buildQuery, Domain, ListParam } from '@things-factory/shell'
4
+
3
5
  import { OrganizationStaff as OrganizationStaffEntity } from '../../../entities'
4
6
 
5
7
  export const Query = {
@@ -15,7 +17,7 @@ export const Query = {
15
17
  async organizationStaffs(_: any, params: ListParam, context: any) {
16
18
  const { tx }: { tx: EntityManager } = context.state
17
19
 
18
- const queryBuilder = tx.getRepository(OrganizationStaffEntity).createQueryBuilder()
20
+ const queryBuilder = await tx.getRepository(OrganizationStaffEntity).createQueryBuilder()
19
21
  buildQuery(queryBuilder, params, context)
20
22
 
21
23
  queryBuilder
@@ -27,7 +29,14 @@ export const Query = {
27
29
  if (params.filters?.length > 0) queryBuilder.andWhere('OrganizationStaff.deletedAt IS NULL')
28
30
  else queryBuilder.where('OrganizationStaff.deletedAt IS NULL')
29
31
 
30
- const [items, total] = await queryBuilder.getManyAndCount()
32
+ let [items, total] = await queryBuilder.getManyAndCount()
33
+
34
+ items = items.map(item => {
35
+ return {
36
+ ...item,
37
+ organizationName: item.organization?.name
38
+ }
39
+ })
31
40
 
32
41
  return { items, total }
33
42
  }
@@ -0,0 +1,16 @@
1
+ import { getRepository } from 'typeorm'
2
+ import { PlantationSetting } from '../../../entities'
3
+
4
+ export const createPlantationSetting = {
5
+ async createPlantationSetting(_: any, { plantationSetting }, context: any) {
6
+ const { domain, user } = context.state
7
+
8
+ return await getRepository(PlantationSetting).save({
9
+ ...plantationSetting,
10
+ domain,
11
+ creator: user,
12
+ updater: user
13
+ })
14
+ }
15
+ }
16
+
@@ -0,0 +1,13 @@
1
+ import { getRepository } from 'typeorm'
2
+ import { PlantationSetting } from '../../../entities'
3
+
4
+ export const deletePlantationSetting = {
5
+ async deletePlantationSetting(_: any, { name }, context: any) {
6
+ const { domain, user } = context.state
7
+
8
+ await getRepository(PlantationSetting).delete({ domain, name })
9
+
10
+ return true
11
+ }
12
+ }
13
+
@@ -0,0 +1,16 @@
1
+ import { getRepository, In } from 'typeorm'
2
+ import { PlantationSetting } from '../../../entities'
3
+
4
+ export const deletePlantationSettings = {
5
+ async deletePlantationSettings(_: any, { names }, context: any) {
6
+ const { domain, user } = context.state
7
+
8
+ await getRepository(PlantationSetting).delete({
9
+ domain,
10
+ name: In(names)
11
+ })
12
+
13
+ return true
14
+ }
15
+ }
16
+
@@ -0,0 +1,19 @@
1
+ import { Query, PlantationSetting } from './plantation-setting-query'
2
+
3
+ import { updatePlantationSetting } from './update-plantation-setting'
4
+ import { updateMultiplePlantationSetting } from './update-multiple-plantation-setting'
5
+ import { createPlantationSetting } from './create-plantation-setting'
6
+ import { deletePlantationSetting } from './delete-plantation-setting'
7
+ import { deletePlantationSettings } from './delete-plantation-settings'
8
+
9
+ export const PlantationSettingResolver = {
10
+ PlantationSetting,
11
+ Query,
12
+ Mutation: {
13
+ ...updatePlantationSetting,
14
+ ...updateMultiplePlantationSetting,
15
+ ...createPlantationSetting,
16
+ ...deletePlantationSetting,
17
+ ...deletePlantationSettings
18
+ }
19
+ }
@@ -0,0 +1,38 @@
1
+ import { getRepository } from 'typeorm'
2
+ import { Domain, ListParam, convertListParams } from '@things-factory/shell'
3
+ import { User } from '@things-factory/auth-base'
4
+ import { PlantationSetting as PlantationSettingEntity } from '../../../entities'
5
+
6
+ export const Query = {
7
+ async plantationSetting(_: any, { name }, context: any) {
8
+ const { domain, user } = context.state
9
+ const repository = getRepository(PlantationSettingEntity)
10
+
11
+ return await repository.findOne({
12
+ where: { domain, name }
13
+ })
14
+ },
15
+
16
+ async plantationSettings(_: any, params: ListParam, context: any) {
17
+ const convertedParams = convertListParams(params)
18
+ const [items, total] = await getRepository(PlantationSettingEntity).findAndCount({
19
+ ...convertedParams
20
+ })
21
+
22
+ return { items, total }
23
+ }
24
+ }
25
+
26
+ export const PlantationSetting = {
27
+ async domain(plantationSetting) {
28
+ return await getRepository(Domain).findOne(plantationSetting.domainId)
29
+ },
30
+
31
+ async creator(plantationSetting) {
32
+ return await getRepository(User).findOne(plantationSetting.creatorId)
33
+ },
34
+
35
+ async updater(plantationSetting) {
36
+ return await getRepository(User).findOne(plantationSetting.updaterId)
37
+ }
38
+ }
@@ -0,0 +1,46 @@
1
+ import { getRepository } from 'typeorm'
2
+ import { PlantationSetting } from '../../../entities'
3
+
4
+ export const updateMultiplePlantationSetting = {
5
+ async updateMultiplePlantationSetting(_: any, { patches }, context: any) {
6
+ const { domain, user } = context.state
7
+
8
+ let results = []
9
+ const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
10
+ const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
11
+ const plantationSettingRepo = getRepository(PlantationSetting)
12
+
13
+ if (_createRecords.length > 0) {
14
+ for (let i = 0; i < _createRecords.length; i++) {
15
+ const newRecord = _createRecords[i]
16
+
17
+ const result = await plantationSettingRepo.save({
18
+ ...newRecord,
19
+ domain: domain,
20
+ creator: user,
21
+ updater: user,
22
+ })
23
+
24
+ results.push({ ...result, cuFlag: '+' })
25
+ }
26
+ }
27
+
28
+ if (_updateRecords.length > 0) {
29
+ for (let i = 0; i < _updateRecords.length; i++) {
30
+ const newRecord = _updateRecords[i]
31
+ const plantationSetting = await plantationSettingRepo.findOne({ domain, id: newRecord.id})
32
+
33
+ const result = await plantationSettingRepo.save({
34
+ ...plantationSetting,
35
+ ...newRecord,
36
+ updater: user
37
+ })
38
+
39
+ results.push({ ...result, cuFlag: 'M' })
40
+ }
41
+ }
42
+
43
+ return results
44
+ }
45
+ }
46
+
@@ -0,0 +1,19 @@
1
+ import { getRepository } from 'typeorm'
2
+ import { PlantationSetting } from '../../../entities'
3
+
4
+ export const updatePlantationSetting = {
5
+ async updatePlantationSetting(_: any, { name, patch }, context: any) {
6
+ const { domain, user } = context.state
7
+
8
+ const repository = getRepository(PlantationSetting)
9
+ const plantationSetting = await repository.findOne({
10
+ where: { domain, name }
11
+ })
12
+
13
+ return await repository.save({
14
+ ...plantationSetting,
15
+ ...patch,
16
+ updater: user
17
+ })
18
+ }
19
+ }