@things-factory/worksheet-base 7.0.1-beta.0 → 7.0.1-beta.12

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 (532) hide show
  1. package/dist-server/constants/index.d.ts +5 -0
  2. package/dist-server/constants/rule-type.d.ts +4 -0
  3. package/dist-server/constants/target-type.d.ts +6 -0
  4. package/dist-server/constants/template.d.ts +12 -0
  5. package/dist-server/constants/transaction-type.d.ts +9 -0
  6. package/dist-server/constants/worksheet.d.ts +35 -0
  7. package/dist-server/controllers/ecommerce/ecommerce-controller.d.ts +10 -0
  8. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  9. package/dist-server/controllers/ecommerce/index.d.ts +2 -0
  10. package/dist-server/controllers/ecommerce/sellercraft-controller.d.ts +13 -0
  11. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  12. package/dist-server/controllers/inbound/index.d.ts +4 -0
  13. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.d.ts +16 -0
  14. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +11 -2
  15. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
  16. package/dist-server/controllers/inbound/putaway-worksheet-controller.d.ts +16 -0
  17. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +7 -1
  18. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  19. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.d.ts +17 -0
  20. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +13 -2
  21. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
  22. package/dist-server/controllers/inbound/unloading-worksheet-controller.d.ts +27 -0
  23. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +102 -24
  24. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  25. package/dist-server/controllers/index.d.ts +18 -0
  26. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.d.ts +13 -0
  27. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +14 -1
  28. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  29. package/dist-server/controllers/inspect/index.d.ts +1 -0
  30. package/dist-server/controllers/outbound/index.d.ts +5 -0
  31. package/dist-server/controllers/outbound/loading-worksheet-controller.d.ts +15 -0
  32. package/dist-server/controllers/outbound/loading-worksheet-controller.js +22 -5
  33. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  34. package/dist-server/controllers/outbound/packing-worksheet-controller.d.ts +10 -0
  35. package/dist-server/controllers/outbound/packing-worksheet-controller.js +25 -1
  36. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  37. package/dist-server/controllers/outbound/picking-worksheet-controller.d.ts +27 -0
  38. package/dist-server/controllers/outbound/picking-worksheet-controller.js +21 -1
  39. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  40. package/dist-server/controllers/outbound/returning-worksheet-controller.d.ts +11 -0
  41. package/dist-server/controllers/outbound/returning-worksheet-controller.js +9 -2
  42. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  43. package/dist-server/controllers/outbound/sorting-worksheet-controller.d.ts +12 -0
  44. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +17 -2
  45. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  46. package/dist-server/controllers/render-elccl-grn.d.ts +3 -0
  47. package/dist-server/controllers/render-elccl-grn.js.map +1 -1
  48. package/dist-server/controllers/render-fm-grn.d.ts +4 -0
  49. package/dist-server/controllers/render-fm-grn.js +3 -0
  50. package/dist-server/controllers/render-fm-grn.js.map +1 -1
  51. package/dist-server/controllers/render-grn.d.ts +4 -0
  52. package/dist-server/controllers/render-grn.js +3 -0
  53. package/dist-server/controllers/render-grn.js.map +1 -1
  54. package/dist-server/controllers/render-invoices.d.ts +4 -0
  55. package/dist-server/controllers/render-invoices.js.map +1 -1
  56. package/dist-server/controllers/render-job-sheet.d.ts +4 -0
  57. package/dist-server/controllers/render-job-sheet.js +2 -0
  58. package/dist-server/controllers/render-job-sheet.js.map +1 -1
  59. package/dist-server/controllers/render-kimeda-grn.d.ts +4 -0
  60. package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
  61. package/dist-server/controllers/render-manifest.d.ts +3 -0
  62. package/dist-server/controllers/render-manual-do.d.ts +3 -0
  63. package/dist-server/controllers/render-manual-do.js +1 -0
  64. package/dist-server/controllers/render-manual-do.js.map +1 -1
  65. package/dist-server/controllers/render-orientage-do.d.ts +3 -0
  66. package/dist-server/controllers/render-orientage-do.js +10 -4
  67. package/dist-server/controllers/render-orientage-do.js.map +1 -1
  68. package/dist-server/controllers/render-orientage-grn.d.ts +3 -0
  69. package/dist-server/controllers/render-orientage-grn.js +5 -2
  70. package/dist-server/controllers/render-orientage-grn.js.map +1 -1
  71. package/dist-server/controllers/render-po.d.ts +4 -0
  72. package/dist-server/controllers/render-po.js +1 -0
  73. package/dist-server/controllers/render-po.js.map +1 -1
  74. package/dist-server/controllers/render-ro-do.d.ts +3 -0
  75. package/dist-server/controllers/render-ro-do.js +1 -0
  76. package/dist-server/controllers/render-ro-do.js.map +1 -1
  77. package/dist-server/controllers/render-seebuu-grn.d.ts +3 -0
  78. package/dist-server/controllers/render-seebuu-grn.js.map +1 -1
  79. package/dist-server/controllers/vas/index.d.ts +1 -0
  80. package/dist-server/controllers/vas/vas-worksheet-controller.d.ts +19 -0
  81. package/dist-server/controllers/vas/vas-worksheet-controller.js +31 -3
  82. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  83. package/dist-server/controllers/worksheet-controller.d.ts +328 -0
  84. package/dist-server/controllers/worksheet-controller.js +31 -3
  85. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  86. package/dist-server/entities/index.d.ts +6 -0
  87. package/dist-server/entities/warehouse-bizplace-onhand-inventory.d.ts +14 -0
  88. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +2 -2
  89. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -1
  90. package/dist-server/entities/worksheet-detail.d.ts +32 -0
  91. package/dist-server/entities/worksheet-detail.js +9 -10
  92. package/dist-server/entities/worksheet-detail.js.map +1 -1
  93. package/dist-server/entities/worksheet-movement.d.ts +11 -0
  94. package/dist-server/entities/worksheet-movement.js +2 -2
  95. package/dist-server/entities/worksheet-movement.js.map +1 -1
  96. package/dist-server/entities/worksheet.d.ts +31 -0
  97. package/dist-server/entities/worksheet.js +10 -11
  98. package/dist-server/entities/worksheet.js.map +1 -1
  99. package/dist-server/graphql/index.d.ts +6 -0
  100. package/dist-server/graphql/resolvers/index.d.ts +541 -0
  101. package/dist-server/graphql/resolvers/pallet/index.d.ts +7 -0
  102. package/dist-server/graphql/resolvers/pallet/pallet-outbound.d.ts +6 -0
  103. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.d.ts +47 -0
  104. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  105. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.d.ts +5 -0
  106. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -1
  107. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.d.ts +5 -0
  108. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.d.ts +16 -0
  109. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.d.ts +5 -0
  110. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +3 -0
  111. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  112. package/dist-server/graphql/resolvers/worksheet/create-worksheet.d.ts +5 -0
  113. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.d.ts +11 -0
  114. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +1 -0
  115. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -1
  116. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.d.ts +9 -0
  117. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +1 -0
  118. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  119. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.d.ts +31 -0
  120. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
  121. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.d.ts +5 -0
  122. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.d.ts +147 -0
  123. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js +3 -0
  124. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -1
  125. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.d.ts +23 -0
  126. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js +1 -0
  127. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js.map +1 -1
  128. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.d.ts +8 -0
  129. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js.map +1 -1
  130. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.d.ts +9 -0
  131. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.d.ts +6 -0
  132. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js +1 -0
  133. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js.map +1 -1
  134. package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.d.ts +9 -0
  135. package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js.map +1 -1
  136. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.d.ts +16 -0
  137. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
  138. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.d.ts +11 -0
  139. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js.map +1 -1
  140. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.d.ts +15 -0
  141. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.d.ts +5 -0
  142. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -1
  143. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.d.ts +12 -0
  144. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js.map +1 -1
  145. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.d.ts +12 -0
  146. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js.map +1 -1
  147. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.d.ts +12 -0
  148. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js.map +1 -1
  149. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.d.ts +25 -0
  150. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +3 -0
  151. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
  152. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.d.ts +10 -0
  153. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js.map +1 -1
  154. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.d.ts +11 -0
  155. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.d.ts +45 -0
  156. package/dist-server/graphql/resolvers/worksheet/having-vas.d.ts +8 -0
  157. package/dist-server/graphql/resolvers/worksheet/having-vas.js +2 -0
  158. package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -1
  159. package/dist-server/graphql/resolvers/worksheet/index.d.ts +479 -0
  160. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  161. package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.d.ts +10 -0
  162. package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.d.ts +14 -0
  163. package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.d.ts +9 -0
  164. package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.d.ts +10 -0
  165. package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js.map +1 -1
  166. package/dist-server/graphql/resolvers/worksheet/inspecting/index.d.ts +35 -0
  167. package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting.d.ts +12 -0
  168. package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-pallet.d.ts +13 -0
  169. package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.d.ts +9 -0
  170. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.d.ts +12 -0
  171. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  172. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.d.ts +6 -0
  173. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -1
  174. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.d.ts +11 -0
  175. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -1
  176. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.d.ts +12 -0
  177. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +10 -2
  178. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  179. package/dist-server/graphql/resolvers/worksheet/loading/index.d.ts +18 -0
  180. package/dist-server/graphql/resolvers/worksheet/loading/loading.d.ts +16 -0
  181. package/dist-server/graphql/resolvers/worksheet/loading/loading.js +4 -1
  182. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
  183. package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.d.ts +11 -0
  184. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.d.ts +31 -0
  185. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +2 -0
  186. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
  187. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.d.ts +5 -0
  188. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.d.ts +10 -0
  189. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  190. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.d.ts +9 -0
  191. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  192. package/dist-server/graphql/resolvers/worksheet/packing/index.d.ts +22 -0
  193. package/dist-server/graphql/resolvers/worksheet/packing/packing.d.ts +11 -0
  194. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  195. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.d.ts +11 -0
  196. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  197. package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.d.ts +6 -0
  198. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.d.ts +47 -0
  199. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +1 -0
  200. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  201. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.d.ts +6 -0
  202. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +1 -0
  203. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
  204. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.d.ts +5 -0
  205. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  206. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.d.ts +10 -0
  207. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
  208. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.d.ts +10 -0
  209. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  210. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.d.ts +15 -0
  211. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.d.ts +8 -0
  212. package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.d.ts +14 -0
  213. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.d.ts +9 -0
  214. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  215. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.d.ts +9 -0
  216. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  217. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.d.ts +40 -0
  218. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -1
  219. package/dist-server/graphql/resolvers/worksheet/picking/index.d.ts +116 -0
  220. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.d.ts +10 -0
  221. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.d.ts +11 -0
  222. package/dist-server/graphql/resolvers/worksheet/picking/picking.d.ts +16 -0
  223. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.d.ts +15 -0
  224. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.d.ts +12 -0
  225. package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.d.ts +7 -0
  226. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.d.ts +13 -0
  227. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.d.ts +6 -0
  228. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.d.ts +83 -0
  229. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +2 -0
  230. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  231. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.d.ts +8 -0
  232. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +2 -0
  233. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  234. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.d.ts +11 -0
  235. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -1
  236. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.d.ts +9 -0
  237. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  238. package/dist-server/graphql/resolvers/worksheet/putaway/index.d.ts +20 -0
  239. package/dist-server/graphql/resolvers/worksheet/putaway/putaway.d.ts +8 -0
  240. package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.d.ts +11 -0
  241. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.d.ts +11 -0
  242. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -1
  243. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.d.ts +9 -0
  244. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
  245. package/dist-server/graphql/resolvers/worksheet/putaway-return/index.d.ts +20 -0
  246. package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.d.ts +8 -0
  247. package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.d.ts +7 -0
  248. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.d.ts +32 -0
  249. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +2 -0
  250. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
  251. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.d.ts +33 -0
  252. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.d.ts +11 -0
  253. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +4 -1
  254. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
  255. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.d.ts +5 -0
  256. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +3 -1
  257. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
  258. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.d.ts +13 -0
  259. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.d.ts +8 -0
  260. package/dist-server/graphql/resolvers/worksheet/return-worksheet.d.ts +31 -0
  261. package/dist-server/graphql/resolvers/worksheet/returning/activate-return.d.ts +11 -0
  262. package/dist-server/graphql/resolvers/worksheet/returning/complete-return.d.ts +10 -0
  263. package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js.map +1 -1
  264. package/dist-server/graphql/resolvers/worksheet/returning/index.d.ts +15 -0
  265. package/dist-server/graphql/resolvers/worksheet/returning/returning.d.ts +12 -0
  266. package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.d.ts +11 -0
  267. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.d.ts +9 -0
  268. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -1
  269. package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.d.ts +9 -0
  270. package/dist-server/graphql/resolvers/worksheet/sorting/index.d.ts +27 -0
  271. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.d.ts +13 -0
  272. package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.d.ts +14 -0
  273. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.d.ts +33 -0
  274. package/dist-server/graphql/resolvers/worksheet/transfer.d.ts +7 -0
  275. package/dist-server/graphql/resolvers/worksheet/transfer.js +2 -0
  276. package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -1
  277. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.d.ts +7 -0
  278. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -1
  279. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.d.ts +6 -0
  280. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  281. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.d.ts +12 -0
  282. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -1
  283. package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.d.ts +6 -0
  284. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.d.ts +11 -0
  285. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.d.ts +11 -0
  286. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +2 -0
  287. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  288. package/dist-server/graphql/resolvers/worksheet/unloading/index.d.ts +42 -0
  289. package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.d.ts +7 -0
  290. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.d.ts +7 -0
  291. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.d.ts +6 -0
  292. package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.d.ts +7 -0
  293. package/dist-server/graphql/resolvers/worksheet/unloading/unload.d.ts +7 -0
  294. package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.d.ts +12 -0
  295. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.d.ts +11 -0
  296. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.d.ts +11 -0
  297. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
  298. package/dist-server/graphql/resolvers/worksheet/unloading-return/index.d.ts +14 -0
  299. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.d.ts +33 -0
  300. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.d.ts +41 -0
  301. package/dist-server/graphql/resolvers/worksheet/update-worksheet.d.ts +6 -0
  302. package/dist-server/graphql/resolvers/worksheet/vas/activate-vas.d.ts +11 -0
  303. package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.d.ts +11 -0
  304. package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.d.ts +12 -0
  305. package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.d.ts +11 -0
  306. package/dist-server/graphql/resolvers/worksheet/vas/index.d.ts +26 -0
  307. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.d.ts +6 -0
  308. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.d.ts +10 -0
  309. package/dist-server/graphql/resolvers/worksheet/vas-candidates.d.ts +92 -0
  310. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -1
  311. package/dist-server/graphql/resolvers/worksheet/vas-inventories.d.ts +6 -0
  312. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +1 -0
  313. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -1
  314. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.d.ts +119 -0
  315. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +16 -3
  316. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  317. package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.d.ts +5 -0
  318. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.d.ts +45 -0
  319. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/relabeling.d.ts +17 -0
  320. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.d.ts +23 -0
  321. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js +1 -1
  322. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -1
  323. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repalletizing.d.ts +12 -0
  324. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/unpacking.d.ts +12 -0
  325. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.d.ts +27 -0
  326. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +1 -0
  327. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -1
  328. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.d.ts +4 -0
  329. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js +1 -0
  330. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -1
  331. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.d.ts +4 -0
  332. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.d.ts +8 -0
  333. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js +2 -0
  334. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -1
  335. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.d.ts +7 -0
  336. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -1
  337. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.d.ts +4 -0
  338. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +1 -0
  339. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
  340. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.d.ts +3 -0
  341. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.d.ts +9 -0
  342. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +5 -0
  343. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
  344. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.d.ts +14 -0
  345. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +2 -0
  346. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
  347. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.d.ts +4 -0
  348. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js +1 -0
  349. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -1
  350. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.d.ts +3 -0
  351. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.d.ts +8 -0
  352. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js +2 -0
  353. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -1
  354. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.d.ts +7 -0
  355. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -1
  356. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.d.ts +4 -0
  357. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.d.ts +2 -0
  358. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.d.ts +10 -0
  359. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +2 -0
  360. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -1
  361. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.d.ts +39 -0
  362. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +2 -0
  363. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
  364. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.d.ts +10 -0
  365. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js.map +1 -1
  366. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.d.ts +14 -0
  367. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -1
  368. package/dist-server/graphql/resolvers/worksheet/worksheet.d.ts +15 -0
  369. package/dist-server/graphql/resolvers/worksheet/worksheet.js +8 -4
  370. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
  371. package/dist-server/graphql/resolvers/worksheet/worksheets.d.ts +8 -0
  372. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
  373. package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.d.ts +5 -0
  374. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.d.ts +5 -0
  375. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +1 -0
  376. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -1
  377. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.d.ts +5 -0
  378. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.d.ts +7 -0
  379. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +2 -0
  380. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
  381. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.d.ts +9 -0
  382. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js +1 -0
  383. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -1
  384. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.d.ts +6 -0
  385. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -1
  386. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.d.ts +6 -0
  387. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
  388. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.d.ts +8 -0
  389. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +3 -0
  390. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -1
  391. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.d.ts +15 -0
  392. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
  393. package/dist-server/graphql/resolvers/worksheet-detail/index.d.ts +78 -0
  394. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.d.ts +16 -0
  395. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +1 -0
  396. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -1
  397. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.d.ts +6 -0
  398. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -1
  399. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.d.ts +5 -0
  400. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.d.ts +14 -0
  401. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
  402. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.d.ts +8 -0
  403. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.d.ts +5 -0
  404. package/dist-server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.d.ts +5 -0
  405. package/dist-server/graphql/resolvers/worksheet-movement/index.d.ts +21 -0
  406. package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.d.ts +6 -0
  407. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.d.ts +6 -0
  408. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.d.ts +8 -0
  409. package/dist-server/graphql/types/index.d.ts +3 -0
  410. package/dist-server/graphql/types/pallet/index.d.ts +3 -0
  411. package/dist-server/graphql/types/pallet/pallet.d.ts +1 -0
  412. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.d.ts +1 -0
  413. package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.d.ts +1 -0
  414. package/dist-server/graphql/types/worksheet/contact-point-info.d.ts +1 -0
  415. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.d.ts +1 -0
  416. package/dist-server/graphql/types/worksheet/delivery-info.d.ts +1 -0
  417. package/dist-server/graphql/types/worksheet/delivery-order-info.d.ts +1 -0
  418. package/dist-server/graphql/types/worksheet/delivery-order-ro.d.ts +1 -0
  419. package/dist-server/graphql/types/worksheet/delivery-worksheet.d.ts +1 -0
  420. package/dist-server/graphql/types/worksheet/executing-worksheet.d.ts +1 -0
  421. package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.d.ts +1 -0
  422. package/dist-server/graphql/types/worksheet/goods-delivery-note.d.ts +1 -0
  423. package/dist-server/graphql/types/worksheet/index.d.ts +3 -0
  424. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.d.ts +1 -0
  425. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.d.ts +1 -0
  426. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.d.ts +1 -0
  427. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.d.ts +1 -0
  428. package/dist-server/graphql/types/worksheet/new-worksheet.d.ts +1 -0
  429. package/dist-server/graphql/types/worksheet/picking-assignment-status.d.ts +1 -0
  430. package/dist-server/graphql/types/worksheet/product-approval.d.ts +1 -0
  431. package/dist-server/graphql/types/worksheet/release-good-worksheet.d.ts +1 -0
  432. package/dist-server/graphql/types/worksheet/return-order-worksheet.d.ts +1 -0
  433. package/dist-server/graphql/types/worksheet/sellercraft-document.d.ts +1 -0
  434. package/dist-server/graphql/types/worksheet/vas-order-worksheet.d.ts +1 -0
  435. package/dist-server/graphql/types/worksheet/vas-worksheet.d.ts +1 -0
  436. package/dist-server/graphql/types/worksheet/worksheet-detail-info.d.ts +1 -0
  437. package/dist-server/graphql/types/worksheet/worksheet-info.d.ts +1 -0
  438. package/dist-server/graphql/types/worksheet/worksheet-list.d.ts +1 -0
  439. package/dist-server/graphql/types/worksheet/worksheet-patch.d.ts +1 -0
  440. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.d.ts +1 -0
  441. package/dist-server/graphql/types/worksheet/worksheet.d.ts +1 -0
  442. package/dist-server/graphql/types/worksheet-detail/index.d.ts +3 -0
  443. package/dist-server/graphql/types/worksheet-detail/inventory-detail.d.ts +1 -0
  444. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.d.ts +1 -0
  445. package/dist-server/graphql/types/worksheet-detail/pallet-info.d.ts +1 -0
  446. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.d.ts +1 -0
  447. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.d.ts +1 -0
  448. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.d.ts +1 -0
  449. package/dist-server/graphql/types/worksheet-movement/index.d.ts +3 -0
  450. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.d.ts +1 -0
  451. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.d.ts +1 -0
  452. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.d.ts +1 -0
  453. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.d.ts +1 -0
  454. package/dist-server/index.d.ts +13 -0
  455. package/dist-server/middlewares/index.d.ts +0 -0
  456. package/dist-server/migrations/index.d.ts +1 -0
  457. package/dist-server/routes.d.ts +1 -0
  458. package/dist-server/tsconfig.tsbuildinfo +1 -1
  459. package/dist-server/utils/datetime-util.d.ts +7 -0
  460. package/dist-server/utils/datetime-util.js.map +1 -1
  461. package/dist-server/utils/index.d.ts +4 -0
  462. package/dist-server/utils/inventory-util.d.ts +137 -0
  463. package/dist-server/utils/inventory-util.js +7 -2
  464. package/dist-server/utils/inventory-util.js.map +1 -1
  465. package/dist-server/utils/worksheet-no-generator.d.ts +30 -0
  466. package/dist-server/utils/worksheet-no-generator.js.map +1 -1
  467. package/dist-server/utils/worksheet-util.d.ts +7 -0
  468. package/dist-server/utils/worksheet-util.js.map +1 -1
  469. package/package.json +17 -17
  470. package/server/controllers/inbound/putaway-returning-worksheet-controller.ts +14 -5
  471. package/server/controllers/inbound/putaway-worksheet-controller.ts +5 -0
  472. package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +9 -0
  473. package/server/controllers/inbound/unloading-worksheet-controller.ts +197 -45
  474. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +12 -0
  475. package/server/controllers/outbound/loading-worksheet-controller.ts +12 -0
  476. package/server/controllers/outbound/packing-worksheet-controller.ts +23 -0
  477. package/server/controllers/outbound/picking-worksheet-controller.ts +20 -0
  478. package/server/controllers/outbound/returning-worksheet-controller.ts +5 -0
  479. package/server/controllers/outbound/sorting-worksheet-controller.ts +13 -0
  480. package/server/controllers/render-fm-grn.ts +3 -0
  481. package/server/controllers/render-grn.ts +3 -0
  482. package/server/controllers/render-job-sheet.ts +2 -0
  483. package/server/controllers/render-manual-do.ts +7 -6
  484. package/server/controllers/render-orientage-do.ts +21 -15
  485. package/server/controllers/render-orientage-grn.ts +15 -12
  486. package/server/controllers/render-po.ts +1 -0
  487. package/server/controllers/render-ro-do.ts +7 -6
  488. package/server/controllers/vas/vas-worksheet-controller.ts +26 -2
  489. package/server/controllers/worksheet-controller.ts +27 -0
  490. package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +3 -0
  491. package/server/graphql/resolvers/worksheet/cross-dock-picking.ts +1 -0
  492. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +1 -0
  493. package/server/graphql/resolvers/worksheet/delivery-order-by-worksheet.ts +3 -0
  494. package/server/graphql/resolvers/worksheet/fetch-delivery-order-ro.ts +1 -0
  495. package/server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.ts +1 -0
  496. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.ts +1 -0
  497. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +4 -1
  498. package/server/graphql/resolvers/worksheet/having-vas.ts +2 -0
  499. package/server/graphql/resolvers/worksheet/index.ts +1 -1
  500. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +9 -2
  501. package/server/graphql/resolvers/worksheet/loading/loading.ts +2 -0
  502. package/server/graphql/resolvers/worksheet/loading-worksheet.ts +2 -0
  503. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +1 -0
  504. package/server/graphql/resolvers/worksheet/palletizing-pallets.ts +3 -0
  505. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +2 -0
  506. package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +2 -0
  507. package/server/graphql/resolvers/worksheet/putaway-returning-worksheet.ts +2 -0
  508. package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +2 -1
  509. package/server/graphql/resolvers/worksheet/reject-cancellation-release-order.ts +19 -17
  510. package/server/graphql/resolvers/worksheet/transfer.ts +9 -1
  511. package/server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.ts +1 -0
  512. package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +1 -0
  513. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +2 -0
  514. package/server/graphql/resolvers/worksheet/vas-inventories.ts +2 -0
  515. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +10 -0
  516. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.ts +1 -0
  517. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.ts +1 -0
  518. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.ts +2 -0
  519. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +1 -0
  520. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +5 -0
  521. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +2 -0
  522. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.ts +1 -0
  523. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.ts +2 -0
  524. package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.ts +2 -0
  525. package/server/graphql/resolvers/worksheet/vas-worksheet.ts +2 -0
  526. package/server/graphql/resolvers/worksheet/worksheet.ts +12 -4
  527. package/server/graphql/resolvers/worksheet-detail/create-worksheet-detail.ts +1 -0
  528. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +3 -1
  529. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts +1 -0
  530. package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +3 -0
  531. package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +1 -0
  532. package/server/utils/inventory-util.ts +38 -10
