@things-factory/worksheet-base 5.0.12 → 6.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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 +1 @@
1
- {"version":3,"file":"render-po.js","sourceRoot":"","sources":["../../server/controllers/render-po.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { getRepository, SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { InvoiceProduct, ReleaseGood, PurchaseOrder, PurchaseOrderOtherCharge, OrderProduct } from '@things-factory/sales-base'\n\nimport { Domain } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE } from '../constants'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderPO({ req, timezoneOffSet }, context: any) {\n try {\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n let result = await Promise.all(\n req.poIds.map(async poId => {\n try {\n const qb: SelectQueryBuilder<PurchaseOrder> = await getRepository(PurchaseOrder)\n .createQueryBuilder('po')\n .innerJoinAndSelect('po.domain', 'domain')\n .innerJoinAndSelect('po.bizplace', 'bizplace')\n .innerJoinAndSelect('bizplace.domain', 'bizplace_domain')\n .innerJoinAndSelect('bizplace.company', 'company')\n .innerJoinAndSelect('company.domain', 'company_domain')\n .leftJoinAndSelect('contact_points', 'cp', 'po.supplier_id = cp.id')\n .where('po.id = :poId')\n .andWhere('po.domain = :domainId')\n .setParameters({ poId, domainId: domain.id })\n\n let record: any = await qb.getRawOne()\n\n if (record) {\n const partnerBiz: Partial<Bizplace> = {\n id: record.bizplace_id,\n name: record.bizplace_name,\n address: record.bizplace_address,\n domain: { id: record.bizplace_domain_id }\n }\n\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: partnerBiz.domain, category: TEMPLATE_TYPE.PO_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: partnerBiz.domain,\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n const poocQb: SelectQueryBuilder<PurchaseOrderOtherCharge> = await getRepository(PurchaseOrderOtherCharge)\n .createQueryBuilder('pooc')\n .where('pooc.purchase_order_id = :poId')\n .andWhere('pooc.apply_in_items = false')\n .setParameters({ poId })\n\n let poOtherCharges: any[] = await poocQb.getRawMany()\n\n\n const qb: SelectQueryBuilder<OrderProduct> = await getRepository(OrderProduct)\n .createQueryBuilder('op')\n .innerJoin('domains', 'd', 'op.domain_id = d.id')\n .leftJoinAndSelect('purchase_orders', 'po', 'po.id = op.purchase_order_id')\n .leftJoinAndSelect('products', 'p', 'op.product_id = p.id')\n .where('op.purchase_order_id = :poId')\n .andWhere('op.domain = :domainId')\n .setParameters({ poId, domainId: domain.id })\n\n let items: any[] = await qb.getRawMany()\n\n const product_list = items.map((item, idx) => {\n return {\n list_no: idx + 1,\n product_sku: item.p_sku,\n product_name: item.p_name,\n product_desc: item.p_description,\n product_qty: item.op_pack_qty,\n product_uom: item.op_uom,\n product_other_charges: item.ip_other_charges,\n product_unit_price: (item.op_unit_price).toFixed(2),\n product_total_price: ((((item.op_unit_price || 0) * item.op_pack_qty) - (item.op_discount_amt || 0)) * (1 + (item.op_tax_rate / 100))).toFixed(2),\n product_tax_rate: item.op_tax_rate,\n product_disc_amt: item.op_discount_amt\n }\n })\n\n\n let date = DateTimeConverter.date(new Date(record.po_created_at - timezoneOffSet))\n let eta = DateTimeConverter.date(new Date(record.po_eta_date))\n\n let subtotal = getRoundedValue(\n product_list.reduce((init, item) => {\n return (init += parseFloat(item.product_total_price))\n }, 0) || 0\n )\n\n const data = {\n logo_url: logo,\n company_name: record.company_description,\n company_address: record.company_address,\n company_postal_code: record.company_postal_code,\n po_number: record.po_name,\n po_order_date: date,\n po_delivery_date: eta,\n ref_no: record.po_ref_no,\n cp_company_name: record.cp_company_name,\n cp_address: record.cp_address2 ? [record.cp_address, record.cp_address2].join(', ') : record.cp_address,\n cp_contact_name: record.cp_name,\n cp_email: record.cp_email,\n cp_phone_number: record.cp_phone,\n product_list,\n charges_list: [\n {\n field: 'SUBTOTAL', value: subtotal.toFixed(2)\n },\n ...poOtherCharges.map(itm => { return { field: itm.pooc_name.toUpperCase(), value: itm.pooc_total_amt.toFixed(2) } }),\n {\n field: 'TOTAL', value: (poOtherCharges.reduce((init, item) => {\n return init += (item.pooc_total_amt)\n }, subtotal) || 0).toFixed(2),\n },\n ]\n }\n\n const formData = new FormData()\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n }\n return null\n } catch (ex) {\n return null\n }\n })\n )\n\n if (result.filter(x => x != null).length <= 0) {\n throw Error('No purchase order found!')\n }\n\n return result.join()\n } catch (ex) {\n throw ex\n }\n}\n\nfunction getRoundedValue(value = 0) {\n return Math.round((value + Number.EPSILON) * 100) / 100\n}\n"]}
1
+ {"version":3,"file":"render-po.js","sourceRoot":"","sources":["../../server/controllers/render-po.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { SelectQueryBuilder } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { OrderProduct, PurchaseOrder, PurchaseOrderOtherCharge } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE } from '../constants'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderPO({ req, timezoneOffSet }, context: ResolverContext) {\n try {\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n let result = await Promise.all(\n req.poIds.map(async poId => {\n try {\n const qb: SelectQueryBuilder<PurchaseOrder> = await getRepository(PurchaseOrder)\n .createQueryBuilder('po')\n .innerJoinAndSelect('po.domain', 'domain')\n .innerJoinAndSelect('po.bizplace', 'bizplace')\n .innerJoinAndSelect('bizplace.domain', 'bizplace_domain')\n .innerJoinAndSelect('bizplace.company', 'company')\n .innerJoinAndSelect('company.domain', 'company_domain')\n .leftJoinAndSelect('contact_points', 'cp', 'po.supplier_id = cp.id')\n .leftJoinAndSelect('arrival_notices', 'an', 'an.purchase_order_id = po.id')\n .where('po.id = :poId')\n .andWhere('po.domain = :domainId')\n .setParameters({ poId, domainId: domain.id })\n\n let record: any = await qb.getRawOne()\n\n if (record) {\n const partnerBiz: Partial<Bizplace> = {\n id: record.bizplace_id,\n name: record.bizplace_name,\n address: record.bizplace_address,\n domain: { id: record.bizplace_domain_id }\n }\n\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: partnerBiz.domain, category: TEMPLATE_TYPE.PO_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: partnerBiz.domain,\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n const poocQb: SelectQueryBuilder<PurchaseOrderOtherCharge> = getRepository(PurchaseOrderOtherCharge)\n .createQueryBuilder('pooc')\n .where('pooc.purchase_order_id = :poId')\n .andWhere('pooc.apply_in_items = false')\n .setParameters({ poId })\n\n let poOtherCharges: any[] = await poocQb.getRawMany()\n\n const qb: SelectQueryBuilder<OrderProduct> = getRepository(OrderProduct)\n .createQueryBuilder('op')\n .innerJoin('domains', 'd', 'op.domain_id = d.id')\n .innerJoinAndSelect('purchase_orders', 'po', 'po.id = op.purchase_order_id')\n .innerJoinAndSelect('products', 'p', 'op.product_id = p.id')\n .where('op.purchase_order_id = :poId')\n .andWhere('op.domain = :domainId')\n .setParameters({ poId, domainId: domain.id })\n .orderBy('p.sku')\n\n let items: any[] = await qb.getRawMany()\n\n const product_list = items.map((item, idx) => {\n return {\n list_no: idx + 1,\n product_sku: item.p_sku,\n product_name: item.p_name,\n product_desc: item.p_description,\n product_remark: item.op_remark,\n product_qty: item.op_pack_qty,\n product_uom: item.op_uom,\n product_other_charges: item.ip_other_charges,\n product_unit_price: item.op_unit_price.toFixed(2),\n product_total_price: (\n ((item.op_unit_price || 0) * item.op_pack_qty - (item.op_discount_amt || 0)) *\n (1 + item.op_tax_rate / 100)\n ).toFixed(2),\n product_tax_rate: item.op_tax_rate,\n product_disc_amt: item.op_discount_amt,\n ref_no: record.po_ref_no\n }\n })\n\n let date = DateTimeConverter.date(new Date(record.po_created_at - timezoneOffSet))\n let eta = DateTimeConverter.date(new Date(record.po_eta_date))\n\n let subtotal = getRoundedValue(\n product_list.reduce((init, item) => {\n return (init += parseFloat(item.product_total_price))\n }, 0) || 0\n )\n\n const data = {\n logo_url: logo,\n company_name: record.company_description,\n company_address: record.company_address,\n company_postal_code: record.company_postal_code,\n an_name: record.an_name,\n po_number: record.po_name,\n po_order_date: date,\n po_delivery_date: eta,\n ref_no: record.po_ref_no,\n cp_company_name: record.cp_company_name,\n cp_address: record.cp_address2 ? [record.cp_address, record.cp_address2].join(', ') : record.cp_address,\n cp_contact_name: record.cp_name,\n cp_email: record.cp_email,\n cp_phone_number: record.cp_phone,\n product_list,\n charges_list: [\n {\n field: 'SUBTOTAL',\n value: subtotal.toFixed(2)\n },\n ...poOtherCharges.map(itm => {\n return { field: itm.pooc_name.toUpperCase(), value: itm.pooc_total_amt.toFixed(2) }\n }),\n {\n field: 'TOTAL',\n value: (\n poOtherCharges.reduce((init, item) => {\n return (init += item.pooc_total_amt)\n }, subtotal) || 0\n ).toFixed(2)\n }\n ]\n }\n\n const formData = new FormData()\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n }\n return null\n } catch (ex) {\n return null\n }\n })\n )\n\n if (result.filter(x => x != null).length <= 0) {\n throw Error('No purchase order found!')\n }\n\n return result.join()\n } catch (ex) {\n throw ex\n }\n}\n\nfunction getRoundedValue(value = 0) {\n return Math.round((value + Number.EPSILON) * 100) / 100\n}\n"]}
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.renderRODO = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
6
5
  const form_data_1 = tslib_1.__importDefault(require("form-data"));
