@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
+ import { Inventory } from '@things-factory/warehouse-base'
6
+
7
+ import { UnloadingWorksheetController } from '../../../../controllers'
8
+
9
+ export const scanProductUnloadResolver = {
10
+ async scanProductUnload(_: any, { worksheetDetailName, productBarcode, inventory }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ await scanProductUnload(tx, domain, user, worksheetDetailName, productBarcode, inventory)
13
+ }
14
+ }
15
+
16
+ async function scanProductUnload(
17
+ tx: EntityManager,
18
+ domain: Domain,
19
+ user: User,
20
+ worksheetDetailName: string,
21
+ productBarcode: string,
22
+ inventory: Partial<Inventory>
23
+ ): Promise<void> {
24
+ const worksheetController: UnloadingWorksheetController = new UnloadingWorksheetController(tx, domain, user)
25
+ await worksheetController.scanProductUnload(worksheetDetailName, productBarcode, inventory)
26
+ }
@@ -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
+ import { Inventory } from '@things-factory/warehouse-base'
6
+
7
+ import { UnloadingWorksheetController } from '../../../../controllers'
8
+
9
+ export const scanSerialNumberUnloadResolver = {
10
+ async scanSerialNumberUnload(_: any, { worksheetDetailName, serialNumber, inventory }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ await scanSerialNumberUnload(tx, domain, user, worksheetDetailName, serialNumber, inventory)
13
+ }
14
+ }
15
+
16
+ async function scanSerialNumberUnload(
17
+ tx: EntityManager,
18
+ domain: Domain,
19
+ user: User,
20
+ worksheetDetailName: string,
21
+ serialNumber: string,
22
+ inventory: Partial<Inventory>
23
+ ): Promise<void> {
24
+ const worksheetController: UnloadingWorksheetController = new UnloadingWorksheetController(tx, domain, user)
25
+ await worksheetController.scanSerialNumberUnload(worksheetDetailName, serialNumber, inventory)
26
+ }
@@ -0,0 +1,24 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { UnloadingWorksheetController } from '../../../../controllers'
7
+
8
+ export const undoSerialNumberUnloadResolver = {
9
+ async undoSerialNumberUnload(_: any, { worksheetDetailName, inventoryItemId }, context: ResolverContext) {
10
+ const { tx, domain, user } = context.state
11
+ await undoSerialNumberUnload(tx, domain, user, worksheetDetailName, inventoryItemId)
12
+ }
13
+ }
14
+
15
+ async function undoSerialNumberUnload(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ worksheetDetailName: string,
20
+ inventoryItemId: string
21
+ ): Promise<void> {
22
+ const worksheetController: UnloadingWorksheetController = new UnloadingWorksheetController(tx, domain, user)
23
+ await worksheetController.undoSerialNumberUnload(worksheetDetailName, inventoryItemId)
24
+ }
@@ -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 { UnloadingWorksheetController } from '../../../../controllers'
7
+
8
+ export const undoUnloadingResolver = {
9
+ async undoUnloading(_: any, { orderType, orderNo, inventoryIds }, context: ResolverContext) {
10
+ const { tx, domain, user } = context.state
11
+ await undoUnloading(tx, domain, user, orderType, orderNo, inventoryIds)
12
+ }
13
+ }
14
+
15
+ async function undoUnloading(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ orderType: string,
20
+ orderNo: string,
21
+ inventoryIds: [string]
22
+ ): Promise<void> {
23
+ const worksheetController: UnloadingWorksheetController = new UnloadingWorksheetController(tx, domain, user)
24
+ await worksheetController.undoUnload(orderType, orderNo, inventoryIds)
25
+ }
@@ -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
+ import { Inventory } from '@things-factory/warehouse-base'
6
+
7
+ import { UnloadingWorksheetController } from '../../../../controllers'
8
+
9
+ export const unloadResolver = {
10
+ async unload(_: any, { worksheetDetailName, inventory, productBarcode }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ return await unload(tx, domain, user, worksheetDetailName, inventory, productBarcode)
13
+ }
14
+ }
15
+
16
+ async function unload(
17
+ tx: EntityManager,
18
+ domain: Domain,
19
+ user: User,
20
+ worksheetDetailName: string,
21
+ inventory: Partial<Inventory>,
22
+ productBarcode: string
23
+ ): Promise<string> {
24
+ const worksheetController: UnloadingWorksheetController = new UnloadingWorksheetController(tx, domain, user)
25
+ return await worksheetController.unload(worksheetDetailName, inventory, productBarcode)
26
+ }
@@ -0,0 +1,28 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { UnloadingReturningWorksheetController, UnloadingReturningWorksheetDetail } from '../../../../controllers'
7
+ import { Worksheet } from '../../../../entities'
8
+
9
+ export const activateUnloadingReturnResolver = {
10
+ async activateUnloadingReturn(_: any, { worksheetNo, unloadingReturnWorksheetDetails }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ return await activateUnloadingReturn(tx, domain, user, worksheetNo, unloadingReturnWorksheetDetails)
13
+ }
14
+ }
15
+ export async function activateUnloadingReturn(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ worksheetNo: string,
20
+ outboundReturnWorksheetDetails: UnloadingReturningWorksheetDetail[]
21
+ ): Promise<Worksheet> {
22
+ const worksheetController: UnloadingReturningWorksheetController = new UnloadingReturningWorksheetController(
23
+ tx,
24
+ domain,
25
+ user
26
+ )
27
+ return await worksheetController.activateUnloadingReturn(worksheetNo, outboundReturnWorksheetDetails)
28
+ }
@@ -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 { UnloadingReturningWorksheetController } from '../../../../controllers'
7
+ import { WorksheetDetail } from '../../../../entities'
8
+
9
+ export const completeUnloadReturnPartiallyResolver = {
10
+ async completeUnloadReturnPartially(_: any, { returnOrderNo, worksheetDetail }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ await completeUnloadReturnPartially(tx, domain, user, returnOrderNo, worksheetDetail)
13
+ }
14
+ }
15
+
16
+ export async function completeUnloadReturnPartially(
17
+ tx: EntityManager,
18
+ domain: Domain,
19
+ user: User,
20
+ returnOrderNo: string,
21
+ unloadingWorksheetDetail: Partial<WorksheetDetail>[]
22
+ ): Promise<void> {
23
+ const worksheetController: UnloadingReturningWorksheetController = new UnloadingReturningWorksheetController(
24
+ tx,
25
+ domain,
26
+ user
27
+ )
28
+ await worksheetController.completeUnloadReturnPartially(returnOrderNo, unloadingWorksheetDetail)
29
+ }
@@ -0,0 +1,91 @@
1
+ import { EntityManager, In } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
5
+ import { ReturnOrder } from '@things-factory/sales-base'
6
+ import { Domain } from '@things-factory/shell'
7
+ import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
8
+
9
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
10
+ import { PutawayReturningWorksheetController, UnloadingReturningWorksheetController } from '../../../../controllers'
11
+ import { SellercraftController } from '../../../../controllers/ecommerce'
12
+ import { Worksheet, WorksheetDetail } from '../../../../entities'
13
+
14
+ export const completeUnloadReturningResolver = {
15
+ async completeUnloadReturning(_: any, { returnOrderNo, worksheetDetails }, context: ResolverContext) {
16
+ const { tx, domain, user } = context.state
17
+ await completeUnloadReturning(tx, domain, user, returnOrderNo, worksheetDetails)
18
+
19
+ const returnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({
20
+ where: { domain: { id: domain.id }, name: returnOrderNo },
21
+ relations: [
22
+ 'bizplace',
23
+ 'bizplace.domain',
24
+ 'orderInventories',
25
+ 'orderInventories.inventory',
26
+ 'orderInventories.product',
27
+ 'orderInventories.product.productDetails'
28
+ ]
29
+ })
30
+
31
+ const customerDomain: Domain = returnOrder.bizplace.domain
32
+ const sellercraft: Sellercraft = await tx
33
+ .getRepository(Sellercraft)
34
+ .findOneBy({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
35
+
36
+ if (sellercraft) {
37
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
38
+ await sellercraftCtrl.registerProductReturn(sellercraft, returnOrder)
39
+ }
40
+
41
+ const putawayWSCtrl: PutawayReturningWorksheetController = new PutawayReturningWorksheetController(tx, domain, user)
42
+ let putawayWorksheet: Worksheet
43
+
44
+ try {
45
+ putawayWorksheet = await putawayWSCtrl.findWorksheetByRefOrder(returnOrderNo, WORKSHEET_TYPE.PUTAWAY_RETURN)
46
+ } catch (e) {
47
+ const inventories: Inventory[] = await tx.getRepository(Inventory).find({
48
+ where: {
49
+ domain: { id: domain.id },
50
+ refOrderId: returnOrder.id,
51
+ status: In([INVENTORY_STATUS.UNLOADED, INVENTORY_STATUS.CHECKED])
52
+ }
53
+ })
54
+ putawayWorksheet = await putawayWSCtrl.generatePutawayReturnWorksheet(returnOrder.name, inventories)
55
+ }
56
+
57
+ if (putawayWorksheet.status === WORKSHEET_STATUS.DEACTIVATED) {
58
+ await putawayWSCtrl.activatePutawayReturning(putawayWorksheet.name, putawayWorksheet.worksheetDetails)
59
+ }
60
+
61
+ const worksheetController: UnloadingReturningWorksheetController = new UnloadingReturningWorksheetController(
62
+ tx,
63
+ domain,
64
+ user
65
+ )
66
+
67
+ if (context.header && context.header.referer) {
68
+ worksheetController.notifyToOfficeAdmin({
69
+ title: `Unloading Completed (${returnOrder.bizplace.name}, ${returnOrder.name})`,
70
+ body: `${returnOrder.name} is ready for putaway`,
71
+ url: context.header.referer,
72
+ data: { url: context.header.referer }
73
+ })
74
+ }
75
+ }
76
+ }
77
+
78
+ export async function completeUnloadReturning(
79
+ tx: EntityManager,
80
+ domain: Domain,
81
+ user: User,
82
+ returnOrderNo: string,
83
+ unloadingReturnWorksheetDetails: Partial<WorksheetDetail>[]
84
+ ): Promise<void> {
85
+ const worksheetController: UnloadingReturningWorksheetController = new UnloadingReturningWorksheetController(
86
+ tx,
87
+ domain,
88
+ user
89
+ )
90
+ await worksheetController.completeUnloadReturning(returnOrderNo, unloadingReturnWorksheetDetails)
91
+ }
@@ -0,0 +1,9 @@
1
+ import { activateUnloadingReturnResolver } from './activate-unloading-return'
2
+ import { completeUnloadReturningResolver } from './complete-unload-returning'
3
+ import { completeUnloadReturnPartiallyResolver } from './complete-unload-return-partially'
4
+
5
+ export const Mutations = {
6
+ ...activateUnloadingReturnResolver,
7
+ ...completeUnloadReturningResolver,
8
+ ...completeUnloadReturnPartiallyResolver
9
+ }
@@ -0,0 +1,75 @@
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
+
5
+ import { WORKSHEET_TYPE } from '../../../constants'
6
+ import { Worksheet, WorksheetDetail } from '../../../entities'
7
+ import { fetchExecutingWorksheet } from '../../../utils'
8
+
9
+ export const unloadingReturnWorksheetResolver = {
10
+ async unloadingReturnWorksheet(_: any, { returnOrderNo }, context: ResolverContext) {
11
+ const { domain } = context.state
12
+ const returnOrder: ReturnOrder = await getRepository(ReturnOrder).findOne({
13
+ where: { domain: { id: domain.id }, name: returnOrderNo },
14
+ relations: ['bizplace', 'bizplace.domain', 'bizplace.company', 'bizplace.company.domain']
15
+ })
16
+ if (!returnOrder) throw new Error(`Return Order doesn't exist.`)
17
+
18
+ const customerBizplace: Bizplace = returnOrder.bizplace
19
+ const customerCompanyDomain: Domain = returnOrder.bizplace?.company.domain
20
+
21
+ const worksheet: Worksheet = await fetchExecutingWorksheet(
22
+ domain,
23
+ customerBizplace,
24
+ [
25
+ 'bizplace',
26
+ 'bizplace.domain',
27
+ 'bufferLocation',
28
+ 'bufferLocation.warehouse',
29
+ 'returnOrder',
30
+ 'worksheetDetails',
31
+ 'worksheetDetails.targetInventory',
32
+ 'worksheetDetails.targetInventory.product',
33
+ 'worksheetDetails.targetInventory.inventory',
34
+ 'creator',
35
+ 'updater'
36
+ ],
37
+ WORKSHEET_TYPE.UNLOADING_RETURN,
38
+ returnOrder
39
+ )
40
+
41
+ return {
42
+ worksheetInfo: {
43
+ bizplaceName: customerBizplace.name,
44
+ partnerDomainId: customerBizplace?.domain.id,
45
+ customerCompanyDomainId: customerCompanyDomain.id,
46
+ bufferLocation: worksheet.bufferLocation.name,
47
+ startedAt: worksheet.startedAt,
48
+ refNo: returnOrder.refNo
49
+ },
50
+ worksheetDetailInfos: worksheet.worksheetDetails.map((productWSD: WorksheetDetail) => {
51
+ const targetInventory: OrderInventory = productWSD.targetInventory
52
+
53
+ return {
54
+ id: productWSD.id,
55
+ name: productWSD.name,
56
+ batchId: targetInventory.batchId,
57
+ palletId: targetInventory.inventory.palletId,
58
+ product: targetInventory.product,
59
+ description: productWSD.description,
60
+ targetName: targetInventory.name,
61
+ packingType: targetInventory.packingType,
62
+ packingSize: targetInventory.inventory.packingSize,
63
+ palletQty: targetInventory.palletQty,
64
+ actualPalletQty: targetInventory.actualPalletQty,
65
+ packQty: targetInventory.returnQty,
66
+ actualPackQty: targetInventory.actualPackQty,
67
+ remark: targetInventory.remark,
68
+ inventory: targetInventory.inventory,
69
+ issue: productWSD.issue,
70
+ status: productWSD.status
71
+ }
72
+ })
73
+ }
74
+ }
75
+ }
@@ -0,0 +1,98 @@
1
+ import { Bizplace } from '@things-factory/biz-base'
2
+ import { ArrivalNotice, OrderProduct } from '@things-factory/sales-base'
3
+ import { Domain, getRepository } from '@things-factory/shell'
4
+
5
+ import { WORKSHEET_TYPE } from '../../../constants'
6
+ import { Worksheet, WorksheetDetail } from '../../../entities'
7
+ import { fetchExecutingWorksheet } from '../../../utils'
8
+
9
+ export const unloadingWorksheetResolver = {
10
+ async unloadingWorksheet(_: any, { arrivalNoticeNo }, context: ResolverContext) {
11
+ const { domain } = context.state
12
+ const arrivalNotice: ArrivalNotice = await getRepository(ArrivalNotice).findOne({
13
+ where: { domain: { id: domain.id }, name: arrivalNoticeNo /*status: ORDER_STATUS.PROCESSING*/ },
14
+ relations: ['bizplace', 'bizplace.domain', 'bizplace.company', 'bizplace.company.domain']
15
+ })
16
+ if (!arrivalNotice) throw new Error(`Arrival notice doesn't exist.`)
17
+
18
+ const customerBizplace: Bizplace = arrivalNotice.bizplace
19
+ const customerCompanyDomain: Domain = arrivalNotice.bizplace?.company.domain
20
+ const worksheet: Worksheet = await fetchExecutingWorksheet(
21
+ domain,
22
+ customerBizplace,
23
+ [
24
+ 'bizplace',
25
+ 'bufferLocation',
26
+ 'bufferLocation.warehouse',
27
+ 'arrivalNotice',
28
+ 'worksheetDetails',
29
+ 'worksheetDetails.targetProduct',
30
+ 'worksheetDetails.targetProduct.product',
31
+ 'creator',
32
+ 'updater'
33
+ ],
34
+ WORKSHEET_TYPE.UNLOADING,
35
+ arrivalNotice
36
+ )
37
+
38
+ const vasWorksheet: Worksheet = await getRepository(Worksheet).findOne({
39
+ where: {
40
+ domain: { id: domain.id },
41
+ arrivalNotice: { id: arrivalNotice.id },
42
+ type: WORKSHEET_TYPE.VAS
43
+ },
44
+ relations: [
45
+ 'bizplace',
46
+ 'bizplace.domain',
47
+ 'bufferLocation',
48
+ 'bufferLocation.warehouse',
49
+ 'arrivalNotice',
50
+ 'worksheetDetails',
51
+ 'worksheetDetails.targetVas',
52
+ 'worksheetDetails.targetVas.vas',
53
+ 'creator',
54
+ 'updater'
55
+ ]
56
+ })
57
+
58
+ return {
59
+ worksheetInfo: {
60
+ arrivalNotice,
61
+ bizplaceName: customerBizplace.name,
62
+ partnerDomainId: customerBizplace?.domain.id,
63
+ customerCompanyDomainId: customerCompanyDomain.id,
64
+ containerNo: arrivalNotice.containerNo,
65
+ bufferLocation: worksheet.bufferLocation.name,
66
+ startedAt: worksheet.startedAt,
67
+ refNo: arrivalNotice.refNo,
68
+ refNo2: arrivalNotice?.refNo2,
69
+ refNo3: arrivalNotice?.refNo3,
70
+ looseItem: arrivalNotice.looseItem,
71
+ orderVas: vasWorksheet ? vasWorksheet.worksheetDetails : null
72
+ },
73
+ worksheetDetailInfos: worksheet.worksheetDetails.map(async (productWSD: WorksheetDetail) => {
74
+ const targetProduct: OrderProduct = productWSD.targetProduct
75
+
76
+ return {
77
+ id: productWSD.id,
78
+ name: productWSD.name,
79
+ batchId: targetProduct.batchId,
80
+ batchIdRef: targetProduct.batchIdRef,
81
+ product: targetProduct.product,
82
+ description: productWSD.description,
83
+ targetName: targetProduct.name,
84
+ packingType: targetProduct.packingType,
85
+ packingSize: targetProduct.packingSize,
86
+ palletQty: targetProduct.palletQty,
87
+ actualPalletQty: targetProduct.actualPalletQty,
88
+ packQty: targetProduct.packQty,
89
+ actualPackQty: targetProduct.actualPackQty,
90
+ remark: targetProduct.remark,
91
+ issue: productWSD.issue,
92
+ status: productWSD.status,
93
+ manufactureDate: targetProduct.manufactureDate ? new Date(targetProduct.manufactureDate) : null
94
+ }
95
+ })
96
+ }
97
+ }
98
+ }
@@ -0,0 +1,25 @@
1
+ import { In } from 'typeorm'
2
+
3
+ import { getPermittedBizplaceIds } from '@things-factory/biz-base'
4
+
5
+ import { Worksheet } from '../../../entities'
6
+
7
+ export const updateWorksheet = {
8
+ async updateWorksheet(_: any, { id, patch }, context: ResolverContext) {
9
+ const { tx, domain, user } = context.state
10
+
11
+ const worksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
12
+ where: {
13
+ domain: { id: domain.id },
14
+ bizplace: { id: In(await getPermittedBizplaceIds(domain, user)) },
15
+ id
16
+ }
17
+ })
18
+
19
+ return await tx.getRepository(Worksheet).save({
20
+ ...worksheet,
21
+ ...patch,
22
+ updater: user
23
+ })
24
+ }
25
+ }
@@ -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 { VasWorksheetController } from '../../../../controllers'
7
+ import { WorksheetDetail } from '../../../../entities'
8
+
9
+ export const activateVasResolver = {
10
+ async activateVas(_: any, { worksheetNo, vasWorksheetDetails }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ return await activateVas(tx, domain, user, worksheetNo, vasWorksheetDetails)
13
+ }
14
+ }
15
+
16
+ export async function activateVas(
17
+ tx: EntityManager,
18
+ domain: Domain,
19
+ user: User,
20
+ worksheetNo: string,
21
+ vasWorksheetDetails: Partial<WorksheetDetail>[]
22
+ ) {
23
+ const worksheetController: VasWorksheetController = new VasWorksheetController(tx, domain, user)
24
+ return await worksheetController.activateVAS(worksheetNo, vasWorksheetDetails)
25
+ }
@@ -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
+ import { Inventory } from '@things-factory/warehouse-base'
6
+
7
+ import { VasWorksheetController } from '../../../../controllers'
8
+
9
+ export const assignVasInventoriesResolver = {
10
+ async assignVasInventories(_: any, { worksheetDetailIds, inventories }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ await assignVasInventories(tx, domain, user, worksheetDetailIds, inventories)
13
+ }
14
+ }
15
+
16
+ export async function assignVasInventories(
17
+ tx: EntityManager,
18
+ domain: Domain,
19
+ user: User,
20
+ worksheetDetailIds: string[],
21
+ inventories: Partial<Inventory>
22
+ ): Promise<void> {
23
+ const worksheetController: VasWorksheetController = new VasWorksheetController(tx, domain, user)
24
+ await worksheetController.assignInventories(worksheetDetailIds, inventories)
25
+ }
@@ -0,0 +1,72 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { ArrivalNotice, ReleaseGood } from '@things-factory/sales-base'
5
+ import { Domain } from '@things-factory/shell'
6
+
7
+ import { WORKSHEET_TYPE } from '../../../../constants'
8
+ import { LoadingWorksheetController, PutawayWorksheetController, VasWorksheetController } from '../../../../controllers'
9
+ import { Worksheet, WorksheetDetail } from '../../../../entities'
10
+
11
+ export const completeVasResolver = {
12
+ async completeVas(_: any, { orderNo, orderType, worksheetDetails }, context: ResolverContext) {
13
+ const { tx, domain, user } = context.state
14
+ await completeVAS(tx, domain, user, orderNo, orderType, worksheetDetails)
15
+ }
16
+ }
17
+
18
+ export async function completeVAS(
19
+ tx: EntityManager,
20
+ domain: Domain,
21
+ user: User,
22
+ orderNo: string,
23
+ orderType: string,
24
+ worksheetDetails: WorksheetDetail[]
25
+ ): Promise<Worksheet> {
26
+ const worksheetController: VasWorksheetController = new VasWorksheetController(tx, domain, user)
27
+ let worksheet: Worksheet = await worksheetController.completeVAS(orderNo, orderType, worksheetDetails)
28
+
29
+ // if (orderType === ORDER_TYPES.ARRIVAL_NOTICE) {
30
+ // if (!worksheet.worksheetDetails?.length || !worksheet.arrivalNotice?.id) {
31
+ // worksheet = await worksheetController.findWorksheetById(worksheet.id, ['worksheetDetails', 'arrivalNotice'])
32
+ // }
33
+
34
+ // const arrivalNotice: ArrivalNotice = worksheet.arrivalNotice
35
+ // await activatePutawayWorksheet(tx, domain, user, arrivalNotice)
36
+ // } else if (orderType === ORDER_TYPES.RELEASE_OF_GOODS) {
37
+ // if (!worksheet.worksheetDetails?.length || !worksheet.releaseGood?.id) {
38
+ // worksheet = await worksheetController.findWorksheetById(worksheet.id, ['worksheetDetails', 'releaseGood'])
39
+ // }
40
+
41
+ // const releaseGood: ReleaseGood = worksheet.releaseGood
42
+ // await activateLoadingWorksheet(tx, domain, user, releaseGood)
43
+ // }
44
+
45
+ return worksheet
46
+ }
47
+
48
+ async function activatePutawayWorksheet(
49
+ tx: EntityManager,
50
+ domain: Domain,
51
+ user: User,
52
+ arrivalNotice: ArrivalNotice
53
+ ): Promise<void> {
54
+ const worksheetController: PutawayWorksheetController = new PutawayWorksheetController(tx, domain, user)
55
+ const worksheet: Worksheet = await worksheetController.findWorksheetByRefOrder(arrivalNotice, WORKSHEET_TYPE.PUTAWAY)
56
+ const worksheetNo: string = worksheet.name
57
+ const putawayWorksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
58
+ await worksheetController.activatePutaway(worksheetNo, putawayWorksheetDetails)
59
+ }
60
+
61
+ async function activateLoadingWorksheet(
62
+ tx: EntityManager,
63
+ domain: Domain,
64
+ user: User,
65
+ releaseGood: ReleaseGood
66
+ ): Promise<void> {
67
+ const worksheetController: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
68
+ const worksheet: Worksheet = await worksheetController.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.LOADING)
69
+ const worksheetNo: string = worksheet.name
70
+ const loadingWorksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
71
+ await worksheetController.activateLoading(worksheetNo, loadingWorksheetDetails)
72
+ }
@@ -0,0 +1,31 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { VasWorksheetController } from '../../../../controllers'
7
+ import { WorksheetDetail } from '../../../../entities'
8
+
9
+ export const executeVasResolver = {
10
+ async executeVas(_: any, { worksheetDetail, palletId }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ /**
13
+ * @description If pallet id param is exists.
14
+ * Meaning, the VAS order have been requested with Arrival Notice or Release Order
15
+ * Those types of VAS doesn't have flow to assign specific vas target inventory
16
+ * Assignment should be done within executeVas transaction.
17
+ */
18
+ await executeVas(tx, domain, user, worksheetDetail, palletId)
19
+ }
20
+ }
21
+
22
+ export async function executeVas(
23
+ tx: EntityManager,
24
+ domain: Domain,
25
+ user: User,
26
+ worksheetDetail: Partial<WorksheetDetail>,
27
+ palletId?: string
28
+ ): Promise<void> {
29
+ const worksheetController: VasWorksheetController = new VasWorksheetController(tx, domain, user)
30
+ await worksheetController.executeVAS(worksheetDetail, palletId)
31
+ }
@@ -0,0 +1,15 @@
1
+ import { assignVasInventoriesResolver } from './assign-vas-inventories'
2
+ import { activateVasResolver } from './activate-vas'
3
+ import { executeVasResolver } from './execute-vas'
4
+ import { undoVasResolver } from './undo-vas'
5
+ import { completeVasResolver } from './complete-vas'
6
+ import { undoVasInventoryResolver } from './undo-vas-inventory'
7
+
8
+ export const Mutations = {
9
+ ...assignVasInventoriesResolver,
10
+ ...activateVasResolver,
11
+ ...executeVasResolver,
12
+ ...undoVasResolver,
13
+ ...completeVasResolver,
14
+ ...undoVasInventoryResolver
15
+ }