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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/dist-server/controllers/ecommerce/sellercraft-controller.js +225 -191
  2. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  3. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +2 -2
  4. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
  5. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +28 -17
  6. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +1 -1
  8. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/outbound/packing-worksheet-controller.js +17 -3
  10. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/outbound/picking-worksheet-controller.js +221 -144
  12. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/outbound/returning-worksheet-controller.js +16 -0
  14. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +8 -8
  16. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  17. package/dist-server/controllers/render-elccl-grn.js +21 -16
  18. package/dist-server/controllers/render-elccl-grn.js.map +1 -1
  19. package/dist-server/controllers/render-fm-grn.js +43 -26
  20. package/dist-server/controllers/render-fm-grn.js.map +1 -1
  21. package/dist-server/controllers/render-grn.js +42 -28
  22. package/dist-server/controllers/render-grn.js.map +1 -1
  23. package/dist-server/controllers/render-invoices.js +4 -5
  24. package/dist-server/controllers/render-invoices.js.map +1 -1
  25. package/dist-server/controllers/render-job-sheet.js +19 -19
  26. package/dist-server/controllers/render-job-sheet.js.map +1 -1
  27. package/dist-server/controllers/render-kimeda-grn.js +38 -23
  28. package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
  29. package/dist-server/controllers/render-manifest.js +8 -9
  30. package/dist-server/controllers/render-manifest.js.map +1 -1
  31. package/dist-server/controllers/render-manual-do.js +15 -15
  32. package/dist-server/controllers/render-manual-do.js.map +1 -1
  33. package/dist-server/controllers/render-orientage-do.js +74 -28
  34. package/dist-server/controllers/render-orientage-do.js.map +1 -1
  35. package/dist-server/controllers/render-orientage-grn.js +25 -15
  36. package/dist-server/controllers/render-orientage-grn.js.map +1 -1
  37. package/dist-server/controllers/render-po.js +28 -19
  38. package/dist-server/controllers/render-po.js.map +1 -1
  39. package/dist-server/controllers/render-ro-do.js +139 -105
  40. package/dist-server/controllers/render-ro-do.js.map +1 -1
  41. package/dist-server/controllers/render-seebuu-grn.js +29 -19
  42. package/dist-server/controllers/render-seebuu-grn.js.map +1 -1
  43. package/dist-server/controllers/vas/vas-worksheet-controller.js +5 -5
  44. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  45. package/dist-server/controllers/worksheet-controller.js +75 -25
  46. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  47. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +2 -1
  48. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -1
  49. package/dist-server/entities/worksheet-detail.js +14 -12
  50. package/dist-server/entities/worksheet-detail.js.map +1 -1
  51. package/dist-server/entities/worksheet-movement.js +1 -2
  52. package/dist-server/entities/worksheet-movement.js.map +1 -1
  53. package/dist-server/entities/worksheet.js +13 -13
  54. package/dist-server/entities/worksheet.js.map +1 -1
  55. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +1 -1
  56. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
  57. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +6 -6
  58. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  59. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js +1 -1
  60. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -1
  61. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js +6 -5
  62. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js.map +1 -1
  63. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js +8 -8
  64. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js.map +1 -1
  65. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +82 -80
  66. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  67. package/dist-server/graphql/resolvers/worksheet/create-worksheet.js.map +1 -1
  68. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +5 -4
  69. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -1
  70. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +5 -5
  71. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  72. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js +5 -4
  73. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
  74. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js +1 -1
  75. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js.map +1 -1
  76. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js +83 -52
  77. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -1
  78. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js +169 -0
  79. package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js.map +1 -0
  80. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js +67 -0
  81. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js.map +1 -0
  82. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js +1 -34
  83. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js.map +1 -1
  84. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js.map +1 -1
  85. package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js +70 -0
  86. package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js.map +1 -0
  87. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js +34 -3
  88. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
  89. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js +4 -4
  90. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js.map +1 -1
  91. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
  92. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js +3 -3
  93. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -1
  94. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js.map +1 -1
  95. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js.map +1 -1
  96. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js.map +1 -1
  97. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +14 -10
  98. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
  99. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js +1 -1
  100. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js.map +1 -1
  101. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js +1 -1
  102. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js.map +1 -1
  103. package/dist-server/graphql/resolvers/worksheet/having-vas.js +7 -7
  104. package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -1
  105. package/dist-server/graphql/resolvers/worksheet/index.js +5 -3
  106. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  107. package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.js.map +1 -1
  108. package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.js.map +1 -1
  109. package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.js.map +1 -1
  110. package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js.map +1 -1
  111. package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting.js.map +1 -1
  112. package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-pallet.js.map +1 -1
  113. package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.js.map +1 -1
  114. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +18 -9
  115. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  116. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js +6 -5
  117. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -1
  118. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -1
  119. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +14 -14
  120. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  121. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
  122. package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js.map +1 -1
  123. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +11 -10
  124. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
  125. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +5 -4
  126. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
  127. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +3 -4
  128. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  129. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +2 -2
  130. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  131. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +1 -1
  132. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  133. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +16 -11
  134. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  135. package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js.map +1 -1
  136. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +96 -22
  137. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  138. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +5 -5
  139. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
  140. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +93 -81
  141. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  142. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +0 -19
  143. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
  144. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +1 -1
  145. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  146. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
  147. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js +11 -5
  148. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js.map +1 -1
  149. package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.js.map +1 -1
  150. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +10 -4
  151. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  152. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +34 -38
  153. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  154. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js +46 -35
  155. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -1
  156. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js +7 -2
  157. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js.map +1 -1
  158. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +33 -16
  159. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -1
  160. package/dist-server/graphql/resolvers/worksheet/picking/picking.js.map +1 -1
  161. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js +4 -4
  162. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js.map +1 -1
  163. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js +5 -8
  164. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -1
  165. package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +1 -1
  166. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
  167. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -1
  168. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +6 -5
  169. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  170. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +10 -8
  171. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  172. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -1
  173. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +4 -3
  174. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  175. package/dist-server/graphql/resolvers/worksheet/putaway/putaway.js.map +1 -1
  176. package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.js.map +1 -1
  177. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -1
  178. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js +2 -1
  179. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
  180. package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.js.map +1 -1
  181. package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.js.map +1 -1
  182. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +3 -3
  183. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
  184. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +3 -3
  185. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -1
  186. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +16 -11
  187. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
  188. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +139 -149
  189. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
  190. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js +1 -1
  191. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js.map +1 -1
  192. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +2 -2
  193. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
  194. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +3 -3
  195. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -1
  196. package/dist-server/graphql/resolvers/worksheet/returning/activate-return.js.map +1 -1
  197. package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js.map +1 -1
  198. package/dist-server/graphql/resolvers/worksheet/returning/returning.js.map +1 -1
  199. package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.js.map +1 -1
  200. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -1
  201. package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.js.map +1 -1
  202. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -1
  203. package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js.map +1 -1
  204. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +4 -4
  205. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  206. package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -1
  207. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js +8 -7
  208. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -1
  209. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +9 -8
  210. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  211. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js +4 -2
  212. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -1
  213. package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.js.map +1 -1
  214. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.js.map +1 -1
  215. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +6 -2
  216. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  217. package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.js.map +1 -1
  218. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -1
  219. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -1
  220. package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js.map +1 -1
  221. package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -1
  222. package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.js.map +1 -1
  223. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.js.map +1 -1
  224. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +7 -3
  225. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
  226. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js +3 -3
  227. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -1
  228. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +5 -5
  229. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
  230. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js +1 -1
  231. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js.map +1 -1
  232. package/dist-server/graphql/resolvers/worksheet/vas/activate-vas.js.map +1 -1
  233. package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.js.map +1 -1
  234. package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js.map +1 -1
  235. package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.js.map +1 -1
  236. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.js.map +1 -1
  237. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.js.map +1 -1
  238. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js +13 -12
  239. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -1
  240. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +7 -6
  241. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -1
  242. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +36 -18
  243. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  244. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +10 -3
  245. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -1
  246. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js +3 -2
  247. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -1
  248. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js +11 -3
  249. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -1
  250. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -1
  251. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +3 -2
  252. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
  253. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +2 -2
  254. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
  255. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +1 -1
  256. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
  257. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js +2 -1
  258. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -1
  259. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js +3 -3
  260. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -1
  261. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -1
  262. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js +2 -1
  263. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js.map +1 -1
  264. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +7 -7
  265. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -1
  266. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +11 -10
  267. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
  268. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js +7 -4
  269. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js.map +1 -1
  270. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js +5 -5
  271. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -1
  272. package/dist-server/graphql/resolvers/worksheet/worksheet.js +72 -42
  273. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
  274. package/dist-server/graphql/resolvers/worksheet/worksheets.js +42 -17
  275. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
  276. package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js +3 -3
  277. package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js.map +1 -1
  278. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +1 -1
  279. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -1
  280. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js +1 -1
  281. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js.map +1 -1
  282. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +13 -10
  283. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
  284. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js +7 -5
  285. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -1
  286. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -1
  287. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +3 -3
  288. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
  289. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +5 -2
  290. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -1
  291. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +1 -1
  292. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
  293. package/dist-server/graphql/resolvers/worksheet-detail/index.js +2 -1
  294. package/dist-server/graphql/resolvers/worksheet-detail/index.js.map +1 -1
  295. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +81 -0
  296. package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -0
  297. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js +2 -2
  298. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -1
  299. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +2 -2
  300. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -1
  301. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +1 -1
  302. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
  303. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js +2 -2
  304. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js.map +1 -1
  305. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +1 -1
  306. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -1
  307. package/dist-server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.js.map +1 -1
  308. package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js +1 -1
  309. package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js.map +1 -1
  310. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js +1 -1
  311. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js.map +1 -1
  312. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js +1 -1
  313. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js.map +1 -1
  314. package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.js +12 -0
  315. package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.js.map +1 -0
  316. package/dist-server/graphql/types/worksheet/delivery-order-info.js +3 -0
  317. package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -1
  318. package/dist-server/graphql/types/worksheet/delivery-order-ro.js +18 -0
  319. package/dist-server/graphql/types/worksheet/delivery-order-ro.js.map +1 -0
  320. package/dist-server/graphql/types/worksheet/index.js +26 -15
  321. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  322. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js +11 -0
  323. package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js.map +1 -0
  324. package/dist-server/graphql/types/worksheet/sellercraft-document.js +11 -0
  325. package/dist-server/graphql/types/worksheet/sellercraft-document.js.map +1 -0
  326. package/dist-server/graphql/types/worksheet-detail/index.js +10 -0
  327. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  328. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +1 -0
  329. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
  330. package/dist-server/tsconfig.tsbuildinfo +1 -1
  331. package/dist-server/utils/inventory-util.js +26 -20
  332. package/dist-server/utils/inventory-util.js.map +1 -1
  333. package/dist-server/utils/worksheet-util.js +8 -6
  334. package/dist-server/utils/worksheet-util.js.map +1 -1
  335. package/package.json +17 -17
  336. package/server/controllers/ecommerce/sellercraft-controller.ts +282 -223
  337. package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +9 -17
  338. package/server/controllers/inbound/unloading-worksheet-controller.ts +55 -66
  339. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +1 -1
  340. package/server/controllers/outbound/packing-worksheet-controller.ts +25 -4
  341. package/server/controllers/outbound/picking-worksheet-controller.ts +292 -172
  342. package/server/controllers/outbound/returning-worksheet-controller.ts +23 -0
  343. package/server/controllers/outbound/sorting-worksheet-controller.ts +20 -20
  344. package/server/controllers/render-elccl-grn.ts +16 -11
  345. package/server/controllers/render-fm-grn.ts +32 -14
  346. package/server/controllers/render-grn.ts +31 -16
  347. package/server/controllers/render-invoices.ts +3 -3
  348. package/server/controllers/render-job-sheet.ts +13 -11
  349. package/server/controllers/render-kimeda-grn.ts +28 -13
  350. package/server/controllers/render-manifest.ts +25 -24
  351. package/server/controllers/render-manual-do.ts +9 -10
  352. package/server/controllers/render-orientage-do.ts +79 -30
  353. package/server/controllers/render-orientage-grn.ts +30 -20
  354. package/server/controllers/render-po.ts +31 -20
  355. package/server/controllers/render-ro-do.ts +151 -124
  356. package/server/controllers/render-seebuu-grn.ts +21 -11
  357. package/server/controllers/vas/vas-worksheet-controller.ts +19 -20
  358. package/server/controllers/worksheet-controller.ts +97 -27
  359. package/server/entities/warehouse-bizplace-onhand-inventory.ts +2 -1
  360. package/server/entities/worksheet-detail.ts +9 -0
  361. package/server/graphql/resolvers/pallet/pallet-outbound.ts +5 -8
  362. package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +8 -6
  363. package/server/graphql/resolvers/worksheet/cancel-draft-release-order.ts +4 -11
  364. package/server/graphql/resolvers/worksheet/check-inventory-release.ts +8 -7
  365. package/server/graphql/resolvers/worksheet/check-stock-take-current-location.ts +10 -8
  366. package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +112 -138
  367. package/server/graphql/resolvers/worksheet/create-worksheet.ts +6 -8
  368. package/server/graphql/resolvers/worksheet/cross-dock-picking.ts +8 -7
  369. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +7 -7
  370. package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +6 -6
  371. package/server/graphql/resolvers/worksheet/delete-worksheet.ts +5 -3
  372. package/server/graphql/resolvers/worksheet/delivery-order-by-worksheet.ts +87 -53
  373. package/server/graphql/resolvers/worksheet/fetch-delivery-order-ro.ts +190 -0
  374. package/server/graphql/resolvers/worksheet/fetch-sellercraft-document.ts +69 -0
  375. package/server/graphql/resolvers/worksheet/find-release-orders-by-task-no.ts +5 -45
  376. package/server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.ts +5 -5
  377. package/server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.ts +80 -0
  378. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.ts +45 -5
  379. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.ts +11 -10
  380. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +1 -1
  381. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.ts +7 -14
  382. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.ts +10 -4
  383. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.ts +10 -4
  384. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.ts +5 -3
  385. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +25 -29
  386. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.ts +6 -4
  387. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.ts +6 -4
  388. package/server/graphql/resolvers/worksheet/having-vas.ts +10 -8
  389. package/server/graphql/resolvers/worksheet/index.ts +7 -3
  390. package/server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.ts +5 -3
  391. package/server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.ts +4 -2
  392. package/server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.ts +5 -3
  393. package/server/graphql/resolvers/worksheet/inspecting/complete-inspection.ts +5 -3
  394. package/server/graphql/resolvers/worksheet/inspecting/inspecting.ts +9 -3
  395. package/server/graphql/resolvers/worksheet/inspecting/relocate-pallet.ts +16 -4
  396. package/server/graphql/resolvers/worksheet/inspecting/undo-inspection.ts +5 -3
  397. package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +34 -17
  398. package/server/graphql/resolvers/worksheet/loaded-inventories.ts +7 -6
  399. package/server/graphql/resolvers/worksheet/loading/activate-loading.ts +5 -3
  400. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +16 -16
  401. package/server/graphql/resolvers/worksheet/loading/loading.ts +5 -3
  402. package/server/graphql/resolvers/worksheet/loading/undo-loading.ts +5 -3
  403. package/server/graphql/resolvers/worksheet/loading-worksheet.ts +11 -11
  404. package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +6 -6
  405. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +14 -13
  406. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +4 -4
  407. package/server/graphql/resolvers/worksheet/packing/packing.ts +3 -3
  408. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +21 -17
  409. package/server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.ts +2 -2
  410. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +102 -24
  411. package/server/graphql/resolvers/worksheet/palletizing-pallets.ts +10 -8
  412. package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +107 -97
  413. package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +3 -30
  414. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +3 -3
  415. package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +23 -4
  416. package/server/graphql/resolvers/worksheet/picking/assign-picking-worker.ts +25 -17
  417. package/server/graphql/resolvers/worksheet/picking/batch-picking.ts +4 -2
  418. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +15 -6
  419. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +37 -42
  420. package/server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts +52 -42
  421. package/server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.ts +15 -6
  422. package/server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.ts +49 -35
  423. package/server/graphql/resolvers/worksheet/picking/picking.ts +4 -2
  424. package/server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.ts +11 -6
  425. package/server/graphql/resolvers/worksheet/picking/scan-product-picking.ts +10 -35
  426. package/server/graphql/resolvers/worksheet/picking/seal-tote.ts +2 -2
  427. package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +9 -3
  428. package/server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts +2 -2
  429. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +11 -11
  430. package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +13 -13
  431. package/server/graphql/resolvers/worksheet/putaway/activate-putaway.ts +5 -3
  432. package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +6 -5
  433. package/server/graphql/resolvers/worksheet/putaway/putaway.ts +5 -3
  434. package/server/graphql/resolvers/worksheet/putaway/undo-putaway.ts +5 -3
  435. package/server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.ts +5 -3
  436. package/server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.ts +13 -6
  437. package/server/graphql/resolvers/worksheet/putaway-return/putaway-return.ts +5 -3
  438. package/server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.ts +5 -3
  439. package/server/graphql/resolvers/worksheet/putaway-returning-worksheet.ts +4 -6
  440. package/server/graphql/resolvers/worksheet/putaway-worksheet.ts +4 -6
  441. package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +20 -19
  442. package/server/graphql/resolvers/worksheet/reject-cancellation-release-order.ts +154 -220
  443. package/server/graphql/resolvers/worksheet/relocate-pallet.ts +6 -4
  444. package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +3 -7
  445. package/server/graphql/resolvers/worksheet/return-worksheet.ts +4 -6
  446. package/server/graphql/resolvers/worksheet/returning/activate-return.ts +5 -3
  447. package/server/graphql/resolvers/worksheet/returning/complete-return.ts +5 -3
  448. package/server/graphql/resolvers/worksheet/returning/returning.ts +5 -3
  449. package/server/graphql/resolvers/worksheet/sorting/activate-sorting.ts +5 -3
  450. package/server/graphql/resolvers/worksheet/sorting/complete-order-sorting.ts +7 -5
  451. package/server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.ts +5 -3
  452. package/server/graphql/resolvers/worksheet/sorting/scan-product-sorting.ts +9 -3
  453. package/server/graphql/resolvers/worksheet/sorting/sorting-product.ts +9 -3
  454. package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +5 -5
  455. package/server/graphql/resolvers/worksheet/transfer.ts +10 -12
  456. package/server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.ts +13 -7
  457. package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +9 -9
  458. package/server/graphql/resolvers/worksheet/unloading/activate-unloading.ts +9 -5
  459. package/server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.ts +5 -3
  460. package/server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.ts +5 -3
  461. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +8 -4
  462. package/server/graphql/resolvers/worksheet/unloading/scan-product-unload.ts +5 -3
  463. package/server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts +2 -2
  464. package/server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts +2 -2
  465. package/server/graphql/resolvers/worksheet/unloading/undo-unloading.ts +2 -2
  466. package/server/graphql/resolvers/worksheet/unloading/unload.ts +7 -7
  467. package/server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.ts +5 -3
  468. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.ts +5 -3
  469. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +9 -5
  470. package/server/graphql/resolvers/worksheet/unloading-return-worksheet.ts +4 -6
  471. package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +5 -7
  472. package/server/graphql/resolvers/worksheet/update-worksheet.ts +5 -5
  473. package/server/graphql/resolvers/worksheet/vas/activate-vas.ts +5 -3
  474. package/server/graphql/resolvers/worksheet/vas/assign-vas-inventories.ts +5 -3
  475. package/server/graphql/resolvers/worksheet/vas/complete-vas.ts +5 -3
  476. package/server/graphql/resolvers/worksheet/vas/execute-vas.ts +5 -3
  477. package/server/graphql/resolvers/worksheet/vas/undo-vas-inventory.ts +5 -3
  478. package/server/graphql/resolvers/worksheet/vas/undo-vas.ts +5 -3
  479. package/server/graphql/resolvers/worksheet/vas-candidates.ts +20 -17
  480. package/server/graphql/resolvers/worksheet/vas-inventories.ts +9 -7
  481. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +36 -18
  482. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.ts +12 -5
  483. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.ts +6 -3
  484. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.ts +14 -6
  485. package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.ts +5 -7
  486. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +3 -2
  487. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +8 -5
  488. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +6 -16
  489. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.ts +5 -2
  490. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.ts +10 -8
  491. package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.ts +3 -5
  492. package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.ts +6 -6
  493. package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.ts +10 -13
  494. package/server/graphql/resolvers/worksheet/vas-worksheet.ts +13 -11
  495. package/server/graphql/resolvers/worksheet/worksheet-by-order-no.ts +13 -8
  496. package/server/graphql/resolvers/worksheet/worksheet-with-pagination.ts +7 -5
  497. package/server/graphql/resolvers/worksheet/worksheet.ts +86 -32
  498. package/server/graphql/resolvers/worksheet/worksheets.ts +60 -19
  499. package/server/graphql/resolvers/worksheet-detail/check-progressing-pallet.ts +7 -8
  500. package/server/graphql/resolvers/worksheet-detail/create-worksheet-detail.ts +4 -6
  501. package/server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.ts +5 -6
  502. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +13 -19
  503. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts +19 -27
  504. package/server/graphql/resolvers/worksheet-detail/generate-carton-id.ts +2 -4
  505. package/server/graphql/resolvers/worksheet-detail/generate-pallet-id.ts +6 -6
  506. package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +7 -4
  507. package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +3 -3
  508. package/server/graphql/resolvers/worksheet-detail/index.ts +3 -1
  509. package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +164 -0
  510. package/server/graphql/resolvers/worksheet-detail/update-worksheet-detail.ts +8 -7
  511. package/server/graphql/resolvers/worksheet-detail/worksheet-detail.ts +6 -7
  512. package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +5 -5
  513. package/server/graphql/resolvers/worksheet-detail/worksheet-details.ts +6 -7
  514. package/server/graphql/resolvers/worksheet-movement/create-worksheet-movement.ts +4 -3
  515. package/server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.ts +3 -2
  516. package/server/graphql/resolvers/worksheet-movement/update-worksheet-movement.ts +2 -4
  517. package/server/graphql/resolvers/worksheet-movement/worksheet-movement.ts +3 -6
  518. package/server/graphql/resolvers/worksheet-movement/worksheet-movements.ts +4 -4
  519. package/server/graphql/types/worksheet/batch-pick-worksheet-info.ts +9 -0
  520. package/server/graphql/types/worksheet/delivery-order-info.ts +3 -0
  521. package/server/graphql/types/worksheet/delivery-order-ro.ts +15 -0
  522. package/server/graphql/types/worksheet/index.ts +49 -38
  523. package/server/graphql/types/worksheet/multiple-release-good-worksheet.ts +8 -0
  524. package/server/graphql/types/worksheet/sellercraft-document.ts +8 -0
  525. package/server/graphql/types/worksheet-detail/index.ts +10 -0
  526. package/server/graphql/types/worksheet-detail/inventory-detail.ts +1 -0
  527. package/server/utils/inventory-util.ts +20 -14
  528. package/server/utils/worksheet-util.ts +10 -6
  529. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +0 -25
  530. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +0 -1
  531. package/dist-server/graphql/types/worksheet/airwaybill.js +0 -11
  532. package/dist-server/graphql/types/worksheet/airwaybill.js.map +0 -1
  533. package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +0 -30
  534. package/server/graphql/types/worksheet/airwaybill.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"render-job-sheet.js","sourceRoot":"","sources":["../../server/controllers/render-job-sheet.ts"],"names":[],"mappings":"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","sourcesContent":["import { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Product } from '@things-factory/product-base'\nimport { ArrivalNotice, JobSheet, OrderProduct } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\nimport FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { EntityManager, getManager, getRepository, IsNull, Not } from 'typeorm'\nimport { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet } 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 renderJobSheet({ ganNo, timezoneOffSet }, context) {\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n }) //.. find domain\n\n // find GAN\n const foundGAN: ArrivalNotice = await getRepository(ArrivalNotice).findOne({\n where: { domain, name: ganNo },\n relations: ['bizplace', 'bizplace.company', 'bizplace.domain']\n })\n\n // find job sheet\n const foundJS: JobSheet = await getRepository(JobSheet).findOne({\n where: { domain, bizplace: foundGAN.bizplace, arrivalNoticeRefNo: foundGAN.name }\n })\n\n // customer bizplace\n const partnerBiz: Bizplace = foundGAN.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain, category: TEMPLATE_TYPE.JOB_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.LOGO\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 // find unloading worksheet for getting unloading time\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING },\n relations: ['updater']\n })\n\n // find list of unloaded product\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: { domain, arrivalNotice: foundGAN, actualPalletQty: Not(IsNull()) },\n relations: ['product']\n })\n\n const products: Product[] = targetProducts.map((op: OrderProduct) => op.product)\n const prodType: any[] = products.map(prod => prod.type)\n\n return await getManager().transaction(async (trxMgr: EntityManager) => {\n await trxMgr.query(\n `\n create temp table temp_invHistory on commit drop as (\n select i2.id as inventory_id, i2.pallet_id, i2.product_id, i2.packing_type, i2.batch_id,\n ih.id as inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.uom_value, ih.opening_uom_value, \n ih.created_at\n from (\n select i2.* from inventories i2 \n inner join order_inventories oi on oi.inventory_id = i2.id\n where oi.arrival_notice_id = $1\n ) i2\n inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id \n )\n `,\n [foundGAN.id]\n )\n\n const invItems: any[] = await trxMgr.query(\n ` \n SELECT rn,\n inv_id, \n case when rn = 1 then \"packingType\" else null end as \"packingType\",\n case when rn = 1 then \"createdAt\" else null end as \"createdAt\",\n case when rn = 1 then \"productName\" else null end as \"productName\", \n case when rn = 1 then \"unloadedQty\" else null end as \"unloadedQty\",\n case when rn = 1 then \"outboundAt\" else null end as \"outboundAt\",\n \"doName\",\n case when rn = 1 then \"palletId\" else null end as \"palletId\",\n qty,\n case when rn = 1 then \"ownTransport\" else null end as \"ownTransport\",\n case when rn = 1 then \"vasName\" else null end as \"vasName\" \n from \n ( \n SELECT\n row_number() over(partition by pallet_id order by inv.pallet_id, product.name asc) as rn,\n inv.id AS \"inv_id\", inv.packing_type AS \"packingType\", inv.created_at AS \"createdAt\", product.name AS \"productName\", \n (\t\n select distinct on(pallet_id) COALESCE(qty, 0) AS unloadedQty from temp_invHistory invh \n where invh.status = 'UNLOADED' and invh.inventory_id = inv.id\n order by pallet_id, seq asc\n ) AS \"unloadedQty\", \n (\n select distinct on(pallet_id) COALESCE(created_at, null) AS outboundAt from temp_invHistory invh \n where invh.status = 'TERMINATED' and invh.inventory_id = inv.id\n order by pallet_id, seq desc\n ) AS \"outboundAt\",\n STRING_AGG (case when do2.name is not null then (CONCAT(do2.delivery_date, ' (', orderInv.release_qty, ') ', do2.name, ', ', case when do2.own_collection = true then 'TPT N' else 'TPT Y' end )) else null end, ', ') AS \"doName\",\n case when plt.name is not null then (CONCAT(inv.pallet_id, ' (', plt.name, ')')) else inv.pallet_id end AS \"palletId\",\n SUM(orderInv.release_qty) as \"qty\",\n do2.own_collection AS \"ownTransport\",\n STRING_AGG (vas.name, ', ') AS \"vasName\" \n FROM inventories inv \n LEFT JOIN order_inventories orderInv ON orderInv.inventory_id = inv.id AND orderInv.release_good_id is not null and orderInv.status <> 'CANCELLED' AND orderinv.picked_qty > 0\n LEFT JOIN order_vass orderVass ON orderVass.inventory_id = inv.id \n LEFT JOIN vass vas ON vas.id = orderVass.vas_id \n LEFT JOIN pallets plt on plt.id = inv.reusable_pallet_id\n LEFT JOIN delivery_orders do2 ON do2.id = orderInv.delivery_order_id \n LEFT JOIN products product ON product.id=inv.product_id \n inner join order_inventories oi on oi.inventory_id = inv.id\n where oi.arrival_notice_id = $1\n AND inv.domain_id = $2\n GROUP BY inv.id, product.name, do2.own_collection, plt.name\n ORDER BY inv.pallet_id, product.name asc\n ) foo\n `,\n [foundGAN.id, domain.id]\n )\n\n const sumPackQty = targetProducts.map((op: OrderProduct) => op.actualPackQty).reduce((a, b) => a + b, 0)\n\n let sumPalletQty = 0\n if (foundJS?.sumPalletQty) {\n sumPalletQty = foundJS.sumPalletQty\n }\n let index = 0\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.company.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n container_no: foundJS?.containerNo ? foundJS.containerNo : foundJS.deliveryOrderNo,\n container_size: foundJS ? foundJS.containerSize : null,\n eta: foundGAN?.ata ? DateTimeConverter.datetime(foundGAN.ata, timezoneOffSet) : null,\n ata: foundGAN?.ata ? DateTimeConverter.date(foundGAN.ata) : null,\n unloading_date: foundWS?.startedAt ? DateTimeConverter.date(foundWS.startedAt) : '',\n mt_date: foundJS?.containerMtDate ? DateTimeConverter.date(foundJS.containerMtDate) : '',\n advise_mt_date: foundJS.adviseMtDate ? DateTimeConverter.datetime(foundJS.adviseMtDate, timezoneOffSet) : '',\n loose_item: foundGAN.looseItem ? 'N' : 'Y',\n no_of_pallet:\n (sumPalletQty > 1 ? `${sumPalletQty} PALLETS` : `${sumPalletQty} PALLET`) +\n `, ` +\n (sumPackQty ? `${sumPackQty} CTN` : 0),\n commodity: prodType.filter((a, b) => prodType.indexOf(a) === b).join(', '),\n created_on: DateTimeConverter.date(foundJS.createdAt),\n job_no: foundJS ? foundJS.name : null,\n ref_no: foundGAN.name,\n product_list: invItems.map(item => {\n index = item.rn == 1 ? index + 1 : index\n return {\n idx: item.rn == 1 ? index : '',\n pallet_id: item.palletId,\n product_name: item.productName,\n product_type: item.packingType,\n in_pallet: DateTimeConverter.date(item.createdAt),\n out_pallet: item?.outboundAt ? DateTimeConverter.date(item.outboundAt) : null,\n do_list: item.doName,\n product_qty: item.unloadedQty,\n remark: foundGAN.looseItem ? 'STRETCH FILM' : null\n }\n })\n }\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}\n"]}