7
6
  const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
8
7
  const typeorm_1 = require("typeorm");
@@ -13,17 +12,17 @@ const env_1 = require("@things-factory/env");
13
12
  const sales_base_1 = require("@things-factory/sales-base");
14
13
  const shell_1 = require("@things-factory/shell");
15
14
  const warehouse_base_1 = require("@things-factory/warehouse-base");
16
- const warehouse_base_2 = require("@things-factory/warehouse-base");
17
15
  const constants_1 = require("../constants");
18
16
  const entities_1 = require("../entities");
19
17
  const datetime_util_1 = require("../utils/datetime-util");
20
18
  const REPORT_API_URL = env_1.config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html');
21
19
  async function renderRODO({ doNo }, context) {
22
- const domain = await (0, typeorm_1.getRepository)(shell_1.Domain).findOne({
20
+ const { user, tx } = context.state;
21
+ const domain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({
23
22
  where: { id: context.state.domain.id }
24
23
  }); //.. find domain
25
- const foundDO = await (0, typeorm_1.getRepository)(sales_base_1.DeliveryOrder).findOne({
26
- where: { domain, name: doNo },
24
+ const foundDO = await (0, shell_1.getRepository)(sales_base_1.DeliveryOrder).findOne({
25
+ where: { domain: { id: domain.id }, name: doNo },
27
26
  relations: [
28
27
  'domain',
29
28
  'bizplace',
@@ -39,68 +38,88 @@ async function renderRODO({ doNo }, context) {
39
38
  const ownTransportFlag = foundDO.ownCollection;
40
39
  let foundCP = null;
41
40
  if (foundDO === null || foundDO === void 0 ? void 0 : foundDO.contactPointRefId) {
42
- foundCP = await (0, typeorm_1.getRepository)(biz_base_1.ContactPoint).findOne({
43
- where: { domain, id: foundDO.contactPointRefId }
41
+ foundCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
42
+ where: { domain: { id: domain.id }, id: foundDO.contactPointRefId }
44
43
  });
45
44
  }
46
45
  const foundRO = foundDO.releaseGood;
47
46
  const partnerBiz = foundDO.bizplace; //customer bizplace
48
47
  const ownRefNo = foundRO.refNo;
49
- let foundInventoryItem = await (0, typeorm_1.getRepository)(warehouse_base_2.InventoryItem).query(`select row_number() over (partition by p.sku) as "seq",p.sku,p.brand_sku, ii.serial_number from inventory_items ii left join products p on ii.product_id = p.id where outbound_order_id = '${foundDO.releaseGood.id}' group by p.sku,ii.serial_number,p.brand_sku`);
50
- const partnerDomain = await (0, typeorm_1.getRepository)(auth_base_1.Partner).findOne({
48
+ let foundInventoryItem;
49
+ await (0, typeorm_1.getManager)().transaction(async (trxMgr) => {
50
+ foundInventoryItem = await trxMgr.query(`
51
+ SELECT seq, CASE WHEN total_count = seq THEN seq ELSE NULL END AS max_seq,sku,brand_sku,serial_number FROM (
52
+ select row_number() over(partition by p.brand_sku ORDER BY p.brand_sku, ii.serial_number) AS "seq",
53
+ count(*) over(partition by p.brand_sku) AS total_count,
54
+ p.sku,p.brand_sku, ii.serial_number
55
+ from inventory_items ii
56
+ left join products p on ii.product_id = p.id
57
+ where outbound_order_id = $1
58
+ group by p.sku,ii.serial_number,p.brand_sku
59
+ ) src
60
+ ORDER BY sku, brand_sku, serial_number, seq
61
+ `, [foundDO.releaseGoodId]);
62
+ });
63
+ if (foundInventoryItem.length > 0) {
64
+ foundInventoryItem[0].ref_no = ownRefNo || '';
65
+ }
66
+ const partnerDomain = await (0, shell_1.getRepository)(auth_base_1.Partner).findOne({
51
67
  where: { partnerDomain: partnerBiz.domain, domain },
52
68
  relations: ['domain']
53
69
  });
54
70
  const domainOwner = partnerDomain.domain;
55
- const domainBizplace = await (0, typeorm_1.getRepository)(biz_base_1.Bizplace).findOne({
71
+ const domainBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
56
72
  where: { domain: domainOwner },
57
73
  relations: ['company']
58
74
  });
59
75
  // 5. find domain contact point
60
- const foundWarehouseCP = await (0, typeorm_1.getRepository)(biz_base_1.ContactPoint).findOne({
61
- where: { domain, bizplace: domainBizplace, type: 'WAREHOUSE' }
76
+ const foundWarehouseCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
77
+ where: { domain: { id: domain.id }, bizplace: domainBizplace, type: 'WAREHOUSE' }
62
78
  });
63
- const foundWS = await (0, typeorm_1.getRepository)(entities_1.Worksheet).findOne({
64
- where: { domain, releaseGood: foundRO },
79
+ const foundWS = await (0, shell_1.getRepository)(entities_1.Worksheet).findOne({
80
+ where: { domain: { id: domain.id }, releaseGood: foundRO },
65
81
  relations: ['updater']
66
82
  });
67
- const foundLoadingWS = await (0, typeorm_1.getRepository)(entities_1.Worksheet).findOne({
68
- where: { domain, releaseGood: foundRO, type: constants_1.WORKSHEET_TYPE.LOADING },
83
+ const foundLoadingWS = await (0, shell_1.getRepository)(entities_1.Worksheet).findOne({
84
+ where: { domain: { id: domain.id }, releaseGood: foundRO, type: constants_1.WORKSHEET_TYPE.LOADING },
69
85
  relations: ['updater']
70
86
  });
71
87
  //find reusable pallet
72
- const foundRP = await (0, typeorm_1.getRepository)(warehouse_base_1.Pallet).find({
73
- where: { domain, refOrderNo: foundRO.name }
88
+ const foundRP = await (0, shell_1.getRepository)(warehouse_base_1.Pallet).find({
89
+ where: { domain: { id: domain.id }, refOrderNo: foundRO.name }
74
90
  });
75
91
  //find list of loaded inventory
76
- const targetInventories = await (0, typeorm_1.getRepository)(sales_base_1.OrderInventory).find({
77
- where: { domain, deliveryOrder: foundDO },
92
+ const targetInventories = await (0, shell_1.getRepository)(sales_base_1.OrderInventory).find({
93
+ where: { domain: { id: domain.id }, deliveryOrder: foundDO },
78
94
  relations: ['inventory']
79
95
  });
80
96
  const orderInvIds = targetInventories.map((oi) => oi.id);
81
- const foundWSD = await (0, typeorm_1.getRepository)(entities_1.WorksheetDetail).find({
82
- where: {
83
- domain,
84
- targetInventory: (0, typeorm_1.In)(orderInvIds),
85
- type: constants_1.WORKSHEET_TYPE.LOADING,
86
- status: (0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DONE)
87
- },
88
- relations: [
89
- 'targetInventory',
90
- 'targetInventory.inventory',
91
- 'targetInventory.inventory.location',
92
- 'targetInventory.inventory.product',
93
- 'targetInventory.inventory.product.productDetails',
94
- 'targetInventory.inventory.reusablePallet',
95
- 'updater'
96
- ]
97
- });
98
- const foundTemplate = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
99
- where: { domain, category: constants_1.TEMPLATE_TYPE.DO_TEMPLATE }
97
+ const wdQb = (0, shell_1.getRepository)(entities_1.WorksheetDetail).createQueryBuilder('wd');
98
+ wdQb
99
+ .leftJoinAndSelect('wd.targetInventory', 'targetInventory')
100
+ .leftJoinAndSelect('targetInventory.inventory', 'inventory')
101
+ .leftJoinAndSelect('inventory.location', 'location')
102
+ .leftJoinAndSelect('inventory.product', 'product')
103
+ .leftJoinAndSelect('product.productDetails', 'productDetails')
104
+ .leftJoinAndSelect('inventory.reusablePallet', 'reusablePallet')
105
+ .leftJoinAndSelect('wd.domain', 'domain')
106
+ .leftJoinAndSelect('wd.creator', 'creator')
107
+ .leftJoinAndSelect('wd.updater', 'updater')
108
+ .where('wd.domain_id = :domainId', { domainId: domain.id })
109
+ .andWhere('wd.target_inventory_id IN (:...orderInvIds) ', { orderInvIds })
110
+ .andWhere('wd.type = :type ', { type: constants_1.WORKSHEET_TYPE.LOADING })
111
+ .andWhere('wd.status = :status ', { status: constants_1.WORKSHEET_STATUS.DONE })
112
+ .orderBy('product.sku')
113
+ .addOrderBy('product.name')
114
+ .addOrderBy('product.description')
115
+ .addOrderBy('inventory.batch_id');
116
+ const foundWSD = await wdQb.getMany();
117
+ const foundTemplate = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
118
+ where: { domain: { id: domain.id }, category: constants_1.TEMPLATE_TYPE.DO_TEMPLATE }
100
119
  });
101
- const foundLogo = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
120
+ const foundLogo = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
102
121
  where: {
103
- domain,
122
+ domain: { id: domain.id },
104
123
  category: constants_1.TEMPLATE_TYPE.LOGO
105
124
  }
106
125
  });
@@ -191,50 +210,6 @@ async function renderRODO({ doNo }, context) {
191
210
  });
192
211
  }
193
212
  }, []);
194
- let tempFoundInventoryItem = [];
195
- const sepProductList = productList.flatMap(p => Array.from({ length: p.product_qty }, () => (Object.assign({}, p))));
196
- sepProductList.forEach((product) => {
197
- let temp = foundInventoryItem.filter((item) => {
198
- return item.sku == product.product_sku;
199
- });
200
- if (temp.length > 1) {
201
- temp.forEach(res => {
202
- console.log(res);
203
- if (tempFoundInventoryItem.length == 0) {
204
- tempFoundInventoryItem.push(res);
205
- }
206
- else {
207
- const index = tempFoundInventoryItem.findIndex(res => res.serial_number == res.serial_number);
208
- if (!index) {
209
- tempFoundInventoryItem.push(res);
210
- }
211
- }
212
- tempFoundInventoryItem = lodash_1.default.uniqWith(tempFoundInventoryItem, lodash_1.default.isEqual);
213
- });
214
- }
215
- else {
216
- tempFoundInventoryItem.push(Object.assign({}, ...temp));
217
- }
218
- });
219
- foundInventoryItem = tempFoundInventoryItem;
220
- const filterInventoryItem = lodash_1.default.groupBy(foundInventoryItem, i => i.sku);
221
- const tempIndexArr = [];
222
- const tempTotalQuantity = [];
223
- Object.keys(filterInventoryItem).forEach(k => {
224
- const tempIndex = foundInventoryItem.findIndex(i => {
225
- return i.sku == k;
226
- });
227
- tempIndexArr.push(tempIndex);
228
- });
229
- Object.values(filterInventoryItem).forEach(k => {
230
- const tempQuantity = k.length;
231
- tempTotalQuantity.push(tempQuantity);
232
- });
233
- tempIndexArr.forEach((t, index) => {
234
- if (t >= 0)
235
- foundInventoryItem[t].totalQuantity = tempTotalQuantity[index];
236
- });
237
- foundInventoryItem[0].ref_no = ownRefNo || "";
238
213
  const data = {
239
214
  logo_url: logo,
240
215
  customer_biz: partnerBiz.name,
@@ -252,28 +227,87 @@ async function renderRODO({ doNo }, context) {
252
227
  warehouse_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,
253
228
  warehouse_fax: foundWarehouseCP ? foundWarehouseCP.fax : null,
254
229
  warehouse_email: foundWarehouseCP ? foundWarehouseCP.email : null,
255
- customer_name: foundCP ? foundCP.name : null,
256
- customer_delivery_address: foundCP ? foundCP.address : null,
257
- customer_billing_address: foundCP ? foundCP.billingAddress : null,
258
- new_billing_address: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.billingAddress) || null,
259
- new_delivery_address: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress1) || null,
260
- new_delivery_address2: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress2) || null,
261
- new_delivery_address3: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress3) || null,
262
- new_delivery_address4: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress4) || null,
263
- new_delivery_address5: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress5) || null,
264
- new_delivery_city: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.city) || null,
265
- new_delivery_state: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.state) || null,
266
- new_delivery_postal_code: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.postalCode) || null,
267
- new_delivery_country: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.country) || null,
268
- new_attention_to: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.attentionTo) || null,
269
- new_attention_company: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.attentionCompany) || null,
270
- new_phone_no: (foundRO === null || foundRO === void 0 ? void 0 : foundRO.phone1) || null,
271
- customer_phone: foundCP ? foundCP.phone : null,
230
+ customer_name: (foundCP === null || foundCP === void 0 ? void 0 : foundCP.name) ||
231
+ foundDO.attentionTo ||
232
+ foundDO.attentionCompany ||
233
+ (foundRO === null || foundRO === void 0 ? void 0 : foundRO.attentionTo) ||
234
+ (foundRO === null || foundRO === void 0 ? void 0 : foundRO.attentionCompany) ||
235
+ null,
236
+ customer_delivery_address: (foundCP === null || foundCP === void 0 ? void 0 : foundCP.address) ||
237
+ [
238
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress1,
239
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress2,
240
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress3,
241
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress4,
242
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress5,
243
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.postalCode,
244
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.city,
245
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.state,
246
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.country
247
+ ]
248
+ .filter(Boolean)
249
+ .join(', ') ||
250
+ [
251
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress1,
252
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress2,
253
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress3,
254
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress4,
255
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress5,
256
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.postalCode,
257
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.city,
258
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.state,
259
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.country
260
+ ]
261
+ .filter(Boolean)
262
+ .join(', ') ||
263
+ null,
264
+ customer_billing_address: (foundCP === null || foundCP === void 0 ? void 0 : foundCP.billingAddress) || (foundDO === null || foundDO === void 0 ? void 0 : foundDO.billingAddress) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.billingAddress) || null,
265
+ new_billing_address: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.billingAddress) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.billingAddress) || null,
266
+ new_delivery_address: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress1) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress1) || null,
267
+ new_delivery_address2: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress2) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress2) || null,
268
+ new_delivery_address3: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress3) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress3) || null,
269
+ new_delivery_address4: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress4) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress4) || null,
270
+ new_delivery_address5: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress5) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress5) || null,
271
+ new_delivery_city: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.city) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.city) || null,
272
+ new_delivery_state: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.state) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.state) || null,
273
+ new_delivery_postal_code: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.postalCode) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.postalCode) || null,
274
+ new_delivery_country: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.country) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.country) || null,
275
+ new_attention_to: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.attentionTo) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.attentionTo) || null,
276
+ new_attention_company: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.attentionCompany) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.attentionCompany) || null,
277
+ new_phone_no: (foundDO === null || foundDO === void 0 ? void 0 : foundDO.phone1) || (foundRO === null || foundRO === void 0 ? void 0 : foundRO.phone1) || null,
278
+ customer_phone: foundCP ? foundCP.phone : null || (foundDO === null || foundDO === void 0 ? void 0 : foundDO.phone1),
272
279
  customer_fax: foundCP ? foundCP.fax : null,