@@ -0,0 +1,5 @@
1
+ export * from './worksheet';
2
+ export * from './template';
3
+ export * from './transaction-type';
4
+ export * from './target-type';
5
+ export * from './rule-type';
@@ -0,0 +1,4 @@
1
+ export declare const RULE_TYPE: {
2
+ LOT_NUMBER_ID: string;
3
+ CARTON_NUMBER_ID: string;
4
+ };
@@ -0,0 +1,6 @@
1
+ export declare const TARGET_TYPE: {
2
+ BATCH_NO: string;
3
+ BATCH_AND_PRODUCT_TYPE: string;
4
+ ETC: string;
5
+ PRODUCT: string;
6
+ };
@@ -0,0 +1,12 @@
1
+ export declare const TEMPLATE_TYPE: {
2
+ DO_TEMPLATE: string;
3
+ CO_TEMPLATE: string;
4
+ GRN_TEMPLATE: string;
5
+ JOB_TEMPLATE: string;
6
+ MANIFEST_TEMPLATE: string;
7
+ INVOICE_TEMPLATE: string;
8
+ PO_TEMPLATE: string;
9
+ COP: string;
10
+ SIGNATURE: string;
11
+ LOGO: string;
12
+ };
@@ -0,0 +1,9 @@
1
+ export declare const TRANSACTION_TYPE: {
2
+ UNLOADING: string;
3
+ PUTAWAY: string;
4
+ ADJUSTMENT: string;
5
+ PICKING: string;
6
+ LOADING: string;
7
+ RETURN: string;
8
+ TERMINATED: string;
9
+ };
@@ -0,0 +1,35 @@
1
+ export declare const WORKSHEET_TYPE: {
2
+ UNLOADING: string;
3
+ PUTAWAY: string;
4
+ VAS: string;
5
+ PACKING: string;
6
+ PICKING: string;
7
+ SORTING: string;
8
+ BATCH_PICKING: string;
9
+ LOADING: string;
10
+ CYCLE_COUNT: string;
11
+ CYCLE_COUNT_RECHECK: string;
12
+ WAREHOUSE_RETURN: string;
13
+ UNLOADING_RETURN: string;
14
+ PUTAWAY_RETURN: string;
15
+ };
16
+ export declare const WORKSHEET_STATUS: {
17
+ PROCESSING: string;
18
+ DEACTIVATED: string;
19
+ EXECUTING: string;
20
+ NOT_TALLY: string;
21
+ ADJUSTED: string;
22
+ PENDING_APPROVAL: string;
23
+ INSPECTED: string;
24
+ PENDING_ADJUSTMENT: string;
25
+ PARTIALLY_UNLOADED: string;
26
+ DONE: string;
27
+ REPLACED: string;
28
+ CANCELLED: string;
29
+ };
30
+ export declare const TASK_NUMBER_SETTING_KEY: {
31
+ TASK_NO_RULE: string;
32
+ };
33
+ export declare const TASK_NUMBER_RULE_TYPE: {
34
+ TASK_NO: string;
35
+ };
@@ -0,0 +1,10 @@
1
+ import { MarketplaceStore } from '@things-factory/integration-marketplace';
2
+ import { MarketplaceOrder } from '@things-factory/marketplace-base';
3
+ import { ReleaseGood } from '@things-factory/sales-base';
4
+ import { Domain } from '@things-factory/shell';
5
+ import { WorksheetController } from '../worksheet-controller';
6
+ export declare class EcommerceController extends WorksheetController {
7
+ updateProductVariationStock(marketplaceStores: MarketplaceStore[], orderProducts: any[], companyDomain: Domain): Promise<void>;
8
+ createOrderShip(releaseGood: ReleaseGood, marketplaceStore: MarketplaceStore, marketplaceOrder: MarketplaceOrder, companyDomain: Domain): Promise<void>;
9
+ createOrderComment(marketplaceStore: MarketplaceStore, marketplaceOrder: MarketplaceOrder, orderStatus: String): Promise<void>;
10
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"ecommerce-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/ecommerce-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { MarketplaceSetting, MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem,\n MarketplaceProductVariation\n} from '@things-factory/marketplace-base'\nimport { ReleaseGood } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\nimport { getProductBundleInventory, Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { WorksheetController } from '../worksheet-controller'\n\nexport class EcommerceController extends WorksheetController {\n async updateProductVariationStock(\n marketplaceStores: MarketplaceStore[],\n orderProducts: any[],\n companyDomain: Domain\n ): Promise<void> {\n let inventoryProducts: any[] = await Promise.all(\n orderProducts.map(async orderProduct => {\n const product = orderProduct.product\n let qb = await this.trxMgr.getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" != :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: this.domain.id,\n productId: orderProduct.product.id,\n status: INVENTORY_STATUS.TERMINATED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n inventories = inventories.filter(\n inventory =>\n inventory?.location.type !== LOCATION_TYPE.QUARANTINE || inventory?.location.type !== LOCATION_TYPE.RESERVE\n )\n\n const inventoryQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.qty\n return total\n }, 0)\n\n const inventoryLockedQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.lockedQty\n return total\n }, 0)\n\n return { sku: product.sku, name: product.name, qty: inventoryQty - inventoryLockedQty }\n })\n )\n\n let bundleProductInventory: any[] = await getProductBundleInventory(\n this.domain,\n companyDomain,\n orderProducts,\n this.trxMgr\n )\n\n inventoryProducts.push(bundleProductInventory)\n\n for (var i = 0; i < marketplaceStores.length; i++) {\n const marketplaceStore = marketplaceStores[i]\n\n // get marketplace setting based on marketplace connection\n const marketplaceSetting: MarketplaceSetting = await this.trxMgr.getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, category: 'stock_allocation' }\n })\n\n for (var j = 0; j < inventoryProducts.length; j++) {\n const inventoryProduct = inventoryProducts[j]\n const marketplaceProductVariations: MarketplaceProductVariation[] = await this.trxMgr\n .getRepository(MarketplaceProductVariation)\n .find({\n where: { domain: { id: companyDomain.id }, sku: inventoryProduct.sku },\n relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']\n })\n\n let storeProductVariations: MarketplaceProductVariation[] = marketplaceProductVariations.filter(\n productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id\n )\n\n let percentageValue: number = 100\n if (storeProductVariations) {\n for (let k = 0; k < storeProductVariations.length; k++) {\n let storeProductVariation: MarketplaceProductVariation = storeProductVariations[k]\n if (marketplaceSetting) {\n percentageValue = parseInt(marketplaceSetting.value)\n }\n\n let remainQty: number = Math.floor(\n (inventoryProduct.qty - storeProductVariation.reserveQty) * (percentageValue / 100)\n )\n if (remainQty < 0) remainQty = 0\n\n let productVariationLocationId = storeProductVariation?.locationId\n let adjustQty: number = remainQty\n\n if (marketplaceStore.platform === 'shopify') {\n let locationIds: any[] = JSON.parse(productVariationLocationId)\n adjustQty = adjustQty - storeProductVariation.qty\n if (locationIds[0]?.location_id) productVariationLocationId = locationIds[0].location_id\n }\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n await StoreAPI.updateStoreProductVariationStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n locationId: productVariationLocationId,\n inventoryItemId: storeProductVariation.inventoryItemId,\n distributors: validMarketplaceDistributors\n }\n ])\n\n storeProductVariation.qty = remainQty\n storeProductVariation.updater = this.user\n await this.trxMgr.getRepository(MarketplaceProductVariation).save(storeProductVariation)\n }\n }\n }\n }\n }\n\n async createOrderShip(\n releaseGood: ReleaseGood,\n marketplaceStore: MarketplaceStore,\n marketplaceOrder: MarketplaceOrder,\n companyDomain: Domain\n ): Promise<void> {\n let marketplaceOrderShipping: MarketplaceOrderShipping\n\n if (marketplaceOrder.isSplitted) {\n marketplaceOrderShipping = await this.trxMgr.getRepository(MarketplaceOrderShipping).findOne({\n where: {\n domain: { id: companyDomain.id },\n marketplaceStore: { id: marketplaceStore.id },\n subOrderNoRef: releaseGood.refNo2\n }\n })\n } else {\n marketplaceOrderShipping = await this.trxMgr.getRepository(MarketplaceOrderShipping).findOne({\n where: {\n domain: { id: companyDomain.id },\n marketplaceStore: { id: marketplaceStore.id },\n orderNoRef: releaseGood.refNo\n }\n })\n }\n\n const trackingNo: string = marketplaceOrderShipping.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo\n const shippingProvider: string = marketplaceOrderShipping.ownTransporter\n ? marketplaceOrderShipping.ownTransporter\n : marketplaceOrderShipping.transporter\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceOrder.marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceOrder.marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n let marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n let orderItems: any[] = []\n marketplaceOrderItems.map(marketplaceOrderItem => {\n const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderItem.marketplaceOrderShippingItems\n marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n if (marketplaceOrderShippingItem?.marketplaceOrderShipping.id == marketplaceOrderShipping.id) {\n orderItems.push({ name: marketplaceOrderItem.name, qty: marketplaceOrderShippingItem.qty })\n }\n })\n })\n\n await StoreAPI.createOrderShip(marketplaceStore, {\n orderId: marketplaceOrder.name,\n orderItems,\n shippings: [{ trackingNo, carrierCode: shippingProvider }],\n sourceCodes: validMarketplaceDistributors.map(distributor => distributor.name)\n })\n }\n\n async createOrderComment(\n marketplaceStore: MarketplaceStore,\n marketplaceOrder: MarketplaceOrder,\n orderStatus: String\n ): Promise<void> {\n await StoreAPI.createOrderComment(marketplaceStore, {\n orderId: marketplaceOrder.name,\n remark: orderStatus,\n status: marketplaceOrder.status\n })\n }\n}\n"]}
1
+ {"version":3,"file":"ecommerce-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/ecommerce-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { MarketplaceSetting, MarketplaceStore, StoreAPI } from '@things-factory/integration-marketplace'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem,\n MarketplaceProductVariation\n} from '@things-factory/marketplace-base'\nimport { ReleaseGood } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\nimport { getProductBundleInventory, Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { WorksheetController } from '../worksheet-controller'\n\nexport class EcommerceController extends WorksheetController {\n async updateProductVariationStock(\n marketplaceStores: MarketplaceStore[],\n orderProducts: any[],\n companyDomain: Domain\n ): Promise<void> {\n let inventoryProducts: any[] = await Promise.all(\n orderProducts.map(async orderProduct => {\n const product = orderProduct.product\n let qb = await this.trxMgr.getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" != :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: this.domain.id,\n productId: orderProduct.product.id,\n status: INVENTORY_STATUS.TERMINATED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n\n inventories = inventories.filter(\n inventory =>\n inventory?.location.type !== LOCATION_TYPE.QUARANTINE || inventory?.location.type !== LOCATION_TYPE.RESERVE\n )\n\n const inventoryQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.qty\n return total\n }, 0)\n\n const inventoryLockedQty: number = inventories.reduce((total, currentValue) => {\n total += currentValue.lockedQty\n return total\n }, 0)\n\n return { sku: product.sku, name: product.name, qty: inventoryQty - inventoryLockedQty }\n })\n )\n\n let bundleProductInventory: any[] = await getProductBundleInventory(\n this.domain,\n companyDomain,\n orderProducts,\n this.trxMgr\n )\n\n inventoryProducts.push(bundleProductInventory)\n\n for (var i = 0; i < marketplaceStores.length; i++) {\n const marketplaceStore = marketplaceStores[i]\n\n // get marketplace setting based on marketplace connection\n const marketplaceSetting: MarketplaceSetting = await this.trxMgr.getRepository(MarketplaceSetting).findOne({\n where: { marketplaceStore: { id: marketplaceStore.id }, category: 'stock_allocation' }\n })\n\n for (var j = 0; j < inventoryProducts.length; j++) {\n const inventoryProduct = inventoryProducts[j]\n const marketplaceProductVariations: MarketplaceProductVariation[] = await this.trxMgr\n .getRepository(MarketplaceProductVariation)\n .find({\n where: { domain: { id: companyDomain.id }, sku: inventoryProduct.sku },\n relations: ['marketplaceProduct', 'marketplaceProduct.marketplaceStore']\n })\n\n let storeProductVariations: MarketplaceProductVariation[] = marketplaceProductVariations.filter(\n productVariation => productVariation.marketplaceProduct.marketplaceStore.id === marketplaceStore.id\n )\n\n let percentageValue: number = 100\n if (storeProductVariations) {\n for (let k = 0; k < storeProductVariations.length; k++) {\n let storeProductVariation: MarketplaceProductVariation = storeProductVariations[k]\n if (marketplaceSetting) {\n percentageValue = parseInt(marketplaceSetting.value)\n }\n\n let remainQty: number = Math.floor(\n (inventoryProduct.qty - storeProductVariation.reserveQty) * (percentageValue / 100)\n )\n if (remainQty < 0) remainQty = 0\n\n let productVariationLocationId = storeProductVariation?.locationId\n let adjustQty: number = remainQty\n\n if (marketplaceStore.platform === 'shopify') {\n let locationIds: any[] = JSON.parse(productVariationLocationId)\n adjustQty = adjustQty - storeProductVariation.qty\n if (locationIds[0]?.location_id) productVariationLocationId = locationIds[0].location_id\n }\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n await StoreAPI.updateStoreProductVariationStock(marketplaceStore, [\n {\n itemId: storeProductVariation.marketplaceProduct.itemId,\n variationId: storeProductVariation.variationId,\n variationSku: storeProductVariation.variationSku,\n qty: adjustQty,\n locationId: productVariationLocationId,\n inventoryItemId: storeProductVariation.inventoryItemId,\n distributors: validMarketplaceDistributors\n }\n ])\n\n storeProductVariation.qty = remainQty\n storeProductVariation.updater = this.user\n await this.trxMgr.getRepository(MarketplaceProductVariation).save(storeProductVariation)\n }\n }\n }\n }\n }\n\n async createOrderShip(\n releaseGood: ReleaseGood,\n marketplaceStore: MarketplaceStore,\n marketplaceOrder: MarketplaceOrder,\n companyDomain: Domain\n ): Promise<void> {\n let marketplaceOrderShipping: MarketplaceOrderShipping\n\n if (marketplaceOrder.isSplitted) {\n marketplaceOrderShipping = await this.trxMgr.getRepository(MarketplaceOrderShipping).findOne({\n where: {\n domain: { id: companyDomain.id },\n marketplaceStore: { id: marketplaceStore.id },\n subOrderNoRef: releaseGood.refNo2\n }\n })\n } else {\n marketplaceOrderShipping = await this.trxMgr.getRepository(MarketplaceOrderShipping).findOne({\n where: {\n domain: { id: companyDomain.id },\n marketplaceStore: { id: marketplaceStore.id },\n orderNoRef: releaseGood.refNo\n }\n })\n }\n\n const trackingNo: string = marketplaceOrderShipping.ownTrackingNo\n ? marketplaceOrderShipping.ownTrackingNo\n : marketplaceOrderShipping.trackingNo\n const shippingProvider: string = marketplaceOrderShipping.ownTransporter\n ? marketplaceOrderShipping.ownTransporter\n : marketplaceOrderShipping.transporter\n\n let validMarketplaceDistributors: any[] = []\n if (marketplaceOrder.marketplaceStore.marketplaceDistributors) {\n validMarketplaceDistributors = marketplaceOrder.marketplaceStore.marketplaceDistributors.filter(\n distributor => distributor.status === 'ACTIVE'\n )\n }\n\n let marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n let orderItems: any[] = []\n marketplaceOrderItems.map(marketplaceOrderItem => {\n const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderItem.marketplaceOrderShippingItems\n marketplaceOrderShippingItems.map(marketplaceOrderShippingItem => {\n if (marketplaceOrderShippingItem?.marketplaceOrderShipping.id == marketplaceOrderShipping.id) {\n orderItems.push({ name: marketplaceOrderItem.name, qty: marketplaceOrderShippingItem.qty })\n }\n })\n })\n\n await StoreAPI.createOrderShip(marketplaceStore, {\n orderId: marketplaceOrder.name,\n orderItems,\n shippings: [{ trackingNo, carrierCode: shippingProvider }],\n sourceCodes: validMarketplaceDistributors.map(distributor => distributor.name)\n })\n }\n\n async createOrderComment(\n marketplaceStore: MarketplaceStore,\n marketplaceOrder: MarketplaceOrder,\n orderStatus: String\n ): Promise<void> {\n await StoreAPI.createOrderComment(marketplaceStore, {\n orderId: marketplaceOrder.name,\n remark: orderStatus,\n status: marketplaceOrder.status\n })\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export * from './ecommerce-controller';
2
+ export * from './sellercraft-controller';
@@ -0,0 +1,13 @@
1
+ import { Sellercraft } from '@things-factory/integration-sellercraft';
2
+ import { ArrivalNotice, ReleaseGood, ReturnOrder } from '@things-factory/sales-base';
3
+ import { Inventory } from '@things-factory/warehouse-base';
4
+ import { WorksheetController } from '../worksheet-controller';
5
+ export declare class SellercraftController extends WorksheetController {
6
+ packOrder(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood>;
7
+ registerProductInbound(sellercraft: Sellercraft, arrivalNotice: ArrivalNotice): Promise<void>;
8
+ registerProductReturn(sellercraft: Sellercraft, returnOrder: ReturnOrder): Promise<void>;
9
+ updateSellercraftStock(sellercraft: Sellercraft, inventory: Inventory): Promise<void>;
10
+ initiateOrderShipment(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void>;
11
+ initiateOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void>;
12
+ fetchOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood>;
13
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"sellercraft-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/sellercraft-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { Sellercraft, SellercraftAPI } from '@things-factory/integration-sellercraft'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport {\n ArrivalNotice,\n OrderInventory,\n OrderProduct,\n PurchaseOrder,\n ReleaseGood,\n ReturnOrder\n} from '@things-factory/sales-base'\nimport { Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { WorksheetController } from '../worksheet-controller'\n\nexport class SellercraftController extends WorksheetController {\n async packOrder(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disablePackOrder: boolean =\n sellercraftSetting?.disablePackOrder && sellercraftSetting?.disablePackOrder == 1 ? true : false\n\n if (!disablePackOrder) {\n const orderProducts: OrderProduct[] = releaseGood.orderProducts\n let sellercraftOPs: any[] = []\n\n sellercraftOPs = orderProducts.map(orderProduct => {\n const product: Product = orderProduct.product\n\n return {\n sku: product.sku,\n releaseQty: orderProduct.releaseQty,\n uom: 'EA'\n }\n })\n\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n sellercraftOPs\n }\n const packageId: string = await SellercraftAPI.packMarketplaceOrder(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n\n releaseGood.packageId = packageId\n releaseGood.updater = this.user\n }\n\n return releaseGood\n }\n\n async registerProductInbound(sellercraft: Sellercraft, arrivalNotice: ArrivalNotice): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableRegisterInbound: boolean =\n sellercraftSetting?.disableRegisterInbound && sellercraftSetting?.disableRegisterInbound == 1 ? true : false\n\n if (!disableRegisterInbound) {\n const orderProducts: OrderProduct[] = arrivalNotice.orderProducts\n const purchaseOrder: PurchaseOrder = arrivalNotice.purchaseOrder\n const sellercraftOPs: any[] = await Promise.all(\n orderProducts.map(async (orderProduct: OrderProduct) => {\n const product: Product = orderProduct.product\n const productDetails: ProductDetail[] = product.productDetails\n const unloadedPackingType: string = orderProduct.packingType\n const defaultProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.isDefault\n )\n\n let packingSize: number = 1\n if (unloadedPackingType !== defaultProductDetail.packingType) {\n const unmatchingProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.packingType === unloadedPackingType\n )\n\n packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail)\n }\n\n return {\n sku: product.sku,\n purchaseOrderQty: orderProduct.packQty * packingSize,\n receivedQty: orderProduct.actualPackQty * packingSize,\n uom: 'EA',\n batchId: orderProduct.batchId,\n productName: product.name,\n gtin: defaultProductDetail.gtin,\n forceCreateProduct: true,\n expiryTime: 0,\n weight: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,\n packageDimension: {\n length: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,\n width: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,\n height: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height\n }\n }\n })\n )\n\n const inboundOrder: any = {\n accountId: sellercraft.accountId,\n inboundId: arrivalNotice.name,\n inboundTime: Math.floor(new Date(arrivalNotice.updatedAt).getTime() / 1000),\n inboundType: purchaseOrder ? 'purchase_order' : 'blind_receive',\n purchaseOrderId: purchaseOrder ? purchaseOrder.name : '',\n sellercraftOPs\n }\n await SellercraftAPI.addInboundOrder(sellercraft, {\n ...inboundOrder,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n }\n }\n\n async registerProductReturn(sellercraft: Sellercraft, returnOrder: ReturnOrder): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableRegisterReturn: boolean =\n sellercraftSetting?.disableRegisterReturn && sellercraftSetting?.disableRegisterReturn == 1 ? true : false\n\n if (!disableRegisterReturn) {\n const orderInventories: OrderInventory[] = returnOrder.orderInventories\n const sellercraftOPs: any[] = await Promise.all(\n orderInventories.map(async (orderInventory: OrderInventory) => {\n const product: Product = orderInventory.product\n const productDetails: ProductDetail[] = product.productDetails\n const unloadedPackingType: string = orderInventory.packingType\n const defaultProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.isDefault\n )\n\n let packingSize: number = 1\n if (unloadedPackingType !== defaultProductDetail.packingType) {\n const unmatchingProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.packingType === unloadedPackingType\n )\n\n packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail)\n }\n\n return {\n sku: product.sku,\n productName: product.name,\n gtin: defaultProductDetail.gtin,\n purchaseOrderQty: orderInventory.returnQty * packingSize,\n receivedQty: orderInventory.returnQty * packingSize,\n uom: 'EA',\n batchId: orderInventory.batchId,\n forceCreateProduct: true,\n expiryTime: 0,\n weight: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,\n packageDimension: {\n length: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,\n width: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,\n height: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height\n }\n }\n })\n )\n\n const returnInbound: any = {\n accountId: sellercraft.accountId,\n inboundId: returnOrder.name,\n inboundTime: Math.floor(new Date(returnOrder.updatedAt).getTime() / 1000),\n purchaseOrderId: '',\n inboundType: 'sales_return',\n sellercraftOPs\n }\n await SellercraftAPI.addInboundOrder(sellercraft, {\n ...returnInbound,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n }\n }\n\n async updateSellercraftStock(sellercraft: Sellercraft, inventory: Inventory): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableUpdateStock: boolean =\n sellercraftSetting?.disableUpdateStock && sellercraftSetting?.disableUpdateStock == 1 ? true : false\n\n if (!disableUpdateStock) {\n const bizplace: Bizplace = await this.trxMgr.getRepository(Bizplace).findOneBy({ domain: sellercraft.domain })\n let product: Product = inventory.product\n const productDetails: ProductDetail[] = product.productDetails\n let qb = await this.trxMgr.getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"bizplace_id\" = :bizplaceId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" = :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: this.domain.id,\n bizplaceId: bizplace.id,\n productId: product.id,\n status: INVENTORY_STATUS.STORED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n let inventoryTotalQty: number = 0\n let inventoryTotalLockedQty: number = 0\n\n let defaultProductDetail: ProductDetail = product.productDetails.find(productDetail => productDetail.isDefault)\n\n if (inventories?.length > 0) {\n const sellercraftInvs: any[] = await Promise.all(\n inventories.map(async (inventory: Inventory) => {\n const inventoryPackingType: string = inventory.packingType\n\n let packingSize: number = 1\n if (inventoryPackingType !== defaultProductDetail.packingType) {\n const unmatchingProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.packingType === inventoryPackingType\n )\n\n packingSize = await this.getChildPackingSize(\n productDetails,\n defaultProductDetail,\n unmatchingProductDetail\n )\n }\n\n return { totalQty: inventory.qty * packingSize, totalLockedQty: inventory.lockedQty * packingSize }\n })\n )\n\n inventoryTotalQty = sellercraftInvs.reduce((total, currentValue) => {\n total += currentValue.totalQty\n return total\n }, 0)\n\n inventoryTotalQty = sellercraftInvs.reduce((total, currentValue) => {\n total += currentValue.totalLockedQty\n return total\n }, 0)\n }\n\n const sellercraftInv: any[] = [\n {\n sku: product.sku,\n gtin: defaultProductDetail.gtin,\n stock: {\n quantity_total: inventoryTotalQty,\n quantity_reserved: inventoryTotalLockedQty,\n unit_of_measure: 'EA'\n },\n package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,\n package_dimensions: {\n length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,\n width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,\n height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height\n }\n }\n ]\n\n await SellercraftAPI.updateProduct(sellercraft, {\n context: { state: { domain: this?.domain, user: this?.user } },\n accountId: sellercraft.accountId,\n sellercraftInv\n })\n }\n }\n\n async initiateOrderShipment(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableInitiateOrderShipment: boolean =\n sellercraftSetting?.disableInitiateOrderShipment && sellercraftSetting?.disableInitiateOrderShipment == 1\n ? true\n : false\n\n if (!disableInitiateOrderShipment) {\n if (!releaseGood?.packageId) throw new Error('Order package id is not found')\n\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n packageId: releaseGood.packageId\n }\n\n await SellercraftAPI.initiateOrderShipment(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n }\n }\n\n async initiateOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableInitiateOrderDocument: boolean =\n sellercraftSetting?.disableInitiateOrderDocument && sellercraftSetting?.disableInitiateOrderDocument == 1\n ? true\n : false\n\n if (!disableInitiateOrderDocument) {\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n packageId: releaseGood.packageId\n }\n await SellercraftAPI.initiateOrderDocument(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n }\n }\n\n async fetchOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood> {\n if (releaseGood?.ownTransport) {\n return\n }\n try {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableFetchOrderDocument: boolean =\n sellercraftSetting?.disableFetchOrderDocument && sellercraftSetting?.disableFetchOrderDocument == 1\n ? true\n : false\n\n if (!disableFetchOrderDocument) {\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n packageId: releaseGood.packageId\n }\n const { documents, trackingNo, transporter }: { documents: any[]; trackingNo: string; transporter: string } =\n await SellercraftAPI.fetchOrderDocument(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n\n let updateInfo: any\n if (documents?.length) {\n documents.map(document => {\n if (document.type === 'invoice') {\n updateInfo = { ...updateInfo, invoice: document.download_url }\n } else if (document.type === 'airway_bill') {\n updateInfo = { ...updateInfo, airwayBill: document.download_url }\n }\n })\n\n updateInfo = {\n ...updateInfo,\n trackingNo: trackingNo,\n transporter: transporter,\n updater: this.user\n }\n\n // releaseGood = await this.trxMgr.getRepository(ReleaseGood).save(releaseGood)\n\n await this.trxMgr.getRepository(ReleaseGood).update({ id: releaseGood.id }, { ...updateInfo })\n releaseGood = await this.trxMgr.getRepository(ReleaseGood).findOneBy({ id: releaseGood.id })\n }\n }\n\n return releaseGood\n } catch (error) {\n throw error\n }\n }\n}\n"]}
1
+ {"version":3,"file":"sellercraft-controller.js","sourceRoot":"","sources":["../../../server/controllers/ecommerce/sellercraft-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Bizplace } from '@things-factory/biz-base'\nimport { Sellercraft, SellercraftAPI } from '@things-factory/integration-sellercraft'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport {\n ArrivalNotice,\n OrderInventory,\n OrderProduct,\n PurchaseOrder,\n ReleaseGood,\n ReturnOrder\n} from '@things-factory/sales-base'\nimport { Inventory, INVENTORY_STATUS, LOCATION_TYPE } from '@things-factory/warehouse-base'\n\nimport { WorksheetController } from '../worksheet-controller'\n\nexport class SellercraftController extends WorksheetController {\n async packOrder(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disablePackOrder: boolean =\n sellercraftSetting?.disablePackOrder && sellercraftSetting?.disablePackOrder == 1 ? true : false\n\n if (!disablePackOrder) {\n const orderProducts: OrderProduct[] = releaseGood.orderProducts\n let sellercraftOPs: any[] = []\n\n sellercraftOPs = orderProducts.map(orderProduct => {\n const product: Product = orderProduct.product\n\n return {\n sku: product.sku,\n releaseQty: orderProduct.releaseQty,\n uom: 'EA'\n }\n })\n\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n sellercraftOPs\n }\n const packageId: string = await SellercraftAPI.packMarketplaceOrder(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n\n releaseGood.packageId = packageId\n releaseGood.updater = this.user\n }\n\n return releaseGood\n }\n\n async registerProductInbound(sellercraft: Sellercraft, arrivalNotice: ArrivalNotice): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableRegisterInbound: boolean =\n sellercraftSetting?.disableRegisterInbound && sellercraftSetting?.disableRegisterInbound == 1 ? true : false\n\n if (!disableRegisterInbound) {\n const orderProducts: OrderProduct[] = arrivalNotice.orderProducts\n const purchaseOrder: PurchaseOrder = arrivalNotice.purchaseOrder\n const sellercraftOPs: any[] = await Promise.all(\n orderProducts.map(async (orderProduct: OrderProduct) => {\n const product: Product = orderProduct.product\n const productDetails: ProductDetail[] = product.productDetails\n const unloadedPackingType: string = orderProduct.packingType\n const defaultProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.isDefault\n )\n\n let packingSize: number = 1\n if (unloadedPackingType !== defaultProductDetail.packingType) {\n const unmatchingProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.packingType === unloadedPackingType\n )\n\n packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail)\n }\n\n return {\n sku: product.sku,\n purchaseOrderQty: orderProduct.packQty * packingSize,\n receivedQty: orderProduct.actualPackQty * packingSize,\n uom: 'EA',\n batchId: orderProduct.batchId,\n productName: product.name,\n gtin: defaultProductDetail.gtin,\n forceCreateProduct: true,\n expiryTime: 0,\n weight: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,\n packageDimension: {\n length: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,\n width: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,\n height: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height\n }\n }\n })\n )\n\n const inboundOrder: any = {\n accountId: sellercraft.accountId,\n inboundId: arrivalNotice.name,\n inboundTime: Math.floor(new Date(arrivalNotice.updatedAt).getTime() / 1000),\n inboundType: purchaseOrder ? 'purchase_order' : 'blind_receive',\n purchaseOrderId: purchaseOrder ? purchaseOrder.name : '',\n sellercraftOPs\n }\n await SellercraftAPI.addInboundOrder(sellercraft, {\n ...inboundOrder,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n }\n }\n\n async registerProductReturn(sellercraft: Sellercraft, returnOrder: ReturnOrder): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableRegisterReturn: boolean =\n sellercraftSetting?.disableRegisterReturn && sellercraftSetting?.disableRegisterReturn == 1 ? true : false\n\n if (!disableRegisterReturn) {\n const orderInventories: OrderInventory[] = returnOrder.orderInventories\n const sellercraftOPs: any[] = await Promise.all(\n orderInventories.map(async (orderInventory: OrderInventory) => {\n const product: Product = orderInventory.product\n const productDetails: ProductDetail[] = product.productDetails\n const unloadedPackingType: string = orderInventory.packingType\n const defaultProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.isDefault\n )\n\n let packingSize: number = 1\n if (unloadedPackingType !== defaultProductDetail.packingType) {\n const unmatchingProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.packingType === unloadedPackingType\n )\n\n packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail)\n }\n\n return {\n sku: product.sku,\n productName: product.name,\n gtin: defaultProductDetail.gtin,\n purchaseOrderQty: orderInventory.returnQty * packingSize,\n receivedQty: orderInventory.returnQty * packingSize,\n uom: 'EA',\n batchId: orderInventory.batchId,\n forceCreateProduct: true,\n expiryTime: 0,\n weight: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,\n packageDimension: {\n length: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,\n width: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,\n height: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height\n }\n }\n })\n )\n\n const returnInbound: any = {\n accountId: sellercraft.accountId,\n inboundId: returnOrder.name,\n inboundTime: Math.floor(new Date(returnOrder.updatedAt).getTime() / 1000),\n purchaseOrderId: '',\n inboundType: 'sales_return',\n sellercraftOPs\n }\n await SellercraftAPI.addInboundOrder(sellercraft, {\n ...returnInbound,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n }\n }\n\n async updateSellercraftStock(sellercraft: Sellercraft, inventory: Inventory): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableUpdateStock: boolean =\n sellercraftSetting?.disableUpdateStock && sellercraftSetting?.disableUpdateStock == 1 ? true : false\n\n if (!disableUpdateStock) {\n const bizplace: Bizplace = await this.trxMgr.getRepository(Bizplace).findOneBy({ domain: sellercraft.domain })\n let product: Product = inventory.product\n const productDetails: ProductDetail[] = product.productDetails\n let qb = await this.trxMgr.getRepository(Inventory).createQueryBuilder('inv')\n qb.leftJoinAndSelect('inv.location', 'loc')\n .andWhere('\"inv\".\"domain_id\" = :domainId')\n .andWhere('\"inv\".\"bizplace_id\" = :bizplaceId')\n .andWhere('\"inv\".\"product_id\" = :productId')\n .andWhere('\"inv\".\"status\" = :status')\n .andWhere('\"loc\".\"type\" NOT IN (:...locationTypes)')\n .setParameters({\n domainId: this.domain.id,\n bizplaceId: bizplace.id,\n productId: product.id,\n status: INVENTORY_STATUS.STORED,\n locationTypes: [LOCATION_TYPE.QUARANTINE, LOCATION_TYPE.RESERVE]\n })\n\n let inventories: Inventory[] = await qb.getMany()\n let inventoryTotalQty: number = 0\n let inventoryTotalLockedQty: number = 0\n\n let defaultProductDetail: ProductDetail = product.productDetails.find(productDetail => productDetail.isDefault)\n\n if (inventories?.length > 0) {\n const sellercraftInvs: any[] = await Promise.all(\n inventories.map(async (inventory: Inventory) => {\n const inventoryPackingType: string = inventory.packingType\n\n let packingSize: number = 1\n if (inventoryPackingType !== defaultProductDetail.packingType) {\n const unmatchingProductDetail: ProductDetail = product.productDetails.find(\n productDetail => productDetail.packingType === inventoryPackingType\n )\n\n packingSize = await this.getChildPackingSize(\n productDetails,\n defaultProductDetail,\n unmatchingProductDetail\n )\n }\n\n return { totalQty: inventory.qty * packingSize, totalLockedQty: inventory.lockedQty * packingSize }\n })\n )\n\n inventoryTotalQty = sellercraftInvs.reduce((total, currentValue) => {\n total += currentValue.totalQty\n return total\n }, 0)\n\n inventoryTotalQty = sellercraftInvs.reduce((total, currentValue) => {\n total += currentValue.totalLockedQty\n return total\n }, 0)\n }\n\n const sellercraftInv: any[] = [\n {\n sku: product.sku,\n gtin: defaultProductDetail.gtin,\n stock: {\n quantity_total: inventoryTotalQty,\n quantity_reserved: inventoryTotalLockedQty,\n unit_of_measure: 'EA'\n },\n package_weight_gm: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,\n package_dimensions: {\n length_mm: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,\n width_mm: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,\n height_mm: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height\n }\n }\n ]\n\n await SellercraftAPI.updateProduct(sellercraft, {\n context: { state: { domain: this?.domain, user: this?.user } },\n accountId: sellercraft.accountId,\n sellercraftInv\n })\n }\n }\n\n async initiateOrderShipment(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableInitiateOrderShipment: boolean =\n sellercraftSetting?.disableInitiateOrderShipment && sellercraftSetting?.disableInitiateOrderShipment == 1\n ? true\n : false\n\n if (!disableInitiateOrderShipment) {\n if (!releaseGood?.packageId) throw new Error('Order package id is not found')\n\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n packageId: releaseGood.packageId\n }\n\n await SellercraftAPI.initiateOrderShipment(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n }\n }\n\n async initiateOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableInitiateOrderDocument: boolean =\n sellercraftSetting?.disableInitiateOrderDocument && sellercraftSetting?.disableInitiateOrderDocument == 1\n ? true\n : false\n\n if (!disableInitiateOrderDocument) {\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n packageId: releaseGood.packageId\n }\n await SellercraftAPI.initiateOrderDocument(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n }\n }\n\n async fetchOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood> {\n if (releaseGood?.ownTransport) {\n return\n }\n try {\n let sellercraftSetting: any = sellercraft.sellercraftSetting\n let disableFetchOrderDocument: boolean =\n sellercraftSetting?.disableFetchOrderDocument && sellercraftSetting?.disableFetchOrderDocument == 1\n ? true\n : false\n\n if (!disableFetchOrderDocument) {\n const orderInformation: any = {\n accountId: sellercraft.accountId,\n orderId: releaseGood.refNo2,\n packageId: releaseGood.packageId\n }\n const { documents, trackingNo, transporter }: { documents: any[]; trackingNo: string; transporter: string } =\n await SellercraftAPI.fetchOrderDocument(sellercraft, {\n ...orderInformation,\n context: { state: { domain: this?.domain, user: this?.user } }\n })\n\n let updateInfo: any\n if (documents?.length) {\n documents.map(document => {\n if (document.type === 'invoice') {\n updateInfo = { ...updateInfo, invoice: document.download_url }\n } else if (document.type === 'airway_bill') {\n updateInfo = { ...updateInfo, airwayBill: document.download_url }\n }\n })\n\n updateInfo = {\n ...updateInfo,\n trackingNo: trackingNo,\n transporter: transporter,\n updater: this.user\n }\n\n // releaseGood = await this.trxMgr.getRepository(ReleaseGood).save(releaseGood)\n\n await this.trxMgr.getRepository(ReleaseGood).update({ id: releaseGood.id }, { ...updateInfo })\n releaseGood = await this.trxMgr.getRepository(ReleaseGood).findOneBy({ id: releaseGood.id })\n }\n }\n\n return releaseGood\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -0,0 +1,4 @@
1
+ export * from './unloading-worksheet-controller';
2
+ export * from './putaway-worksheet-controller';
3
+ export * from './unloading-returning-worksheet-controller';
4
+ export * from './putaway-returning-worksheet-controller';
@@ -0,0 +1,16 @@
1
+ import { Inventory, Pallet } from '@things-factory/warehouse-base';
2
+ import { Worksheet, WorksheetDetail } from '../../entities';
3
+ import { VasWorksheetController } from '../vas/vas-worksheet-controller';
4
+ export declare class PutawayReturningWorksheetController extends VasWorksheetController {
5
+ generatePutawayReturnWorksheet(returnOrderNo: string, inventories: Inventory[]): Promise<Worksheet>;
6
+ activatePutawayReturning(worksheetNo: string, putawayWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet>;
7
+ completePutawayReturn(returnOrderNo: string): Promise<Worksheet>;
8
+ putawayReturn(worksheetDetailName: [string], palletId: string, cartonId: string, locationName: string): Promise<void>;
9
+ putawayPallets(worksheetDetailName: string, reusablePallet: Pallet, locationName: string): Promise<void>;
10
+ putawayCarton(worksheetDetailName: [string], cartonId: string, locationName: string): Promise<void>;
11
+ putawayPallet(worksheetDetailName: string, palletId: string, locationName: string): Promise<void>;
12
+ undoPutawayReturn(worksheetDetailName: [string], palletId: string, cartonId: string): Promise<void>;
13
+ undoPutawayReturnCarton(worksheetDetailName: [string], cartonId: string): Promise<void>;
14
+ undoPutawayReturnPallet(worksheetDetailName: string, palletId: string): Promise<void>;
15
+ private checkReleaseTarget;
16
+ }
@@ -10,7 +10,7 @@ const utils_1 = require("../../utils");
10
10
  const vas_worksheet_controller_1 = require("../vas/vas-worksheet-controller");
11
11
  class PutawayReturningWorksheetController extends vas_worksheet_controller_1.VasWorksheetController {
12
12
  async generatePutawayReturnWorksheet(returnOrderNo, inventories) {
13
- let returnOrder = await this.findRefOrder(sales_base_1.ReturnOrder, { domain: { id: this.domain.id }, name: returnOrderNo }, ['bizplace']);
13
+ let returnOrder = (await this.findRefOrder(sales_base_1.ReturnOrder, { domain: { id: this.domain.id }, name: returnOrderNo }, ['bizplace']));
14
14
  const bizplace = returnOrder.bizplace;
15
15
  const unloadingWorksheet = await this.findWorksheetByRefOrder(returnOrder, constants_1.WORKSHEET_TYPE.UNLOADING_RETURN, ['bufferLocation']);
16
16
  const bufferLocation = unloadingWorksheet.bufferLocation;
@@ -45,7 +45,10 @@ class PutawayReturningWorksheetController extends vas_worksheet_controller_1.Vas
45
45
  targetInventory.bizplace = bizplace;
46
46
  targetInventory.name = sales_base_1.OrderNoGenerator.orderInventory();
47
47
  targetInventory.status = oiStatus;
48
- targetInventory.type = sales_base_1.ORDER_TYPES.RETURN_ORDER;
48
+ //@ts-ignore
49
+ targetInventory.type = ORDE;
50
+ //@ts-ignore
51
+ R_TYPES.RETURN_ORDER;
49
52
  targetInventory.returnOrder = returnOrder;
50
53
  targetInventory.inventory = inventory;
51
54
  targetInventory.creator = this.user;
@@ -89,6 +92,7 @@ class PutawayReturningWorksheetController extends vas_worksheet_controller_1.Vas
89
92
  // Because of partial unloading current status of arrivalNotice can be PUTTING_AWAY or PROCESSING
90
93
  // PUTTING_AWAY means unloading is completely finished.
91
94
  // PROCESSING means some products are still being unloaded.
95
+ //@ts-ignore
92
96
  let returnOrder = await this.findRefOrder(sales_base_1.ReturnOrder, {
93
97
  name: returnOrderNo,
94
98
  status: (0, typeorm_1.In)([sales_base_1.ORDER_STATUS.PUTTING_AWAY, sales_base_1.ORDER_STATUS.PROCESSING])
@@ -156,6 +160,7 @@ class PutawayReturningWorksheetController extends vas_worksheet_controller_1.Vas
156
160
  warehouse_base_1.LOCATION_TYPE.BUFFER,
157
161
  warehouse_base_1.LOCATION_TYPE.FLOOR,
158
162
  warehouse_base_1.LOCATION_TYPE.QUARANTINE,
163
+ //@ts-ignore
159
164
  warehouse_base_1.LOCATION_TYPE.RESERVED
160
165
  ])
161
166
  },
@@ -199,6 +204,7 @@ class PutawayReturningWorksheetController extends vas_worksheet_controller_1.Vas
199
204
  warehouse_base_1.LOCATION_TYPE.FLOOR,
200
205
  warehouse_base_1.LOCATION_TYPE.BIN,
201
206
  warehouse_base_1.LOCATION_TYPE.QUARANTINE,
207
+ //@ts-ignore
202
208
  warehouse_base_1.LOCATION_TYPE.RESERVED
203
209
  ])
204
210
  },
@@ -207,6 +213,7 @@ class PutawayReturningWorksheetController extends vas_worksheet_controller_1.Vas
207
213
  if (!location)
208
214
  throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName));
209
215
  const warehouse = location.warehouse;
216
+ //@ts-ignore
210
217
  const zone = warehouse.zone;
211
218
  inventory.location = location;
212
219
  inventory.status = warehouse_base_1.INVENTORY_STATUS.STORED;
@@ -240,6 +247,7 @@ class PutawayReturningWorksheetController extends vas_worksheet_controller_1.Vas
240
247
  warehouse_base_1.LOCATION_TYPE.BIN,
241
248
  warehouse_base_1.LOCATION_TYPE.BUFFER,
242
249
  warehouse_base_1.LOCATION_TYPE.QUARANTINE,
250
+ //@ts-ignore
243
251
  warehouse_base_1.LOCATION_TYPE.RESERVED
244
252
  ])
245
253
  },
