@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,450 @@
1
+ import { Equal, In, Not } from 'typeorm'
2
+
3
+ import { Bizplace } from '@things-factory/biz-base'
4
+ import {
5
+ ORDER_INVENTORY_STATUS,
6
+ ORDER_PRODUCT_STATUS,
7
+ ORDER_STATUS,
8
+ ORDER_TYPES,
9
+ OrderInventory,
10
+ OrderNoGenerator,
11
+ ReturnOrder
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 PutawayReturningWorksheetController extends VasWorksheetController {
29
+ async generatePutawayReturnWorksheet(returnOrderNo: string, inventories: Inventory[]): Promise<Worksheet> {
30
+ let returnOrder: ReturnOrder = (await this.findRefOrder(
31
+ ReturnOrder as any,
32
+ { domain: { id: this.domain.id }, name: returnOrderNo } as any,
33
+ ['bizplace']
34
+ )) as any
35
+
36
+ const bizplace: Bizplace = returnOrder.bizplace
37
+ const unloadingWorksheet: Worksheet = await this.findWorksheetByRefOrder(
38
+ returnOrder,
39
+ WORKSHEET_TYPE.UNLOADING_RETURN,
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(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN)
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(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN, { 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
+ for (let inventory of inventories) {
68
+ inventory.status = INVENTORY_STATUS.PUTTING_AWAY
69
+ inventory.updater = this.user
70
+ inventory = await this.trxMgr.getRepository(Inventory).save(inventory)
71
+
72
+ let targetInventory: OrderInventory = new OrderInventory()
73
+ targetInventory.domain = this.domain
74
+ targetInventory.bizplace = bizplace
75
+ targetInventory.name = OrderNoGenerator.orderInventory()
76
+ targetInventory.status = oiStatus
77
+ //@ts-ignore
78
+ targetInventory.type = ORDE
79
+ //@ts-ignore
80
+ R_TYPES.RETURN_ORDER
81
+ targetInventory.returnOrder = returnOrder
82
+ targetInventory.inventory = inventory
83
+ targetInventory.creator = this.user
84
+ targetInventory.updater = this.user
85
+ targetInventory = await this.trxMgr.getRepository(OrderInventory).save(targetInventory)
86
+
87
+ worksheet.worksheetDetails = await this.createWorksheetDetails(
88
+ worksheet,
89
+ WORKSHEET_TYPE.PUTAWAY_RETURN,
90
+ [targetInventory],
91
+ { status: wsdStatus, fromLocation: bufferLocation }
92
+ )
93
+ }
94
+
95
+ return worksheet
96
+ }
97
+
98
+ async activatePutawayReturning(
99
+ worksheetNo: string,
100
+ putawayWorksheetDetails: Partial<WorksheetDetail>[]
101
+ ): Promise<Worksheet> {
102
+ let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PUTAWAY_RETURN, [
103
+ 'returnOrder',
104
+ 'worksheetDetails',
105
+ 'worksheetDetails.targetInventory'
106
+ ])
107
+
108
+ let returnOrder: ReturnOrder = worksheet.returnOrder
109
+ const nonFinishedVasCnt: number = await this.trxMgr.getRepository(Worksheet).count({
110
+ where: {
111
+ domain: { id: this.domain.id },
112
+ returnOrder: { id: returnOrder.id },
113
+ type: WORKSHEET_TYPE.VAS,
114
+ status: Not(Equal(WORKSHEET_STATUS.DONE))
115
+ }
116
+ })
117
+ if (nonFinishedVasCnt) return
118
+
119
+ const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
120
+ const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {
121
+ let targetInventory: OrderInventory = wsd.targetInventory
122
+ targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY
123
+ targetInventory.updater = this.user
124
+ return targetInventory
125
+ })
126
+ await this.updateOrderTargets(targetInventories)
127
+
128
+ returnOrder.status = ORDER_STATUS.PUTTING_AWAY
129
+ returnOrder.updater = this.user
130
+ await this.updateRefOrder(returnOrder)
131
+ return this.activateWorksheet(worksheet, worksheetDetails, putawayWorksheetDetails)
132
+ }
133
+
134
+ async completePutawayReturn(returnOrderNo: string): Promise<Worksheet> {
135
+ // Because of partial unloading current status of arrivalNotice can be PUTTING_AWAY or PROCESSING
136
+ // PUTTING_AWAY means unloading is completely finished.
137
+ // PROCESSING means some products are still being unloaded.
138
+ //@ts-ignore
139
+ let returnOrder: ReturnOrder = await this.findRefOrder(ReturnOrder, {
140
+ name: returnOrderNo,
141
+ status: In([ORDER_STATUS.PUTTING_AWAY, ORDER_STATUS.PROCESSING])
142
+ })
143
+
144
+ // Check whether unloading is done or not.
145
+ const unloadingWorksheetCnt: number = await this.trxMgr.getRepository(Worksheet).count({
146
+ where: {
147
+ domain: { id: this.domain.id },
148
+ returnOrder: { id: returnOrder.id },
149
+ type: WORKSHEET_TYPE.UNLOADING_RETURN,
150
+ status: WORKSHEET_STATUS.EXECUTING
151
+ }
152
+ })
153
+ if (unloadingWorksheetCnt) throw new Error(`Unloading is not completed yet`)
154
+
155
+ const putawayWorksheet: Worksheet = await this.findWorksheetByRefOrder(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN, [
156
+ 'bufferLocation'
157
+ ])
158
+ await switchLocationStatus(this.domain, putawayWorksheet.bufferLocation, this.user, this.trxMgr)
159
+ return await this.completeWorksheet(putawayWorksheet, ORDER_STATUS.DONE)
160
+ }
161
+
162
+ async putawayReturn(
163
+ worksheetDetailName: [string],
164
+ palletId: string,
165
+ cartonId: string,
166
+ locationName: string
167
+ ): Promise<void> {
168
+ const reusablePallet: Pallet = await this.trxMgr.getRepository(Pallet).findOne({
169
+ where: { domain: { id: this.domain.id }, name: palletId }
170
+ })
171
+
172
+ if (reusablePallet) {
173
+ await this.putawayPallets(worksheetDetailName[0], reusablePallet, locationName)
174
+ } else if (cartonId) {
175
+ await this.putawayCarton(worksheetDetailName, cartonId, locationName)
176
+ } else {
177
+ await this.putawayPallet(worksheetDetailName[0], palletId, locationName)
178
+ }
179
+ }
180
+
181
+ async putawayPallets(worksheetDetailName: string, reusablePallet: Pallet, locationName: string): Promise<void> {
182
+ const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(
183
+ worksheetDetailName,
184
+ WORKSHEET_TYPE.PUTAWAY_RETURN,
185
+ [
186
+ 'worksheet',
187
+ 'worksheet.returnOrder',
188
+ 'worksheet.worksheetDetails',
189
+ 'worksheet.worksheetDetails.targetInventory',
190
+ 'worksheet.worksheetDetails.targetInventory.inventory'
191
+ ]
192
+ )
193
+
194
+ const worksheet: Worksheet = worksheetDetail.worksheet
195
+ const returnOrder: ReturnOrder = worksheet.returnOrder
196
+ const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
197
+ const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({
198
+ where: {
199
+ domain: { id: this.domain.id },
200
+ reusablePallet: { id: reusablePallet.id },
201
+ refOrderId: returnOrder.id,
202
+ status: In([INVENTORY_STATUS.PUTTING_AWAY, INVENTORY_STATUS.UNLOADED])
203
+ }
204
+ })
205
+
206
+ for (let inventory of inventories) {
207
+ const worksheetDetail: WorksheetDetail = worksheetDetails.find(
208
+ (wsd: WorksheetDetail) => wsd.targetInventory.inventory.name === inventory.name
209
+ )
210
+
211
+ let targetInventory: OrderInventory = worksheetDetail.targetInventory
212
+ inventory = targetInventory.inventory
213
+
214
+ let location: Location = await this.trxMgr.getRepository(Location).findOne({
215
+ where: {
216
+ domain: { id: this.domain.id },
217
+ name: locationName,
218
+ type: In([
219
+ LOCATION_TYPE.SHELF,
220
+ LOCATION_TYPE.BUFFER,
221
+ LOCATION_TYPE.FLOOR,
222
+ LOCATION_TYPE.QUARANTINE,
223
+ //@ts-ignore
224
+ LOCATION_TYPE.RESERVED
225
+ ])
226
+ },
227
+ relations: ['warehouse']
228
+ })
229
+ if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))
230
+ const warehouse: Warehouse = location.warehouse
231
+ const zone: string = location.zone
232
+
233
+ inventory.location = location
234
+ inventory.status = INVENTORY_STATUS.STORED
235
+ inventory.warehouse = warehouse
236
+ inventory.zone = zone
237
+ await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)
238
+
239
+ targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
240
+ targetInventory.updater = this.user
241
+ await this.updateOrderTargets([targetInventory])
242
+
243
+ worksheetDetail.status = WORKSHEET_STATUS.DONE
244
+ worksheetDetail.updater = this.user
245
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
246
+ }
247
+ }
248
+
249
+ async putawayCarton(worksheetDetailName: [string], cartonId: string, locationName: string): Promise<void> {
250
+ const worksheetDetails: WorksheetDetail[] = await this.findExecutableWorksheetDetailByNames(
251
+ worksheetDetailName,
252
+ WORKSHEET_TYPE.PUTAWAY_RETURN,
253
+ ['worksheet', 'worksheet.returnOrder', 'targetInventory', 'targetInventory.inventory']
254
+ )
255
+
256
+ for (var i = 0; i < worksheetDetails.length; i++) {
257
+ const worksheetDetail = worksheetDetails[i]
258
+ const worksheet: Worksheet = worksheetDetail.worksheet
259
+ const returnOrder: ReturnOrder = worksheet.returnOrder
260
+ let targetInventory: OrderInventory = worksheetDetail.targetInventory
261
+ let inventory: Inventory = targetInventory.inventory
262
+
263
+ if (inventory.cartonId !== cartonId) {
264
+ throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('cartonId', cartonId, inventory.cartonId))
265
+ }
266
+
267
+ const location: Location = await this.trxMgr.getRepository(Location).findOne({
268
+ where: {
269
+ domain: { id: this.domain.id },
270
+ name: locationName,
271
+ type: In([
272
+ LOCATION_TYPE.SHELF,
273
+ LOCATION_TYPE.BUFFER,
274
+ LOCATION_TYPE.FLOOR,
275
+ LOCATION_TYPE.BIN,
276
+ LOCATION_TYPE.QUARANTINE,
277
+ //@ts-ignore
278
+ LOCATION_TYPE.RESERVED
279
+ ])
280
+ },
281
+ relations: ['warehouse']
282
+ })
283
+
284
+ if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))
285
+ const warehouse: Warehouse = location.warehouse
286
+ //@ts-ignore
287
+ const zone: string = warehouse.zone
288
+
289
+ inventory.location = location
290
+ inventory.status = INVENTORY_STATUS.STORED
291
+ inventory.warehouse = warehouse
292
+ inventory.zone = zone
293
+ await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)
294
+
295
+ targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
296
+ targetInventory.updater = this.user
297
+ await this.updateOrderTargets([targetInventory])
298
+
299
+ worksheetDetail.status = WORKSHEET_STATUS.DONE
300
+ worksheetDetail.updater = this.user
301
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
302
+ }
303
+ }
304
+
305
+ async putawayPallet(worksheetDetailName: string, palletId: string, locationName: string): Promise<void> {
306
+ const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(
307
+ worksheetDetailName,
308
+ WORKSHEET_TYPE.PUTAWAY_RETURN,
309
+ ['worksheet', 'worksheet.returnOrder', 'targetInventory', 'targetInventory.inventory']
310
+ )
311
+
312
+ const worksheet: Worksheet = worksheetDetail.worksheet
313
+ const returnOrder: ReturnOrder = worksheet.returnOrder
314
+ let targetInventory: OrderInventory = worksheetDetail.targetInventory
315
+ let inventory: Inventory = targetInventory.inventory
316
+
317
+ if (inventory.palletId !== palletId) {
318
+ throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('palletId', palletId, inventory.palletId))
319
+ }
320
+
321
+ const location: Location = await this.trxMgr.getRepository(Location).findOne({
322
+ where: {
323
+ domain: { id: this.domain.id },
324
+ name: locationName,
325
+ type: In([
326
+ LOCATION_TYPE.SHELF,
327
+ LOCATION_TYPE.FLOOR,
328
+ LOCATION_TYPE.BIN,
329
+ LOCATION_TYPE.BUFFER,
330
+ LOCATION_TYPE.QUARANTINE,
331
+ //@ts-ignore
332
+ LOCATION_TYPE.RESERVED
333
+ ])
334
+ },
335
+ relations: ['warehouse']
336
+ })
337
+ if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))
338
+ const warehouse: Warehouse = location.warehouse
339
+ //@ts-ignore
340
+ const zone: string = warehouse.zone
341
+
342
+ inventory.location = location
343
+ inventory.status = INVENTORY_STATUS.STORED
344
+ inventory.warehouse = warehouse
345
+ inventory.zone = zone
346
+ await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)
347
+
348
+ targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
349
+ targetInventory.updater = this.user
350
+ await this.updateOrderTargets([targetInventory])
351
+
352
+ worksheetDetail.status = WORKSHEET_STATUS.DONE
353
+ worksheetDetail.updater = this.user
354
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
355
+ }
356
+
357
+ async undoPutawayReturn(worksheetDetailName: [string], palletId: string, cartonId: string): Promise<void> {
358
+ if (cartonId) {
359
+ await this.undoPutawayReturnCarton(worksheetDetailName, cartonId)
360
+ } else {
361
+ await this.undoPutawayReturnPallet(worksheetDetailName[0], palletId)
362
+ }
363
+ }
364
+
365
+ async undoPutawayReturnCarton(worksheetDetailName: [string], cartonId: string): Promise<void> {
366
+ let worksheetDetails: WorksheetDetail[] = await this.findWorksheetDetailByNames(worksheetDetailName, [
367
+ 'worksheet',
368
+ 'worksheet.returnOrder',
369
+ 'targetInventory',
370
+ 'targetInventory.inventory',
371
+ 'fromLocation'
372
+ ])
373
+
374
+ for (var i = 0; i < worksheetDetails?.length; i++) {
375
+ const worksheetDetail = worksheetDetails[i]
376
+ this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })
377
+ const worksheet: Worksheet = worksheetDetail.worksheet
378
+ const returnOrder: ReturnOrder = worksheet.returnOrder
379
+ const targetInventory: OrderInventory = worksheetDetail.targetInventory
380
+ let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({
381
+ where: { domain: { id: this.domain.id }, cartonId, palletId: targetInventory.inventory.palletId }
382
+ })
383
+ await this.checkReleaseTarget(inventory)
384
+
385
+ const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({
386
+ where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }
387
+ })
388
+ inventory.location = bufferLocation
389
+ inventory.status = INVENTORY_STATUS.UNLOADED
390
+ await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)
391
+
392
+ targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY
393
+ targetInventory.updater = this.user
394
+ await this.updateOrderTargets([targetInventory])
395
+
396
+ worksheetDetail.status = WORKSHEET_STATUS.EXECUTING
397
+ worksheetDetail.updater = this.user
398
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
399
+ }
400
+ }
401
+
402
+ async undoPutawayReturnPallet(worksheetDetailName: string, palletId: string): Promise<void> {
403
+ let worksheetDetail: WorksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, [
404
+ 'worksheet',
405
+ 'worksheet.returnOrder',
406
+ 'targetInventory',
407
+ 'targetInventory.inventory',
408
+ 'fromLocation'
409
+ ])
410
+ this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })
411
+
412
+ const worksheet: Worksheet = worksheetDetail.worksheet
413
+ const returnOrder: ReturnOrder = worksheet.returnOrder
414
+ const targetInventory: OrderInventory = worksheetDetail.targetInventory
415
+ let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({
416
+ where: { domain: { id: this.domain.id }, palletId }
417
+ })
418
+ await this.checkReleaseTarget(inventory)
419
+
420
+ const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({
421
+ where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }
422
+ })
423
+ inventory.location = bufferLocation
424
+ inventory.status = INVENTORY_STATUS.UNLOADED
425
+ await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)
426
+
427
+ targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY
428
+ targetInventory.updater = this.user
429
+ await this.updateOrderTargets([targetInventory])
430
+
431
+ worksheetDetail.status = WORKSHEET_STATUS.EXECUTING
432
+ worksheetDetail.updater = this.user
433
+ await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
434
+ }
435
+
436
+ private async checkReleaseTarget(inventory: Inventory): Promise<void> {
437
+ const releaseTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({
438
+ where: {
439
+ domain: { id: this.domain.id },
440
+ type: ORDER_TYPES.RELEASE_OF_GOODS,
441
+ inventory: { id: inventory.id }
442
+ }
443
+ })
444
+
445
+ if (releaseTargetInventory)
446
+ throw new Error(
447
+ this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('undo putaway', 'this pallet ID has been selected for releasing')
448
+ )
449
+ }
450
+ }