273
280
  customer_email: foundCP ? foundCP.email : null,
274
- customer_company: foundCP ? foundCP.companyName : null,
281
+ customer_company: foundCP ? foundCP.companyName : null || foundDO.attentionCompany,
275
282
  own_collection: ownTransportFlag ? '[SELF-COLLECTION]' : `[${domain.brandName} TRANSPORT]`,
276
- destination: foundDO.to || '',
283
+ destination: foundDO.to ||
284
+ [
285
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress1,
286
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress2,
287
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress3,
288
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress4,
289
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.deliveryAddress5,
290
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.postalCode,
291
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.city,
292
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.state,
293
+ foundDO === null || foundDO === void 0 ? void 0 : foundDO.country
294
+ ]
295
+ .filter(Boolean)
296
+ .join(', ') ||
297
+ [
298
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress1,
299
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress2,
300
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress3,
301
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress4,
302
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.deliveryAddress5,
303
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.postalCode,
304
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.city,
305
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.state,
306
+ foundRO === null || foundRO === void 0 ? void 0 : foundRO.country
307
+ ]
308
+ .filter(Boolean)
309
+ .join(', ') ||
310
+ '',
277
311
  ro_no: foundRO.name,
278
312
  ro_created_at: foundRO.createdAt ? foundRO.createdAt : '',
