@things-factory/worksheet-base 4.3.651 → 4.3.653

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 (635) hide show
  1. package/dist-server/constants/index.js +22 -0
  2. package/dist-server/constants/index.js.map +1 -0
  3. package/dist-server/constants/rule-type.js +8 -0
  4. package/dist-server/constants/rule-type.js.map +1 -0
  5. package/dist-server/constants/target-type.js +10 -0
  6. package/dist-server/constants/target-type.js.map +1 -0
  7. package/dist-server/constants/template.js +17 -0
  8. package/dist-server/constants/template.js.map +1 -0
  9. package/dist-server/constants/transaction-type.js +13 -0
  10. package/dist-server/constants/transaction-type.js.map +1 -0
  11. package/dist-server/constants/worksheet.js +44 -0
  12. package/dist-server/constants/worksheet.js.map +1 -0
  13. package/dist-server/controllers/ecommerce/ecommerce-controller.js +252 -0
  14. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -0
  15. package/dist-server/controllers/ecommerce/index.js +19 -0
  16. package/dist-server/controllers/ecommerce/index.js.map +1 -0
  17. package/dist-server/controllers/ecommerce/sellercraft-controller.js +458 -0
  18. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
  19. package/dist-server/controllers/inbound/index.js +21 -0
  20. package/dist-server/controllers/inbound/index.js.map +1 -0
  21. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +353 -0
  22. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -0
  23. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +444 -0
  24. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -0
  25. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +189 -0
  26. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -0
  27. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +1056 -0
  28. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -0
  29. package/dist-server/controllers/index.js +37 -0
  30. package/dist-server/controllers/index.js.map +1 -0
  31. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +1039 -0
  32. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -0
  33. package/dist-server/controllers/inspect/index.js +18 -0
  34. package/dist-server/controllers/inspect/index.js.map +1 -0
  35. package/dist-server/controllers/outbound/index.js +31 -0
  36. package/dist-server/controllers/outbound/index.js.map +1 -0
  37. package/dist-server/controllers/outbound/loading-worksheet-controller.js +304 -0
  38. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -0
  39. package/dist-server/controllers/outbound/packing-worksheet-controller.js +573 -0
  40. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -0
  41. package/dist-server/controllers/outbound/picking-worksheet-controller.js +2489 -0
  42. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -0
  43. package/dist-server/controllers/outbound/returning-worksheet-controller.js +171 -0
  44. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -0
  45. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +539 -0
  46. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -0
  47. package/dist-server/controllers/pos/index.js +18 -0
  48. package/dist-server/controllers/pos/index.js.map +1 -0
  49. package/dist-server/controllers/pos/xilnex-controller.js +188 -0
  50. package/dist-server/controllers/pos/xilnex-controller.js.map +1 -0
  51. package/dist-server/controllers/render-elccl-grn.js +194 -0
  52. package/dist-server/controllers/render-elccl-grn.js.map +1 -0
  53. package/dist-server/controllers/render-fm-grn.js +229 -0
  54. package/dist-server/controllers/render-fm-grn.js.map +1 -0
  55. package/dist-server/controllers/render-grn.js +240 -0
  56. package/dist-server/controllers/render-grn.js.map +1 -0
  57. package/dist-server/controllers/render-invoices.js +187 -0
  58. package/dist-server/controllers/render-invoices.js.map +1 -0
  59. package/dist-server/controllers/render-job-sheet.js +184 -0
  60. package/dist-server/controllers/render-job-sheet.js.map +1 -0
  61. package/dist-server/controllers/render-kimeda-grn.js +152 -0
  62. package/dist-server/controllers/render-kimeda-grn.js.map +1 -0
  63. package/dist-server/controllers/render-manifest.js +76 -0
  64. package/dist-server/controllers/render-manifest.js.map +1 -0
  65. package/dist-server/controllers/render-manual-do.js +204 -0
  66. package/dist-server/controllers/render-manual-do.js.map +1 -0
  67. package/dist-server/controllers/render-orientage-do.js +325 -0
  68. package/dist-server/controllers/render-orientage-do.js.map +1 -0
  69. package/dist-server/controllers/render-orientage-grn.js +158 -0
  70. package/dist-server/controllers/render-orientage-grn.js.map +1 -0
  71. package/dist-server/controllers/render-po.js +157 -0
  72. package/dist-server/controllers/render-po.js.map +1 -0
  73. package/dist-server/controllers/render-ro-do.js +393 -0
  74. package/dist-server/controllers/render-ro-do.js.map +1 -0
  75. package/dist-server/controllers/render-seebuu-grn.js +177 -0
  76. package/dist-server/controllers/render-seebuu-grn.js.map +1 -0
  77. package/dist-server/controllers/replenishment/index.js +18 -0
  78. package/dist-server/controllers/replenishment/index.js.map +1 -0
  79. package/dist-server/controllers/replenishment/replenishment-worksheet-controller.js +483 -0
  80. package/dist-server/controllers/replenishment/replenishment-worksheet-controller.js.map +1 -0
  81. package/dist-server/controllers/vas/index.js +18 -0
  82. package/dist-server/controllers/vas/index.js.map +1 -0
  83. package/dist-server/controllers/vas/vas-worksheet-controller.js +792 -0
  84. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -0
  85. package/dist-server/controllers/worksheet-controller.js +1049 -0
  86. package/dist-server/controllers/worksheet-controller.js.map +1 -0
  87. package/dist-server/entities/active-worksheet-picking-view.js +164 -0
  88. package/dist-server/entities/active-worksheet-picking-view.js.map +1 -0
  89. package/dist-server/entities/index.js +24 -0
  90. package/dist-server/entities/index.js.map +1 -0
  91. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +171 -0
  92. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -0
  93. package/dist-server/entities/warehouse-inventory-assignment-ranking.js +39 -0
  94. package/dist-server/entities/warehouse-inventory-assignment-ranking.js.map +1 -0
  95. package/dist-server/entities/worksheet-detail.js +136 -0
  96. package/dist-server/entities/worksheet-detail.js.map +1 -0
  97. package/dist-server/entities/worksheet-movement.js +58 -0
  98. package/dist-server/entities/worksheet-movement.js.map +1 -0
  99. package/dist-server/entities/worksheet.js +140 -0
  100. package/dist-server/entities/worksheet.js.map +1 -0
  101. package/dist-server/graphql/index.js +33 -0
  102. package/dist-server/graphql/index.js.map +1 -0
  103. package/dist-server/graphql/resolvers/index.js +33 -0
  104. package/dist-server/graphql/resolvers/index.js.map +1 -0
  105. package/dist-server/graphql/resolvers/pallet/index.js +7 -0
  106. package/dist-server/graphql/resolvers/pallet/index.js.map +1 -0
  107. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +53 -0
  108. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -0
  109. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +138 -0
  110. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -0
  111. package/dist-server/graphql/resolvers/worksheet/cancel-arrival-notice.js +55 -0
  112. package/dist-server/graphql/resolvers/worksheet/cancel-arrival-notice.js.map +1 -0
  113. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js +17 -0
  114. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -0
  115. package/dist-server/graphql/resolvers/worksheet/cancel-replenishment.js +57 -0
  116. package/dist-server/graphql/resolvers/worksheet/cancel-replenishment.js.map +1 -0
  117. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js +29 -0
  118. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js.map +1 -0
  119. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js +63 -0
  120. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js.map +1 -0
  121. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +249 -0
  122. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -0
  123. package/dist-server/graphql/resolvers/worksheet/create-worksheet.js +11 -0
  124. package/dist-server/graphql/resolvers/worksheet/create-worksheet.js.map +1 -0
  125. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +131 -0
  126. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -0
  127. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +255 -0
  128. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -0
  129. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet-for-carton.js +130 -0
  130. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet-for-carton.js.map +1 -0
  131. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet-for-pallet.js +133 -0
  132. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet-for-pallet.js.map +1 -0
  133. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js +18 -0
  134. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js.map +1 -0
  135. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js +102 -0
  136. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -0
  137. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js +169 -0
  138. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js.map +1 -0
  139. package/dist-server/graphql/resolvers/worksheet/fetch-powrup-document.js +60 -0
  140. package/dist-server/graphql/resolvers/worksheet/fetch-powrup-document.js.map +1 -0
  141. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js +60 -0
  142. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js.map +1 -0
  143. package/dist-server/graphql/resolvers/worksheet/fetch-webspert-document.js +49 -0
  144. package/dist-server/graphql/resolvers/worksheet/fetch-webspert-document.js.map +1 -0
  145. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js +34 -0
  146. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js.map +1 -0
  147. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js +28 -0
  148. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js.map +1 -0
  149. package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js +140 -0
  150. package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js.map +1 -0
  151. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js +45 -0
  152. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -0
  153. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js +16 -0
  154. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js.map +1 -0
  155. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet-carton.js +17 -0
  156. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet-carton.js.map +1 -0
  157. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js +17 -0
  158. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -0
  159. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js +17 -0
  160. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -0
  161. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js +48 -0
  162. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js.map +1 -0
  163. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js +57 -0
  164. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js.map +1 -0
  165. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js +42 -0
  166. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js.map +1 -0
  167. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +495 -0
  168. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -0
  169. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-replenishement-worksheet.js +19 -0
  170. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-replenishement-worksheet.js.map +1 -0
  171. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js +28 -0
  172. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js.map +1 -0
  173. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js +22 -0
  174. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js.map +1 -0
  175. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js +17 -0
  176. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js.map +1 -0
  177. package/dist-server/graphql/resolvers/worksheet/get-packing-list.js +80 -0
  178. package/dist-server/graphql/resolvers/worksheet/get-packing-list.js.map +1 -0
  179. package/dist-server/graphql/resolvers/worksheet/having-vas.js +43 -0
  180. package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -0
  181. package/dist-server/graphql/resolvers/worksheet/index.js +75 -0
  182. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -0
  183. package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.js +16 -0
  184. package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.js.map +1 -0
  185. package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-inventory.js +16 -0
  186. package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-inventory.js.map +1 -0
  187. package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-inventory-carton.js +16 -0
  188. package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-inventory-carton.js.map +1 -0
  189. package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-inventory.js +16 -0
  190. package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-inventory.js.map +1 -0
  191. package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js +28 -0
  192. package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js.map +1 -0
  193. package/dist-server/graphql/resolvers/worksheet/inspecting/index.js +16 -0
  194. package/dist-server/graphql/resolvers/worksheet/inspecting/index.js.map +1 -0
  195. package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting-carton.js +16 -0
  196. package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting-carton.js.map +1 -0
  197. package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting-pallet.js +16 -0
  198. package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting-pallet.js.map +1 -0
  199. package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-inventory-carton.js +16 -0
  200. package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-inventory-carton.js.map +1 -0
  201. package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-inventory.js +16 -0
  202. package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-inventory.js.map +1 -0
  203. package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection-carton.js +16 -0
  204. package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection-carton.js.map +1 -0
  205. package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.js +16 -0
  206. package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.js.map +1 -0
  207. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +137 -0
  208. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -0
  209. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js +41 -0
  210. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -0
  211. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js +59 -0
  212. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -0
  213. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +138 -0
  214. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -0
  215. package/dist-server/graphql/resolvers/worksheet/loading/index.js +9 -0
  216. package/dist-server/graphql/resolvers/worksheet/loading/index.js.map +1 -0
  217. package/dist-server/graphql/resolvers/worksheet/loading/loading.js +25 -0
  218. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -0
  219. package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js +16 -0
  220. package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js.map +1 -0
  221. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +179 -0
  222. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -0
  223. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +48 -0
  224. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -0
  225. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +30 -0
  226. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -0
  227. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +53 -0
  228. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -0
  229. package/dist-server/graphql/resolvers/worksheet/packing/index.js +10 -0
  230. package/dist-server/graphql/resolvers/worksheet/packing/index.js.map +1 -0
  231. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +51 -0
  232. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -0
  233. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +29 -0
  234. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -0
  235. package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js +15 -0
  236. package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js.map +1 -0
  237. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +619 -0
  238. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -0
  239. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +122 -0
  240. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -0
  241. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +163 -0
  242. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -0
  243. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +103 -0
  244. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -0
  245. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +81 -0
  246. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -0
  247. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js +16 -0
  248. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -0
  249. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js +31 -0
  250. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js.map +1 -0
  251. package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.js +16 -0
  252. package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.js.map +1 -0
  253. package/dist-server/graphql/resolvers/worksheet/picking/bulk-activate-picking.js +75 -0
  254. package/dist-server/graphql/resolvers/worksheet/picking/bulk-activate-picking.js.map +1 -0
  255. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +273 -0
  256. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -0
  257. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +432 -0
  258. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -0
  259. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js +110 -0
  260. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -0
  261. package/dist-server/graphql/resolvers/worksheet/picking/index.js +21 -0
  262. package/dist-server/graphql/resolvers/worksheet/picking/index.js.map +1 -0
  263. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js +22 -0
  264. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js.map +1 -0
  265. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +62 -0
  266. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -0
  267. package/dist-server/graphql/resolvers/worksheet/picking/picking.js +16 -0
  268. package/dist-server/graphql/resolvers/worksheet/picking/picking.js.map +1 -0
  269. package/dist-server/graphql/resolvers/worksheet/picking/replenishment-picking.js +12 -0
  270. package/dist-server/graphql/resolvers/worksheet/picking/replenishment-picking.js.map +1 -0
  271. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js +16 -0
  272. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js.map +1 -0
  273. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js +13 -0
  274. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -0
  275. package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js +15 -0
  276. package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +1 -0
  277. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js +16 -0
  278. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -0
  279. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js +15 -0
  280. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -0
  281. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +193 -0
  282. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -0
  283. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +162 -0
  284. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -0
  285. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js +41 -0
  286. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -0
  287. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +88 -0
  288. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -0
  289. package/dist-server/graphql/resolvers/worksheet/putaway/complete-replenishment-putaway.js +16 -0
  290. package/dist-server/graphql/resolvers/worksheet/putaway/complete-replenishment-putaway.js.map +1 -0
  291. package/dist-server/graphql/resolvers/worksheet/putaway/index.js +12 -0
  292. package/dist-server/graphql/resolvers/worksheet/putaway/index.js.map +1 -0
  293. package/dist-server/graphql/resolvers/worksheet/putaway/putaway.js +17 -0
  294. package/dist-server/graphql/resolvers/worksheet/putaway/putaway.js.map +1 -0
  295. package/dist-server/graphql/resolvers/worksheet/putaway/replenishment-putaway.js +15 -0
  296. package/dist-server/graphql/resolvers/worksheet/putaway/replenishment-putaway.js.map +1 -0
  297. package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.js +16 -0
  298. package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.js.map +1 -0
  299. package/dist-server/graphql/resolvers/worksheet/putaway/undo-replenishment-putaway.js +16 -0
  300. package/dist-server/graphql/resolvers/worksheet/putaway/undo-replenishment-putaway.js.map +1 -0
  301. package/dist-server/graphql/resolvers/worksheet/putaway-replenishment-worksheet.js +87 -0
  302. package/dist-server/graphql/resolvers/worksheet/putaway-replenishment-worksheet.js.map +1 -0
  303. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js +41 -0
  304. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -0
  305. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js +67 -0
  306. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -0
  307. package/dist-server/graphql/resolvers/worksheet/putaway-return/index.js +9 -0
  308. package/dist-server/graphql/resolvers/worksheet/putaway-return/index.js.map +1 -0
  309. package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.js +15 -0
  310. package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.js.map +1 -0
  311. package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.js +15 -0
  312. package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.js.map +1 -0
  313. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +73 -0
  314. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -0
  315. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +141 -0
  316. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -0
  317. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +157 -0
  318. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -0
  319. package/dist-server/graphql/resolvers/worksheet/refresh-active-worksheet-picking-views.js +11 -0
  320. package/dist-server/graphql/resolvers/worksheet/refresh-active-worksheet-picking-views.js.map +1 -0
  321. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +164 -0
  322. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -0
  323. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js +41 -0
  324. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js.map +1 -0
  325. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +91 -0
  326. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -0
  327. package/dist-server/graphql/resolvers/worksheet/replenishment/activate-picking-replenishment.js +17 -0
  328. package/dist-server/graphql/resolvers/worksheet/replenishment/activate-picking-replenishment.js.map +1 -0
  329. package/dist-server/graphql/resolvers/worksheet/replenishment/index.js +6 -0
  330. package/dist-server/graphql/resolvers/worksheet/replenishment/index.js.map +1 -0
  331. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +63 -0
  332. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -0
  333. package/dist-server/graphql/resolvers/worksheet/returning/activate-return.js +16 -0
  334. package/dist-server/graphql/resolvers/worksheet/returning/activate-return.js.map +1 -0
  335. package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js +29 -0
  336. package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js.map +1 -0
  337. package/dist-server/graphql/resolvers/worksheet/returning/index.js +8 -0
  338. package/dist-server/graphql/resolvers/worksheet/returning/index.js.map +1 -0
  339. package/dist-server/graphql/resolvers/worksheet/returning/returning.js +16 -0
  340. package/dist-server/graphql/resolvers/worksheet/returning/returning.js.map +1 -0
  341. package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.js +16 -0
  342. package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.js.map +1 -0
  343. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js +28 -0
  344. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -0
  345. package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.js +16 -0
  346. package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.js.map +1 -0
  347. package/dist-server/graphql/resolvers/worksheet/sorting/index.js +10 -0
  348. package/dist-server/graphql/resolvers/worksheet/sorting/index.js.map +1 -0
  349. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js +16 -0
  350. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -0
  351. package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js +16 -0
  352. package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js.map +1 -0
  353. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +89 -0
  354. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -0
  355. package/dist-server/graphql/resolvers/worksheet/transfer.js +88 -0
  356. package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -0
  357. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js +45 -0
  358. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -0
  359. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +69 -0
  360. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -0
  361. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js +38 -0
  362. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -0
  363. package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.js +15 -0
  364. package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.js.map +1 -0
  365. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.js +32 -0
  366. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.js.map +1 -0
  367. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +70 -0
  368. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -0
  369. package/dist-server/graphql/resolvers/worksheet/unloading/index.js +14 -0
  370. package/dist-server/graphql/resolvers/worksheet/unloading/index.js.map +1 -0
  371. package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.js +15 -0
  372. package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.js.map +1 -0
  373. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js +15 -0
  374. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -0
  375. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js +15 -0
  376. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -0
  377. package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js +15 -0
  378. package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js.map +1 -0
  379. package/dist-server/graphql/resolvers/worksheet/unloading/unload.js +19 -0
  380. package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -0
  381. package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.js +16 -0
  382. package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.js.map +1 -0
  383. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.js +16 -0
  384. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.js.map +1 -0
  385. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +57 -0
  386. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -0
  387. package/dist-server/graphql/resolvers/worksheet/unloading-return/index.js +8 -0
  388. package/dist-server/graphql/resolvers/worksheet/unloading-return/index.js.map +1 -0
  389. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js +67 -0
  390. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -0
  391. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +102 -0
  392. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -0
  393. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js +20 -0
  394. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js.map +1 -0
  395. package/dist-server/graphql/resolvers/worksheet/vas/activate-vas.js +16 -0
  396. package/dist-server/graphql/resolvers/worksheet/vas/activate-vas.js.map +1 -0
  397. package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.js +16 -0
  398. package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.js.map +1 -0
  399. package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js +99 -0
  400. package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js.map +1 -0
  401. package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.js +22 -0
  402. package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.js.map +1 -0
  403. package/dist-server/graphql/resolvers/worksheet/vas/index.js +11 -0
  404. package/dist-server/graphql/resolvers/worksheet/vas/index.js.map +1 -0
  405. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.js +15 -0
  406. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.js.map +1 -0
  407. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.js +16 -0
  408. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.js.map +1 -0
  409. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js +123 -0
  410. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -0
  411. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +36 -0
  412. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -0
  413. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +729 -0
  414. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -0
  415. package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js +22 -0
  416. package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js.map +1 -0
  417. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js +21 -0
  418. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -0
  419. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/relabeling.js +3 -0
  420. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/relabeling.js.map +1 -0
  421. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js +9 -0
  422. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -0
  423. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repalletizing.js +3 -0
  424. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repalletizing.js.map +1 -0
  425. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/unpacking.js +3 -0
  426. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/unpacking.js.map +1 -0
  427. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +71 -0
  428. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -0
  429. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js +46 -0
  430. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -0
  431. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js +21 -0
  432. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js.map +1 -0
  433. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js +68 -0
  434. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -0
  435. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js +28 -0
  436. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -0
  437. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +166 -0
  438. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -0
  439. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js +20 -0
  440. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js.map +1 -0
  441. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +278 -0
  442. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -0
  443. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +113 -0
  444. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -0
  445. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js +63 -0
  446. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -0
  447. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js +20 -0
  448. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js.map +1 -0
  449. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js +117 -0
  450. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -0
  451. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js +55 -0
  452. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -0
  453. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js +15 -0
  454. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js.map +1 -0
  455. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js +19 -0
  456. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js.map +1 -0
  457. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +132 -0
  458. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -0
  459. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +94 -0
  460. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -0
  461. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js +29 -0
  462. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js.map +1 -0
  463. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js +54 -0
  464. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -0
  465. package/dist-server/graphql/resolvers/worksheet/worksheet.js +501 -0
  466. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -0
  467. package/dist-server/graphql/resolvers/worksheet/worksheets.js +547 -0
  468. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -0
  469. package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js +22 -0
  470. package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js.map +1 -0
  471. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +39 -0
  472. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -0
  473. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js +18 -0
  474. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js.map +1 -0
  475. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +149 -0
  476. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -0
  477. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js +122 -0
  478. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -0
  479. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js +25 -0
  480. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -0
  481. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +77 -0
  482. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -0
  483. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +177 -0
  484. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -0
  485. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +67 -0
  486. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -0
  487. package/dist-server/graphql/resolvers/worksheet-detail/index.js +20 -0
  488. package/dist-server/graphql/resolvers/worksheet-detail/index.js.map +1 -0
  489. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +100 -0
  490. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -0
  491. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js +30 -0
  492. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -0
  493. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +31 -0
  494. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -0
  495. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +49 -0
  496. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -0
  497. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js +17 -0
  498. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js.map +1 -0
  499. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +14 -0
  500. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -0
  501. package/dist-server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.js +12 -0
  502. package/dist-server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.js.map +1 -0
  503. package/dist-server/graphql/resolvers/worksheet-movement/index.js +11 -0
  504. package/dist-server/graphql/resolvers/worksheet-movement/index.js.map +1 -0
  505. package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js +13 -0
  506. package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js.map +1 -0
  507. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js +12 -0
  508. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js.map +1 -0
  509. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js +15 -0
  510. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js.map +1 -0
  511. package/dist-server/graphql/types/index.js +39 -0
  512. package/dist-server/graphql/types/index.js.map +1 -0
  513. package/dist-server/graphql/types/pallet/index.js +13 -0
  514. package/dist-server/graphql/types/pallet/index.js.map +1 -0
  515. package/dist-server/graphql/types/pallet/pallet.js +10 -0
  516. package/dist-server/graphql/types/pallet/pallet.js.map +1 -0
  517. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js +11 -0
  518. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js.map +1 -0
  519. package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.js +12 -0
  520. package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.js.map +1 -0
  521. package/dist-server/graphql/types/worksheet/contact-point-info.js +15 -0
  522. package/dist-server/graphql/types/worksheet/contact-point-info.js.map +1 -0
  523. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js +19 -0
  524. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js.map +1 -0
  525. package/dist-server/graphql/types/worksheet/delivery-info.js +14 -0
  526. package/dist-server/graphql/types/worksheet/delivery-info.js.map +1 -0
  527. package/dist-server/graphql/types/worksheet/delivery-order-info.js +30 -0
  528. package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -0
  529. package/dist-server/graphql/types/worksheet/delivery-order-ro.js +18 -0
  530. package/dist-server/graphql/types/worksheet/delivery-order-ro.js.map +1 -0
  531. package/dist-server/graphql/types/worksheet/delivery-worksheet.js +10 -0
  532. package/dist-server/graphql/types/worksheet/delivery-worksheet.js.map +1 -0
  533. package/dist-server/graphql/types/worksheet/executing-worksheet.js +11 -0
  534. package/dist-server/graphql/types/worksheet/executing-worksheet.js.map +1 -0
  535. package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js +12 -0
  536. package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js.map +1 -0
  537. package/dist-server/graphql/types/worksheet/goods-delivery-note.js +11 -0
  538. package/dist-server/graphql/types/worksheet/goods-delivery-note.js.map +1 -0
  539. package/dist-server/graphql/types/worksheet/index.js +902 -0
  540. package/dist-server/graphql/types/worksheet/index.js.map +1 -0
  541. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js +11 -0
  542. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js.map +1 -0
  543. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +12 -0
  544. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -0
  545. package/dist-server/graphql/types/worksheet/location-filter.js +13 -0
  546. package/dist-server/graphql/types/worksheet/location-filter.js.map +1 -0
  547. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js +11 -0
  548. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js.map +1 -0
  549. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js +12 -0
  550. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js.map +1 -0
  551. package/dist-server/graphql/types/worksheet/new-worksheet.js +13 -0
  552. package/dist-server/graphql/types/worksheet/new-worksheet.js.map +1 -0
  553. package/dist-server/graphql/types/worksheet/packing-list.js +10 -0
  554. package/dist-server/graphql/types/worksheet/packing-list.js.map +1 -0
  555. package/dist-server/graphql/types/worksheet/picking-assignment-status.js +12 -0
  556. package/dist-server/graphql/types/worksheet/picking-assignment-status.js.map +1 -0
  557. package/dist-server/graphql/types/worksheet/powrup-document.js +11 -0
  558. package/dist-server/graphql/types/worksheet/powrup-document.js.map +1 -0
  559. package/dist-server/graphql/types/worksheet/product-approval.js +14 -0
  560. package/dist-server/graphql/types/worksheet/product-approval.js.map +1 -0
  561. package/dist-server/graphql/types/worksheet/release-good-worksheet.js +11 -0
  562. package/dist-server/graphql/types/worksheet/release-good-worksheet.js.map +1 -0
  563. package/dist-server/graphql/types/worksheet/replenish-inventory-patch.js +11 -0
  564. package/dist-server/graphql/types/worksheet/replenish-inventory-patch.js.map +1 -0
  565. package/dist-server/graphql/types/worksheet/return-order-worksheet.js +11 -0
  566. package/dist-server/graphql/types/worksheet/return-order-worksheet.js.map +1 -0
  567. package/dist-server/graphql/types/worksheet/sellercraft-document.js +11 -0
  568. package/dist-server/graphql/types/worksheet/sellercraft-document.js.map +1 -0
  569. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js +10 -0
  570. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js.map +1 -0
  571. package/dist-server/graphql/types/worksheet/vas-worksheet.js +11 -0
  572. package/dist-server/graphql/types/worksheet/vas-worksheet.js.map +1 -0
  573. package/dist-server/graphql/types/worksheet/webspert-document.js +11 -0
  574. package/dist-server/graphql/types/worksheet/webspert-document.js.map +1 -0
  575. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +88 -0
  576. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -0
  577. package/dist-server/graphql/types/worksheet/worksheet-info.js +46 -0
  578. package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -0
  579. package/dist-server/graphql/types/worksheet/worksheet-list.js +11 -0
  580. package/dist-server/graphql/types/worksheet/worksheet-list.js.map +1 -0
  581. package/dist-server/graphql/types/worksheet/worksheet-patch.js +21 -0
  582. package/dist-server/graphql/types/worksheet/worksheet-patch.js.map +1 -0
  583. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js +12 -0
  584. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js.map +1 -0
  585. package/dist-server/graphql/types/worksheet/worksheet.js +45 -0
  586. package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -0
  587. package/dist-server/graphql/types/worksheet-detail/index.js +83 -0
  588. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -0
  589. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +48 -0
  590. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -0
  591. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js +24 -0
  592. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js.map +1 -0
  593. package/dist-server/graphql/types/worksheet-detail/pallet-info.js +14 -0
  594. package/dist-server/graphql/types/worksheet-detail/pallet-info.js.map +1 -0
  595. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js +11 -0
  596. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js.map +1 -0
  597. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js +32 -0
  598. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js.map +1 -0
  599. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js +34 -0
  600. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js.map +1 -0
  601. package/dist-server/graphql/types/worksheet-movement/index.js +31 -0
  602. package/dist-server/graphql/types/worksheet-movement/index.js.map +1 -0
  603. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js +11 -0
  604. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js.map +1 -0
  605. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js +11 -0
  606. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js.map +1 -0
  607. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js +11 -0
  608. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js.map +1 -0
  609. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js +13 -0
  610. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js.map +1 -0
  611. package/dist-server/index.js +38 -0
  612. package/dist-server/index.js.map +1 -0
  613. package/dist-server/middlewares/index.js +4 -0
  614. package/dist-server/middlewares/index.js.map +1 -0
  615. package/dist-server/migrations/index.js +12 -0
  616. package/dist-server/migrations/index.js.map +1 -0
  617. package/dist-server/routes.js +65 -0
  618. package/dist-server/routes.js.map +1 -0
  619. package/dist-server/utils/datetime-util.js +61 -0
  620. package/dist-server/utils/datetime-util.js.map +1 -0
  621. package/dist-server/utils/index.js +23 -0
  622. package/dist-server/utils/index.js.map +1 -0
  623. package/dist-server/utils/inventory-util.js +236 -0
  624. package/dist-server/utils/inventory-util.js.map +1 -0
  625. package/dist-server/utils/lambda/lambda-const.js +6 -0
  626. package/dist-server/utils/lambda/lambda-const.js.map +1 -0
  627. package/dist-server/utils/lmd-util.js +699 -0
  628. package/dist-server/utils/lmd-util.js.map +1 -0
  629. package/dist-server/utils/worksheet-no-generator.js +187 -0
  630. package/dist-server/utils/worksheet-no-generator.js.map +1 -0
  631. package/dist-server/utils/worksheet-util.js +85 -0
  632. package/dist-server/utils/worksheet-util.js.map +1 -0
  633. package/dist-server/utils/xilnex-util.js +62 -0
  634. package/dist-server/utils/xilnex-util.js.map +1 -0
  635. package/package.json +12 -12
