@things-factory/worksheet-base 4.0.0-alpha.7 → 4.0.0-beta.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 (400) hide show
  1. package/dist-server/constants/index.js +1 -1
  2. package/dist-server/controllers/ecommerce/ecommerce-controller.js +46 -2
  3. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  4. package/dist-server/controllers/ecommerce/index.js +2 -1
  5. package/dist-server/controllers/ecommerce/index.js.map +1 -1
  6. package/dist-server/controllers/ecommerce/sellercraft-controller.js +168 -0
  7. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
  8. package/dist-server/controllers/inbound/index.js +1 -1
  9. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +7 -7
  10. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +7 -7
  12. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +1 -1
  14. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +22 -20
  16. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  17. package/dist-server/controllers/index.js +3 -1
  18. package/dist-server/controllers/index.js.map +1 -1
  19. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +48 -13
  20. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  21. package/dist-server/controllers/inspect/index.js +1 -1
  22. package/dist-server/controllers/outbound/index.js +1 -1
  23. package/dist-server/controllers/outbound/loading-worksheet-controller.js +4 -4
  24. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  25. package/dist-server/controllers/outbound/packing-worksheet-controller.js +16 -1
  26. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  27. package/dist-server/controllers/outbound/picking-worksheet-controller.js +20 -12
  28. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  29. package/dist-server/controllers/outbound/returning-worksheet-controller.js +1 -1
  30. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  31. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  32. package/dist-server/controllers/render-elccl-grn.js +13 -16
  33. package/dist-server/controllers/render-elccl-grn.js.map +1 -1
  34. package/dist-server/controllers/render-grn.js +192 -0
  35. package/dist-server/controllers/render-grn.js.map +1 -0
  36. package/dist-server/controllers/render-job-sheet.js +63 -47
  37. package/dist-server/controllers/render-job-sheet.js.map +1 -1
  38. package/dist-server/controllers/render-kimeda-grn.js +35 -21
  39. package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
  40. package/dist-server/controllers/render-manual-do.js +11 -10
  41. package/dist-server/controllers/render-manual-do.js.map +1 -1
  42. package/dist-server/controllers/render-orientage-do.js +61 -35
  43. package/dist-server/controllers/render-orientage-do.js.map +1 -1
  44. package/dist-server/controllers/render-orientage-grn.js +53 -26
  45. package/dist-server/controllers/render-orientage-grn.js.map +1 -1
  46. package/dist-server/controllers/render-ro-do.js +36 -21
  47. package/dist-server/controllers/render-ro-do.js.map +1 -1
  48. package/dist-server/controllers/render-seebuu-grn.js +177 -0
  49. package/dist-server/controllers/render-seebuu-grn.js.map +1 -0
  50. package/dist-server/controllers/vas/index.js +1 -1
  51. package/dist-server/controllers/vas/vas-worksheet-controller.js +78 -17
  52. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  53. package/dist-server/controllers/worksheet-controller.js +59 -11
  54. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  55. package/dist-server/entities/worksheet-detail.js +23 -23
  56. package/dist-server/entities/worksheet-detail.js.map +1 -1
  57. package/dist-server/entities/worksheet-movement.js +9 -9
  58. package/dist-server/entities/worksheet-movement.js.map +1 -1
  59. package/dist-server/entities/worksheet.js +28 -26
  60. package/dist-server/entities/worksheet.js.map +1 -1
  61. package/dist-server/graphql/index.js +1 -1
  62. package/dist-server/graphql/resolvers/index.js +1 -1
  63. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +2 -2
  64. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
  65. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +2 -2
  66. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  67. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js +3 -3
  68. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js.map +1 -1
  69. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js +3 -3
  70. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js.map +1 -1
  71. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +3 -3
  72. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  73. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +2 -2
  74. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -1
  75. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +32 -10
  76. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  77. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js +8 -6
  78. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
  79. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js +1 -1
  80. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js.map +1 -1
  81. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js +4 -4
  82. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -1
  83. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +25 -0
  84. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +1 -0
  85. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
  86. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js +4 -4
  87. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
  88. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js.map +1 -1
  89. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js.map +1 -1
  90. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js.map +1 -1
  91. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js.map +1 -1
  92. package/dist-server/graphql/resolvers/worksheet/having-vas.js +3 -3
  93. package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -1
  94. package/dist-server/graphql/resolvers/worksheet/index.js +5 -4
  95. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  96. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +4 -4
  97. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  98. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js +4 -4
  99. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -1
  100. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js +2 -2
  101. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -1
  102. package/dist-server/graphql/resolvers/worksheet/loading/loading.js +1 -1
  103. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
  104. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +4 -4
  105. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
  106. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +5 -5
  107. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
  108. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +13 -1
  109. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  110. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +38 -28
  111. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  112. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +13 -1
  113. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  114. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +13 -1
  115. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  116. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +68 -19
  117. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  118. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +2 -2
  119. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
  120. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +7 -5
  121. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  122. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +22 -2
  123. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
  124. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +31 -6
  125. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  126. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js +4 -4
  127. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
  128. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +20 -1
  129. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  130. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +129 -125
  131. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  132. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js +2 -2
  133. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js.map +1 -1
  134. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +9 -9
  135. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -1
  136. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js +4 -4
  137. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
  138. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +5 -4
  139. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  140. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +17 -9
  141. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  142. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js +1 -1
  143. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -1
  144. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  145. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js +1 -1
  146. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -1
  147. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
  148. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +2 -2
  149. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
  150. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +2 -2
  151. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -1
  152. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +12 -7
  153. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
  154. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +1 -1
  155. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
  156. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js.map +1 -1
  157. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +13 -4
  158. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
  159. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +2 -2
  160. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -1
  161. package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js.map +1 -1
  162. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +3 -3
  163. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  164. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js +4 -4
  165. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -1
  166. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +14 -14
  167. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  168. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js +2 -2
  169. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -1
  170. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +24 -4
  171. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  172. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +18 -1
  173. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
  174. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js +2 -2
  175. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -1
  176. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +3 -3
  177. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
  178. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js +1 -1
  179. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js.map +1 -1
  180. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js +8 -8
  181. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -1
  182. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +3 -3
  183. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -1
  184. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +308 -17
  185. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  186. package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js +1 -1
  187. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js +1 -1
  188. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
  189. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -1
  190. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +2 -2
  191. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -1
  192. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js +5 -5
  193. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -1
  194. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js +1 -1
  195. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js +6 -6
  196. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -1
  197. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js +3 -3
  198. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -1
  199. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +137 -31
  200. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
  201. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js +1 -1
  202. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +163 -48
  203. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
  204. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +37 -23
  205. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
  206. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js +5 -5
  207. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -1
  208. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js +1 -1
  209. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js +8 -8
  210. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -1
  211. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js +3 -3
  212. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -1
  213. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js +1 -1
  214. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +3 -3
  215. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -1
  216. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +8 -8
  217. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
  218. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js +2 -2
  219. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -1
  220. package/dist-server/graphql/resolvers/worksheet/worksheet.js +43 -37
  221. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
  222. package/dist-server/graphql/resolvers/worksheet/worksheets.js +46 -17
  223. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
  224. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +1 -1
  225. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -1
  226. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js +1 -1
  227. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js.map +1 -1
  228. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +89 -125
  229. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
  230. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js +1 -1
  231. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -1
  232. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +6 -4
  233. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
  234. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +3 -2
  235. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
  236. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js +1 -1
  237. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -1
  238. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +1 -1
  239. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -1
  240. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +3 -2
  241. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
  242. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js +2 -2
  243. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js.map +1 -1
  244. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +1 -1
  245. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -1
  246. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js +1 -1
  247. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js.map +1 -1
  248. package/dist-server/graphql/types/index.js +3 -2
  249. package/dist-server/graphql/types/index.js.map +1 -1
  250. package/dist-server/graphql/types/pallet/index.js +10 -0
  251. package/dist-server/graphql/types/pallet/index.js.map +1 -0
  252. package/dist-server/graphql/types/worksheet/airwaybill.js +10 -0
  253. package/dist-server/graphql/types/worksheet/airwaybill.js.map +1 -0
  254. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js +1 -1
  255. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js.map +1 -1
  256. package/dist-server/graphql/types/worksheet/contact-point-info.js +1 -1
  257. package/dist-server/graphql/types/worksheet/contact-point-info.js.map +1 -1
  258. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js +1 -1
  259. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js.map +1 -1
  260. package/dist-server/graphql/types/worksheet/delivery-info.js +1 -1
  261. package/dist-server/graphql/types/worksheet/delivery-info.js.map +1 -1
  262. package/dist-server/graphql/types/worksheet/delivery-order-info.js +1 -1
  263. package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -1
  264. package/dist-server/graphql/types/worksheet/delivery-worksheet.js +1 -1
  265. package/dist-server/graphql/types/worksheet/delivery-worksheet.js.map +1 -1
  266. package/dist-server/graphql/types/worksheet/executing-worksheet.js +1 -1
  267. package/dist-server/graphql/types/worksheet/executing-worksheet.js.map +1 -1
  268. package/dist-server/graphql/types/worksheet/goods-delivery-note.js +1 -1
  269. package/dist-server/graphql/types/worksheet/goods-delivery-note.js.map +1 -1
  270. package/dist-server/graphql/types/worksheet/index.js +10 -2
  271. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  272. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js +1 -1
  273. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js.map +1 -1
  274. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +1 -1
  275. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -1
  276. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js +1 -1
  277. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js.map +1 -1
  278. package/dist-server/graphql/types/worksheet/new-worksheet.js +1 -1
  279. package/dist-server/graphql/types/worksheet/new-worksheet.js.map +1 -1
  280. package/dist-server/graphql/types/worksheet/picking-assignment-status.js +1 -1
  281. package/dist-server/graphql/types/worksheet/picking-assignment-status.js.map +1 -1
  282. package/dist-server/graphql/types/worksheet/product-approval.js +1 -1
  283. package/dist-server/graphql/types/worksheet/product-approval.js.map +1 -1
  284. package/dist-server/graphql/types/worksheet/release-good-worksheet.js +1 -1
  285. package/dist-server/graphql/types/worksheet/release-good-worksheet.js.map +1 -1
  286. package/dist-server/graphql/types/worksheet/return-order-worksheet.js +1 -1
  287. package/dist-server/graphql/types/worksheet/return-order-worksheet.js.map +1 -1
  288. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js +1 -1
  289. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js.map +1 -1
  290. package/dist-server/graphql/types/worksheet/vas-worksheet.js +1 -1
  291. package/dist-server/graphql/types/worksheet/vas-worksheet.js.map +1 -1
  292. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +1 -1
  293. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
  294. package/dist-server/graphql/types/worksheet/worksheet-info.js +3 -1
  295. package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
  296. package/dist-server/graphql/types/worksheet/worksheet-list.js +1 -1
  297. package/dist-server/graphql/types/worksheet/worksheet-list.js.map +1 -1
  298. package/dist-server/graphql/types/worksheet/worksheet-patch.js +1 -1
  299. package/dist-server/graphql/types/worksheet/worksheet-patch.js.map +1 -1
  300. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js +1 -1
  301. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js.map +1 -1
  302. package/dist-server/graphql/types/worksheet/worksheet.js +1 -1
  303. package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -1
  304. package/dist-server/graphql/types/worksheet-detail/index.js +2 -1
  305. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  306. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +2 -1
  307. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
  308. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js +1 -1
  309. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js.map +1 -1
  310. package/dist-server/graphql/types/worksheet-detail/pallet-info.js +1 -1
  311. package/dist-server/graphql/types/worksheet-detail/pallet-info.js.map +1 -1
  312. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js +1 -1
  313. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js.map +1 -1
  314. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js +1 -1
  315. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js.map +1 -1
  316. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js +1 -1
  317. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js.map +1 -1
  318. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js +1 -1
  319. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js.map +1 -1
  320. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js +1 -1
  321. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js.map +1 -1
  322. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js +1 -1
  323. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js.map +1 -1
  324. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js +1 -1
  325. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js.map +1 -1
  326. package/dist-server/index.js +1 -1
  327. package/dist-server/routes.js +20 -12
  328. package/dist-server/routes.js.map +1 -1
  329. package/dist-server/utils/index.js +1 -1
  330. package/dist-server/utils/inventory-util.js +59 -17
  331. package/dist-server/utils/inventory-util.js.map +1 -1
  332. package/dist-server/utils/worksheet-no-generator.js +24 -24
  333. package/dist-server/utils/worksheet-no-generator.js.map +1 -1
  334. package/dist-server/utils/worksheet-util.js +2 -2
  335. package/dist-server/utils/worksheet-util.js.map +1 -1
  336. package/package.json +16 -15
  337. package/server/controllers/ecommerce/ecommerce-controller.ts +82 -4
  338. package/server/controllers/ecommerce/index.ts +1 -0
  339. package/server/controllers/ecommerce/sellercraft-controller.ts +223 -0
  340. package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +1 -0
  341. package/server/controllers/inbound/unloading-worksheet-controller.ts +16 -14
  342. package/server/controllers/index.ts +2 -0
  343. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +108 -43
  344. package/server/controllers/outbound/packing-worksheet-controller.ts +21 -4
  345. package/server/controllers/outbound/picking-worksheet-controller.ts +26 -11
  346. package/server/controllers/render-elccl-grn.ts +3 -7
  347. package/server/controllers/render-grn.ts +218 -0
  348. package/server/controllers/render-job-sheet.ts +51 -39
  349. package/server/controllers/render-kimeda-grn.ts +28 -16
  350. package/server/controllers/render-orientage-do.ts +41 -11
  351. package/server/controllers/render-orientage-grn.ts +39 -10
  352. package/server/controllers/render-ro-do.ts +22 -6
  353. package/server/controllers/render-seebuu-grn.ts +198 -0
  354. package/server/controllers/vas/vas-worksheet-controller.ts +104 -23
  355. package/server/controllers/worksheet-controller.ts +80 -19
  356. package/server/entities/worksheet.ts +2 -0
  357. package/server/graphql/resolvers/pallet/pallet-outbound.ts +2 -1
  358. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +30 -2
  359. package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +7 -4
  360. package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +30 -0
  361. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +18 -3
  362. package/server/graphql/resolvers/worksheet/index.ts +6 -4
  363. package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +4 -2
  364. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +20 -3
  365. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +47 -38
  366. package/server/graphql/resolvers/worksheet/packing/packing.ts +22 -3
  367. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +22 -3
  368. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +79 -19
  369. package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +5 -1
  370. package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +34 -4
  371. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +41 -8
  372. package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +4 -3
  373. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +31 -3
  374. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +149 -148
  375. package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +5 -4
  376. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +5 -2
  377. package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +7 -2
  378. package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +22 -9
  379. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +29 -5
  380. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +23 -2
  381. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +452 -14
  382. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.ts +36 -1
  383. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.ts +8 -2
  384. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +185 -56
  385. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +210 -54
  386. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +64 -32
  387. package/server/graphql/resolvers/worksheet/worksheet.ts +67 -62
  388. package/server/graphql/resolvers/worksheet/worksheets.ts +51 -13
  389. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +119 -168
  390. package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +2 -1
  391. package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +2 -1
  392. package/server/graphql/types/index.ts +2 -1
  393. package/server/graphql/types/pallet/index.ts +6 -0
  394. package/server/graphql/types/worksheet/airwaybill.ts +7 -0
  395. package/server/graphql/types/worksheet/index.ts +10 -2
  396. package/server/graphql/types/worksheet/worksheet-info.ts +2 -0
  397. package/server/graphql/types/worksheet-detail/index.ts +2 -1
  398. package/server/graphql/types/worksheet-detail/inventory-detail.ts +1 -0
  399. package/server/routes.ts +15 -5
  400. package/server/utils/inventory-util.ts +64 -21
