@things-factory/worksheet-base 4.0.0-alpha.9 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist-server/controllers/ecommerce/ecommerce-controller.js +46 -2
  2. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  3. package/dist-server/controllers/ecommerce/index.js +1 -0
  4. package/dist-server/controllers/ecommerce/index.js.map +1 -1
  5. package/dist-server/controllers/ecommerce/sellercraft-controller.js +168 -0
  6. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
  7. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +7 -7
  8. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +7 -7
  10. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +1 -1
  12. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +14 -14
  14. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/index.js +2 -0
  16. package/dist-server/controllers/index.js.map +1 -1
  17. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +48 -13
  18. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  19. package/dist-server/controllers/outbound/loading-worksheet-controller.js +4 -4
  20. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  21. package/dist-server/controllers/outbound/packing-worksheet-controller.js +16 -1
  22. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  23. package/dist-server/controllers/outbound/picking-worksheet-controller.js +20 -12
  24. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  25. package/dist-server/controllers/outbound/returning-worksheet-controller.js +1 -1
  26. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  27. package/dist-server/controllers/render-elccl-grn.js +13 -16
  28. package/dist-server/controllers/render-elccl-grn.js.map +1 -1
  29. package/dist-server/controllers/render-grn.js +192 -0
  30. package/dist-server/controllers/render-grn.js.map +1 -0
  31. package/dist-server/controllers/render-job-sheet.js +63 -47
  32. package/dist-server/controllers/render-job-sheet.js.map +1 -1
  33. package/dist-server/controllers/render-kimeda-grn.js +35 -21
  34. package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
  35. package/dist-server/controllers/render-manual-do.js +9 -9
  36. package/dist-server/controllers/render-manual-do.js.map +1 -1
  37. package/dist-server/controllers/render-orientage-do.js +61 -35
  38. package/dist-server/controllers/render-orientage-do.js.map +1 -1
  39. package/dist-server/controllers/render-orientage-grn.js +53 -27
  40. package/dist-server/controllers/render-orientage-grn.js.map +1 -1
  41. package/dist-server/controllers/render-ro-do.js +34 -20
  42. package/dist-server/controllers/render-ro-do.js.map +1 -1
  43. package/dist-server/controllers/render-seebuu-grn.js +177 -0
  44. package/dist-server/controllers/render-seebuu-grn.js.map +1 -0
  45. package/dist-server/controllers/vas/vas-worksheet-controller.js +78 -17
  46. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  47. package/dist-server/controllers/worksheet-controller.js +59 -11
  48. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  49. package/dist-server/entities/worksheet-detail.js +23 -23
  50. package/dist-server/entities/worksheet-detail.js.map +1 -1
  51. package/dist-server/entities/worksheet-movement.js +9 -9
  52. package/dist-server/entities/worksheet-movement.js.map +1 -1
  53. package/dist-server/entities/worksheet.js +28 -26
  54. package/dist-server/entities/worksheet.js.map +1 -1
  55. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +2 -2
  56. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
  57. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +2 -2
  58. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  59. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js +3 -3
  60. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js.map +1 -1
  61. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js +3 -3
  62. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js.map +1 -1
  63. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +3 -3
  64. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  65. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +2 -2
  66. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -1
  67. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +32 -10
  68. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  69. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js +8 -6
  70. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
  71. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js +1 -1
  72. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js.map +1 -1
  73. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js +4 -4
  74. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -1
  75. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +25 -0
  76. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +1 -0
  77. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js +4 -4
  78. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
  79. package/dist-server/graphql/resolvers/worksheet/having-vas.js +3 -3
  80. package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -1
  81. package/dist-server/graphql/resolvers/worksheet/index.js +5 -4
  82. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  83. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +4 -4
  84. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  85. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js +4 -4
  86. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -1
  87. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js +2 -2
  88. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -1
  89. package/dist-server/graphql/resolvers/worksheet/loading/loading.js +1 -1
  90. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
  91. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +4 -4
  92. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
  93. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +5 -5
  94. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
  95. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +13 -1
  96. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  97. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +38 -28
  98. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  99. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +13 -1
  100. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  101. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +13 -1
  102. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  103. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +68 -19
  104. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  105. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +2 -2
  106. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
  107. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +7 -5
  108. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  109. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +22 -2
  110. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
  111. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +31 -6
  112. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  113. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js +4 -4
  114. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
  115. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +20 -1
  116. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  117. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +129 -125
  118. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  119. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js +2 -2
  120. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js.map +1 -1
  121. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +9 -9
  122. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -1
  123. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js +4 -4
  124. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
  125. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +5 -4
  126. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  127. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +1 -1
  128. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  129. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js +1 -1
  130. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -1
  131. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js +1 -1
  132. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -1
  133. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +2 -2
  134. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
  135. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +2 -2
  136. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -1
  137. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +12 -7
  138. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
  139. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +1 -1
  140. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
  141. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +13 -4
  142. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
  143. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +2 -2
  144. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -1
  145. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +3 -3
  146. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  147. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js +4 -4
  148. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -1
  149. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +14 -14
  150. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  151. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js +2 -2
  152. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -1
  153. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +24 -4
  154. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  155. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +18 -1
  156. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
  157. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js +2 -2
  158. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -1
  159. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +3 -3
  160. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
  161. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js +1 -1
  162. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js.map +1 -1
  163. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js +8 -8
  164. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -1
  165. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +3 -3
  166. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -1
  167. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +308 -17
  168. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  169. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
  170. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -1
  171. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +2 -2
  172. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -1
  173. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js +5 -5
  174. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -1
  175. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js +6 -6
  176. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -1
  177. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js +3 -3
  178. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -1
  179. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +137 -31
  180. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
  181. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +163 -48
  182. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
  183. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +37 -23
  184. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
  185. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js +5 -5
  186. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -1
  187. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js +8 -8
  188. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -1
  189. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js +3 -3
  190. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -1
  191. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +3 -3
  192. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -1
  193. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +8 -8
  194. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
  195. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js +2 -2
  196. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -1
  197. package/dist-server/graphql/resolvers/worksheet/worksheet.js +43 -37
  198. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
  199. package/dist-server/graphql/resolvers/worksheet/worksheets.js +46 -17
  200. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
  201. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +1 -1
  202. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -1
  203. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js +1 -1
  204. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js.map +1 -1
  205. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +89 -125
  206. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
  207. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js +1 -1
  208. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -1
  209. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +2 -2
  210. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
  211. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +3 -2
  212. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
  213. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js +1 -1
  214. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -1
  215. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +1 -1
  216. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -1
  217. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +3 -2
  218. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
  219. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js +2 -2
  220. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js.map +1 -1
  221. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +1 -1
  222. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -1
  223. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js +1 -1
  224. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js.map +1 -1
  225. package/dist-server/graphql/types/index.js +2 -1
  226. package/dist-server/graphql/types/index.js.map +1 -1
  227. package/dist-server/graphql/types/pallet/index.js +10 -0
  228. package/dist-server/graphql/types/pallet/index.js.map +1 -0
  229. package/dist-server/graphql/types/worksheet/airwaybill.js +10 -0
  230. package/dist-server/graphql/types/worksheet/airwaybill.js.map +1 -0
  231. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js +1 -1
  232. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js.map +1 -1
  233. package/dist-server/graphql/types/worksheet/contact-point-info.js +1 -1
  234. package/dist-server/graphql/types/worksheet/contact-point-info.js.map +1 -1
  235. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js +1 -1
  236. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js.map +1 -1
  237. package/dist-server/graphql/types/worksheet/delivery-info.js +1 -1
  238. package/dist-server/graphql/types/worksheet/delivery-info.js.map +1 -1
  239. package/dist-server/graphql/types/worksheet/delivery-order-info.js +1 -1
  240. package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -1
  241. package/dist-server/graphql/types/worksheet/delivery-worksheet.js +1 -1
  242. package/dist-server/graphql/types/worksheet/delivery-worksheet.js.map +1 -1
  243. package/dist-server/graphql/types/worksheet/executing-worksheet.js +1 -1
  244. package/dist-server/graphql/types/worksheet/executing-worksheet.js.map +1 -1
  245. package/dist-server/graphql/types/worksheet/goods-delivery-note.js +1 -1
  246. package/dist-server/graphql/types/worksheet/goods-delivery-note.js.map +1 -1
  247. package/dist-server/graphql/types/worksheet/index.js +10 -2
  248. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  249. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js +1 -1
  250. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js.map +1 -1
  251. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +1 -1
  252. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -1
  253. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js +1 -1
  254. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js.map +1 -1
  255. package/dist-server/graphql/types/worksheet/new-worksheet.js +1 -1
  256. package/dist-server/graphql/types/worksheet/new-worksheet.js.map +1 -1
  257. package/dist-server/graphql/types/worksheet/picking-assignment-status.js +1 -1
  258. package/dist-server/graphql/types/worksheet/picking-assignment-status.js.map +1 -1
  259. package/dist-server/graphql/types/worksheet/product-approval.js +1 -1
  260. package/dist-server/graphql/types/worksheet/product-approval.js.map +1 -1
  261. package/dist-server/graphql/types/worksheet/release-good-worksheet.js +1 -1
  262. package/dist-server/graphql/types/worksheet/release-good-worksheet.js.map +1 -1
  263. package/dist-server/graphql/types/worksheet/return-order-worksheet.js +1 -1
  264. package/dist-server/graphql/types/worksheet/return-order-worksheet.js.map +1 -1
  265. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js +1 -1
  266. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js.map +1 -1
  267. package/dist-server/graphql/types/worksheet/vas-worksheet.js +1 -1
  268. package/dist-server/graphql/types/worksheet/vas-worksheet.js.map +1 -1
  269. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +1 -1
  270. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
  271. package/dist-server/graphql/types/worksheet/worksheet-info.js +3 -1
  272. package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
  273. package/dist-server/graphql/types/worksheet/worksheet-list.js +1 -1
  274. package/dist-server/graphql/types/worksheet/worksheet-list.js.map +1 -1
  275. package/dist-server/graphql/types/worksheet/worksheet-patch.js +1 -1
  276. package/dist-server/graphql/types/worksheet/worksheet-patch.js.map +1 -1
  277. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js +1 -1
  278. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js.map +1 -1
  279. package/dist-server/graphql/types/worksheet/worksheet.js +1 -1
  280. package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -1
  281. package/dist-server/graphql/types/worksheet-detail/index.js +2 -1
  282. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  283. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +2 -1
  284. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
  285. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js +1 -1
  286. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js.map +1 -1
  287. package/dist-server/graphql/types/worksheet-detail/pallet-info.js +1 -1
  288. package/dist-server/graphql/types/worksheet-detail/pallet-info.js.map +1 -1
  289. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js +1 -1
  290. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js.map +1 -1
  291. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js +1 -1
  292. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js.map +1 -1
  293. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js +1 -1
  294. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js.map +1 -1
  295. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js +1 -1
  296. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js.map +1 -1
  297. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js +1 -1
  298. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js.map +1 -1
  299. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js +1 -1
  300. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js.map +1 -1
  301. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js +1 -1
  302. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js.map +1 -1
  303. package/dist-server/routes.js +20 -12
  304. package/dist-server/routes.js.map +1 -1
  305. package/dist-server/utils/inventory-util.js +59 -17
  306. package/dist-server/utils/inventory-util.js.map +1 -1
  307. package/dist-server/utils/worksheet-no-generator.js +24 -24
  308. package/dist-server/utils/worksheet-no-generator.js.map +1 -1
  309. package/dist-server/utils/worksheet-util.js +2 -2
  310. package/dist-server/utils/worksheet-util.js.map +1 -1
  311. package/package.json +16 -15
  312. package/server/controllers/ecommerce/ecommerce-controller.ts +82 -4
  313. package/server/controllers/ecommerce/index.ts +1 -0
  314. package/server/controllers/ecommerce/sellercraft-controller.ts +223 -0
  315. package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +1 -0
  316. package/server/controllers/inbound/unloading-worksheet-controller.ts +16 -14
  317. package/server/controllers/index.ts +2 -0
  318. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +108 -43
  319. package/server/controllers/outbound/packing-worksheet-controller.ts +21 -4
  320. package/server/controllers/outbound/picking-worksheet-controller.ts +26 -11
  321. package/server/controllers/render-elccl-grn.ts +3 -7
  322. package/server/controllers/render-grn.ts +218 -0
  323. package/server/controllers/render-job-sheet.ts +51 -39
  324. package/server/controllers/render-kimeda-grn.ts +28 -16
  325. package/server/controllers/render-orientage-do.ts +41 -11
  326. package/server/controllers/render-orientage-grn.ts +39 -10
  327. package/server/controllers/render-ro-do.ts +22 -6
  328. package/server/controllers/render-seebuu-grn.ts +198 -0
  329. package/server/controllers/vas/vas-worksheet-controller.ts +104 -23
  330. package/server/controllers/worksheet-controller.ts +80 -19
  331. package/server/entities/worksheet.ts +2 -0
  332. package/server/graphql/resolvers/pallet/pallet-outbound.ts +2 -1
  333. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +30 -2
  334. package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +7 -4
  335. package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +30 -0
  336. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +18 -3
  337. package/server/graphql/resolvers/worksheet/index.ts +6 -4
  338. package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +4 -2
  339. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +20 -3
  340. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +47 -38
  341. package/server/graphql/resolvers/worksheet/packing/packing.ts +22 -3
  342. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +22 -3
  343. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +79 -19
  344. package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +5 -1
  345. package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +34 -4
  346. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +41 -8
  347. package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +4 -3
  348. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +31 -3
  349. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +149 -148
  350. package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +5 -4
  351. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +5 -2
  352. package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +7 -2
  353. package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +22 -9
  354. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +29 -5
  355. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +23 -2
  356. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +452 -14
  357. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.ts +36 -1
  358. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.ts +8 -2
  359. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +185 -56
  360. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +210 -54
  361. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +64 -32
  362. package/server/graphql/resolvers/worksheet/worksheet.ts +67 -62
  363. package/server/graphql/resolvers/worksheet/worksheets.ts +51 -13
  364. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +119 -168
  365. package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +2 -1
  366. package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +2 -1
  367. package/server/graphql/types/index.ts +2 -1
  368. package/server/graphql/types/pallet/index.ts +6 -0
  369. package/server/graphql/types/worksheet/airwaybill.ts +7 -0
  370. package/server/graphql/types/worksheet/index.ts +10 -2
  371. package/server/graphql/types/worksheet/worksheet-info.ts +2 -0
  372. package/server/graphql/types/worksheet-detail/index.ts +2 -1
  373. package/server/graphql/types/worksheet-detail/inventory-detail.ts +1 -0
  374. package/server/routes.ts +15 -5
  375. package/server/utils/inventory-util.ts +64 -21
