@things-factory/worksheet-base 5.0.13 → 6.0.0-alpha.1

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 (534) hide show
  1. package/dist-server/controllers/ecommerce/sellercraft-controller.js +225 -191
  2. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  3. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +2 -2
  4. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +28 -17
  6. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +1 -1
  8. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/outbound/packing-worksheet-controller.js +17 -3
  10. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/outbound/picking-worksheet-controller.js +221 -144
  12. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/outbound/returning-worksheet-controller.js +16 -0
  14. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +8 -8
  16. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  17. package/dist-server/controllers/render-elccl-grn.js +21 -16
  18. package/dist-server/controllers/render-elccl-grn.js.map +1 -1
  19. package/dist-server/controllers/render-fm-grn.js +43 -26
  20. package/dist-server/controllers/render-fm-grn.js.map +1 -1
  21. package/dist-server/controllers/render-grn.js +42 -28
  22. package/dist-server/controllers/render-grn.js.map +1 -1
  23. package/dist-server/controllers/render-invoices.js +4 -5
  24. package/dist-server/controllers/render-invoices.js.map +1 -1
  25. package/dist-server/controllers/render-job-sheet.js +19 -19
  26. package/dist-server/controllers/render-job-sheet.js.map +1 -1
  27. package/dist-server/controllers/render-kimeda-grn.js +38 -23
  28. package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
  29. package/dist-server/controllers/render-manifest.js +8 -9
  30. package/dist-server/controllers/render-manifest.js.map +1 -1
  31. package/dist-server/controllers/render-manual-do.js +15 -15
  32. package/dist-server/controllers/render-manual-do.js.map +1 -1
  33. package/dist-server/controllers/render-orientage-do.js +74 -28
  34. package/dist-server/controllers/render-orientage-do.js.map +1 -1
  35. package/dist-server/controllers/render-orientage-grn.js +25 -15
  36. package/dist-server/controllers/render-orientage-grn.js.map +1 -1
  37. package/dist-server/controllers/render-po.js +28 -19
  38. package/dist-server/controllers/render-po.js.map +1 -1
  39. package/dist-server/controllers/render-ro-do.js +139 -105
  40. package/dist-server/controllers/render-ro-do.js.map +1 -1
  41. package/dist-server/controllers/render-seebuu-grn.js +29 -19
  42. package/dist-server/controllers/render-seebuu-grn.js.map +1 -1
  43. package/dist-server/controllers/vas/vas-worksheet-controller.js +5 -5
  44. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  45. package/dist-server/controllers/worksheet-controller.js +75 -25
  46. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  47. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +2 -1
  48. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -1
  49. package/dist-server/entities/worksheet-detail.js +14 -12
  50. package/dist-server/entities/worksheet-detail.js.map +1 -1
  51. package/dist-server/entities/worksheet-movement.js +1 -2
  52. package/dist-server/entities/worksheet-movement.js.map +1 -1
  53. package/dist-server/entities/worksheet.js +13 -13
  54. package/dist-server/entities/worksheet.js.map +1 -1
  55. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +1 -1
  56. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
  57. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +6 -6
  58. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  59. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js +1 -1
  60. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -1
  61. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js +6 -5
  62. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js.map +1 -1
  63. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js +8 -8
  64. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js.map +1 -1
  65. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +82 -80
  66. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  67. package/dist-server/graphql/resolvers/worksheet/create-worksheet.js.map +1 -1
  68. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +5 -4
  69. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -1
  70. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +5 -5
  71. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  72. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js +5 -4
  73. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
  74. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js +1 -1
  75. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js.map +1 -1
  76. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js +83 -52
  77. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -1
  78. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js +169 -0
  79. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js.map +1 -0
  80. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js +67 -0
  81. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js.map +1 -0
  82. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js +1 -34
  83. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js.map +1 -1
  84. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js.map +1 -1
  85. package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js +70 -0
  86. package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js.map +1 -0
  87. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js +34 -3
  88. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
  89. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js +4 -4
  90. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js.map +1 -1
  91. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
  92. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js +3 -3
  93. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -1
  94. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js.map +1 -1
  95. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js.map +1 -1
  96. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js.map +1 -1
  97. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +14 -10
  98. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
  99. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js +1 -1
  100. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js.map +1 -1
  101. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js +1 -1
  102. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js.map +1 -1
  103. package/dist-server/graphql/resolvers/worksheet/having-vas.js +7 -7
  104. package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -1
  105. package/dist-server/graphql/resolvers/worksheet/index.js +5 -3
  106. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  107. package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.js.map +1 -1
  108. package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.js.map +1 -1
  109. package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.js.map +1 -1
  110. package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js.map +1 -1
  111. package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting.js.map +1 -1
  112. package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-pallet.js.map +1 -1
  113. package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.js.map +1 -1
  114. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +18 -9
  115. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  116. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js +6 -5
  117. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -1
  118. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -1
  119. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +14 -14
  120. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  121. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
  122. package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js.map +1 -1
  123. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +11 -10
  124. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
  125. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +5 -4
  126. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
  127. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +3 -4
  128. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  129. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +2 -2
  130. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  131. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +1 -1
  132. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  133. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +16 -11
  134. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  135. package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js.map +1 -1
  136. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +96 -22
  137. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  138. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +5 -5
  139. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
  140. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +93 -81
  141. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  142. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +0 -19
  143. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
  144. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +1 -1
  145. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  146. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
  147. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js +11 -5
  148. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js.map +1 -1
  149. package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.js.map +1 -1
  150. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +10 -4
  151. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  152. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +34 -38
  153. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  154. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js +46 -35
  155. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -1
  156. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js +7 -2
  157. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js.map +1 -1
  158. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +33 -16
  159. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -1
  160. package/dist-server/graphql/resolvers/worksheet/picking/picking.js.map +1 -1
  161. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js +4 -4
  162. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js.map +1 -1
  163. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js +5 -8
  164. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -1
  165. package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +1 -1
  166. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
  167. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -1
  168. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +6 -5
  169. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  170. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +10 -8
  171. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  172. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -1
  173. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +4 -3
  174. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  175. package/dist-server/graphql/resolvers/worksheet/putaway/putaway.js.map +1 -1
  176. package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.js.map +1 -1
  177. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -1
  178. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js +2 -1
  179. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
  180. package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.js.map +1 -1
  181. package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.js.map +1 -1
  182. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +3 -3
  183. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
  184. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +3 -3
  185. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -1
  186. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +16 -11
  187. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
  188. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +139 -149
  189. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
  190. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js +1 -1
  191. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js.map +1 -1
  192. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +2 -2
  193. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
  194. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +3 -3
  195. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -1
  196. package/dist-server/graphql/resolvers/worksheet/returning/activate-return.js.map +1 -1
  197. package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js.map +1 -1
  198. package/dist-server/graphql/resolvers/worksheet/returning/returning.js.map +1 -1
  199. package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.js.map +1 -1
  200. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -1
  201. package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.js.map +1 -1
  202. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -1
  203. package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js.map +1 -1
  204. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +4 -4
  205. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  206. package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -1
  207. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js +8 -7
  208. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -1
  209. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +9 -8
  210. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  211. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js +4 -2
  212. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -1
  213. package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.js.map +1 -1
  214. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.js.map +1 -1
  215. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +6 -2
  216. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  217. package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.js.map +1 -1
  218. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -1
  219. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -1
  220. package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js.map +1 -1
  221. package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -1
  222. package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.js.map +1 -1
  223. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.js.map +1 -1
  224. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +7 -3
  225. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
  226. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js +3 -3
  227. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -1
  228. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +5 -5
  229. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
  230. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js +1 -1
  231. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js.map +1 -1
  232. package/dist-server/graphql/resolvers/worksheet/vas/activate-vas.js.map +1 -1
  233. package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.js.map +1 -1
  234. package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js.map +1 -1
  235. package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.js.map +1 -1
  236. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.js.map +1 -1
  237. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.js.map +1 -1
  238. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js +13 -12
  239. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -1
  240. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +7 -6
  241. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -1
  242. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +36 -18
  243. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  244. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +10 -3
  245. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -1
  246. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js +3 -2
  247. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -1
  248. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js +11 -3
  249. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -1
  250. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -1
  251. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +3 -2
  252. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
  253. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +2 -2
  254. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
  255. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +1 -1
  256. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
  257. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js +2 -1
  258. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -1
  259. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js +3 -3
  260. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -1
  261. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -1
  262. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js +2 -1
  263. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js.map +1 -1
  264. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +7 -7
  265. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -1
  266. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +11 -10
  267. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
  268. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js +7 -4
  269. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js.map +1 -1
  270. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js +5 -5
  271. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -1
  272. package/dist-server/graphql/resolvers/worksheet/worksheet.js +72 -42
  273. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
  274. package/dist-server/graphql/resolvers/worksheet/worksheets.js +42 -17
  275. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
  276. package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js +3 -3
  277. package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js.map +1 -1
  278. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +1 -1
  279. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -1
  280. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js +1 -1
  281. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js.map +1 -1
  282. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +13 -10
  283. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
  284. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js +7 -5
  285. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -1
  286. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -1
  287. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +3 -3
  288. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
  289. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +5 -2
  290. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -1
  291. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +1 -1
  292. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
  293. package/dist-server/graphql/resolvers/worksheet-detail/index.js +2 -1
  294. package/dist-server/graphql/resolvers/worksheet-detail/index.js.map +1 -1
  295. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +81 -0
  296. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -0
  297. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js +2 -2
  298. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -1
  299. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +2 -2
  300. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -1
  301. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +1 -1
  302. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
  303. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js +2 -2
  304. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js.map +1 -1
  305. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +1 -1
  306. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -1
  307. package/dist-server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.js.map +1 -1
  308. package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js +1 -1
  309. package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js.map +1 -1
  310. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js +1 -1
  311. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js.map +1 -1
  312. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js +1 -1
  313. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js.map +1 -1
  314. package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.js +12 -0
  315. package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.js.map +1 -0
  316. package/dist-server/graphql/types/worksheet/delivery-order-info.js +3 -0
  317. package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -1
  318. package/dist-server/graphql/types/worksheet/delivery-order-ro.js +18 -0
  319. package/dist-server/graphql/types/worksheet/delivery-order-ro.js.map +1 -0
  320. package/dist-server/graphql/types/worksheet/index.js +26 -15
  321. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  322. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js +11 -0
  323. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js.map +1 -0
  324. package/dist-server/graphql/types/worksheet/sellercraft-document.js +11 -0
  325. package/dist-server/graphql/types/worksheet/sellercraft-document.js.map +1 -0
  326. package/dist-server/graphql/types/worksheet-detail/index.js +10 -0
  327. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  328. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +1 -0
  329. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
  330. package/dist-server/tsconfig.tsbuildinfo +1 -1
  331. package/dist-server/utils/inventory-util.js +26 -20
  332. package/dist-server/utils/inventory-util.js.map +1 -1
  333. package/dist-server/utils/worksheet-util.js +8 -6
  334. package/dist-server/utils/worksheet-util.js.map +1 -1
  335. package/package.json +17 -17
  336. package/server/controllers/ecommerce/sellercraft-controller.ts +282 -223
  337. package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +9 -17
  338. package/server/controllers/inbound/unloading-worksheet-controller.ts +55 -66
  339. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +1 -1
  340. package/server/controllers/outbound/packing-worksheet-controller.ts +25 -4
  341. package/server/controllers/outbound/picking-worksheet-controller.ts +292 -172
  342. package/server/controllers/outbound/returning-worksheet-controller.ts +23 -0
  343. package/server/controllers/outbound/sorting-worksheet-controller.ts +20 -20
  344. package/server/controllers/render-elccl-grn.ts +16 -11
  345. package/server/controllers/render-fm-grn.ts +32 -14
  346. package/server/controllers/render-grn.ts +31 -16
  347. package/server/controllers/render-invoices.ts +3 -3
  348. package/server/controllers/render-job-sheet.ts +13 -11
  349. package/server/controllers/render-kimeda-grn.ts +28 -13
  350. package/server/controllers/render-manifest.ts +25 -24
  351. package/server/controllers/render-manual-do.ts +9 -10
  352. package/server/controllers/render-orientage-do.ts +79 -30
  353. package/server/controllers/render-orientage-grn.ts +30 -20
  354. package/server/controllers/render-po.ts +31 -20
  355. package/server/controllers/render-ro-do.ts +151 -124
  356. package/server/controllers/render-seebuu-grn.ts +21 -11
  357. package/server/controllers/vas/vas-worksheet-controller.ts +19 -20
  358. package/server/controllers/worksheet-controller.ts +97 -27
  359. package/server/entities/warehouse-bizplace-onhand-inventory.ts +2 -1
  360. package/server/entities/worksheet-detail.ts +9 -0
  361. package/server/graphql/resolvers/pallet/pallet-outbound.ts +5 -8
  362. package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +8 -6
  363. package/server/graphql/resolvers/worksheet/cancel-draft-release-order.ts +4 -11
  364. package/server/graphql/resolvers/worksheet/check-inventory-release.ts +8 -7
  365. package/server/graphql/resolvers/worksheet/check-stock-take-current-location.ts +10 -8
  366. package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +112 -138
  367. package/server/graphql/resolvers/worksheet/create-worksheet.ts +6 -8
  368. package/server/graphql/resolvers/worksheet/cross-dock-picking.ts +8 -7
  369. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +7 -7
  370. package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +6 -6
  371. package/server/graphql/resolvers/worksheet/delete-worksheet.ts +5 -3
  372. package/server/graphql/resolvers/worksheet/delivery-order-by-worksheet.ts +87 -53
  373. package/server/graphql/resolvers/worksheet/fetch-delivery-order-ro.ts +190 -0
  374. package/server/graphql/resolvers/worksheet/fetch-sellercraft-document.ts +69 -0
  375. package/server/graphql/resolvers/worksheet/find-release-orders-by-task-no.ts +5 -45
  376. package/server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.ts +5 -5
  377. package/server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.ts +80 -0
  378. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.ts +45 -5
  379. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.ts +11 -10
  380. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +1 -1
  381. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.ts +7 -14
  382. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.ts +10 -4
  383. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.ts +10 -4
  384. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.ts +5 -3
  385. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +25 -29
  386. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.ts +6 -4
  387. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.ts +6 -4
  388. package/server/graphql/resolvers/worksheet/having-vas.ts +10 -8
  389. package/server/graphql/resolvers/worksheet/index.ts +7 -3
  390. package/server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.ts +5 -3
  391. package/server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.ts +4 -2
  392. package/server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.ts +5 -3
  393. package/server/graphql/resolvers/worksheet/inspecting/complete-inspection.ts +5 -3
  394. package/server/graphql/resolvers/worksheet/inspecting/inspecting.ts +9 -3
  395. package/server/graphql/resolvers/worksheet/inspecting/relocate-pallet.ts +16 -4
  396. package/server/graphql/resolvers/worksheet/inspecting/undo-inspection.ts +5 -3
  397. package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +34 -17
  398. package/server/graphql/resolvers/worksheet/loaded-inventories.ts +7 -6
  399. package/server/graphql/resolvers/worksheet/loading/activate-loading.ts +5 -3
  400. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +16 -16
  401. package/server/graphql/resolvers/worksheet/loading/loading.ts +5 -3
  402. package/server/graphql/resolvers/worksheet/loading/undo-loading.ts +5 -3
  403. package/server/graphql/resolvers/worksheet/loading-worksheet.ts +11 -11
  404. package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +6 -6
  405. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +14 -13
  406. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +4 -4
  407. package/server/graphql/resolvers/worksheet/packing/packing.ts +3 -3
  408. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +21 -17
  409. package/server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.ts +2 -2
  410. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +102 -24
  411. package/server/graphql/resolvers/worksheet/palletizing-pallets.ts +10 -8
  412. package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +107 -97
  413. package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +3 -30
  414. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +3 -3
  415. package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +23 -4
  416. package/server/graphql/resolvers/worksheet/picking/assign-picking-worker.ts +25 -17
  417. package/server/graphql/resolvers/worksheet/picking/batch-picking.ts +4 -2
  418. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +15 -6
  419. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +37 -42
  420. package/server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts +52 -42
  421. package/server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.ts +15 -6
  422. package/server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.ts +49 -35
  423. package/server/graphql/resolvers/worksheet/picking/picking.ts +4 -2
  424. package/server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.ts +11 -6
  425. package/server/graphql/resolvers/worksheet/picking/scan-product-picking.ts +10 -35
  426. package/server/graphql/resolvers/worksheet/picking/seal-tote.ts +2 -2
  427. package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +9 -3
  428. package/server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts +2 -2
  429. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +11 -11
  430. package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +13 -13
  431. package/server/graphql/resolvers/worksheet/putaway/activate-putaway.ts +5 -3
  432. package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +6 -5
  433. package/server/graphql/resolvers/worksheet/putaway/putaway.ts +5 -3
  434. package/server/graphql/resolvers/worksheet/putaway/undo-putaway.ts +5 -3
  435. package/server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.ts +5 -3
  436. package/server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.ts +13 -6
  437. package/server/graphql/resolvers/worksheet/putaway-return/putaway-return.ts +5 -3
  438. package/server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.ts +5 -3
  439. package/server/graphql/resolvers/worksheet/putaway-returning-worksheet.ts +4 -6
  440. package/server/graphql/resolvers/worksheet/putaway-worksheet.ts +4 -6
  441. package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +20 -19
  442. package/server/graphql/resolvers/worksheet/reject-cancellation-release-order.ts +154 -220
  443. package/server/graphql/resolvers/worksheet/relocate-pallet.ts +6 -4
  444. package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +3 -7
  445. package/server/graphql/resolvers/worksheet/return-worksheet.ts +4 -6
  446. package/server/graphql/resolvers/worksheet/returning/activate-return.ts +5 -3
  447. package/server/graphql/resolvers/worksheet/returning/complete-return.ts +5 -3
  448. package/server/graphql/resolvers/worksheet/returning/returning.ts +5 -3
  449. package/server/graphql/resolvers/worksheet/sorting/activate-sorting.ts +5 -3
  450. package/server/graphql/resolvers/worksheet/sorting/complete-order-sorting.ts +7 -5
  451. package/server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.ts +5 -3
  452. package/server/graphql/resolvers/worksheet/sorting/scan-product-sorting.ts +9 -3
  453. package/server/graphql/resolvers/worksheet/sorting/sorting-product.ts +9 -3
  454. package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +5 -5
  455. package/server/graphql/resolvers/worksheet/transfer.ts +10 -12
  456. package/server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.ts +13 -7
  457. package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +9 -9
  458. package/server/graphql/resolvers/worksheet/unloading/activate-unloading.ts +9 -5
  459. package/server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.ts +5 -3
  460. package/server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.ts +5 -3
  461. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +8 -4
  462. package/server/graphql/resolvers/worksheet/unloading/scan-product-unload.ts +5 -3
  463. package/server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts +2 -2
  464. package/server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts +2 -2
  465. package/server/graphql/resolvers/worksheet/unloading/undo-unloading.ts +2 -2
  466. package/server/graphql/resolvers/worksheet/unloading/unload.ts +7 -7
  467. package/server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.ts +5 -3
  468. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.ts +5 -3
  469. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +9 -5
  470. package/server/graphql/resolvers/worksheet/unloading-return-worksheet.ts +4 -6
  471. package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +5 -7
  472. package/server/graphql/resolvers/worksheet/update-worksheet.ts +5 -5
  473. package/server/graphql/resolvers/worksheet/vas/activate-vas.ts +5 -3
  474. package/server/graphql/resolvers/worksheet/vas/assign-vas-inventories.ts +5 -3
  475. package/server/graphql/resolvers/worksheet/vas/complete-vas.ts +5 -3
  476. package/server/graphql/resolvers/worksheet/vas/execute-vas.ts +5 -3
  477. package/server/graphql/resolvers/worksheet/vas/undo-vas-inventory.ts +5 -3
  478. package/server/graphql/resolvers/worksheet/vas/undo-vas.ts +5 -3
  479. package/server/graphql/resolvers/worksheet/vas-candidates.ts +20 -17
  480. package/server/graphql/resolvers/worksheet/vas-inventories.ts +9 -7
  481. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +36 -18
  482. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.ts +12 -5
  483. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.ts +6 -3
  484. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.ts +14 -6
  485. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.ts +5 -7
  486. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +3 -2
  487. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +8 -5
  488. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +6 -16
  489. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.ts +5 -2
  490. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.ts +10 -8
  491. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.ts +3 -5
  492. package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.ts +6 -6
  493. package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.ts +10 -13
  494. package/server/graphql/resolvers/worksheet/vas-worksheet.ts +13 -11
  495. package/server/graphql/resolvers/worksheet/worksheet-by-order-no.ts +13 -8
  496. package/server/graphql/resolvers/worksheet/worksheet-with-pagination.ts +7 -5
  497. package/server/graphql/resolvers/worksheet/worksheet.ts +86 -32
  498. package/server/graphql/resolvers/worksheet/worksheets.ts +60 -19
  499. package/server/graphql/resolvers/worksheet-detail/check-progressing-pallet.ts +7 -8
  500. package/server/graphql/resolvers/worksheet-detail/create-worksheet-detail.ts +4 -6
  501. package/server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.ts +5 -6
  502. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +13 -19
  503. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts +19 -27
  504. package/server/graphql/resolvers/worksheet-detail/generate-carton-id.ts +2 -4
  505. package/server/graphql/resolvers/worksheet-detail/generate-pallet-id.ts +6 -6
  506. package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +7 -4
  507. package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +3 -3
  508. package/server/graphql/resolvers/worksheet-detail/index.ts +3 -1
  509. package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +164 -0
  510. package/server/graphql/resolvers/worksheet-detail/update-worksheet-detail.ts +8 -7
  511. package/server/graphql/resolvers/worksheet-detail/worksheet-detail.ts +6 -7
  512. package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +5 -5
  513. package/server/graphql/resolvers/worksheet-detail/worksheet-details.ts +6 -7
  514. package/server/graphql/resolvers/worksheet-movement/create-worksheet-movement.ts +4 -3
  515. package/server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.ts +3 -2
  516. package/server/graphql/resolvers/worksheet-movement/update-worksheet-movement.ts +2 -4
  517. package/server/graphql/resolvers/worksheet-movement/worksheet-movement.ts +3 -6
  518. package/server/graphql/resolvers/worksheet-movement/worksheet-movements.ts +4 -4
  519. package/server/graphql/types/worksheet/batch-pick-worksheet-info.ts +9 -0
  520. package/server/graphql/types/worksheet/delivery-order-info.ts +3 -0
  521. package/server/graphql/types/worksheet/delivery-order-ro.ts +15 -0
  522. package/server/graphql/types/worksheet/index.ts +49 -38
  523. package/server/graphql/types/worksheet/multiple-release-good-worksheet.ts +8 -0
  524. package/server/graphql/types/worksheet/sellercraft-document.ts +8 -0
  525. package/server/graphql/types/worksheet-detail/index.ts +10 -0
  526. package/server/graphql/types/worksheet-detail/inventory-detail.ts +1 -0
  527. package/server/utils/inventory-util.ts +20 -14
  528. package/server/utils/worksheet-util.ts +10 -6
  529. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +0 -25
  530. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +0 -1
  531. package/dist-server/graphql/types/worksheet/airwaybill.js +0 -11
  532. package/dist-server/graphql/types/worksheet/airwaybill.js.map +0 -1
  533. package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +0 -30
  534. package/server/graphql/types/worksheet/airwaybill.ts +0 -7
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.completePicking = exports.completePickingResolver = void 0;
4
+ const typeorm_1 = require("typeorm");
4
5
  const biz_base_1 = require("@things-factory/biz-base");
