@things-factory/worksheet-base 8.0.0-beta.8 → 8.0.0

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 (288) hide show
  1. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +2 -0
  2. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  3. package/dist-server/graphql/resolvers/worksheet/vas-candidates.d.ts +2 -0
  4. package/dist-server/tsconfig.tsbuildinfo +1 -1
  5. package/dist-server/utils/inventory-util.d.ts +2 -0
  6. package/package.json +17 -17
  7. package/server/constants/index.ts +5 -0
  8. package/server/constants/rule-type.ts +4 -0
  9. package/server/constants/target-type.ts +6 -0
  10. package/server/constants/template.ts +12 -0
  11. package/server/constants/transaction-type.ts +9 -0
  12. package/server/constants/worksheet.ts +38 -0
  13. package/server/controllers/ecommerce/ecommerce-controller.ts +209 -0
  14. package/server/controllers/ecommerce/index.ts +2 -0
  15. package/server/controllers/ecommerce/sellercraft-controller.ts +358 -0
  16. package/server/controllers/inbound/index.ts +4 -0
  17. package/server/controllers/inbound/putaway-returning-worksheet-controller.ts +450 -0
  18. package/server/controllers/inbound/putaway-worksheet-controller.ts +454 -0
  19. package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +291 -0
  20. package/server/controllers/inbound/unloading-worksheet-controller.ts +1400 -0
  21. package/server/controllers/index.ts +21 -0
  22. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +537 -0
  23. package/server/controllers/inspect/index.ts +1 -0
  24. package/server/controllers/outbound/index.ts +5 -0
  25. package/server/controllers/outbound/loading-worksheet-controller.ts +377 -0
  26. package/server/controllers/outbound/packing-worksheet-controller.ts +449 -0
  27. package/server/controllers/outbound/picking-worksheet-controller.ts +1769 -0
  28. package/server/controllers/outbound/returning-worksheet-controller.ts +254 -0
  29. package/server/controllers/outbound/sorting-worksheet-controller.ts +554 -0
  30. package/server/controllers/render-elccl-grn.ts +228 -0
  31. package/server/controllers/render-fm-grn.ts +287 -0
  32. package/server/controllers/render-grn.ts +285 -0
  33. package/server/controllers/render-invoices.ts +201 -0
  34. package/server/controllers/render-job-sheet.ts +208 -0
  35. package/server/controllers/render-kimeda-grn.ts +185 -0
  36. package/server/controllers/render-manifest.ts +76 -0
  37. package/server/controllers/render-manual-do.ts +227 -0
  38. package/server/controllers/render-orientage-do.ts +376 -0
  39. package/server/controllers/render-orientage-grn.ts +191 -0
  40. package/server/controllers/render-po.ts +182 -0
  41. package/server/controllers/render-ro-do.ts +404 -0
  42. package/server/controllers/render-seebuu-grn.ts +208 -0
  43. package/server/controllers/vas/index.ts +1 -0
  44. package/server/controllers/vas/vas-worksheet-controller.ts +848 -0
  45. package/server/controllers/worksheet-controller.ts +1267 -0
  46. package/server/entities/index.ts +8 -0
  47. package/server/entities/warehouse-bizplace-onhand-inventory.ts +148 -0
  48. package/server/entities/worksheet-detail.ts +106 -0
  49. package/server/entities/worksheet-movement.ts +34 -0
  50. package/server/entities/worksheet.ts +100 -0
  51. package/server/graphql/index.ts +7 -0
  52. package/server/graphql/resolvers/index.ts +8 -0
  53. package/server/graphql/resolvers/pallet/index.ts +7 -0
  54. package/server/graphql/resolvers/pallet/pallet-outbound.ts +92 -0
  55. package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +137 -0
  56. package/server/graphql/resolvers/worksheet/cancel-draft-release-order.ts +20 -0
  57. package/server/graphql/resolvers/worksheet/check-inventory-release.ts +37 -0
  58. package/server/graphql/resolvers/worksheet/check-stock-take-current-location.ts +63 -0
  59. package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +213 -0
  60. package/server/graphql/resolvers/worksheet/create-worksheet.ts +21 -0
  61. package/server/graphql/resolvers/worksheet/cross-dock-picking.ts +173 -0
  62. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +211 -0
  63. package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +79 -0
  64. package/server/graphql/resolvers/worksheet/delete-worksheet.ts +21 -0
  65. package/server/graphql/resolvers/worksheet/delivery-order-by-worksheet.ts +104 -0
  66. package/server/graphql/resolvers/worksheet/fetch-delivery-order-ro.ts +191 -0
  67. package/server/graphql/resolvers/worksheet/fetch-sellercraft-document.ts +69 -0
  68. package/server/graphql/resolvers/worksheet/find-release-orders-by-task-no.ts +36 -0
  69. package/server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.ts +29 -0
  70. package/server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.ts +80 -0
  71. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.ts +100 -0
  72. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.ts +26 -0
  73. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +51 -0
  74. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.ts +17 -0
  75. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.ts +69 -0
  76. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.ts +65 -0
  77. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.ts +54 -0
  78. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +114 -0
  79. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.ts +45 -0
  80. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.ts +35 -0
  81. package/server/graphql/resolvers/worksheet/generate-worksheet/index.ts +23 -0
  82. package/server/graphql/resolvers/worksheet/having-vas.ts +45 -0
  83. package/server/graphql/resolvers/worksheet/index.ts +142 -0
  84. package/server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.ts +24 -0
  85. package/server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.ts +49 -0
  86. package/server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.ts +18 -0
  87. package/server/graphql/resolvers/worksheet/inspecting/complete-inspection.ts +41 -0
  88. package/server/graphql/resolvers/worksheet/inspecting/index.ts +17 -0
  89. package/server/graphql/resolvers/worksheet/inspecting/inspecting.ts +30 -0
  90. package/server/graphql/resolvers/worksheet/inspecting/relocate-pallet.ts +46 -0
  91. package/server/graphql/resolvers/worksheet/inspecting/undo-inspection.ts +23 -0
  92. package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +150 -0
  93. package/server/graphql/resolvers/worksheet/loaded-inventories.ts +40 -0
  94. package/server/graphql/resolvers/worksheet/loading/activate-loading.ts +73 -0
  95. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +165 -0
  96. package/server/graphql/resolvers/worksheet/loading/index.ts +11 -0
  97. package/server/graphql/resolvers/worksheet/loading/loading.ts +46 -0
  98. package/server/graphql/resolvers/worksheet/loading/undo-loading.ts +25 -0
  99. package/server/graphql/resolvers/worksheet/loading-worksheet.ts +150 -0
  100. package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +34 -0
  101. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +69 -0
  102. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +102 -0
  103. package/server/graphql/resolvers/worksheet/packing/index.ts +13 -0
  104. package/server/graphql/resolvers/worksheet/packing/packing.ts +59 -0
  105. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +70 -0
  106. package/server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.ts +24 -0
  107. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +378 -0
  108. package/server/graphql/resolvers/worksheet/palletizing-pallets.ts +142 -0
  109. package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +234 -0
  110. package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +40 -0
  111. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +98 -0
  112. package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +50 -0
  113. package/server/graphql/resolvers/worksheet/picking/assign-picking-worker.ts +44 -0
  114. package/server/graphql/resolvers/worksheet/picking/batch-picking.ts +32 -0
  115. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +137 -0
  116. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +282 -0
  117. package/server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts +121 -0
  118. package/server/graphql/resolvers/worksheet/picking/index.ts +31 -0
  119. package/server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.ts +35 -0
  120. package/server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.ts +96 -0
  121. package/server/graphql/resolvers/worksheet/picking/picking.ts +55 -0
  122. package/server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.ts +52 -0
  123. package/server/graphql/resolvers/worksheet/picking/scan-product-picking.ts +25 -0
  124. package/server/graphql/resolvers/worksheet/picking/seal-tote.ts +25 -0
  125. package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +31 -0
  126. package/server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts +24 -0
  127. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +147 -0
  128. package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +242 -0
  129. package/server/graphql/resolvers/worksheet/putaway/activate-putaway.ts +51 -0
  130. package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +105 -0
  131. package/server/graphql/resolvers/worksheet/putaway/index.ts +11 -0
  132. package/server/graphql/resolvers/worksheet/putaway/putaway.ts +26 -0
  133. package/server/graphql/resolvers/worksheet/putaway/undo-putaway.ts +25 -0
  134. package/server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.ts +55 -0
  135. package/server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.ts +38 -0
  136. package/server/graphql/resolvers/worksheet/putaway-return/index.ts +11 -0
  137. package/server/graphql/resolvers/worksheet/putaway-return/putaway-return.ts +30 -0
  138. package/server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.ts +29 -0
  139. package/server/graphql/resolvers/worksheet/putaway-returning-worksheet.ts +83 -0
  140. package/server/graphql/resolvers/worksheet/putaway-worksheet.ts +82 -0
  141. package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +133 -0
  142. package/server/graphql/resolvers/worksheet/reject-cancellation-release-order.ts +186 -0
  143. package/server/graphql/resolvers/worksheet/relocate-pallet.ts +67 -0
  144. package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +127 -0
  145. package/server/graphql/resolvers/worksheet/return-worksheet.ts +70 -0
  146. package/server/graphql/resolvers/worksheet/returning/activate-return.ts +24 -0
  147. package/server/graphql/resolvers/worksheet/returning/complete-return.ts +39 -0
  148. package/server/graphql/resolvers/worksheet/returning/index.ts +9 -0
  149. package/server/graphql/resolvers/worksheet/returning/returning.ts +26 -0
  150. package/server/graphql/resolvers/worksheet/sorting/activate-sorting.ts +25 -0
  151. package/server/graphql/resolvers/worksheet/sorting/complete-order-sorting.ts +40 -0
  152. package/server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.ts +23 -0
  153. package/server/graphql/resolvers/worksheet/sorting/index.ts +13 -0
  154. package/server/graphql/resolvers/worksheet/sorting/scan-product-sorting.ts +31 -0
  155. package/server/graphql/resolvers/worksheet/sorting/sorting-product.ts +32 -0
  156. package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +87 -0
  157. package/server/graphql/resolvers/worksheet/transfer.ts +176 -0
  158. package/server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.ts +54 -0
  159. package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +78 -0
  160. package/server/graphql/resolvers/worksheet/unloading/activate-unloading.ts +56 -0
  161. package/server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.ts +25 -0
  162. package/server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.ts +25 -0
  163. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +76 -0
  164. package/server/graphql/resolvers/worksheet/unloading/index.ts +21 -0
  165. package/server/graphql/resolvers/worksheet/unloading/scan-product-unload.ts +26 -0
  166. package/server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts +26 -0
  167. package/server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts +24 -0
  168. package/server/graphql/resolvers/worksheet/unloading/undo-unloading.ts +25 -0
  169. package/server/graphql/resolvers/worksheet/unloading/unload.ts +26 -0
  170. package/server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.ts +28 -0
  171. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.ts +29 -0
  172. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +91 -0
  173. package/server/graphql/resolvers/worksheet/unloading-return/index.ts +9 -0
  174. package/server/graphql/resolvers/worksheet/unloading-return-worksheet.ts +75 -0
  175. package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +98 -0
  176. package/server/graphql/resolvers/worksheet/update-worksheet.ts +25 -0
  177. package/server/graphql/resolvers/worksheet/vas/activate-vas.ts +25 -0
  178. package/server/graphql/resolvers/worksheet/vas/assign-vas-inventories.ts +25 -0
  179. package/server/graphql/resolvers/worksheet/vas/complete-vas.ts +72 -0
  180. package/server/graphql/resolvers/worksheet/vas/execute-vas.ts +31 -0
  181. package/server/graphql/resolvers/worksheet/vas/index.ts +15 -0
  182. package/server/graphql/resolvers/worksheet/vas/undo-vas-inventory.ts +24 -0
  183. package/server/graphql/resolvers/worksheet/vas/undo-vas.ts +24 -0
  184. package/server/graphql/resolvers/worksheet/vas-candidates.ts +177 -0
  185. package/server/graphql/resolvers/worksheet/vas-inventories.ts +41 -0
  186. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +1182 -0
  187. package/server/graphql/resolvers/worksheet/vas-transactions/index.ts +5 -0
  188. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.ts +56 -0
  189. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/relabeling.ts +20 -0
  190. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.ts +27 -0
  191. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/repalletizing.ts +14 -0
  192. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/unpacking.ts +14 -0
  193. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.ts +96 -0
  194. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.ts +93 -0
  195. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.ts +4 -0
  196. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.ts +105 -0
  197. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.ts +40 -0
  198. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +236 -0
  199. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.ts +3 -0
  200. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +402 -0
  201. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +166 -0
  202. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.ts +116 -0
  203. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.ts +3 -0
  204. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.ts +167 -0
  205. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.ts +74 -0
  206. package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.ts +20 -0
  207. package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.ts +2 -0
  208. package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.ts +164 -0
  209. package/server/graphql/resolvers/worksheet/vas-worksheet.ts +110 -0
  210. package/server/graphql/resolvers/worksheet/worksheet-by-order-no.ts +43 -0
  211. package/server/graphql/resolvers/worksheet/worksheet-with-pagination.ts +46 -0
  212. package/server/graphql/resolvers/worksheet/worksheet.ts +330 -0
  213. package/server/graphql/resolvers/worksheet/worksheets.ts +493 -0
  214. package/server/graphql/resolvers/worksheet-detail/check-progressing-pallet.ts +22 -0
  215. package/server/graphql/resolvers/worksheet-detail/create-worksheet-detail.ts +38 -0
  216. package/server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.ts +18 -0
  217. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +206 -0
  218. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts +165 -0
  219. package/server/graphql/resolvers/worksheet-detail/generate-carton-id.ts +26 -0
  220. package/server/graphql/resolvers/worksheet-detail/generate-pallet-id.ts +94 -0
  221. package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +259 -0
  222. package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +142 -0
  223. package/server/graphql/resolvers/worksheet-detail/index.ts +34 -0
  224. package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +165 -0
  225. package/server/graphql/resolvers/worksheet-detail/update-worksheet-detail.ts +39 -0
  226. package/server/graphql/resolvers/worksheet-detail/worksheet-detail.ts +19 -0
  227. package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +56 -0
  228. package/server/graphql/resolvers/worksheet-detail/worksheet-details.ts +21 -0
  229. package/server/graphql/resolvers/worksheet-movement/create-worksheet-movement.ts +17 -0
  230. package/server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.ts +12 -0
  231. package/server/graphql/resolvers/worksheet-movement/index.ts +17 -0
  232. package/server/graphql/resolvers/worksheet-movement/update-worksheet-movement.ts +15 -0
  233. package/server/graphql/resolvers/worksheet-movement/worksheet-movement.ts +10 -0
  234. package/server/graphql/resolvers/worksheet-movement/worksheet-movements.ts +14 -0
  235. package/server/graphql/types/index.ts +15 -0
  236. package/server/graphql/types/pallet/index.ts +12 -0
  237. package/server/graphql/types/pallet/pallet.ts +7 -0
  238. package/server/graphql/types/worksheet/arrival-notice-worksheet.ts +8 -0
  239. package/server/graphql/types/worksheet/batch-pick-worksheet-info.ts +9 -0
  240. package/server/graphql/types/worksheet/contact-point-info.ts +12 -0
  241. package/server/graphql/types/worksheet/cycle-count-worksheet.ts +16 -0
  242. package/server/graphql/types/worksheet/delivery-info.ts +11 -0
  243. package/server/graphql/types/worksheet/delivery-order-info.ts +25 -0
  244. package/server/graphql/types/worksheet/delivery-order-ro.ts +15 -0
  245. package/server/graphql/types/worksheet/delivery-worksheet.ts +7 -0
  246. package/server/graphql/types/worksheet/executing-worksheet.ts +8 -0
  247. package/server/graphql/types/worksheet/find-release-orders-by-task-no.ts +8 -0
  248. package/server/graphql/types/worksheet/goods-delivery-note.ts +8 -0
  249. package/server/graphql/types/worksheet/index.ts +750 -0
  250. package/server/graphql/types/worksheet/inventory-check-worksheet.ts +7 -0
  251. package/server/graphql/types/worksheet/loaded-worksheet-detail.ts +9 -0
  252. package/server/graphql/types/worksheet/multiple-release-good-worksheet.ts +8 -0
  253. package/server/graphql/types/worksheet/my-picking-assignment-status.ts +9 -0
  254. package/server/graphql/types/worksheet/new-worksheet.ts +10 -0
  255. package/server/graphql/types/worksheet/picking-assignment-status.ts +9 -0
  256. package/server/graphql/types/worksheet/product-approval.ts +11 -0
  257. package/server/graphql/types/worksheet/release-good-worksheet.ts +8 -0
  258. package/server/graphql/types/worksheet/return-order-worksheet.ts +8 -0
  259. package/server/graphql/types/worksheet/sellercraft-document.ts +8 -0
  260. package/server/graphql/types/worksheet/vas-order-worksheet.ts +7 -0
  261. package/server/graphql/types/worksheet/vas-worksheet.ts +8 -0
  262. package/server/graphql/types/worksheet/worksheet-detail-info.ts +68 -0
  263. package/server/graphql/types/worksheet/worksheet-info.ts +33 -0
  264. package/server/graphql/types/worksheet/worksheet-list.ts +8 -0
  265. package/server/graphql/types/worksheet/worksheet-patch.ts +19 -0
  266. package/server/graphql/types/worksheet/worksheet-with-pagination.ts +9 -0
  267. package/server/graphql/types/worksheet/worksheet.ts +34 -0
  268. package/server/graphql/types/worksheet-detail/index.ts +81 -0
  269. package/server/graphql/types/worksheet-detail/inventory-detail.ts +39 -0
  270. package/server/graphql/types/worksheet-detail/new-worksheet-detail.ts +20 -0
  271. package/server/graphql/types/worksheet-detail/pallet-info.ts +8 -0
  272. package/server/graphql/types/worksheet-detail/worksheet-detail-list.ts +8 -0
  273. package/server/graphql/types/worksheet-detail/worksheet-detail-patch.ts +28 -0
  274. package/server/graphql/types/worksheet-detail/worksheet-detail.ts +29 -0
  275. package/server/graphql/types/worksheet-movement/index.ts +30 -0
  276. package/server/graphql/types/worksheet-movement/new-worksheet-movement.ts +8 -0
  277. package/server/graphql/types/worksheet-movement/worksheet-movement-list.ts +8 -0
  278. package/server/graphql/types/worksheet-movement/worksheet-movement-patch.ts +8 -0
  279. package/server/graphql/types/worksheet-movement/worksheet-movement.ts +10 -0
  280. package/server/index.ts +14 -0
  281. package/server/middlewares/index.ts +3 -0
  282. package/server/migrations/index.ts +9 -0
  283. package/server/routes.ts +80 -0
  284. package/server/utils/datetime-util.ts +54 -0
  285. package/server/utils/index.ts +4 -0
  286. package/server/utils/inventory-util.ts +390 -0
  287. package/server/utils/worksheet-no-generator.ts +206 -0
  288. package/server/utils/worksheet-util.ts +85 -0