@@ -1,27 +1,29 @@
1
+ import { In } from 'typeorm'
2
+
1
3
  import { Bizplace } from '@things-factory/biz-base'
4
+ import { generateId } from '@things-factory/id-rule-base'
2
5
  import { Product, ProductDetail } from '@things-factory/product-base'
3
6
  import {
7
+ ORDER_INVENTORY_STATUS,
8
+ ORDER_STATUS,
4
9
  OrderInventory,
5
10
  OrderNoGenerator,
6
11
  OrderVas,
7
- ORDER_INVENTORY_STATUS,
8
- ORDER_STATUS,
9
12
  ReleaseGood
10
13
  } from '@things-factory/sales-base'
11
- import { generateId } from '@things-factory/id-rule-base'
12
14
  import { Setting } from '@things-factory/setting-base'
13
- import { In } from 'typeorm'
14
15
  import {
15
16
  Inventory,
16
17
  INVENTORY_STATUS,
17
18
  INVENTORY_TRANSACTION_TYPE,
18
- LOCATION_TYPE,
19
- Location
19
+ Location,
20
+ LOCATION_TYPE
20
21
  } from '@things-factory/warehouse-base'
21
- import { WORKSHEET_STATUS, WORKSHEET_TYPE, TASK_NUMBER_SETTING_KEY, TASK_NUMBER_RULE_TYPE } from '../../constants'
22
+
23
+ import { TASK_NUMBER_RULE_TYPE, TASK_NUMBER_SETTING_KEY, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
22
24
  import { Worksheet, WorksheetDetail } from '../../entities'
23
- import { VasWorksheetController } from '../vas/vas-worksheet-controller'
24
25
  import { WorksheetNoGenerator } from '../../utils'
26
+ import { VasWorksheetController } from '../vas/vas-worksheet-controller'
25
27
 
26
28
  export class PickingWorksheetController extends VasWorksheetController {
27
29
  async generatePickingWorksheet(releaseGoodNo: string): Promise<Worksheet> {
@@ -157,7 +159,9 @@ export class PickingWorksheetController extends VasWorksheetController {
157
159
  let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PICKING, [
158
160
  'releaseGood',
159
161
  'releaseGood.bizplace',
162
+ 'domain',
160
163
  'bizplace',
164
+ 'bizplace.domain',
161
165
  'bizplace.company',
162
166
  'bizplace.company.domain',
163
167
  'worksheetDetails',
@@ -203,8 +207,10 @@ export class PickingWorksheetController extends VasWorksheetController {
203
207
  let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.BATCH_PICKING, [
204
208
  'worksheetDetails',
205
209
  'worksheetDetails.targetInventory',
210
+ 'worksheetDetails.targetInventory.releaseGood',
206
211
  'worksheetDetails.targetInventory.product',
207
212
  'bizplace',
213
+ 'bizplace.domain',
208
214
  'bizplace.company',
209
215
  'bizplace.company.domain'
210
216
  ])
@@ -251,6 +257,7 @@ export class PickingWorksheetController extends VasWorksheetController {
251
257
  batchId: string,
252
258
  productId: string,
253
259
  packingType: string,
260
+ packingSize: number,
254
261
  worksheetDetails: Partial<WorksheetDetail>[]
255
262
  ): Promise<void> {
256
263
  // 1. Remove prev worksheet details if it's exists
@@ -265,7 +272,8 @@ export class PickingWorksheetController extends VasWorksheetController {
265
272
  worksheet.worksheetDetails,
266
273
  batchId,
267
274
  productId,
268
- packingType
275
+ packingType,
276
+ packingSize
269
277
  )
270
278
  // Delete order inventories
271
279
  if (prevWorksheetDetails?.length) {
@@ -301,6 +309,7 @@ export class PickingWorksheetController extends VasWorksheetController {
301
309
  newTargetInventory.batchId = batchId
302
310
  newTargetInventory.product = product
303
311
  newTargetInventory.packingType = packingType
312
+ newTargetInventory.packingSize = packingSize
304
313
  newTargetInventory.creator = this.user
305
314
  newTargetInventory.updater = this.user
306
315
  newTargetInventory = await this.trxMgr.getRepository(OrderInventory).save(newTargetInventory)
@@ -319,7 +328,8 @@ export class PickingWorksheetController extends VasWorksheetController {
319
328
  worksheetNo: string,
320
329
  batchId: string,
321
330
  productId: string,
322
- packingType: string
331
+ packingType: string,
332
+ packingSize: number
323
333
  ): Promise<void> {
324
334
  const worksheet: Worksheet = await this.findWorksheetByNo(worksheetNo, [
325
335
  'worksheetDetails',
@@ -333,6 +343,7 @@ export class PickingWorksheetController extends VasWorksheetController {
333
343
  batchId,
334
344
  productId,
335
345
  packingType,
346
+ packingSize,
336
347
  ['targetInventory', 'targetInventory.inventory']
337
348
  )
338
349
 
@@ -363,6 +374,7 @@ export class PickingWorksheetController extends VasWorksheetController {
363
374
  batchId,
364
375
  product: { id: productId },
365
376
  packingType,
377
+ packingSize,
366
378
  status: ORDER_INVENTORY_STATUS.COMPLETE_SPLIT
367
379
  },
368
380
  { status: ORDER_INVENTORY_STATUS.PENDING_SPLIT, updater: this.user, updatedAt: new Date() }
@@ -849,6 +861,7 @@ export class PickingWorksheetController extends VasWorksheetController {
849
861
  },
850
862
  relations: [
851
863
  'bizplace',
864
+ 'bizplace.domain',
852
865
  'worksheetDetails',
853
866
  'worksheetDetails.targetInventory',
854
867
  'worksheetDetails.targetInventory.releaseGood'
@@ -901,6 +914,7 @@ export class PickingWorksheetController extends VasWorksheetController {
901
914
  standardBatchId: string,
902
915
  standardProductId: string,
903
916
  standardPackingType: string,
917
+ standardPackingSize: number,
904
918
  relations: string[] = ['targetInventory', 'targetInventory.product']
905
919
  ): Promise<WorksheetDetail[]> {
906
920
  for (let wsd of worksheetDetails) {
@@ -913,7 +927,8 @@ export class PickingWorksheetController extends VasWorksheetController {
913
927
  (wsd: WorksheetDetail) =>
914
928
  wsd.targetInventory.batchId === standardBatchId &&
915
929
  wsd.targetInventory.product.id === standardProductId &&
916
- wsd.targetInventory.packingType === standardPackingType
930
+ wsd.targetInventory.packingType === standardPackingType &&
931
+ wsd.targetInventory.packingSize === standardPackingSize
917
932
  )
918
933
 
919
934
  for (let wsd of worksheetDetails) {
@@ -97,7 +97,7 @@ export async function renderElcclGRN({ grnNo }, context: any) {
97
97
  await getManager().transaction(async (trxMgr: EntityManager) => {
98
98
  await trxMgr.query(
99
99
  `
100
- create temp table tmp as(
100
+ create temp table tmp on commit drop as(
101
101
  select invh.*, invh2.ref_order_id as release_order_id, invh2.qty as release_qty, invh.qty as inbound_qty,
102
102
  invh.qty + invh2.qty as remaining_qty, invh2.uom_value as release_uom_value, invh.uom_value as inbound_uom_value,
103
103
  invh.uom_value + invh2.uom_value as remaining_uom_value
@@ -115,7 +115,7 @@ export async function renderElcclGRN({ grnNo }, context: any) {
115
115
 
116
116
  await trxMgr.query(
117
117
  `
118
- create temp table tmp2 as(
118
+ create temp table tmp2 on commit drop as(
119
119
  select id,seq,ref_order_id,order_no,"name",pallet_id,batch_id,product_id,warehouse_id,location_id,"zone",order_ref_no,packing_type,uom as unit,qty,
120
120
  opening_qty,uom_value,opening_weight,description,status,transaction_type,created_at,updated_at,domain_id,bizplace_id,creator_id,updater_id,
121
121
  reusable_pallet_id,release_order_id,release_qty,inbound_qty,remaining_qty, inbound_qty as loose_amt, release_uom_value, inbound_uom_value,remaining_uom_value,
@@ -139,7 +139,7 @@ export async function renderElcclGRN({ grnNo }, context: any) {
139
139
 
140
140
  await trxMgr.query(
141
141
  `
142
- create temp table tmp3 as (
142
+ create temp table tmp3 on commit drop as (
143
143
  select main.*, concat(p2.name, ' (', p2.description, ')') as product_name, plt.name as pallet_name,
144
144
  case when main.reusable_pallet_id notnull then concat(main.qty, ' ', main.packing_type, '(S) ', plt.name) else concat(main.pallet, ' PALLET(S)')
145
145
  end as remarks,
@@ -175,10 +175,6 @@ export async function renderElcclGRN({ grnNo }, context: any) {
175
175
  `,
176
176
  [foundGAN.id]
177
177
  )
178
-
179
- await trxMgr.query(`
180
- drop table tmp, tmp2, tmp3
181
- `)
182
178
  })
183
179
 
184
180
  const data = {
@@ -0,0 +1,218 @@
1
+ import FormData from 'form-data'
2
+ import fetch from 'node-fetch'
3
+ import { getRepository, IsNull, Not } from 'typeorm'
4
+
5
+ import { Attachment, STORAGE } from '@things-factory/attachment-base'
6
+ import { Partner } from '@things-factory/auth-base'
7
+ import { Bizplace, ContactPoint } from '@things-factory/biz-base'
8
+ import { config } from '@things-factory/env'
9
+ import { ArrivalNotice, GoodsReceivalNote, ORDER_STATUS, OrderProduct } from '@things-factory/sales-base'
10
+ import { Domain } from '@things-factory/shell'
11
+ import { ReducedInventoryHistory } from '@things-factory/warehouse-base'
12
+
13
+ import { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'
14
+ import { Worksheet } from '../entities'
15
+ import { DateTimeConverter } from '../utils/datetime-util'
16
+
17
+ const REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')
18
+
19
+ export async function renderGRN({ grnNo, timezoneOffSet }, context: any) {
20
+ // 1. find domain
21
+ const domain: Domain = await getRepository(Domain).findOne({
22
+ where: { id: context.state.domain.id }
23
+ })
24
+
25
+ // 2. find grn
26
+ const foundGRN: GoodsReceivalNote = await getRepository(GoodsReceivalNote).findOne({
27
+ where: { domain, name: grnNo },
28
+ relations: ['domain', 'bizplace', 'bizplace.domain', 'bizplace.company', 'arrivalNotice']
29
+ })
30
+
31
+ // 3. find GAN
32
+ const foundGAN: ArrivalNotice = foundGRN.arrivalNotice
33
+ const ownRefNo = foundGAN.refNo
34
+
35
+ // 4. find customer bizplace
36
+ const partnerBiz: Bizplace = foundGRN.bizplace
37
+
38
+ const partnerDomain: Partner = await getRepository(Partner).findOne({
39
+ where: { partnerDomain: partnerBiz.domain, domain },
40
+ relations: ['domain']
41
+ })
42
+
43
+ const domainOwner: Domain = partnerDomain.domain
44
+ const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({
45
+ where: { domain: domainOwner },
46
+ relations: ['company']
47
+ })
48
+
49
+ const qbReducedInventory = getRepository(ReducedInventoryHistory)
50
+ .createQueryBuilder(`ivh`)
51
+ .select(`product_id`, `productId`)
52
+ .addSelect(`batch_id`, `batchId`)
53
+ .addSelect(`reusable_pallet_id`, `reusablePalletId`)
54
+ .addSelect(`packing_type`, `packingType`)
55
+ .addSelect(`sum(qty)`, `qty`)
56
+ .addSelect(`sum(uom_value)`, `uomValue`)
57
+ .addSelect(`uom`, `uom`)
58
+ .addSelect(`count(distinct pallet_id)`, `pallet`)
59
+ .addSelect(`string_agg(distinct expiration_date::varchar,', ' order by expiration_date::varchar)`, `expiryDate`)
60
+ .addSelect(`string_agg(distinct pallet_id::varchar,', ' order by pallet_id::varchar)`, `palletId`)
61
+ .where(`ivh.domain_id = :domainId`, { domainId: domain.id })
62
+ .andWhere(`ivh.ref_order_id = :refOrderId`, { refOrderId: foundGAN.id })
63
+ .andWhere(`ivh.transaction_type = 'UNLOADING'`)
64
+ .groupBy(`reusable_pallet_id`)
65
+ .addGroupBy(`product_id`)
66
+ .addGroupBy(`batch_id`)
67
+ .addGroupBy(`packing_type`)
68
+ .addGroupBy(`uom`)
69
+ .getRawMany()
70
+
71
+ // 5. find domain contact point
72
+ const foundCP: ContactPoint = await getRepository(ContactPoint).findOne({
73
+ where: { domain, bizplace: domainBizplace }
74
+ })
75
+
76
+ // 5. find domain contact point
77
+ const foundPartnerCP: ContactPoint = await getRepository(ContactPoint).findOne({
78
+ where: { domain, bizplace: partnerBiz }
79
+ })
80
+
81
+ // 6. find unloading worksheet
82
+ const foundWS: Worksheet = await getRepository(Worksheet).findOne({
83
+ where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING, status: ORDER_STATUS.DONE },
84
+ relations: ['worksheetDetails', 'updater']
85
+ })
86
+
87
+ // find putaway worksheet
88
+ const foundPutawayWS: Worksheet = await getRepository(Worksheet).findOne({
89
+ where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.PUTAWAY, status: ORDER_STATUS.DONE },
90
+ relations: ['worksheetDetails', 'updater']
91
+ })
92
+
93
+ const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({
94
+ where: { domain, arrivalNotice: foundGAN, actualPalletQty: Not(IsNull()), actualPackQty: Not(IsNull()) },
95
+ relations: ['product']
96
+ })
97
+
98
+ // 7. find grn template based on category
99
+ const foundTemplate: Attachment = await getRepository(Attachment).findOne({
100
+ where: { domain, category: TEMPLATE_TYPE.GRN_TEMPLATE }
101
+ })
102
+
103
+ // 8. find grn logo
104
+ const foundLogo: Attachment = await getRepository(Attachment).findOne({
105
+ where: {
106
+ domain,
107
+ category: TEMPLATE_TYPE.LOGO
108
+ }
109
+ })
110
+
111
+ // 9. find signature
112
+ const foundSignature: Attachment = await getRepository(Attachment).findOne({
113
+ where: {
114
+ domain,
115
+ category: TEMPLATE_TYPE.SIGNATURE
116
+ }
117
+ })
118
+
119
+ const foundCop: Attachment = await getRepository(Attachment).findOne({
120
+ where: {
121
+ domain,
122
+ category: TEMPLATE_TYPE.COP
123
+ }
124
+ })
125
+
126
+ const inboundInventories: any[] = await qbReducedInventory
127
+
128
+ const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')
129
+
130
+ let logo = null
131
+ if (foundLogo?.path) {
132
+ logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))
133
+ }
134
+
135
+ let signature = null
136
+ if (foundSignature?.path) {
137
+ signature = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundSignature.path, 'base64'))
138
+ }
139
+
140
+ let cop = null
141
+ if (foundCop?.path) {
142
+ cop = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundCop.path, 'base64'))
143
+ }
144
+
145
+ const data = {
146
+ logo_url: logo,
147
+ sign_url: signature,
148
+ cop_url: cop,
149
+ customer_biz: partnerBiz.name,
150
+ customer_address: partnerBiz.address,
151
+ company_domain: domainBizplace.company.name,
152
+ company_phone: foundCP.phone,
153
+ company_email: foundCP.email,
154
+ company_brn: domainBizplace.company.brn,
155
+ company_address: domainBizplace.company.address,
156
+ warehouse_address: foundCP.address,
157
+ warehouse_address2: foundCP.address2,
158
+ warehouse_postcode: foundCP.postCode,
159
+ warehouse_city: foundCP.city,
160
+ warehouse_state: foundCP.state,
161
+ warehouse_phone: foundCP.phone,
162
+ warehouse_fax: foundCP.fax,
163
+ warehouse_email: foundCP.email,
164
+ order_no: foundGRN.name,
165
+ gan_no: foundGAN.name,
166
+ gan_accepted_at: foundGAN.acceptedAt ? DateTimeConverter.datetime(foundGAN.acceptedAt, timezoneOffSet) : '',
167
+ unload_date: DateTimeConverter.date(foundWS.endedAt),
168
+ ref_no: ownRefNo ? `${foundGAN.name} / ${foundGAN.refNo}` : `${foundGAN.name}`,
169
+ received_date: DateTimeConverter.date(foundWS.endedAt),
170
+ truck_no: foundGAN.truckNo || '',
171
+ container_no: foundGAN.containerNo || '',
172
+ delivery_order_no: foundGAN.deliveryOrderNo ? foundGAN.deliveryOrderNo : '',
173
+ account_no: foundPartnerCP ? foundPartnerCP.accountNo : '',
174
+ unloaded_by: foundWS ? foundWS.updater.name : '',
175
+ putaway_by: foundPutawayWS ? foundPutawayWS.updater.name : '',
176
+ product_list: targetProducts.map((item, idx) => {
177
+ let unloadInvHistory = inboundInventories.find(
178
+ ih =>
179
+ ih.productId == item.product.id &&
180
+ ih.batchId == item.batchId &&
181
+ ih.packingType == item.packingType &&
182
+ ih.uom == item.uom
183
+ )
184
+
185
+ return {
186
+ list_no: idx + 1,
187
+ product_sku: `${item.product.sku}`,
188
+ product_name: `${item.product.name}(${item.product.description})`,
189
+ product_desc: item.product.description,
190
+ product_nameOnly: item.product.name,
191
+ product_type: item.packingType,
192
+ product_size: item.packingSize,
193
+ product_batch: item.batchId,
194
+ pallet_qty: item.actualPalletQty,
195
+ product_qty: unloadInvHistory.qty || item.actualPackQty,
196
+ product_unit_uom_value: `${Math.round(item.uomValue * 100) / 100}`,
197
+ product_total_uom_value: `${
198
+ Math.round((unloadInvHistory.uomValue || item.uomValue * item.actualPackQty) * 100) / 100
199
+ }`,
200
+ product_uom: `${unloadInvHistory.uom || item.uom}`,
201
+ expiry_date: unloadInvHistory.expiryDate || ``,
202
+ reusable_pallet_id: unloadInvHistory.reusablePalletId || ``,
203
+ remark: (item.remark ? item.remark : '') + (item.issue ? ' [Issue]: ' + item.issue : '')
204
+ }
205
+ })
206
+ }
207
+
208
+ const formData = new FormData()
209
+ formData.append('template', template)
210
+ formData.append('jsonString', JSON.stringify(data))
211
+
212
+ const response = await fetch(REPORT_API_URL, {
213
+ method: 'POST',
214
+ body: formData
215
+ })
216
+
217
+ return await response.text()
218
+ }
@@ -79,7 +79,7 @@ export async function renderJobSheet({ ganNo, timezoneOffSet }, context) {
79
79
  return await getManager().transaction(async (trxMgr: EntityManager) => {
80
80
  await trxMgr.query(
81
81
  `
82
- create temp table temp_invHistory as (
82
+ create temp table temp_invHistory on commit drop as (
83
83
  select i2.id as inventory_id, i2.pallet_id, i2.product_id, i2.packing_type, i2.batch_id,
84
84
  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,
85
85
  ih.created_at
@@ -95,52 +95,63 @@ export async function renderJobSheet({ ganNo, timezoneOffSet }, context) {
95
95
  )
96
96
 
97
97
  const invItems: any[] = await trxMgr.query(
98
- `
99
- SELECT inv.id AS "inv_id", inv.packing_type AS "packingType", inv.created_at AS "createdAt", product.name AS "productName",
100
- (
101
- select distinct on(pallet_id) COALESCE(qty, 0) AS unloadedQty from temp_invHistory invh
102
- where invh.status = 'UNLOADED' and invh.inventory_id = inv.id
103
- order by pallet_id, seq asc
104
- ) AS "unloadedQty",
105
- (
106
- select distinct on(pallet_id) COALESCE(created_at, null) AS outboundAt from temp_invHistory invh
107
- where invh.status = 'TERMINATED' and invh.inventory_id = inv.id
108
- order by pallet_id, seq desc
109
- ) AS "outboundAt",
110
- 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",
111
- case when plt.name is not null then (CONCAT(inv.pallet_id, ' (', plt.name, ')')) else inv.pallet_id end AS "palletId",
112
- SUM(orderInv.release_qty) as "qty",
113
- do2.own_collection AS "ownTransport",
114
- STRING_AGG (vas.name, ', ') AS "vasName"
115
- FROM inventories inv
116
- LEFT JOIN order_inventories orderInv ON orderInv.inventory_id = inv.id AND orderInv.release_good_id is not null and orderInv.status <> 'CANCELLED'
117
- LEFT JOIN order_vass orderVass ON orderVass.inventory_id = inv.id
118
- LEFT JOIN vass vas ON vas.id = orderVass.vas_id
119
- LEFT JOIN pallets plt on plt.id = inv.reusable_pallet_id
120
- LEFT JOIN delivery_orders do2 ON do2.id = orderInv.delivery_order_id
121
- LEFT JOIN products product ON product.id=inv.product_id
122
- inner join order_inventories oi on oi.inventory_id = inv.id
123
- where oi.arrival_notice_id = $1
124
- AND inv.domain_id = $2
125
- GROUP BY inv.id, product.name, do2.own_collection, plt.name
126
- ORDER BY inv.pallet_id, product.name asc
98
+ `
99
+ SELECT rn,
100
+ inv_id,
101
+ case when rn = 1 then "packingType" else null end as "packingType",
102
+ case when rn = 1 then "createdAt" else null end as "createdAt",
103
+ case when rn = 1 then "productName" else null end as "productName",
104
+ case when rn = 1 then "unloadedQty" else null end as "unloadedQty",
105
+ case when rn = 1 then "outboundAt" else null end as "outboundAt",
106
+ "doName",
107
+ case when rn = 1 then "palletId" else null end as "palletId",
108
+ qty,
109
+ case when rn = 1 then "ownTransport" else null end as "ownTransport",
110
+ case when rn = 1 then "vasName" else null end as "vasName"
111
+ from
112
+ (
113
+ SELECT
114
+ row_number() over(partition by pallet_id order by inv.pallet_id, product.name asc) as rn,
115
+ inv.id AS "inv_id", inv.packing_type AS "packingType", inv.created_at AS "createdAt", product.name AS "productName",
116
+ (
117
+ select distinct on(pallet_id) COALESCE(qty, 0) AS unloadedQty from temp_invHistory invh
118
+ where invh.status = 'UNLOADED' and invh.inventory_id = inv.id
119
+ order by pallet_id, seq asc
120
+ ) AS "unloadedQty",
121
+ (
122
+ select distinct on(pallet_id) COALESCE(created_at, null) AS outboundAt from temp_invHistory invh
123
+ where invh.status = 'TERMINATED' and invh.inventory_id = inv.id
124
+ order by pallet_id, seq desc
125
+ ) AS "outboundAt",
126
+ 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",
127
+ case when plt.name is not null then (CONCAT(inv.pallet_id, ' (', plt.name, ')')) else inv.pallet_id end AS "palletId",
128
+ SUM(orderInv.release_qty) as "qty",
129
+ do2.own_collection AS "ownTransport",
130
+ STRING_AGG (vas.name, ', ') AS "vasName"
131
+ FROM inventories inv
132
+ 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
133
+ LEFT JOIN order_vass orderVass ON orderVass.inventory_id = inv.id
134
+ LEFT JOIN vass vas ON vas.id = orderVass.vas_id
135
+ LEFT JOIN pallets plt on plt.id = inv.reusable_pallet_id
136
+ LEFT JOIN delivery_orders do2 ON do2.id = orderInv.delivery_order_id
137
+ LEFT JOIN products product ON product.id=inv.product_id
138
+ inner join order_inventories oi on oi.inventory_id = inv.id
139
+ where oi.arrival_notice_id = $1
140
+ AND inv.domain_id = $2
141
+ GROUP BY inv.id, product.name, do2.own_collection, plt.name
142
+ ORDER BY inv.pallet_id, product.name asc
143
+ ) foo
127
144
  `,
128
145
  [foundGAN.id, domain.id]
129
146
  )
130
147
 
131
- await trxMgr.query(
132
- `
133
- drop table temp_invHistory
134
- `
135
- )
136
-
137
148
  const sumPackQty = targetProducts.map((op: OrderProduct) => op.actualPackQty).reduce((a, b) => a + b, 0)
138
149
 
139
150
  let sumPalletQty = 0
140
151
  if (foundJS?.sumPalletQty) {
141
152
  sumPalletQty = foundJS.sumPalletQty
142
153
  }
143
-
154
+ let index = 0
144
155
  const data = {
145
156
  logo_url: logo,
146
157
  customer_biz: partnerBiz.company.name,
@@ -163,9 +174,10 @@ export async function renderJobSheet({ ganNo, timezoneOffSet }, context) {
163
174
  created_on: DateTimeConverter.date(foundJS.createdAt),
164
175
  job_no: foundJS ? foundJS.name : null,
165
176
  ref_no: foundGAN.name,
166
- product_list: invItems.map((item, idx) => {
177
+ product_list: invItems.map(item => {
178
+ index = item.rn == 1 ? index + 1 : index
167
179
  return {
168
- idx: idx + 1,
180
+ idx: item.rn == 1 ? index : '',
169
181
  pallet_id: item.palletId,
170
182
  product_name: item.productName,
171
183
  product_type: item.packingType,
@@ -1,25 +1,21 @@
1
+ import FormData from 'form-data'
2
+ import fetch from 'node-fetch'
3
+ import { getRepository, IsNull, Not } from 'typeorm'
4
+
1
5
  import { Attachment, STORAGE } from '@things-factory/attachment-base'
2
6
  import { Partner } from '@things-factory/auth-base'
3
7
  import { Bizplace, ContactPoint } from '@things-factory/biz-base'
4
8
  import { config } from '@things-factory/env'
5
- import {
6
- ArrivalNotice,
7
- GoodsReceivalNote,
8
- OrderProduct,
9
- ORDER_PRODUCT_STATUS,
10
- ORDER_STATUS
11
- } from '@things-factory/sales-base'
9
+ import { ArrivalNotice, GoodsReceivalNote, ORDER_STATUS, OrderProduct } from '@things-factory/sales-base'
12
10
  import { Domain } from '@things-factory/shell'
13
- import FormData from 'form-data'
14
- import fetch from 'node-fetch'
15
- import { getRepository, IsNull, Not } from 'typeorm'
16
- import { TEMPLATE_TYPE } from '../constants'
11
+
12
+ import { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'
17
13
  import { Worksheet } from '../entities'
18
14
  import { DateTimeConverter } from '../utils/datetime-util'
19
15
 
20
16
  const REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')
21
17
 
22
- export async function renderKimedaGRN({ grnNo }, context: any) {
18
+ export async function renderKimedaGRN({ grnNo, timezoneOffSet }, context: any) {
23
19
  // 1. find domain
24
20
  const domain: Domain = await getRepository(Domain).findOne({
25
21
  where: { id: context.state.domain.id }
@@ -39,7 +35,7 @@ export async function renderKimedaGRN({ grnNo }, context: any) {
39
35
  const partnerBiz: Bizplace = foundGRN.bizplace
40
36
 
41
37
  const partnerDomain: Partner = await getRepository(Partner).findOne({
42
- where: { partnerDomain: partnerBiz.domain },
38
+ where: { partnerDomain: partnerBiz.domain, domain },
43
39
  relations: ['domain']
44
40
  })
45
41
 
@@ -54,10 +50,21 @@ export async function renderKimedaGRN({ grnNo }, context: any) {
54
50
  where: { domain, bizplace: domainBizplace }
55
51
  })
56
52
 
53
+ // 5. find domain contact point
54
+ const foundPartnerCP: ContactPoint = await getRepository(ContactPoint).findOne({
55
+ where: { domain, bizplace: partnerBiz }
56
+ })
57
+
57
58
  // 6. find unloading worksheet
58
59
  const foundWS: Worksheet = await getRepository(Worksheet).findOne({
59
- where: { domain, arrivalNotice: foundGAN, type: ORDER_PRODUCT_STATUS.UNLOADING, status: ORDER_STATUS.DONE },
60
- relations: ['worksheetDetails']
60
+ where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING, status: ORDER_STATUS.DONE },
61
+ relations: ['worksheetDetails', 'updater']
62
+ })
63
+
64
+ // find putaway worksheet
65
+ const foundPutawayWS: Worksheet = await getRepository(Worksheet).findOne({
66
+ where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.PUTAWAY, status: ORDER_STATUS.DONE },
67
+ relations: ['worksheetDetails', 'updater']
61
68
  })
62
69
 
63
70
  const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({
@@ -123,15 +130,20 @@ export async function renderKimedaGRN({ grnNo }, context: any) {
123
130
  company_address: domainBizplace.company.address,
124
131
  order_no: foundGRN.name,
125
132
  gan_no: foundGAN.name,
133
+ gan_accepted_at: foundGAN.acceptedAt ? DateTimeConverter.datetime(foundGAN.acceptedAt, timezoneOffSet) : '',
126
134
  unload_date: DateTimeConverter.date(foundWS.endedAt),
127
135
  ref_no: ownRefNo ? `${foundGAN.name} / ${foundGAN.refNo}` : `${foundGAN.name}`,
128
136
  received_date: DateTimeConverter.date(foundWS.endedAt),
129
137
  truck_no: foundGAN.truckNo || '',
130
138
  container_no: foundGAN.containerNo || '',
139
+ delivery_order_no: foundGAN.deliveryOrderNo ? foundGAN.deliveryOrderNo : '',
140
+ account_no: foundPartnerCP ? foundPartnerCP.accountNo : '',
141
+ unloaded_by: foundWS ? foundWS.updater.name : '',
142
+ putaway_by: foundPutawayWS ? foundPutawayWS.updater.name : '',
131
143
  product_list: targetProducts.map((item, idx) => {
132
144
  return {
133
145
  list_no: idx + 1,
134
- product_sku: `${item.product_sku}`,
146
+ product_sku: `${item.product.sku}`,
135
147
  product_name: `${item.product.name}(${item.product.description})`,
136
148
  product_desc: item.product.description,
137
149
  product_nameOnly: item.product.name,