@@ -0,0 +1,1039 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CycleCountWorksheetController = void 0;
4
+ const typeorm_1 = require("typeorm");
5
+ const biz_base_1 = require("@things-factory/biz-base");
6
+ const id_rule_base_1 = require("@things-factory/id-rule-base");
7
+ const product_base_1 = require("@things-factory/product-base");
8
+ const sales_base_1 = require("@things-factory/sales-base");
9
+ const setting_base_1 = require("@things-factory/setting-base");
10
+ const warehouse_base_1 = require("@things-factory/warehouse-base");
11
+ const constants_1 = require("../../constants");
12
+ const entities_1 = require("../../entities");
13
+ const cycle_count_adjustment_1 = require("../../graphql/resolvers/worksheet/cycle-count-adjustment");
14
+ const utils_1 = require("../../utils");
15
+ const worksheet_controller_1 = require("../worksheet-controller");
16
+ class CycleCountWorksheetController extends worksheet_controller_1.WorksheetController {
17
+ async createCycleCountWorksheet(customerBizplace, customerId, executionDate, inventoryCheckItem, selectedLocation, limit, lockInventory, foundCycleCountWorksheets) {
18
+ const cycleCount = await (0, sales_base_1.generateCycleCount)(this.trxMgr, this.domain, this.user, executionDate, customerId);
19
+ const enableMultipleCC = await this.trxMgr.getRepository(setting_base_1.Setting).findOne({
20
+ where: { domain: this.domain, category: 'id-rule', name: 'enable-multiple-cycle-count' }
21
+ });
22
+ // Find out inventories which is target for cycle counting
23
+ const qb = this.trxMgr.getRepository(warehouse_base_1.Inventory).createQueryBuilder('INV');
24
+ qb.leftJoinAndSelect('INV.location', 'LOC')
25
+ .leftJoinAndSelect('INV.product', 'PROD')
26
+ .leftJoinAndSelect('INV.productDetail', 'PD')
27
+ .where('INV.domain_id = :domainId', { domainId: this.domain.id })
28
+ .andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: customerBizplace.id })
29
+ .andWhere('INV.status = :status', { status: warehouse_base_1.INVENTORY_STATUS.STORED });
30
+ if (enableMultipleCC != undefined && enableMultipleCC.value === 'true') {
31
+ let executingInventoryCheckItemId = [];
32
+ foundCycleCountWorksheets.forEach(worksheet => {
33
+ worksheet.worksheetDetails.forEach(worksheetDetail => {
34
+ executingInventoryCheckItemId.push(worksheetDetail.targetInventoryCheckItem.inventoryId);
35
+ });
36
+ });
37
+ if (executingInventoryCheckItemId && executingInventoryCheckItemId.length > 0) {
38
+ qb.andWhere('INV.id NOT IN (:...inventoryIds)', { inventoryIds: executingInventoryCheckItemId });
39
+ }
40
+ }
41
+ if (inventoryCheckItem && inventoryCheckItem.length > 0) {
42
+ let keyval = {
43
+ batchId: 'batch_id',
44
+ batchIdRef: 'batch_id_ref',
45
+ productDetailId: 'product_detail_id'
46
+ };
47
+ qb.andWhere(new typeorm_1.Brackets(qb => {
48
+ inventoryCheckItem.forEach((itm, idx) => {
49
+ qb.orWhere(new typeorm_1.Brackets(qb2 => {
50
+ let first = true;
51
+ for (var prop in itm) {
52
+ if (first) {
53
+ first = false;
54
+ qb2.where(`INV.${keyval[prop]} ${itm[prop] == null ? 'is null' : " = '" + itm[prop] + "'"}`);
55
+ }
56
+ else {
57
+ qb2.andWhere(`INV.${keyval[prop]} ${itm[prop] == null ? 'is null' : " = '" + itm[prop] + "'"}`);
58
+ }
59
+ }
60
+ }));
61
+ });
62
+ }));
63
+ }
64
+ else if (selectedLocation && selectedLocation.length > 0) {
65
+ // If selectedLocation is provided
66
+ // Query inventory items located at the selected location
67
+ qb.andWhere('INV.location_id IN (:...locationIds)', { locationIds: selectedLocation });
68
+ }
69
+ else {
70
+ if (limit > 0) {
71
+ qb.orderBy('RANDOM()').limit(limit);
72
+ }
73
+ }
74
+ let inventories = await qb.getMany();
75
+ if (!inventories.length) {
76
+ throw new Error(`Failed to find inventories`);
77
+ }
78
+ let cycleCountWorksheet = new entities_1.Worksheet();
79
+ cycleCountWorksheet.domain = this.domain;
80
+ cycleCountWorksheet.bizplace = customerBizplace;
81
+ cycleCountWorksheet.name = utils_1.WorksheetNoGenerator.cycleCount();
82
+ cycleCountWorksheet.inventoryCheck = cycleCount;
83
+ cycleCountWorksheet.type = constants_1.WORKSHEET_TYPE.CYCLE_COUNT;
84
+ cycleCountWorksheet.status = constants_1.WORKSHEET_STATUS.DEACTIVATED;
85
+ cycleCountWorksheet.checkCount = 1;
86
+ cycleCountWorksheet.creator = this.user;
87
+ cycleCountWorksheet.updater = this.user;
88
+ cycleCountWorksheet = await this.trxMgr.getRepository(entities_1.Worksheet).save(cycleCountWorksheet);
89
+ // generate order inventory mapping with inventory ID
90
+ let targetInventoryCheckItems = [];
91
+ for (let i = 0; i < inventories.length; i++) {
92
+ const inventory = inventories[i];
93
+ let targetInventoryCheckItem = new sales_base_1.InventoryCheckItem();
94
+ targetInventoryCheckItem.domain = this.domain;
95
+ targetInventoryCheckItem.bizplace = customerBizplace;
96
+ targetInventoryCheckItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.PENDING;
97
+ targetInventoryCheckItem.name = sales_base_1.OrderNoGenerator.inventoryCheckItem();
98
+ targetInventoryCheckItem.inventoryCheck = cycleCount;
99
+ targetInventoryCheckItem.originQty = inventory.qty;
100
+ targetInventoryCheckItem.originWeight = 0;
101
+ targetInventoryCheckItem.originUomValue = inventory.uomValue;
102
+ targetInventoryCheckItem.originExpirationDate = inventory.expirationDate;
103
+ targetInventoryCheckItem.originBatchNo = inventory.batchId;
104
+ targetInventoryCheckItem.originLocation = inventory.location;
105
+ targetInventoryCheckItem.inventory = inventory;
106
+ targetInventoryCheckItem.product = inventory.product;
107
+ targetInventoryCheckItem.productDetail = inventory.productDetail;
108
+ targetInventoryCheckItem.countNo = 1;
109
+ targetInventoryCheckItem.creator = this.user;
110
+ targetInventoryCheckItem.updater = this.user;
111
+ targetInventoryCheckItems.push(targetInventoryCheckItem);
112
+ }
113
+ targetInventoryCheckItems = await this.trxMgr
114
+ .getRepository(sales_base_1.InventoryCheckItem)
115
+ .save(targetInventoryCheckItems, { chunk: 500 });
116
+ await this.trxMgr.getRepository(warehouse_base_1.Inventory).update(inventories.map(itm => itm.id), { updater: this.user, lockInventory: lockInventory });
117
+ let cycleCountWorksheetDetails = [];
118
+ for (let i = 0; i < targetInventoryCheckItems.length; i++) {
119
+ let targetInventoryCheckItem = targetInventoryCheckItems[i];
120
+ let cycleCountWorksheetDetail = new entities_1.WorksheetDetail();
121
+ cycleCountWorksheetDetail.domain = this.domain;
122
+ cycleCountWorksheetDetail.bizplace = customerBizplace;
123
+ cycleCountWorksheetDetail.worksheet = cycleCountWorksheet;
124
+ cycleCountWorksheetDetail.name = utils_1.WorksheetNoGenerator.cycleCountDetail();
125
+ cycleCountWorksheetDetail.targetInventoryCheckItem = targetInventoryCheckItem;
126
+ cycleCountWorksheetDetail.type = constants_1.WORKSHEET_TYPE.CYCLE_COUNT;
127
+ cycleCountWorksheetDetail.status = constants_1.WORKSHEET_STATUS.DEACTIVATED;
128
+ cycleCountWorksheetDetail.creator = this.user;
129
+ cycleCountWorksheetDetail.updater = this.user;
130
+ cycleCountWorksheetDetails.push(cycleCountWorksheetDetail);
131
+ }
132
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(cycleCountWorksheetDetails, { chunk: 500 });
133
+ return cycleCountWorksheet;
134
+ }
135
+ async createNextRoundCycleCountWorksheet(customerId, existingInventoryCheck, nextExecutionDate, currentCycleCountWorksheet, inventoryCheckItemIds) {
136
+ try {
137
+ // Check if the next cycle count worksheet is already exist
138
+ const count = currentCycleCountWorksheet.checkCount + 1;
139
+ const newCountWorksheet = await this.trxMgr.getRepository(entities_1.Worksheet).findOne({
140
+ where: {
141
+ inventoryCheck: existingInventoryCheck,
142
+ domain: this.domain,
143
+ bizplace: customerId,
144
+ type: constants_1.WORKSHEET_TYPE.CYCLE_COUNT,
145
+ status: constants_1.WORKSHEET_STATUS.EXECUTING,
146
+ checkCount: count
147
+ }
148
+ });
149
+ // Step 1: Create a new cycle count worksheet for the next round
150
+ let nextRoundWorksheet;
151
+ if (newCountWorksheet) {
152
+ nextRoundWorksheet = newCountWorksheet;
153
+ }
154
+ else {
155
+ nextRoundWorksheet = new entities_1.Worksheet();
156
+ Object.assign(nextRoundWorksheet, currentCycleCountWorksheet);
157
+ nextRoundWorksheet.id = undefined;
158
+ nextRoundWorksheet.domain = this.domain;
159
+ nextRoundWorksheet.bizplace = customerId;
160
+ nextRoundWorksheet.name = utils_1.WorksheetNoGenerator.cycleCount();
161
+ nextRoundWorksheet.status = constants_1.WORKSHEET_STATUS.EXECUTING;
162
+ nextRoundWorksheet.endedAt = null;
163
+ nextRoundWorksheet.updater = this.user;
164
+ nextRoundWorksheet.worksheetDetails = null;
165
+ nextRoundWorksheet.checkCount = count;
166
+ nextRoundWorksheet.inventoryCheck = existingInventoryCheck;
167
+ nextRoundWorksheet.type = constants_1.WORKSHEET_TYPE.CYCLE_COUNT;
168
+ }
169
+ // Step 2: Save the new Worksheet
170
+ await this.trxMgr.getRepository(entities_1.Worksheet).save(nextRoundWorksheet);
171
+ // Step 3: Fetch current InventoryCheckItems
172
+ const currentInventoryCheckItems = await this.trxMgr
173
+ .getRepository(sales_base_1.InventoryCheckItem)
174
+ .findByIds(inventoryCheckItemIds);
175
+ // Step 4: Create new InventoryCheckItems based on the current ones
176
+ const nextRoundInventoryCheckItems = currentInventoryCheckItems.map(currentItem => {
177
+ let nextRoundItem = new sales_base_1.InventoryCheckItem();
178
+ Object.assign(nextRoundItem, currentItem);
179
+ nextRoundItem.id = undefined;
180
+ nextRoundItem.domain = this.domain;
181
+ nextRoundItem.bizplace = customerId;
182
+ nextRoundItem.inventoryCheck = currentItem.inventoryCheckId;
183
+ nextRoundItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTING;
184
+ nextRoundItem.name = sales_base_1.OrderNoGenerator.inventoryCheckItem();
185
+ nextRoundItem.originQty = currentItem.inspectedQty || currentItem.originQty;
186
+ nextRoundItem.originUomValue = currentItem.inspectedUomValue || currentItem.originUomValue;
187
+ nextRoundItem.originBatchNo = currentItem.inspectedBatchNo || currentItem.originBatchNo;
188
+ nextRoundItem.originLocation = currentItem.inspectedLocationId || currentItem.originLocationId;
189
+ nextRoundItem.originExpirationDate = currentItem.inspectedExpirationDate;
190
+ nextRoundItem.inspectedQty = null;
191
+ nextRoundItem.inspectedUomValue = null;
192
+ nextRoundItem.inspectedBatchNo = null;
193
+ nextRoundItem.inspectedLocationId = null;
194
+ nextRoundItem.inspectedExpirationDate = null;
195
+ nextRoundItem.countNo = currentItem.countNo + 1;
196
+ nextRoundItem.inventory = currentItem.inventoryId;
197
+ nextRoundItem.product = currentItem.productId;
198
+ nextRoundItem.productDetail = currentItem.productDetailId;
199
+ nextRoundItem.creator = this.user;
200
+ nextRoundItem.createdAt = new Date();
201
+ nextRoundItem.updater = this.user;
202
+ return nextRoundItem;
203
+ });
204
+ // Step 5: Save the new InventoryCheckItems
205
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(nextRoundInventoryCheckItems, { chunk: 500 });
206
+ // Step 6: Create a new cycle count worksheet details for the next round
207
+ let nextRoundWorksheetDetails = nextRoundInventoryCheckItems.map(newItem => {
208
+ let detail = new entities_1.WorksheetDetail();
209
+ detail.domain = this.domain;
210
+ detail.bizplace = customerId;
211
+ detail.worksheet = nextRoundWorksheet;
212
+ detail.name = utils_1.WorksheetNoGenerator.cycleCountDetail();
213
+ detail.targetInventoryCheckItem = newItem;
214
+ detail.type = constants_1.WORKSHEET_TYPE.CYCLE_COUNT;
215
+ detail.status = constants_1.WORKSHEET_STATUS.EXECUTING;
216
+ detail.creator = this.user;
217
+ detail.updater = this.user;
218
+ return detail;
219
+ });
220
+ // Step 7: Save the new Worksheet Details
221
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(nextRoundWorksheetDetails, { chunk: 500 });
222
+ // Step 8: Mark the selected inventory as TERMINATED
223
+ currentInventoryCheckItems.forEach(item => {
224
+ item.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.TERMINATED;
225
+ item.updater = this.user;
226
+ });
227
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(currentInventoryCheckItems);
228
+ // Step 9: Directly update the worksheet details
229
+ await this.trxMgr
230
+ .getRepository(entities_1.WorksheetDetail)
231
+ .createQueryBuilder()
232
+ .update(entities_1.WorksheetDetail)
233
+ .set({
234
+ status: constants_1.WORKSHEET_STATUS.DONE,
235
+ updater: this.user
236
+ })
237
+ .where('targetInventoryCheckItem IN (:...ids)', { ids: currentInventoryCheckItems.map(item => item.id) })
238
+ .execute();
239
+ // Check if any record is not DONE
240
+ const notDoneCount = await this.trxMgr.getRepository(entities_1.WorksheetDetail).count({
241
+ where: {
242
+ worksheet: currentCycleCountWorksheet,
243
+ status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DONE))
244
+ }
245
+ });
246
+ if (notDoneCount === 0) {
247
+ if (currentCycleCountWorksheet.checkCount != 1) {
248
+ await (0, cycle_count_adjustment_1.cycleCountAdjustment)(this.trxMgr, this.domain, this.user, currentCycleCountWorksheet.name, existingInventoryCheck.name);
249
+ }
250
+ // Step 11: Update status of existing InventoryCheck
251
+ existingInventoryCheck.status = sales_base_1.ORDER_STATUS.INSPECTING;
252
+ existingInventoryCheck.updater = this.user;
253
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheck).save(existingInventoryCheck);
254
+ // Step 12: Mark the current worksheet as DONE
255
+ currentCycleCountWorksheet.status = constants_1.WORKSHEET_STATUS.DONE;
256
+ currentCycleCountWorksheet.updater = this.user;
257
+ await this.trxMgr.getRepository(entities_1.Worksheet).save(currentCycleCountWorksheet);
258
+ }
259
+ existingInventoryCheck.executionDate = nextExecutionDate;
260
+ existingInventoryCheck.updater = this.user;
261
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheck).save(existingInventoryCheck);
262
+ return nextRoundWorksheet;
263
+ }
264
+ catch (error) {
265
+ throw new Error('Failed to create next round cycle count worksheet');
266
+ }
267
+ }
268
+ async sameCycleCountWorksheet(customerId, existingInventoryCheck, executionDate, executingWorksheet, notTallyWorksheet, inventoryCheckItemIds) {
269
+ try {
270
+ // Step 1: Fetch current InventoryCheckItems
271
+ const currentInventoryCheckItems = await this.trxMgr
272
+ .getRepository(sales_base_1.InventoryCheckItem)
273
+ .findByIds(inventoryCheckItemIds);
274
+ // Step 2: Create new InventoryCheckItems based on the current ones
275
+ const continuedInventoryCheckItems = currentInventoryCheckItems.map(currentItem => {
276
+ let newItem = new sales_base_1.InventoryCheckItem();
277
+ Object.assign(newItem, currentItem);
278
+ newItem.id = undefined;
279
+ newItem.domain = this.domain;
280
+ newItem.bizplace = customerId;
281
+ newItem.inventoryCheck = currentItem.inventoryCheckId;
282
+ newItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTING;
283
+ newItem.name = sales_base_1.OrderNoGenerator.inventoryCheckItem();
284
+ newItem.originQty = currentItem.inspectedQty || currentItem.originQty;
285
+ newItem.originUomValue = currentItem.inspectedUomValue || currentItem.originUomValue;
286
+ newItem.originBatchNo = currentItem.inspectedBatchNo || currentItem.originBatchNo;
287
+ newItem.originLocation = currentItem.inspectedLocationId || currentItem.originLocationId;
288
+ newItem.inspectedQty = null;
289
+ newItem.inspectedUomValue = null;
290
+ newItem.inspectedBatchNo = null;
291
+ newItem.inspectedLocationId = null;
292
+ newItem.countNo = currentItem.countNo + 1;
293
+ newItem.inventory = currentItem.inventoryId;
294
+ newItem.product = currentItem.productId;
295
+ newItem.productDetail = currentItem.productDetailId;
296
+ newItem.creator = this.user;
297
+ newItem.updater = this.user;
298
+ return newItem;
299
+ });
300
+ // Step 3: Save the new InventoryCheckItems
301
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(continuedInventoryCheckItems, { chunk: 500 });
302
+ // Step 4: Create new Worksheet Details based on new InventoryCheckItems
303
+ let continuedWorksheetDetails = continuedInventoryCheckItems.map(newItem => {
304
+ let detail = new entities_1.WorksheetDetail();
305
+ detail.domain = this.domain;
306
+ detail.bizplace = customerId;
307
+ detail.worksheet = executingWorksheet;
308
+ detail.name = utils_1.WorksheetNoGenerator.cycleCountDetail();
309
+ detail.targetInventoryCheckItem = newItem;
310
+ detail.type = constants_1.WORKSHEET_TYPE.CYCLE_COUNT;
311
+ detail.status = constants_1.WORKSHEET_STATUS.EXECUTING;
312
+ detail.creator = this.user;
313
+ detail.updater = this.user;
314
+ return detail;
315
+ });
316
+ // Step 5: Save the new Worksheet Details
317
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(continuedWorksheetDetails, { chunk: 500 });
318
+ // Step 6: Mark the selected inventory as TERMINATED
319
+ currentInventoryCheckItems.forEach(item => {
320
+ item.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.TERMINATED;
321
+ item.updater = this.user;
322
+ });
323
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(currentInventoryCheckItems);
324
+ // Step 7: Directly update the worksheet details
325
+ await this.trxMgr
326
+ .getRepository(entities_1.WorksheetDetail)
327
+ .createQueryBuilder()
328
+ .update(entities_1.WorksheetDetail)
329
+ .set({
330
+ status: constants_1.WORKSHEET_STATUS.DONE,
331
+ updater: this.user
332
+ })
333
+ .where('targetInventoryCheckItem IN (:...ids)', { ids: currentInventoryCheckItems.map(item => item.id) })
334
+ .execute();
335
+ // Check if any record is not DONE
336
+ const notDoneCount = await this.trxMgr.getRepository(entities_1.WorksheetDetail).count({
337
+ where: {
338
+ worksheet: notTallyWorksheet,
339
+ status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DONE))
340
+ }
341
+ });
342
+ if (notDoneCount === 0) {
343
+ if (notTallyWorksheet.checkCount != 1) {
344
+ await (0, cycle_count_adjustment_1.cycleCountAdjustment)(this.trxMgr, this.domain, this.user, notTallyWorksheet.name, existingInventoryCheck.name);
345
+ }
346
+ // Step 11: Update status of existing InventoryCheck
347
+ existingInventoryCheck.status = sales_base_1.ORDER_STATUS.INSPECTING;
348
+ existingInventoryCheck.updater = this.user;
349
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheck).save(existingInventoryCheck);
350
+ // Step 12: Mark the current worksheet as DONE
351
+ notTallyWorksheet.status = constants_1.WORKSHEET_STATUS.DONE;
352
+ notTallyWorksheet.updater = this.user;
353
+ await this.trxMgr.getRepository(entities_1.Worksheet).save(notTallyWorksheet);
354
+ }
355
+ existingInventoryCheck.executionDate = executionDate;
356
+ existingInventoryCheck.updater = this.user;
357
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheck).save(existingInventoryCheck);
358
+ return executingWorksheet; // Return the same executing worksheet
359
+ }
360
+ catch (error) {
361
+ throw new Error('Failed to use same cycle count worksheet');
362
+ }
363
+ }
364
+ async generateCycleCountWorksheet(executionDate, customerId, inventoryCheckItemIds = [], inventoryCheckItem = [], limit = 0, selectedLocation = [], cycleCountNo, lockInventory) {
365
+ const customerBizplace = await this.trxMgr.getRepository(biz_base_1.Bizplace).findOne(customerId);
366
+ const enableMultipleCC = await this.trxMgr.getRepository(setting_base_1.Setting).findOne({
367
+ where: { domain: this.domain, category: 'id-rule', name: 'enable-multiple-cycle-count' }
368
+ });
369
+ const foundInventoryCheck = await this.trxMgr.getRepository(sales_base_1.InventoryCheck).findOne({
370
+ where: {
371
+ domain: this.domain,
372
+ bizplace: customerBizplace,
373
+ name: cycleCountNo
374
+ }
375
+ });
376
+ const worksheetRepository = this.trxMgr.getRepository(entities_1.Worksheet);
377
+ const foundCycleCountWorksheets = await worksheetRepository.find({
378
+ where: {
379
+ domain: this.domain,
380
+ bizplace: customerBizplace,
381
+ type: (0, typeorm_1.In)([constants_1.WORKSHEET_TYPE.CYCLE_COUNT, constants_1.WORKSHEET_TYPE.CYCLE_COUNT_RECHECK]),
382
+ status: (0, typeorm_1.Not)(constants_1.WORKSHEET_STATUS.DONE)
383
+ },
384
+ order: {
385
+ checkCount: 'DESC'
386
+ },
387
+ relations: ['worksheetDetails', 'worksheetDetails.targetInventoryCheckItem', 'inventoryCheck']
388
+ });
389
+ //generate next count cc worksheet
390
+ if (foundCycleCountWorksheets.length >= 1 && inventoryCheckItemIds.length) {
391
+ const executingWorksheet = foundCycleCountWorksheets.find(worksheet => worksheet.status === constants_1.WORKSHEET_STATUS.EXECUTING);
392
+ const notTallyWorksheet = foundCycleCountWorksheets.find(worksheet => worksheet.status === constants_1.WORKSHEET_STATUS.NOT_TALLY);
393
+ if (executingWorksheet && notTallyWorksheet && (!enableMultipleCC || (enableMultipleCC === null || enableMultipleCC === void 0 ? void 0 : enableMultipleCC.value) !== 'true')) {
394
+ return await this.sameCycleCountWorksheet(customerId, foundInventoryCheck, executionDate, executingWorksheet, notTallyWorksheet, inventoryCheckItemIds);
395
+ }
396
+ else if (notTallyWorksheet) {
397
+ return await this.createNextRoundCycleCountWorksheet(customerId, foundInventoryCheck, executionDate, notTallyWorksheet, inventoryCheckItemIds);
398
+ }
399
+ }
400
+ else {
401
+ //generate new cc worksheet
402
+ if (foundCycleCountWorksheets.length >= 1 && (!enableMultipleCC || (enableMultipleCC === null || enableMultipleCC === void 0 ? void 0 : enableMultipleCC.value) !== 'true')) {
403
+ throw new Error('Unfinished cycle count worksheet exists.');
404
+ }
405
+ return await this.createCycleCountWorksheet(customerBizplace, customerId, executionDate, inventoryCheckItem, selectedLocation, limit, lockInventory, foundCycleCountWorksheets);
406
+ }
407
+ }
408
+ async generateCycleCountWorksheetCarton(executionDate, customerId, cycleCountNo, inventoryCheckItemIdsParam = []) {
409
+ const customerBizplace = await this.trxMgr.getRepository(biz_base_1.Bizplace).findOne(customerId);
410
+ const enableMultipleCC = await this.trxMgr.getRepository(setting_base_1.Setting).findOne({
411
+ where: { domain: this.domain, category: 'id-rule', name: 'enable-multiple-cycle-count' }
412
+ });
413
+ const foundInventoryCheck = await this.trxMgr.getRepository(sales_base_1.InventoryCheck).findOne({
414
+ where: {
415
+ domain: this.domain,
416
+ bizplace: customerBizplace,
417
+ name: cycleCountNo
418
+ }
419
+ });
420
+ const worksheetRepository = this.trxMgr.getRepository(entities_1.Worksheet);
421
+ const foundCycleCountWorksheets = await worksheetRepository.find({
422
+ where: {
423
+ domain: this.domain,
424
+ inventoryCheck: foundInventoryCheck,
425
+ bizplace: customerBizplace,
426
+ type: (0, typeorm_1.In)([constants_1.WORKSHEET_TYPE.CYCLE_COUNT, constants_1.WORKSHEET_TYPE.CYCLE_COUNT_RECHECK]),
427
+ status: (0, typeorm_1.Not)(constants_1.WORKSHEET_STATUS.DONE)
428
+ },
429
+ order: {
430
+ checkCount: 'DESC'
431
+ },
432
+ relations: ['worksheetDetails', 'worksheetDetails.targetInventoryCheckItem', 'inventoryCheck']
433
+ });
434
+ const worksheetStatuses = foundCycleCountWorksheets.map(worksheet => worksheet.status);
435
+ const itemStatus = [
436
+ sales_base_1.INVENTORY_CHECK_ITEM_STATUS.RELOCATED,
437
+ sales_base_1.INVENTORY_CHECK_ITEM_STATUS.ADDED,
438
+ sales_base_1.INVENTORY_CHECK_ITEM_STATUS.MISSING,
439
+ sales_base_1.INVENTORY_CHECK_ITEM_STATUS.NOT_TALLY
440
+ ];
441
+ const qb = this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).createQueryBuilder('inventoryCheckItem');
442
+ qb.innerJoinAndSelect('inventoryCheckItem.inventory', 'inventory')
443
+ .where('inventoryCheckItem.inventory_check_id = :inventoryCheckId', { inventoryCheckId: foundInventoryCheck.id })
444
+ .andWhere('inventoryCheckItem.id IN (:...itemIds)', { itemIds: inventoryCheckItemIdsParam })
445
+ .andWhere('inventoryCheckItem.domain_id = :domainId', { domainId: this.domain.id })
446
+ .andWhere('inventoryCheckItem.bizplace_id = :bizplaceId', { bizplaceId: customerBizplace.id })
447
+ .andWhere('inventoryCheckItem.status IN (:...status)', { status: itemStatus });
448
+ const inventoryCheckItems = await qb.getMany();
449
+ const inventoryCheckItemIds = inventoryCheckItems.map(item => item.id);
450
+ const executingWorksheet = foundCycleCountWorksheets.find(worksheet => worksheet.status === constants_1.WORKSHEET_STATUS.EXECUTING);
451
+ const notTallyWorksheet = foundCycleCountWorksheets.find(worksheet => worksheet.status === constants_1.WORKSHEET_STATUS.NOT_TALLY);
452
+ if (worksheetStatuses.includes(constants_1.WORKSHEET_STATUS.EXECUTING) &&
453
+ worksheetStatuses.includes(constants_1.WORKSHEET_STATUS.NOT_TALLY) &&
454
+ (!enableMultipleCC || (enableMultipleCC === null || enableMultipleCC === void 0 ? void 0 : enableMultipleCC.value) !== 'true')) {
455
+ return await this.sameCycleCountWorksheet(customerId, foundInventoryCheck, executionDate, executingWorksheet, notTallyWorksheet, inventoryCheckItemIds);
456
+ }
457
+ else if (worksheetStatuses.includes(constants_1.WORKSHEET_STATUS.NOT_TALLY)) {
458
+ return await this.createNextRoundCycleCountWorksheet(customerId, foundInventoryCheck, executionDate, notTallyWorksheet, inventoryCheckItemIds);
459
+ }
460
+ }
461
+ async activateCycleCount(worksheetNo) {
462
+ let worksheet = await this.findActivatableWorksheet(worksheetNo, constants_1.WORKSHEET_TYPE.CYCLE_COUNT, [
463
+ 'inventoryCheck',
464
+ 'worksheetDetails',
465
+ 'worksheetDetails.targetInventoryCheckItem'
466
+ ]);
467
+ let worksheetDetails = worksheet.worksheetDetails;
468
+ let targetInventoryCheckItems = worksheetDetails.map((wsd) => wsd.targetInventoryCheckItem);
469
+ for (let i = 0; i < targetInventoryCheckItems.length; i++) {
470
+ let targetInventoryCheckItem = targetInventoryCheckItems[i];
471
+ targetInventoryCheckItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTING;
472
+ targetInventoryCheckItem.updater = this.user;
473
+ }
474
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(targetInventoryCheckItems, { chunk: 500 });
475
+ for (let i = 0; i < worksheetDetails.length; i++) {
476
+ let foundWSD = worksheetDetails[i];
477
+ foundWSD.status = constants_1.WORKSHEET_STATUS.EXECUTING;
478
+ foundWSD.updater = this.user;
479
+ }
480
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetails, { chunk: 500 });
481
+ worksheet.status = constants_1.WORKSHEET_STATUS.EXECUTING;
482
+ worksheet.startedAt = new Date();
483
+ worksheet.updater = this.user;
484
+ worksheet = await this.trxMgr.getRepository(entities_1.Worksheet).save(worksheet);
485
+ let cycleCount = worksheet.inventoryCheck;
486
+ cycleCount.status = sales_base_1.ORDER_STATUS.INSPECTING;
487
+ cycleCount.updater = this.user;
488
+ await this.updateRefOrder(cycleCount);
489
+ return worksheet;
490
+ }
491
+ async inspectingPallet(worksheetDetailName, inspectedBatchNo, inspectedQty, inspectedUomValue, inspectedExpirationDate) {
492
+ let worksheetDetail = await this.findExecutableWorksheetDetailByName(worksheetDetailName, constants_1.WORKSHEET_TYPE.CYCLE_COUNT, ['targetInventoryCheckItem', 'targetInventoryCheckItem.inventory', 'targetInventoryCheckItem.inventory.location']);
493
+ let targetInventoryCheckItem = worksheetDetail.targetInventoryCheckItem;
494
+ const { originBatchNo, originQty, originUomValue, originExpirationDate, originLocationId } = targetInventoryCheckItem;
495
+ let checkedExpDate = inspectedExpirationDate ? formatDate(inspectedExpirationDate) : null;
496
+ let checkOrgExpDate = (originExpirationDate === null || originExpirationDate === void 0 ? void 0 : originExpirationDate.toString()) || null;
497
+ const isChanged = originBatchNo !== inspectedBatchNo ||
498
+ originQty !== inspectedQty ||
499
+ originUomValue !== inspectedUomValue ||
500
+ checkedExpDate !== checkOrgExpDate;
501
+ const worksheetDetailStatus = isChanged ? constants_1.WORKSHEET_STATUS.NOT_TALLY : constants_1.WORKSHEET_STATUS.DONE;
502
+ const targetInventoryCheckItemStatus = isChanged
503
+ ? sales_base_1.INVENTORY_CHECK_ITEM_STATUS.NOT_TALLY
504
+ : sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTED;
505
+ worksheetDetail.status = worksheetDetailStatus;
506
+ worksheetDetail.updater = this.user;
507
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
508
+ targetInventoryCheckItem.inspectedBatchNo = inspectedBatchNo;
509
+ targetInventoryCheckItem.inspectedQty = inspectedQty;
510
+ targetInventoryCheckItem.inspectedUomValue = inspectedUomValue;
511
+ targetInventoryCheckItem.inspectedExpirationDate = checkedExpDate;
512
+ targetInventoryCheckItem.inspectedLocation = originLocationId;
513
+ targetInventoryCheckItem.status = targetInventoryCheckItemStatus;
514
+ targetInventoryCheckItem.updater = this.user;
515
+ await this.updateOrderTargets([targetInventoryCheckItem]);
516
+ }
517
+ async inspectingCarton(productDetailId, cartonId, batchId, locationId, inspectedBatchNo, inspectedQty, inspectedUomValue, inspectedExpirationDate) {
518
+ var _a, _b, _c;
519
+ const productDetail = await this.trxMgr.getRepository(product_base_1.ProductDetail).findOne({
520
+ where: { id: productDetailId },
521
+ relations: ['product']
522
+ });
523
+ let qb = this.trxMgr
524
+ .getRepository(warehouse_base_1.Inventory)
525
+ .createQueryBuilder('inv')
526
+ .where('inv.product_detail_id = :productDetailId', { productDetailId })
527
+ .andWhere('inv.carton_id = :cartonId', { cartonId })
528
+ .andWhere('inv.batch_id = :batchId', { batchId })
529
+ .andWhere('inv.location_id = :locationId', { locationId });
530
+ let orderByField = 'created_at';
531
+ let orderByDirection = 'ASC';
532
+ switch (productDetail.product.pickingStrategy) {
533
+ case 'LIFO':
534
+ orderByDirection = 'DESC';
535
+ break;
536
+ case 'FEFO':
537
+ orderByField = 'expiration_date';
538
+ break;
539
+ case 'FMFO':
540
+ orderByField = 'manufacture_date';
541
+ break;
542
+ }
543
+ qb.addOrderBy(`"inv"."${orderByField}"`, orderByDirection);
544
+ if (['FEFO', 'FMFO'].includes(productDetail.product.pickingStrategy)) {
545
+ qb.addOrderBy('"inv"."created_at"', 'ASC');
546
+ }
547
+ const inventories = await qb.getMany();
548
+ const inventoryIds = inventories.map(inv => inv.id);
549
+ const inventoryCheckItems = await this.trxMgr
550
+ .getRepository(sales_base_1.InventoryCheckItem)
551
+ .createQueryBuilder('inventoryCheckItem')
552
+ .leftJoinAndSelect('inventoryCheckItem.inventory', 'inventory')
553
+ .where('inventory.id IN (:...ids)', { ids: inventoryIds })
554
+ .andWhere('inventoryCheckItem.status = :status', { status: 'INSPECTING' })
555
+ .getMany();
556
+ const { totalOriginQty } = inventoryCheckItems.reduce((total, item) => {
557
+ total.totalOriginQty += item.originQty || 0;
558
+ return total;
559
+ }, { totalOriginQty: 0 });
560
+ const hasDiscrepancies = totalOriginQty !== inspectedQty ||
561
+ inventoryCheckItems.some(checkItem => checkItem.originExpirationDate !== formatDate(inspectedExpirationDate) ||
562
+ checkItem.originBatchNo !== inspectedBatchNo);
563
+ let totalInspectedQty = inspectedQty;
564
+ for (const checkItem of inventoryCheckItems) {
565
+ const qtyToInspect = totalInspectedQty > 0 ? Math.min(totalInspectedQty, checkItem.originQty) : 0;
566
+ checkItem.inspectedQty = ((_a = checkItem.inspectedQty) !== null && _a !== void 0 ? _a : 0) + qtyToInspect;
567
+ totalInspectedQty -= qtyToInspect;
568
+ checkItem.inspectedUomValue = (_b = checkItem.originUomValue) !== null && _b !== void 0 ? _b : 0;
569
+ checkItem.inspectedBatchNo = inspectedBatchNo;
570
+ checkItem.inspectedExpirationDate = inspectedExpirationDate;
571
+ checkItem.inspectedLocation = checkItem.originLocationId;
572
+ checkItem.status = hasDiscrepancies
573
+ ? sales_base_1.INVENTORY_CHECK_ITEM_STATUS.NOT_TALLY
574
+ : sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTED;
575
+ checkItem.updater = this.user;
576
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).update(checkItem.id, {
577
+ inspectedQty: checkItem.inspectedQty,
578
+ inspectedUomValue: checkItem.inspectedQty * productDetail.uomValue,
579
+ inspectedBatchNo: checkItem.inspectedBatchNo,
580
+ inspectedExpirationDate: checkItem.inspectedExpirationDate,
581
+ inspectedLocation: checkItem.inspectedLocation,
582
+ status: checkItem.status,
583
+ updater: this.user
584
+ });
585
+ let worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
586
+ where: { targetInventoryCheckItem: checkItem.id, type: constants_1.WORKSHEET_TYPE.CYCLE_COUNT }
587
+ });
588
+ if (worksheetDetail) {
589
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).update(worksheetDetail.id, {
590
+ status: hasDiscrepancies ? constants_1.WORKSHEET_STATUS.NOT_TALLY : constants_1.WORKSHEET_STATUS.DONE,
591
+ updater: this.user
592
+ });
593
+ }
594
+ }
595
+ if (totalInspectedQty > 0 && inventoryCheckItems.length > 0) {
596
+ const lastItem = inventoryCheckItems[inventoryCheckItems.length - 1];
597
+ lastItem.inspectedQty = ((_c = lastItem.inspectedQty) !== null && _c !== void 0 ? _c : 0) + totalInspectedQty;
598
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).update(lastItem.id, {
599
+ inspectedQty: lastItem.inspectedQty,
600
+ updater: this.user
601
+ });
602
+ }
603
+ }
604
+ async undoInspection(worksheetDetailName) {
605
+ let worksheetDetail = await this.findWorksheetDetail({ domain: this.domain, name: worksheetDetailName, status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.EXECUTING)) }, ['targetInventoryCheckItem', 'targetInventoryCheckItem.inventory']);
606
+ let targetInventoryCheckItem = worksheetDetail.targetInventoryCheckItem;
607
+ targetInventoryCheckItem.inspectedBatchNo = null;
608
+ targetInventoryCheckItem.inspectedQty = null;
609
+ targetInventoryCheckItem.inspectedWeight = null;
610
+ targetInventoryCheckItem.inspectedUomValue = null;
611
+ targetInventoryCheckItem.inspectedLocation = null;
612
+ targetInventoryCheckItem.inspectedExpirationDate = null;
613
+ targetInventoryCheckItem.status = targetInventoryCheckItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTING;
614
+ targetInventoryCheckItem.updater = this.user;
615
+ await this.updateOrderTargets([targetInventoryCheckItem]);
616
+ worksheetDetail.status = constants_1.WORKSHEET_STATUS.EXECUTING;
617
+ worksheetDetail.updater = this.user;
618
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
619
+ }
620
+ async undoInspectionCarton(productDetailId, cartonId, batchId, locationId, inventoryCheckNo, countNo) {
621
+ let qb = this.trxMgr.getRepository(warehouse_base_1.Inventory).createQueryBuilder('inv');
622
+ qb.where('inv.product_detail_id = :productDetailId', { productDetailId })
623
+ .andWhere('inv.carton_id = :cartonId', { cartonId })
624
+ .andWhere('inv.batch_id = :batchId', { batchId })
625
+ .andWhere('inv.location_id = :locationId', { locationId })
626
+ .andWhere('inv.domain_id = :domainId', { domainId: this.domain.id })
627
+ .andWhere('inv.status = :status', { status: warehouse_base_1.INVENTORY_STATUS.STORED });
628
+ const inventories = await qb.getMany();
629
+ const foundInventoryCheck = await this.trxMgr.getRepository(sales_base_1.InventoryCheck).findOne({
630
+ where: {
631
+ domain: this.domain,
632
+ name: inventoryCheckNo
633
+ }
634
+ });
635
+ const inventoryCheckItems = await Promise.all(inventories.map(inventory => this.trxMgr
636
+ .getRepository(sales_base_1.InventoryCheckItem)
637
+ .findOne({ where: { inventory: inventory.id, inventoryCheck: foundInventoryCheck.id, countNo } })));
638
+ for (const checkItem of inventoryCheckItems) {
639
+ checkItem.inspectedBatchNo = null;
640
+ checkItem.inspectedQty = null;
641
+ checkItem.inspectedWeight = null;
642
+ checkItem.inspectedUomValue = null;
643
+ checkItem.inspectedExpirationDate = null;
644
+ checkItem.inspectedLocation = null;
645
+ checkItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTING;
646
+ checkItem.updater = this.user;
647
+ let worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
648
+ where: { targetInventoryCheckItem: checkItem.id, type: constants_1.WORKSHEET_TYPE.CYCLE_COUNT },
649
+ relations: ['targetInventoryCheckItem']
650
+ });
651
+ if (worksheetDetail) {
652
+ worksheetDetail.status = constants_1.WORKSHEET_STATUS.EXECUTING;
653
+ worksheetDetail.updater = this.user;
654
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
655
+ }
656
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(checkItem);
657
+ }
658
+ }
659
+ async checkMissingInventory(worksheetDetailName) {
660
+ let worksheetDetail = await this.findExecutableWorksheetDetailByName(worksheetDetailName, constants_1.WORKSHEET_TYPE.CYCLE_COUNT, ['targetInventoryCheckItem']);
661
+ let targetInventoryCheckItem = worksheetDetail.targetInventoryCheckItem;
662
+ worksheetDetail.status = constants_1.WORKSHEET_STATUS.NOT_TALLY;
663
+ worksheetDetail.updater = this.user;
664
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
665
+ targetInventoryCheckItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.MISSING;
666
+ targetInventoryCheckItem.updater = this.user;
667
+ await this.updateOrderTargets([targetInventoryCheckItem]);
668
+ }
669
+ async checkMissingInventoryCarton(productDetailId, cartonId, batchId, locationId) {
670
+ let qb = this.trxMgr.getRepository(warehouse_base_1.Inventory).createQueryBuilder('inv');
671
+ qb.where('inv.product_detail_id = :productDetailId', { productDetailId })
672
+ .andWhere('inv.carton_id = :cartonId', { cartonId })
673
+ .andWhere('inv.batch_id = :batchId', { batchId })
674
+ .andWhere('inv.location_id = :locationId', { locationId });
675
+ const inventories = await qb.getMany();
676
+ const inventoryCheckItems = await Promise.all(inventories.map(inventory => this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).findOne({ where: { inventory: inventory.id } })));
677
+ for (const checkItem of inventoryCheckItems) {
678
+ checkItem.inspectedBatchNo = null;
679
+ checkItem.inspectedQty = null;
680
+ checkItem.inspectedWeight = null;
681
+ checkItem.inspectedUomValue = null;
682
+ checkItem.inspectedLocation = null;
683
+ checkItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.MISSING;
684
+ checkItem.updater = this.user;
685
+ let worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
686
+ where: { targetInventoryCheckItem: checkItem.id, type: constants_1.WORKSHEET_TYPE.CYCLE_COUNT },
687
+ relations: ['targetInventoryCheckItem']
688
+ });
689
+ if (worksheetDetail) {
690
+ worksheetDetail.status = constants_1.WORKSHEET_STATUS.NOT_TALLY;
691
+ worksheetDetail.updater = this.user;
692
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
693
+ }
694
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(checkItem);
695
+ }
696
+ }
697
+ async addExtraInventory(cycleCountNo, inspectedLocation, productDetailId, productId, inspectedBatchNo, inspectedQty, inspectedUomValue, countNo, inspectedExpirationDate) {
698
+ var _a;
699
+ let today = new Date(), year = today.getFullYear(), month = today.getMonth(), date = today.getDate();
700
+ const inventoryCheck = await this.findRefOrder(sales_base_1.InventoryCheck, {
701
+ name: cycleCountNo,
702
+ status: sales_base_1.ORDER_STATUS.INSPECTING
703
+ }, ['bizplace', 'bizplace.domain']);
704
+ const bizplace = await this.trxMgr.getRepository(biz_base_1.Bizplace).findOne({
705
+ where: { id: inventoryCheck.bizplace.id },
706
+ relations: ['domain']
707
+ });
708
+ const worksheet = await this.trxMgr.getRepository(entities_1.Worksheet).findOne({
709
+ where: {
710
+ domain: this.domain,
711
+ type: constants_1.WORKSHEET_TYPE.CYCLE_COUNT,
712
+ status: constants_1.WORKSHEET_STATUS.EXECUTING,
713
+ inventoryCheck
714
+ }
715
+ });
716
+ const location = await this.trxMgr.getRepository(warehouse_base_1.Location).findOne({
717
+ where: { domain: this.domain, name: inspectedLocation },
718
+ relations: ['warehouse']
719
+ });
720
+ const productDetail = await this.trxMgr.getRepository(product_base_1.ProductDetail).findOne({
721
+ where: { id: productDetailId }
722
+ });
723
+ const product = await this.trxMgr.getRepository(product_base_1.Product).findOne({
724
+ where: { id: productId }
725
+ });
726
+ // Check if quantity has decimals and validate against product settings
727
+ if (inspectedQty % 1 !== 0 && !product.isInventoryDecimal) {
728
+ throw new Error('Decimal quantities are not allowed for this product');
729
+ }
730
+ const total = await this.trxMgr.getRepository(warehouse_base_1.Inventory).count({
731
+ createdAt: (0, typeorm_1.MoreThan)(new Date(year, month, date))
732
+ });
733
+ const yy = String(year).substr(String(year).length - 2);
734
+ const mm = String(month + 1).padStart(2, '0');
735
+ const dd = String(date).padStart(2, '0');
736
+ const dateStr = yy + mm + dd;
737
+ let newInventory = new warehouse_base_1.Inventory();
738
+ newInventory.bizplace = bizplace;
739
+ newInventory.domain = this.domain;
740
+ newInventory.name = warehouse_base_1.InventoryNoGenerator.inventoryName();
741
+ newInventory.palletId = await (0, id_rule_base_1.generateId)({
742
+ domain: this.domain,
743
+ type: 'adjustment_pallet_id',
744
+ seed: {
745
+ batchId: inspectedBatchNo,
746
+ date: dateStr
747
+ }
748
+ });
749
+ const warehouseCartonSetting = await this.trxMgr.getRepository(setting_base_1.Setting).findOne({
750
+ where: { domain: this.domain, category: 'id-rule', name: 'enable-carton-label', value: true }
751
+ });
752
+ const partnerCartonSetting = await this.trxMgr.getRepository(setting_base_1.PartnerSetting).findOne({
753
+ where: {
754
+ setting: warehouseCartonSetting,
755
+ domain: this.domain,
756
+ partnerDomain: (_a = inventoryCheck.bizplace) === null || _a === void 0 ? void 0 : _a.domain,
757
+ value: true
758
+ }
759
+ });
760
+ if ((partnerCartonSetting === null || partnerCartonSetting === void 0 ? void 0 : partnerCartonSetting.value) || (warehouseCartonSetting === null || warehouseCartonSetting === void 0 ? void 0 : warehouseCartonSetting.value)) {
761
+ let cartonId = await (0, id_rule_base_1.generateId)({
762
+ domain: this.domain,
763
+ type: 'adjustment_carton_id',
764
+ seed: { date: dateStr }
765
+ });
766
+ if (!cartonId)
767
+ throw new Error('No adjustment carton id setting rule found');
768
+ newInventory.cartonId = cartonId;
769
+ }
770
+ newInventory.batchId = inspectedBatchNo;
771
+ newInventory.product = product;
772
+ newInventory.productDetail = productDetail;
773
+ newInventory.packingType = productDetail.packingType;
774
+ newInventory.packingSize = productDetail.packingSize;
775
+ newInventory.uom = productDetail.uom;
776
+ newInventory.qty = inspectedQty;
777
+ newInventory.uomValue = inspectedUomValue;
778
+ newInventory.expirationDate = inspectedExpirationDate;
779
+ newInventory.location = location;
780
+ newInventory.warehouse = location.warehouse;
781
+ newInventory.zone = location.zone;
782
+ newInventory.status = warehouse_base_1.INVENTORY_STATUS.CC_ADDED;
783
+ newInventory.creator = this.user;
784
+ newInventory.updater = this.user;
785
+ await this.trxMgr.getRepository(warehouse_base_1.Inventory).save(newInventory);
786
+ let targetInventoryCheckItem = new sales_base_1.InventoryCheckItem();
787
+ targetInventoryCheckItem.domain = this.domain;
788
+ targetInventoryCheckItem.bizplace = bizplace;
789
+ targetInventoryCheckItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.ADDED;
790
+ targetInventoryCheckItem.name = sales_base_1.OrderNoGenerator.inventoryCheckItem();
791
+ targetInventoryCheckItem.inventoryCheck = inventoryCheck;
792
+ targetInventoryCheckItem.inventory = newInventory;
793
+ targetInventoryCheckItem.inspectedBatchNo = inspectedBatchNo;
794
+ targetInventoryCheckItem.inspectedQty = inspectedQty;
795
+ targetInventoryCheckItem.inspectedUomValue = inspectedUomValue;
796
+ targetInventoryCheckItem.inspectedExpirationDate = inspectedExpirationDate;
797
+ targetInventoryCheckItem.inspectedLocation = location;
798
+ targetInventoryCheckItem.productDetail = productDetail;
799
+ targetInventoryCheckItem.product = product;
800
+ targetInventoryCheckItem.countNo = countNo;
801
+ targetInventoryCheckItem.creator = this.user;
802
+ targetInventoryCheckItem.updater = this.user;
803
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(targetInventoryCheckItem);
804
+ let worksheetDetail = new entities_1.WorksheetDetail();
805
+ worksheetDetail.domain = this.domain;
806
+ worksheetDetail.bizplace = bizplace;
807
+ worksheetDetail.worksheet = worksheet;
808
+ worksheetDetail.name = utils_1.WorksheetNoGenerator.cycleCountDetail();
809
+ worksheetDetail.targetInventoryCheckItem = targetInventoryCheckItem;
810
+ worksheetDetail.type = constants_1.WORKSHEET_TYPE.CYCLE_COUNT;
811
+ worksheetDetail.status = constants_1.WORKSHEET_STATUS.NOT_TALLY;
812
+ worksheetDetail.creator = this.user;
813
+ worksheetDetail.updater = this.user;
814
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
815
+ }
816
+ async relocateInventory(worksheetDetailName, inspectedBatchNo, inspectedQty, inspectedUomValue, inspectedLocationName) {
817
+ var _a;
818
+ let worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
819
+ where: { domain: this.domain, name: worksheetDetailName, type: constants_1.WORKSHEET_TYPE.CYCLE_COUNT },
820
+ relations: [
821
+ 'targetInventoryCheckItem',
822
+ 'targetInventoryCheckItem.inventory',
823
+ 'targetInventoryCheckItem.inventory.location'
824
+ ]
825
+ });
826
+ if (!worksheetDetail)
827
+ throw new Error('Failed to find worksheet detail');
828
+ let targetInventoryCheckItem = worksheetDetail.targetInventoryCheckItem;
829
+ const location = (_a = targetInventoryCheckItem === null || targetInventoryCheckItem === void 0 ? void 0 : targetInventoryCheckItem.inventory) === null || _a === void 0 ? void 0 : _a.location;
830
+ if (location.name === inspectedLocationName)
831
+ throw new Error(`You can't relocate at same location`);
832
+ const inspectedLocation = await this.trxMgr.getRepository(warehouse_base_1.Location).findOne({
833
+ where: { name: inspectedLocationName, domain: this.domain }
834
+ });
835
+ worksheetDetail.status = constants_1.WORKSHEET_STATUS.NOT_TALLY;
836
+ worksheetDetail.updater = this.user;
837
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
838
+ targetInventoryCheckItem.inspectedLocation = inspectedLocation;
839
+ targetInventoryCheckItem.inspectedBatchNo = inspectedBatchNo;
840
+ targetInventoryCheckItem.inspectedQty = inspectedQty;
841
+ targetInventoryCheckItem.inspectedWeight = 0;
842
+ targetInventoryCheckItem.inspectedUomValue = inspectedUomValue;
843
+ targetInventoryCheckItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.RELOCATED;
844
+ targetInventoryCheckItem.updater = this.user;
845
+ await this.updateOrderTargets([targetInventoryCheckItem]);
846
+ }
847
+ async relocateInventoryCarton(productDetailId, cartonId, batchId, locationId, inspectedBatchNo, inspectedQty, inspectedUomValue, inspectedLocationName) {
848
+ var _a, _b, _c, _d;
849
+ const productDetail = await this.trxMgr.getRepository(product_base_1.ProductDetail).findOne({
850
+ where: { id: productDetailId },
851
+ relations: ['product']
852
+ });
853
+ let qb = this.trxMgr
854
+ .getRepository(warehouse_base_1.Inventory)
855
+ .createQueryBuilder('inv')
856
+ .where('inv.product_detail_id = :productDetailId', { productDetailId })
857
+ .andWhere('inv.carton_id = :cartonId', { cartonId })
858
+ .andWhere('inv.batch_id = :batchId', { batchId })
859
+ .andWhere('inv.location_id = :locationId', { locationId });
860
+ let orderByField = 'created_at';
861
+ let orderByDirection = 'ASC';
862
+ switch (productDetail.product.pickingStrategy) {
863
+ case 'LIFO':
864
+ orderByDirection = 'DESC';
865
+ break;
866
+ case 'FEFO':
867
+ orderByField = 'expiration_date';
868
+ break;
869
+ case 'FMFO':
870
+ orderByField = 'manufacture_date';
871
+ break;
872
+ }
873
+ qb.addOrderBy(`"inv"."${orderByField}"`, orderByDirection);
874
+ if (['FEFO', 'FMFO'].includes(productDetail.product.pickingStrategy)) {
875
+ qb.addOrderBy('"inv"."created_at"', 'ASC');
876
+ }
877
+ const inventories = await qb.getMany();
878
+ if (inventories.length === 0) {
879
+ throw new Error('No inventories found.');
880
+ }
881
+ const location = await this.trxMgr.getRepository(warehouse_base_1.Location).findOne({
882
+ where: { id: locationId }
883
+ });
884
+ if (location.name === inspectedLocationName) {
885
+ throw new Error(`You can't relocate to the same location.`);
886
+ }
887
+ const inspectedLocation = await this.trxMgr.getRepository(warehouse_base_1.Location).findOne({
888
+ where: { name: inspectedLocationName, domain: this.domain }
889
+ });
890
+ if (!inspectedLocation) {
891
+ throw new Error(`Inspected location "${inspectedLocationName}" not found.`);
892
+ }
893
+ const inventoryIds = inventories.map(inv => inv.id);
894
+ const inventoryCheckItems = await this.trxMgr
895
+ .getRepository(sales_base_1.InventoryCheckItem)
896
+ .createQueryBuilder('inventoryCheckItem')
897
+ .leftJoinAndSelect('inventoryCheckItem.inventory', 'inventory')
898
+ .where('inventory.id IN (:...ids)', { ids: inventoryIds })
899
+ .andWhere('inventoryCheckItem.status = :status', { status: 'INSPECTING' })
900
+ .getMany();
901
+ if (inventoryCheckItems.length === 0) {
902
+ throw new Error('No inventory check items found.');
903
+ }
904
+ const totalOriginQty = inventoryCheckItems.reduce((total, item) => total + (item.originQty || 0), 0);
905
+ const totalOriginUomValue = inventoryCheckItems.reduce((total, item) => total + (item.originUomValue || 0), 0);
906
+ const hasQtyDiscrepancy = totalOriginQty !== inspectedQty;
907
+ const hasUomValueDiscrepancy = totalOriginUomValue !== inspectedUomValue;
908
+ const hasBatchNoDiscrepancy = inventoryCheckItems.some(checkItem => checkItem.originBatchNo !== inspectedBatchNo);
909
+ const hasLocationDiscrepancy = inventoryCheckItems.some(checkItem => checkItem.originLocationId !== inspectedLocation.id);
910
+ const hasDiscrepancies = hasQtyDiscrepancy || hasUomValueDiscrepancy || hasBatchNoDiscrepancy || hasLocationDiscrepancy;
911
+ let inventoryCheckItemStatus, worksheetDetailStatus;
912
+ if (inventoryCheckItems.length > 1) {
913
+ inventoryCheckItemStatus = hasDiscrepancies
914
+ ? sales_base_1.INVENTORY_CHECK_ITEM_STATUS.RELOCATED
915
+ : sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTED;
916
+ worksheetDetailStatus = hasDiscrepancies ? constants_1.WORKSHEET_STATUS.NOT_TALLY : constants_1.WORKSHEET_STATUS.DONE;
917
+ }
918
+ else {
919
+ inventoryCheckItemStatus = hasDiscrepancies
920
+ ? sales_base_1.INVENTORY_CHECK_ITEM_STATUS.RELOCATED
921
+ : sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTED;
922
+ worksheetDetailStatus = hasDiscrepancies ? constants_1.WORKSHEET_STATUS.NOT_TALLY : constants_1.WORKSHEET_STATUS.DONE;
923
+ }
924
+ let totalInspectedQty = inspectedQty;
925
+ let totalInspectedUomValue = inspectedUomValue;
926
+ for (const checkItem of inventoryCheckItems) {
927
+ const qtyToInspect = totalInspectedQty > 0 ? Math.min(totalInspectedQty, checkItem.originQty) : 0;
928
+ const uomValueToInspect = totalInspectedUomValue > 0 ? Math.min(totalInspectedUomValue, checkItem.originUomValue) : 0;
929
+ checkItem.inspectedQty = ((_a = checkItem.inspectedQty) !== null && _a !== void 0 ? _a : 0) + qtyToInspect;
930
+ totalInspectedQty -= qtyToInspect;
931
+ checkItem.inspectedUomValue = ((_b = checkItem.inspectedUomValue) !== null && _b !== void 0 ? _b : 0) + uomValueToInspect;
932
+ totalInspectedUomValue -= uomValueToInspect;
933
+ checkItem.inspectedBatchNo = inspectedBatchNo;
934
+ checkItem.inspectedLocation = inspectedLocation;
935
+ checkItem.status = inventoryCheckItemStatus;
936
+ checkItem.updater = this.user;
937
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(checkItem);
938
+ let worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
939
+ where: { targetInventoryCheckItem: checkItem.id, type: constants_1.WORKSHEET_TYPE.CYCLE_COUNT }
940
+ });
941
+ if (worksheetDetail) {
942
+ worksheetDetail.status = worksheetDetailStatus;
943
+ worksheetDetail.updater = this.user;
944
+ await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
945
+ }
946
+ }
947
+ if (totalInspectedQty > 0 && totalInspectedUomValue > 0 && inventoryCheckItems.length > 0) {
948
+ const lastItem = inventoryCheckItems[inventoryCheckItems.length - 1];
949
+ lastItem.inspectedQty = ((_c = lastItem.inspectedQty) !== null && _c !== void 0 ? _c : 0) + totalInspectedQty;
950
+ lastItem.inspectedUomValue = ((_d = lastItem.inspectedUomValue) !== null && _d !== void 0 ? _d : 0) + totalInspectedUomValue;
951
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(lastItem);
952
+ }
953
+ }
954
+ async completeCycleCount(inventoryCheckNo) {
955
+ const inventoryCheck = await this.findRefOrder(sales_base_1.InventoryCheck, {
956
+ name: inventoryCheckNo,
957
+ status: sales_base_1.ORDER_STATUS.INSPECTING
958
+ });
959
+ let worksheet = await this.trxMgr.getRepository(entities_1.Worksheet).findOne({
960
+ where: {
961
+ domain: this.domain,
962
+ status: constants_1.WORKSHEET_STATUS.EXECUTING,
963
+ type: (0, typeorm_1.In)([constants_1.WORKSHEET_TYPE.CYCLE_COUNT, constants_1.WORKSHEET_TYPE.CYCLE_COUNT_RECHECK]),
964
+ inventoryCheck
965
+ },
966
+ relations: [
967
+ 'worksheetDetails',
968
+ 'worksheetDetails.targetInventoryCheckItem',
969
+ 'worksheetDetails.targetInventoryCheckItem.inventory'
970
+ ]
971
+ });
972
+ this.checkRecordValidity(worksheet, { status: constants_1.WORKSHEET_STATUS.EXECUTING });
973
+ const worksheetDetails = worksheet.worksheetDetails;
974
+ const doneWorksheetDetails = worksheetDetails.filter(wsd => wsd.status === 'DONE');
975
+ const targetInventoryCheckItems = worksheetDetails.map((wsd) => wsd.targetInventoryCheckItem);
976
+ if (doneWorksheetDetails.length === worksheetDetails.length && worksheet.checkCount != 1) {
977
+ await (0, cycle_count_adjustment_1.cycleCountAdjustment)(this.trxMgr, this.domain, this.user, worksheet.name, inventoryCheck.name);
978
+ worksheet = await this.trxMgr.getRepository(entities_1.Worksheet).findOne({
979
+ domain: this.domain,
980
+ type: (0, typeorm_1.In)([constants_1.WORKSHEET_TYPE.CYCLE_COUNT, constants_1.WORKSHEET_TYPE.CYCLE_COUNT_RECHECK]),
981
+ inventoryCheck
982
+ });
983
+ }
984
+ else {
985
+ const { tallyTargetInventoryCheckItems, notTallyTargetInventoryCheckItems } = targetInventoryCheckItems.reduce((result, targetInventoryCheckItem) => {
986
+ if (targetInventoryCheckItem.status !== sales_base_1.INVENTORY_CHECK_ITEM_STATUS.INSPECTED) {
987
+ result.notTallyTargetInventoryCheckItems.push(targetInventoryCheckItem);
988
+ }
989
+ else {
990
+ result.tallyTargetInventoryCheckItems.push(targetInventoryCheckItem);
991
+ }
992
+ return result;
993
+ }, {
994
+ tallyTargetInventoryCheckItems: [],
995
+ notTallyTargetInventoryCheckItems: []
996
+ });
997
+ const tallyInventories = tallyTargetInventoryCheckItems.map(targetInventoryCheckItem => targetInventoryCheckItem.inventory);
998
+ tallyTargetInventoryCheckItems.forEach((targetInventoryCheckItem) => {
999
+ targetInventoryCheckItem.status = sales_base_1.INVENTORY_CHECK_ITEM_STATUS.TERMINATED;
1000
+ targetInventoryCheckItem.updater = this.user;
1001
+ });
1002
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheckItem).save(tallyTargetInventoryCheckItems, { chunk: 500 });
1003
+ // await this.trxMgr.getRepository(Inventory).save(tallyInventories, { chunk: 500 })
1004
+ if (tallyInventories.length > 0) {
1005
+ await this.trxMgr.getRepository(warehouse_base_1.Inventory).update(tallyInventories.map(inv => inv.id), {
1006
+ updater: this.user,
1007
+ lockInventory: false
1008
+ });
1009
+ }
1010
+ if (notTallyTargetInventoryCheckItems.length) {
1011
+ worksheet.status = constants_1.WORKSHEET_STATUS.NOT_TALLY;
1012
+ inventoryCheck.status = sales_base_1.ORDER_STATUS.PENDING_REVIEW;
1013
+ }
1014
+ else {
1015
+ worksheet.status = constants_1.WORKSHEET_STATUS.DONE;
1016
+ inventoryCheck.status = sales_base_1.ORDER_STATUS.DONE;
1017
+ }
1018
+ worksheet.endedAt = new Date();
1019
+ worksheet.updater = this.user;
1020
+ await this.trxMgr.getRepository(entities_1.Worksheet).save(worksheet);
1021
+ inventoryCheck.updater = this.user;
1022
+ await this.trxMgr.getRepository(sales_base_1.InventoryCheck).save(inventoryCheck);
1023
+ }
1024
+ return worksheet;
1025
+ }
1026
+ }
1027
+ exports.CycleCountWorksheetController = CycleCountWorksheetController;
1028
+ function formatDate(data) {
1029
+ if (data) {
1030
+ let date = {
1031
+ year: data.getFullYear().toString(),
1032
+ month: (data.getMonth() + 1).toString(),
1033
+ day: data.getDate().toString()
1034
+ };
1035
+ return `${date.year}-${date.month.padStart(2, '0')}-${date.day.padStart(2, '0')}`;
1036
+ }
1037
+ return null;
1038
+ }
1039
+ //# sourceMappingURL=cycle-count-worksheet-controller.js.map