@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,186 @@
1
+ import { logger } from '@things-factory/env'
2
+ import {
3
+ DeliveryOrder,
4
+ ORDER_INVENTORY_STATUS,
5
+ ORDER_STATUS,
6
+ OrderInventory,
7
+ ReleaseGood
8
+ } from '@things-factory/sales-base'
9
+
10
+ import { WORKSHEET_STATUS } from '../../../constants'
11
+ import { Worksheet, WorksheetDetail } from '../../../entities'
12
+
13
+ export const rejectCancellationReleaseOrder = {
14
+ async rejectCancellationReleaseOrder(_: any, { name }, context: ResolverContext) {
15
+ const { tx, domain, user } = context.state
16
+
17
+ try {
18
+ // find release order
19
+ let foundRO: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({
20
+ where: { domain: { id: domain.id }, name, status: ORDER_STATUS.PENDING_CANCEL },
21
+ relations: [
22
+ 'bizplace',
23
+ 'orderInventories',
24
+ 'orderInventories.inventory',
25
+ 'orderInventories.inventory.location',
26
+ 'orderInventories.deliveryOrder',
27
+ 'orderVass'
28
+ ]
29
+ })
30
+
31
+ if (!foundRO) throw new Error(`Release order doesn't exists.`)
32
+
33
+ let targetOIs: OrderInventory[] = foundRO.orderInventories
34
+
35
+ // perform update on all order inventories and worksheet
36
+ let worksheetDetails = await Promise.all(
37
+ targetOIs.map(async orderInventory => {
38
+ let existingWorksheetDetail: WorksheetDetail = await tx
39
+ .getRepository(WorksheetDetail)
40
+ .createQueryBuilder('wd')
41
+ .innerJoinAndSelect('wd.worksheet', 'ws')
42
+ .where('wd.target_inventory_id = :orderInventoryId', { orderInventoryId: orderInventory.id })
43
+ .orderBy('ws.created_at', 'DESC')
44
+ .addOrderBy('wd.name')
45
+ .getOne()
46
+
47
+ if (existingWorksheetDetail) {
48
+ const startedAt = existingWorksheetDetail.worksheet.startedAt
49
+ const wdType = existingWorksheetDetail.worksheet.type
50
+ let wdStatus, oiStatus, roStatus, wStatus
51
+ switch (wdType) {
52
+ case 'PICKING':
53
+ case 'BATCH_PICKING':
54
+ wdStatus = !startedAt
55
+ ? WORKSHEET_STATUS.DEACTIVATED
56
+ : orderInventory.pickedQty == orderInventory.releaseQty
57
+ ? WORKSHEET_STATUS.DONE
58
+ : WORKSHEET_STATUS.EXECUTING
59
+ oiStatus = !startedAt
60
+ ? ORDER_INVENTORY_STATUS.READY_TO_PICK
61
+ : orderInventory.pickedQty == orderInventory.releaseQty
62
+ ? ORDER_INVENTORY_STATUS.PICKED
63
+ : ORDER_INVENTORY_STATUS.PICKING
64
+ roStatus = !startedAt ? ORDER_INVENTORY_STATUS.READY_TO_PICK : ORDER_INVENTORY_STATUS.PICKING
65
+ break
66
+ case 'PACKING':
67
+ wdStatus = !startedAt
68
+ ? WORKSHEET_STATUS.DEACTIVATED
69
+ : orderInventory.packedQty == orderInventory.releaseQty
70
+ ? WORKSHEET_STATUS.DONE
71
+ : WORKSHEET_STATUS.EXECUTING
72
+ oiStatus = !startedAt
73
+ ? ORDER_INVENTORY_STATUS.READY_TO_PACK
74
+ : orderInventory.packedQty == orderInventory.releaseQty
75
+ ? ORDER_INVENTORY_STATUS.PACKED
76
+ : ORDER_INVENTORY_STATUS.PACKING
77
+ roStatus = !startedAt ? ORDER_INVENTORY_STATUS.READY_TO_PACK : ORDER_INVENTORY_STATUS.PACKING
78
+ break
79
+ case 'SORTING':
80
+ wdStatus = !startedAt
81
+ ? WORKSHEET_STATUS.DEACTIVATED
82
+ : orderInventory.sortedQty == orderInventory.releaseQty
83
+ ? WORKSHEET_STATUS.DONE
84
+ : WORKSHEET_STATUS.EXECUTING
85
+ oiStatus = !startedAt
86
+ ? ORDER_INVENTORY_STATUS.READY_TO_SORT
87
+ : orderInventory.sortedQty == orderInventory.releaseQty
88
+ ? ORDER_INVENTORY_STATUS.PICKED
89
+ : ORDER_INVENTORY_STATUS.SORTING
90
+ roStatus = !startedAt ? ORDER_INVENTORY_STATUS.READY_TO_SORT : ORDER_INVENTORY_STATUS.SORTING
91
+ break
92
+ case 'LOADING':
93
+ wdStatus = !startedAt
94
+ ? WORKSHEET_STATUS.DEACTIVATED
95
+ : orderInventory?.deliveryOrder
96
+ ? WORKSHEET_STATUS.DONE
97
+ : WORKSHEET_STATUS.EXECUTING
98
+ oiStatus = !startedAt
99
+ ? //@ts-ignore
100
+ ORDER_INVENTORY_STATUS.READY_TO_LOAD
101
+ : orderInventory?.deliveryOrder
102
+ ? ORDER_INVENTORY_STATUS.LOADED
103
+ : ORDER_INVENTORY_STATUS.LOADING
104
+ //@ts-ignore
105
+ roStatus = !startedAt ? ORDER_INVENTORY_STATUS.READY_TO_LOAD : ORDER_INVENTORY_STATUS.LOADING
106
+ break
107
+ default:
108
+ break
109
+ }
110
+
111
+ wStatus = !startedAt ? WORKSHEET_STATUS.DEACTIVATED : WORKSHEET_STATUS.EXECUTING
112
+
113
+ await tx
114
+ .getRepository(WorksheetDetail)
115
+ .update({ id: existingWorksheetDetail.id }, { status: wdStatus, updatedAt: new Date(), updater: user })
116
+ await tx
117
+ .getRepository(OrderInventory)
118
+ .update({ id: orderInventory.id }, { status: oiStatus, updatedAt: new Date(), updater: user } as any)
119
+
120
+ return { worksheet: existingWorksheetDetail.worksheet, wStatus, roStatus }
121
+ } else {
122
+ await tx.getRepository(OrderInventory).update({ id: orderInventory.id }, {
123
+ status: ORDER_INVENTORY_STATUS.PENDING_WORKSHEET,
124
+ updatedAt: new Date(),
125
+ updater: user
126
+ } as any)
127
+ return { worksheet: null, wStatus: null, roStatus: ORDER_STATUS.PENDING_WORKSHEET }
128
+ }
129
+ })
130
+ )
131
+
132
+ if (worksheetDetails[0].worksheet) {
133
+ await tx.getRepository(Worksheet).update(
134
+ { id: worksheetDetails[0].worksheet.id },
135
+ {
136
+ status: worksheetDetails[0].wStatus,
137
+ updatedAt: new Date(),
138
+ updater: user
139
+ }
140
+ )
141
+ }
142
+
143
+ await tx.getRepository(ReleaseGood).update({ id: foundRO.id }, {
144
+ status: worksheetDetails[0].roStatus,
145
+ updatedAt: new Date(),
146
+ updater: user
147
+ } as any)
148
+
149
+ // reverse DO status
150
+ await reverseDO(foundRO, context)
151
+
152
+ return
153
+ } catch (error) {
154
+ logger.error(
155
+ `reject-cancellation-release-order[rejectCancellationReleaseOrder]:(data:${JSON.stringify({
156
+ name,
157
+ tx,
158
+ domain,
159
+ user
160
+ })}) ${error}`
161
+ )
162
+ throw new Error('Something went wrong. Please contact support.')
163
+ }
164
+ }
165
+ }
166
+
167
+ async function reverseDO(releaseGood: ReleaseGood, context: ResolverContext) {
168
+ const { tx, domain, user } = context.state
169
+
170
+ // find DO and change status to previous status
171
+ let foundDO: DeliveryOrder[] = await tx.getRepository(DeliveryOrder).find({
172
+ where: { domain: { id: domain.id }, releaseGood: { id: releaseGood.id }, status: ORDER_STATUS.PENDING_CANCEL },
173
+ relations: ['transportVehicle']
174
+ })
175
+ if (foundDO && foundDO?.length) {
176
+ foundDO = foundDO.map((deliveryOrder: DeliveryOrder) => {
177
+ return {
178
+ ...deliveryOrder,
179
+ status: ORDER_STATUS.READY_TO_DISPATCH,
180
+ updater: user
181
+ }
182
+ })
183
+
184
+ await tx.getRepository(DeliveryOrder).save(foundDO)
185
+ }
186
+ }
@@ -0,0 +1,67 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { ORDER_INVENTORY_STATUS, OrderInventory } from '@things-factory/sales-base'
5
+ import { Domain } from '@things-factory/shell'
6
+ import { Location } from '@things-factory/warehouse-base'
7
+
8
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
9
+ import { WorksheetDetail } from '../../../entities'
10
+
11
+ export const relocatePalletResolver = {
12
+ async relocatePallet(
13
+ _: any,
14
+ { worksheetDetailName, inspectedBatchNo, inspectedQty, inspectedUomValue, inspectedLocationName },
15
+ context: any
16
+ ): Promise<void> {
17
+ const { tx, domain, user } = context.state
18
+ await relocatePallet(
19
+ tx,
20
+ domain,
21
+ user,
22
+ worksheetDetailName,
23
+ inspectedBatchNo,
24
+ inspectedQty,
25
+ inspectedUomValue,
26
+ inspectedLocationName
27
+ )
28
+ }
29
+ }
30
+
31
+ export async function relocatePallet(
32
+ tx: EntityManager,
33
+ domain: Domain,
34
+ user: User,
35
+ worksheetDetailName: string,
36
+ inspectedBatchNo: string,
37
+ inspectedQty: number,
38
+ inspectedUomValue: number,
39
+ inspectedLocationName: string
40
+ ): Promise<void> {
41
+ let worksheetDetail: WorksheetDetail = await tx.getRepository(WorksheetDetail).findOne({
42
+ where: { domain: { id: domain.id }, name: worksheetDetailName, type: WORKSHEET_TYPE.CYCLE_COUNT },
43
+ relations: ['targetInventory', 'targetInventory.inventory', 'targetInventory.inventory.location']
44
+ })
45
+
46
+ if (!worksheetDetail) throw new Error('Failed to find worksheet detail')
47
+
48
+ let targetInventory: OrderInventory = worksheetDetail.targetInventory
49
+ const location: Location = targetInventory?.inventory?.location
50
+ if (location.name === inspectedLocationName) throw new Error(`You can't relocate at same location`)
51
+
52
+ const inspectedLocation: Location = await tx.getRepository(Location).findOne({
53
+ where: { name: inspectedLocationName, domain: { id: domain.id } }
54
+ })
55
+
56
+ worksheetDetail.status = WORKSHEET_STATUS.NOT_TALLY
57
+ worksheetDetail.updater = user
58
+ await tx.getRepository(WorksheetDetail).save(worksheetDetail)
59
+
60
+ targetInventory.inspectedLocation = inspectedLocation
61
+ targetInventory.inspectedBatchNo = inspectedBatchNo
62
+ targetInventory.inspectedQty = inspectedQty
63
+ targetInventory.inspectedUomValue = inspectedUomValue
64
+ targetInventory.status = ORDER_INVENTORY_STATUS.RELOCATED
65
+ targetInventory.updater = user
66
+ await tx.getRepository(OrderInventory).save(targetInventory)
67
+ }
@@ -0,0 +1,127 @@
1
+ import { Bizplace } from '@things-factory/biz-base'
2
+ import { Product } from '@things-factory/product-base'
3
+ import {
4
+ ORDER_INVENTORY_STATUS,
5
+ ORDER_TYPES,
6
+ OrderInventory,
7
+ OrderNoGenerator,
8
+ ReleaseGood
9
+ } from '@things-factory/sales-base'
10
+ import { Inventory } from '@things-factory/warehouse-base'
11
+
12
+ import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
13
+ import { Worksheet, WorksheetDetail } from '../../../entities'
14
+ import { WorksheetNoGenerator } from '../../../utils'
15
+ import { picking } from './picking/picking'
16
+
17
+ export const replacePickingPalletsResolver = {
18
+ async replacePickingPallets(
19
+ _: any,
20
+ { worksheetDetailName, worksheetType, inventories, returnLocation },
21
+ context: any
22
+ ) {
23
+ const { tx, domain, user } = context.state
24
+ const prevWSD: WorksheetDetail = await tx.getRepository(WorksheetDetail).findOne({
25
+ where: { domain: { id: domain.id }, name: worksheetDetailName },
26
+ relations: [
27
+ 'bizplace',
28
+ 'worksheet',
29
+ 'targetInventory',
30
+ 'targetInventory.releaseGood',
31
+ 'targetInventory.inventory',
32
+ 'targetInventory.inventory.product'
33
+ ]
34
+ })
35
+ const prevOrderInv: OrderInventory = prevWSD.targetInventory
36
+ const prevInv: Inventory = prevOrderInv.inventory
37
+ const product: Product = prevInv.product
38
+ const batchId: string = prevOrderInv.batchId
39
+ const productName: string = prevOrderInv.productName
40
+ const packingType: string = prevOrderInv.packingType
41
+
42
+ const worksheet: Worksheet = prevWSD.worksheet
43
+ const releaseGood: ReleaseGood = prevWSD.targetInventory.releaseGood
44
+ const customerBizplace: Bizplace = prevWSD.bizplace
45
+
46
+ // remove locked qty and locked uomValue
47
+ await tx.getRepository(Inventory).save({
48
+ ...prevInv,
49
+ lockedQty: prevInv.lockedQty - prevOrderInv.releaseQty,
50
+ lockedUomValue: prevInv.lockedUomValue - prevOrderInv.releaseUomValue,
51
+ updater: user
52
+ })
53
+
54
+ // 2. update status of previous order Inventory
55
+ await tx.getRepository(OrderInventory).save({
56
+ ...prevOrderInv,
57
+ status: ORDER_INVENTORY_STATUS.REPLACED,
58
+ updater: user
59
+ })
60
+
61
+ // 3. update status of prev worksheet detail
62
+ await tx.getRepository(WorksheetDetail).save({
63
+ ...prevWSD,
64
+ status: WORKSHEET_STATUS.REPLACED,
65
+ updater: user
66
+ })
67
+
68
+ await Promise.all(
69
+ inventories.map(async (inventory: Inventory) => {
70
+ let foundInv: Inventory = await tx.getRepository(Inventory).findOne({
71
+ where: {
72
+ domain: { id: domain.id },
73
+ palletId: inventory.palletId
74
+ },
75
+ relations: ['location']
76
+ })
77
+ const unitUomValue: number = foundInv.uomValue / foundInv.qty
78
+
79
+ // 4. create new order inventories
80
+ const targetInventory: OrderInventory = await tx.getRepository(OrderInventory).save({
81
+ domain,
82
+ bizplace: customerBizplace,
83
+ name: OrderNoGenerator.orderInventory(),
84
+ releaseGood,
85
+ releaseQty: inventory.qty,
86
+ releaseUomValue: unitUomValue * inventory.qty,
87
+ inventory: foundInv,
88
+ product,
89
+ batchId,
90
+ type: ORDER_TYPES.RELEASE_OF_GOODS,
91
+ status: ORDER_INVENTORY_STATUS.PICKING,
92
+ productName,
93
+ packingType,
94
+ packingSize: inventory.packingSize,
95
+ creator: user,
96
+ updater: user
97
+ })
98
+
99
+ // 5. create new worksheet details
100
+ const wsd: WorksheetDetail = await tx.getRepository(WorksheetDetail).save({
101
+ domain,
102
+ bizplace: customerBizplace,
103
+ worksheet,
104
+ name:
105
+ worksheetType === WORKSHEET_TYPE.PICKING
106
+ ? WorksheetNoGenerator.pickingDetail()
107
+ : WorksheetNoGenerator.batchPickingDetail(),
108
+ targetInventory,
109
+ type: worksheetType,
110
+ status: WORKSHEET_STATUS.EXECUTING,
111
+ creator: user,
112
+ updater: user
113
+ })
114
+
115
+ foundInv.lockedQty = foundInv.lockedQty ? foundInv.lockedQty + inventory.qty : inventory.qty
116
+ foundInv.lockedUomValue = foundInv.lockedUomValue
117
+ ? foundInv.lockedUomValue + unitUomValue * inventory.qty
118
+ : unitUomValue * inventory.qty
119
+
120
+ foundInv = await tx.getRepository(Inventory).save(foundInv)
121
+
122
+ // 6. execute picking transaction
123
+ await picking(tx, domain, user, wsd.name, worksheetType, foundInv.palletId, returnLocation, inventory.qty)
124
+ })
125
+ )
126
+ }
127
+ }
@@ -0,0 +1,70 @@
1
+ import { OrderInventory, ReleaseGood } from '@things-factory/sales-base'
2
+ import { Domain, getRepository } from '@things-factory/shell'
3
+ import { Inventory } from '@things-factory/warehouse-base'
4
+
5
+ import { WORKSHEET_TYPE } from '../../../constants'
6
+ import { Worksheet, WorksheetDetail } from '../../../entities'
7
+ import { fetchExecutingWorksheet } from '../../../utils'
8
+
9
+ export const returnWorksheetResolver = {
10
+ async returnWorksheet(_: any, { releaseGoodNo }, context: ResolverContext) {
11
+ const { domain } = context.state
12
+ const releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({
13
+ where: { domain: { id: domain.id }, name: releaseGoodNo },
14
+ relations: ['bizplace']
15
+ })
16
+ if (!releaseGood) throw new Error(`Release good dosen't exist.`)
17
+
18
+ const worksheet: Worksheet = await fetchExecutingWorksheet(
19
+ domain,
20
+ releaseGood.bizplace,
21
+ [
22
+ 'bizplace',
23
+ 'bizplace.domain',
24
+ 'bizplace.company',
25
+ 'bizplace.company.domain',
26
+ 'worksheetDetails',
27
+ 'worksheetDetails.targetInventory',
28
+ 'worksheetDetails.targetInventory.inventory',
29
+ 'worksheetDetails.targetInventory.inventory.location',
30
+ 'worksheetDetails.targetInventory.inventory.product'
31
+ ],
32
+ WORKSHEET_TYPE.WAREHOUSE_RETURN,
33
+ releaseGood
34
+ )
35
+
36
+ const customerCompanyDomain: Domain = worksheet.bizplace?.company.domain
37
+
38
+ return {
39
+ worksheetInfo: {
40
+ bizplaceName: releaseGood.bizplace.name,
41
+ partnerDomainId: worksheet?.bizplace.domain.id,
42
+ customerCompanyDomainId: customerCompanyDomain.id,
43
+ refNo: releaseGood.refNo,
44
+ refNo2: releaseGood.refNo2,
45
+ refNo3: releaseGood.refNo3,
46
+ startedAt: worksheet.startedAt
47
+ },
48
+ worksheetDetailInfos: worksheet.worksheetDetails.map((returnWSD: WorksheetDetail) => {
49
+ const targetInventory: OrderInventory = returnWSD.targetInventory
50
+ const inventory: Inventory = targetInventory.inventory
51
+ return {
52
+ name: returnWSD.name,
53
+ palletId: inventory.palletId,
54
+ cartonId: inventory.cartonId,
55
+ batchId: inventory.batchId,
56
+ batchIdRef: inventory.batchIdRef,
57
+ product: inventory.product,
58
+ expirationDate: inventory.expirationDate,
59
+ qty: targetInventory.releaseQty,
60
+ status: returnWSD.status,
61
+ description: returnWSD.description,
62
+ targetName: targetInventory.name,
63
+ packingType: inventory.packingType,
64
+ packingSize: inventory.packingSize,
65
+ location: inventory.location
66
+ }
67
+ })
68
+ }
69
+ }
70
+ }
@@ -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 { ReturningWorksheetController } from '../../../../controllers'
7
+ import { Worksheet, WorksheetDetail } from '../../../../entities'
8
+
9
+ export const activateReturnResolver = {
10
+ async activateReturn(_: any, { worksheetNo, returnWorksheetDetails }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ return await activateReturn(tx, domain, user, worksheetNo, returnWorksheetDetails)
13
+ }
14
+ }
15
+ export async function activateReturn(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ worksheetNo: string,
20
+ returningWorksheetDetails: Partial<WorksheetDetail>[]
21
+ ): Promise<Worksheet> {
22
+ const worksheetController: ReturningWorksheetController = new ReturningWorksheetController(tx, domain, user)
23
+ return await worksheetController.activateReturning(worksheetNo, returningWorksheetDetails)
24
+ }
@@ -0,0 +1,39 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Bizplace } from '@things-factory/biz-base'
5
+ import { Domain } from '@things-factory/shell'
6
+
7
+ import { ReturningWorksheetController } from '../../../../controllers'
8
+ import { WorksheetController } from '../../../../controllers/worksheet-controller'
9
+ import { Worksheet } from '../../../../entities'
10
+
11
+ export const completeReturnResolver = {
12
+ async completeReturn(_: any, { releaseGoodNo }, context: ResolverContext) {
13
+ const { tx, domain, user } = context.state
14
+ let worksheet: Worksheet = await completeReturn(tx, domain, user, releaseGoodNo)
15
+
16
+ const worksheetController: WorksheetController = new WorksheetController(tx, domain, user)
17
+ if (!worksheet.bizplace?.id) {
18
+ worksheet = await worksheetController.findWorksheetById(worksheet.id, ['bizplace'])
19
+ }
20
+
21
+ const bizplace: Bizplace = worksheet.bizplace
22
+ await worksheetController.notifyToCustomer(bizplace, {
23
+ title: `Stock has been returned to storage (${bizplace.name}, ${releaseGoodNo})`,
24
+ body: 'Return process has been completed',
25
+ url: context.header.referer,
26
+ data: { url: context.header.referer }
27
+ })
28
+ }
29
+ }
30
+
31
+ export async function completeReturn(
32
+ tx: EntityManager,
33
+ domain: Domain,
34
+ user: User,
35
+ releaseGoodNo: string
36
+ ): Promise<Worksheet> {
37
+ const worksheetController: ReturningWorksheetController = new ReturningWorksheetController(tx, domain, user)
38
+ return await worksheetController.completeReturning(releaseGoodNo)
39
+ }
@@ -0,0 +1,9 @@
1
+ import { activateReturnResolver } from './activate-return'
2
+ import { returningResolver } from './returning'
3
+ import { completeReturnResolver } from './complete-return'
4
+
5
+ export const Mutations = {
6
+ ...activateReturnResolver,
7
+ ...returningResolver,
8
+ ...completeReturnResolver
9
+ }
@@ -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 { ReturningWorksheetController } from '../../../../controllers'
7
+
8
+ export const returningResolver = {
9
+ async returning(_: any, { worksheetDetailName, palletId, cartonId, toLocation }, context: ResolverContext) {
10
+ const { tx, domain, user } = context.state
11
+ await returning(tx, domain, user, worksheetDetailName, palletId, cartonId, toLocation)
12
+ }
13
+ }
14
+
15
+ export async function returning(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ worksheetDetailName: [string],
20
+ palletId: string,
21
+ cartonId: string,
22
+ toLocation: string
23
+ ): Promise<void> {
24
+ const worksheetController: ReturningWorksheetController = new ReturningWorksheetController(tx, domain, user)
25
+ await worksheetController.returning(worksheetDetailName, palletId, cartonId, toLocation)
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 { SortingWorksheetController } from '../../../../controllers'
7
+ import { Worksheet, WorksheetDetail } from '../../../../entities'
8
+
9
+ export const activateSortingResolver = {
10
+ async activateSorting(_: any, { worksheetNo, sortingWorksheetDetails }, context: ResolverContext) {
11
+ const { tx, domain, user } = context.state
12
+ return await activateSorting(tx, domain, user, worksheetNo, sortingWorksheetDetails)
13
+ }
14
+ }
15
+
16
+ export async function activateSorting(
17
+ tx: EntityManager,
18
+ domain: Domain,
19
+ user: User,
20
+ worksheetNo: string,
21
+ sortingWorksheetDetails: WorksheetDetail[]
22
+ ): Promise<Worksheet> {
23
+ const worksheetController: SortingWorksheetController = new SortingWorksheetController(tx, domain, user)
24
+ return await worksheetController.activateSorting(worksheetNo, sortingWorksheetDetails)
25
+ }
@@ -0,0 +1,40 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { ORDER_INVENTORY_STATUS } from '@things-factory/sales-base'
5
+ import { Domain } from '@things-factory/shell'
6
+
7
+ import { WORKSHEET_STATUS } from '../../../../constants'
8
+ import { LoadingWorksheetController, SortingWorksheetController } from '../../../../controllers/'
9
+ import { Worksheet } from '../../../../entities'
10
+
11
+ export const completeOrderSortingResolver = {
12
+ async completeOrderSorting(_: any, { releaseGoodNo }, context: ResolverContext) {
13
+ const { tx, domain, user } = context.state
14
+ await completeOrderSorting(tx, domain, user, releaseGoodNo)
15
+ }
16
+ }
17
+
18
+ export async function completeOrderSorting(
19
+ tx: EntityManager,
20
+ domain: Domain,
21
+ user: User,
22
+ releaseGoodNo: string
23
+ ): Promise<void> {
24
+ try {
25
+ const sortingWSCtrl: SortingWorksheetController = new SortingWorksheetController(tx, domain, user)
26
+ const releaseGood = await sortingWSCtrl.completeOrderSorting(releaseGoodNo)
27
+
28
+ const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)
29
+ let loadingWorksheet: Worksheet = await loadingWSCtrl.generateLoadingWorksheet(
30
+ releaseGood.name,
31
+ releaseGood.orderInventories.filter(itm => itm.status != ORDER_INVENTORY_STATUS.COMPLETE_SPLIT)
32
+ )
33
+
34
+ if (loadingWorksheet.status === WORKSHEET_STATUS.DEACTIVATED) {
35
+ await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheet.worksheetDetails)
36
+ }
37
+ } catch (e) {
38
+ throw e
39
+ }
40
+ }
@@ -0,0 +1,23 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { SortingWorksheetController } from '../../../../controllers/'
7
+
8
+ export const completeWorksheetSortingResolver = {
9
+ async completeWorksheetSorting(_: any, { taskNo }, context: ResolverContext) {
10
+ const { tx, domain, user } = context.state
11
+ await completeWorksheetSorting(tx, domain, user, taskNo)
12
+ }
13
+ }
14
+
15
+ export async function completeWorksheetSorting(
16
+ tx: EntityManager,
17
+ domain: Domain,
18
+ user: User,
19
+ taskNo: string
20
+ ): Promise<void> {
21
+ const sortingWSCtrl: SortingWorksheetController = new SortingWorksheetController(tx, domain, user)
22
+ await sortingWSCtrl.completeWorksheetSorting(taskNo)
23
+ }
@@ -0,0 +1,13 @@
1
+ import { activateSortingResolver } from './activate-sorting'
2
+ import { sortingProductResolver } from './sorting-product'
3
+ import { scanProductSortingResolver } from './scan-product-sorting'
4
+ import { completeOrderSortingResolver } from './complete-order-sorting'
5
+ import { completeWorksheetSortingResolver } from './complete-worksheet-sorting'
6
+
7
+ export const Mutations = {
8
+ ...activateSortingResolver,
9
+ ...sortingProductResolver,
10
+ ...scanProductSortingResolver,
11
+ ...completeOrderSortingResolver,
12
+ ...completeWorksheetSortingResolver
13
+ }