5
6
  const integration_lmd_1 = require("@things-factory/integration-lmd");
6
7
  const integration_marketplace_1 = require("@things-factory/integration-marketplace");
7
8
  const integration_sellercraft_1 = require("@things-factory/integration-sellercraft");
8
9
  const marketplace_base_1 = require("@things-factory/marketplace-base");
9
10
  const sales_base_1 = require("@things-factory/sales-base");
10
- const setting_base_1 = require("@things-factory/setting-base");
11
11
  const constants_1 = require("../../../../constants");
12
12
  const controllers_1 = require("../../../../controllers/");
13
13
  const ecommerce_1 = require("../../../../controllers/ecommerce");
@@ -28,10 +28,10 @@ exports.completePickingResolver = {
28
28
  }
29
29
  };
30
30
  async function completePicking(tx, domain, user, releaseGoodNo) {
31
- var _a, _b, _c;
31
+ var _a, _b;
32
32
  const pickingWSCtrl = new controllers_1.PickingWorksheetController(tx, domain, user);
33
33
  let releaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOne({
34
- where: { domain, name: releaseGoodNo },
34
+ where: { domain: { id: domain.id }, name: releaseGoodNo },
35
35
  relations: ['bizplace', 'bizplace.domain', 'bizplace.company', 'bizplace.company.domain']
36
36
  });
37
37
  const worksheet = await pickingWSCtrl.findWorksheetByRefOrder(releaseGood, constants_1.WORKSHEET_TYPE.PICKING, [
@@ -40,7 +40,7 @@ async function completePicking(tx, domain, user, releaseGoodNo) {
40
40
  ]);
41
41
  const warehouseContactPoint = await tx.getRepository(biz_base_1.ContactPoint).findOne({
42
42
  where: {
43
- domain,
43
+ domain: { id: domain.id },
44
44
  type: 'WAREHOUSE'
45
45
  }
46
46
  });
@@ -49,21 +49,34 @@ async function completePicking(tx, domain, user, releaseGoodNo) {
49
49
  const pickedTargetInventories = targetInventories.filter(targetInventory => targetInventory.status === sales_base_1.ORDER_INVENTORY_STATUS.PICKED);
50
50
  await pickingWSCtrl.completePicking(releaseGoodNo);
51
51
  if (releaseGood.type == 'b2c') {
52
- const sellercraft = await tx
53
- .getRepository(integration_sellercraft_1.Sellercraft)
54
- .findOne({ domain: releaseGood.bizplace.domain, status: integration_sellercraft_1.SellercraftStatus.ACTIVE });
55
- if (sellercraft) {
56
- const sellercraftCtrl = new controllers_1.SellercraftController(tx, domain, user);
57
- if (!(releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.packageId)) {
58
- const orderProducts = await tx.getRepository(sales_base_1.OrderProduct).find({
59
- where: { releaseGood },
60
- relations: ['product', 'product.productDetails']
52
+ const sellercraft = await tx.getRepository(integration_sellercraft_1.Sellercraft).findOneBy({
53
+ domain: {
54
+ id: releaseGood.bizplace.domain.id
55
+ },
56
+ status: integration_sellercraft_1.SellercraftStatus.ACTIVE
57
+ });
58
+ const initSCOrderShipment = async (sellercraft) => {
59
+ if (sellercraft) {
60
+ await (0, typeorm_1.getManager)().transaction(async (txMgr) => {
61
+ const sellercraftCtrl = new controllers_1.SellercraftController(txMgr, domain, user);
62
+ if (!(releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.packageId)) {
63
+ const orderProducts = await tx.getRepository(sales_base_1.OrderProduct).find({
64
+ where: { releaseGood },
65
+ relations: ['product', 'product.productDetails']
66
+ });
67
+ releaseGood = await sellercraftCtrl.packOrder(sellercraft, Object.assign(Object.assign({}, releaseGood), { orderProducts }));
68
+ if (releaseGood === null || releaseGood === void 0 ? void 0 : releaseGood.packageId) {
69
+ await txMgr
70
+ .getRepository(sales_base_1.ReleaseGood)
71
+ .update({ id: releaseGood.id }, { packageId: releaseGood.packageId, updater: releaseGood.updater });
72
+ }
73
+ }
74
+ await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood);
61
75
  });
62
- releaseGood = await sellercraftCtrl.packOrder(sellercraft, Object.assign(Object.assign({}, releaseGood), { orderProducts }));
63
76
  }
64
- releaseGood = await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood);
65
- await sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood);
66
- }
77
+ };
78
+ // asynchronouly call to initiate sellercraft order shipment/ RTS
79
+ initSCOrderShipment(sellercraft);
67
80
  const companyDomain = releaseGood.bizplace.company.domain;
68
81
  let marketplaceOrder = await tx.getRepository(marketplace_base_1.MarketplaceOrder).findOne({
69
82
  where: { orderNo: releaseGood.refNo, domain: companyDomain },
@@ -94,7 +107,7 @@ async function completePicking(tx, domain, user, releaseGoodNo) {
94
107
  const marketplaceOrderShipping = marketplaceOrderShippingItems[0].marketplaceOrderShipping;
95
108
  const lmd = await tx.getRepository(integration_lmd_1.LastMileDelivery).findOne({
96
109
  where: {
97
- domain,
110
+ domain: { id: domain.id },
98
111
  platform: 'eTrax'
99
112
  }
100
113
  });
@@ -169,24 +182,7 @@ async function completePicking(tx, domain, user, releaseGoodNo) {
169
182
  }
170
183
  if (releaseGood.packingOption) {
171
184
  const packingWSCtrl = new controllers_1.PackingWorksheetController(tx, domain, user);
172
- const directActivatePackingWorksheet = await tx.getRepository(setting_base_1.Setting).findOne({
173
- where: { domain: domain, category: 'id-rule', name: 'enable-direct-activate-packing-worksheet' }
174
- });
175
- const partnerDirectActivatePackingWorksheetSetting = await tx
176
- .getRepository(setting_base_1.PartnerSetting)
177
- .findOne({
178
- where: { setting: directActivatePackingWorksheet, domain: domain, partnerDomain: (_a = releaseGood.bizplace) === null || _a === void 0 ? void 0 : _a.domain }
179
- });
180
- let packingWorksheet = await packingWSCtrl.generatePackingWorksheet(releaseGoodNo);
181
- if (directActivatePackingWorksheet != undefined && directActivatePackingWorksheet.value.toLowerCase() == 'true') {
182
- if (partnerDirectActivatePackingWorksheetSetting != undefined) {
183
- if (partnerDirectActivatePackingWorksheetSetting.value.toLowerCase() == 'true')
184
- await packingWSCtrl.activatePacking(packingWorksheet.name);
185
- }
186
- else {
187
- await packingWSCtrl.activatePacking(packingWorksheet.name);
188
- }
189
- }
185
+ await packingWSCtrl.generatePackingWorksheet(releaseGoodNo);
190
186
  }
191
187
  else {
192
188
  // Find Existing Loading Worksheet if any
@@ -201,7 +197,7 @@ async function completePicking(tx, domain, user, releaseGoodNo) {
201
197
  if (pickedTargetInventories.length > 0) {
202
198
  const loadingWSCtrl = new controllers_1.LoadingWorksheetController(tx, domain, user);
203
199
  let loadingWorksheet = await loadingWSCtrl.generateLoadingWorksheet(releaseGoodNo, pickedTargetInventories);
204
- if (!((_b = loadingWorksheet.worksheetDetails) === null || _b === void 0 ? void 0 : _b.length)) {
200
+ if (!((_a = loadingWorksheet.worksheetDetails) === null || _a === void 0 ? void 0 : _a.length)) {
205
201
  loadingWorksheet = await pickingWSCtrl.findWorksheetById(loadingWorksheet.id);
206
202
  }
207
203
  const loadingWorksheetDetails = loadingWorksheet.worksheetDetails;
@@ -211,7 +207,7 @@ async function completePicking(tx, domain, user, releaseGoodNo) {
211
207
  else {
212
208
  const loadingWSCtrl = new controllers_1.LoadingWorksheetController(tx, domain, user);
213
209
  let loadingWorksheet = await loadingWSCtrl.updateLoadingWorksheet(releaseGoodNo, pickedTargetInventories, existLoadingWorksheet);
214
- if (!((_c = loadingWorksheet.worksheetDetails) === null || _c === void 0 ? void 0 : _c.length)) {
210
+ if (!((_b = loadingWorksheet.worksheetDetails) === null || _b === void 0 ? void 0 : _b.length)) {
215
211
  loadingWorksheet = await pickingWSCtrl.findWorksheetById(loadingWorksheet.id);
216
212
  }
217
213
  const loadingWorksheetDetails = loadingWorksheet.worksheetDetails;
@@ -1 +1 @@
1
- {"version":3,"file":"complete-picking.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/complete-picking.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getMyBizplace } from '@things-factory/biz-base'\nimport { LastMileAPI, LastMileDelivery } from '@things-factory/integration-lmd'\nimport { MarketplaceStore, MarketplaceTransporter } from '@things-factory/integration-marketplace'\nimport { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport {\n ORDER_INVENTORY_STATUS,\n ORDER_STATUS,\n OrderInventory,\n OrderProduct,\n ReleaseGood\n} from '@things-factory/sales-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'\nimport {\n LoadingWorksheetController,\n PackingWorksheetController,\n PickingWorksheetController,\n SellercraftController\n} from '../../../../controllers/'\nimport { EcommerceController } from '../../../../controllers/ecommerce'\nimport { WorksheetController } from '../../../../controllers/worksheet-controller'\nimport { Worksheet, WorksheetDetail } from '../../../../entities'\n\nexport const completePickingResolver = {\n async completePicking(_: any, { releaseGoodNo }, context: any) {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n\n await completePicking(tx, domain, user, releaseGoodNo)\n\n const bizplace: Bizplace = await getMyBizplace(domain, user)\n const worksheetController: WorksheetController = new WorksheetController(tx, domain, user)\n await worksheetController.notifyToCustomer(bizplace, {\n title: `Picking has been completed (${bizplace.name}, ${releaseGoodNo})`,\n body: `Items now are ready to be loaded`,\n url: context.header.referer,\n data: { url: context.header.referer }\n })\n }\n}\n\nexport async function completePicking(\n tx: EntityManager,\n domain: Domain,\n user: User,\n releaseGoodNo: string\n): Promise<void> {\n const pickingWSCtrl: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)\n let releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: { domain, name: releaseGoodNo },\n relations: ['bizplace', 'bizplace.domain', 'bizplace.company', 'bizplace.company.domain']\n })\n\n const worksheet: Worksheet = await pickingWSCtrl.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.PICKING, [\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n const warehouseContactPoint: ContactPoint = await tx.getRepository(ContactPoint).findOne({\n where: {\n domain,\n type: 'WAREHOUSE'\n }\n })\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => wsd.targetInventory)\n const pickedTargetInventories: OrderInventory[] = targetInventories.filter(\n targetInventory => targetInventory.status === ORDER_INVENTORY_STATUS.PICKED\n )\n\n await pickingWSCtrl.completePicking(releaseGoodNo)\n\n if (releaseGood.type == 'b2c') {\n const sellercraft: Sellercraft = await tx\n .getRepository(Sellercraft)\n .findOne({ domain: releaseGood.bizplace.domain, status: SellercraftStatus.ACTIVE })\n\n if (sellercraft) {\n const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)\n\n if (!releaseGood?.packageId) {\n const orderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).find({\n where: { releaseGood },\n relations: ['product', 'product.productDetails']\n })\n releaseGood = await sellercraftCtrl.packOrder(sellercraft, { ...releaseGood, orderProducts })\n }\n\n releaseGood = await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)\n await sellercraftCtrl.initiateOrderDocument(sellercraft, releaseGood)\n }\n\n const companyDomain: Domain = releaseGood.bizplace.company.domain\n let marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({\n where: { orderNo: releaseGood.refNo, domain: companyDomain },\n relations: [\n 'marketplaceStore',\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'\n ]\n })\n\n if (!sellercraft && marketplaceOrder) {\n const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore\n let eTraxOption: boolean\n\n if (marketplaceStore.isAutoUpdateShipment) {\n const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)\n await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PACKING)\n }\n\n if (!marketplaceOrder)\n throw new Error('Failed to find ecommerce order, kindly contact our support team regarding this issue')\n eTraxOption = marketplaceOrder?.marketplaceStore.eTrax\n\n // if eTrax option is true\n if (eTraxOption) {\n const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n\n // access every marketplaceOrderItems for shipping information you need\n // trigger the controller from integration-lmd that trigger the API, build the parameters needed\n // for etrax didn't support multi awb per order\n const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderItems[0].marketplaceOrderShippingItems\n const marketplaceOrderShipping: MarketplaceOrderShipping =\n marketplaceOrderShippingItems[0].marketplaceOrderShipping\n const lmd: LastMileDelivery = await tx.getRepository(LastMileDelivery).findOne({\n where: {\n domain,\n platform: 'eTrax'\n }\n })\n\n //Get which transporter to use\n const marketplaceTransporter: MarketplaceTransporter = await tx.getRepository(MarketplaceTransporter).findOne({\n where: { marketplaceStore: marketplaceOrder.marketplaceStore },\n relations: ['pickupTransporter', 'deliveryTransporter']\n })\n\n const resp = await LastMileAPI.createShipmentRequest(lmd, {\n orderNo: marketplaceOrder.orderNo,\n clientId: lmd.clientId,\n clientType: lmd.clientType,\n clientName: lmd.clientName,\n transporterId: marketplaceTransporter.pickupTransporter.transporterId,\n pickupName: warehouseContactPoint.name,\n pickupAddress1: warehouseContactPoint.address,\n pickupAddress2: warehouseContactPoint.address2,\n pickupPostcode: warehouseContactPoint.postCode,\n pickupState: warehouseContactPoint.state,\n pickupCity: warehouseContactPoint.city,\n pickupPhone: warehouseContactPoint.phone,\n pickupEmail: warehouseContactPoint.email,\n name: marketplaceOrderShipping?.attentionTo ? marketplaceOrderShipping.attentionTo.trim() : '',\n address1: marketplaceOrderShipping?.address1 ? marketplaceOrderShipping?.address1.trim() : '-',\n address2: marketplaceOrderShipping?.address2 ? marketplaceOrderShipping?.address2.trim() : '-',\n postCode: marketplaceOrderShipping?.postCode ? marketplaceOrderShipping?.postCode.trim() : '',\n city: marketplaceOrderShipping?.city ? marketplaceOrderShipping?.city.trim() : '',\n state: marketplaceOrderShipping?.state ? marketplaceOrderShipping?.state.trim() : '',\n phone: marketplaceOrderShipping.phone1 || '',\n email: marketplaceOrderShipping.email || '',\n attentionTo: marketplaceOrderShipping.attentionTo,\n quantity: marketplaceOrderItems.length\n })\n\n const delay = (ms: number) => {\n return new Promise(resolve => setTimeout(resolve, ms))\n }\n\n if (resp.Status === 'SUCCESS') {\n //Success\n let awbObtained = false\n let retry = 0\n while (!awbObtained) {\n const marketplaceOrder2: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({\n where: { releaseOrderId: releaseGood.id },\n relations: [\n 'marketplaceStore',\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'\n ]\n })\n const orderShipping =\n marketplaceOrder2.marketplaceOrderItems[0].marketplaceOrderShippingItems[0].marketplaceOrderShipping\n if (orderShipping?.airwayBill) {\n awbObtained = true\n }\n await delay(5000)\n //Timeout after 15sec\n if (++retry > 3) {\n break\n }\n }\n } else {\n if (resp?.AWBurl && resp?.TrackingNo)\n await tx\n .getRepository(MarketplaceOrderShipping)\n .update({ id: marketplaceOrderShipping.id }, { airwayBill: resp.AWBurl, trackingNo: resp.TrackingNo })\n else throw resp\n }\n }\n }\n }\n\n if (releaseGood.packingOption) {\n const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)\n\n const directActivatePackingWorksheet: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: domain, category: 'id-rule', name: 'enable-direct-activate-packing-worksheet' }\n })\n const partnerDirectActivatePackingWorksheetSetting: PartnerSetting = await tx\n .getRepository(PartnerSetting)\n .findOne({\n where: { setting: directActivatePackingWorksheet, domain: domain, partnerDomain: releaseGood.bizplace?.domain }\n })\n\n let packingWorksheet: Worksheet = await packingWSCtrl.generatePackingWorksheet(releaseGoodNo)\n\n if (directActivatePackingWorksheet != undefined && directActivatePackingWorksheet.value.toLowerCase() == 'true') {\n if (partnerDirectActivatePackingWorksheetSetting != undefined) {\n if (partnerDirectActivatePackingWorksheetSetting.value.toLowerCase() == 'true')\n await packingWSCtrl.activatePacking(packingWorksheet.name)\n } else {\n await packingWSCtrl.activatePacking(packingWorksheet.name)\n }\n }\n } else {\n // Find Existing Loading Worksheet if any\n let existLoadingWorksheet: Worksheet = await tx.getRepository(Worksheet).findOne({\n where: {\n releaseGood,\n type: WORKSHEET_TYPE.LOADING,\n status: WORKSHEET_STATUS.DEACTIVATED\n }\n })\n\n if (!existLoadingWorksheet && !releaseGood.courierOption && !releaseGood.packingOption) {\n if(pickedTargetInventories.length>0){\n const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)\n let loadingWorksheet: Worksheet = await loadingWSCtrl.generateLoadingWorksheet(\n releaseGoodNo,\n pickedTargetInventories\n )\n \n if (!loadingWorksheet.worksheetDetails?.length) {\n loadingWorksheet = await pickingWSCtrl.findWorksheetById(loadingWorksheet.id)\n }\n \n const loadingWorksheetDetails: WorksheetDetail[] = loadingWorksheet.worksheetDetails\n await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails)\n }\n } else {\n const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)\n let loadingWorksheet: Worksheet = await loadingWSCtrl.updateLoadingWorksheet(\n releaseGoodNo,\n pickedTargetInventories,\n existLoadingWorksheet\n )\n\n if (!loadingWorksheet.worksheetDetails?.length) {\n loadingWorksheet = await pickingWSCtrl.findWorksheetById(loadingWorksheet.id)\n }\n\n const loadingWorksheetDetails: WorksheetDetail[] = loadingWorksheet.worksheetDetails\n await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails)\n }\n }\n}\n"]}
1
+ {"version":3,"file":"complete-picking.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/complete-picking.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, getManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getMyBizplace } from '@things-factory/biz-base'\nimport { LastMileAPI, LastMileDelivery } from '@things-factory/integration-lmd'\nimport { MarketplaceStore, MarketplaceTransporter } from '@things-factory/integration-marketplace'\nimport { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'\nimport {\n MarketplaceOrder,\n MarketplaceOrderItem,\n MarketplaceOrderShipping,\n MarketplaceOrderShippingItem\n} from '@things-factory/marketplace-base'\nimport {\n ORDER_INVENTORY_STATUS,\n ORDER_STATUS,\n OrderInventory,\n OrderProduct,\n ReleaseGood\n} from '@things-factory/sales-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'\nimport {\n LoadingWorksheetController,\n PackingWorksheetController,\n PickingWorksheetController,\n SellercraftController\n} from '../../../../controllers/'\nimport { EcommerceController } from '../../../../controllers/ecommerce'\nimport { WorksheetController } from '../../../../controllers/worksheet-controller'\nimport { Worksheet, WorksheetDetail } from '../../../../entities'\n\nexport const completePickingResolver = {\n async completePicking(_: any, { releaseGoodNo }, context: ResolverContext) {\n const { tx, domain, user } = context.state\n\n await completePicking(tx, domain, user, releaseGoodNo)\n\n const bizplace: Bizplace = await getMyBizplace(domain, user)\n const worksheetController: WorksheetController = new WorksheetController(tx, domain, user)\n await worksheetController.notifyToCustomer(bizplace, {\n title: `Picking has been completed (${bizplace.name}, ${releaseGoodNo})`,\n body: `Items now are ready to be loaded`,\n url: context.header.referer,\n data: { url: context.header.referer }\n })\n }\n}\n\nexport async function completePicking(\n tx: EntityManager,\n domain: Domain,\n user: User,\n releaseGoodNo: string\n): Promise<void> {\n const pickingWSCtrl: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)\n let releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne({\n where: { domain: { id: domain.id }, name: releaseGoodNo },\n relations: ['bizplace', 'bizplace.domain', 'bizplace.company', 'bizplace.company.domain']\n })\n\n const worksheet: Worksheet = await pickingWSCtrl.findWorksheetByRefOrder(releaseGood, WORKSHEET_TYPE.PICKING, [\n 'worksheetDetails',\n 'worksheetDetails.targetInventory'\n ])\n\n const warehouseContactPoint: ContactPoint = await tx.getRepository(ContactPoint).findOne({\n where: {\n domain: { id: domain.id },\n type: 'WAREHOUSE'\n }\n })\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const targetInventories: OrderInventory[] = worksheetDetails.map((wsd: WorksheetDetail) => wsd.targetInventory)\n const pickedTargetInventories: OrderInventory[] = targetInventories.filter(\n targetInventory => targetInventory.status === ORDER_INVENTORY_STATUS.PICKED\n )\n\n await pickingWSCtrl.completePicking(releaseGoodNo)\n\n if (releaseGood.type == 'b2c') {\n const sellercraft: Sellercraft = await tx.getRepository(Sellercraft).findOneBy({\n domain: {\n id: releaseGood.bizplace.domain.id\n },\n status: SellercraftStatus.ACTIVE\n })\n const initSCOrderShipment = async sellercraft => {\n if (sellercraft) {\n await getManager().transaction(async txMgr => {\n const sellercraftCtrl: SellercraftController = new SellercraftController(txMgr, domain, user)\n\n if (!releaseGood?.packageId) {\n const orderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).find({\n where: { releaseGood },\n relations: ['product', 'product.productDetails']\n })\n releaseGood = await sellercraftCtrl.packOrder(sellercraft, { ...releaseGood, orderProducts })\n\n if (releaseGood?.packageId) {\n await txMgr\n .getRepository(ReleaseGood)\n .update({ id: releaseGood.id }, { packageId: releaseGood.packageId, updater: releaseGood.updater })\n }\n }\n\n await sellercraftCtrl.initiateOrderShipment(sellercraft, releaseGood)\n })\n }\n }\n\n // asynchronouly call to initiate sellercraft order shipment/ RTS\n initSCOrderShipment(sellercraft)\n\n const companyDomain: Domain = releaseGood.bizplace.company.domain\n let marketplaceOrder: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({\n where: { orderNo: releaseGood.refNo, domain: companyDomain },\n relations: [\n 'marketplaceStore',\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'\n ]\n })\n\n if (!sellercraft && marketplaceOrder) {\n const marketplaceStore: MarketplaceStore = marketplaceOrder.marketplaceStore\n let eTraxOption: boolean\n\n if (marketplaceStore.isAutoUpdateShipment) {\n const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)\n await ecommerceCtrl.createOrderComment(marketplaceStore, marketplaceOrder, ORDER_STATUS.PACKING)\n }\n\n if (!marketplaceOrder)\n throw new Error('Failed to find ecommerce order, kindly contact our support team regarding this issue')\n eTraxOption = marketplaceOrder?.marketplaceStore.eTrax\n\n // if eTrax option is true\n if (eTraxOption) {\n const marketplaceOrderItems: MarketplaceOrderItem[] = marketplaceOrder.marketplaceOrderItems\n\n // access every marketplaceOrderItems for shipping information you need\n // trigger the controller from integration-lmd that trigger the API, build the parameters needed\n // for etrax didn't support multi awb per order\n const marketplaceOrderShippingItems: MarketplaceOrderShippingItem[] =\n marketplaceOrderItems[0].marketplaceOrderShippingItems\n const marketplaceOrderShipping: MarketplaceOrderShipping =\n marketplaceOrderShippingItems[0].marketplaceOrderShipping\n const lmd: LastMileDelivery = await tx.getRepository(LastMileDelivery).findOne({\n where: {\n domain: { id: domain.id },\n platform: 'eTrax'\n }\n })\n\n //Get which transporter to use\n const marketplaceTransporter: MarketplaceTransporter = await tx.getRepository(MarketplaceTransporter).findOne({\n where: { marketplaceStore: marketplaceOrder.marketplaceStore },\n relations: ['pickupTransporter', 'deliveryTransporter']\n })\n\n const resp = await LastMileAPI.createShipmentRequest(lmd, {\n orderNo: marketplaceOrder.orderNo,\n clientId: lmd.clientId,\n clientType: lmd.clientType,\n clientName: lmd.clientName,\n transporterId: marketplaceTransporter.pickupTransporter.transporterId,\n pickupName: warehouseContactPoint.name,\n pickupAddress1: warehouseContactPoint.address,\n pickupAddress2: warehouseContactPoint.address2,\n pickupPostcode: warehouseContactPoint.postCode,\n pickupState: warehouseContactPoint.state,\n pickupCity: warehouseContactPoint.city,\n pickupPhone: warehouseContactPoint.phone,\n pickupEmail: warehouseContactPoint.email,\n name: marketplaceOrderShipping?.attentionTo ? marketplaceOrderShipping.attentionTo.trim() : '',\n address1: marketplaceOrderShipping?.address1 ? marketplaceOrderShipping?.address1.trim() : '-',\n address2: marketplaceOrderShipping?.address2 ? marketplaceOrderShipping?.address2.trim() : '-',\n postCode: marketplaceOrderShipping?.postCode ? marketplaceOrderShipping?.postCode.trim() : '',\n city: marketplaceOrderShipping?.city ? marketplaceOrderShipping?.city.trim() : '',\n state: marketplaceOrderShipping?.state ? marketplaceOrderShipping?.state.trim() : '',\n phone: marketplaceOrderShipping.phone1 || '',\n email: marketplaceOrderShipping.email || '',\n attentionTo: marketplaceOrderShipping.attentionTo,\n quantity: marketplaceOrderItems.length\n })\n\n const delay = (ms: number) => {\n return new Promise(resolve => setTimeout(resolve, ms))\n }\n\n if (resp.Status === 'SUCCESS') {\n //Success\n let awbObtained = false\n let retry = 0\n while (!awbObtained) {\n const marketplaceOrder2: MarketplaceOrder = await tx.getRepository(MarketplaceOrder).findOne({\n where: { releaseOrderId: releaseGood.id },\n relations: [\n 'marketplaceStore',\n 'marketplaceOrderItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems',\n 'marketplaceOrderItems.marketplaceOrderShippingItems.marketplaceOrderShipping'\n ]\n })\n const orderShipping =\n marketplaceOrder2.marketplaceOrderItems[0].marketplaceOrderShippingItems[0].marketplaceOrderShipping\n if (orderShipping?.airwayBill) {\n awbObtained = true\n }\n await delay(5000)\n //Timeout after 15sec\n if (++retry > 3) {\n break\n }\n }\n } else {\n if (resp?.AWBurl && resp?.TrackingNo)\n await tx\n .getRepository(MarketplaceOrderShipping)\n .update({ id: marketplaceOrderShipping.id }, { airwayBill: resp.AWBurl, trackingNo: resp.TrackingNo })\n else throw resp\n }\n }\n }\n }\n\n if (releaseGood.packingOption) {\n const packingWSCtrl: PackingWorksheetController = new PackingWorksheetController(tx, domain, user)\n await packingWSCtrl.generatePackingWorksheet(releaseGoodNo)\n } else {\n // Find Existing Loading Worksheet if any\n let existLoadingWorksheet: Worksheet = await tx.getRepository(Worksheet).findOne({\n where: {\n releaseGood,\n type: WORKSHEET_TYPE.LOADING,\n status: WORKSHEET_STATUS.DEACTIVATED\n }\n })\n\n if (!existLoadingWorksheet && !releaseGood.courierOption && !releaseGood.packingOption) {\n if (pickedTargetInventories.length > 0) {\n const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)\n let loadingWorksheet: Worksheet = await loadingWSCtrl.generateLoadingWorksheet(\n releaseGoodNo,\n pickedTargetInventories\n )\n\n if (!loadingWorksheet.worksheetDetails?.length) {\n loadingWorksheet = await pickingWSCtrl.findWorksheetById(loadingWorksheet.id)\n }\n\n const loadingWorksheetDetails: WorksheetDetail[] = loadingWorksheet.worksheetDetails\n await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails)\n }\n } else {\n const loadingWSCtrl: LoadingWorksheetController = new LoadingWorksheetController(tx, domain, user)\n let loadingWorksheet: Worksheet = await loadingWSCtrl.updateLoadingWorksheet(\n releaseGoodNo,\n pickedTargetInventories,\n existLoadingWorksheet\n )\n\n if (!loadingWorksheet.worksheetDetails?.length) {\n loadingWorksheet = await pickingWSCtrl.findWorksheetById(loadingWorksheet.id)\n }\n\n const loadingWorksheetDetails: WorksheetDetail[] = loadingWorksheet.worksheetDetails\n await loadingWSCtrl.activateLoading(loadingWorksheet.name, loadingWorksheetDetails)\n }\n }\n}\n"]}
@@ -13,7 +13,10 @@ exports.fetchAndAssignPickingTaskResolver = {
13
13
  async fetchAndAssignPickingTask(_, {}, context) {
14
14
  try {
15
15
  const { tx, domain, user } = context.state;
16
- const assignee = await tx.getRepository(auth_base_1.User).findOne(user.id, { relations: ['domains'] });
16
+ const assignee = await tx.getRepository(auth_base_1.User).findOne({
17
+ where: { id: user.id },
18
+ relations: ['domains']
19
+ });
17
20
  if (((assignee === null || assignee === void 0 ? void 0 : assignee.domains) || []).every((userDomain) => userDomain.id !== domain.id))
18
21
  throw new Error('Target user is not belong to current domain');
19
22
  if (!assignee)
@@ -25,7 +28,7 @@ exports.fetchAndAssignPickingTaskResolver = {
25
28
  .select('ws.id')
26
29
  .addSelect('ws.name')
27
30
  .addSelect('ws.status')
28
- .addSelect('ws.release_good_id')
31
+ .innerJoinAndSelect('ws.releaseGood', 'rg')
29
32
  .where('(ws.domain_id = :domain_id AND ws.type = :type AND ws.assignee_id =:assignee AND (ws.status = :status1 OR ws.status = :status2))', {
30
33
  domain_id: domain.id,
31
34
  type: constants_1.WORKSHEET_TYPE.PICKING,
@@ -44,49 +47,57 @@ exports.fetchAndAssignPickingTaskResolver = {
44
47
  .having('COUNT(*) > 0')
45
48
  .getQuery();
46
49
  return 'NOT EXISTS ' + subQuery;
47
- });
48
- worksheet = await worksheetQb.getRawOne();
50
+ })
51
+ .orderBy('"rg"."created_at"', 'ASC');
52
+ worksheet = await worksheetQb.getOne();
49
53
  if (!worksheet) {
50
- let worksheetQb = await tx
51
- .getRepository(entities_1.Worksheet)
52
- .createQueryBuilder('ws')
53
- .select('ws.id')
54
- .addSelect('ws.name')
55
- .addSelect('ws.status')
56
- .addSelect('ws.release_good_id')
57
- .where('(ws.domain_id = :domain_id AND ws.type = :type AND ws.assignee_id IS NULL AND (ws.status = :status1 OR ws.status = :status2))', {
58
- domain_id: domain.id,
59
- type: constants_1.WORKSHEET_TYPE.PICKING,
60
- status1: constants_1.WORKSHEET_STATUS.EXECUTING,
61
- status2: constants_1.WORKSHEET_STATUS.DEACTIVATED
62
- })
63
- .andWhere(qb => {
64
- const subQuery = qb
65
- .subQuery()
66
- .select('COUNT(*) AS totalPS')
67
- .from(sales_base_1.OrderInventory, 'OrderInventory')
68
- .where('OrderInventory.release_good_id = ws.release_good_id')
69
- .andWhere(`OrderInventory.status = 'PENDING_SPLIT'`)
70
- .groupBy('OrderInventory.release_good_id')
71
- .having('COUNT(*) > 0')
72
- .getQuery();
73
- return 'NOT EXISTS ' + subQuery;
54
+ // update and return updated worksheet id
55
+ let updatedWorksheets = await (0, typeorm_1.getConnection)().transaction(async (tx2) => {
56
+ let x = await tx2.getRepository(entities_1.Worksheet).query(`
57
+ UPDATE worksheets ws SET assignee_id = $2,
58
+ updated_at = NOW(),
59
+ updater_id = $2
60
+ FROM (
61
+ SELECT ws.id, ws.name, ws.status, ws.release_good_id FROM worksheets ws
62
+ INNER JOIN release_goods rg ON rg.id = ws.release_good_id
63
+ WHERE
64
+ ws.domain_id = $1 AND
65
+ ws.type = 'PICKING' AND
66
+ ws.assignee_id IS NULL AND
67
+ (ws.status = 'EXECUTING' OR ws.status = 'DEACTIVATED') AND
68
+ NOT EXISTS (
69
+ SELECT count(id) AS "totalPS"
70
+ FROM order_inventories oi
71
+ WHERE oi.release_good_id = ws.release_good_id AND
72
+ oi.status = 'PENDING_SPLIT'
73
+ GROUP BY oi.release_good_id
74
+ HAVING count(id) > 0
75
+ )
76
+ ORDER BY rg.release_date, rg.created_at LIMIT 1
77
+ ) src where src.id = ws.id
78
+ RETURNING ws.id;
79
+ `, [domain.id, assignee.id]);
80
+ return x[0];
74
81
  });
75
- worksheet = await worksheetQb.getRawOne();
76
- if (!worksheet)
82
+ if (updatedWorksheets.length == 0)
77
83
  throw new Error('no suitable worksheet found');
78
- await (0, typeorm_1.getRepository)(entities_1.Worksheet).update({ id: worksheet.ws_id }, { assignee: assignee });
84
+ // relace worksheet with newly assigned worksheet
85
+ worksheet = await tx
86
+ .getRepository(entities_1.Worksheet)
87
+ .findOne({ where: { id: updatedWorksheets[0].id }, relations: ['releaseGood'] });
79
88
  }
80
- if (worksheet.ws_status == constants_1.WORKSHEET_STATUS.DEACTIVATED)
81
- await (0, activate_picking_1.activatePicking)(tx, domain, user, worksheet.ws_name);
89
+ if (worksheet.status == constants_1.WORKSHEET_STATUS.DEACTIVATED)
90
+ await (0, activate_picking_1.activatePicking)(tx, domain, user, worksheet.name);
82
91
  const locationSortingRules = await tx.getRepository(setting_base_1.Setting).findOne({
83
- where: { domain, name: 'rule-for-picking-product' }
92
+ where: { domain: { id: domain.id }, name: 'rule-for-picking-product' }
84
93
  });
85
94
  const sortingRule = JSON.parse(locationSortingRules.value);
86
95
  const locationSortingRule = Object.keys(sortingRule).map(field => {
87
96
  return { name: field, desc: sortingRule[field] === 'DESC' };
88
97
  });
89
- const releaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOne(worksheet.release_good_id);
98
+ const releaseGood = await tx.getRepository(sales_base_1.ReleaseGood).findOneBy({
99
+ id: worksheet.releaseGood.id
100
+ });
90
101
  return await (0, picking_worksheet_1.pickingWorksheet)(domain, releaseGood.name, locationSortingRule, tx);
91
102
  }
92
103
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-and-assign-picking-task.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, getRepository } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { ReleaseGood, OrderInventory } from '@things-factory/sales-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'\nimport { Worksheet } from '../../../../entities'\nimport { pickingWorksheet } from '../picking-worksheet'\nimport { activatePicking } from './activate-picking'\n\nexport const fetchAndAssignPickingTaskResolver = {\n async fetchAndAssignPickingTask(_: any, {}, context: any) {\n try {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n const assignee: User = await tx.getRepository(User).findOne(user.id, { relations: ['domains'] })\n if ((assignee?.domains || []).every((userDomain: Domain) => userDomain.id !== domain.id))\n throw new Error('Target user is not belong to current domain')\n\n if (!assignee) throw new Error('failed to find target user')\n\n let worksheet: any\n let worksheetQb = await tx\n .getRepository(Worksheet)\n .createQueryBuilder('ws')\n .select('ws.id')\n .addSelect('ws.name')\n .addSelect('ws.status')\n .addSelect('ws.release_good_id')\n .where(\n '(ws.domain_id = :domain_id AND ws.type = :type AND ws.assignee_id =:assignee AND (ws.status = :status1 OR ws.status = :status2))',\n {\n domain_id: domain.id,\n type: WORKSHEET_TYPE.PICKING,\n assignee: assignee.id,\n status1: WORKSHEET_STATUS.EXECUTING,\n status2: WORKSHEET_STATUS.DEACTIVATED\n }\n )\n .andWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('COUNT(*) AS totalPS')\n .from(OrderInventory, 'OrderInventory')\n .where('OrderInventory.release_good_id = ws.release_good_id')\n .andWhere(`OrderInventory.status = 'PENDING_SPLIT'`)\n .groupBy('OrderInventory.release_good_id')\n .having('COUNT(*) > 0')\n .getQuery()\n return 'NOT EXISTS ' + subQuery\n })\n\n worksheet = await worksheetQb.getRawOne()\n\n if (!worksheet) {\n let worksheetQb = await tx\n .getRepository(Worksheet)\n .createQueryBuilder('ws')\n .select('ws.id')\n .addSelect('ws.name')\n .addSelect('ws.status')\n .addSelect('ws.release_good_id')\n .where(\n '(ws.domain_id = :domain_id AND ws.type = :type AND ws.assignee_id IS NULL AND (ws.status = :status1 OR ws.status = :status2))',\n {\n domain_id: domain.id,\n type: WORKSHEET_TYPE.PICKING,\n status1: WORKSHEET_STATUS.EXECUTING,\n status2: WORKSHEET_STATUS.DEACTIVATED\n }\n )\n .andWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('COUNT(*) AS totalPS')\n .from(OrderInventory, 'OrderInventory')\n .where('OrderInventory.release_good_id = ws.release_good_id')\n .andWhere(`OrderInventory.status = 'PENDING_SPLIT'`)\n .groupBy('OrderInventory.release_good_id')\n .having('COUNT(*) > 0')\n .getQuery()\n return 'NOT EXISTS ' + subQuery\n })\n\n worksheet = await worksheetQb.getRawOne()\n\n if (!worksheet) throw new Error('no suitable worksheet found')\n await getRepository(Worksheet).update({ id: worksheet.ws_id }, { assignee: assignee })\n }\n\n if (worksheet.ws_status == WORKSHEET_STATUS.DEACTIVATED)\n await activatePicking(tx, domain, user, worksheet.ws_name)\n\n const locationSortingRules: Setting = await tx.getRepository(Setting).findOne({\n where: { domain, name: 'rule-for-picking-product' }\n })\n\n const sortingRule = JSON.parse(locationSortingRules.value)\n const locationSortingRule = Object.keys(sortingRule).map(field => {\n return { name: field, desc: sortingRule[field] === 'DESC' }\n })\n\n const releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne(worksheet.release_good_id)\n\n return await pickingWorksheet(domain, releaseGood.name, locationSortingRule, tx)\n } catch (error) {\n throw error\n }\n }\n}\n"]}
1
+ {"version":3,"file":"fetch-and-assign-picking-task.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, getConnection } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { OrderInventory, ReleaseGood } from '@things-factory/sales-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'\nimport { Worksheet } from '../../../../entities'\nimport { pickingWorksheet } from '../picking-worksheet'\nimport { activatePicking } from './activate-picking'\n\nexport const fetchAndAssignPickingTaskResolver = {\n async fetchAndAssignPickingTask(_: any, {}, context: ResolverContext) {\n try {\n const { tx, domain, user } = context.state\n const assignee: User = await tx.getRepository(User).findOne({\n where: { id: user.id },\n relations: ['domains']\n })\n if ((assignee?.domains || []).every((userDomain: Domain) => userDomain.id !== domain.id))\n throw new Error('Target user is not belong to current domain')\n\n if (!assignee) throw new Error('failed to find target user')\n\n let worksheet: Worksheet\n let worksheetQb = await tx\n .getRepository(Worksheet)\n .createQueryBuilder('ws')\n .select('ws.id')\n .addSelect('ws.name')\n .addSelect('ws.status')\n .innerJoinAndSelect('ws.releaseGood', 'rg')\n .where(\n '(ws.domain_id = :domain_id AND ws.type = :type AND ws.assignee_id =:assignee AND (ws.status = :status1 OR ws.status = :status2))',\n {\n domain_id: domain.id,\n type: WORKSHEET_TYPE.PICKING,\n assignee: assignee.id,\n status1: WORKSHEET_STATUS.EXECUTING,\n status2: WORKSHEET_STATUS.DEACTIVATED\n }\n )\n .andWhere(qb => {\n const subQuery = qb\n .subQuery()\n .select('COUNT(*) AS totalPS')\n .from(OrderInventory, 'OrderInventory')\n .where('OrderInventory.release_good_id = ws.release_good_id')\n .andWhere(`OrderInventory.status = 'PENDING_SPLIT'`)\n .groupBy('OrderInventory.release_good_id')\n .having('COUNT(*) > 0')\n .getQuery()\n return 'NOT EXISTS ' + subQuery\n })\n .orderBy('\"rg\".\"created_at\"', 'ASC')\n\n worksheet = await worksheetQb.getOne()\n\n if (!worksheet) {\n // update and return updated worksheet id\n let updatedWorksheets = await getConnection().transaction(async (tx2: EntityManager) => {\n let x = await tx2.getRepository(Worksheet).query(\n `\n UPDATE worksheets ws SET assignee_id = $2,\n updated_at = NOW(),\n updater_id = $2\n FROM (\n SELECT ws.id, ws.name, ws.status, ws.release_good_id FROM worksheets ws\n INNER JOIN release_goods rg ON rg.id = ws.release_good_id\n WHERE \n ws.domain_id = $1 AND \n ws.type = 'PICKING' AND \n ws.assignee_id IS NULL AND \n (ws.status = 'EXECUTING' OR ws.status = 'DEACTIVATED') AND\n NOT EXISTS (\n SELECT count(id) AS \"totalPS\"\n FROM order_inventories oi \n WHERE oi.release_good_id = ws.release_good_id AND\n oi.status = 'PENDING_SPLIT'\n GROUP BY oi.release_good_id \n HAVING count(id) > 0\n )\n ORDER BY rg.release_date, rg.created_at LIMIT 1\n ) src where src.id = ws.id\n RETURNING ws.id;\n `,\n [domain.id, assignee.id]\n )\n return x[0]\n })\n\n if (updatedWorksheets.length == 0) throw new Error('no suitable worksheet found')\n\n // relace worksheet with newly assigned worksheet\n worksheet = await tx\n .getRepository(Worksheet)\n .findOne({ where: { id: updatedWorksheets[0].id }, relations: ['releaseGood'] })\n }\n\n if (worksheet.status == WORKSHEET_STATUS.DEACTIVATED) await activatePicking(tx, domain, user, worksheet.name)\n\n const locationSortingRules: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, name: 'rule-for-picking-product' }\n })\n\n const sortingRule = JSON.parse(locationSortingRules.value)\n const locationSortingRule = Object.keys(sortingRule).map(field => {\n return { name: field, desc: sortingRule[field] === 'DESC' }\n })\n\n const releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOneBy({\n id: worksheet.releaseGood.id\n })\n\n return await pickingWorksheet(domain, releaseGood.name, locationSortingRule, tx)\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -2,13 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.myPickingAssignmentStatusResolver = void 0;
4
4
  const typeorm_1 = require("typeorm");
5
+ const shell_1 = require("@things-factory/shell");
5
6
  const constants_1 = require("../../../../constants");
6
7
  const entities_1 = require("../../../../entities");
7
8
  exports.myPickingAssignmentStatusResolver = {
8
9
  async myPickingAssignmentStatus(_parentObj, _params, context) {
9
10
  const { domain, user } = context.state;
10
- const pickingWorksheets = await (0, typeorm_1.getRepository)(entities_1.Worksheet).find({
11
- where: { domain, assignee: user, status: (0, typeorm_1.In)([constants_1.WORKSHEET_STATUS.DEACTIVATED, constants_1.WORKSHEET_STATUS.EXECUTING]) }
11
+ const pickingWorksheets = await (0, shell_1.getRepository)(entities_1.Worksheet).find({
12
+ where: {
13
+ domain: { id: domain.id },
14
+ assignee: { id: user.id },
15
+ status: (0, typeorm_1.In)([constants_1.WORKSHEET_STATUS.DEACTIVATED, constants_1.WORKSHEET_STATUS.EXECUTING])
16
+ }
12
17
  });
13
18
  return (pickingWorksheets || []).reduce((assignmentStatus, worksheet) => {
14
19
  if (worksheet.status === constants_1.WORKSHEET_STATUS.DEACTIVATED)
@@ -1 +1 @@
1
- {"version":3,"file":"my-picking-assignment-status.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.ts"],"names":[],"mappings":";;;AAEA,qCAA2C;AAC3C,qDAAwD;AACxD,mDAAgD;AAInC,QAAA,iCAAiC,GAAG;IAC/C,KAAK,CAAC,yBAAyB,CAAC,UAAgB,EAAE,OAAa,EAAE,OAAY;QAC3E,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAmC,OAAO,CAAC,KAAK,CAAA;QAEtE,MAAM,iBAAiB,GAAgB,MAAM,IAAA,uBAAa,EAAC,oBAAS,CAAC,CAAC,IAAI,CAAC;YACzE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAA,YAAE,EAAC,CAAC,4BAAgB,CAAC,WAAW,EAAE,4BAAgB,CAAC,SAAS,CAAC,CAAC,EAAE;SAC1G,CAAC,CAAA;QAEF,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,MAAM,CACrC,CAAC,gBAAsC,EAAE,SAAoB,EAAE,EAAE;YAC/D,IAAI,SAAS,CAAC,MAAM,KAAK,4BAAgB,CAAC,WAAW;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC/F,IAAI,SAAS,CAAC,MAAM,KAAK,4BAAgB,CAAC,SAAS;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7F,OAAO,gBAAgB,CAAA;QACzB,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC9C,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\nimport { getRepository, In } from 'typeorm'\nimport { WORKSHEET_STATUS } from '../../../../constants'\nimport { Worksheet } from '../../../../entities'\n\ntype AssignmentStatusType = { userId: string; pending?: Worksheet[]; picking: Worksheet[] }\n\nexport const myPickingAssignmentStatusResolver = {\n async myPickingAssignmentStatus(_parentObj: void, _params: void, context: any): Promise<AssignmentStatusType> {\n const { domain, user }: { domain: Domain; user: User } = context.state\n\n const pickingWorksheets: Worksheet[] = await getRepository(Worksheet).find({\n where: { domain, assignee: user, status: In([WORKSHEET_STATUS.DEACTIVATED, WORKSHEET_STATUS.EXECUTING]) }\n })\n\n return (pickingWorksheets || []).reduce(\n (assignmentStatus: AssignmentStatusType, worksheet: Worksheet) => {\n if (worksheet.status === WORKSHEET_STATUS.DEACTIVATED) assignmentStatus.pending.push(worksheet)\n if (worksheet.status === WORKSHEET_STATUS.EXECUTING) assignmentStatus.picking.push(worksheet)\n return assignmentStatus\n },\n { userId: user.id, pending: [], picking: [] }\n )\n }\n}\n"]}
1
+ {"version":3,"file":"my-picking-assignment-status.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.ts"],"names":[],"mappings":";;;AAAA,qCAA4B;AAE5B,iDAAqD;AAErD,qDAAwD;AACxD,mDAAgD;AAInC,QAAA,iCAAiC,GAAG;IAC/C,KAAK,CAAC,yBAAyB,CAC7B,UAAgB,EAChB,OAAa,EACb,OAAwB;QAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEtC,MAAM,iBAAiB,GAAgB,MAAM,IAAA,qBAAa,EAAC,oBAAS,CAAC,CAAC,IAAI,CAAC;YACzE,KAAK,EAAE;gBACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;gBACzB,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE;gBACzB,MAAM,EAAE,IAAA,YAAE,EAAC,CAAC,4BAAgB,CAAC,WAAW,EAAE,4BAAgB,CAAC,SAAS,CAAC,CAAC;aACvE;SACF,CAAC,CAAA;QAEF,OAAO,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,MAAM,CACrC,CAAC,gBAAsC,EAAE,SAAoB,EAAE,EAAE;YAC/D,IAAI,SAAS,CAAC,MAAM,KAAK,4BAAgB,CAAC,WAAW;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC/F,IAAI,SAAS,CAAC,MAAM,KAAK,4BAAgB,CAAC,SAAS;gBAAE,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7F,OAAO,gBAAgB,CAAA;QACzB,CAAC,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC9C,CAAA;IACH,CAAC;CACF,CAAA","sourcesContent":["import { In } from 'typeorm'\n\nimport { getRepository } from '@things-factory/shell'\n\nimport { WORKSHEET_STATUS } from '../../../../constants'\nimport { Worksheet } from '../../../../entities'\n\ntype AssignmentStatusType = { userId: string; pending?: Worksheet[]; picking: Worksheet[] }\n\nexport const myPickingAssignmentStatusResolver = {\n async myPickingAssignmentStatus(\n _parentObj: void,\n _params: void,\n context: ResolverContext\n ): Promise<AssignmentStatusType> {\n const { domain, user } = context.state\n\n const pickingWorksheets: Worksheet[] = await getRepository(Worksheet).find({\n where: {\n domain: { id: domain.id },\n assignee: { id: user.id },\n status: In([WORKSHEET_STATUS.DEACTIVATED, WORKSHEET_STATUS.EXECUTING])\n }\n })\n\n return (pickingWorksheets || []).reduce(\n (assignmentStatus: AssignmentStatusType, worksheet: Worksheet) => {\n if (worksheet.status === WORKSHEET_STATUS.DEACTIVATED) assignmentStatus.pending.push(worksheet)\n if (worksheet.status === WORKSHEET_STATUS.EXECUTING) assignmentStatus.picking.push(worksheet)\n return assignmentStatus\n },\n { userId: user.id, pending: [], picking: [] }\n )\n }\n}\n"]}
@@ -1,34 +1,45 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.pickingAssignmentStatusByUsersResolver = void 0;
4
- const auth_base_1 = require("@things-factory/auth-base");
5
4
  const typeorm_1 = require("typeorm");
5
+ const auth_base_1 = require("@things-factory/auth-base");
6
+ const shell_1 = require("@things-factory/shell");
6
7
  const constants_1 = require("../../../../constants");
7
8
  const entities_1 = require("../../../../entities");
8
9
  exports.pickingAssignmentStatusByUsersResolver = {
9
10
  async pickingAssignmentStatusByUsers(_, params, context) {
10
11
  const { domain } = context.state;
11
- const nameFilter = params.filters.find(p => { return p.name == "name"; });
12
- const emailFilter = params.filters.find(p => { return p.name == "email"; });
13
- const roleFilter = params.filters.find(p => { return p.name == 'roles'; });
14
- const pendingSorter = params.sortings.find(p => { return p.name == 'pending'; });
15
- const pickingSorter = params.sortings.find(p => { return p.name == 'picking'; });
16
- const getUserInfoQb = await (0, typeorm_1.getRepository)(auth_base_1.User).createQueryBuilder('u');
12
+ const nameFilter = params.filters.find(p => {
13
+ return p.name == 'name';
14
+ });
15
+ const emailFilter = params.filters.find(p => {
16
+ return p.name == 'email';
17
+ });
18
+ const roleFilter = params.filters.find(p => {
19
+ return p.name == 'roles';
20
+ });
21
+ const pendingSorter = params.sortings.find(p => {
22
+ return p.name == 'pending';
23
+ });
24
+ const pickingSorter = params.sortings.find(p => {
25
+ return p.name == 'picking';
26
+ });
27
+ const getUserInfoQb = await (0, shell_1.getRepository)(auth_base_1.User).createQueryBuilder('u');
17
28
  getUserInfoQb.select('u.id');
18
29
  getUserInfoQb.addSelect('u.name');
19
30
  getUserInfoQb.addSelect('u.email');
20
31
  getUserInfoQb.addSelect("string_agg(r.name,', ') as roles");
21
32
  getUserInfoQb.innerJoin('u.roles', 'r');
22
33
  getUserInfoQb.where('r.domain_id = :domainId', { domainId: domain.id });
23
- roleFilter ? getUserInfoQb.andWhere('r.name ilike :userRole', { userRole: `%${roleFilter.value}%` }) : "";
24
- nameFilter ? getUserInfoQb.andWhere('u.name ilike :userName', { userName: `%${nameFilter.value}%` }) : "";
25
- emailFilter ? getUserInfoQb.andWhere('u.email ilike :userEmail', { userEmail: `%${emailFilter.value}%` }) : "";
34
+ roleFilter ? getUserInfoQb.andWhere('r.name ilike :userRole', { userRole: `%${roleFilter.value}%` }) : '';
35
+ nameFilter ? getUserInfoQb.andWhere('u.name ilike :userName', { userName: `%${nameFilter.value}%` }) : '';
36
+ emailFilter ? getUserInfoQb.andWhere('u.email ilike :userEmail', { userEmail: `%${emailFilter.value}%` }) : '';
26
37
  getUserInfoQb.andWhere('r.name not ilike :userR', { userR: `%CLIENT%` });
27
- getUserInfoQb.andWhere('u.user_type = :userType', { userType: "user" });
38
+ getUserInfoQb.andWhere('u.user_type = :userType', { userType: 'user' });
28
39
  getUserInfoQb.groupBy('u.id');
29
40
  getUserInfoQb.addGroupBy('u.name');
30
41
  getUserInfoQb.addGroupBy('u.email');
31
- const getAssignedWSQb = await (0, typeorm_1.getRepository)(entities_1.Worksheet).createQueryBuilder('ws');
42
+ const getAssignedWSQb = await (0, shell_1.getRepository)(entities_1.Worksheet).createQueryBuilder('ws');
32
43
  getAssignedWSQb.select('ws.assignee_id');
33
44
  getAssignedWSQb.addSelect('u.name');
34
45
  getAssignedWSQb.addSelect("sum(case when ws.status='EXECUTING' then 1 else 0 end) as picking");
@@ -36,7 +47,9 @@ exports.pickingAssignmentStatusByUsersResolver = {
36
47
  getAssignedWSQb.innerJoin('ws.assignee', 'u');
37
48
  getAssignedWSQb.where('ws.domain_id = :id', { id: domain.id });
38
49
  getAssignedWSQb.andWhere('ws.type IN (:...type)', { type: [constants_1.WORKSHEET_TYPE.PICKING, constants_1.WORKSHEET_TYPE.BATCH_PICKING] });
39
- getAssignedWSQb.andWhere('ws.status IN (:...status)', { status: [constants_1.WORKSHEET_STATUS.DEACTIVATED, constants_1.WORKSHEET_STATUS.EXECUTING] });
50
+ getAssignedWSQb.andWhere('ws.status IN (:...status)', {
51
+ status: [constants_1.WORKSHEET_STATUS.DEACTIVATED, constants_1.WORKSHEET_STATUS.EXECUTING]
52
+ });
40
53
  getAssignedWSQb.groupBy('ws.assignee_id');
41
54
  getAssignedWSQb.addGroupBy('u.name');
42
55
  (pendingSorter === null || pendingSorter === void 0 ? void 0 : pendingSorter.desc) ? getAssignedWSQb.orderBy('pending', 'DESC') : '';
@@ -50,12 +63,16 @@ exports.pickingAssignmentStatusByUsersResolver = {
50
63
  combineQb.select('u.*');
51
64
  combineQb.addSelect('coalesce(ws.picking, 0) as picking');
52
65
  combineQb.addSelect('coalesce(ws.pending, 0) as pending');
53
- combineQb.from("(" + getUserInfoQb.getQuery() + ")", "u");
54
- combineQb.leftJoin("(" + getAssignedWSQb.getQuery() + ")", "ws", ' ws.assignee_id = u.u_id');
66
+ combineQb.from('(' + getUserInfoQb.getQuery() + ')', 'u');
67
+ combineQb.leftJoin('(' + getAssignedWSQb.getQuery() + ')', 'ws', ' ws.assignee_id = u.u_id');
55
68
  combineQb.setParameters(combineParams);
56
69
  const combineInfo = await combineQb.getRawMany();
57
70
  return combineInfo.map(itm => {
58
- return { user: { id: itm.u_id, email: itm.u_email, name: itm.u_name, description: itm.roles }, pending: itm.pending, picking: itm.picking };
71
+ return {
72
+ user: { id: itm.u_id, email: itm.u_email, name: itm.u_name, description: itm.roles },
73
+ pending: itm.pending,
74
+ picking: itm.picking
75
+ };
59
76
  });
60
77
  }
61
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"picking-assignment-status-by-user.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.ts"],"names":[],"mappings":"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","sourcesContent":["import { getDomainUsers, User, Role } from '@things-factory/auth-base'\nimport { Domain, ListParam, buildQuery, Sorting} from '@things-factory/shell'\nimport { FindManyOptions, getRepository, ILike, In, EntityManager, getManager, SelectQueryBuilder } from 'typeorm'\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'\nimport { Worksheet } from '../../../../entities'\n\ntype AssignmentStatusByUserType = { user: User; pending?: String; picking?: String }\n\nexport const pickingAssignmentStatusByUsersResolver = {\n async pickingAssignmentStatusByUsers(\n _: void,\n params: ListParam,\n context: any\n ): Promise<AssignmentStatusByUserType[]> {\n \n const { domain }: { domain: Domain } = context.state\n\n const nameFilter = params.filters.find(p=>{return p.name == \"name\"});\n const emailFilter = params.filters.find(p=>{return p.name == \"email\"});\n const roleFilter = params.filters.find(p=>{return p.name == 'roles'});\n\n const pendingSorter = params.sortings.find(p=>{return p.name == 'pending'});\n const pickingSorter = params.sortings.find(p=>{return p.name == 'picking'});\n\n\n\n const getUserInfoQb:SelectQueryBuilder<User> = await getRepository(User).createQueryBuilder('u')\n\n getUserInfoQb.select('u.id')\n getUserInfoQb.addSelect('u.name')\n getUserInfoQb.addSelect('u.email')\n getUserInfoQb.addSelect(\"string_agg(r.name,', ') as roles\")\n getUserInfoQb.innerJoin('u.roles','r')\n getUserInfoQb.where('r.domain_id = :domainId',{domainId:domain.id})\n roleFilter? getUserInfoQb.andWhere('r.name ilike :userRole', { userRole: `%${roleFilter.value}%` }) :\"\"\n nameFilter? getUserInfoQb.andWhere('u.name ilike :userName', { userName: `%${nameFilter.value}%` }) :\"\"\n emailFilter? getUserInfoQb.andWhere('u.email ilike :userEmail', { userEmail: `%${emailFilter.value}%` }) :\"\"\n getUserInfoQb.andWhere('r.name not ilike :userR',{userR:`%CLIENT%`})\n getUserInfoQb.andWhere('u.user_type = :userType',{userType:\"user\"})\n getUserInfoQb.groupBy('u.id')\n getUserInfoQb.addGroupBy('u.name')\n getUserInfoQb.addGroupBy('u.email')\n\n const getAssignedWSQb = await getRepository(Worksheet).createQueryBuilder('ws')\n\n getAssignedWSQb.select('ws.assignee_id')\n getAssignedWSQb.addSelect('u.name')\n getAssignedWSQb.addSelect(\"sum(case when ws.status='EXECUTING' then 1 else 0 end) as picking\")\n getAssignedWSQb.addSelect(\"sum(case when ws.status='DEACTIVATED' then 1 else 0 end) as pending\")\n getAssignedWSQb.innerJoin('ws.assignee','u')\n getAssignedWSQb.where('ws.domain_id = :id',{id:domain.id})\n getAssignedWSQb.andWhere('ws.type IN (:...type)', {type: [WORKSHEET_TYPE.PICKING, WORKSHEET_TYPE.BATCH_PICKING]})\n getAssignedWSQb.andWhere('ws.status IN (:...status)', {status: [WORKSHEET_STATUS.DEACTIVATED, WORKSHEET_STATUS.EXECUTING]})\n getAssignedWSQb.groupBy('ws.assignee_id')\n getAssignedWSQb.addGroupBy('u.name')\n pendingSorter?.desc ? getAssignedWSQb.orderBy('pending','DESC') : ''\n pickingSorter?.desc ? getAssignedWSQb.orderBy('picking','DESC') : ''\n pickingSorter && Object.keys(pickingSorter).length == 1 ?getAssignedWSQb.orderBy('picking','ASC') : ''\n pendingSorter && Object.keys(pendingSorter).length == 1 ? getAssignedWSQb.orderBy('pending','ASC') : ''\n\n\n const parameter1= getUserInfoQb.getParameters()\n const parameter2 = getAssignedWSQb.getParameters()\n\n const combineParams = Object.assign(parameter1, parameter2)\n \n const combineQb = getManager().createQueryBuilder()\n\n combineQb.select('u.*')\n combineQb.addSelect('coalesce(ws.picking, 0) as picking')\n combineQb.addSelect('coalesce(ws.pending, 0) as pending')\n combineQb.from(\"(\" + getUserInfoQb.getQuery() + \")\",\"u\")\n combineQb.leftJoin(\"(\" + getAssignedWSQb.getQuery() + \")\",\"ws\",' ws.assignee_id = u.u_id')\n combineQb.setParameters(combineParams)\n \n const combineInfo = await combineQb.getRawMany()\n\n return combineInfo.map(itm => {\n return { user: { id:itm.u_id,email:itm.u_email,name:itm.u_name, description: itm.roles },pending:itm.pending,picking:itm.picking }\n })\n }\n}\n"]}
1
+ {"version":3,"file":"picking-assignment-status-by-user.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.ts"],"names":[],"mappings":"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","sourcesContent":["import { getManager, SelectQueryBuilder } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { getRepository, ListParam } from '@things-factory/shell'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'\nimport { Worksheet } from '../../../../entities'\n\ntype AssignmentStatusByUserType = { user: User; pending?: String; picking?: String }\n\nexport const pickingAssignmentStatusByUsersResolver = {\n async pickingAssignmentStatusByUsers(\n _: void,\n params: ListParam,\n context: any\n ): Promise<AssignmentStatusByUserType[]> {\n const { domain } = context.state\n\n const nameFilter = params.filters.find(p => {\n return p.name == 'name'\n })\n const emailFilter = params.filters.find(p => {\n return p.name == 'email'\n })\n const roleFilter = params.filters.find(p => {\n return p.name == 'roles'\n })\n\n const pendingSorter = params.sortings.find(p => {\n return p.name == 'pending'\n })\n const pickingSorter = params.sortings.find(p => {\n return p.name == 'picking'\n })\n\n const getUserInfoQb: SelectQueryBuilder<User> = await getRepository(User).createQueryBuilder('u')\n\n getUserInfoQb.select('u.id')\n getUserInfoQb.addSelect('u.name')\n getUserInfoQb.addSelect('u.email')\n getUserInfoQb.addSelect(\"string_agg(r.name,', ') as roles\")\n getUserInfoQb.innerJoin('u.roles', 'r')\n getUserInfoQb.where('r.domain_id = :domainId', { domainId: domain.id })\n roleFilter ? getUserInfoQb.andWhere('r.name ilike :userRole', { userRole: `%${roleFilter.value}%` }) : ''\n nameFilter ? getUserInfoQb.andWhere('u.name ilike :userName', { userName: `%${nameFilter.value}%` }) : ''\n emailFilter ? getUserInfoQb.andWhere('u.email ilike :userEmail', { userEmail: `%${emailFilter.value}%` }) : ''\n getUserInfoQb.andWhere('r.name not ilike :userR', { userR: `%CLIENT%` })\n getUserInfoQb.andWhere('u.user_type = :userType', { userType: 'user' })\n getUserInfoQb.groupBy('u.id')\n getUserInfoQb.addGroupBy('u.name')\n getUserInfoQb.addGroupBy('u.email')\n\n const getAssignedWSQb = await getRepository(Worksheet).createQueryBuilder('ws')\n\n getAssignedWSQb.select('ws.assignee_id')\n getAssignedWSQb.addSelect('u.name')\n getAssignedWSQb.addSelect(\"sum(case when ws.status='EXECUTING' then 1 else 0 end) as picking\")\n getAssignedWSQb.addSelect(\"sum(case when ws.status='DEACTIVATED' then 1 else 0 end) as pending\")\n getAssignedWSQb.innerJoin('ws.assignee', 'u')\n getAssignedWSQb.where('ws.domain_id = :id', { id: domain.id })\n getAssignedWSQb.andWhere('ws.type IN (:...type)', { type: [WORKSHEET_TYPE.PICKING, WORKSHEET_TYPE.BATCH_PICKING] })\n getAssignedWSQb.andWhere('ws.status IN (:...status)', {\n status: [WORKSHEET_STATUS.DEACTIVATED, WORKSHEET_STATUS.EXECUTING]\n })\n getAssignedWSQb.groupBy('ws.assignee_id')\n getAssignedWSQb.addGroupBy('u.name')\n pendingSorter?.desc ? getAssignedWSQb.orderBy('pending', 'DESC') : ''\n pickingSorter?.desc ? getAssignedWSQb.orderBy('picking', 'DESC') : ''\n pickingSorter && Object.keys(pickingSorter).length == 1 ? getAssignedWSQb.orderBy('picking', 'ASC') : ''\n pendingSorter && Object.keys(pendingSorter).length == 1 ? getAssignedWSQb.orderBy('pending', 'ASC') : ''\n\n const parameter1 = getUserInfoQb.getParameters()\n const parameter2 = getAssignedWSQb.getParameters()\n\n const combineParams = Object.assign(parameter1, parameter2)\n\n const combineQb = getManager().createQueryBuilder()\n\n combineQb.select('u.*')\n combineQb.addSelect('coalesce(ws.picking, 0) as picking')\n combineQb.addSelect('coalesce(ws.pending, 0) as pending')\n combineQb.from('(' + getUserInfoQb.getQuery() + ')', 'u')\n combineQb.leftJoin('(' + getAssignedWSQb.getQuery() + ')', 'ws', ' ws.assignee_id = u.u_id')\n combineQb.setParameters(combineParams)\n\n const combineInfo = await combineQb.getRawMany()\n\n return combineInfo.map(itm => {\n return {\n user: { id: itm.u_id, email: itm.u_email, name: itm.u_name, description: itm.roles },\n pending: itm.pending,\n picking: itm.picking\n } as any\n })\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"picking.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/picking.ts"],"names":[],"mappings":";;;AAGA,yDAAoE;AAEvD,QAAA,eAAe,GAAG;IAC7B,KAAK,CAAC,OAAO,CACX,CAAM,EACN,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,EAC7G,OAAY;QAEZ,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,OAAO,CACX,EAAE,EACF,MAAM,EACN,IAAI,EACJ,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,CACP,CAAA;IACH,CAAC;CACF,CAAA;AAEM,KAAK,UAAU,OAAO,CAC3B,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,mBAA2B,EAC3B,aAAqB,EACrB,QAAgB,EAChB,YAAoB,EACpB,UAAkB,EAClB,WAAoB,EACpB,YAAqB,EACrB,MAAe;IAEf,MAAM,mBAAmB,GAA+B,IAAI,wCAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACxG,MAAM,mBAAmB,CAAC,OAAO,CAC/B,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,CACP,CAAA;AACH,CAAC;AAxBD,0BAwBC","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\nimport { EntityManager } from 'typeorm'\nimport { PickingWorksheetController } from '../../../../controllers'\n\nexport const pickingResolver = {\n async picking(\n _: any,\n { worksheetDetailName, worksheetType, palletId, locationName, releaseQty, binLocation, serialNumber, toteNo },\n context: any\n ) {\n const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state\n await picking(\n tx,\n domain,\n user,\n worksheetDetailName,\n worksheetType,\n palletId,\n locationName,\n releaseQty,\n binLocation,\n serialNumber,\n toteNo\n )\n }\n}\n\nexport async function picking(\n tx: EntityManager,\n domain: Domain,\n user: User,\n worksheetDetailName: string,\n worksheetType: string,\n palletId: string,\n locationName: string,\n releaseQty: number,\n binLocation?: string,\n serialNumber?: string,\n toteNo?: string\n) {\n const worksheetController: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)\n await worksheetController.picking(\n worksheetDetailName,\n worksheetType,\n palletId,\n locationName,\n releaseQty,\n binLocation,\n serialNumber,\n toteNo\n )\n}\n"]}
1
+ {"version":3,"file":"picking.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/picking/picking.ts"],"names":[],"mappings":";;;AAKA,yDAAoE;AAEvD,QAAA,eAAe,GAAG;IAC7B,KAAK,CAAC,OAAO,CACX,CAAM,EACN,EAAE,mBAAmB,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,EAC7G,OAAY;QAEZ,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,OAAO,CACX,EAAE,EACF,MAAM,EACN,IAAI,EACJ,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,CACP,CAAA;IACH,CAAC;CACF,CAAA;AAEM,KAAK,UAAU,OAAO,CAC3B,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,mBAA2B,EAC3B,aAAqB,EACrB,QAAgB,EAChB,YAAoB,EACpB,UAAkB,EAClB,WAAoB,EACpB,YAAqB,EACrB,MAAe;IAEf,MAAM,mBAAmB,GAA+B,IAAI,wCAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IACxG,MAAM,mBAAmB,CAAC,OAAO,CAC/B,mBAAmB,EACnB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,WAAW,EACX,YAAY,EACZ,MAAM,CACP,CAAA;AACH,CAAC;AAxBD,0BAwBC","sourcesContent":["import { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { PickingWorksheetController } from '../../../../controllers'\n\nexport const pickingResolver = {\n async picking(\n _: any,\n { worksheetDetailName, worksheetType, palletId, locationName, releaseQty, binLocation, serialNumber, toteNo },\n context: any\n ) {\n const { tx, domain, user } = context.state\n await picking(\n tx,\n domain,\n user,\n worksheetDetailName,\n worksheetType,\n palletId,\n locationName,\n releaseQty,\n binLocation,\n serialNumber,\n toteNo\n )\n }\n}\n\nexport async function picking(\n tx: EntityManager,\n domain: Domain,\n user: User,\n worksheetDetailName: string,\n worksheetType: string,\n palletId: string,\n locationName: string,\n releaseQty: number,\n binLocation?: string,\n serialNumber?: string,\n toteNo?: string\n) {\n const worksheetController: PickingWorksheetController = new PickingWorksheetController(tx, domain, user)\n await worksheetController.picking(\n worksheetDetailName,\n worksheetType,\n palletId,\n locationName,\n releaseQty,\n binLocation,\n serialNumber,\n toteNo\n )\n}\n"]}