@@ -248,6 +256,7 @@ class PutawayReturningWorksheetController extends vas_worksheet_controller_1.Vas
248
256
  if (!location)
249
257
  throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName));
250
258
  const warehouse = location.warehouse;
259
+ //@ts-ignore
251
260
  const zone = warehouse.zone;
252
261
  inventory.location = location;
253
262
  inventory.status = warehouse_base_1.INVENTORY_STATUS.STORED;
@@ -1 +1 @@
1
- {"version":3,"file":"putaway-returning-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/inbound/putaway-returning-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Equal, In, Not } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport {\n ORDER_INVENTORY_STATUS,\n ORDER_PRODUCT_STATUS,\n ORDER_STATUS,\n ORDER_TYPES,\n OrderInventory,\n OrderNoGenerator,\n ReturnOrder\n} from '@things-factory/sales-base'\nimport {\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n Location,\n LOCATION_TYPE,\n Pallet,\n Warehouse\n} from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport { switchLocationStatus } from '../../utils'\nimport { VasWorksheetController } from '../vas/vas-worksheet-controller'\n\nexport class PutawayReturningWorksheetController extends VasWorksheetController {\n async generatePutawayReturnWorksheet(returnOrderNo: string, inventories: Inventory[]): Promise<Worksheet> {\n let returnOrder: ReturnOrder = await this.findRefOrder(\n ReturnOrder,\n { domain: { id: this.domain.id }, name: returnOrderNo },\n ['bizplace']\n )\n\n const bizplace: Bizplace = returnOrder.bizplace\n const unloadingWorksheet: Worksheet = await this.findWorksheetByRefOrder(\n returnOrder,\n WORKSHEET_TYPE.UNLOADING_RETURN,\n ['bufferLocation']\n )\n const bufferLocation: Location = unloadingWorksheet.bufferLocation\n\n // Check whether putaway worksheet is exists or not\n let worksheet: Worksheet\n try {\n worksheet = await this.findWorksheetByRefOrder(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN)\n } catch (e) {}\n\n let oiStatus: string = ORDER_PRODUCT_STATUS.UNLOADED // Default status of order inventories is UNLOADED\n let wsdStatus: string = WORKSHEET_STATUS.DEACTIVATED // Default status of worksheet is DEACTIVATED\n if (!worksheet) {\n // If it's not exists create new putaway worksheet\n worksheet = await this.createWorksheet(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN, { bufferLocation })\n } else {\n // If there is putaway worksheet. It means unloading is completed partially.\n // So status of newly created worksheet details and order inventories should be changed to\n // Executing situation.\n oiStatus = ORDER_PRODUCT_STATUS.PUTTING_AWAY // Default status = PUTTING_AWAY\n wsdStatus = WORKSHEET_STATUS.EXECUTING // Default status = EXECUTING\n }\n\n if (inventories.some((inv: Inventory) => !(inv instanceof Inventory))) {\n inventories = await this.trxMgr.getRepository(Inventory).findByIds(inventories.map((inv: Inventory) => inv.id))\n }\n\n for (let inventory of inventories) {\n inventory.status = INVENTORY_STATUS.PUTTING_AWAY\n inventory.updater = this.user\n inventory = await this.trxMgr.getRepository(Inventory).save(inventory)\n\n let targetInventory: OrderInventory = new OrderInventory()\n targetInventory.domain = this.domain\n targetInventory.bizplace = bizplace\n targetInventory.name = OrderNoGenerator.orderInventory()\n targetInventory.status = oiStatus\n targetInventory.type = ORDER_TYPES.RETURN_ORDER\n targetInventory.returnOrder = returnOrder\n targetInventory.inventory = inventory\n targetInventory.creator = this.user\n targetInventory.updater = this.user\n targetInventory = await this.trxMgr.getRepository(OrderInventory).save(targetInventory)\n\n worksheet.worksheetDetails = await this.createWorksheetDetails(\n worksheet,\n WORKSHEET_TYPE.PUTAWAY_RETURN,\n [targetInventory],\n { status: wsdStatus, fromLocation: bufferLocation }\n )\n }\n\n return worksheet\n }\n\n async activatePutawayReturning(\n worksheetNo: string,\n putawayWorksheetDetails: Partial<WorksheetDetail>[]\n ): Promise<Worksheet> {\n let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PUTAWAY_RETURN, [\n 'returnOrder',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n let returnOrder: ReturnOrder = worksheet.returnOrder\n const nonFinishedVasCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n returnOrder: { id: returnOrder.id },\n type: WORKSHEET_TYPE.VAS,\n status: Not(Equal(WORKSHEET_STATUS.DONE))\n }\n })\n if (nonFinishedVasCnt) return\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetInventory: OrderInventory = wsd.targetInventory\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n return targetInventory\n })\n await this.updateOrderTargets(targetInventories)\n\n returnOrder.status = ORDER_STATUS.PUTTING_AWAY\n returnOrder.updater = this.user\n await this.updateRefOrder(returnOrder)\n return this.activateWorksheet(worksheet, worksheetDetails, putawayWorksheetDetails)\n }\n\n async completePutawayReturn(returnOrderNo: string): Promise<Worksheet> {\n // Because of partial unloading current status of arrivalNotice can be PUTTING_AWAY or PROCESSING\n // PUTTING_AWAY means unloading is completely finished.\n // PROCESSING means some products are still being unloaded.\n let returnOrder: ReturnOrder = await this.findRefOrder(ReturnOrder, {\n name: returnOrderNo,\n status: In([ORDER_STATUS.PUTTING_AWAY, ORDER_STATUS.PROCESSING])\n })\n\n // Check whether unloading is done or not.\n const unloadingWorksheetCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n returnOrder: { id: returnOrder.id },\n type: WORKSHEET_TYPE.UNLOADING_RETURN,\n status: WORKSHEET_STATUS.EXECUTING\n }\n })\n if (unloadingWorksheetCnt) throw new Error(`Unloading is not completed yet`)\n\n const putawayWorksheet: Worksheet = await this.findWorksheetByRefOrder(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN, [\n 'bufferLocation'\n ])\n await switchLocationStatus(this.domain, putawayWorksheet.bufferLocation, this.user, this.trxMgr)\n return await this.completeWorksheet(putawayWorksheet, ORDER_STATUS.DONE)\n }\n\n async putawayReturn(\n worksheetDetailName: [string],\n palletId: string,\n cartonId: string,\n locationName: string\n ): Promise<void> {\n const reusablePallet: Pallet = await this.trxMgr.getRepository(Pallet).findOne({\n where: { domain: { id: this.domain.id }, name: palletId }\n })\n\n if (reusablePallet) {\n await this.putawayPallets(worksheetDetailName[0], reusablePallet, locationName)\n } else if (cartonId) {\n await this.putawayCarton(worksheetDetailName, cartonId, locationName)\n } else {\n await this.putawayPallet(worksheetDetailName[0], palletId, locationName)\n }\n }\n\n async putawayPallets(worksheetDetailName: string, reusablePallet: Pallet, locationName: string): Promise<void> {\n const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY_RETURN,\n [\n 'worksheet',\n 'worksheet.returnOrder',\n 'worksheet.worksheetDetails',\n 'worksheet.worksheetDetails.targetInventory',\n 'worksheet.worksheetDetails.targetInventory.inventory'\n ]\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({\n where: {\n domain: { id: this.domain.id },\n reusablePallet: { id: reusablePallet.id },\n refOrderId: returnOrder.id,\n status: In([INVENTORY_STATUS.PUTTING_AWAY, INVENTORY_STATUS.UNLOADED])\n }\n })\n\n for (let inventory of inventories) {\n const worksheetDetail: WorksheetDetail = worksheetDetails.find(\n (wsd: WorksheetDetail) => wsd.targetInventory.inventory.name === inventory.name\n )\n\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n inventory = targetInventory.inventory\n\n let location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVED\n ])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = location.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n async putawayCarton(worksheetDetailName: [string], cartonId: string, locationName: string): Promise<void> {\n const worksheetDetails: WorksheetDetail[] = await this.findExecutableWorksheetDetailByNames(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY_RETURN,\n ['worksheet', 'worksheet.returnOrder', 'targetInventory', 'targetInventory.inventory']\n )\n\n for (var i = 0; i < worksheetDetails.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n\n if (inventory.cartonId !== cartonId) {\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('cartonId', cartonId, inventory.cartonId))\n }\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.BIN,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVED\n ])\n },\n relations: ['warehouse']\n })\n\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = warehouse.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n async putawayPallet(worksheetDetailName: string, palletId: string, locationName: string): Promise<void> {\n const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY_RETURN,\n ['worksheet', 'worksheet.returnOrder', 'targetInventory', 'targetInventory.inventory']\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n\n if (inventory.palletId !== palletId) {\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('palletId', palletId, inventory.palletId))\n }\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.BIN,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.QUARANTINE,\n LOCATION_TYPE.RESERVED\n ])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = warehouse.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n async undoPutawayReturn(worksheetDetailName: [string], palletId: string, cartonId: string): Promise<void> {\n if (cartonId) {\n await this.undoPutawayReturnCarton(worksheetDetailName, cartonId)\n } else {\n await this.undoPutawayReturnPallet(worksheetDetailName[0], palletId)\n }\n }\n\n async undoPutawayReturnCarton(worksheetDetailName: [string], cartonId: string): Promise<void> {\n let worksheetDetails: WorksheetDetail[] = await this.findWorksheetDetailByNames(worksheetDetailName, [\n 'worksheet',\n 'worksheet.returnOrder',\n 'targetInventory',\n 'targetInventory.inventory',\n 'fromLocation'\n ])\n\n for (var i = 0; i < worksheetDetails?.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n const targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: { id: this.domain.id }, cartonId, palletId: targetInventory.inventory.palletId }\n })\n await this.checkReleaseTarget(inventory)\n\n const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }\n })\n inventory.location = bufferLocation\n inventory.status = INVENTORY_STATUS.UNLOADED\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)\n\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n async undoPutawayReturnPallet(worksheetDetailName: string, palletId: string): Promise<void> {\n let worksheetDetail: WorksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, [\n 'worksheet',\n 'worksheet.returnOrder',\n 'targetInventory',\n 'targetInventory.inventory',\n 'fromLocation'\n ])\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n const targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: { id: this.domain.id }, palletId }\n })\n await this.checkReleaseTarget(inventory)\n\n const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }\n })\n inventory.location = bufferLocation\n inventory.status = INVENTORY_STATUS.UNLOADED\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)\n\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n private async checkReleaseTarget(inventory: Inventory): Promise<void> {\n const releaseTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({\n where: {\n domain: { id: this.domain.id },\n type: ORDER_TYPES.RELEASE_OF_GOODS,\n inventory: { id: inventory.id }\n }\n })\n\n if (releaseTargetInventory)\n throw new Error(\n this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('undo putaway', 'this pallet ID has been selected for releasing')\n )\n }\n}\n"]}
1
+ {"version":3,"file":"putaway-returning-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/inbound/putaway-returning-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { Equal, In, Not } from 'typeorm'\n\nimport { Bizplace } from '@things-factory/biz-base'\nimport {\n ORDER_INVENTORY_STATUS,\n ORDER_PRODUCT_STATUS,\n ORDER_STATUS,\n ORDER_TYPES,\n OrderInventory,\n OrderNoGenerator,\n ReturnOrder\n} from '@things-factory/sales-base'\nimport {\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n Location,\n LOCATION_TYPE,\n Pallet,\n Warehouse\n} from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport { switchLocationStatus } from '../../utils'\nimport { VasWorksheetController } from '../vas/vas-worksheet-controller'\n\nexport class PutawayReturningWorksheetController extends VasWorksheetController {\n async generatePutawayReturnWorksheet(returnOrderNo: string, inventories: Inventory[]): Promise<Worksheet> {\n let returnOrder: ReturnOrder = (await this.findRefOrder(\n ReturnOrder as any,\n { domain: { id: this.domain.id }, name: returnOrderNo } as any,\n ['bizplace']\n )) as any\n\n const bizplace: Bizplace = returnOrder.bizplace\n const unloadingWorksheet: Worksheet = await this.findWorksheetByRefOrder(\n returnOrder,\n WORKSHEET_TYPE.UNLOADING_RETURN,\n ['bufferLocation']\n )\n const bufferLocation: Location = unloadingWorksheet.bufferLocation\n\n // Check whether putaway worksheet is exists or not\n let worksheet: Worksheet\n try {\n worksheet = await this.findWorksheetByRefOrder(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN)\n } catch (e) {}\n\n let oiStatus: string = ORDER_PRODUCT_STATUS.UNLOADED // Default status of order inventories is UNLOADED\n let wsdStatus: string = WORKSHEET_STATUS.DEACTIVATED // Default status of worksheet is DEACTIVATED\n if (!worksheet) {\n // If it's not exists create new putaway worksheet\n worksheet = await this.createWorksheet(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN, { bufferLocation })\n } else {\n // If there is putaway worksheet. It means unloading is completed partially.\n // So status of newly created worksheet details and order inventories should be changed to\n // Executing situation.\n oiStatus = ORDER_PRODUCT_STATUS.PUTTING_AWAY // Default status = PUTTING_AWAY\n wsdStatus = WORKSHEET_STATUS.EXECUTING // Default status = EXECUTING\n }\n\n if (inventories.some((inv: Inventory) => !(inv instanceof Inventory))) {\n inventories = await this.trxMgr.getRepository(Inventory).findByIds(inventories.map((inv: Inventory) => inv.id))\n }\n\n for (let inventory of inventories) {\n inventory.status = INVENTORY_STATUS.PUTTING_AWAY\n inventory.updater = this.user\n inventory = await this.trxMgr.getRepository(Inventory).save(inventory)\n\n let targetInventory: OrderInventory = new OrderInventory()\n targetInventory.domain = this.domain\n targetInventory.bizplace = bizplace\n targetInventory.name = OrderNoGenerator.orderInventory()\n targetInventory.status = oiStatus\n //@ts-ignore\n targetInventory.type = ORDE\n //@ts-ignore\n R_TYPES.RETURN_ORDER\n targetInventory.returnOrder = returnOrder\n targetInventory.inventory = inventory\n targetInventory.creator = this.user\n targetInventory.updater = this.user\n targetInventory = await this.trxMgr.getRepository(OrderInventory).save(targetInventory)\n\n worksheet.worksheetDetails = await this.createWorksheetDetails(\n worksheet,\n WORKSHEET_TYPE.PUTAWAY_RETURN,\n [targetInventory],\n { status: wsdStatus, fromLocation: bufferLocation }\n )\n }\n\n return worksheet\n }\n\n async activatePutawayReturning(\n worksheetNo: string,\n putawayWorksheetDetails: Partial<WorksheetDetail>[]\n ): Promise<Worksheet> {\n let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PUTAWAY_RETURN, [\n 'returnOrder',\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n let returnOrder: ReturnOrder = worksheet.returnOrder\n const nonFinishedVasCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n returnOrder: { id: returnOrder.id },\n type: WORKSHEET_TYPE.VAS,\n status: Not(Equal(WORKSHEET_STATUS.DONE))\n }\n })\n if (nonFinishedVasCnt) return\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetInventory: OrderInventory = wsd.targetInventory\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n return targetInventory\n })\n await this.updateOrderTargets(targetInventories)\n\n returnOrder.status = ORDER_STATUS.PUTTING_AWAY\n returnOrder.updater = this.user\n await this.updateRefOrder(returnOrder)\n return this.activateWorksheet(worksheet, worksheetDetails, putawayWorksheetDetails)\n }\n\n async completePutawayReturn(returnOrderNo: string): Promise<Worksheet> {\n // Because of partial unloading current status of arrivalNotice can be PUTTING_AWAY or PROCESSING\n // PUTTING_AWAY means unloading is completely finished.\n // PROCESSING means some products are still being unloaded.\n //@ts-ignore\n let returnOrder: ReturnOrder = await this.findRefOrder(ReturnOrder, {\n name: returnOrderNo,\n status: In([ORDER_STATUS.PUTTING_AWAY, ORDER_STATUS.PROCESSING])\n })\n\n // Check whether unloading is done or not.\n const unloadingWorksheetCnt: number = await this.trxMgr.getRepository(Worksheet).count({\n where: {\n domain: { id: this.domain.id },\n returnOrder: { id: returnOrder.id },\n type: WORKSHEET_TYPE.UNLOADING_RETURN,\n status: WORKSHEET_STATUS.EXECUTING\n }\n })\n if (unloadingWorksheetCnt) throw new Error(`Unloading is not completed yet`)\n\n const putawayWorksheet: Worksheet = await this.findWorksheetByRefOrder(returnOrder, WORKSHEET_TYPE.PUTAWAY_RETURN, [\n 'bufferLocation'\n ])\n await switchLocationStatus(this.domain, putawayWorksheet.bufferLocation, this.user, this.trxMgr)\n return await this.completeWorksheet(putawayWorksheet, ORDER_STATUS.DONE)\n }\n\n async putawayReturn(\n worksheetDetailName: [string],\n palletId: string,\n cartonId: string,\n locationName: string\n ): Promise<void> {\n const reusablePallet: Pallet = await this.trxMgr.getRepository(Pallet).findOne({\n where: { domain: { id: this.domain.id }, name: palletId }\n })\n\n if (reusablePallet) {\n await this.putawayPallets(worksheetDetailName[0], reusablePallet, locationName)\n } else if (cartonId) {\n await this.putawayCarton(worksheetDetailName, cartonId, locationName)\n } else {\n await this.putawayPallet(worksheetDetailName[0], palletId, locationName)\n }\n }\n\n async putawayPallets(worksheetDetailName: string, reusablePallet: Pallet, locationName: string): Promise<void> {\n const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY_RETURN,\n [\n 'worksheet',\n 'worksheet.returnOrder',\n 'worksheet.worksheetDetails',\n 'worksheet.worksheetDetails.targetInventory',\n 'worksheet.worksheetDetails.targetInventory.inventory'\n ]\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({\n where: {\n domain: { id: this.domain.id },\n reusablePallet: { id: reusablePallet.id },\n refOrderId: returnOrder.id,\n status: In([INVENTORY_STATUS.PUTTING_AWAY, INVENTORY_STATUS.UNLOADED])\n }\n })\n\n for (let inventory of inventories) {\n const worksheetDetail: WorksheetDetail = worksheetDetails.find(\n (wsd: WorksheetDetail) => wsd.targetInventory.inventory.name === inventory.name\n )\n\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n inventory = targetInventory.inventory\n\n let location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.QUARANTINE,\n //@ts-ignore\n LOCATION_TYPE.RESERVED\n ])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n const zone: string = location.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n async putawayCarton(worksheetDetailName: [string], cartonId: string, locationName: string): Promise<void> {\n const worksheetDetails: WorksheetDetail[] = await this.findExecutableWorksheetDetailByNames(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY_RETURN,\n ['worksheet', 'worksheet.returnOrder', 'targetInventory', 'targetInventory.inventory']\n )\n\n for (var i = 0; i < worksheetDetails.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n\n if (inventory.cartonId !== cartonId) {\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('cartonId', cartonId, inventory.cartonId))\n }\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.BIN,\n LOCATION_TYPE.QUARANTINE,\n //@ts-ignore\n LOCATION_TYPE.RESERVED\n ])\n },\n relations: ['warehouse']\n })\n\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n //@ts-ignore\n const zone: string = warehouse.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n async putawayPallet(worksheetDetailName: string, palletId: string, locationName: string): Promise<void> {\n const worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.PUTAWAY_RETURN,\n ['worksheet', 'worksheet.returnOrder', 'targetInventory', 'targetInventory.inventory']\n )\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n let targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = targetInventory.inventory\n\n if (inventory.palletId !== palletId) {\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('palletId', palletId, inventory.palletId))\n }\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: { id: this.domain.id },\n name: locationName,\n type: In([\n LOCATION_TYPE.SHELF,\n LOCATION_TYPE.FLOOR,\n LOCATION_TYPE.BIN,\n LOCATION_TYPE.BUFFER,\n LOCATION_TYPE.QUARANTINE,\n //@ts-ignore\n LOCATION_TYPE.RESERVED\n ])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n const warehouse: Warehouse = location.warehouse\n //@ts-ignore\n const zone: string = warehouse.zone\n\n inventory.location = location\n inventory.status = INVENTORY_STATUS.STORED\n inventory.warehouse = warehouse\n inventory.zone = zone\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.PUTAWAY)\n\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.DONE\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n async undoPutawayReturn(worksheetDetailName: [string], palletId: string, cartonId: string): Promise<void> {\n if (cartonId) {\n await this.undoPutawayReturnCarton(worksheetDetailName, cartonId)\n } else {\n await this.undoPutawayReturnPallet(worksheetDetailName[0], palletId)\n }\n }\n\n async undoPutawayReturnCarton(worksheetDetailName: [string], cartonId: string): Promise<void> {\n let worksheetDetails: WorksheetDetail[] = await this.findWorksheetDetailByNames(worksheetDetailName, [\n 'worksheet',\n 'worksheet.returnOrder',\n 'targetInventory',\n 'targetInventory.inventory',\n 'fromLocation'\n ])\n\n for (var i = 0; i < worksheetDetails?.length; i++) {\n const worksheetDetail = worksheetDetails[i]\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n const targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: { id: this.domain.id }, cartonId, palletId: targetInventory.inventory.palletId }\n })\n await this.checkReleaseTarget(inventory)\n\n const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }\n })\n inventory.location = bufferLocation\n inventory.status = INVENTORY_STATUS.UNLOADED\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)\n\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n }\n\n async undoPutawayReturnPallet(worksheetDetailName: string, palletId: string): Promise<void> {\n let worksheetDetail: WorksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, [\n 'worksheet',\n 'worksheet.returnOrder',\n 'targetInventory',\n 'targetInventory.inventory',\n 'fromLocation'\n ])\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE })\n\n const worksheet: Worksheet = worksheetDetail.worksheet\n const returnOrder: ReturnOrder = worksheet.returnOrder\n const targetInventory: OrderInventory = worksheetDetail.targetInventory\n let inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: { id: this.domain.id }, palletId }\n })\n await this.checkReleaseTarget(inventory)\n\n const bufferLocation: Location = await this.trxMgr.getRepository(Location).findOne({\n where: { domain: { id: this.domain.id }, name: worksheetDetail.fromLocation.name }\n })\n inventory.location = bufferLocation\n inventory.status = INVENTORY_STATUS.UNLOADED\n await this.transactionInventory(inventory, returnOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.UNDO_PUTAWAY)\n\n targetInventory.status = ORDER_PRODUCT_STATUS.PUTTING_AWAY\n targetInventory.updater = this.user\n await this.updateOrderTargets([targetInventory])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n private async checkReleaseTarget(inventory: Inventory): Promise<void> {\n const releaseTargetInventory: OrderInventory = await this.trxMgr.getRepository(OrderInventory).findOne({\n where: {\n domain: { id: this.domain.id },\n type: ORDER_TYPES.RELEASE_OF_GOODS,\n inventory: { id: inventory.id }\n }\n })\n\n if (releaseTargetInventory)\n throw new Error(\n this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('undo putaway', 'this pallet ID has been selected for releasing')\n )\n }\n}\n"]}
@@ -0,0 +1,16 @@
1
+ import { Inventory, Pallet } from '@things-factory/warehouse-base';
2
+ import { Worksheet, WorksheetDetail } from '../../entities';
3
+ import { VasWorksheetController } from '../vas/vas-worksheet-controller';
4
+ export declare class PutawayWorksheetController extends VasWorksheetController {
5
+ generatePutawayWorksheet(arrivalNoticeNo: string, inventories: Inventory[]): Promise<Worksheet>;
6
+ activatePutaway(worksheetNo: string, putawayWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet>;
7
+ completePutaway(arrivalNoticeNo: string): Promise<Worksheet>;
8
+ putaway(worksheetDetailName: [string], palletId: string, cartonId: string, locationName: string): Promise<void>;
9
+ putawayPallets(worksheetDetailName: string, reusablePallet: Pallet, locationName: string): Promise<void>;
10
+ putawayCarton(worksheetDetailName: [string], cartonId: string, locationName: string): Promise<void>;
11
+ putawayPallet(worksheetDetailName: string, palletId: string, locationName: string): Promise<void>;
12
+ undoPutaway(worksheetDetailName: [string], palletId: string, cartonId: string): Promise<void>;
13
+ undoPallet(worksheetDetailName: string, palletId: string): Promise<void>;
14
+ undoCarton(worksheetDetailName: [string], cartonId: string): Promise<void>;
15
+ private checkReleaseTarget;
16
+ }