279
313
  ref_no: ownRefNo ? `${foundRO.name} / ${foundRO.refNo}` : `${foundRO.name}`,
@@ -304,7 +338,7 @@ async function renderRODO({ doNo }, context) {
304
338
  }),
305
339
  serialNumber: foundInventoryItem.map((item, idx) => {
306
340
  return Object.assign(Object.assign({}, item), { delivery_to: foundDO.to });
307
- })
341
+ }) || ''
308
342
  }; //.. make data from do
309
343
  const formData = new form_data_1.default();
310
344
  formData.append('template', template);
@@ -1 +1 @@
1
- {"version":3,"file":"render-ro-do.js","sourceRoot":"","sources":["../../server/controllers/render-ro-do.ts"],"names":[],"mappings":"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","sourcesContent":["import _ from 'lodash'\nimport FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { Equal, getRepository, In } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { ProductDetail } from '@things-factory/product-base'\nimport { DeliveryOrder, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\nimport { Inventory, Pallet } from '@things-factory/warehouse-base'\nimport { InventoryItem } from '@things-factory/warehouse-base'\nimport { TEMPLATE_TYPE, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet, WorksheetDetail } from '../entities'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderRODO({ doNo }, context: any) {\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n }) //.. find domain\n const foundDO: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain, name: doNo },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.company',\n 'bizplace.domain',\n 'transportDriver',\n 'transportVehicle',\n 'releaseGood',\n 'creator',\n 'updater'\n ]\n }) // .. find do from deliveryOrderId\n\n const ownTransportFlag: Boolean = foundDO.ownCollection\n\n let foundCP: ContactPoint = null\n if (foundDO?.contactPointRefId) {\n foundCP = await getRepository(ContactPoint).findOne({\n where: { domain, id: foundDO.contactPointRefId }\n })\n }\n\n const foundRO: ReleaseGood = foundDO.releaseGood\n const partnerBiz: Bizplace = foundDO.bizplace //customer bizplace\n const ownRefNo = foundRO.refNo\n\n let foundInventoryItem: InventoryItem[] = await getRepository(InventoryItem).query(\n `select row_number() over (partition by p.sku) as \"seq\",p.sku,p.brand_sku, ii.serial_number from inventory_items ii left join products p on ii.product_id = p.id where outbound_order_id = '${foundDO.releaseGood.id}' group by p.sku,ii.serial_number,p.brand_sku`\n )\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain, domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n // 5. find domain contact point\n const foundWarehouseCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain, bizplace: domainBizplace, type: 'WAREHOUSE' }\n })\n\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain, releaseGood: foundRO },\n relations: ['updater']\n })\n\n const foundLoadingWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain, releaseGood: foundRO, type: WORKSHEET_TYPE.LOADING },\n relations: ['updater']\n })\n\n //find reusable pallet\n const foundRP: Pallet[] = await getRepository(Pallet).find({\n where: { domain, refOrderNo: foundRO.name }\n })\n\n //find list of loaded inventory\n const targetInventories: OrderInventory[] = await getRepository(OrderInventory).find({\n where: { domain, deliveryOrder: foundDO },\n relations: ['inventory']\n })\n const orderInvIds: string[] = targetInventories.map((oi: any) => oi.id)\n\n const foundWSD: WorksheetDetail[] = await getRepository(WorksheetDetail).find({\n where: {\n domain,\n targetInventory: In(orderInvIds),\n type: WORKSHEET_TYPE.LOADING,\n status: Equal(WORKSHEET_STATUS.DONE)\n },\n relations: [\n 'targetInventory',\n 'targetInventory.inventory',\n 'targetInventory.inventory.location',\n 'targetInventory.inventory.product',\n 'targetInventory.inventory.product.productDetails',\n 'targetInventory.inventory.reusablePallet',\n 'updater'\n ]\n })\n\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain, category: TEMPLATE_TYPE.DO_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n let foundDriver: any = null\n if (foundDO.status !== ORDER_STATUS.READY_TO_DISPATCH) {\n if (foundDO?.ownCollection && foundDO?.otherDriver) {\n foundDriver = foundDO.otherDriver\n } else {\n foundDriver = foundDO.transportDriver.name\n }\n }\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n let productList: any[] = []\n productList = foundWSD\n .map((wsd: WorksheetDetail) => {\n const targetInventory: OrderInventory = wsd.targetInventory\n const inventory: Inventory = targetInventory.inventory\n const productDetails: ProductDetail[] = inventory.product.productDetails\n const matchedProductDetail: ProductDetail = productDetails.find(\n productDetail => productDetail.packingType === inventory.packingType\n )\n return {\n product_name: `${inventory.product.name} (${inventory.product.description})`,\n product_desc: `${inventory.product?.description || ''}`,\n product_nameOnly: `${inventory.product.name}`,\n product_sku: `${inventory.product.sku}`,\n product_type: inventory.packingType,\n product_size: matchedProductDetail ? matchedProductDetail.packingSize : inventory.packingSize,\n product_batch: inventory.batchId,\n product_batch_ref: inventory.batchIdRef,\n product_qty: targetInventory.releaseQty,\n product_weight: targetInventory.releaseWeight,\n product_gross_weight: inventory.product.grossWeight,\n product_uom_value: targetInventory.releaseUomValue,\n product_uom: inventory.uom,\n remark: targetInventory.remark,\n inventory_remark: inventory.remark,\n cross_docking: targetInventory.crossDocking,\n pallet: inventory?.reusablePallet && inventory?.reusablePallet?.name ? inventory.reusablePallet.name : ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.product_name === item.product_name &&\n newItem.product_batch === item.product_batch &&\n newItem.product_batch_ref === item.product_batch_ref &&\n newItem.cross_docking === item.cross_docking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n product_sku: item.product_sku,\n product_name: item.product_name,\n product_type: item.product_type,\n product_size: item.product_size,\n product_batch: item.product_batch,\n product_batch_ref: item.product_batch_ref,\n product_qty: item.product_qty,\n product_weight: item.product_weight,\n product_gross_weight: item.product_gross_weight,\n product_uom_value: item.product_uom_value,\n product_uom: item.product_uom,\n product_desc: item.product_desc,\n product_nameOnly: item.product_nameOnly,\n remark: item.remark,\n inventory_remark: item.inventory_remark,\n palletQty: 1,\n cross_docking: item.cross_docking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.product_name === item.product_name &&\n ni.product_batch === item.product_batch &&\n ni.product_batch_ref === item.product_batch_ref &&\n ni.cross_docking === item.cross_docking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n product_qty: ni.product_qty + item.product_qty,\n product_weight: ni.product_weight + item.product_weight,\n product_uom_value: ni.product_uom_value + item.product_uom_value\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n\n\n let tempFoundInventoryItem: any = []\n\n const sepProductList = productList.flatMap(p => Array.from({ length: p.product_qty }, () => ({ ...p })))\n\n sepProductList.forEach((product) => {\n\n let temp = foundInventoryItem.filter((item) => {\n return item.sku == product.product_sku\n })\n\n if (temp.length > 1) {\n temp.forEach(res => {\n console.log(res)\n\n if (tempFoundInventoryItem.length == 0) {\n tempFoundInventoryItem.push(res)\n } else {\n const index = tempFoundInventoryItem.findIndex(res => res.serial_number == res.serial_number)\n\n if (!index) {\n tempFoundInventoryItem.push(res)\n }\n }\n\n tempFoundInventoryItem = _.uniqWith(tempFoundInventoryItem, _.isEqual)\n })\n } else {\n tempFoundInventoryItem.push(Object.assign({}, ...temp))\n }\n })\n\n foundInventoryItem = tempFoundInventoryItem;\n\n const filterInventoryItem = _.groupBy(foundInventoryItem, i => i.sku)\n\n const tempIndexArr = []\n\n const tempTotalQuantity = []\n\n Object.keys(filterInventoryItem).forEach(k => {\n const tempIndex = foundInventoryItem.findIndex(i => {\n return i.sku == k\n })\n\n tempIndexArr.push(tempIndex)\n })\n\n Object.values(filterInventoryItem).forEach(k => {\n const tempQuantity = k.length\n\n tempTotalQuantity.push(tempQuantity)\n })\n\n tempIndexArr.forEach((t, index) => {\n if (t >= 0)\n foundInventoryItem[t].totalQuantity = tempTotalQuantity[index]\n })\n\n foundInventoryItem[0].ref_no = ownRefNo || \"\"\n\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.name,\n customer_full_biz: partnerBiz.company.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n company_email: foundWarehouseCP ? foundWarehouseCP?.email : null,\n company_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n warehouse_address: foundWarehouseCP ? foundWarehouseCP.address : null,\n warehouse_address2: foundWarehouseCP ? foundWarehouseCP.address2 : null,\n warehouse_postcode: foundWarehouseCP ? foundWarehouseCP.postCode : null,\n warehouse_city: foundWarehouseCP ? foundWarehouseCP.city : null,\n warehouse_state: foundWarehouseCP ? foundWarehouseCP.state : null,\n warehouse_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n warehouse_fax: foundWarehouseCP ? foundWarehouseCP.fax : null,\n warehouse_email: foundWarehouseCP ? foundWarehouseCP.email : null,\n customer_name: foundCP ? foundCP.name : null,\n customer_delivery_address: foundCP ? foundCP.address : null,\n customer_billing_address: foundCP ? foundCP.billingAddress : null,\n new_billing_address: foundRO?.billingAddress || null,\n new_delivery_address: foundRO?.deliveryAddress1 || null,\n new_delivery_address2: foundRO?.deliveryAddress2 || null,\n new_delivery_address3: foundRO?.deliveryAddress3 || null,\n new_delivery_address4: foundRO?.deliveryAddress4 || null,\n new_delivery_address5: foundRO?.deliveryAddress5 || null,\n new_delivery_city: foundRO?.city || null,\n new_delivery_state: foundRO?.state || null,\n new_delivery_postal_code: foundRO?.postalCode || null,\n new_delivery_country: foundRO?.country || null,\n new_attention_to: foundRO?.attentionTo || null,\n new_attention_company: foundRO?.attentionCompany || null,\n new_phone_no: foundRO?.phone1 || null,\n customer_phone: foundCP ? foundCP.phone : null,\n customer_fax: foundCP ? foundCP.fax : null,\n customer_email: foundCP ? foundCP.email : null,\n customer_company: foundCP ? foundCP.companyName : null,\n own_collection: ownTransportFlag ? '[SELF-COLLECTION]' : `[${domain.brandName} TRANSPORT]`,\n destination: foundDO.to || '',\n ro_no: foundRO.name,\n ro_created_at: foundRO.createdAt ? foundRO.createdAt : '',\n ref_no: ownRefNo ? `${foundRO.name} / ${foundRO.refNo}` : `${foundRO.name}`,\n ref_no_only: ownRefNo ? `${foundRO.refNo}` : '',\n ref_no2: foundRO.refNo2 ? `${foundRO.refNo2}` : '',\n ref_no3: foundRO.refNo3 ? `${foundRO.refNo3}` : '',\n order_no: foundDO.name,\n delivery_date: foundDO.deliveryDate || '',\n complete_loading_date: DateTimeConverter.date(foundLoadingWS.endedAt),\n ro_created_date: DateTimeConverter.date(foundRO.createdAt),\n truck_no: foundDO.truckNo,\n driver_name: foundDriver || '',\n pallet_qty: foundDO.palletQty,\n worker_name: foundWS.updater.name,\n do_remark: foundDO.remark,\n reusable_pallet: foundDO.reusablePallet,\n pallet_list: foundRP.map(rp => rp.name).join(', '),\n product_list: productList.map((prod: any, idx) => {\n return {\n ...prod,\n list_no: idx + 1,\n product_uom_value: `${Math.round(prod.product_uom_value * 100) / 100} ${prod.product_uom}`,\n remark: prod?.remark\n ? prod.remark\n : prod.cross_docking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`,\n inventory_remark: prod?.inventory_remark ? prod.inventory_remark : '',\n batch_id_ref: prod.product_batch_ref\n }\n }),\n serialNumber: foundInventoryItem.map((item: any, idx) => {\n return { ...item, delivery_to: foundDO.to }\n })\n } //.. make data from do\n const formData = new FormData()\n\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n}\n"]}
1
+ {"version":3,"file":"render-ro-do.js","sourceRoot":"","sources":["../../server/controllers/render-ro-do.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport _ from 'lodash'\nimport fetch from 'node-fetch'\nimport { EntityManager, getManager } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { ProductDetail } from '@things-factory/product-base'\nimport { DeliveryOrder, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { Inventory, Pallet } from '@things-factory/warehouse-base'\n\nimport { TEMPLATE_TYPE, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet, WorksheetDetail } from '../entities'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderRODO({ doNo }, context: ResolverContext) {\n const { user, tx } = context.state\n\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n }) //.. find domain\n const foundDO: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: doNo },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.company',\n 'bizplace.domain',\n 'transportDriver',\n 'transportVehicle',\n 'releaseGood',\n 'creator',\n 'updater'\n ]\n }) // .. find do from deliveryOrderId\n\n const ownTransportFlag: Boolean = foundDO.ownCollection\n\n let foundCP: ContactPoint = null\n if (foundDO?.contactPointRefId) {\n foundCP = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: foundDO.contactPointRefId }\n })\n }\n\n const foundRO: ReleaseGood = foundDO.releaseGood\n const partnerBiz: Bizplace = foundDO.bizplace //customer bizplace\n const ownRefNo = foundRO.refNo\n\n let foundInventoryItem: any\n\n await getManager().transaction(async (trxMgr: EntityManager) => {\n foundInventoryItem = await trxMgr.query(\n `\n SELECT seq, CASE WHEN total_count = seq THEN seq ELSE NULL END AS max_seq,sku,brand_sku,serial_number FROM (\n select row_number() over(partition by p.brand_sku ORDER BY p.brand_sku, ii.serial_number) AS \"seq\", \n count(*) over(partition by p.brand_sku) AS total_count,\n p.sku,p.brand_sku, ii.serial_number \n from inventory_items ii \n left join products p on ii.product_id = p.id \n where outbound_order_id = $1\n group by p.sku,ii.serial_number,p.brand_sku\n ) src\n ORDER BY sku, brand_sku, serial_number, seq\n `,\n [foundDO.releaseGoodId]\n )\n })\n\n if (foundInventoryItem.length > 0) {\n foundInventoryItem[0].ref_no = ownRefNo || ''\n }\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain, domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n // 5. find domain contact point\n const foundWarehouseCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, bizplace: domainBizplace, type: 'WAREHOUSE' }\n })\n\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain: { id: domain.id }, releaseGood: foundRO },\n relations: ['updater']\n })\n\n const foundLoadingWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain: { id: domain.id }, releaseGood: foundRO, type: WORKSHEET_TYPE.LOADING },\n relations: ['updater']\n })\n\n //find reusable pallet\n const foundRP: Pallet[] = await getRepository(Pallet).find({\n where: { domain: { id: domain.id }, refOrderNo: foundRO.name }\n })\n\n //find list of loaded inventory\n const targetInventories: OrderInventory[] = await getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: foundDO },\n relations: ['inventory']\n })\n const orderInvIds: string[] = targetInventories.map((oi: any) => oi.id)\n\n const wdQb = getRepository(WorksheetDetail).createQueryBuilder('wd')\n wdQb\n .leftJoinAndSelect('wd.targetInventory', 'targetInventory')\n .leftJoinAndSelect('targetInventory.inventory', 'inventory')\n .leftJoinAndSelect('inventory.location', 'location')\n .leftJoinAndSelect('inventory.product', 'product')\n .leftJoinAndSelect('product.productDetails', 'productDetails')\n .leftJoinAndSelect('inventory.reusablePallet', 'reusablePallet')\n .leftJoinAndSelect('wd.domain', 'domain')\n .leftJoinAndSelect('wd.creator', 'creator')\n .leftJoinAndSelect('wd.updater', 'updater')\n .where('wd.domain_id = :domainId', { domainId: domain.id })\n .andWhere('wd.target_inventory_id IN (:...orderInvIds) ', { orderInvIds })\n .andWhere('wd.type = :type ', { type: WORKSHEET_TYPE.LOADING })\n .andWhere('wd.status = :status ', { status: WORKSHEET_STATUS.DONE })\n .orderBy('product.sku')\n .addOrderBy('product.name')\n .addOrderBy('product.description')\n .addOrderBy('inventory.batch_id')\n\n const foundWSD: WorksheetDetail[] = await wdQb.getMany()\n\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, category: TEMPLATE_TYPE.DO_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n let foundDriver: any = null\n if (foundDO.status !== ORDER_STATUS.READY_TO_DISPATCH) {\n if (foundDO?.ownCollection && foundDO?.otherDriver) {\n foundDriver = foundDO.otherDriver\n } else {\n foundDriver = foundDO.transportDriver.name\n }\n }\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n let productList: any[] = []\n productList = foundWSD\n .map((wsd: WorksheetDetail) => {\n const targetInventory: OrderInventory = wsd.targetInventory\n const inventory: Inventory = targetInventory.inventory\n const productDetails: ProductDetail[] = inventory.product.productDetails\n const matchedProductDetail: ProductDetail = productDetails.find(\n productDetail => productDetail.packingType === inventory.packingType\n )\n return {\n product_name: `${inventory.product.name} (${inventory.product.description})`,\n product_desc: `${inventory.product?.description || ''}`,\n product_nameOnly: `${inventory.product.name}`,\n product_sku: `${inventory.product.sku}`,\n product_type: inventory.packingType,\n product_size: matchedProductDetail ? matchedProductDetail.packingSize : inventory.packingSize,\n product_batch: inventory.batchId,\n product_batch_ref: inventory.batchIdRef,\n product_qty: targetInventory.releaseQty,\n product_weight: targetInventory.releaseWeight,\n product_gross_weight: inventory.product.grossWeight,\n product_uom_value: targetInventory.releaseUomValue,\n product_uom: inventory.uom,\n remark: targetInventory.remark,\n inventory_remark: inventory.remark,\n cross_docking: targetInventory.crossDocking,\n pallet: inventory?.reusablePallet && inventory?.reusablePallet?.name ? inventory.reusablePallet.name : ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.product_name === item.product_name &&\n newItem.product_batch === item.product_batch &&\n newItem.product_batch_ref === item.product_batch_ref &&\n newItem.cross_docking === item.cross_docking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n product_sku: item.product_sku,\n product_name: item.product_name,\n product_type: item.product_type,\n product_size: item.product_size,\n product_batch: item.product_batch,\n product_batch_ref: item.product_batch_ref,\n product_qty: item.product_qty,\n product_weight: item.product_weight,\n product_gross_weight: item.product_gross_weight,\n product_uom_value: item.product_uom_value,\n product_uom: item.product_uom,\n product_desc: item.product_desc,\n product_nameOnly: item.product_nameOnly,\n remark: item.remark,\n inventory_remark: item.inventory_remark,\n palletQty: 1,\n cross_docking: item.cross_docking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.product_name === item.product_name &&\n ni.product_batch === item.product_batch &&\n ni.product_batch_ref === item.product_batch_ref &&\n ni.cross_docking === item.cross_docking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n product_qty: ni.product_qty + item.product_qty,\n product_weight: ni.product_weight + item.product_weight,\n product_uom_value: ni.product_uom_value + item.product_uom_value\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.name,\n customer_full_biz: partnerBiz.company.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n company_email: foundWarehouseCP ? foundWarehouseCP?.email : null,\n company_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n warehouse_address: foundWarehouseCP ? foundWarehouseCP.address : null,\n warehouse_address2: foundWarehouseCP ? foundWarehouseCP.address2 : null,\n warehouse_postcode: foundWarehouseCP ? foundWarehouseCP.postCode : null,\n warehouse_city: foundWarehouseCP ? foundWarehouseCP.city : null,\n warehouse_state: foundWarehouseCP ? foundWarehouseCP.state : null,\n warehouse_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n warehouse_fax: foundWarehouseCP ? foundWarehouseCP.fax : null,\n warehouse_email: foundWarehouseCP ? foundWarehouseCP.email : null,\n customer_name:\n foundCP?.name ||\n foundDO.attentionTo ||\n foundDO.attentionCompany ||\n foundRO?.attentionTo ||\n foundRO?.attentionCompany ||\n null,\n customer_delivery_address:\n foundCP?.address ||\n [\n foundDO?.deliveryAddress1,\n foundDO?.deliveryAddress2,\n foundDO?.deliveryAddress3,\n foundDO?.deliveryAddress4,\n foundDO?.deliveryAddress5,\n foundDO?.postalCode,\n foundDO?.city,\n foundDO?.state,\n foundDO?.country\n ]\n .filter(Boolean)\n .join(', ') ||\n [\n foundRO?.deliveryAddress1,\n foundRO?.deliveryAddress2,\n foundRO?.deliveryAddress3,\n foundRO?.deliveryAddress4,\n foundRO?.deliveryAddress5,\n foundRO?.postalCode,\n foundRO?.city,\n foundRO?.state,\n foundRO?.country\n ]\n .filter(Boolean)\n .join(', ') ||\n null,\n customer_billing_address: foundCP?.billingAddress || foundDO?.billingAddress || foundRO?.billingAddress || null,\n new_billing_address: foundDO?.billingAddress || foundRO?.billingAddress || null,\n new_delivery_address: foundDO?.deliveryAddress1 || foundRO?.deliveryAddress1 || null,\n new_delivery_address2: foundDO?.deliveryAddress2 || foundRO?.deliveryAddress2 || null,\n new_delivery_address3: foundDO?.deliveryAddress3 || foundRO?.deliveryAddress3 || null,\n new_delivery_address4: foundDO?.deliveryAddress4 || foundRO?.deliveryAddress4 || null,\n new_delivery_address5: foundDO?.deliveryAddress5 || foundRO?.deliveryAddress5 || null,\n new_delivery_city: foundDO?.city || foundRO?.city || null,\n new_delivery_state: foundDO?.state || foundRO?.state || null,\n new_delivery_postal_code: foundDO?.postalCode || foundRO?.postalCode || null,\n new_delivery_country: foundDO?.country || foundRO?.country || null,\n new_attention_to: foundDO?.attentionTo || foundRO?.attentionTo || null,\n new_attention_company: foundDO?.attentionCompany || foundRO?.attentionCompany || null,\n new_phone_no: foundDO?.phone1 || foundRO?.phone1 || null,\n customer_phone: foundCP ? foundCP.phone : null || foundDO?.phone1,\n customer_fax: foundCP ? foundCP.fax : null,\n customer_email: foundCP ? foundCP.email : null,\n customer_company: foundCP ? foundCP.companyName : null || foundDO.attentionCompany,\n own_collection: ownTransportFlag ? '[SELF-COLLECTION]' : `[${domain.brandName} TRANSPORT]`,\n destination:\n foundDO.to ||\n [\n foundDO?.deliveryAddress1,\n foundDO?.deliveryAddress2,\n foundDO?.deliveryAddress3,\n foundDO?.deliveryAddress4,\n foundDO?.deliveryAddress5,\n foundDO?.postalCode,\n foundDO?.city,\n foundDO?.state,\n foundDO?.country\n ]\n .filter(Boolean)\n .join(', ') ||\n [\n foundRO?.deliveryAddress1,\n foundRO?.deliveryAddress2,\n foundRO?.deliveryAddress3,\n foundRO?.deliveryAddress4,\n foundRO?.deliveryAddress5,\n foundRO?.postalCode,\n foundRO?.city,\n foundRO?.state,\n foundRO?.country\n ]\n .filter(Boolean)\n .join(', ') ||\n '',\n ro_no: foundRO.name,\n ro_created_at: foundRO.createdAt ? foundRO.createdAt : '',\n ref_no: ownRefNo ? `${foundRO.name} / ${foundRO.refNo}` : `${foundRO.name}`,\n ref_no_only: ownRefNo ? `${foundRO.refNo}` : '',\n ref_no2: foundRO.refNo2 ? `${foundRO.refNo2}` : '',\n ref_no3: foundRO.refNo3 ? `${foundRO.refNo3}` : '',\n order_no: foundDO.name,\n delivery_date: foundDO.deliveryDate || '',\n complete_loading_date: DateTimeConverter.date(foundLoadingWS.endedAt),\n ro_created_date: DateTimeConverter.date(foundRO.createdAt),\n truck_no: foundDO.truckNo,\n driver_name: foundDriver || '',\n pallet_qty: foundDO.palletQty,\n worker_name: foundWS.updater.name,\n do_remark: foundDO.remark,\n reusable_pallet: foundDO.reusablePallet,\n pallet_list: foundRP.map(rp => rp.name).join(', '),\n product_list: productList.map((prod: any, idx) => {\n return {\n ...prod,\n list_no: idx + 1,\n product_uom_value: `${Math.round(prod.product_uom_value * 100) / 100} ${prod.product_uom}`,\n remark: prod?.remark\n ? prod.remark\n : prod.cross_docking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`,\n inventory_remark: prod?.inventory_remark ? prod.inventory_remark : '',\n batch_id_ref: prod.product_batch_ref\n }\n }),\n serialNumber:\n foundInventoryItem.map((item: any, idx) => {\n return { ...item, delivery_to: foundDO.to }\n }) || ''\n } //.. make data from do\n const formData = new FormData()\n\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n}\n"]}