1
+ {"version":3,"file":"render-job-sheet.js","sourceRoot":"","sources":["../../server/controllers/render-job-sheet.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { EntityManager, getManager, IsNull, Not } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { Product } from '@things-factory/product-base'\nimport { ArrivalNotice, JobSheet, OrderProduct } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet } 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 renderJobSheet({ ganNo, timezoneOffSet }, context) {\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n }) //.. find domain\n\n // find GAN\n const foundGAN: ArrivalNotice = await getRepository(ArrivalNotice).findOne({\n where: { domain: { id: domain.id }, name: ganNo },\n relations: ['bizplace', 'bizplace.company', 'bizplace.domain']\n })\n\n // find job sheet\n const foundJS: JobSheet = await getRepository(JobSheet).findOne({\n where: { domain: { id: domain.id }, bizplace: foundGAN.bizplace, arrivalNoticeRefNo: foundGAN.name }\n })\n\n // customer bizplace\n const partnerBiz: Bizplace = foundGAN.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, category: TEMPLATE_TYPE.JOB_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 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 // find unloading worksheet for getting unloading time\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain: { id: domain.id }, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING },\n relations: ['updater']\n })\n\n // find list of unloaded product\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: { domain: { id: domain.id }, arrivalNotice: foundGAN, actualPalletQty: Not(IsNull()) },\n relations: ['product']\n })\n\n const products: Product[] = targetProducts.map((op: OrderProduct) => op.product)\n const prodType: any[] = products.map(prod => prod.type)\n\n return await getManager().transaction(async (trxMgr: EntityManager) => {\n await trxMgr.query(\n `\n create temp table temp_invHistory on commit drop as (\n select i2.id as inventory_id, i2.pallet_id, i2.product_id, i2.packing_type, i2.batch_id,\n ih.id as inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.uom_value, ih.opening_uom_value, \n ih.created_at\n from (\n select i2.* from inventories i2 \n inner join order_inventories oi on oi.inventory_id = i2.id\n where oi.arrival_notice_id = $1\n ) i2\n inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id \n )\n `,\n [foundGAN.id]\n )\n\n const invItems: any[] = await trxMgr.query(\n ` \n SELECT rn,\n inv_id, \n case when rn = 1 then \"packingType\" else null end as \"packingType\",\n case when rn = 1 then \"createdAt\" else null end as \"createdAt\",\n case when rn = 1 then \"productName\" else null end as \"productName\", \n case when rn = 1 then \"unloadedQty\" else null end as \"unloadedQty\",\n case when rn = 1 then \"outboundAt\" else null end as \"outboundAt\",\n \"doName\",\n case when rn = 1 then \"palletId\" else null end as \"palletId\",\n qty,\n case when rn = 1 then \"ownTransport\" else null end as \"ownTransport\",\n case when rn = 1 then \"vasName\" else null end as \"vasName\" \n from \n ( \n SELECT\n row_number() over(partition by pallet_id order by inv.pallet_id, product.name asc) as rn,\n inv.id AS \"inv_id\", inv.packing_type AS \"packingType\", inv.created_at AS \"createdAt\", product.name AS \"productName\", \n (\t\n select distinct on(pallet_id) COALESCE(qty, 0) AS unloadedQty from temp_invHistory invh \n where invh.status = 'UNLOADED' and invh.inventory_id = inv.id\n order by pallet_id, seq asc\n ) AS \"unloadedQty\", \n (\n select distinct on(pallet_id) COALESCE(created_at, null) AS outboundAt from temp_invHistory invh \n where invh.status = 'TERMINATED' and invh.inventory_id = inv.id\n order by pallet_id, seq desc\n ) AS \"outboundAt\",\n STRING_AGG (case when do2.name is not null then (CONCAT(do2.delivery_date, ' (', orderInv.release_qty, ') ', do2.name, ', ', case when do2.own_collection = true then 'TPT N' else 'TPT Y' end )) else null end, ', ') AS \"doName\",\n case when plt.name is not null then (CONCAT(inv.pallet_id, ' (', plt.name, ')')) else inv.pallet_id end AS \"palletId\",\n SUM(orderInv.release_qty) as \"qty\",\n do2.own_collection AS \"ownTransport\",\n STRING_AGG (vas.name, ', ') AS \"vasName\" \n FROM inventories inv \n LEFT JOIN order_inventories orderInv ON orderInv.inventory_id = inv.id AND orderInv.release_good_id is not null and orderInv.status <> 'CANCELLED' AND orderinv.picked_qty > 0\n LEFT JOIN order_vass orderVass ON orderVass.inventory_id = inv.id \n LEFT JOIN vass vas ON vas.id = orderVass.vas_id \n LEFT JOIN pallets plt on plt.id = inv.reusable_pallet_id\n LEFT JOIN delivery_orders do2 ON do2.id = orderInv.delivery_order_id \n LEFT JOIN products product ON product.id=inv.product_id \n inner join order_inventories oi on oi.inventory_id = inv.id\n where oi.arrival_notice_id = $1\n AND inv.domain_id = $2\n GROUP BY inv.id, product.name, do2.own_collection, plt.name\n ORDER BY inv.pallet_id, product.name asc\n ) foo\n `,\n [foundGAN.id, domain.id]\n )\n\n const sumPackQty = targetProducts.map((op: OrderProduct) => op.actualPackQty).reduce((a, b) => a + b, 0)\n\n let sumPalletQty = 0\n if (foundJS?.sumPalletQty) {\n sumPalletQty = foundJS.sumPalletQty\n }\n let index = 0\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.company.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n container_no: foundJS?.containerNo ? foundJS.containerNo : foundJS.deliveryOrderNo,\n container_size: foundJS ? foundJS.containerSize : null,\n eta: foundGAN?.ata ? DateTimeConverter.datetime(foundGAN.ata, timezoneOffSet) : null,\n ata: foundGAN?.ata ? DateTimeConverter.date(foundGAN.ata) : null,\n unloading_date: foundWS?.startedAt ? DateTimeConverter.date(foundWS.startedAt) : '',\n mt_date: foundJS?.containerMtDate ? DateTimeConverter.date(foundJS.containerMtDate) : '',\n advise_mt_date: foundJS.adviseMtDate ? DateTimeConverter.datetime(foundJS.adviseMtDate, timezoneOffSet) : '',\n loose_item: foundGAN.looseItem ? 'N' : 'Y',\n no_of_pallet:\n (sumPalletQty > 1 ? `${sumPalletQty} PALLETS` : `${sumPalletQty} PALLET`) +\n `, ` +\n (sumPackQty ? `${sumPackQty} CTN` : 0),\n commodity: prodType.filter((a, b) => prodType.indexOf(a) === b).join(', '),\n created_on: DateTimeConverter.date(foundJS.createdAt),\n job_no: foundJS ? foundJS.name : null,\n ref_no: foundGAN.name,\n product_list: invItems.map(item => {\n index = item.rn == 1 ? index + 1 : index\n return {\n idx: item.rn == 1 ? index : '',\n pallet_id: item.palletId,\n product_name: item.productName,\n product_type: item.packingType,\n in_pallet: DateTimeConverter.date(item.createdAt),\n out_pallet: item?.outboundAt ? DateTimeConverter.date(item.outboundAt) : null,\n do_list: item.doName,\n product_qty: item.unloadedQty,\n remark: foundGAN.looseItem ? 'STRETCH FILM' : null\n }\n })\n }\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}\n"]}
@@ -17,12 +17,12 @@ const datetime_util_1 = require("../utils/datetime-util");
17
17
  const REPORT_API_URL = env_1.config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html');