@@ -0,0 +1,454 @@
1
+ import { Equal, In, Not } from 'typeorm'
2
+
3
+ import { Bizplace } from '@things-factory/biz-base'
4
+ import {
5
+ ArrivalNotice,
6
+ ORDER_INVENTORY_STATUS,
7
+ ORDER_PRODUCT_STATUS,
8
+ ORDER_STATUS,
9
+ ORDER_TYPES,
10
+ OrderInventory,
11
+ OrderNoGenerator
12
+ } from '@things-factory/sales-base'
13
+ import {
14
+ Inventory,
15
+ INVENTORY_STATUS,
16
+ INVENTORY_TRANSACTION_TYPE,
17
+ Location,
18
+ LOCATION_TYPE,
19
+ Pallet,
20
+ Warehouse
21
+ } from '@things-factory/warehouse-base'
22
+
23
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
24
+ import { Worksheet, WorksheetDetail } from '../../entities'
25
+ import { switchLocationStatus } from '../../utils'
26
+ import { VasWorksheetController } from '../vas/vas-worksheet-controller'
27
+
28
+ export class PutawayWorksheetController extends VasWorksheetController {
29
+ async generatePutawayWorksheet(arrivalNoticeNo: string, inventories: Inventory[]): Promise<Worksheet> {
30
+ //@ts-ignore
31
+ let arrivalNotice: ArrivalNotice = await this.findRefOrder(
32
+ //@ts-ignore
33
+ ArrivalNotice,
34
+ { domain: { id: this.domain.id }, name: arrivalNoticeNo },
35
+ ['bizplace']
36
+ )
37
+
38
+ const bizplace: Bizplace = arrivalNotice.bizplace
39
+ const unloadingWorksheet: Worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.UNLOADING, [
40
+ 'bufferLocation'
41
+ ])
42
+ const bufferLocation: Location = unloadingWorksheet.bufferLocation
43
+
44
+ // Check whether putaway worksheet is exists or not
45
+ let worksheet: Worksheet
46
+ try {
47
+ worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.PUTAWAY)
48
+ } catch (e) {}
49
+
50
+ let oiStatus: string = ORDER_PRODUCT_STATUS.UNLOADED // Default status of order inventories is UNLOADED
51
+ let wsdStatus: string = WORKSHEET_STATUS.DEACTIVATED // Default status of worksheet is DEACTIVATED
52
+ if (!worksheet) {
53
+ // If it's not exists create new putaway worksheet
54
+ worksheet = await this.createWorksheet(arrivalNotice, WORKSHEET_TYPE.PUTAWAY, { bufferLocation })
55
+ } else {
56
+ // If there is putaway worksheet. It means unloading is completed partially.
57
+ // So status of newly created worksheet details and order inventories should be changed to
58
+ // Executing situation.
59
+ oiStatus = ORDER_PRODUCT_STATUS.PUTTING_AWAY // Default status = PUTTING_AWAY
60
+ wsdStatus = WORKSHEET_STATUS.EXECUTING // Default status = EXECUTING
61
+ }
62
+
63
+ if (inventories.some((inv: Inventory) => !(inv instanceof Inventory))) {
64
+ inventories = await this.trxMgr.getRepository(Inventory).findByIds(inventories.map((inv: Inventory) => inv.id))
65
+ }
66
+
67
+ let worksheetDetails: WorksheetDetail[] = []
68
+ for (let inventory of inventories) {
69
+ inventory.status = INVENTORY_STATUS.PUTTING_AWAY
70
+ inventory.updater = this.user
71
+ inventory = await this.trxMgr.getRepository(Inventory).save(inventory)
72
+
73
+ // check if there's existing orderInventory
74
+ let targetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({
75
+ where: { inventory: { id: inventory.id } }
76
+ })
77
+
78
+ // if no existing orderInventory, create new one
79
+ if (!targetInventory) {
80
+ targetInventory = new OrderInventory()
81
+ targetInventory.domain = this.domain
82
+ targetInventory.bizplace = bizplace
83
+ targetInventory.name = OrderNoGenerator.orderInventory()
84
+ targetInventory.status = oiStatus
85
+ targetInventory.type = ORDER_TYPES.ARRIVAL_NOTICE
86
+ targetInventory.arrivalNotice = arrivalNotice
87
+ targetInventory.inventory = inventory
88
+ targetInventory.creator = this.user
89
+ targetInventory.updater = this.user
90
+ targetInventory = await this.trxMgr.getRepository(OrderInventory).save(targetInventory)
91
+ }
92
+
93
+ const newWorksheetDetails: WorksheetDetail[] = await this.createWorksheetDetails(
94
+ worksheet,
95
+ WORKSHEET_TYPE.PUTAWAY,
96
+ [targetInventory],
97
+ { status: wsdStatus, fromLocation: bufferLocation }
98
+ )
99
+
100
+ worksheetDetails.push(...newWorksheetDetails)
101
+ }
102
+
103
+ return {
104
+ ...worksheet,
105
+ worksheetDetails
106
+ }
107
+ }
108
+
109
+ async activatePutaway(worksheetNo: string, putawayWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet> {
110
+ let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PUTAWAY, [
111
+ 'arrivalNotice',
112
+ 'worksheetDetails',
113
+ 'worksheetDetails.targetInventory'
114
+ ])
115
+
116
+ let arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
117
+ const nonFinishedVasCnt: number = await this.trxMgr.getRepository(Worksheet).count({
118
+ where: {
119
+ domain: { id: this.domain.id },
120
+ arrivalNotice: { id: arrivalNotice.id },
121
+ type: WORKSHEET_TYPE.VAS,
122
+ status: Not(Equal(WORKSHEET_STATUS.DONE))
123
+ }
124
+ })
125
+ if (nonFinishedVasCnt) return
126
+
127
+ const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
128
+ const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {
129
+ let targetInventory: OrderInventory = wsd.targetInventory
130
+ targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY
131
+ targetInventory.updater = this.user
132
+ return targetInventory
133
+ })
134
+ await this.updateOrderTargets(targetInventories)
135
+
136
+ arrivalNotice.status = ORDER_STATUS.PUTTING_AWAY
137
+ arrivalNotice.updater = this.user
138
+ await this.updateRefOrder(arrivalNotice)
139
+ return this.activateWorksheet(worksheet, worksheetDetails, putawayWorksheetDetails)
140
+ }
141
+
142
+ async completePutaway(arrivalNoticeNo: string): Promise<Worksheet> {
143
+ // Because of partial unloading current status of arrivalNotice can be PUTTING_AWAY or PROCESSING
144
+ // PUTTING_AWAY means unloading is completely finished.
145
+ // PROCESSING means some products are still being unloaded.
146
+ //@ts-ignore
147
+ let arrivalNotice: ArrivalNotice = await this.findRefOrder(ArrivalNotice, {
148
+ name: arrivalNoticeNo,
149
+ status: In([ORDER_STATUS.PUTTING_AWAY, ORDER_STATUS.PROCESSING])
150
+ })
151
+
152
+ // Check whether unloading is done or not.
153
+ const unloadingWorksheetCnt: number = await this.trxMgr.getRepository(Worksheet).count({
154
+ where: {
155
+ domain: { id: this.domain.id },
156
+ arrivalNotice: { id: arrivalNotice.id },
157
+ type: WORKSHEET_TYPE.UNLOADING,
158
+ status: WORKSHEET_STATUS.EXECUTING
159
+ }
160
+ })
161
+ if (unloadingWorksheetCnt) throw new Error(`Unloading is not completed yet`)
162
+
163
+ const putawayWorksheet: Worksheet = await this.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.PUTAWAY, [
164
+ 'bufferLocation'
165
+ ])
166
+ await switchLocationStatus(this.domain, putawayWorksheet.bufferLocation, this.user, this.trxMgr)
167
+ return await this.completeWorksheet(putawayWorksheet, ORDER_STATUS.DONE)
168
+ }
169
+
170
+ async putaway(
171
+ worksheetDetailName: [string],
172
+ palletId: string,
173
+ cartonId: string,
174
+ locationName: string
175
+ ): Promise<void> {
176
+ const reusablePallet: Pallet = await this.trxMgr.getRepository(Pallet).findOne({
177
+ where: { domain: { id: this.domain.id }, name: palletId }
178
+ })
179
+
180
+ if (reusablePallet) {
181
+ await this.putawayPallets(worksheetDetailName[0], reusablePallet, locationName)
182
+ } else if (cartonId) {
183
+ await this.putawayCarton(worksheetDetailName, cartonId, locationName)
184
+ } else {
185
+ await this.putawayPallet(worksheetDetailName[0], palletId, locationName)
186
+ }
187
+ }
188
+
189
+ async putawayPallets(worksheetDetailName: string, reusablePallet: Pallet, locationName: string): Promise<void> {
190
+ const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(
191
+ worksheetDetailName,
192
+ WORKSHEET_TYPE.PUTAWAY,
193
+ [
194
+ 'worksheet',
195
+ 'worksheet.arrivalNotice',
196
+ 'worksheet.worksheetDetails',
197
+ 'worksheet.worksheetDetails.targetInventory',
198
+ 'worksheet.worksheetDetails.targetInventory.inventory'
199
+ ]
200
+ )
201
+
202
+ const worksheet: Worksheet = worksheetDetail.worksheet
203
+ const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
204
+ const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
205
+ const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({
206
+ where: {
207
+ domain: { id: this.domain.id },
208
+ reusablePallet: { id: reusablePallet.id },
209
+ refOrderId: arrivalNotice.id,
210
+ status: In([INVENTORY_STATUS.PUTTING_AWAY, INVENTORY_STATUS.UNLOADED])
211
+ }
212
+ })
213
+
214
+ for (let inventory of inventories) {
215
+ const worksheetDetail: WorksheetDetail = worksheetDetails.find(
216
+ (wsd: WorksheetDetail) => wsd.targetInventory.inventory.name === inventory.name
217
+ )
218
+
219
+ let targetInventory: OrderInventory = worksheetDetail.targetInventory
220
+ inventory = targetInventory.inventory
221
+
222
+ let location: Location = await this.trxMgr.getRepository(Location).findOne({
223
+ where: {
224
+ domain: { id: this.domain.id },
225
+ name: locationName,
226
+ type: In([
227
+ LOCATION_TYPE.SHELF,
228
+ LOCATION_TYPE.BUFFER,
229
+ LOCATION_TYPE.FLOOR,
230
+ LOCATION_TYPE.QUARANTINE,
231
+ LOCATION_TYPE.RESERVE
232
+ ])
233
+ },
234
+ relations: ['warehouse']
235
+ })
236
+ if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))
237
+ const warehouse: Warehouse = location.warehouse
238
+ const zone: string = location.zone
239
+
240
+ inventory.location = location
241
+ inventory.status = INVENTORY_STATUS.STORED
242
+ inventory.warehouse = warehouse
243
+ inventory.zone = zone
244
+ await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)
245
+
246
+ targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
247
+ targetInventory.updater = this.user
248
+ await this.updateOrderTargets([targetInventory])
249
+
250
+ worksheetDetail.status = WORKSHEET_STATUS.DONE
251
+ worksheetDetail.updater = this.user
252
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
253
+ }
254
+ }
255
+
256
+ async putawayCarton(worksheetDetailName: [string], cartonId: string, locationName: string): Promise<void> {
257
+ const worksheetDetails: WorksheetDetail[] = await this.findExecutableWorksheetDetailByNames(
258
+ worksheetDetailName,
259
+ WORKSHEET_TYPE.PUTAWAY,
260
+ ['worksheet', 'worksheet.arrivalNotice', 'targetInventory', 'targetInventory.inventory']
261
+ )
262
+
263
+ for (var i = 0; i < worksheetDetails.length; i++) {
264
+ const worksheetDetail = worksheetDetails[i]
265
+ const worksheet: Worksheet = worksheetDetail.worksheet
266
+ const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
267
+ let targetInventory: OrderInventory = worksheetDetail.targetInventory
268
+ let inventory: Inventory = targetInventory.inventory
269
+
270
+ if (inventory.cartonId !== cartonId) {
271
+ throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('cartonId', cartonId, inventory.cartonId))
272
+ }
273
+
274
+ const location: Location = await this.trxMgr.getRepository(Location).findOne({
275
+ where: {
276
+ domain: { id: this.domain.id },
277
+ name: locationName,
278
+ type: In([
279
+ LOCATION_TYPE.SHELF,
280
+ LOCATION_TYPE.BUFFER,
281
+ LOCATION_TYPE.FLOOR,
282
+ LOCATION_TYPE.BIN,
283
+ LOCATION_TYPE.QUARANTINE,
284
+ LOCATION_TYPE.RESERVE
285
+ ])
286
+ },
287
+ relations: ['warehouse']
288
+ })
289
+
290
+ if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))
291
+ const warehouse: Warehouse = location.warehouse
292
+ //@ts-ignore
293
+ const zone: string = warehouse.zone
294
+
295
+ inventory.location = location
296
+ inventory.status = INVENTORY_STATUS.STORED
297
+ inventory.warehouse = warehouse
298
+ inventory.zone = zone
299
+ await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)
300
+
301
+ targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
302
+ targetInventory.updater = this.user
303
+ await this.updateOrderTargets([targetInventory])
304
+
305
+ worksheetDetail.status = WORKSHEET_STATUS.DONE
306
+ worksheetDetail.updater = this.user
307
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
308
+ }
309
+ }
310
+
311
+ async putawayPallet(worksheetDetailName: string, palletId: string, locationName: string): Promise<void> {
312
+ const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(
313
+ worksheetDetailName,
314
+ WORKSHEET_TYPE.PUTAWAY,
315
+ ['worksheet', 'worksheet.arrivalNotice', 'targetInventory', 'targetInventory.inventory']
316
+ )
317
+
318
+ const worksheet: Worksheet = worksheetDetail.worksheet
319
+ const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
320
+ let targetInventory: OrderInventory = worksheetDetail.targetInventory
321
+ let inventory: Inventory = targetInventory.inventory
322
+
323
+ if (inventory.palletId !== palletId) {
324
+ throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('lot ID', palletId, inventory.palletId))
325
+ }
326
+
327
+ const location: Location = await this.trxMgr.getRepository(Location).findOne({
328
+ where: {
329
+ domain: { id: this.domain.id },
330
+ name: locationName,
331
+ type: In([
332
+ LOCATION_TYPE.SHELF,
333
+ LOCATION_TYPE.BUFFER,
334
+ LOCATION_TYPE.FLOOR,
335
+ LOCATION_TYPE.QUARANTINE,
336
+ LOCATION_TYPE.RESERVE
337
+ ])
338
+ },
339
+ relations: ['warehouse']
340
+ })
341
+ if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))
342
+ const warehouse: Warehouse = location.warehouse
343
+ //@ts-ignore
344
+ const zone: string = warehouse.zone
345
+
346
+ inventory.location = location
347
+ inventory.status = INVENTORY_STATUS.STORED
348
+ inventory.warehouse = warehouse
349
+ inventory.zone = zone
350
+ await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)
351
+
352
+ targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
353
+ targetInventory.updater = this.user
354
+ await this.updateOrderTargets([targetInventory])
355
+
356
+ worksheetDetail.status = WORKSHEET_STATUS.DONE
357
+ worksheetDetail.updater = this.user
358
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
359
+ }
360
+
361
+ async undoPutaway(worksheetDetailName: [string], palletId: string, cartonId: string): Promise<void> {
362
+ if (cartonId) {
363
+ await this.undoCarton(worksheetDetailName, cartonId)
364
+ } else {
365
+ await this.undoPallet(worksheetDetailName[0], palletId)
366
+ }
367
+ }
368
+
369
+ async undoPallet(worksheetDetailName: string, palletId: string): Promise<void> {
370
+ let worksheetDetail: WorksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, [
371
+ 'worksheet',
372
+ 'worksheet.arrivalNotice',
373
+ 'targetInventory',
374
+ 'targetInventory.inventory',
375
+ 'fromLocation'
376
+ ])
377
+ this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })
378
+
379
+ const worksheet: Worksheet = worksheetDetail.worksheet
380
+ const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
381
+ const targetInventory: OrderInventory = worksheetDetail.targetInventory
382
+ let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({
383
+ where: { domain: { id: this.domain.id }, palletId }
384
+ })
385
+ await this.checkReleaseTarget(inventory)
386
+
387
+ const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({
388
+ where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }
389
+ })
390
+ inventory.location = bufferLocation
391
+ inventory.status = INVENTORY_STATUS.UNLOADED
392
+ await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)
393
+
394
+ targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY
395
+ targetInventory.updater = this.user
396
+ await this.updateOrderTargets([targetInventory])
397
+
398
+ worksheetDetail.status = WORKSHEET_STATUS.EXECUTING
399
+ worksheetDetail.updater = this.user
400
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
401
+ }
402
+
403
+ async undoCarton(worksheetDetailName: [string], cartonId: string): Promise<void> {
404
+ let worksheetDetails: WorksheetDetail[] = await this.findWorksheetDetailByNames(worksheetDetailName, [
405
+ 'worksheet',
406
+ 'worksheet.arrivalNotice',
407
+ 'targetInventory',
408
+ 'targetInventory.inventory',
409
+ 'fromLocation'
410
+ ])
411
+
412
+ for (var i = 0; i < worksheetDetails?.length; i++) {
413
+ const worksheetDetail = worksheetDetails[i]
414
+ this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })
415
+ const worksheet: Worksheet = worksheetDetail.worksheet
416
+ const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
417
+ const targetInventory: OrderInventory = worksheetDetail.targetInventory
418
+ let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({
419
+ where: { domain: { id: this.domain.id }, cartonId, palletId: targetInventory.inventory.palletId }
420
+ })
421
+ await this.checkReleaseTarget(inventory)
422
+
423
+ const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({
424
+ where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }
425
+ })
426
+ inventory.location = bufferLocation
427
+ inventory.status = INVENTORY_STATUS.UNLOADED
428
+ await this.transactionInventory(inventory, arrivalNotice, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)
429
+
430
+ targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY
431
+ targetInventory.updater = this.user
432
+ await this.updateOrderTargets([targetInventory])
433
+
434
+ worksheetDetail.status = WORKSHEET_STATUS.EXECUTING
435
+ worksheetDetail.updater = this.user
436
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
437
+ }
438
+ }
439
+
440
+ private async checkReleaseTarget(inventory: Inventory): Promise<void> {
441
+ const releaseTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({
442
+ where: {
443
+ domain: { id: this.domain.id },
444
+ type: ORDER_TYPES.RELEASE_OF_GOODS,
445
+ inventory: { id: inventory.id }
446
+ }
447
+ })
448
+
449
+ if (releaseTargetInventory)
450
+ throw new Error(
451
+ this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('undo putaway', 'this pallet ID has been selected for releasing')
452
+ )
453
+ }
454
+ }