@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,26 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { PutawayWorksheetController } from '../../../../controllers'
7
+
8
+ export const putawayResolver = {
9
+ async putaway(_: any, { worksheetDetailName, palletId, cartonId, toLocation }, context: ResolverContext) {
10
+ const { tx, domain, user } = context.state
11
+ await putaway(tx, domain, user, worksheetDetailName, palletId, cartonId, toLocation)
12
+ }
13
+ }
14
+
15
+ async function putaway(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ worksheetDetailName: [string],
20
+ palletId: string,
21
+ cartonId: string,
22
+ locationName: string
23
+ ) {
24
+ const worksheetController: PutawayWorksheetController = new PutawayWorksheetController(tx, domain, user)
25
+ await worksheetController.putaway(worksheetDetailName, palletId, cartonId, locationName)
26
+ }
@@ -0,0 +1,25 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { PutawayWorksheetController } from '../../../../controllers'
7
+
8
+ export const undoPutawayResolver = {
9
+ async undoPutaway(_: any, { worksheetDetailName, palletId, cartonId }, context: ResolverContext) {
10
+ const { tx, domain, user } = context.state
11
+ await undoPutaway(tx, domain, user, worksheetDetailName, palletId, cartonId)
12
+ }
13
+ }
14
+
15
+ export async function undoPutaway(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ worksheetDetailName: [string],
20
+ palletId: string,
21
+ cartonId: string
22
+ ): Promise<void> {
23
+ const worksheetController: PutawayWorksheetController = new PutawayWorksheetController(tx, domain, user)
24
+ await worksheetController.undoPutaway(worksheetDetailName, palletId, cartonId)
25
+ }
@@ -0,0 +1,55 @@
1
+ import { EntityManager, Equal, Not } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
7
+ import { PutawayReturningWorksheetController } from '../../../../controllers'
8
+ import { Worksheet, WorksheetDetail } from '../../../../entities'
9
+
10
+ export const activatePutawayReturnResolver = {
11
+ async activatePutawayReturn(_: any, { worksheetNo, putawayWorksheetDetails }, context: ResolverContext) {
12
+ const { tx, domain, user } = context.state
13
+ const foundWorksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
14
+ where: {
15
+ domain: { id: domain.id },
16
+ name: worksheetNo,
17
+ status: WORKSHEET_STATUS.DEACTIVATED,
18
+ type: WORKSHEET_TYPE.PUTAWAY_RETURN
19
+ },
20
+ relations: ['bizplace', 'returnOrder', 'worksheetDetails', 'worksheetDetails.targetInventory']
21
+ })
22
+
23
+ if (!foundWorksheet) throw new Error(`Worksheet doesn't exists`)
24
+
25
+ const relatedWorksheetCnt: number = await tx.getRepository(Worksheet).count({
26
+ where: {
27
+ domain: { id: domain.id },
28
+ returnOrder: { id: foundWorksheet.returnOrder.id },
29
+ type: WORKSHEET_TYPE.VAS,
30
+ status: Not(Equal(WORKSHEET_STATUS.DONE))
31
+ }
32
+ })
33
+
34
+ if (relatedWorksheetCnt) {
35
+ throw new Error(`Related VAS order with GAN: ${foundWorksheet.arrivalNotice.name} is still under processing.`)
36
+ }
37
+
38
+ return await activatePutawayReturn(tx, domain, user, worksheetNo, putawayWorksheetDetails)
39
+ }
40
+ }
41
+
42
+ export async function activatePutawayReturn(
43
+ tx: EntityManager,
44
+ domain: Domain,
45
+ user: User,
46
+ worksheetNo: string,
47
+ putawayWorksheetDetails: Partial<WorksheetDetail>[]
48
+ ) {
49
+ const worksheetController: PutawayReturningWorksheetController = new PutawayReturningWorksheetController(
50
+ tx,
51
+ domain,
52
+ user
53
+ )
54
+ await worksheetController.activatePutawayReturning(worksheetNo, putawayWorksheetDetails)
55
+ }
@@ -0,0 +1,38 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { PutawayReturningWorksheetController } from '../../../../controllers'
7
+ import { Worksheet } from '../../../../entities'
8
+
9
+ export const completePutawayReturnResolver = {
10
+ async completePutawayReturn(_: any, { returnOrderNo }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ await completePutawayReturn(tx, domain, user, returnOrderNo)
13
+ }
14
+ }
15
+
16
+ export async function completePutawayReturn(
17
+ tx: EntityManager,
18
+ domain: Domain,
19
+ user: User,
20
+ returnOrderNo: string
21
+ ): Promise<void> {
22
+ const worksheetController: PutawayReturningWorksheetController = new PutawayReturningWorksheetController(
23
+ tx,
24
+ domain,
25
+ user
26
+ )
27
+ let worksheet: Worksheet = await worksheetController.completePutawayReturn(returnOrderNo)
28
+
29
+ /**
30
+ * 4. Generate the Goods Received Note straight away
31
+ */
32
+ if (!worksheet.returnOrder?.name || !worksheet.bizplace?.id) {
33
+ worksheet = await tx.getRepository(Worksheet).findOne({
34
+ where: { id: worksheet.id },
35
+ relations: ['bizplace', 'returnOrder']
36
+ })
37
+ }
38
+ }
@@ -0,0 +1,11 @@
1
+ import { activatePutawayReturnResolver } from './activate-putaway-return'
2
+ import { completePutawayReturnResolver } from './complete-putaway-return'
3
+ import { putawayReturnResolver } from './putaway-return'
4
+ import { undoPutawayReturnResolver } from './undo-putaway-return'
5
+
6
+ export const Mutations = {
7
+ ...activatePutawayReturnResolver,
8
+ ...completePutawayReturnResolver,
9
+ ...putawayReturnResolver,
10
+ ...undoPutawayReturnResolver
11
+ }
@@ -0,0 +1,30 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { PutawayReturningWorksheetController } from '../../../../controllers'
7
+
8
+ export const putawayReturnResolver = {
9
+ async putawayReturn(_: any, { worksheetDetailName, palletId, cartonId, toLocation }, context: ResolverContext) {
10
+ const { tx, domain, user } = context.state
11
+ await putawayReturn(tx, domain, user, worksheetDetailName, palletId, cartonId, toLocation)
12
+ }
13
+ }
14
+
15
+ async function putawayReturn(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ worksheetDetailName: [string],
20
+ palletId: string,
21
+ cartonId: string,
22
+ locationName: string
23
+ ) {
24
+ const worksheetController: PutawayReturningWorksheetController = new PutawayReturningWorksheetController(
25
+ tx,
26
+ domain,
27
+ user
28
+ )
29
+ await worksheetController.putawayReturn(worksheetDetailName, palletId, cartonId, locationName)
30
+ }
@@ -0,0 +1,29 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { PutawayReturningWorksheetController } from '../../../../controllers'
7
+
8
+ export const undoPutawayReturnResolver = {
9
+ async undoPutawayReturn(_: any, { worksheetDetailName, palletId, cartonId }, context: ResolverContext) {
10
+ const { tx, domain, user } = context.state
11
+ await undoPutawayReturn(tx, domain, user, worksheetDetailName, palletId, cartonId)
12
+ }
13
+ }
14
+
15
+ async function undoPutawayReturn(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ worksheetDetailName: [string],
20
+ palletId: string,
21
+ cartonId: string
22
+ ) {
23
+ const worksheetController: PutawayReturningWorksheetController = new PutawayReturningWorksheetController(
24
+ tx,
25
+ domain,
26
+ user
27
+ )
28
+ await worksheetController.undoPutawayReturn(worksheetDetailName, palletId, cartonId)
29
+ }
@@ -0,0 +1,83 @@
1
+ import { Bizplace } from '@things-factory/biz-base'
2
+ import { OrderInventory, ReturnOrder } from '@things-factory/sales-base'
3
+ import { Domain, getRepository } from '@things-factory/shell'
4
+ import { Inventory } from '@things-factory/warehouse-base'
5
+
6
+ import { WORKSHEET_TYPE } from '../../../constants'
7
+ import { Worksheet, WorksheetDetail } from '../../../entities'
8
+ import { fetchExecutingWorksheet } from '../../../utils'
9
+
10
+ export const putawayReturningWorksheetResolver = {
11
+ async putawayReturningWorksheet(_: any, { returnOrderNo }, context: ResolverContext) {
12
+ const { domain } = context.state
13
+ const returnOrder: ReturnOrder = await getRepository(ReturnOrder).findOne({
14
+ // Because of partial unloading current status of returnOrder can be PUTTING_AWAY or PROCESSING
15
+ // PUTTING_AWAY means unloading is completely finished.
16
+ // PROCESSING means some products are still being unloaded.
17
+ where: {
18
+ domain: { id: domain.id },
19
+ name: returnOrderNo
20
+ /*status: In([ORDER_STATUS.PUTTING_AWAY, ORDER_STATUS.PROCESSING])*/
21
+ },
22
+ relations: ['bizplace', 'bizplace.domain', 'bizplace.company', 'bizplace.company.domain']
23
+ })
24
+
25
+ const customerBizplace: Bizplace = returnOrder.bizplace
26
+ const customerCompanyDomain: Domain = returnOrder.bizplace?.company.domain
27
+
28
+ if (!returnOrder) throw new Error(`Return order doesn't exist.`)
29
+ const worksheet: Worksheet = await fetchExecutingWorksheet(
30
+ domain,
31
+ returnOrder.bizplace,
32
+ [
33
+ 'bizplace',
34
+ 'returnOrder',
35
+ 'bufferLocation',
36
+ 'worksheetDetails',
37
+ 'worksheetDetails.targetInventory',
38
+ 'worksheetDetails.targetInventory.inventory',
39
+ 'worksheetDetails.targetInventory.inventory.location',
40
+ 'worksheetDetails.targetInventory.inventory.product',
41
+ 'worksheetDetails.targetInventory.inventory.reusablePallet',
42
+ 'worksheetDetails.toLocation'
43
+ ],
44
+ WORKSHEET_TYPE.PUTAWAY_RETURN,
45
+ returnOrder
46
+ )
47
+
48
+ return {
49
+ worksheetInfo: {
50
+ bizplaceName: returnOrder.bizplace.name,
51
+ partnerDomainId: customerBizplace?.domain.id,
52
+ customerCompanyDomainId: customerCompanyDomain.id,
53
+ bufferLocation: worksheet?.bufferLocation.name,
54
+ refNo: returnOrder.refNo,
55
+ //@ts-ignore
56
+ refNo2: returnOrder.refNo2,
57
+ //@ts-ignore
58
+ refNo3: returnOrder.refNo3,
59
+ startedAt: worksheet.startedAt
60
+ },
61
+ worksheetDetailInfos: worksheet.worksheetDetails.map(async (putawayWSD: WorksheetDetail) => {
62
+ const targetInventory: OrderInventory = putawayWSD.targetInventory
63
+ const inventory: Inventory = targetInventory.inventory
64
+ return {
65
+ name: putawayWSD.name,
66
+ palletId: inventory.palletId,
67
+ cartonId: inventory.cartonId,
68
+ expirationDate: inventory.expirationDate,
69
+ batchId: inventory.batchId,
70
+ product: inventory.product,
71
+ qty: inventory.qty,
72
+ status: putawayWSD.status,
73
+ description: putawayWSD.description,
74
+ targetName: targetInventory.name,
75
+ packingType: inventory.packingType,
76
+ packingSize: inventory.packingSize,
77
+ location: inventory.location,
78
+ reusablePallet: inventory.reusablePallet
79
+ }
80
+ })
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,82 @@
1
+ import { Bizplace } from '@things-factory/biz-base'
2
+ import { ArrivalNotice, OrderInventory } from '@things-factory/sales-base'
3
+ import { Domain, getRepository } from '@things-factory/shell'
4
+ import { Inventory } from '@things-factory/warehouse-base'
5
+
6
+ import { WORKSHEET_TYPE } from '../../../constants'
7
+ import { Worksheet, WorksheetDetail } from '../../../entities'
8
+ import { fetchExecutingWorksheet } from '../../../utils'
9
+
10
+ export const putawayWorksheetResolver = {
11
+ async putawayWorksheet(_: any, { arrivalNoticeNo }, context: ResolverContext) {
12
+ const { domain } = context.state
13
+ const arrivalNotice: ArrivalNotice = await getRepository(ArrivalNotice).findOne({
14
+ // Because of partial unloading current status of arrivalNotice can be PUTTING_AWAY or PROCESSING
15
+ // PUTTING_AWAY means unloading is completely finished.
16
+ // PROCESSING means some products are still being unloaded.
17
+ where: {
18
+ domain: { id: domain.id },
19
+ name: arrivalNoticeNo
20
+ /*status: In([ORDER_STATUS.PUTTING_AWAY, ORDER_STATUS.PROCESSING])*/
21
+ },
22
+ relations: ['bizplace', 'bizplace.domain', 'bizplace.company', 'bizplace.company.domain']
23
+ })
24
+
25
+ if (!arrivalNotice) throw new Error(`Arrival notice dosen't exist.`)
26
+
27
+ const customerBizplace: Bizplace = arrivalNotice.bizplace
28
+ const customerCompanyDomain: Domain = arrivalNotice.bizplace?.company.domain
29
+ const worksheet: Worksheet = await fetchExecutingWorksheet(
30
+ domain,
31
+ arrivalNotice.bizplace,
32
+ [
33
+ 'bizplace',
34
+ 'arrivalNotice',
35
+ 'bufferLocation',
36
+ 'worksheetDetails',
37
+ 'worksheetDetails.targetInventory',
38
+ 'worksheetDetails.targetInventory.inventory',
39
+ 'worksheetDetails.targetInventory.inventory.location',
40
+ 'worksheetDetails.targetInventory.inventory.product',
41
+ 'worksheetDetails.targetInventory.inventory.reusablePallet',
42
+ 'worksheetDetails.toLocation'
43
+ ],
44
+ WORKSHEET_TYPE.PUTAWAY,
45
+ arrivalNotice
46
+ )
47
+
48
+ return {
49
+ worksheetInfo: {
50
+ bizplaceName: customerBizplace.name,
51
+ partnerDomainId: customerBizplace?.domain.id,
52
+ customerCompanyDomainId: customerCompanyDomain.id,
53
+ bufferLocation: worksheet?.bufferLocation.name,
54
+ refNo: arrivalNotice.refNo,
55
+ refNo2: arrivalNotice.refNo2,
56
+ refNo3: arrivalNotice.refNo3,
57
+ startedAt: worksheet.startedAt
58
+ },
59
+ worksheetDetailInfos: worksheet.worksheetDetails.map(async (putawayWSD: WorksheetDetail) => {
60
+ const targetInventory: OrderInventory = putawayWSD.targetInventory
61
+ const inventory: Inventory = targetInventory.inventory
62
+ return {
63
+ name: putawayWSD.name,
64
+ palletId: inventory.palletId,
65
+ cartonId: inventory.cartonId,
66
+ batchId: inventory.batchId,
67
+ expirationDate: inventory.expirationDate,
68
+ batchIdRef: inventory.batchIdRef,
69
+ product: inventory.product,
70
+ qty: inventory.qty,
71
+ status: putawayWSD.status,
72
+ description: putawayWSD.description,
73
+ targetName: targetInventory.name,
74
+ packingType: inventory.packingType,
75
+ packingSize: inventory.packingSize,
76
+ location: inventory.location,
77
+ reusablePallet: inventory.reusablePallet
78
+ }
79
+ })
80
+ }
81
+ }
82
+ }
@@ -0,0 +1,133 @@
1
+ import { In } from 'typeorm'
2
+
3
+ import { ArrivalNotice, ReturnOrder } from '@things-factory/sales-base'
4
+ import { Setting } from '@things-factory/setting-base'
5
+ import { Domain, getRepository } from '@things-factory/shell'
6
+ import { Inventory, Location, LOCATION_STATUS, LOCATION_TYPE, Warehouse } from '@things-factory/warehouse-base'
7
+
8
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
9
+ import { Worksheet, WorksheetDetail } from '../../../entities'
10
+ import { isInventoryExpiring } from '../../../utils/inventory-util'
11
+
12
+ export const recommendPutawayLocationResolver = {
13
+ async recommendPutawayLocation(
14
+ _: void,
15
+ { worksheetDetailName, optCnt = 1 }: { worksheetDetailName: string; optCnt: number },
16
+ context: any
17
+ ): Promise<Location[]> {
18
+ const domain: Domain = context.state.domain
19
+
20
+ const worksheetDetail: WorksheetDetail = await getRepository(WorksheetDetail).findOne({
21
+ where: {
22
+ domain: { id: domain.id },
23
+ name: worksheetDetailName
24
+ },
25
+ relations: [
26
+ 'worksheet',
27
+ 'worksheet.arrivalNotice',
28
+ 'worksheet.returnOrder',
29
+ 'targetInventory',
30
+ 'targetInventory.inventory'
31
+ ]
32
+ })
33
+
34
+ const inventory: Inventory = worksheetDetail.targetInventory.inventory
35
+ if (worksheetDetail.status !== WORKSHEET_STATUS.EXECUTING) throw new Error('Current target is not processing')
36
+
37
+ const arrivalNotice: ArrivalNotice = worksheetDetail.worksheet.arrivalNotice
38
+ const returnOrder: ReturnOrder = worksheetDetail.worksheet.returnOrder
39
+
40
+ let unloadingWS: Worksheet
41
+ if (arrivalNotice) {
42
+ unloadingWS = await getRepository(Worksheet).findOne({
43
+ where: { domain: { id: domain.id }, arrivalNotice: { id: arrivalNotice.id }, type: WORKSHEET_TYPE.UNLOADING },
44
+ relations: ['bufferLocation', 'bufferLocation.warehouse']
45
+ })
46
+ } else if (returnOrder) {
47
+ unloadingWS = await getRepository(Worksheet).findOne({
48
+ where: {
49
+ domain: { id: domain.id },
50
+ returnOrder: { id: returnOrder.id },
51
+ type: WORKSHEET_TYPE.UNLOADING_RETURN
52
+ },
53
+ relations: ['bufferLocation', 'bufferLocation.warehouse']
54
+ })
55
+ }
56
+
57
+ const targetWarehouse: Warehouse = unloadingWS.bufferLocation.warehouse
58
+ const sortingLevelSetting: Setting = await getRepository(Setting).findOne({
59
+ where: { domain: { id: domain.id }, name: 'location-recommendation-level' }
60
+ })
61
+ const sortingLevel = sortingLevelSetting?.value
62
+
63
+ const isExpiring: boolean = await isInventoryExpiring(inventory)
64
+
65
+ let recommendedLocations: Location[] = []
66
+ if (isExpiring) {
67
+ switch (sortingLevel) {
68
+ case 'level 1':
69
+ recommendedLocations = await recommendQuarantineLocationLevel1(domain, targetWarehouse, optCnt)
70
+ break
71
+
72
+ default:
73
+ recommendedLocations = await recommendQuarantineLocationLevel1(domain, targetWarehouse, optCnt)
74
+ break
75
+ }
76
+ }
77
+
78
+ if (recommendedLocations.length > 0) return recommendedLocations
79
+
80
+ switch (sortingLevel) {
81
+ case 'level 1':
82
+ recommendedLocations = await recommendLocationLevel1(domain, targetWarehouse, optCnt)
83
+ break
84
+
85
+ default:
86
+ recommendedLocations = await recommendLocationLevel1(domain, targetWarehouse, optCnt)
87
+ break
88
+ }
89
+
90
+ return recommendedLocations
91
+ }
92
+ }
93
+
94
+ export async function recommendLocationLevel1(
95
+ domain: Domain,
96
+ warehouse: Warehouse,
97
+ optCnt: number
98
+ ): Promise<Location[]> {
99
+ return await getEmptyLocations(domain, warehouse, optCnt, [LOCATION_TYPE.SHELF, LOCATION_TYPE.FLOOR])
100
+ }
101
+
102
+ export async function recommendQuarantineLocationLevel1(
103
+ domain: Domain,
104
+ warehouse: Warehouse,
105
+ optCnt: number
106
+ ): Promise<Location[]> {
107
+ return await getEmptyLocations(domain, warehouse, optCnt, [LOCATION_TYPE.QUARANTINE])
108
+ }
109
+
110
+ export async function getEmptyLocations(
111
+ domain: Domain,
112
+ warehouse: Warehouse,
113
+ optCnt: number,
114
+ //@ts-ignore
115
+ allowedTypes: any // LOCATION_TYPE[]
116
+ ): Promise<Location[]> {
117
+ const orderSetting: Setting = await getRepository(Setting).findOne({
118
+ where: { domain: { id: domain.id }, name: 'rule-for-storing-product' }
119
+ })
120
+ let order = {}
121
+ if (orderSetting?.value) order = JSON.parse(orderSetting.value)
122
+
123
+ return await getRepository(Location).find({
124
+ where: {
125
+ domain: { id: domain.id },
126
+ warehouse: { id: warehouse.id },
127
+ status: LOCATION_STATUS.EMPTY,
128
+ type: In(allowedTypes)
129
+ },
130
+ order,
131
+ take: optCnt
132
+ })
133
+ }