@things-factory/worksheet-base 8.0.0-beta.9 → 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,5 @@
1
+ export * from './interfaces'
2
+ export * from './relabeling'
3
+ export * from './repackaging'
4
+ export * from './repalletizing'
5
+ export * from './unpacking'
@@ -0,0 +1,56 @@
1
+ import {
2
+ ArrivalNotice,
3
+ ReleaseGood,
4
+ ShippingOrder,
5
+ VasOrder
6
+ } from '@things-factory/sales-base'
7
+
8
+ export * from './repalletizing'
9
+ export * from './repackaging'
10
+ export * from './relabeling'
11
+ export * from './unpacking'
12
+
13
+ export declare type RefOrderType = ArrivalNotice | ReleaseGood | VasOrder | ShippingOrder
14
+
15
+ export interface OperationGuideInterface<T> {
16
+ data: T
17
+ transactions?: [any]
18
+ }
19
+
20
+ export interface PalletChangesInterface {
21
+ fromPalletId: string
22
+ toPalletId: string
23
+ reducedQty: number
24
+ reducedUomValue: number
25
+ locationName?: string
26
+ }
27
+
28
+ export interface FeaturedInventoryInterface {
29
+ palletId: string
30
+ originalQty: number
31
+ originalUomValue: number
32
+ currentUnitQty?: number
33
+ currentUomValue?: number
34
+ packingSize: number
35
+ uomValuePerQty: number
36
+ }
37
+
38
+ /** REMARK
39
+ * @farishelmi created this temporary interface solely for @Repackaging
40
+ * - because in repackaging we need to calculate based on unit qty of a product
41
+ * - eg: Carton of 12 Cokes repack into Boxes of 6 Cokes
42
+ * - this interface should be merged with its origin once the logic in other vas is updated
43
+ * */
44
+ export interface TemporaryPalletChangesInterface {
45
+ fromPalletId: string
46
+ toPalletId: string
47
+ reducedQty?: number
48
+ reducedUomValue?: number
49
+ reducedUnitQty?: number
50
+ originalQty?: number
51
+ originalUomValue?: number
52
+ currentUnitQty?: number
53
+ currentUomValue?: number
54
+ locationName?: string
55
+ packingSize: number
56
+ }
@@ -0,0 +1,20 @@
1
+ import { PalletChangesInterface } from '.'
2
+
3
+ export interface RelabelingToProduct {
4
+ id: string
5
+ name: string
6
+ description: string
7
+ }
8
+
9
+ export interface RelabelingLabel {
10
+ id: string
11
+ namd: string
12
+ path: string
13
+ }
14
+
15
+ export interface RelabelingGuide {
16
+ toProduct?: RelabelingToProduct
17
+ toBatchId?: string
18
+ newLabel: RelabelingLabel
19
+ relabeledFrom: PalletChangesInterface[]
20
+ }
@@ -0,0 +1,27 @@
1
+ import { Inventory } from '@things-factory/warehouse-base'
2
+
3
+ import { TemporaryPalletChangesInterface } from './index'
4
+
5
+ export interface RepackedInvInfo {
6
+ palletId: string
7
+ locationName: string
8
+ repackedPkgQty: number
9
+ repackedFrom: TemporaryPalletChangesInterface[]
10
+ }
11
+
12
+ export interface RepackagingGuide {
13
+ packingUnit: string
14
+ toProduct?: string
15
+ toBatchId?: string
16
+ toPackingType: string
17
+ stdAmount: number
18
+ requiredPackageQty: number
19
+ repackedInvs: RepackedInvInfo[]
20
+ featuredInvs: Partial<Inventory[]>
21
+ remainder: number
22
+ }
23
+
24
+ export enum PackingUnits {
25
+ UOM = 'UOM',
26
+ QTY = 'QTY'
27
+ }
@@ -0,0 +1,14 @@
1
+ import { PalletChangesInterface } from './index'
2
+
3
+ export interface RepalletizedInvInfo {
4
+ palletId: string
5
+ locationName: string
6
+ repalletizedFrom: PalletChangesInterface[]
7
+ }
8
+
9
+ export interface RepalletizingGuide {
10
+ palletType: string
11
+ stdQty: number
12
+ requiredPalletQty: number
13
+ repalletizedInvs: RepalletizedInvInfo[]
14
+ }
@@ -0,0 +1,14 @@
1
+ import { PalletChangesInterface } from './index'
2
+
3
+ export interface UnpackedInvInfo {
4
+ palletId: string
5
+ locationName: string
6
+ repalletizedFrom: PalletChangesInterface[]
7
+ }
8
+
9
+ export interface UnpackingGuide {
10
+ palletType: string
11
+ stdQty: number
12
+ requiredPalletQty: number
13
+ repalletizedInvs: UnpackedInvInfo[]
14
+ }
@@ -0,0 +1,96 @@
1
+ import { EntityManager, Equal, Not } from 'typeorm'
2
+
3
+ import { Bizplace, getMyBizplace } from '@things-factory/biz-base'
4
+ import { Product } from '@things-factory/product-base'
5
+ import { Domain } from '@things-factory/shell'
6
+ import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
7
+
8
+ export const checkRelabelableResolver = {
9
+ async checkRelabelable(
10
+ _: void,
11
+ {
12
+ batchId,
13
+ productId,
14
+ packingType,
15
+ unitUomValue
16
+ }: { batchId: string; productId: string; packingType: string; unitUomValue: number },
17
+ context: any
18
+ ): Promise<boolean> {
19
+ const { tx, domain, user } = context.state
20
+ //@ts-ignore
21
+ const bizplace: Bizplace = await getMyBizplace(user)
22
+ const product: Product = await tx.getRepository(Product).findOne({
23
+ where: { domain: { id: domain.id }, bizplace: { id: bizplace.id }, id: productId }
24
+ })
25
+ if (!product) throw new Error(`Couldn't find product by ID (${productId})`)
26
+
27
+ return await checkRelabelable(tx, domain, bizplace, batchId, product, packingType, unitUomValue)
28
+ }
29
+ }
30
+
31
+ /**
32
+ * @description Try to find whether current inventory information can be accepted for relabeling.
33
+ * The inventory should be exactly same with one of stored inventory
34
+ * or
35
+ * The inventory should be totally different with every single inventories stored.
36
+ *
37
+ * @param {EntityManager} tx
38
+ * @param {Domain} domain
39
+ * @param {Bizplace} bizplace
40
+ * @param {String} batchId
41
+ * @param {Product} product
42
+ * @param {String} packingType
43
+ * @param {Number} unitUomValue
44
+ */
45
+ export async function checkRelabelable(
46
+ tx: EntityManager,
47
+ domain: Domain,
48
+ bizplace: Bizplace,
49
+ batchId: string,
50
+ product: Product,
51
+ packingType: string,
52
+ unitUomValue: number
53
+ ): Promise<boolean> {
54
+ // Try to find out identical inventory
55
+ // The condition is same batch id same product same packing type same uomValue
56
+ // If there *IS* identical inventory the target inventory for this vas can be executed
57
+ const identicalInvCnt: number = await tx
58
+ .getRepository(Inventory)
59
+ .createQueryBuilder('inv')
60
+ .where('inv.domain_id = :domainId')
61
+ .andWhere('inv.bizplace_id = :bizplaceId')
62
+ .andWhere('inv.batch_id = :batchId')
63
+ .andWhere('inv.product_id = :productId')
64
+ .andWhere('inv.packing_type = :packingType')
65
+ .andWhere('inv.status != :status')
66
+ .andWhere('(inv.uom_value / inv.qty) = :unitUomValue')
67
+ .setParameters({
68
+ domainId: domain.id,
69
+ bizplaceId: bizplace.id,
70
+ batchId,
71
+ productId: product.id,
72
+ packingType,
73
+ status: INVENTORY_STATUS.TERMINATED,
74
+ unitUomValue
75
+ })
76
+ .getCount()
77
+
78
+ if (identicalInvCnt) return true
79
+
80
+ // Try to find out duplicated invenetory
81
+ // The condition is same batch id same product same packing type
82
+ // If there's *NO* duplicated inventory the target inventory for this vas can be executed
83
+ const duplicatedInvCnt: number = await tx.getRepository(Inventory).count({
84
+ where: {
85
+ domain: { id: domain.id },
86
+ bizplace: { id: bizplace.id },
87
+ batchId,
88
+ product: { id: product.id },
89
+ packingType,
90
+ status: Not(Equal(INVENTORY_STATUS.TERMINATED))
91
+ }
92
+ })
93
+ if (!duplicatedInvCnt) return true
94
+
95
+ return false
96
+ }
@@ -0,0 +1,93 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Bizplace } from '@things-factory/biz-base'
5
+ import { Product } from '@things-factory/product-base'
6
+ import { ArrivalNotice, OrderVas, ReleaseGood } from '@things-factory/sales-base'
7
+ import { Domain } from '@things-factory/shell'
8
+ import { Inventory, INVENTORY_TRANSACTION_TYPE } from '@things-factory/warehouse-base'
9
+
10
+ import {
11
+ createLoadingWorksheet,
12
+ createPutawayWorksheet,
13
+ deductProductAmount,
14
+ getReducedAmount,
15
+ upsertInventory
16
+ } from '../common-utils'
17
+ import {
18
+ OperationGuideInterface,
19
+ PalletChangesInterface,
20
+ RefOrderType,
21
+ RelabelingGuide,
22
+ RelabelingToProduct
23
+ } from '../interfaces'
24
+
25
+ export async function completeRelabeling(trxMgr: EntityManager, orderVas: OrderVas, user: User): Promise<void> {
26
+ orderVas = await trxMgr.getRepository(OrderVas).findOne({
27
+ where: { id: orderVas.id },
28
+ relations: ['domain', 'bizplace', 'inventory', 'inventory.product', 'arrivalNotice', 'releaseGood', 'vasOrder']
29
+ })
30
+
31
+ const domain: Domain = orderVas.domain
32
+ const bizplace: Bizplace = orderVas.bizplace
33
+ let originInv: Inventory = orderVas.inventory
34
+ const operationGuide: OperationGuideInterface<RelabelingGuide> = JSON.parse(orderVas.operationGuide)
35
+ const operationGuideData: RelabelingGuide = operationGuide.data
36
+ const { toBatchId, toProduct }: { toBatchId?: string; toProduct?: RelabelingToProduct } = operationGuideData
37
+ const { arrivalNotice, releaseGood, vasOrder } = orderVas
38
+ const refOrder: RefOrderType = arrivalNotice || releaseGood || vasOrder
39
+ const palletChanges: PalletChangesInterface[] = extractRelabeledPallets(
40
+ operationGuideData.relabeledFrom,
41
+ orderVas.inventory.palletId
42
+ )
43
+
44
+ let copiedInv: Inventory = Object.assign({}, originInv)
45
+ if (toBatchId) copiedInv.batchId = toBatchId
46
+ if (toProduct) copiedInv.product = await trxMgr.getRepository(Product).findOneBy({ id: toProduct.id })
47
+
48
+ copiedInv.refInventory = originInv
49
+
50
+ for (const palletChange of palletChanges) {
51
+ const newInventory: Inventory = await upsertInventory(
52
+ trxMgr,
53
+ domain,
54
+ bizplace,
55
+ user,
56
+ copiedInv,
57
+ refOrder,
58
+ palletChange.toPalletId,
59
+ palletChange.locationName,
60
+ copiedInv.packingType,
61
+ palletChange.reducedQty,
62
+ palletChange.reducedUomValue,
63
+ INVENTORY_TRANSACTION_TYPE.RELABELING
64
+ )
65
+
66
+ const { reducedQty, reducedUomValue } = getReducedAmount(palletChanges, orderVas.inventory.palletId)
67
+ // Deduct amount of product on original pallet or order inventory (Case for release order)
68
+ // originInv = await deductProductAmount(trxMgr, domain, bizplace, user, refOrder, originInv, qty, uomValue)
69
+ originInv = await deductProductAmount(
70
+ trxMgr,
71
+ domain,
72
+ bizplace,
73
+ user,
74
+ refOrder,
75
+ originInv,
76
+ reducedQty,
77
+ reducedUomValue,
78
+ INVENTORY_TRANSACTION_TYPE.RELABELING
79
+ )
80
+
81
+ // Create worksheet if it's related with Arrival Notice or Release Order
82
+ if (refOrder instanceof ArrivalNotice) {
83
+ await createPutawayWorksheet(trxMgr, domain, bizplace, user, refOrder, originInv, newInventory)
84
+ } else if (refOrder instanceof ReleaseGood) {
85
+ //@ts-ignore
86
+ await createLoadingWorksheet(trxMgr, domain, bizplace, user, refOrder, originInv, newInventory)
87
+ }
88
+ }
89
+ }
90
+
91
+ function extractRelabeledPallets(palletChanges: PalletChangesInterface[], palletId: string): PalletChangesInterface[] {
92
+ return palletChanges.filter((pc: PalletChangesInterface) => pc.fromPalletId === palletId)
93
+ }
@@ -0,0 +1,4 @@
1
+ export * from './check-relabelable'
2
+ export * from './complete-relabeling'
3
+ export * from './relabeling'
4
+ export * from './undo-relabeling'
@@ -0,0 +1,105 @@
1
+ import { Equal, Not } from 'typeorm'
2
+
3
+ import { Bizplace } from '@things-factory/biz-base'
4
+ import { OrderVas } from '@things-factory/sales-base'
5
+ import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
6
+
7
+ import { WorksheetDetail } from '../../../../../entities'
8
+ import { executeVas } from '../../vas/execute-vas'
9
+ import {
10
+ assignInventory,
11
+ getRemainInventoryAmount,
12
+ getWorksheetDetailByName,
13
+ updateRelatedOrderVas
14
+ } from '../common-utils'
15
+ import { OperationGuideInterface, PalletChangesInterface, RefOrderType, RelabelingGuide } from '../interfaces'
16
+
17
+ export const relabelingResolver = {
18
+ async relabeling(
19
+ _: any,
20
+ { worksheetDetailName, fromPalletId, toPalletId, locationName },
21
+ context: any
22
+ ): Promise<void> {
23
+ const { tx, domain, user } = context.state
24
+
25
+ // Find target worksheet detail & target order vas & bizplace
26
+ const wsd: WorksheetDetail = await getWorksheetDetailByName(tx, domain, worksheetDetailName)
27
+ let { bizplace, targetVas }: { bizplace: Bizplace; targetVas: OrderVas } = wsd
28
+
29
+ // Check whether to pallet id is duplicated or not.
30
+ if (
31
+ await tx.getRepository(Inventory).count({
32
+ where: {
33
+ domain: { id: domain.id },
34
+ bizplace: { id: bizplace.id },
35
+ palletId: toPalletId,
36
+ status: Not(Equal(INVENTORY_STATUS.TERMINATED))
37
+ }
38
+ })
39
+ ) {
40
+ throw new Error(`Pallet (${toPalletId}) is already exists`)
41
+ }
42
+
43
+ // Init refOrder
44
+ //@ts-ignore
45
+ const { arrivalNotice, releaseGood, vasOrder }: { [key: string]: RefOrderType } = targetVas
46
+ const refOrder: RefOrderType = arrivalNotice || releaseGood || vasOrder || null
47
+ if (!refOrder) throw new Error(`Couldn't find reference order with current order vas`)
48
+
49
+ // Assign inventory if specific inventory isn't assigned yet.
50
+ // This case is occured when the VAS order comes with Arrival Notice or Release Good
51
+ if (!targetVas.inventory) {
52
+ //@ts-ignore
53
+ targetVas = await assignInventory(tx, domain, bizplace, user, wsd, refOrder, targetVas, fromPalletId)
54
+ }
55
+
56
+ let originInv: Inventory = targetVas.inventory
57
+ let operationGuide: OperationGuideInterface<RelabelingGuide> = JSON.parse(targetVas.operationGuide)
58
+ let operationGuideData: RelabelingGuide = operationGuide.data
59
+ if (!operationGuideData.relabeledFrom) operationGuideData.relabeledFrom = []
60
+ const palletChanges: PalletChangesInterface[] = operationGuideData.relabeledFrom
61
+ const { remainQty, remainUomValue } = await getRemainInventoryAmount(
62
+ tx,
63
+ refOrder,
64
+ domain,
65
+ bizplace,
66
+ originInv,
67
+ palletChanges,
68
+ fromPalletId
69
+ )
70
+
71
+ const unitUomValue: number = remainUomValue / remainQty
72
+ let newPalletChange: PalletChangesInterface = {
73
+ fromPalletId,
74
+ toPalletId,
75
+ reducedQty: 0,
76
+ reducedUomValue: 0
77
+ }
78
+ if (locationName) {
79
+ newPalletChange.locationName = locationName
80
+ } else {
81
+ originInv = await tx.getRepository(Inventory).findOne({
82
+ where: { id: originInv.id },
83
+ relations: ['location']
84
+ })
85
+ newPalletChange.locationName = originInv.location.name
86
+ }
87
+
88
+ if (remainQty < targetVas.qty) {
89
+ // 남은 수량으로 전체 작업을 처리할 수 없는 경우
90
+ newPalletChange.reducedQty = remainQty
91
+ newPalletChange.reducedUomValue = remainQty * unitUomValue
92
+ } else {
93
+ // 남은 수량으로 전체 작업을 처리할 수 있는 경우
94
+ newPalletChange.reducedQty = targetVas.qty
95
+ newPalletChange.reducedUomValue = targetVas.uomValue
96
+ }
97
+
98
+ palletChanges.push(newPalletChange)
99
+ operationGuide.data.relabeledFrom = palletChanges
100
+
101
+ // Update every order vas to share same operation guide
102
+ await updateRelatedOrderVas<RelabelingGuide>(tx, domain, bizplace, wsd, targetVas, operationGuide, user)
103
+ await executeVas(tx, domain, user, wsd)
104
+ }
105
+ }
@@ -0,0 +1,40 @@
1
+ import { Bizplace } from '@things-factory/biz-base'
2
+ import { OrderVas, VasOrder } from '@things-factory/sales-base'
3
+
4
+ import { WorksheetDetail } from '../../../../../entities'
5
+ import { dismissInventory, getWorksheetDetailByName, updateRelatedOrderVas } from '../common-utils'
6
+ import { OperationGuideInterface, PalletChangesInterface, RefOrderType, RelabelingGuide } from '../interfaces'
7
+
8
+ export const undoRelabelingResolver = {
9
+ async undoRelabeling(
10
+ _: any,
11
+ { worksheetDetailName, toPalletId }: { worksheetDetailName: string; fromPalletId: string; toPalletId: string },
12
+ context: any
13
+ ): Promise<void> {
14
+ /** Initialize required variables */
15
+ const { tx, domain, user } = context.state
16
+ const wsd: WorksheetDetail = await getWorksheetDetailByName(tx, domain, worksheetDetailName)
17
+ const { bizplace, targetVas }: { bizplace: Bizplace; targetVas: OrderVas } = wsd
18
+
19
+ if (!targetVas) throw new Error(`Couldn't find any related target vas, using current worksheet detail`)
20
+ const { arrivalNotice, releaseGood, vasOrder } = targetVas
21
+ const refOrder: RefOrderType = arrivalNotice || releaseGood || vasOrder
22
+
23
+ let operationGuide: OperationGuideInterface<RelabelingGuide> = JSON.parse(targetVas.operationGuide)
24
+ let operationGuideData: RelabelingGuide = operationGuide.data
25
+
26
+ const fromPalletId: string = targetVas.inventory.palletId
27
+ // Filter out pallets which has same id with undoPalletId
28
+ operationGuide.data.relabeledFrom = operationGuideData.relabeledFrom.filter(
29
+ (pc: PalletChangesInterface) =>
30
+ pc.fromPalletId !== fromPalletId || (pc.fromPalletId === fromPalletId && pc.toPalletId !== toPalletId)
31
+ )
32
+
33
+ if (!(refOrder instanceof VasOrder)) {
34
+ await dismissInventory(tx, wsd, targetVas, operationGuide.data.relabeledFrom, fromPalletId)
35
+ }
36
+
37
+ // Update every related operation guide to share same data
38
+ await updateRelatedOrderVas(tx, domain, bizplace, wsd, targetVas, operationGuide, user)
39
+ }
40
+ }