@@ -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,
@@ -4,6 +4,7 @@ import { Bizplace, ContactPoint } from '@things-factory/biz-base'
4
4
  import { config } from '@things-factory/env'
5
5
  import { DeliveryOrder, OrderInventory, ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'
6
6
  import { Domain } from '@things-factory/shell'
7
+ import { Product, ProductDetail } from '@things-factory/product-base'
7
8
  import { Inventory, Pallet } from '@things-factory/warehouse-base'
8
9
  import FormData from 'form-data'
9
10
  import fetch from 'node-fetch'
@@ -93,6 +94,7 @@ export async function renderOrientageDO({ doNo }, context: any) {
93
94
  'targetInventory.inventory',
94
95
  'targetInventory.inventory.location',
95
96
  'targetInventory.inventory.product',
97
+ 'targetInventory.inventory.product.productDetails',
96
98
  'targetInventory.inventory.reusablePallet',
97
99
  'updater'
98
100
  ]
@@ -129,6 +131,11 @@ export async function renderOrientageDO({ doNo }, context: any) {
129
131
  .map((wsd: WorksheetDetail) => {
130
132
  const targetInventory: OrderInventory = wsd.targetInventory
131
133
  const inventory: Inventory = targetInventory.inventory
134
+ const productDetails: ProductDetail[] = inventory.product.productDetails
135
+ const matchedProductDetail: ProductDetail = productDetails.find(
136
+ productDetail => productDetail.packingType === inventory.packingType
137
+ )
138
+
132
139
  return {
133
140
  product_name: `${inventory.product.name} (${inventory.product.description})`,
134
141
  product_desc: `${inventory.product?.description || ''}`,
@@ -137,7 +144,17 @@ export async function renderOrientageDO({ doNo }, context: any) {
137
144
  packing_type: inventory.packingType,
138
145
  product_batch: inventory.batchId,
139
146
  product_batch_ref: inventory.batchIdRef,
140
- pack_size: inventory.product.primaryValue
147
+ product_packing_size: matchedProductDetail ? matchedProductDetail.packingSize : inventory.packingSize,
148
+ pack_size: matchedProductDetail
149
+ ? matchedProductDetail.uomValue
150
+ ? matchedProductDetail.uomValue +
151
+ ' ' +
152
+ matchedProductDetail.uom +
153
+ (inventory.product.volumeSize
154
+ ? ' x ' + (parseFloat(inventory.product.volumeSize) / 100).toFixed(2) + ' L'
155
+ : '')
156
+ : null
157
+ : inventory.product.primaryValue
141
158
  ? inventory.product.primaryValue +
142
159
  ' ' +
143
160
  inventory.product.primaryUnit +
@@ -145,14 +162,27 @@ export async function renderOrientageDO({ doNo }, context: any) {
145
162
  ? ' x ' + (parseFloat(inventory.product.volumeSize) / 100).toFixed(2) + ' L'
146
163
  : '')
147
164
  : null,
148
- aux_value_3: inventory.product.auxValue3,
165
+ aux_value_3: matchedProductDetail ? matchedProductDetail.auxValue3 : inventory.product.auxValue3,
149
166
  product_qty: targetInventory.inventory.warehouse !== 'DAMAGE ZONE' ? targetInventory.releaseQty : 0,
150
167
  product_qty_damage: targetInventory.inventory.warehouse === 'DAMAGE ZONE' ? targetInventory.releaseQty : 0,
151
- product_weight: inventory.product.weight,
152
- product_case_weight: inventory.product.caseWeight,
153
- product_uom_value: targetInventory.releaseUomValue,
168
+ product_weight: inventory.product?.weight ? inventory.product.weight : 0,
169
+ product_case_weight: inventory.product?.weight ? inventory.product.weight : 0,
170
+ product_uom_value: targetInventory?.releaseUomValue ? targetInventory.releaseUomValue : 0,
154
171
  product_uom: inventory.uom,
155
- product_volume: inventory.product.caseVolume ? inventory.product.caseVolume : 0,
172
+ product_volume: matchedProductDetail
173
+ ? matchedProductDetail.volume
174
+ ? matchedProductDetail.volume
175
+ : 0
176
+ : inventory?.product?.volume
177
+ ? inventory.product.volume
178
+ : 0,
179
+ total_volume: matchedProductDetail
180
+ ? matchedProductDetail.volume
181
+ ? Number((matchedProductDetail.volume * targetInventory.releaseQty).toFixed(4))
182
+ : 0
183
+ : inventory?.product?.volume
184
+ ? Number((inventory.product.volume * targetInventory.releaseQty).toFixed(4))
185
+ : 0,
156
186
  remark: targetInventory.remark,
157
187
  inventory_remark: inventory.remark,
158
188
  cross_docking: targetInventory.crossDocking,
@@ -180,8 +210,8 @@ export async function renderOrientageDO({ doNo }, context: any) {
180
210
  product_qty_case: item.product_qty === 0 ? item.product_qty_damage : item.product_qty,
181
211
  product_qty_unit:
182
212
  item.product_qty === 0
183
- ? parseFloat(item.product_qty_damage) * parseFloat(item.packing_type)
184
- : parseFloat(item.product_qty) * parseFloat(item.packing_type),
213
+ ? parseFloat(item.product_qty_damage) * parseFloat(item.product_packing_size)
214
+ : parseFloat(item.product_qty) * parseFloat(item.product_packing_size),
185
215
  pack_size: item.pack_size,
186
216
  product_weight: item.product_weight,
187
217
  product_case_weight: item.product_case_weight,
@@ -219,8 +249,8 @@ export async function renderOrientageDO({ doNo }, context: any) {
219
249
  product_qty_unit:
220
250
  ni.product_qty_unit +
221
251
  (item.product_qty === 0
222
- ? parseFloat(item.product_qty_damage) * parseFloat(item.packing_type)
223
- : parseFloat(item.product_qty) * parseFloat(item.packing_type)),
252
+ ? parseFloat(item.product_qty_damage) * parseFloat(item.product_packing_size)
253
+ : parseFloat(item.product_qty) * parseFloat(item.product_packing_size)),
224
254
  product_weight: ni.product_weight + item.product_weight,
225
255
  product_case_weight: ni.product_case_weight + item.product_case_weight,
226
256
  product_uom_value: ni.product_uom_value + item.product_uom_value
@@ -233,7 +263,7 @@ export async function renderOrientageDO({ doNo }, context: any) {
233
263
  }, [])
234
264
 
235
265
  const data = {
236
- logo_url: logo,
266
+ // logo_url: logo,
237
267
  customer_biz: partnerBiz.name,
238
268
  company_domain: domainBizplace.company.name,
239
269
  company_brn: domainBizplace.company.brn,
@@ -9,6 +9,7 @@ import {
9
9
  ORDER_PRODUCT_STATUS,
10
10
  ORDER_STATUS
11
11
  } from '@things-factory/sales-base'
12
+ import { Product, ProductDetail } from '@things-factory/product-base'
12
13
  import { Domain } from '@things-factory/shell'
13
14
  import FormData from 'form-data'
14
15
  import fetch from 'node-fetch'
@@ -64,7 +65,7 @@ export async function renderOrientageGRN({ grnNo }, context: any) {
64
65
 
65
66
  const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({
66
67
  where: { domain, arrivalNotice: foundGAN, actualPalletQty: Not(IsNull()), actualPackQty: Not(IsNull()) },
67
- relations: ['product']
68
+ relations: ['product', 'product.productDetails']
68
69
  })
69
70
 
70
71
  // 7. find grn template based on category
@@ -104,6 +105,10 @@ export async function renderOrientageGRN({ grnNo }, context: any) {
104
105
  ref_no2: ownRefNo3,
105
106
  received_date: DateTimeConverter.date(foundWS.endedAt),
106
107
  product_list: targetProducts.map((item, idx) => {
108
+ const productDetails: ProductDetail[] = item.product.productDetails
109
+ const matchedProductDetail: ProductDetail = productDetails.find(
110
+ productDetail => productDetail.packingType === item.packingType
111
+ )
107
112
  return {
108
113
  list_no: idx + 1,
109
114
  product_sku: item.product.sku,
@@ -111,8 +116,16 @@ export async function renderOrientageGRN({ grnNo }, context: any) {
111
116
  product_desc: item.product.description,
112
117
  expiration_date: item.expirationDate ? DateTimeConverter.date(item.expirationDate) : null,
113
118
  batch_id: item.batchId,
114
- batch_id_ref: item?.batchIdRef ? item.batchIdRef : null,
115
- pack_size: item.product.primaryValue
119
+ batch_id_ref: item?.batchIdRef ? item.batchIdRef : '',
120
+ product_packing_size: matchedProductDetail ? matchedProductDetail.packingSize : item.packingSize,
121
+ pack_size: matchedProductDetail
122
+ ? matchedProductDetail.uomValue
123
+ ? matchedProductDetail.uomValue +
124
+ ' ' +
125
+ matchedProductDetail.uom +
126
+ (item.product.volumeSize ? ' x ' + (parseFloat(item.product.volumeSize) / 100).toFixed(2) + ' L' : '')
127
+ : null
128
+ : item.product.primaryValue
116
129
  ? item.product.primaryValue +
117
130
  ' ' +
118
131
  item.product.primaryUnit +
@@ -120,14 +133,30 @@ export async function renderOrientageGRN({ grnNo }, context: any) {
120
133
  : null,
121
134
  pack_qty: item.packQty ? item.packQty : 0,
122
135
  actual_pack_qty: item.actualPackQty ? item.actualPackQty : 0,
123
- container_no: foundGAN.containerNo ? foundGAN.containerNo : null,
124
- aux_value_3: item.product.auxValue3 ? item.product.auxValue3 : null,
125
- product_volume: item.product.caseVolume ? item.product.caseVolume : 0,
126
- total_volume: item.product.caseVolume ? Number((item.product.caseVolume * item.actualPackQty).toFixed(4)) : 0,
136
+ container_no: foundGAN.containerNo ? foundGAN.containerNo : '',
137
+ aux_value_3: item.product.auxValue3 ? item.product.auxValue3 : '',
138
+ product_volume: matchedProductDetail
139
+ ? matchedProductDetail?.volume
140
+ ? matchedProductDetail.volume
141
+ : 0
142
+ : item?.product?.volume
143
+ ? item.product.volume
144
+ : 0,
145
+ total_volume: matchedProductDetail
146
+ ? matchedProductDetail.volume
147
+ ? Number((matchedProductDetail.volume * item.actualPackQty).toFixed(4))
148
+ : 0
149
+ : item?.product?.volume
150
+ ? Number((item.product.volume * item.actualPackQty).toFixed(4))
151
+ : 0,
127
152
  manufacture_year: item.manufactureYear ? item.manufactureYear : null,
128
- literage: item?.product?.packingType
129
- ? parseFloat(item.product.packingType) * parseFloat(item.product.volumeSize)
130
- : null,
153
+ literage: matchedProductDetail
154
+ ? matchedProductDetail.packingSize
155
+ ? parseFloat(matchedProductDetail.packingSize) * parseFloat(item.product.volumeSize)
156
+ : 0
157
+ : item.packingSize
158
+ ? parseFloat(item.packingSize) * parseFloat(item.product.volumeSize)
159
+ : 0,
131
160
  remark: item.remark || ''
132
161
  }
133
162
  })