18
18
  async function renderKimedaGRN({ grnNo, timezoneOffSet }, context) {
19
19
  // 1. find domain
20
- const domain = await (0, typeorm_1.getRepository)(shell_1.Domain).findOne({
20
+ const domain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({
21
21
  where: { id: context.state.domain.id }
22
22
  });
23
23
  // 2. find grn
24
- const foundGRN = await (0, typeorm_1.getRepository)(sales_base_1.GoodsReceivalNote).findOne({
25
- where: { domain, name: grnNo },
24
+ const foundGRN = await (0, shell_1.getRepository)(sales_base_1.GoodsReceivalNote).findOne({
25
+ where: { domain: { id: domain.id }, name: grnNo },
26
26
  relations: ['domain', 'bizplace', 'bizplace.domain', 'bizplace.company', 'arrivalNotice']
27
27
  });
28
28
  // 3. find GAN
@@ -30,58 +30,73 @@ async function renderKimedaGRN({ grnNo, timezoneOffSet }, context) {
30
30
  const ownRefNo = foundGAN.refNo;
31
31
  // 4. find customer bizplace
32
32
  const partnerBiz = foundGRN.bizplace;
33
- const partnerDomain = await (0, typeorm_1.getRepository)(auth_base_1.Partner).findOne({
33
+ const partnerDomain = await (0, shell_1.getRepository)(auth_base_1.Partner).findOne({
34
34
  where: { partnerDomain: partnerBiz.domain, domain },
35
35
  relations: ['domain']
36
36
  });
37
37
  const domainOwner = partnerDomain.domain;
38
- const domainBizplace = await (0, typeorm_1.getRepository)(biz_base_1.Bizplace).findOne({
38
+ const domainBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
39
39
  where: { domain: domainOwner },
40
40
  relations: ['company']
41
41
  });
42
42
  // 5. find domain contact point
43
- const foundCP = await (0, typeorm_1.getRepository)(biz_base_1.ContactPoint).findOne({
44
- where: { domain, bizplace: domainBizplace }
43
+ const foundCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
44
+ where: { domain: { id: domain.id }, bizplace: domainBizplace }
45
45
  });
46
46
  // 5. find domain contact point
47
- const foundPartnerCP = await (0, typeorm_1.getRepository)(biz_base_1.ContactPoint).findOne({
48
- where: { domain, bizplace: partnerBiz }
47
+ const foundPartnerCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
48
+ where: { domain: { id: domain.id }, bizplace: partnerBiz }
49
49
  });
50
50
  // 6. find unloading worksheet
51
- const foundWS = await (0, typeorm_1.getRepository)(entities_1.Worksheet).findOne({
52
- where: { domain, arrivalNotice: foundGAN, type: constants_1.WORKSHEET_TYPE.UNLOADING, status: sales_base_1.ORDER_STATUS.DONE },
51
+ const foundWS = await (0, shell_1.getRepository)(entities_1.Worksheet).findOne({
52
+ where: {
53
+ domain: { id: domain.id },
54
+ arrivalNotice: foundGAN,
55
+ type: constants_1.WORKSHEET_TYPE.UNLOADING,
56
+ status: sales_base_1.ORDER_STATUS.DONE
57
+ },
53
58
  relations: ['worksheetDetails', 'updater']
54
59
  });
55
60
  // find putaway worksheet
56
- const foundPutawayWS = await (0, typeorm_1.getRepository)(entities_1.Worksheet).findOne({
57
- where: { domain, arrivalNotice: foundGAN, type: constants_1.WORKSHEET_TYPE.PUTAWAY, status: sales_base_1.ORDER_STATUS.DONE },
61
+ const foundPutawayWS = await (0, shell_1.getRepository)(entities_1.Worksheet).findOne({
62
+ where: {
63
+ domain: { id: domain.id },
64
+ arrivalNotice: foundGAN,
65
+ type: constants_1.WORKSHEET_TYPE.PUTAWAY,
66
+ status: sales_base_1.ORDER_STATUS.DONE
67
+ },
58
68
  relations: ['worksheetDetails', 'updater']
59
69
  });
60
- const targetProducts = await (0, typeorm_1.getRepository)(sales_base_1.OrderProduct).find({
61
- where: { domain, arrivalNotice: foundGAN, actualPalletQty: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()), actualPackQty: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()) },
70
+ const targetProducts = await (0, shell_1.getRepository)(sales_base_1.OrderProduct).find({
71
+ where: {
72
+ domain: { id: domain.id },
73
+ arrivalNotice: foundGAN,
74
+ actualPalletQty: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()),
75
+ actualPackQty: (0, typeorm_1.Not)((0, typeorm_1.IsNull)())
76
+ },
62
77
  relations: ['product']
63
78
  });
64
79
  // 7. find grn template based on category
65
- const foundTemplate = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
66
- where: { domain, category: constants_1.TEMPLATE_TYPE.GRN_TEMPLATE }
80
+ const foundTemplate = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
81
+ where: { domain: { id: domain.id }, category: constants_1.TEMPLATE_TYPE.GRN_TEMPLATE }
67
82
  });
68
83
  // 8. find grn logo
69
- const foundLogo = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
84
+ const foundLogo = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
70
85
  where: {
71
- domain,
86
+ domain: { id: domain.id },
72
87
  category: constants_1.TEMPLATE_TYPE.LOGO
73
88
  }
74
89
  });
75
90
  // 9. find signature
76
- const foundSignature = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
91
+ const foundSignature = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
77
92
  where: {
78
- domain,
93
+ domain: { id: domain.id },
79
94
  category: constants_1.TEMPLATE_TYPE.SIGNATURE
80
95
  }
81
96
  });
82
- const foundCop = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
97
+ const foundCop = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
83
98
  where: {
84
- domain,
99
+ domain: { id: domain.id },
85
100
  category: constants_1.TEMPLATE_TYPE.COP
86
101
  }
87
102
  });
@@ -1 +1 @@
1
- {"version":3,"file":"render-kimeda-grn.js","sourceRoot":"","sources":["../../server/controllers/render-kimeda-grn.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { getRepository, IsNull, Not } 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 { ArrivalNotice, GoodsReceivalNote, ORDER_STATUS, OrderProduct } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet } 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 renderKimedaGRN({ grnNo, timezoneOffSet }, context: any) {\n // 1. find domain\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n // 2. find grn\n const foundGRN: GoodsReceivalNote = await getRepository(GoodsReceivalNote).findOne({\n where: { domain, name: grnNo },\n relations: ['domain', 'bizplace', 'bizplace.domain', 'bizplace.company', 'arrivalNotice']\n })\n\n // 3. find GAN\n const foundGAN: ArrivalNotice = foundGRN.arrivalNotice\n const ownRefNo = foundGAN.refNo\n\n // 4. find customer bizplace\n const partnerBiz: Bizplace = foundGRN.bizplace\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 const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n // 5. find domain contact point\n const foundCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain, bizplace: domainBizplace }\n })\n\n // 5. find domain contact point\n const foundPartnerCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain, bizplace: partnerBiz }\n })\n\n // 6. find unloading worksheet\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING, status: ORDER_STATUS.DONE },\n relations: ['worksheetDetails', 'updater']\n })\n\n // find putaway worksheet\n const foundPutawayWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.PUTAWAY, status: ORDER_STATUS.DONE },\n relations: ['worksheetDetails', 'updater']\n })\n\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: { domain, arrivalNotice: foundGAN, actualPalletQty: Not(IsNull()), actualPackQty: Not(IsNull()) },\n relations: ['product']\n })\n\n // 7. find grn template based on category\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain, category: TEMPLATE_TYPE.GRN_TEMPLATE }\n })\n\n // 8. find grn logo\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n // 9. find signature\n const foundSignature: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.SIGNATURE\n }\n })\n\n const foundCop: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.COP\n }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n let signature = null\n if (foundSignature?.path) {\n signature = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundSignature.path, 'base64'))\n }\n\n let cop = null\n if (foundCop?.path) {\n cop = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundCop.path, 'base64'))\n }\n\n const data = {\n logo_url: logo,\n sign_url: signature,\n cop_url: cop,\n customer_biz: partnerBiz.name,\n customer_address: partnerBiz.address,\n company_domain: domainBizplace.company.name,\n company_phone: foundCP.phone,\n company_email: foundCP.email,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n order_no: foundGRN.name,\n gan_no: foundGAN.name,\n gan_accepted_at: foundGAN.acceptedAt ? DateTimeConverter.datetime(foundGAN.acceptedAt, timezoneOffSet) : '',\n unload_date: DateTimeConverter.date(foundWS.endedAt),\n ref_no: ownRefNo ? `${foundGAN.name} / ${foundGAN.refNo}` : `${foundGAN.name}`,\n received_date: DateTimeConverter.date(foundWS.endedAt),\n truck_no: foundGAN.truckNo || '',\n container_no: foundGAN.containerNo || '',\n delivery_order_no: foundGAN.deliveryOrderNo ? foundGAN.deliveryOrderNo : '',\n account_no: foundPartnerCP ? foundPartnerCP.accountNo : '',\n unloaded_by: foundWS ? foundWS.updater.name : '',\n putaway_by: foundPutawayWS ? foundPutawayWS.updater.name : '',\n product_list: targetProducts.map((item, idx) => {\n return {\n list_no: idx + 1,\n product_sku: `${item.product.sku}`,\n product_name: `${item.product.name}(${item.product.description})`,\n product_desc: item.product.description,\n product_nameOnly: item.product.name,\n product_type: item.packingType,\n product_batch: item.batchId,\n product_qty: item.actualPackQty,\n product_uom_value: `${Math.round(item.uomValue * 100) / 100} ${item.uom}`,\n pallet_qty: item.actualPalletQty,\n remark: (item.remark ? item.remark : '') + (item.issue ? ' [Issue]: ' + item.issue : '')\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"]}
1
+ {"version":3,"file":"render-kimeda-grn.js","sourceRoot":"","sources":["../../server/controllers/render-kimeda-grn.ts"],"names":[],"mappings":";;;;AAAA,kEAAgC;AAChC,oEAA8B;AAC9B,qCAAqC;AAErC,qEAAqE;AACrE,yDAAmD;AACnD,uDAAiE;AACjE,6CAA4C;AAC5C,2DAAyG;AACzG,iDAA6D;AAE7D,4CAA4D;AAC5D,0CAAuC;AACvC,0DAA0D;AAE1D,MAAM,cAAc,GAAG,YAAM,CAAC,GAAG,CAAC,cAAc,EAAE,6CAA6C,CAAC,CAAA;AAEzF,KAAK,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,OAAwB;IACvF,iBAAiB;IACjB,MAAM,MAAM,GAAW,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC;QACzD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;KACvC,CAAC,CAAA;IAEF,cAAc;IACd,MAAM,QAAQ,GAAsB,MAAM,IAAA,qBAAa,EAAC,8BAAiB,CAAC,CAAC,OAAO,CAAC;QACjF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACjD,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,CAAC;KAC1F,CAAC,CAAA;IAEF,cAAc;IACd,MAAM,QAAQ,GAAkB,QAAQ,CAAC,aAAa,CAAA;IACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAA;IAE/B,4BAA4B;IAC5B,MAAM,UAAU,GAAa,QAAQ,CAAC,QAAQ,CAAA;IAE9C,MAAM,aAAa,GAAY,MAAM,IAAA,qBAAa,EAAC,mBAAO,CAAC,CAAC,OAAO,CAAC;QAClE,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE;QACnD,SAAS,EAAE,CAAC,QAAQ,CAAC;KACtB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAW,aAAa,CAAC,MAAM,CAAA;IAChD,MAAM,cAAc,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACrE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;QAC9B,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,+BAA+B;IAC/B,MAAM,OAAO,GAAiB,MAAM,IAAA,qBAAa,EAAC,uBAAY,CAAC,CAAC,OAAO,CAAC;QACtE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;KAC/D,CAAC,CAAA;IAEF,+BAA+B;IAC/B,MAAM,cAAc,GAAiB,MAAM,IAAA,qBAAa,EAAC,uBAAY,CAAC,CAAC,OAAO,CAAC;QAC7E,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;KAC3D,CAAC,CAAA;IAEF,8BAA8B;IAC9B,MAAM,OAAO,GAAc,MAAM,IAAA,qBAAa,EAAC,oBAAS,CAAC,CAAC,OAAO,CAAC;QAChE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,aAAa,EAAE,QAAQ;YACvB,IAAI,EAAE,0BAAc,CAAC,SAAS;YAC9B,MAAM,EAAE,yBAAY,CAAC,IAAI;SAC1B;QACD,SAAS,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC;KAC3C,CAAC,CAAA;IAEF,yBAAyB;IACzB,MAAM,cAAc,GAAc,MAAM,IAAA,qBAAa,EAAC,oBAAS,CAAC,CAAC,OAAO,CAAC;QACvE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,aAAa,EAAE,QAAQ;YACvB,IAAI,EAAE,0BAAc,CAAC,OAAO;YAC5B,MAAM,EAAE,yBAAY,CAAC,IAAI;SAC1B;QACD,SAAS,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC;KAC3C,CAAC,CAAA;IAEF,MAAM,cAAc,GAAmB,MAAM,IAAA,qBAAa,EAAC,yBAAY,CAAC,CAAC,IAAI,CAAC;QAC5E,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,aAAa,EAAE,QAAQ;YACvB,eAAe,EAAE,IAAA,aAAG,EAAC,IAAA,gBAAM,GAAE,CAAC;YAC9B,aAAa,EAAE,IAAA,aAAG,EAAC,IAAA,gBAAM,GAAE,CAAC;SAC7B;QACD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,yCAAyC;IACzC,MAAM,aAAa,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACxE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAa,CAAC,YAAY,EAAE;KAC3E,CAAC,CAAA;IAEF,mBAAmB;IACnB,MAAM,SAAS,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACpE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,yBAAa,CAAC,IAAI;SAC7B;KACF,CAAC,CAAA;IAEF,oBAAoB;IACpB,MAAM,cAAc,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACzE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,yBAAa,CAAC,SAAS;SAClC;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACnE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,yBAAa,CAAC,GAAG;SAC5B;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,yBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEpE,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,EAAE;QACnB,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,MAAM,yBAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;KACtG;IAED,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,IAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EAAE;QACxB,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,MAAM,yBAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;KACrH;IAED,IAAI,GAAG,GAAG,IAAI,CAAA;IACd,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE;QAClB,GAAG,GAAG,OAAO,GAAG,cAAc,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,MAAM,yBAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;KACzG;IAED,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,UAAU,CAAC,IAAI;QAC7B,gBAAgB,EAAE,UAAU,CAAC,OAAO;QACpC,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI;QAC3C,aAAa,EAAE,OAAO,CAAC,KAAK;QAC5B,aAAa,EAAE,OAAO,CAAC,KAAK;QAC5B,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG;QACvC,eAAe,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;QAC/C,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,MAAM,EAAE,QAAQ,CAAC,IAAI;QACrB,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,iCAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;QAC3G,WAAW,EAAE,iCAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE;QAC9E,aAAa,EAAE,iCAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACtD,QAAQ,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;QAChC,YAAY,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;QACxC,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;QAC3E,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QAC1D,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAChD,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC7D,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC7C,OAAO;gBACL,OAAO,EAAE,GAAG,GAAG,CAAC;gBAChB,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBAClC,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG;gBACjE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBACtC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACnC,YAAY,EAAE,IAAI,CAAC,WAAW;gBAC9B,aAAa,EAAE,IAAI,CAAC,OAAO;gBAC3B,WAAW,EAAE,IAAI,CAAC,aAAa;gBAC/B,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;gBACzE,UAAU,EAAE,IAAI,CAAC,eAAe;gBAChC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;aACzF,CAAA;QACH,CAAC,CAAC;KACH,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,cAAc,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IAEF,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;AAC9B,CAAC;AAvKD,0CAuKC","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { IsNull, Not } 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 { ArrivalNotice, GoodsReceivalNote, ORDER_STATUS, OrderProduct } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet } 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 renderKimedaGRN({ grnNo, timezoneOffSet }, context: ResolverContext) {\n // 1. find domain\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n // 2. find grn\n const foundGRN: GoodsReceivalNote = await getRepository(GoodsReceivalNote).findOne({\n where: { domain: { id: domain.id }, name: grnNo },\n relations: ['domain', 'bizplace', 'bizplace.domain', 'bizplace.company', 'arrivalNotice']\n })\n\n // 3. find GAN\n const foundGAN: ArrivalNotice = foundGRN.arrivalNotice\n const ownRefNo = foundGAN.refNo\n\n // 4. find customer bizplace\n const partnerBiz: Bizplace = foundGRN.bizplace\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 const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n // 5. find domain contact point\n const foundCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, bizplace: domainBizplace }\n })\n\n // 5. find domain contact point\n const foundPartnerCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, bizplace: partnerBiz }\n })\n\n // 6. find unloading worksheet\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: {\n domain: { id: domain.id },\n arrivalNotice: foundGAN,\n type: WORKSHEET_TYPE.UNLOADING,\n status: ORDER_STATUS.DONE\n },\n relations: ['worksheetDetails', 'updater']\n })\n\n // find putaway worksheet\n const foundPutawayWS: Worksheet = await getRepository(Worksheet).findOne({\n where: {\n domain: { id: domain.id },\n arrivalNotice: foundGAN,\n type: WORKSHEET_TYPE.PUTAWAY,\n status: ORDER_STATUS.DONE\n },\n relations: ['worksheetDetails', 'updater']\n })\n\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: {\n domain: { id: domain.id },\n arrivalNotice: foundGAN,\n actualPalletQty: Not(IsNull()),\n actualPackQty: Not(IsNull())\n },\n relations: ['product']\n })\n\n // 7. find grn template based on category\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, category: TEMPLATE_TYPE.GRN_TEMPLATE }\n })\n\n // 8. find grn logo\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n // 9. find signature\n const foundSignature: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.SIGNATURE\n }\n })\n\n const foundCop: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.COP\n }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n let signature = null\n if (foundSignature?.path) {\n signature = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundSignature.path, 'base64'))\n }\n\n let cop = null\n if (foundCop?.path) {\n cop = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundCop.path, 'base64'))\n }\n\n const data = {\n logo_url: logo,\n sign_url: signature,\n cop_url: cop,\n customer_biz: partnerBiz.name,\n customer_address: partnerBiz.address,\n company_domain: domainBizplace.company.name,\n company_phone: foundCP.phone,\n company_email: foundCP.email,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n order_no: foundGRN.name,\n gan_no: foundGAN.name,\n gan_accepted_at: foundGAN.acceptedAt ? DateTimeConverter.datetime(foundGAN.acceptedAt, timezoneOffSet) : '',\n unload_date: DateTimeConverter.date(foundWS.endedAt),\n ref_no: ownRefNo ? `${foundGAN.name} / ${foundGAN.refNo}` : `${foundGAN.name}`,\n received_date: DateTimeConverter.date(foundWS.endedAt),\n truck_no: foundGAN.truckNo || '',\n container_no: foundGAN.containerNo || '',\n delivery_order_no: foundGAN.deliveryOrderNo ? foundGAN.deliveryOrderNo : '',\n account_no: foundPartnerCP ? foundPartnerCP.accountNo : '',\n unloaded_by: foundWS ? foundWS.updater.name : '',\n putaway_by: foundPutawayWS ? foundPutawayWS.updater.name : '',\n product_list: targetProducts.map((item, idx) => {\n return {\n list_no: idx + 1,\n product_sku: `${item.product.sku}`,\n product_name: `${item.product.name}(${item.product.description})`,\n product_desc: item.product.description,\n product_nameOnly: item.product.name,\n product_type: item.packingType,\n product_batch: item.batchId,\n product_qty: item.actualPackQty,\n product_uom_value: `${Math.round(item.uomValue * 100) / 100} ${item.uom}`,\n pallet_qty: item.actualPalletQty,\n remark: (item.remark ? item.remark : '') + (item.issue ? ' [Issue]: ' + item.issue : '')\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"]}
@@ -4,33 +4,32 @@ exports.renderManifest = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const form_data_1 = tslib_1.__importDefault(require("form-data"));
6
6
  const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
7
- const typeorm_1 = require("typeorm");
8
7
  const attachment_base_1 = require("@things-factory/attachment-base");
8
+ const biz_base_1 = require("@things-factory/biz-base");
9
9
  const env_1 = require("@things-factory/env");
10
10
  const sales_base_1 = require("@things-factory/sales-base");
11
11
  const shell_1 = require("@things-factory/shell");
12
- const biz_base_1 = require("@things-factory/biz-base");
13
12
  const constants_1 = require("../constants");
14
13
  const datetime_util_1 = require("../utils/datetime-util");
15
14
  const REPORT_API_URL = env_1.config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html');
16
15
  async function renderManifest({ manifestNo }, context) {
17
16
  // 1. find domain
18
- const domain = await (0, typeorm_1.getRepository)(shell_1.Domain).findOne({
17
+ const domain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({
19
18
  where: { id: context.state.domain.id }
20
19
  });
21
20
  // 2. find manifest
22
- const manifest = await (0, typeorm_1.getRepository)(sales_base_1.Manifest).findOne({
23
- where: { domain, name: manifestNo },
21
+ const manifest = await (0, shell_1.getRepository)(sales_base_1.Manifest).findOne({
22
+ where: { domain: { id: domain.id }, name: manifestNo },
24
23
  relations: ['domain']
25
24
  });
26
25
  // find release good
27
- let releaseGoods = await (0, typeorm_1.getRepository)(sales_base_1.ReleaseGood).find({
28
- where: { domain, manifest },
26
+ let releaseGoods = await (0, shell_1.getRepository)(sales_base_1.ReleaseGood).find({
27
+ where: { domain: { id: domain.id }, manifest },
29
28
  relations: ['bizplace']
30
29
  });
31
30
  // 7. find grn template based on category
32
- const foundTemplate = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
33
- where: { domain, category: constants_1.TEMPLATE_TYPE.MANIFEST_TEMPLATE }
31
+ const foundTemplate = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
32
+ where: { domain: { id: domain.id }, category: constants_1.TEMPLATE_TYPE.MANIFEST_TEMPLATE }
34
33
  });
35
34
  const template = await attachment_base_1.STORAGE.readFile(foundTemplate.path, 'utf-8');
36
35
  const data = {
@@ -1 +1 @@
1
- {"version":3,"file":"render-manifest.js","sourceRoot":"","sources":["../../server/controllers/render-manifest.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { getRepository } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { config } from '@things-factory/env'\nimport { Manifest, ReleaseGood } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\nimport { Bizplace, getCompanyBizplace } from '@things-factory/biz-base'\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 renderManifest({ manifestNo }, context: any) {\n // 1. find domain\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n // 2. find manifest\n const manifest: Manifest = await getRepository(Manifest).findOne({\n where: { domain, name: manifestNo },\n relations: ['domain']\n })\n\n // find release good\n let releaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n where: { domain, manifest },\n relations: ['bizplace']\n })\n\n // 7. find grn template based on category\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain, category: TEMPLATE_TYPE.MANIFEST_TEMPLATE }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n const data = {\n shipping_provider: manifest?.shippingProvider,\n manifest_no: manifest?.name,\n manifest_date: DateTimeConverter.date(manifest?.createdAt).toString(),\n total_list: releaseGoods?.length || 0,\n product_list: await Promise.all (releaseGoods.map(async(item, idx) => {\n const customerBizplaceId: string = item.bizplace.id\n const custCompanyBizplace: Bizplace = await getCompanyBizplace(null, null, customerBizplaceId)\n return {\n list_no: idx + 1,\n order_no: item?.refNo,\n tracking_no: item?.trackingNo,\n phone: item?.phone1,\n delivery_date: DateTimeConverter.date(manifest?.dispatchedAt).toString(),\n attention_to: item?.attentionTo,\n delivery_address: item?.deliveryAddress1,\n postal_code_city: `${item?.postalCode}, ${item?.city}`,\n remark: item?.remark,\n status: item?.status,\n company_domain_name: custCompanyBizplace.domain.name\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"]}
1
+ {"version":3,"file":"render-manifest.js","sourceRoot":"","sources":["../../server/controllers/render-manifest.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Bizplace, getCompanyBizplace } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { Manifest, ReleaseGood } 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 renderManifest({ manifestNo }, context: ResolverContext) {\n // 1. find domain\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n // 2. find manifest\n const manifest: Manifest = await getRepository(Manifest).findOne({\n where: { domain: { id: domain.id }, name: manifestNo },\n relations: ['domain']\n })\n\n // find release good\n let releaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n where: { domain: { id: domain.id }, manifest },\n relations: ['bizplace']\n })\n\n // 7. find grn template based on category\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, category: TEMPLATE_TYPE.MANIFEST_TEMPLATE }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n const data = {\n shipping_provider: manifest?.shippingProvider,\n manifest_no: manifest?.name,\n manifest_date: DateTimeConverter.date(manifest?.createdAt).toString(),\n total_list: releaseGoods?.length || 0,\n product_list: await Promise.all(\n releaseGoods.map(async (item, idx) => {\n const customerBizplaceId: string = item.bizplace.id\n const custCompanyBizplace: Bizplace = await getCompanyBizplace(null, null, customerBizplaceId)\n return {\n list_no: idx + 1,\n order_no: item?.refNo,\n tracking_no: item?.trackingNo,\n phone: item?.phone1,\n delivery_date: DateTimeConverter.date(manifest?.dispatchedAt).toString(),\n attention_to: item?.attentionTo,\n delivery_address: item?.deliveryAddress1,\n postal_code_city: `${item?.postalCode}, ${item?.city}`,\n remark: item?.remark,\n status: item?.status,\n company_domain_name: custCompanyBizplace.domain.name\n }\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"]}
@@ -4,19 +4,19 @@ exports.renderManualDO = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const form_data_1 = tslib_1.__importDefault(require("form-data"));
6
6
  const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
7
- const typeorm_1 = require("typeorm");
8
7
  const attachment_base_1 = require("@things-factory/attachment-base");
9
8
  const auth_base_1 = require("@things-factory/auth-base");
10
9
  const biz_base_1 = require("@things-factory/biz-base");
11
10
  const env_1 = require("@things-factory/env");
12
11
  const sales_base_1 = require("@things-factory/sales-base");
12
+ const shell_1 = require("@things-factory/shell");
13
13
  const constants_1 = require("../constants");
14
14
  const REPORT_API_URL = env_1.config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html');
15
15
  async function renderManualDO({ doNo }, context) {
16
16
  const { domain } = context.state;
17
17
  // #1. find delivery order based on name
18
- const foundDO = await (0, typeorm_1.getRepository)(sales_base_1.DeliveryOrder).findOne({
19
- where: { domain, name: doNo },
18
+ const foundDO = await (0, shell_1.getRepository)(sales_base_1.DeliveryOrder).findOne({
19
+ where: { domain: { id: domain.id }, name: doNo },
20
20
  relations: [
21
21
  'domain',
22
22
  'bizplace',
@@ -32,38 +32,38 @@ async function renderManualDO({ doNo }, context) {
32
32
  // #2. find contact point based on DO.contactPointRefId
33
33
  let foundCP = null;
34
34
  if (foundDO === null || foundDO === void 0 ? void 0 : foundDO.contactPointRefId) {
35
- foundCP = await (0, typeorm_1.getRepository)(biz_base_1.ContactPoint).findOne({
36
- where: { domain, id: foundDO.contactPointRefId }
35
+ foundCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
36
+ where: { domain: { id: domain.id }, id: foundDO.contactPointRefId }
37
37
  });
38
38
  }
39
39
  // #3. find partner bizplace and Domain
40
40
  const partnerBiz = foundDO.bizplace;
41
- const partnerDomain = await (0, typeorm_1.getRepository)(auth_base_1.Partner).findOne({
41
+ const partnerDomain = await (0, shell_1.getRepository)(auth_base_1.Partner).findOne({
42
42
  where: { partnerDomain: partnerBiz.domain },
43
43
  relations: ['domain']
44
44
  });
45
45
  // #4. find domain owner and bizplace
46
46
  const domainOwner = partnerDomain.domain;
47
- const domainBizplace = await (0, typeorm_1.getRepository)(biz_base_1.Bizplace).findOne({
47
+ const domainBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
48
48
  where: { domain: domainOwner },
49
49
  relations: ['company']
50
50
  });
51
51
  // #5. find domain contact point
52
- const foundWarehouseCP = await (0, typeorm_1.getRepository)(biz_base_1.ContactPoint).findOne({
53
- where: { domain, bizplace: domainBizplace, type: 'WAREHOUSE' }
52
+ const foundWarehouseCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
53
+ where: { domain: { id: domain.id }, bizplace: domainBizplace, type: 'WAREHOUSE' }
54
54
  });
55
55
  // #6. find list of order inventory
56
- const orderInventories = await (0, typeorm_1.getRepository)(sales_base_1.OrderInventory).find({
57
- where: { domain, deliveryOrder: foundDO },
56
+ const orderInventories = await (0, shell_1.getRepository)(sales_base_1.OrderInventory).find({
57
+ where: { domain: { id: domain.id }, deliveryOrder: foundDO },
58
58
  relations: ['product']
59
59
  });
60
60
  // #7. find DO template and logo
61
- const foundTemplate = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
62
- where: { domain, category: constants_1.TEMPLATE_TYPE.DO_TEMPLATE }
61
+ const foundTemplate = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
62
+ where: { domain: { id: domain.id }, category: constants_1.TEMPLATE_TYPE.DO_TEMPLATE }
63
63
  });
64
- const foundLogo = await (0, typeorm_1.getRepository)(attachment_base_1.Attachment).findOne({
64
+ const foundLogo = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
65
65
  where: {
66
- domain,
66
+ domain: { id: domain.id },
67
67
  category: constants_1.TEMPLATE_TYPE.LOGO
68
68
  }
69
69
  });
@@ -1 +1 @@
1
- {"version":3,"file":"render-manual-do.js","sourceRoot":"","sources":["../../server/controllers/render-manual-do.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { getRepository } 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 { Product } from '@things-factory/product-base'\nimport { DeliveryOrder, OrderInventory } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE } from '../constants'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderManualDO({ doNo }, context: any) {\n const { domain }: { domain: Domain } = context.state\n\n // #1. find delivery order based on name\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 'creator',\n 'updater'\n ]\n })\n\n const ownTransportFlag: Boolean = foundDO.ownCollection\n\n // #2. find contact point based on DO.contactPointRefId\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 // #3. find partner bizplace and Domain\n const partnerBiz: Bizplace = foundDO.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain },\n relations: ['domain']\n })\n\n // #4. find domain owner and bizplace\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 // #6. find list of order inventory\n const orderInventories: OrderInventory[] = await getRepository(OrderInventory).find({\n where: { domain, deliveryOrder: foundDO },\n relations: ['product']\n })\n\n // #7. find DO template and logo\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 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 // #8. find truck driver name\n let foundDriver: any = null\n if (foundDO?.ownCollection && foundDO?.otherDriver) {\n foundDriver = foundDO.otherDriver\n } else {\n foundDriver = foundDO.transportDriver.name\n }\n\n // #9. get product data\n let productList: any[] = []\n productList = orderInventories\n .map((oi: OrderInventory) => {\n const product: Product = oi.product\n return {\n product_name: `${product.name} (${product.description})`,\n product_desc: `${product?.description || ''}`,\n product_nameOnly: `${product.name}`,\n product_sku: `${product.sku}`,\n product_type: `${product.packingType}`,\n product_batch: `${oi.batchId}`,\n product_qty: `${oi.releaseQty}`,\n product_weight: `${oi.releaseWeight}`,\n product_gross_weight: product.grossWeight,\n product_uom_value: `${oi.releaseUomValue}`,\n product_uom: `${product.primaryUnit || ''}`,\n remark: `${oi.remark}`,\n cross_docking: `${oi.crossDocking}`,\n pallet: ''\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.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_batch: item.product_batch,\n product_qty: item.product_qty,\n product_weight: item.product_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 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.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 // 10. set data to be displayed in DO document\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n company_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n warehouse_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n company_email: foundWarehouseCP.email,\n customer_name: foundCP ? foundCP.name : null,\n customer_delivery_address: foundCP ? foundCP.address : null,\n customer_billing_address: foundCP ? foundCP.billingAddress : null,\n customer_phone: foundCP ? foundCP.phone : 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 ref_no: foundDO.refNo,\n ref_no_only: foundDO.refNo,\n order_no: foundDO.name,\n delivery_date: foundDO.deliveryDate || '',\n truck_no: foundDO.truckNo,\n driver_name: foundDriver || '',\n pallet_qty: foundDO.palletQty,\n worker_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 }\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-manual-do.js","sourceRoot":"","sources":["../../server/controllers/render-manual-do.ts"],"names":[],"mappings":";;;;AAAA,kEAAgC;AAChC,oEAA8B;AAE9B,qEAAqE;AACrE,yDAAmD;AACnD,uDAAiE;AACjE,6CAA4C;AAE5C,2DAA0E;AAC1E,iDAA6D;AAE7D,4CAA4C;AAE5C,MAAM,cAAc,GAAG,YAAM,CAAC,GAAG,CAAC,cAAc,EAAE,6CAA6C,CAAC,CAAA;AAEzF,KAAK,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE,OAAwB;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAEhC,wCAAwC;IACxC,MAAM,OAAO,GAAkB,MAAM,IAAA,qBAAa,EAAC,0BAAa,CAAC,CAAC,OAAO,CAAC;QACxE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;QAChD,SAAS,EAAE;YACT,QAAQ;YACR,UAAU;YACV,kBAAkB;YAClB,iBAAiB;YACjB,iBAAiB;YACjB,kBAAkB;YAClB,SAAS;YACT,SAAS;SACV;KACF,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAY,OAAO,CAAC,aAAa,CAAA;IAEvD,uDAAuD;IACvD,IAAI,OAAO,GAAiB,IAAI,CAAA;IAChC,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,iBAAiB,EAAE;QAC9B,OAAO,GAAG,MAAM,IAAA,qBAAa,EAAC,uBAAY,CAAC,CAAC,OAAO,CAAC;YAClD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,iBAAiB,EAAE;SACpE,CAAC,CAAA;KACH;IAED,uCAAuC;IACvC,MAAM,UAAU,GAAa,OAAO,CAAC,QAAQ,CAAA;IAE7C,MAAM,aAAa,GAAY,MAAM,IAAA,qBAAa,EAAC,mBAAO,CAAC,CAAC,OAAO,CAAC;QAClE,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE;QAC3C,SAAS,EAAE,CAAC,QAAQ,CAAC;KACtB,CAAC,CAAA;IAEF,qCAAqC;IACrC,MAAM,WAAW,GAAW,aAAa,CAAC,MAAM,CAAA;IAEhD,MAAM,cAAc,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACrE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;QAC9B,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,gCAAgC;IAChC,MAAM,gBAAgB,GAAiB,MAAM,IAAA,qBAAa,EAAC,uBAAY,CAAC,CAAC,OAAO,CAAC;QAC/E,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE;KAClF,CAAC,CAAA;IAEF,mCAAmC;IACnC,MAAM,gBAAgB,GAAqB,MAAM,IAAA,qBAAa,EAAC,2BAAc,CAAC,CAAC,IAAI,CAAC;QAClF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE;QAC5D,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,gCAAgC;IAChC,MAAM,aAAa,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACxE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAa,CAAC,WAAW,EAAE;KAC1E,CAAC,CAAA;IAEF,MAAM,SAAS,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACpE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,yBAAa,CAAC,IAAI;SAC7B;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,yBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACpE,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,EAAE;QACnB,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,MAAM,yBAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;KACtG;IAED,6BAA6B;IAC7B,IAAI,WAAW,GAAQ,IAAI,CAAA;IAC3B,IAAI,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,CAAA,EAAE;QAClD,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;KAClC;SAAM;QACL,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAA;KAC3C;IAED,uBAAuB;IACvB,IAAI,WAAW,GAAU,EAAE,CAAA;IAC3B,WAAW,GAAG,gBAAgB;SAC3B,GAAG,CAAC,CAAC,EAAkB,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAY,EAAE,CAAC,OAAO,CAAA;QACnC,OAAO;YACL,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,WAAW,GAAG;YACxD,YAAY,EAAE,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,EAAE,EAAE;YAC7C,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE;YACnC,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE;YAC7B,YAAY,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE;YACtC,aAAa,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;YAC9B,WAAW,EAAE,GAAG,EAAE,CAAC,UAAU,EAAE;YAC/B,cAAc,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE;YACrC,oBAAoB,EAAE,OAAO,CAAC,WAAW;YACzC,iBAAiB,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE;YAC1C,WAAW,EAAE,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,EAAE;YAC3C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE;YACtB,aAAa,EAAE,GAAG,EAAE,CAAC,YAAY,EAAE;YACnC,MAAM,EAAE,EAAE;SACX,CAAA;IACH,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE;QACxB,IAAI,SAAS,GAAG,OAAO,CAAC,IAAI,CAC1B,OAAO,CAAC,EAAE,CACR,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;YAC1C,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;YAC5C,OAAO,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;YAC5C,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CACjC,CAAA;QACD,IAAI,CAAC,SAAS,EAAE;YACd,SAAS,GAAG;gBACV,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,SAAS,EAAE,CAAC;gBACZ,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAA;YAED,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACvB,OAAO,OAAO,CAAA;SACf;aAAM;YACL,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;gBACtB,IACE,EAAE,CAAC,YAAY,KAAK,IAAI,CAAC,YAAY;oBACrC,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;oBACvC,EAAE,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa;oBACvC,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EACzB;oBACA,uCACK,EAAE,KACL,SAAS,EAAE,EAAE,CAAC,SAAS,GAAG,CAAC,EAC3B,WAAW,EAAE,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAC9C,cAAc,EAAE,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,EACvD,iBAAiB,EAAE,EAAE,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IACjE;iBACF;qBAAM;oBACL,OAAO,EAAE,CAAA;iBACV;YACH,CAAC,CAAC,CAAA;SACH;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAER,8CAA8C;IAC9C,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,IAAI;QACd,YAAY,EAAE,UAAU,CAAC,IAAI;QAC7B,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI;QAC3C,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG;QACvC,eAAe,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;QAC/C,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC/D,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QACjE,aAAa,EAAE,gBAAgB,CAAC,KAAK;QACrC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QAC5C,yBAAyB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;QAC3D,wBAAwB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI;QACjE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC9C,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;QAC9C,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI;QACtD,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAS,aAAa;QAC1F,WAAW,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE;QAC7B,MAAM,EAAE,OAAO,CAAC,KAAK;QACrB,WAAW,EAAE,OAAO,CAAC,KAAK;QAC1B,QAAQ,EAAE,OAAO,CAAC,IAAI;QACtB,aAAa,EAAE,OAAO,CAAC,YAAY,IAAI,EAAE;QACzC,QAAQ,EAAE,OAAO,CAAC,OAAO;QACzB,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,UAAU,EAAE,OAAO,CAAC,SAAS;QAC7B,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,OAAO,CAAC,MAAM;QACzB,eAAe,EAAE,OAAO,CAAC,cAAc;QACvC,WAAW,EAAE,yCAAyC,CAAC,EAAE;QACzD,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,GAAG,EAAE,EAAE;YAC/C,uCACK,IAAI,KACP,OAAO,EAAE,GAAG,GAAG,CAAC,EAChB,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,EAC1F,MAAM,EAAE,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM;oBAClB,CAAC,CAAC,IAAI,CAAC,MAAM;oBACb,CAAC,CAAC,IAAI,CAAC,aAAa;wBACpB,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE;4BAClB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,kBAAkB;4BACrC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,SAAS;wBACxD,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,EAAE;4BACpB,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,YAAY;4BAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,eAAe,IAAI,CAAC,MAAM,GAAG,IACnD;QACH,CAAC,CAAC;KACH,CAAA,CAAC,sBAAsB;IACxB,MAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAA;IAE/B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,cAAc,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IAEF,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;AAC9B,CAAC;AAlND,wCAkNC","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\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 { Product } from '@things-factory/product-base'\nimport { DeliveryOrder, OrderInventory } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE } from '../constants'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderManualDO({ doNo }, context: ResolverContext) {\n const { domain } = context.state\n\n // #1. find delivery order based on name\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 'creator',\n 'updater'\n ]\n })\n\n const ownTransportFlag: Boolean = foundDO.ownCollection\n\n // #2. find contact point based on DO.contactPointRefId\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 // #3. find partner bizplace and Domain\n const partnerBiz: Bizplace = foundDO.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain },\n relations: ['domain']\n })\n\n // #4. find domain owner and bizplace\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 // #6. find list of order inventory\n const orderInventories: OrderInventory[] = await getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: foundDO },\n relations: ['product']\n })\n\n // #7. find DO template and logo\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 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 // #8. find truck driver name\n let foundDriver: any = null\n if (foundDO?.ownCollection && foundDO?.otherDriver) {\n foundDriver = foundDO.otherDriver\n } else {\n foundDriver = foundDO.transportDriver.name\n }\n\n // #9. get product data\n let productList: any[] = []\n productList = orderInventories\n .map((oi: OrderInventory) => {\n const product: Product = oi.product\n return {\n product_name: `${product.name} (${product.description})`,\n product_desc: `${product?.description || ''}`,\n product_nameOnly: `${product.name}`,\n product_sku: `${product.sku}`,\n product_type: `${product.packingType}`,\n product_batch: `${oi.batchId}`,\n product_qty: `${oi.releaseQty}`,\n product_weight: `${oi.releaseWeight}`,\n product_gross_weight: product.grossWeight,\n product_uom_value: `${oi.releaseUomValue}`,\n product_uom: `${product.primaryUnit || ''}`,\n remark: `${oi.remark}`,\n cross_docking: `${oi.crossDocking}`,\n pallet: ''\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.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_batch: item.product_batch,\n product_qty: item.product_qty,\n product_weight: item.product_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 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.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 // 10. set data to be displayed in DO document\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n company_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n warehouse_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n company_email: foundWarehouseCP.email,\n customer_name: foundCP ? foundCP.name : null,\n customer_delivery_address: foundCP ? foundCP.address : null,\n customer_billing_address: foundCP ? foundCP.billingAddress : null,\n customer_phone: foundCP ? foundCP.phone : 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 ref_no: foundDO.refNo,\n ref_no_only: foundDO.refNo,\n order_no: foundDO.name,\n delivery_date: foundDO.deliveryDate || '',\n truck_no: foundDO.truckNo,\n driver_name: foundDriver || '',\n pallet_qty: foundDO.palletQty,\n worker_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 }\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"]}