@things-factory/operato-pms 6.2.102 → 6.2.103

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 (456) hide show
  1. package/dist-server/constants/block.js +8 -0
  2. package/dist-server/constants/block.js.map +1 -0
  3. package/dist-server/constants/index.js +12 -0
  4. package/dist-server/constants/index.js.map +1 -0
  5. package/dist-server/constants/inventory.js +12 -0
  6. package/dist-server/constants/inventory.js.map +1 -0
  7. package/dist-server/constants/master.js +12 -0
  8. package/dist-server/constants/master.js.map +1 -0
  9. package/dist-server/constants/organization.js +9 -0
  10. package/dist-server/constants/organization.js.map +1 -0
  11. package/dist-server/constants/ramp.js +12 -0
  12. package/dist-server/constants/ramp.js.map +1 -0
  13. package/dist-server/constants/record.js +8 -0
  14. package/dist-server/constants/record.js.map +1 -0
  15. package/dist-server/constants/template.js +7 -0
  16. package/dist-server/constants/template.js.map +1 -0
  17. package/dist-server/constants/transaction.js +13 -0
  18. package/dist-server/constants/transaction.js.map +1 -0
  19. package/dist-server/controllers/index.js +5 -0
  20. package/dist-server/controllers/index.js.map +1 -0
  21. package/dist-server/controllers/render-dispatchment.js +51 -0
  22. package/dist-server/controllers/render-dispatchment.js.map +1 -0
  23. package/dist-server/entities/block-detail.js +82 -0
  24. package/dist-server/entities/block-detail.js.map +1 -0
  25. package/dist-server/entities/block.js +70 -0
  26. package/dist-server/entities/block.js.map +1 -0
  27. package/dist-server/entities/daily-block-detail.js +70 -0
  28. package/dist-server/entities/daily-block-detail.js.map +1 -0
  29. package/dist-server/entities/daily-dispatch-detail.js +84 -0
  30. package/dist-server/entities/daily-dispatch-detail.js.map +1 -0
  31. package/dist-server/entities/daily-dispatch.js +108 -0
  32. package/dist-server/entities/daily-dispatch.js.map +1 -0
  33. package/dist-server/entities/daily-harvest-detail.js +72 -0
  34. package/dist-server/entities/daily-harvest-detail.js.map +1 -0
  35. package/dist-server/entities/daily-harvest.js +108 -0
  36. package/dist-server/entities/daily-harvest.js.map +1 -0
  37. package/dist-server/entities/daily-loading-detail.js +86 -0
  38. package/dist-server/entities/daily-loading-detail.js.map +1 -0
  39. package/dist-server/entities/daily-loading-ramp.js +70 -0
  40. package/dist-server/entities/daily-loading-ramp.js.map +1 -0
  41. package/dist-server/entities/daily-loading.js +82 -0
  42. package/dist-server/entities/daily-loading.js.map +1 -0
  43. package/dist-server/entities/index.js +57 -0
  44. package/dist-server/entities/index.js.map +1 -0
  45. package/dist-server/entities/organization-staff.js +76 -0
  46. package/dist-server/entities/organization-staff.js.map +1 -0
  47. package/dist-server/entities/organization.js +61 -0
  48. package/dist-server/entities/organization.js.map +1 -0
  49. package/dist-server/entities/plantation-inventory.js +72 -0
  50. package/dist-server/entities/plantation-inventory.js.map +1 -0
  51. package/dist-server/entities/plantation-setting.js +67 -0
  52. package/dist-server/entities/plantation-setting.js.map +1 -0
  53. package/dist-server/entities/ramp.js +66 -0
  54. package/dist-server/entities/ramp.js.map +1 -0
  55. package/dist-server/entities/record-transaction.js +99 -0
  56. package/dist-server/entities/record-transaction.js.map +1 -0
  57. package/dist-server/entities/truck.js +68 -0
  58. package/dist-server/entities/truck.js.map +1 -0
  59. package/dist-server/graphql/index.js +12 -0
  60. package/dist-server/graphql/index.js.map +1 -0
  61. package/dist-server/graphql/resolvers/block/block-query.js +33 -0
  62. package/dist-server/graphql/resolvers/block/block-query.js.map +1 -0
  63. package/dist-server/graphql/resolvers/block/delete-blocks.js +32 -0
  64. package/dist-server/graphql/resolvers/block/delete-blocks.js.map +1 -0
  65. package/dist-server/graphql/resolvers/block/index.js +11 -0
  66. package/dist-server/graphql/resolvers/block/index.js.map +1 -0
  67. package/dist-server/graphql/resolvers/block/update-multiple-block.js +47 -0
  68. package/dist-server/graphql/resolvers/block/update-multiple-block.js.map +1 -0
  69. package/dist-server/graphql/resolvers/block-detail/block-detail-query.js +45 -0
  70. package/dist-server/graphql/resolvers/block-detail/block-detail-query.js.map +1 -0
  71. package/dist-server/graphql/resolvers/block-detail/delete-block-details.js +18 -0
  72. package/dist-server/graphql/resolvers/block-detail/delete-block-details.js.map +1 -0
  73. package/dist-server/graphql/resolvers/block-detail/index.js +12 -0
  74. package/dist-server/graphql/resolvers/block-detail/index.js.map +1 -0
  75. package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js +39 -0
  76. package/dist-server/graphql/resolvers/block-detail/update-multiple-block-detail.js.map +1 -0
  77. package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js +11 -0
  78. package/dist-server/graphql/resolvers/daily-block-detail/create-daily-block-detail.js.map +1 -0
  79. package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js +33 -0
  80. package/dist-server/graphql/resolvers/daily-block-detail/daily-block-detail-query.js.map +1 -0
  81. package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-detail.js +12 -0
  82. package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-detail.js.map +1 -0
  83. package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-details.js +16 -0
  84. package/dist-server/graphql/resolvers/daily-block-detail/delete-daily-block-details.js.map +1 -0
  85. package/dist-server/graphql/resolvers/daily-block-detail/index.js +14 -0
  86. package/dist-server/graphql/resolvers/daily-block-detail/index.js.map +1 -0
  87. package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js +14 -0
  88. package/dist-server/graphql/resolvers/daily-block-detail/update-daily-block-detail.js.map +1 -0
  89. package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js +30 -0
  90. package/dist-server/graphql/resolvers/daily-block-detail/update-multiple-daily-block-detail.js.map +1 -0
  91. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js +45 -0
  92. package/dist-server/graphql/resolvers/daily-dispatch/daily-dispatch-query.js.map +1 -0
  93. package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.js +26 -0
  94. package/dist-server/graphql/resolvers/daily-dispatch/delete-daily-dispatch.js.map +1 -0
  95. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js +75 -0
  96. package/dist-server/graphql/resolvers/daily-dispatch/generate-daily-dispatch.js.map +1 -0
  97. package/dist-server/graphql/resolvers/daily-dispatch/index.js +12 -0
  98. package/dist-server/graphql/resolvers/daily-dispatch/index.js.map +1 -0
  99. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js +23 -0
  100. package/dist-server/graphql/resolvers/daily-dispatch/update-daily-dispatch.js.map +1 -0
  101. package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js +34 -0
  102. package/dist-server/graphql/resolvers/daily-dispatch-detail/daily-dispatch-detail-query.js.map +1 -0
  103. package/dist-server/graphql/resolvers/daily-dispatch-detail/index.js +9 -0
  104. package/dist-server/graphql/resolvers/daily-dispatch-detail/index.js.map +1 -0
  105. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js +44 -0
  106. package/dist-server/graphql/resolvers/daily-harvest/daily-harvest-query.js.map +1 -0
  107. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js +40 -0
  108. package/dist-server/graphql/resolvers/daily-harvest/delete-daily-harvest.js.map +1 -0
  109. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js +102 -0
  110. package/dist-server/graphql/resolvers/daily-harvest/generate-daily-harvest.js.map +1 -0
  111. package/dist-server/graphql/resolvers/daily-harvest/index.js +12 -0
  112. package/dist-server/graphql/resolvers/daily-harvest/index.js.map +1 -0
  113. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js +98 -0
  114. package/dist-server/graphql/resolvers/daily-harvest/update-daily-harvest.js.map +1 -0
  115. package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js +32 -0
  116. package/dist-server/graphql/resolvers/daily-harvest-detail/daily-harvest-detail-query.js.map +1 -0
  117. package/dist-server/graphql/resolvers/daily-harvest-detail/index.js +9 -0
  118. package/dist-server/graphql/resolvers/daily-harvest-detail/index.js.map +1 -0
  119. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js +40 -0
  120. package/dist-server/graphql/resolvers/daily-loading/daily-loading-query.js.map +1 -0
  121. package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js +30 -0
  122. package/dist-server/graphql/resolvers/daily-loading/delete-daily-loading.js.map +1 -0
  123. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js +77 -0
  124. package/dist-server/graphql/resolvers/daily-loading/generate-daily-loading.js.map +1 -0
  125. package/dist-server/graphql/resolvers/daily-loading/index.js +12 -0
  126. package/dist-server/graphql/resolvers/daily-loading/index.js.map +1 -0
  127. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js +92 -0
  128. package/dist-server/graphql/resolvers/daily-loading/update-daily-loading.js.map +1 -0
  129. package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js +32 -0
  130. package/dist-server/graphql/resolvers/daily-loading-detail/daily-loading-detail-query.js.map +1 -0
  131. package/dist-server/graphql/resolvers/daily-loading-detail/index.js +9 -0
  132. package/dist-server/graphql/resolvers/daily-loading-detail/index.js.map +1 -0
  133. package/dist-server/graphql/resolvers/daily-loading-ramp/daily-loading-ramp-query.js +29 -0
  134. package/dist-server/graphql/resolvers/daily-loading-ramp/daily-loading-ramp-query.js.map +1 -0
  135. package/dist-server/graphql/resolvers/daily-loading-ramp/delete-daily-loading-ramp.js +12 -0
  136. package/dist-server/graphql/resolvers/daily-loading-ramp/delete-daily-loading-ramp.js.map +1 -0
  137. package/dist-server/graphql/resolvers/daily-loading-ramp/index.js +11 -0
  138. package/dist-server/graphql/resolvers/daily-loading-ramp/index.js.map +1 -0
  139. package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js +15 -0
  140. package/dist-server/graphql/resolvers/daily-loading-ramp/update-daily-loading-ramp.js.map +1 -0
  141. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js +198 -0
  142. package/dist-server/graphql/resolvers/dashboard/dashboard-query.js.map +1 -0
  143. package/dist-server/graphql/resolvers/dashboard/index.js +8 -0
  144. package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -0
  145. package/dist-server/graphql/resolvers/index.js +23 -0
  146. package/dist-server/graphql/resolvers/index.js.map +1 -0
  147. package/dist-server/graphql/resolvers/organization/delete-organizations.js +32 -0
  148. package/dist-server/graphql/resolvers/organization/delete-organizations.js.map +1 -0
  149. package/dist-server/graphql/resolvers/organization/index.js +11 -0
  150. package/dist-server/graphql/resolvers/organization/index.js.map +1 -0
  151. package/dist-server/graphql/resolvers/organization/organization-query.js +32 -0
  152. package/dist-server/graphql/resolvers/organization/organization-query.js.map +1 -0
  153. package/dist-server/graphql/resolvers/organization/update-multiple-organization.js +33 -0
  154. package/dist-server/graphql/resolvers/organization/update-multiple-organization.js.map +1 -0
  155. package/dist-server/graphql/resolvers/organization-staff/delete-organization-staffs.js +18 -0
  156. package/dist-server/graphql/resolvers/organization-staff/delete-organization-staffs.js.map +1 -0
  157. package/dist-server/graphql/resolvers/organization-staff/index.js +11 -0
  158. package/dist-server/graphql/resolvers/organization-staff/index.js.map +1 -0
  159. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js +37 -0
  160. package/dist-server/graphql/resolvers/organization-staff/organization-staff-query.js.map +1 -0
  161. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js +44 -0
  162. package/dist-server/graphql/resolvers/organization-staff/update-multiple-organization-staff.js.map +1 -0
  163. package/dist-server/graphql/resolvers/plantation-inventory/index.js +9 -0
  164. package/dist-server/graphql/resolvers/plantation-inventory/index.js.map +1 -0
  165. package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js +35 -0
  166. package/dist-server/graphql/resolvers/plantation-inventory/plantation-inventory-query.js.map +1 -0
  167. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js +12 -0
  168. package/dist-server/graphql/resolvers/plantation-setting/create-plantation-setting.js.map +1 -0
  169. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js +13 -0
  170. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-setting.js.map +1 -0
  171. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js +17 -0
  172. package/dist-server/graphql/resolvers/plantation-setting/delete-plantation-settings.js.map +1 -0
  173. package/dist-server/graphql/resolvers/plantation-setting/index.js +15 -0
  174. package/dist-server/graphql/resolvers/plantation-setting/index.js.map +1 -0
  175. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js +32 -0
  176. package/dist-server/graphql/resolvers/plantation-setting/plantation-setting-query.js.map +1 -0
  177. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js +31 -0
  178. package/dist-server/graphql/resolvers/plantation-setting/update-multiple-plantation-setting.js.map +1 -0
  179. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js +16 -0
  180. package/dist-server/graphql/resolvers/plantation-setting/update-plantation-setting.js.map +1 -0
  181. package/dist-server/graphql/resolvers/ramp/delete-ramps.js +23 -0
  182. package/dist-server/graphql/resolvers/ramp/delete-ramps.js.map +1 -0
  183. package/dist-server/graphql/resolvers/ramp/index.js +11 -0
  184. package/dist-server/graphql/resolvers/ramp/index.js.map +1 -0
  185. package/dist-server/graphql/resolvers/ramp/ramp-query.js +32 -0
  186. package/dist-server/graphql/resolvers/ramp/ramp-query.js.map +1 -0
  187. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js +45 -0
  188. package/dist-server/graphql/resolvers/ramp/update-multiple-ramp.js.map +1 -0
  189. package/dist-server/graphql/resolvers/record-transaction/index.js +9 -0
  190. package/dist-server/graphql/resolvers/record-transaction/index.js.map +1 -0
  191. package/dist-server/graphql/resolvers/record-transaction/record-transaction-query.js +30 -0
  192. package/dist-server/graphql/resolvers/record-transaction/record-transaction-query.js.map +1 -0
  193. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js +119 -0
  194. package/dist-server/graphql/resolvers/report/daily-ffb-dispatch-production-reports.js.map +1 -0
  195. package/dist-server/graphql/resolvers/report/daily-production-reports.js +146 -0
  196. package/dist-server/graphql/resolvers/report/daily-production-reports.js.map +1 -0
  197. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js +70 -0
  198. package/dist-server/graphql/resolvers/report/daily-staff-harvest-reports.js.map +1 -0
  199. package/dist-server/graphql/resolvers/report/index.js +16 -0
  200. package/dist-server/graphql/resolvers/report/index.js.map +1 -0
  201. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js +94 -0
  202. package/dist-server/graphql/resolvers/report/monthly-block-dispatch-reports.js.map +1 -0
  203. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js +94 -0
  204. package/dist-server/graphql/resolvers/report/monthly-dispatch-summary-reports.js.map +1 -0
  205. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js +92 -0
  206. package/dist-server/graphql/resolvers/report/monthly-ffb-sale-reports.js.map +1 -0
  207. package/dist-server/graphql/resolvers/report/monthly-production-reports.js +105 -0
  208. package/dist-server/graphql/resolvers/report/monthly-production-reports.js.map +1 -0
  209. package/dist-server/graphql/resolvers/report/yearly-production-reports.js +92 -0
  210. package/dist-server/graphql/resolvers/report/yearly-production-reports.js.map +1 -0
  211. package/dist-server/graphql/resolvers/truck/delete-trucks.js +18 -0
  212. package/dist-server/graphql/resolvers/truck/delete-trucks.js.map +1 -0
  213. package/dist-server/graphql/resolvers/truck/index.js +12 -0
  214. package/dist-server/graphql/resolvers/truck/index.js.map +1 -0
  215. package/dist-server/graphql/resolvers/truck/truck-query.js +45 -0
  216. package/dist-server/graphql/resolvers/truck/truck-query.js.map +1 -0
  217. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js +40 -0
  218. package/dist-server/graphql/resolvers/truck/update-multiple-truck.js.map +1 -0
  219. package/dist-server/graphql/types/block/block-list.js +12 -0
  220. package/dist-server/graphql/types/block/block-list.js.map +1 -0
  221. package/dist-server/graphql/types/block/block-patch.js +17 -0
  222. package/dist-server/graphql/types/block/block-patch.js.map +1 -0
  223. package/dist-server/graphql/types/block/block.js +22 -0
  224. package/dist-server/graphql/types/block/block.js.map +1 -0
  225. package/dist-server/graphql/types/block/index.js +21 -0
  226. package/dist-server/graphql/types/block/index.js.map +1 -0
  227. package/dist-server/graphql/types/block/new-block.js +12 -0
  228. package/dist-server/graphql/types/block/new-block.js.map +1 -0
  229. package/dist-server/graphql/types/block-detail/block-detail-list.js +12 -0
  230. package/dist-server/graphql/types/block-detail/block-detail-list.js.map +1 -0
  231. package/dist-server/graphql/types/block-detail/block-detail-patch.js +20 -0
  232. package/dist-server/graphql/types/block-detail/block-detail-patch.js.map +1 -0
  233. package/dist-server/graphql/types/block-detail/block-detail.js +25 -0
  234. package/dist-server/graphql/types/block-detail/block-detail.js.map +1 -0
  235. package/dist-server/graphql/types/block-detail/index.js +21 -0
  236. package/dist-server/graphql/types/block-detail/index.js.map +1 -0
  237. package/dist-server/graphql/types/block-detail/new-block-detail.js +17 -0
  238. package/dist-server/graphql/types/block-detail/new-block-detail.js.map +1 -0
  239. package/dist-server/graphql/types/daily-block-detail/daily-block-detail-list.js +12 -0
  240. package/dist-server/graphql/types/daily-block-detail/daily-block-detail-list.js.map +1 -0
  241. package/dist-server/graphql/types/daily-block-detail/daily-block-detail-patch.js +14 -0
  242. package/dist-server/graphql/types/daily-block-detail/daily-block-detail-patch.js.map +1 -0
  243. package/dist-server/graphql/types/daily-block-detail/daily-block-detail.js +22 -0
  244. package/dist-server/graphql/types/daily-block-detail/daily-block-detail.js.map +1 -0
  245. package/dist-server/graphql/types/daily-block-detail/index.js +24 -0
  246. package/dist-server/graphql/types/daily-block-detail/index.js.map +1 -0
  247. package/dist-server/graphql/types/daily-block-detail/new-daily-block-detail.js +12 -0
  248. package/dist-server/graphql/types/daily-block-detail/new-daily-block-detail.js.map +1 -0
  249. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-list.js +12 -0
  250. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-list.js.map +1 -0
  251. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js +26 -0
  252. package/dist-server/graphql/types/daily-dispatch/daily-dispatch-patch.js.map +1 -0
  253. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js +31 -0
  254. package/dist-server/graphql/types/daily-dispatch/daily-dispatch.js.map +1 -0
  255. package/dist-server/graphql/types/daily-dispatch/index.js +27 -0
  256. package/dist-server/graphql/types/daily-dispatch/index.js.map +1 -0
  257. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js +24 -0
  258. package/dist-server/graphql/types/daily-dispatch/new-daily-dispatch.js.map +1 -0
  259. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-list.js +12 -0
  260. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-list.js.map +1 -0
  261. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-patch.js +20 -0
  262. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail-patch.js.map +1 -0
  263. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail.js +25 -0
  264. package/dist-server/graphql/types/daily-dispatch-detail/daily-dispatch-detail.js.map +1 -0
  265. package/dist-server/graphql/types/daily-dispatch-detail/index.js +17 -0
  266. package/dist-server/graphql/types/daily-dispatch-detail/index.js.map +1 -0
  267. package/dist-server/graphql/types/daily-dispatch-detail/new-daily-dispatch-detail.js +16 -0
  268. package/dist-server/graphql/types/daily-dispatch-detail/new-daily-dispatch-detail.js.map +1 -0
  269. package/dist-server/graphql/types/daily-harvest/daily-harvest-list.js +12 -0
  270. package/dist-server/graphql/types/daily-harvest/daily-harvest-list.js.map +1 -0
  271. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js +21 -0
  272. package/dist-server/graphql/types/daily-harvest/daily-harvest-patch.js.map +1 -0
  273. package/dist-server/graphql/types/daily-harvest/daily-harvest.js +31 -0
  274. package/dist-server/graphql/types/daily-harvest/daily-harvest.js.map +1 -0
  275. package/dist-server/graphql/types/daily-harvest/index.js +22 -0
  276. package/dist-server/graphql/types/daily-harvest/index.js.map +1 -0
  277. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js +19 -0
  278. package/dist-server/graphql/types/daily-harvest/new-daily-harvest.js.map +1 -0
  279. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-list.js +12 -0
  280. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-list.js.map +1 -0
  281. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js +15 -0
  282. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail-patch.js.map +1 -0
  283. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js +24 -0
  284. package/dist-server/graphql/types/daily-harvest-detail/daily-harvest-detail.js.map +1 -0
  285. package/dist-server/graphql/types/daily-harvest-detail/index.js +17 -0
  286. package/dist-server/graphql/types/daily-harvest-detail/index.js.map +1 -0
  287. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js +14 -0
  288. package/dist-server/graphql/types/daily-harvest-detail/new-daily-harvest-detail.js.map +1 -0
  289. package/dist-server/graphql/types/daily-loading/daily-loading-list.js +12 -0
  290. package/dist-server/graphql/types/daily-loading/daily-loading-list.js.map +1 -0
  291. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js +12 -0
  292. package/dist-server/graphql/types/daily-loading/daily-loading-patch.js.map +1 -0
  293. package/dist-server/graphql/types/daily-loading/daily-loading.js +25 -0
  294. package/dist-server/graphql/types/daily-loading/daily-loading.js.map +1 -0
  295. package/dist-server/graphql/types/daily-loading/index.js +22 -0
  296. package/dist-server/graphql/types/daily-loading/index.js.map +1 -0
  297. package/dist-server/graphql/types/daily-loading/new-daily-loading.js +12 -0
  298. package/dist-server/graphql/types/daily-loading/new-daily-loading.js.map +1 -0
  299. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-list.js +12 -0
  300. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-list.js.map +1 -0
  301. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js +18 -0
  302. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail-patch.js.map +1 -0
  303. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js +27 -0
  304. package/dist-server/graphql/types/daily-loading-detail/daily-loading-detail.js.map +1 -0
  305. package/dist-server/graphql/types/daily-loading-detail/index.js +17 -0
  306. package/dist-server/graphql/types/daily-loading-detail/index.js.map +1 -0
  307. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js +17 -0
  308. package/dist-server/graphql/types/daily-loading-detail/new-daily-loading-detail.js.map +1 -0
  309. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-list.js +12 -0
  310. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-list.js.map +1 -0
  311. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-patch.js +17 -0
  312. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp-patch.js.map +1 -0
  313. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp.js +21 -0
  314. package/dist-server/graphql/types/daily-loading-ramp/daily-loading-ramp.js.map +1 -0
  315. package/dist-server/graphql/types/daily-loading-ramp/index.js +21 -0
  316. package/dist-server/graphql/types/daily-loading-ramp/index.js.map +1 -0
  317. package/dist-server/graphql/types/daily-loading-ramp/new-daily-loading-ramp.js +15 -0
  318. package/dist-server/graphql/types/daily-loading-ramp/new-daily-loading-ramp.js.map +1 -0
  319. package/dist-server/graphql/types/dashboard/bunches-count.js +13 -0
  320. package/dist-server/graphql/types/dashboard/bunches-count.js.map +1 -0
  321. package/dist-server/graphql/types/dashboard/index.js +20 -0
  322. package/dist-server/graphql/types/dashboard/index.js.map +1 -0
  323. package/dist-server/graphql/types/dashboard/productions-overview.js +13 -0
  324. package/dist-server/graphql/types/dashboard/productions-overview.js.map +1 -0
  325. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js +12 -0
  326. package/dist-server/graphql/types/dashboard/tonnage-bunches-inventories.js.map +1 -0
  327. package/dist-server/graphql/types/dashboard/tonnage-production.js +15 -0
  328. package/dist-server/graphql/types/dashboard/tonnage-production.js.map +1 -0
  329. package/dist-server/graphql/types/dashboard/yield-production.js +15 -0
  330. package/dist-server/graphql/types/dashboard/yield-production.js.map +1 -0
  331. package/dist-server/graphql/types/index.js +23 -0
  332. package/dist-server/graphql/types/index.js.map +1 -0
  333. package/dist-server/graphql/types/organization/index.js +21 -0
  334. package/dist-server/graphql/types/organization/index.js.map +1 -0
  335. package/dist-server/graphql/types/organization/new-organization.js +13 -0
  336. package/dist-server/graphql/types/organization/new-organization.js.map +1 -0
  337. package/dist-server/graphql/types/organization/organization-list.js +12 -0
  338. package/dist-server/graphql/types/organization/organization-list.js.map +1 -0
  339. package/dist-server/graphql/types/organization/organization-patch.js +15 -0
  340. package/dist-server/graphql/types/organization/organization-patch.js.map +1 -0
  341. package/dist-server/graphql/types/organization/organization.js +20 -0
  342. package/dist-server/graphql/types/organization/organization.js.map +1 -0
  343. package/dist-server/graphql/types/organization-staff/index.js +22 -0
  344. package/dist-server/graphql/types/organization-staff/index.js.map +1 -0
  345. package/dist-server/graphql/types/organization-staff/new-organization-staff.js +12 -0
  346. package/dist-server/graphql/types/organization-staff/new-organization-staff.js.map +1 -0
  347. package/dist-server/graphql/types/organization-staff/organization-staff-list.js +12 -0
  348. package/dist-server/graphql/types/organization-staff/organization-staff-list.js.map +1 -0
  349. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js +19 -0
  350. package/dist-server/graphql/types/organization-staff/organization-staff-patch.js.map +1 -0
  351. package/dist-server/graphql/types/organization-staff/organization-staff.js +25 -0
  352. package/dist-server/graphql/types/organization-staff/organization-staff.js.map +1 -0
  353. package/dist-server/graphql/types/plantation-inventory/index.js +17 -0
  354. package/dist-server/graphql/types/plantation-inventory/index.js.map +1 -0
  355. package/dist-server/graphql/types/plantation-inventory/new-plantation-inventory.js +12 -0
  356. package/dist-server/graphql/types/plantation-inventory/new-plantation-inventory.js.map +1 -0
  357. package/dist-server/graphql/types/plantation-inventory/plantation-inventory-list.js +12 -0
  358. package/dist-server/graphql/types/plantation-inventory/plantation-inventory-list.js.map +1 -0
  359. package/dist-server/graphql/types/plantation-inventory/plantation-inventory-patch.js +14 -0
  360. package/dist-server/graphql/types/plantation-inventory/plantation-inventory-patch.js.map +1 -0
  361. package/dist-server/graphql/types/plantation-inventory/plantation-inventory.js +26 -0
  362. package/dist-server/graphql/types/plantation-inventory/plantation-inventory.js.map +1 -0
  363. package/dist-server/graphql/types/plantation-setting/index.js +24 -0
  364. package/dist-server/graphql/types/plantation-setting/index.js.map +1 -0
  365. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js +14 -0
  366. package/dist-server/graphql/types/plantation-setting/new-plantation-setting.js.map +1 -0
  367. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js +12 -0
  368. package/dist-server/graphql/types/plantation-setting/plantation-setting-list.js.map +1 -0
  369. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js +16 -0
  370. package/dist-server/graphql/types/plantation-setting/plantation-setting-patch.js.map +1 -0
  371. package/dist-server/graphql/types/plantation-setting/plantation-setting.js +20 -0
  372. package/dist-server/graphql/types/plantation-setting/plantation-setting.js.map +1 -0
  373. package/dist-server/graphql/types/ramp/index.js +21 -0
  374. package/dist-server/graphql/types/ramp/index.js.map +1 -0
  375. package/dist-server/graphql/types/ramp/new-ramp.js +12 -0
  376. package/dist-server/graphql/types/ramp/new-ramp.js.map +1 -0
  377. package/dist-server/graphql/types/ramp/ramp-list.js +12 -0
  378. package/dist-server/graphql/types/ramp/ramp-list.js.map +1 -0
  379. package/dist-server/graphql/types/ramp/ramp-patch.js +16 -0
  380. package/dist-server/graphql/types/ramp/ramp-patch.js.map +1 -0
  381. package/dist-server/graphql/types/ramp/ramp.js +21 -0
  382. package/dist-server/graphql/types/ramp/ramp.js.map +1 -0
  383. package/dist-server/graphql/types/record-transaction/index.js +17 -0
  384. package/dist-server/graphql/types/record-transaction/index.js.map +1 -0
  385. package/dist-server/graphql/types/record-transaction/new-record-transaction.js +12 -0
  386. package/dist-server/graphql/types/record-transaction/new-record-transaction.js.map +1 -0
  387. package/dist-server/graphql/types/record-transaction/record-transaction-list.js +12 -0
  388. package/dist-server/graphql/types/record-transaction/record-transaction-list.js.map +1 -0
  389. package/dist-server/graphql/types/record-transaction/record-transaction-patch.js +14 -0
  390. package/dist-server/graphql/types/record-transaction/record-transaction-patch.js.map +1 -0
  391. package/dist-server/graphql/types/record-transaction/record-transaction.js +28 -0
  392. package/dist-server/graphql/types/record-transaction/record-transaction.js.map +1 -0
  393. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js +12 -0
  394. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report-list.js.map +1 -0
  395. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js +13 -0
  396. package/dist-server/graphql/types/report/daily-ffb-dispatch-production-report.js.map +1 -0
  397. package/dist-server/graphql/types/report/daily-production-report-list.js +12 -0
  398. package/dist-server/graphql/types/report/daily-production-report-list.js.map +1 -0
  399. package/dist-server/graphql/types/report/daily-production-report.js +27 -0
  400. package/dist-server/graphql/types/report/daily-production-report.js.map +1 -0
  401. package/dist-server/graphql/types/report/daily-staff-harvest-report-list.js +12 -0
  402. package/dist-server/graphql/types/report/daily-staff-harvest-report-list.js.map +1 -0
  403. package/dist-server/graphql/types/report/daily-staff-harvest-report.js +14 -0
  404. package/dist-server/graphql/types/report/daily-staff-harvest-report.js.map +1 -0
  405. package/dist-server/graphql/types/report/index.js +65 -0
  406. package/dist-server/graphql/types/report/index.js.map +1 -0
  407. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js +12 -0
  408. package/dist-server/graphql/types/report/monthly-block-dispatch-report-list.js.map +1 -0
  409. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js +17 -0
  410. package/dist-server/graphql/types/report/monthly-block-dispatch-report.js.map +1 -0
  411. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js +12 -0
  412. package/dist-server/graphql/types/report/monthly-dispatch-summary-report-list.js.map +1 -0
  413. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js +23 -0
  414. package/dist-server/graphql/types/report/monthly-dispatch-summary-report.js.map +1 -0
  415. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js +12 -0
  416. package/dist-server/graphql/types/report/monthly-ffb-sale-report-list.js.map +1 -0
  417. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js +22 -0
  418. package/dist-server/graphql/types/report/monthly-ffb-sale-report.js.map +1 -0
  419. package/dist-server/graphql/types/report/monthly-production-report-list.js +12 -0
  420. package/dist-server/graphql/types/report/monthly-production-report-list.js.map +1 -0
  421. package/dist-server/graphql/types/report/monthly-production-report.js +29 -0
  422. package/dist-server/graphql/types/report/monthly-production-report.js.map +1 -0
  423. package/dist-server/graphql/types/report/yearly-production-report-list.js +12 -0
  424. package/dist-server/graphql/types/report/yearly-production-report-list.js.map +1 -0
  425. package/dist-server/graphql/types/report/yearly-production-report.js +22 -0
  426. package/dist-server/graphql/types/report/yearly-production-report.js.map +1 -0
  427. package/dist-server/graphql/types/truck/index.js +21 -0
  428. package/dist-server/graphql/types/truck/index.js.map +1 -0
  429. package/dist-server/graphql/types/truck/new-truck.js +12 -0
  430. package/dist-server/graphql/types/truck/new-truck.js.map +1 -0
  431. package/dist-server/graphql/types/truck/truck-list.js +12 -0
  432. package/dist-server/graphql/types/truck/truck-list.js.map +1 -0
  433. package/dist-server/graphql/types/truck/truck-patch.js +15 -0
  434. package/dist-server/graphql/types/truck/truck-patch.js.map +1 -0
  435. package/dist-server/graphql/types/truck/truck.js +20 -0
  436. package/dist-server/graphql/types/truck/truck.js.map +1 -0
  437. package/dist-server/index.js +9 -0
  438. package/dist-server/index.js.map +1 -0
  439. package/dist-server/middlewares/index.js +8 -0
  440. package/dist-server/middlewares/index.js.map +1 -0
  441. package/dist-server/migrations/index.js +12 -0
  442. package/dist-server/migrations/index.js.map +1 -0
  443. package/dist-server/routes.js +9 -0
  444. package/dist-server/routes.js.map +1 -0
  445. package/dist-server/tsconfig.tsbuildinfo +1 -0
  446. package/dist-server/utils/core-values.js +91 -0
  447. package/dist-server/utils/core-values.js.map +1 -0
  448. package/dist-server/utils/datetime-util.js +36 -0
  449. package/dist-server/utils/datetime-util.js.map +1 -0
  450. package/dist-server/utils/index.js +8 -0
  451. package/dist-server/utils/index.js.map +1 -0
  452. package/dist-server/utils/no-generator.js +50 -0
  453. package/dist-server/utils/no-generator.js.map +1 -0
  454. package/dist-server/utils/transaction-util.js +67 -0
  455. package/dist-server/utils/transaction-util.js.map +1 -0
  456. package/package.json +29 -29
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDailyProductionData = exports.Query = void 0;
4
+ // import { buildQuery, ListParam } from '@things-factory/shell'
5
+ exports.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(_, { blockId, yearAndMonth }, context) {
12
+ try {
13
+ const { tx } = context.state;
14
+ const year = parseInt(yearAndMonth.substring(0, 4));
15
+ const month = parseInt(yearAndMonth.substring(4));
16
+ let data = await getDailyProductionData(blockId, year, month, tx);
17
+ let result = [];
18
+ result = data.map(itm => {
19
+ return Object.assign(Object.assign({}, itm), { blockId, tonnage: itm.todayWeightCollected, year: itm.dateDay.getFullYear(), month: itm.dateDay.getMonth(), date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' }) });
20
+ });
21
+ return result;
22
+ }
23
+ catch (ex) { }
24
+ },
25
+ async monthlyYields(_, { blockId, yearAndMonth }, context) {
26
+ try {
27
+ const { tx } = context.state;
28
+ const year = parseInt(yearAndMonth.substring(0, 4));
29
+ const month = parseInt(yearAndMonth.substring(4));
30
+ let data = await getDailyProductionData(blockId, year, month, tx);
31
+ let result = [];
32
+ result = data.map(itm => {
33
+ return Object.assign(Object.assign({}, itm), { blockId, yield: (itm.todayHectareCover != 0 ? itm.todayWeightCollected / itm.todayHectareCover : 0).toFixed(4), year: itm.dateDay.getFullYear(), month: itm.dateDay.getMonth(), date: itm.dateDay.toLocaleString('default', { day: '2-digit', month: 'short' }) });
34
+ });
35
+ return result;
36
+ }
37
+ catch (ex) { }
38
+ },
39
+ async weeklyBunchesCount(_, { targetDate }, context) {
40
+ if (!targetDate || targetDate == '')
41
+ targetDate = new Date();
42
+ let bunchesCount = [];
43
+ for (let i = 0; i < 7; i++) {
44
+ bunchesCount.push({
45
+ date: new Date(targetDate).toLocaleString('default', { day: '2-digit', month: 'short' }),
46
+ harvestedCount: 0,
47
+ collectedCount: 0
48
+ // harvestedCount: Math.floor(Math.random() * 1000) + 500,
49
+ // collectedCount: Math.floor(Math.random() * 500) + 50
50
+ });
51
+ targetDate.setDate(targetDate.getDate() - 1);
52
+ }
53
+ return bunchesCount.reverse();
54
+ },
55
+ async tonnageAndBunchesInventories(_, { something }, context) {
56
+ return {
57
+ bunches: 0,
58
+ tonnage: 0
59
+ // bunches: Math.floor(Math.random() * 10000) + 500,
60
+ // tonnage: Math.floor(Math.random() * 10000) + 500
61
+ };
62
+ },
63
+ async productionsOverview(_, { something }, context) {
64
+ return {
65
+ averageBunchWeight: 0,
66
+ bunchesCount: 0,
67
+ tonnageWeighed: 0
68
+ // averageBunchWeight: Math.floor(Math.random() * 150) + 70,
69
+ // bunchesCount: Math.floor(Math.random() * 10000) + 500,
70
+ // tonnageWeighed: Math.floor(Math.random() * 10000) + 500
71
+ };
72
+ }
73
+ };
74
+ async function getDailyProductionData(blockId, year, month, tx) {
75
+ await tx.query(`
76
+ CREATE TEMP TABLE temp_blocks on commit drop AS (
77
+ WITH RECURSIVE b AS (
78
+ SELECT b.id AS block_id, * FROM blocks b
79
+ WHERE b.deleted_at IS null
80
+ UNION ALL
81
+ SELECT b.id AS block_id, cb.* FROM blocks cb
82
+ INNER JOIN b ON b.id = cb.parent_block_id
83
+ WHERE cb.deleted_at IS null
84
+ )
85
+ SELECT block_id, id, name FROM b
86
+ ${blockId != 'all-blocks' && blockId != '' ? `WHERE block_id = '${blockId}' or id = '${blockId}'` : ``}
87
+ GROUP BY block_id, id, name
88
+ ORDER BY block_id, id, name
89
+ );
90
+ `);
91
+ let fromDate = new Date(year, month - 1, 1);
92
+ let toDate = new Date(year, month, 1);
93
+ toDate.setDate(toDate.getDate() - 1);
94
+ let fromDateString = [fromDate.getFullYear().toString(), String(fromDate.getMonth() + 1).padStart(2, '0'), '01'].join('-');
95
+ let toDateString = [
96
+ toDate.getFullYear().toString(),
97
+ String(toDate.getMonth() + 1).padStart(2, '0'),
98
+ String(toDate.getDate()).padStart(2, '0')
99
+ ].join('-');
100
+ await tx.query(`
101
+ CREATE TEMP TABLE temp_records on commit drop AS (
102
+ select blk.block_id, coalesce(sum(field_bunches),0) AS today_field_bunches,
103
+ round(coalesce(sum(ramp_weight),0)::numeric,4) AS today_ramp_weight,
104
+ sum(case when transaction_type = 'HARVEST' OR transaction_type = 'BUNCHES_ADJUSTMENT' then field_bunches else 0 end) as today_bunch_harvest,
105
+ sum(case when transaction_type = 'LOADING' OR transaction_type = 'LOADING_ADJUSTMENT' then -field_bunches else 0 end) as today_bunch_collected,
106
+ 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,
107
+ round(sum(case when transaction_type = 'DISPATCHMENT' OR transaction_type = 'DISPATCHMENT_ADJUSTMENT' then -ramp_weight else 0 end)::numeric,4) as today_weight_dispatch,
108
+ transaction_date
109
+ from record_transactions t2
110
+ inner join temp_blocks blk on blk.id = t2.block_id
111
+ where transaction_date <= $1
112
+ group by blk.block_id, transaction_date
113
+ )
114
+ `, [toDateString]);
115
+ await tx.query(`
116
+ create temp table temp_daily_production_data on commit drop as (
117
+ select *,
118
+ prev_bunch_bal_in_field + today_bunch_harvest as today_bunch_in_field,
119
+ prev_bunch_bal_in_field + today_bunch_harvest - today_bunch_collected as today_bunch_bal_in_field,
120
+ prev_weight_bal_in_ramp + today_ramp_weight_collected - today_weight_dispatch as today_weight_bal_in_ramp FROM (
121
+ select md.dateDay as date_day,
122
+ coalesce(
123
+ (
124
+ select sum(today_field_bunches) from temp_records t2
125
+ where transaction_date::timestamp < md.dateDay
126
+ )
127
+ , 0) as prev_bunch_bal_in_field,
128
+ coalesce(
129
+ (
130
+ select sum(today_ramp_weight) from temp_records t2
131
+ where transaction_date::timestamp < md.dateDay
132
+ )
133
+ , 0) as prev_weight_bal_in_ramp,
134
+ coalesce(today_bunch_harvest, 0) as today_bunch_harvest,
135
+ coalesce(sum(today_bunch_harvest) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_harvest,
136
+ coalesce(today_bunch_collected, 0) as today_bunch_collected,
137
+ coalesce(sum(today_bunch_collected) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_bunch_collected,
138
+ coalesce(today_ramp_weight_collected, 0) as today_ramp_weight_collected,
139
+ 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,
140
+ coalesce(today_weight_dispatch, 0) as today_weight_dispatch,
141
+ coalesce(sum(today_weight_dispatch) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_weight_dispatch,
142
+ coalesce(tot.today_out_turn, 0) as today_out_turn,
143
+ coalesce(sum(tot.today_out_turn) over (order by dateDay asc rows between unbounded preceding and current row), 0) as to_date_out_turn,
144
+ ${blockId != 'all-blocks' && blockId != '' ? `(select name from blocks b2 WHERE id = '${blockId}')` : `''`} as block,
145
+ coalesce(thr.today_harvesting_round, 0) as today_harvesting_round,
146
+ coalesce(thr.today_hectare_cover, 0) as today_hectare_cover
147
+ from
148
+ (select generate_series((date '${fromDateString}')::timestamp, (date '${toDateString}')::timestamp, interval '1 day')::date as dateDay) as md
149
+ left join (
150
+ select * from temp_records trx
151
+ where transaction_date between $1 and $2
152
+ order by transaction_date
153
+ ) as dt on dt.transaction_date::date = md.dateDay
154
+ LEFT JOIN (
155
+ select sum(harvesting_round) AS today_harvesting_round, sum(coverage) AS today_hectare_cover, harvest_date
156
+ from daily_harvests dh
157
+ inner join temp_blocks blk on blk.id = dh.block_id
158
+ where harvest_date between $1 and $2
159
+ group by blk.block_id, harvest_date
160
+ ) as thr ON thr.harvest_date::date = md.dateDay
161
+ LEFT JOIN (
162
+ select count(*) AS today_out_turn, dh.harvest_date
163
+ from daily_harvest_details dhd
164
+ inner join daily_harvests dh on dh.id = dhd.daily_harvest_id
165
+ inner join temp_blocks blk on blk.id = dh.block_id
166
+ where dh.harvest_date between $1 and $2
167
+ GROUP BY blk.block_id, dh.harvest_date
168
+ ) as tot ON tot.harvest_date::date = md.dateDay
169
+ ) dt
170
+ )`, [fromDateString, toDateString]);
171
+ const result = await tx.query(`
172
+ select * from temp_daily_production_data dt
173
+ `);
174
+ return result.map(itm => {
175
+ return {
176
+ block: itm.block,
177
+ dateDay: itm.date_day,
178
+ diffInBunches: parseFloat(itm.diff_in_bunches).toFixed(1),
179
+ prevBunchBalInField: parseFloat(itm.prev_bunch_bal_in_field).toFixed(1),
180
+ prevWeightBalInRamp: parseFloat(itm.prev_weight_bal_in_ramp).toFixed(4),
181
+ toDateBunchHarvest: parseFloat(itm.to_date_bunch_harvest).toFixed(1),
182
+ toDateOutTurn: itm.to_date_out_turn,
183
+ toDateWeightDispatch: parseFloat(itm.to_date_weight_dispatch).toFixed(4),
184
+ todayBunchBalInField: parseFloat(itm.today_bunch_bal_in_field).toFixed(1),
185
+ todayBunchCollected: parseFloat(itm.today_bunch_collected).toFixed(1),
186
+ todayBunchHarvest: parseFloat(itm.today_bunch_harvest).toFixed(1),
187
+ todayBunchInField: parseFloat(itm.today_bunch_in_field).toFixed(1),
188
+ todayHarvestingRound: itm.today_harvesting_round,
189
+ todayHectareCover: parseFloat(itm.today_hectare_cover).toFixed(4),
190
+ todayOutTurn: itm.today_out_turn,
191
+ todayWeightCollected: parseFloat(itm.today_ramp_weight_collected).toFixed(4),
192
+ todayWeightBalInRamp: parseFloat(itm.today_weight_bal_in_ramp).toFixed(4),
193
+ todayWeightDispatch: parseFloat(itm.today_weight_dispatch).toFixed(4)
194
+ };
195
+ });
196
+ }
197
+ exports.getDailyProductionData = getDailyProductionData;
198
+ //# sourceMappingURL=dashboard-query.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DashboardResolver = void 0;
4
+ const dashboard_query_1 = require("./dashboard-query");
5
+ exports.DashboardResolver = {
6
+ Query: dashboard_query_1.Query
7
+ };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/dashboard/index.ts"],"names":[],"mappings":";;;AAAA,uDAAyC;AAE5B,QAAA,iBAAiB,GAAG;IAC/B,KAAK,EAAL,uBAAK;CACN,CAAA","sourcesContent":["import { Query } from './dashboard-query'\n\nexport const DashboardResolver = {\n Query\n}\n"]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./block-detail"), exports);
5
+ tslib_1.__exportStar(require("./block"), exports);
6
+ tslib_1.__exportStar(require("./daily-block-detail"), exports);
7
+ tslib_1.__exportStar(require("./daily-dispatch-detail"), exports);
8
+ tslib_1.__exportStar(require("./daily-dispatch"), exports);
9
+ tslib_1.__exportStar(require("./daily-harvest-detail"), exports);
10
+ tslib_1.__exportStar(require("./daily-harvest"), exports);
11
+ tslib_1.__exportStar(require("./daily-loading-detail"), exports);
12
+ tslib_1.__exportStar(require("./daily-loading-ramp"), exports);
13
+ tslib_1.__exportStar(require("./daily-loading"), exports);
14
+ tslib_1.__exportStar(require("./dashboard"), exports);
15
+ tslib_1.__exportStar(require("./organization-staff"), exports);
16
+ tslib_1.__exportStar(require("./organization"), exports);
17
+ tslib_1.__exportStar(require("./plantation-inventory"), exports);
18
+ tslib_1.__exportStar(require("./plantation-setting"), exports);
19
+ tslib_1.__exportStar(require("./ramp"), exports);
20
+ tslib_1.__exportStar(require("./record-transaction"), exports);
21
+ tslib_1.__exportStar(require("./report"), exports);
22
+ tslib_1.__exportStar(require("./truck"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/graphql/resolvers/index.ts"],"names":[],"mappings":";;;AAAA,yDAA8B;AAC9B,kDAAuB;AACvB,+DAAoC;AACpC,kEAAuC;AACvC,2DAAgC;AAChC,iEAAsC;AACtC,0DAA+B;AAC/B,iEAAsC;AACtC,+DAAoC;AACpC,0DAA+B;AAC/B,sDAA2B;AAC3B,+DAAoC;AACpC,yDAA8B;AAC9B,iEAAsC;AACtC,+DAAoC;AACpC,iDAAsB;AACtB,+DAAoC;AACpC,mDAAwB;AAExB,kDAAuB","sourcesContent":["export * from './block-detail'\nexport * from './block'\nexport * from './daily-block-detail'\nexport * from './daily-dispatch-detail'\nexport * from './daily-dispatch'\nexport * from './daily-harvest-detail'\nexport * from './daily-harvest'\nexport * from './daily-loading-detail'\nexport * from './daily-loading-ramp'\nexport * from './daily-loading'\nexport * from './dashboard'\nexport * from './organization-staff'\nexport * from './organization'\nexport * from './plantation-inventory'\nexport * from './plantation-setting'\nexport * from './ramp'\nexport * from './record-transaction'\nexport * from './report'\n\nexport * from './truck'\n"]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteOrganizations = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const entities_1 = require("../../../entities");
6
+ exports.deleteOrganizations = {
7
+ async deleteOrganizations(_, { ids }, context) {
8
+ try {
9
+ const { tx, domain } = context.state;
10
+ const organization = await tx.getRepository(entities_1.Organization).find({ where: { id: (0, typeorm_1.In)(ids), deletedAt: (0, typeorm_1.IsNull)() } });
11
+ await tx.getRepository(entities_1.Organization).update({
12
+ domain: { id: domain.id },
13
+ id: (0, typeorm_1.In)(ids)
14
+ }, {
15
+ deletedAt: new Date()
16
+ });
17
+ await Promise.all(organization.map(async (org) => {
18
+ await tx.getRepository(entities_1.OrganizationStaff).update({
19
+ domain: { id: domain.id },
20
+ organization: { id: org.id }
21
+ }, {
22
+ deletedAt: new Date()
23
+ });
24
+ }));
25
+ return true;
26
+ }
27
+ catch (error) {
28
+ throw error;
29
+ }
30
+ }
31
+ };
32
+ //# sourceMappingURL=delete-organizations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-organizations.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/delete-organizations.ts"],"names":[],"mappings":";;;AAAA,qCAAoC;AAEpC,gDAAmE;AAEtD,QAAA,mBAAmB,GAAG;IACjC,KAAK,CAAC,mBAAmB,CAAC,CAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAwB;QACjE,IAAI;YACF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;YAEpC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE,EAAE,CAAC,CAAA;YAE/G,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,MAAM,CACzC;gBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;aACZ,EACD;gBACE,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CACF,CAAA;YAED,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;gBAC3B,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAiB,CAAC,CAAC,MAAM,CAC9C;oBACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;oBACzB,YAAY,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;iBAC7B,EACD;oBACE,SAAS,EAAE,IAAI,IAAI,EAAE;iBACtB,CACF,CAAA;YACH,CAAC,CAAC,CACH,CAAA;YACD,OAAO,IAAI,CAAA;SACZ;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,KAAK,CAAA;SACZ;IACH,CAAC;CACF,CAAA","sourcesContent":["import { In, IsNull } from 'typeorm'\n\nimport { Organization, OrganizationStaff } from '../../../entities'\n\nexport const deleteOrganizations = {\n async deleteOrganizations(_: any, { ids }, context: ResolverContext) {\n try {\n const { tx, domain } = context.state\n\n const organization = await tx.getRepository(Organization).find({ where: { id: In(ids), deletedAt: IsNull() } })\n\n await tx.getRepository(Organization).update(\n {\n domain: { id: domain.id },\n id: In(ids)\n },\n {\n deletedAt: new Date()\n }\n )\n\n await Promise.all(\n organization.map(async org => {\n await tx.getRepository(OrganizationStaff).update(\n {\n domain: { id: domain.id },\n organization: { id: org.id }\n },\n {\n deletedAt: new Date()\n }\n )\n })\n )\n return true\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrganizationResolver = void 0;
4
+ const organization_query_1 = require("./organization-query");
5
+ const update_multiple_organization_1 = require("./update-multiple-organization");
6
+ const delete_organizations_1 = require("./delete-organizations");
7
+ exports.OrganizationResolver = {
8
+ Query: organization_query_1.Query,
9
+ Mutation: Object.assign(Object.assign({}, update_multiple_organization_1.updateMultipleOrganizationResolver), delete_organizations_1.deleteOrganizations)
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/index.ts"],"names":[],"mappings":";;;AAAA,6DAA4C;AAC5C,iFAAmF;AACnF,iEAA4D;AAE/C,QAAA,oBAAoB,GAAG;IAClC,KAAK,EAAL,0BAAK;IACL,QAAQ,kCACH,iEAAkC,GAClC,0CAAmB,CACvB;CACF,CAAA","sourcesContent":["import { Query } from './organization-query'\nimport { updateMultipleOrganizationResolver } from './update-multiple-organization'\nimport { deleteOrganizations } from './delete-organizations'\n\nexport const OrganizationResolver = {\n Query,\n Mutation: {\n ...updateMultipleOrganizationResolver,\n ...deleteOrganizations\n }\n}\n"]}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Query = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const shell_1 = require("@things-factory/shell");
6
+ const entities_1 = require("../../../entities");
7
+ exports.Query = {
8
+ async organization(_, { name }, context) {
9
+ const { tx, domain } = context.state;
10
+ return await tx.getRepository(entities_1.Organization).findOne({
11
+ where: { domain: { id: domain.id }, name, deletedAt: (0, typeorm_1.IsNull)() },
12
+ relations: ['domain', 'creator', 'updater']
13
+ });
14
+ },
15
+ async organizations(_, params, context) {
16
+ var _a;
17
+ const { tx } = context.state;
18
+ const queryBuilder = tx.getRepository(entities_1.Organization).createQueryBuilder();
19
+ (0, shell_1.buildQuery)(queryBuilder, params, context);
20
+ queryBuilder
21
+ .leftJoinAndSelect('Organization.domain', 'Domain')
22
+ .leftJoinAndSelect('Organization.creator', 'Creator')
23
+ .leftJoinAndSelect('Organization.updater', 'Updater');
24
+ if (((_a = params.filters) === null || _a === void 0 ? void 0 : _a.length) > 0)
25
+ queryBuilder.andWhere('Organization.deletedAt IS NULL');
26
+ else
27
+ queryBuilder.where('Organization.deletedAt IS NULL');
28
+ const [items, total] = await queryBuilder.getManyAndCount();
29
+ return { items, total };
30
+ }
31
+ };
32
+ //# sourceMappingURL=organization-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/organization-query.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,iDAA6D;AAE7D,gDAAsE;AAEzD,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,YAAY,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAC3D,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,OAAO,CAAC;YACxD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5C,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;;QACrE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAkB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QAC9E,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,qBAAqB,EAAE,QAAQ,CAAC;aAClD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC;aACpD,iBAAiB,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;QAEvD,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC,CAAA;;YAClF,YAAY,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;QAEzD,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAE3D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { Organization as OrganizationEntity } from '../../../entities'\n\nexport const Query = {\n async organization(_: any, { name }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(OrganizationEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'creator', 'updater']\n })\n },\n\n async organizations(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = tx.getRepository(OrganizationEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('Organization.domain', 'Domain')\n .leftJoinAndSelect('Organization.creator', 'Creator')\n .leftJoinAndSelect('Organization.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('Organization.deletedAt IS NULL')\n else queryBuilder.where('Organization.deletedAt IS NULL')\n\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n}\n"]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateMultipleOrganization = exports.updateMultipleOrganizationResolver = void 0;
4
+ const constants_1 = require("../../../constants");
5
+ const entities_1 = require("../../../entities");
6
+ exports.updateMultipleOrganizationResolver = {
7
+ updateMultipleOrganization
8
+ };
9
+ async function updateMultipleOrganization(_, { patches }, context) {
10
+ const { tx, domain, user } = context.state;
11
+ let results = [];
12
+ const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
13
+ const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
14
+ const organizationRepo = tx.getRepository(entities_1.Organization);
15
+ if (_createRecords.length > 0) {
16
+ for (let i = 0; i < _createRecords.length; i++) {
17
+ const newRecord = _createRecords[i];
18
+ const result = await organizationRepo.save(Object.assign(Object.assign({}, newRecord), { domain, status: constants_1.ORGANIZATION_STATUS.ACTIVE, creator: user, updater: user }));
19
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
20
+ }
21
+ }
22
+ if (_updateRecords.length > 0) {
23
+ for (let i = 0; i < _updateRecords.length; i++) {
24
+ const newRecord = _updateRecords[i];
25
+ const organization = await organizationRepo.findOneBy({ id: newRecord.id });
26
+ const result = await organizationRepo.save(Object.assign(Object.assign(Object.assign({}, organization), newRecord), { updater: user }));
27
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
28
+ }
29
+ }
30
+ return results;
31
+ }
32
+ exports.updateMultipleOrganization = updateMultipleOrganization;
33
+ //# sourceMappingURL=update-multiple-organization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-multiple-organization.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization/update-multiple-organization.ts"],"names":[],"mappings":";;;AAAA,kDAAwD;AACxD,gDAAgD;AAEnC,QAAA,kCAAkC,GAAG;IAChD,0BAA0B;CAC3B,CAAA;AAEM,KAAK,UAAU,0BAA0B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;IAC5F,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,gBAAgB,GAAG,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAA;IAEvD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,iCACrC,SAAS,KACZ,MAAM,EACN,MAAM,EAAE,+BAAmB,CAAC,MAAM,EAClC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;SACzC;KACF;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACnC,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAE3E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,+CACrC,YAAY,GACZ,SAAS,KACZ,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;SACzC;KACF;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAxCD,gEAwCC","sourcesContent":["import { ORGANIZATION_STATUS } from '../../../constants'\nimport { Organization } from '../../../entities'\n\nexport const updateMultipleOrganizationResolver = {\n updateMultipleOrganization\n}\n\nexport async function updateMultipleOrganization(_: any, { patches }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const organizationRepo = tx.getRepository(Organization)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await organizationRepo.save({\n ...newRecord,\n domain,\n status: ORGANIZATION_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const newRecord = _updateRecords[i]\n const organization = await organizationRepo.findOneBy({ id: newRecord.id })\n\n const result = await organizationRepo.save({\n ...organization,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteOrganizationStaffs = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const entities_1 = require("../../../entities");
6
+ exports.deleteOrganizationStaffs = {
7
+ async deleteOrganizationStaffs(_, { ids }, context) {
8
+ const { tx, domain } = context.state;
9
+ await tx.getRepository(entities_1.OrganizationStaff).update({
10
+ domain: { id: domain.id },
11
+ id: (0, typeorm_1.In)(ids)
12
+ }, {
13
+ deletedAt: new Date()
14
+ });
15
+ return true;
16
+ }
17
+ };
18
+ //# sourceMappingURL=delete-organization-staffs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-organization-staffs.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/delete-organization-staffs.ts"],"names":[],"mappings":";;;AAAA,qCAA4B;AAE5B,gDAAqD;AAExC,QAAA,wBAAwB,GAAG;IACtC,KAAK,CAAC,wBAAwB,CAAC,CAAM,EAAE,EAAE,GAAG,EAAE,EAAE,OAAwB;QACtE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QACpC,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAiB,CAAC,CAAC,MAAM,CAC9C;YACE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,EACD;YACE,SAAS,EAAE,IAAI,IAAI,EAAE;SACtB,CACF,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA","sourcesContent":["import { In } from 'typeorm'\n\nimport { OrganizationStaff } from '../../../entities'\n\nexport const deleteOrganizationStaffs = {\n async deleteOrganizationStaffs(_: any, { ids }, context: ResolverContext) {\n const { tx, domain } = context.state\n await tx.getRepository(OrganizationStaff).update(\n {\n domain: { id: domain.id },\n id: In(ids)\n },\n {\n deletedAt: new Date()\n }\n )\n\n return true\n }\n}\n"]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OrganizationStaffResolver = void 0;
4
+ const organization_staff_query_1 = require("./organization-staff-query");
5
+ const update_multiple_organization_staff_1 = require("./update-multiple-organization-staff");
6
+ const delete_organization_staffs_1 = require("./delete-organization-staffs");
7
+ exports.OrganizationStaffResolver = {
8
+ Query: organization_staff_query_1.Query,
9
+ Mutation: Object.assign(Object.assign({}, update_multiple_organization_staff_1.updateMultipleOrganizationStaffResolver), delete_organization_staffs_1.deleteOrganizationStaffs)
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/index.ts"],"names":[],"mappings":";;;AAAA,yEAAkD;AAElD,6FAA8F;AAC9F,6EAAuE;AAE1D,QAAA,yBAAyB,GAAG;IACvC,KAAK,EAAL,gCAAK;IACL,QAAQ,kCACH,4EAAuC,GACvC,qDAAwB,CAC5B;CACF,CAAA","sourcesContent":["import { Query } from './organization-staff-query'\n\nimport { updateMultipleOrganizationStaffResolver } from './update-multiple-organization-staff'\nimport { deleteOrganizationStaffs } from './delete-organization-staffs'\n\nexport const OrganizationStaffResolver = {\n Query,\n Mutation: {\n ...updateMultipleOrganizationStaffResolver,\n ...deleteOrganizationStaffs\n }\n}\n"]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Query = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const shell_1 = require("@things-factory/shell");
6
+ const entities_1 = require("../../../entities");
7
+ exports.Query = {
8
+ async organizationStaff(_, { name }, context) {
9
+ const { tx, domain } = context.state;
10
+ return await tx.getRepository(entities_1.OrganizationStaff).findOne({
11
+ where: { domain: { id: domain.id }, name, deletedAt: (0, typeorm_1.IsNull)() },
12
+ relations: ['domain', 'organization', 'creator', 'updater']
13
+ });
14
+ },
15
+ async organizationStaffs(_, params, context) {
16
+ var _a;
17
+ const { tx } = context.state;
18
+ const queryBuilder = await tx.getRepository(entities_1.OrganizationStaff).createQueryBuilder();
19
+ (0, shell_1.buildQuery)(queryBuilder, params, context);
20
+ queryBuilder
21
+ .leftJoinAndSelect('OrganizationStaff.domain', 'Domain')
22
+ .leftJoinAndSelect('OrganizationStaff.organization', 'Organization')
23
+ .leftJoinAndSelect('OrganizationStaff.creator', 'Creator')
24
+ .leftJoinAndSelect('OrganizationStaff.updater', 'Updater');
25
+ if (((_a = params.filters) === null || _a === void 0 ? void 0 : _a.length) > 0)
26
+ queryBuilder.andWhere('OrganizationStaff.deletedAt IS NULL');
27
+ else
28
+ queryBuilder.where('OrganizationStaff.deletedAt IS NULL');
29
+ let [items, total] = await queryBuilder.getManyAndCount();
30
+ items = items.map(item => {
31
+ var _a;
32
+ return Object.assign(Object.assign({}, item), { organizationName: (_a = item.organization) === null || _a === void 0 ? void 0 : _a.name });
33
+ });
34
+ return { items, total };
35
+ }
36
+ };
37
+ //# sourceMappingURL=organization-staff-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization-staff-query.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/organization-staff-query.ts"],"names":[],"mappings":";;;AAAA,qCAAgC;AAEhC,iDAA6D;AAE7D,gDAAgF;AAEnE,QAAA,KAAK,GAAG;IACnB,KAAK,CAAC,iBAAiB,CAAC,CAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAwB;QAChE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAuB,CAAC,CAAC,OAAO,CAAC;YAC7D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAA,gBAAM,GAAE,EAAE;YAC/D,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC;SAC5D,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAM,EAAE,MAAiB,EAAE,OAAwB;;QAC1E,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE5B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,4BAAuB,CAAC,CAAC,kBAAkB,EAAE,CAAA;QACzF,IAAA,kBAAU,EAAC,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAEzC,YAAY;aACT,iBAAiB,CAAC,0BAA0B,EAAE,QAAQ,CAAC;aACvD,iBAAiB,CAAC,gCAAgC,EAAE,cAAc,CAAC;aACnE,iBAAiB,CAAC,2BAA2B,EAAE,SAAS,CAAC;aACzD,iBAAiB,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAA;QAE5D,IAAI,CAAA,MAAA,MAAM,CAAC,OAAO,0CAAE,MAAM,IAAG,CAAC;YAAE,YAAY,CAAC,QAAQ,CAAC,qCAAqC,CAAC,CAAA;;YACvF,YAAY,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAA;QAE9D,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,YAAY,CAAC,eAAe,EAAE,CAAA;QAEzD,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;;YACvB,uCACK,IAAI,KACP,gBAAgB,EAAE,MAAA,IAAI,CAAC,YAAY,0CAAE,IAAI,IAC1C;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;CACF,CAAA","sourcesContent":["import { IsNull } from 'typeorm'\n\nimport { buildQuery, ListParam } from '@things-factory/shell'\n\nimport { OrganizationStaff as OrganizationStaffEntity } from '../../../entities'\n\nexport const Query = {\n async organizationStaff(_: any, { name }, context: ResolverContext) {\n const { tx, domain } = context.state\n\n return await tx.getRepository(OrganizationStaffEntity).findOne({\n where: { domain: { id: domain.id }, name, deletedAt: IsNull() },\n relations: ['domain', 'organization', 'creator', 'updater']\n })\n },\n\n async organizationStaffs(_: any, params: ListParam, context: ResolverContext) {\n const { tx } = context.state\n\n const queryBuilder = await tx.getRepository(OrganizationStaffEntity).createQueryBuilder()\n buildQuery(queryBuilder, params, context)\n\n queryBuilder\n .leftJoinAndSelect('OrganizationStaff.domain', 'Domain')\n .leftJoinAndSelect('OrganizationStaff.organization', 'Organization')\n .leftJoinAndSelect('OrganizationStaff.creator', 'Creator')\n .leftJoinAndSelect('OrganizationStaff.updater', 'Updater')\n\n if (params.filters?.length > 0) queryBuilder.andWhere('OrganizationStaff.deletedAt IS NULL')\n else queryBuilder.where('OrganizationStaff.deletedAt IS NULL')\n\n let [items, total] = await queryBuilder.getManyAndCount()\n\n items = items.map(item => {\n return {\n ...item,\n organizationName: item.organization?.name\n }\n })\n\n return { items, total }\n }\n}\n"]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateMultipleOrganizationStaff = exports.updateMultipleOrganizationStaffResolver = void 0;
4
+ const constants_1 = require("../../../constants");
5
+ const entities_1 = require("../../../entities");
6
+ exports.updateMultipleOrganizationStaffResolver = {
7
+ updateMultipleOrganizationStaff
8
+ };
9
+ async function updateMultipleOrganizationStaff(_, { patches }, context) {
10
+ var _a, _b, _c;
11
+ const { tx, domain, user } = context.state;
12
+ let results = [];
13
+ const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
14
+ const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
15
+ const organizationStaffRepo = tx.getRepository(entities_1.OrganizationStaff);
16
+ if (_createRecords.length > 0) {
17
+ for (let i = 0; i < _createRecords.length; i++) {
18
+ const newRecord = _createRecords[i];
19
+ const organization = await tx.getRepository(entities_1.Organization).findOneOrFail({
20
+ where: { id: (_a = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _a === void 0 ? void 0 : _a.id }
21
+ });
22
+ const result = await organizationStaffRepo.save(Object.assign(Object.assign({}, newRecord), { organization,
23
+ domain, status: constants_1.ORGANIZATION_STAFF_STATUS.ACTIVE, creator: user, updater: user }));
24
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
25
+ }
26
+ }
27
+ if (_updateRecords.length > 0) {
28
+ for (let i = 0; i < _updateRecords.length; i++) {
29
+ let newRecord = _updateRecords[i];
30
+ const organizationStaff = await organizationStaffRepo.findOneBy({ id: newRecord.id });
31
+ if ((_b = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _b === void 0 ? void 0 : _b.id) {
32
+ const organization = await tx.getRepository(entities_1.Organization).findOneOrFail({
33
+ where: { id: (_c = newRecord === null || newRecord === void 0 ? void 0 : newRecord.organization) === null || _c === void 0 ? void 0 : _c.id }
34
+ });
35
+ newRecord = Object.assign(Object.assign({}, newRecord), { organization });
36
+ }
37
+ const result = await organizationStaffRepo.save(Object.assign(Object.assign(Object.assign({}, organizationStaff), newRecord), { updater: user }));
38
+ results.push(Object.assign(Object.assign({}, result), { cuFlag: 'M' }));
39
+ }
40
+ }
41
+ return results;
42
+ }
43
+ exports.updateMultipleOrganizationStaff = updateMultipleOrganizationStaff;
44
+ //# sourceMappingURL=update-multiple-organization-staff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-multiple-organization-staff.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/organization-staff/update-multiple-organization-staff.ts"],"names":[],"mappings":";;;AAAA,kDAA8D;AAC9D,gDAAmE;AAEtD,QAAA,uCAAuC,GAAG;IACrD,+BAA+B;CAChC,CAAA;AAEM,KAAK,UAAU,+BAA+B,CAAC,CAAM,EAAE,EAAE,OAAO,EAAE,EAAE,OAAwB;;IACjG,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;IACzF,MAAM,qBAAqB,GAAG,EAAE,CAAC,aAAa,CAAC,4BAAiB,CAAC,CAAA;IAEjE,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YAEnC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC;gBACtE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE;aAC3C,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,iCAC1C,SAAS,KACZ,YAAY;gBACZ,MAAM,EACN,MAAM,EAAE,qCAAyB,CAAC,MAAM,EACxC,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;SACzC;KACF;IAED,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAI,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;YAErF,IAAI,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE;gBAC/B,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uBAAY,CAAC,CAAC,aAAa,CAAC;oBACtE,KAAK,EAAE,EAAE,EAAE,EAAE,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,YAAY,0CAAE,EAAE,EAAE;iBAC3C,CAAC,CAAA;gBACF,SAAS,mCAAQ,SAAS,KAAE,YAAY,GAAE,CAAA;aAC3C;YAED,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,IAAI,+CAC1C,iBAAiB,GACjB,SAAS,KACZ,OAAO,EAAE,IAAI,IACb,CAAA;YAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;SACzC;KACF;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AApDD,0EAoDC","sourcesContent":["import { ORGANIZATION_STAFF_STATUS } from '../../../constants'\nimport { Organization, OrganizationStaff } from '../../../entities'\n\nexport const updateMultipleOrganizationStaffResolver = {\n updateMultipleOrganizationStaff\n}\n\nexport async function updateMultipleOrganizationStaff(_: any, { patches }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n\n let results = []\n const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const organizationStaffRepo = tx.getRepository(OrganizationStaff)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const organization = await tx.getRepository(Organization).findOneOrFail({\n where: { id: newRecord?.organization?.id }\n })\n\n const result = await organizationStaffRepo.save({\n ...newRecord,\n organization,\n domain,\n status: ORGANIZATION_STAFF_STATUS.ACTIVE,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n let newRecord = _updateRecords[i]\n const organizationStaff = await organizationStaffRepo.findOneBy({ id: newRecord.id })\n\n if (newRecord?.organization?.id) {\n const organization = await tx.getRepository(Organization).findOneOrFail({\n where: { id: newRecord?.organization?.id }\n })\n newRecord = { ...newRecord, organization }\n }\n\n const result = await organizationStaffRepo.save({\n ...organizationStaff,\n ...newRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n}\n"]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PlantationInventoryResolver = void 0;
4
+ const plantation_inventory_query_1 = require("./plantation-inventory-query");
5
+ exports.PlantationInventoryResolver = {
6
+ Query: plantation_inventory_query_1.Query,
7
+ Mutation: {}
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/plantation-inventory/index.ts"],"names":[],"mappings":";;;AAAA,6EAAoD;AAEvC,QAAA,2BAA2B,GAAG;IACzC,KAAK,EAAL,kCAAK;IACL,QAAQ,EAAE,EAAE;CACb,CAAA","sourcesContent":["import { Query } from './plantation-inventory-query'\n\nexport const PlantationInventoryResolver = {\n Query,\n Mutation: {}\n}\n"]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Query = void 0;
4
+ const shell_1 = require("@things-factory/shell");
5
+ const entities_1 = require("../../../entities");
6
+ exports.Query = {
7
+ async plantationInventory(_, { blockId, type }, context) {
8
+ const { tx, domain } = context.state;
9
+ return await tx.getRepository(entities_1.PlantationInventory).findOne({
10
+ where: {
11
+ domain: { id: domain.id },
12
+ block: { id: (await tx.getRepository(entities_1.Block).findOne({ where: { id: blockId } })).id },
13
+ type
14
+ },
15
+ relations: ['domain', 'block', 'ramp', 'creator', 'updater']
16
+ });
17
+ },
18
+ async plantationInventories(_, params, context) {
19
+ const { tx } = context.state;
20
+ const queryBuilder = tx.getRepository(entities_1.PlantationInventory).createQueryBuilder();
21
+ (0, shell_1.buildQuery)(queryBuilder, params, context);
22
+ let [items, total] = await queryBuilder
23
+ .leftJoinAndSelect('PlantationInventory.domain', 'Domain')
24
+ .leftJoinAndSelect('PlantationInventory.block', 'Block')
25
+ .leftJoinAndSelect('PlantationInventory.ramp', 'Ramp')
26
+ .leftJoinAndSelect('PlantationInventory.creator', 'Creator')
27
+ .leftJoinAndSelect('PlantationInventory.updater', 'Updater')
28
+ .getManyAndCount();
29
+ items = items.map((item) => {
30
+ return Object.assign(Object.assign({}, item), { rampName: (item === null || item === void 0 ? void 0 : item.ramp) ? item.ramp.name : null, rampId: (item === null || item === void 0 ? void 0 : item.ramp) ? item.ramp.id : null });
31
+ });
32
+ return { items, total };
33
+ }
34
+ };
35
+ //# sourceMappingURL=plantation-inventory-query.js.map