@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
@@ -1,13 +1,15 @@
1
+ import FormData from 'form-data'
2
+ import fetch from 'node-fetch'
3
+ import { Equal, getRepository, In } 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 { DeliveryOrder, OrderInventory, ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'
9
+ import { DeliveryOrder, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
6
10
  import { Domain } from '@things-factory/shell'
7
11
  import { Inventory, Pallet } from '@things-factory/warehouse-base'
8
- import FormData from 'form-data'
9
- import fetch from 'node-fetch'
10
- import { Equal, getRepository, In } from 'typeorm'
12
+
11
13
  import { TEMPLATE_TYPE, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../constants'
12
14
  import { Worksheet, WorksheetDetail } from '../entities'
13
15
 
@@ -46,7 +48,7 @@ export async function renderRODO({ doNo }, context: any) {
46
48
  const ownRefNo = foundRO.refNo
47
49
 
48
50
  const partnerDomain: Partner = await getRepository(Partner).findOne({
49
- where: { partnerDomain: partnerBiz.domain },
51
+ where: { partnerDomain: partnerBiz.domain, domain },
50
52
  relations: ['domain']
51
53
  })
52
54
 
@@ -202,12 +204,25 @@ export async function renderRODO({ doNo }, context: any) {
202
204
  company_domain: domainBizplace.company.name,
203
205
  company_brn: domainBizplace.company.brn,
204
206
  company_address: domainBizplace.company.address,
207
+ company_email: foundWarehouseCP.email ? foundWarehouseCP.email : null,
205
208
  company_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,
209
+ warehouse_address: foundWarehouseCP ? foundWarehouseCP.address : null,
210
+ warehouse_address2: foundWarehouseCP ? foundWarehouseCP.address2 : null,
211
+ warehouse_postcode: foundWarehouseCP ? foundWarehouseCP.postCode : null,
212
+ warehouse_city: foundWarehouseCP ? foundWarehouseCP.city : null,
213
+ warehouse_state: foundWarehouseCP ? foundWarehouseCP.state : null,
206
214
  warehouse_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,
207
- company_email: foundWarehouseCP.email,
215
+ warehouse_fax: foundWarehouseCP ? foundWarehouseCP.fax : null,
216
+ warehouse_email: foundWarehouseCP ? foundWarehouseCP.email : null,
208
217
  customer_name: foundCP ? foundCP.name : null,
209
218
  customer_delivery_address: foundCP ? foundCP.address : null,
210
219
  customer_billing_address: foundCP ? foundCP.billingAddress : null,
220
+ new_delivery_address: foundRO?.deliveryAddress1 || null,
221
+ new_delivery_address2: foundRO?.deliveryAddress2 || null,
222
+ new_billing_address: foundRO?.billingAddress || null,
223
+ new_attention_to: foundRO?.attentionTo || null,
224
+ new_attention_company: foundRO?.attentionCompany || null,
225
+ new_phone_no: foundRO?.phone1 || null,
211
226
  customer_phone: foundCP ? foundCP.phone : null,
212
227
  customer_fax: foundCP ? foundCP.fax : null,
213
228
  customer_email: foundCP ? foundCP.email : null,
@@ -215,6 +230,7 @@ export async function renderRODO({ doNo }, context: any) {
215
230
  own_collection: ownTransportFlag ? '[SELF-COLLECTION]' : `[${domain.brandName} TRANSPORT]`,
216
231
  destination: foundDO.to || '',
217
232
  ro_no: foundRO.name,
233
+ ro_created_at: foundRO.createdAt ? foundRO.createdAt : '',
218
234
  ref_no: ownRefNo ? `${foundRO.name} / ${foundRO.refNo}` : `${foundRO.name}`,
219
235
  ref_no_only: ownRefNo ? `${foundRO.refNo}` : '',
220
236
  ref_no2: foundRO.refNo2 ? `${foundRO.refNo2}` : '',
@@ -0,0 +1,198 @@
1
+ import FormData from 'form-data'
2
+ import fetch from 'node-fetch'
3
+ import { EntityManager, getManager, getRepository } 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 } from '@things-factory/sales-base'
10
+ import { Domain } from '@things-factory/shell'
11
+
12
+ import { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'
13
+ import { Worksheet } from '../entities'
14
+ import { DateTimeConverter } from '../utils/datetime-util'
15
+
16
+ const REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')
17
+
18
+ export async function renderSeebuuGRN({ grnNo }, context: any) {
19
+ // 1. find domain
20
+ const domain: Domain = await getRepository(Domain).findOne({
21
+ where: { id: context.state.domain.id }
22
+ })
23
+
24
+ // 2. find grn
25
+ const foundGRN: GoodsReceivalNote = await getRepository(GoodsReceivalNote).findOne({
26
+ where: { domain, name: grnNo },
27
+ relations: ['domain', 'bizplace', 'bizplace.domain', 'bizplace.company', 'arrivalNotice']
28
+ })
29
+
30
+ // 3. find GAN
31
+ const foundGAN: ArrivalNotice = foundGRN.arrivalNotice
32
+
33
+ // 4. find customer bizplace
34
+ const partnerBiz: Bizplace = foundGRN.bizplace
35
+
36
+ const partnerDomain: Partner = await getRepository(Partner).findOne({
37
+ where: { partnerDomain: partnerBiz.domain },
38
+ relations: ['domain']
39
+ })
40
+
41
+ const domainOwner: Domain = partnerDomain.domain
42
+ const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({
43
+ where: { domain: domainOwner },
44
+ relations: ['company']
45
+ })
46
+
47
+ // 5. find domain contact point
48
+ const foundCP: ContactPoint = await getRepository(ContactPoint).findOne({
49
+ where: { domain, bizplace: domainBizplace }
50
+ })
51
+
52
+ // 6. find unloading worksheet
53
+ const foundWS: Worksheet = await getRepository(Worksheet).findOne({
54
+ where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING, status: ORDER_STATUS.DONE },
55
+ relations: ['worksheetDetails', 'updater']
56
+ })
57
+
58
+ // find putaway worksheet
59
+ const foundPutawayWS: Worksheet = await getRepository(Worksheet).findOne({
60
+ where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.PUTAWAY, status: ORDER_STATUS.DONE },
61
+ relations: ['worksheetDetails', 'updater']
62
+ })
63
+
64
+ let invItems: any
65
+
66
+ await getManager().transaction(async (trxMgr: EntityManager) => {
67
+ invItems = await trxMgr.query(
68
+ `
69
+ select op.id, op."name", op.description, op."type", op.batch_id, op.adjusted_batch_id, op.adjusted_pallet_qty, op.packing_type,
70
+ ih.uom, op.uom_value, ih.qty, op.pallet_qty, op.actual_pallet_qty, op.total_uom_value, op.release_qty,
71
+ coalesce((select nett_weight from product_details prdw where prdw.product_id = op.product_id and prdw.packing_type = op.packing_type and prdw.packing_size = op.packing_size order by nett_weight desc limit 1),0) as unit_nett_weight,
72
+ coalesce((select gross_weight from product_details prdw where prdw.product_id = op.product_id and prdw.packing_type = op.packing_type and prdw.packing_size = op.packing_size order by nett_weight desc limit 1),0) as unit_gross_weight,
73
+ op.unit_price, op.unpack_uom_value, op.unpack_qty, op.discount_amt, op.tax_rate, op.misc_amt,
74
+ op.adjusted_packing_type, op.manufacture_year, op.adjusted_uom, op.adjusted_uom_value, op.adjusted_pack_qty, op.adjusted_total_uom_value,
75
+ op.batch_id_ref, op.adjusted_batch_id_ref,
76
+ op.adjusted_unit_price, op.packing_size, op.release_uom_value,
77
+ ih.expiry_date as expiration_date, p.sku as product_sku, p.name as product_name, p.description as product_description,
78
+ case when ih.reusable_pallet_id notnull then concat(ih.qty, ' ', ih.packing_type, '(S) ', plt.name) else concat(ih.pallet, ' PALLET(S)') end as remark
79
+ from order_products op
80
+ left join (
81
+ select product_id, batch_id, reusable_pallet_id, packing_type, sum(qty) as qty,
82
+ sum(uom_value) as uom_value, uom, count(distinct pallet_id) as pallet,
83
+ string_agg(distinct expiration_date::varchar,', ' order by expiration_date::varchar) as expiry_date
84
+ from reduced_inventory_histories rih
85
+ where ref_order_id::uuid = $1
86
+ and transaction_type = 'UNLOADING'
87
+ group by reusable_pallet_id, product_id, batch_id, packing_type, uom
88
+ ) ih on op.product_id = ih.product_id and op.batch_id = ih.batch_id and op.packing_type = ih.packing_type and op.uom = ih.uom
89
+ left join pallets plt on plt.id = ih.reusable_pallet_id
90
+ inner join products p on op.product_id = p.id
91
+ where op.arrival_notice_id::uuid = $1
92
+ order by p.sku
93
+ `,
94
+ [foundGAN.id]
95
+ )
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 template = await STORAGE.readFile(foundTemplate.path, 'utf-8')
127
+
128
+ let logo = null
129
+ if (foundLogo?.path) {
130
+ logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))
131
+ }
132
+
133
+ let signature = null
134
+ if (foundSignature?.path) {
135
+ signature = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundSignature.path, 'base64'))
136
+ }
137
+
138
+ let cop = null
139
+ if (foundCop?.path) {
140
+ cop = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundCop.path, 'base64'))
141
+ }
142
+
143
+ const data = {
144
+ logo_url: logo,
145
+ sign_url: signature,
146
+ cop_url: cop,
147
+ customer_biz: partnerBiz.name,
148
+ customer_address: partnerBiz.address,
149
+ company_domain: domainBizplace.company.name,
150
+ company_phone: foundCP.phone,
151
+ company_email: foundCP.email,
152
+ company_brn: domainBizplace.company.brn,
153
+ company_address: domainBizplace.company.address,
154
+ order_no: foundGRN.name,
155
+ gan_no: foundGAN.name,
156
+ unload_date: DateTimeConverter.date(foundWS.endedAt),
157
+ ref_no: `${foundGAN.refNo}`,
158
+ ref_no1: foundGAN.refNo2 ? `${foundGAN.refNo2}` : '',
159
+ ref_no2: foundGAN.refNo3 ? `${foundGAN.refNo3}` : '',
160
+ received_date: DateTimeConverter.date(foundWS.endedAt),
161
+ truck_no: foundGAN.truckNo || '',
162
+ container_no: foundGAN.containerNo || '',
163
+ unloaded_by: foundWS ? foundWS.updater.name : '',
164
+ putaway_by: foundPutawayWS ? foundPutawayWS.updater.name : '',
165
+ delivery_order_no: foundGAN.deliveryOrderNo ? foundGAN.deliveryOrderNo : '',
166
+ product_list: invItems.map((item, idx) => {
167
+ return {
168
+ list_no: idx + 1,
169
+ product_sku: `${item.product_sku}`,
170
+ product_name: `${item.product_name}(${item.product_description})`,
171
+ product_desc: item.product_description,
172
+ product_nameOnly: item.product_name,
173
+ product_type: item.packing_type,
174
+ product_batch: item.batch_id,
175
+ product_qty: item.qty,
176
+ product_uom_value: `${Math.round(item.uom_value * 100) / 100} ${item.uom}`,
177
+ product_unit_nett_weight: parseFloat(item.unit_nett_weight),
178
+ product_total_nett_weight: parseFloat(item.unit_nett_weight) * parseFloat(item.qty),
179
+ product_unit_gross_weight: parseFloat(item.unit_gross_weight),
180
+ product_total_gross_weight: parseFloat(item.unit_gross_weight) * parseFloat(item.qty),
181
+ pallet_qty: item.actual_pallet_qty,
182
+ expiry_date: item.expiration_date,
183
+ remark: (item.remark ? item.remark : '') + (item.issue ? ' [Issue]: ' + item.issue : '')
184
+ }
185
+ })
186
+ }
187
+
188
+ const formData = new FormData()
189
+ formData.append('template', template)
190
+ formData.append('jsonString', JSON.stringify(data))
191
+
192
+ const response = await fetch(REPORT_API_URL, {
193
+ method: 'POST',
194
+ body: formData
195
+ })
196
+
197
+ return await response.text()
198
+ }
@@ -1,28 +1,30 @@
1
+ import { EntityManager, Equal, In, Not } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Bizplace } from '@things-factory/biz-base'
5
+ import { Product } from '@things-factory/product-base'
3
6
  import {
4
7
  ArrivalNotice,
5
- OrderNoGenerator,
6
- OrderVas,
7
8
  ORDER_STATUS,
8
9
  ORDER_TYPES,
9
10
  ORDER_VAS_STATUS,
11
+ OrderNoGenerator,
12
+ OrderVas,
10
13
  ReleaseGood,
11
- VasOrder,
12
- VAS
14
+ VAS,
15
+ VasOrder
13
16
  } from '@things-factory/sales-base'
14
- import { Product } from '@things-factory/product-base'
15
17
  import {
16
18
  Inventory,
17
- InventoryHistory,
18
- InventoryNoGenerator,
19
19
  INVENTORY_STATUS,
20
20
  INVENTORY_TRANSACTION_TYPE,
21
+ InventoryHistory,
22
+ InventoryNoGenerator,
21
23
  Location,
22
24
  LOCATION_TYPE,
23
25
  Warehouse
24
26
  } from '@things-factory/warehouse-base'
25
- import { EntityManager, Equal, Not, In } from 'typeorm'
27
+
26
28
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
27
29
  import { Worksheet, WorksheetDetail } from '../../entities'
28
30
  import {
@@ -30,10 +32,12 @@ import {
30
32
  completeRepackaging,
31
33
  completeRepalletizing,
32
34
  completeUnpacking,
35
+ FeaturedInventoryInterface,
33
36
  RefOrderType
34
37
  } from '../../graphql/resolvers/worksheet/vas-transactions'
35
- import { ReferenceOrderType, WorksheetController } from '.././worksheet-controller'
38
+ import { PackingUnits } from '../../graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging'
36
39
  import { generateInventoryHistory } from '../../utils'
40
+ import { ReferenceOrderType, WorksheetController } from '../worksheet-controller'
37
41
 
38
42
  type CompleteTransactionType = (trxMgr: EntityManager, orderVas: OrderVas, user: User) => Promise<void>
39
43
 
@@ -41,6 +45,7 @@ export class VasWorksheetController extends WorksheetController {
41
45
  private readonly COMPLETE_TRX_MAP: Record<string, CompleteTransactionType> = {
42
46
  'vas-repalletizing': completeRepalletizing,
43
47
  'vas-repack': completeRepackaging,
48
+ 'vas-repack-relabel': completeRepackaging,
44
49
  'vas-relabel': completeRelabeling,
45
50
  'vas-unpack': completeUnpacking
46
51
  }
@@ -102,20 +107,88 @@ export class VasWorksheetController extends WorksheetController {
102
107
  return acc + inv.qty
103
108
  }, 0)
104
109
 
110
+ let operationGuide = JSON.parse(targetVas.operationGuide)
111
+ let vasOperationGuide = targetVas.vas?.operationGuide
112
+
113
+ if (vasOperationGuide === 'vas-repack' || vasOperationGuide === 'vas-repack-relabel') {
114
+ const mainInventory: Inventory = inventories[0]
115
+ const featuredInvs: FeaturedInventoryInterface[] = []
116
+ const foundInvs: Inventory[] = await this.trxMgr
117
+ .getRepository(Inventory)
118
+ .findByIds(inventories.filter(inv => inv.id !== mainInventory.id).map(inv => inv.id))
119
+
120
+ /* Update lockedQty of featuredInvs */
121
+ for (let inventory of foundInvs) {
122
+ const transferQty: number = inventories.find(inv => inv.id === inventory.id).qty
123
+ const transferUomValue: number = Math.round((inventory.uomValue / inventory.qty) * transferQty * 100) / 100
124
+
125
+ inventory.lockedQty += transferQty
126
+ inventory.lockedUomValue += transferUomValue
127
+
128
+ await this.trxMgr.getRepository(Inventory).save(inventory)
129
+
130
+ let featuredInv: FeaturedInventoryInterface = {
131
+ palletId: inventory.palletId,
132
+ originalQty: transferQty,
133
+ originalUomValue: transferUomValue,
134
+ packingSize: inventory.packingSize,
135
+ uomValuePerQty: inventory.uomValue / (inventory.qty * inventory.packingSize)
136
+ }
137
+
138
+ switch (operationGuide.data?.packingUnit) {
139
+ case PackingUnits.QTY:
140
+ featuredInv.currentUnitQty = transferQty * inventory.packingSize
141
+ break
142
+
143
+ case PackingUnits.UOM:
144
+ featuredInv.currentUomValue = transferUomValue
145
+ break
146
+ }
147
+
148
+ featuredInvs.push(featuredInv)
149
+ }
150
+
151
+ /* assign featuredInvs inside operationGuide.data */
152
+ operationGuide.data = {
153
+ ...operationGuide.data,
154
+ featuredInvs
155
+ }
156
+
157
+ /* assign main inventory as the only inventories */
158
+ inventories = [mainInventory]
159
+ }
160
+
105
161
  for (let inventory of inventories) {
106
162
  let newTargetVas: OrderVas = new OrderVas()
107
163
 
108
164
  const foundInventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne(inventory.id)
109
- const unitUomValue: number = foundInventory.uomValue / foundInventory.qty
110
- const assignedQty = inventory.qty // assigned inventory qty that was passed from client side
165
+ if (!foundInventory) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(inventory.id))
111
166
 
112
- let operationGuide = JSON.parse(targetVas.operationGuide)
167
+ // assigned inventory qty that was passed from client side
168
+ const assignedQty = inventory.qty
169
+ const unitUomValue: number = foundInventory.uomValue / foundInventory.qty
113
170
 
114
171
  // update unpack qty for unpacking vas
115
- if (targetVas.vas?.operationGuide === 'vas-unpack') {
172
+ if (vasOperationGuide === 'vas-unpack') {
116
173
  operationGuide.data.unpackQty = Math.round(operationGuide.data.unpackQty / accInventoriesQty) * assignedQty
117
174
  }
118
175
 
176
+ if (vasOperationGuide === 'vas-repack' || vasOperationGuide === 'vas-repack-relabel') {
177
+ switch (operationGuide.data?.packingUnit) {
178
+ case PackingUnits.UOM:
179
+ newTargetVas.qty = 1
180
+ newTargetVas.uomValue = targetVas.uomValue
181
+ break
182
+
183
+ default:
184
+ newTargetVas.qty = accInventoriesQty
185
+ newTargetVas.uomValue = accInventoriesQty * unitUomValue
186
+ }
187
+ } else {
188
+ newTargetVas.qty = assignedQty
189
+ newTargetVas.uomValue = assignedQty * unitUomValue
190
+ }
191
+
119
192
  newTargetVas.set = targetVas.set
120
193
  newTargetVas.targetType = targetVas.targetType
121
194
  newTargetVas.targetBatchId = targetVas.targetBatchId
@@ -129,8 +202,6 @@ export class VasWorksheetController extends WorksheetController {
129
202
  newTargetVas.vas = targetVas.vas
130
203
  newTargetVas.domain = this.domain
131
204
  newTargetVas.name = OrderNoGenerator.orderVas()
132
- newTargetVas.qty = assignedQty
133
- newTargetVas.uomValue = assignedQty * unitUomValue
134
205
  newTargetVas.inventory = foundInventory
135
206
  newTargetVas.bizplace = bizplace
136
207
  newTargetVas.creator = this.user
@@ -141,15 +212,13 @@ export class VasWorksheetController extends WorksheetController {
141
212
  seq++
142
213
 
143
214
  // update inventory locked qty & uom value
144
- const currentLockedQty: any = inventory.lockedQty
145
- const currentLockedUomValue: any = inventory.lockedUomValue
215
+ const currentLockedQty: number = foundInventory.lockedQty || 0
216
+ const currentLockedUomValue: number = foundInventory.lockedUomValue || 0
146
217
 
147
218
  await this.trxMgr.getRepository(Inventory).save({
148
219
  ...foundInventory,
149
- lockedQty: !!currentLockedQty ? targetVas.qty + currentLockedQty : targetVas.qty,
150
- lockedUomValue: !!currentLockedUomValue
151
- ? targetVas.qty * unitUomValue + currentLockedUomValue
152
- : targetVas.qty * unitUomValue,
220
+ lockedQty: inventory.qty + currentLockedQty,
221
+ lockedUomValue: inventory.qty * unitUomValue + currentLockedUomValue,
153
222
  updater: this.user
154
223
  })
155
224
  }
@@ -360,13 +429,19 @@ export class VasWorksheetController extends WorksheetController {
360
429
  }
361
430
  }
362
431
 
363
- const targetVas: Inventory = foundWorksheetDetail.targetVas
432
+ const targetVas: VasOrder = foundWorksheetDetail.targetVas
364
433
  if (!targetVas) throw new Error(`VAS doesn't exists`)
365
434
 
366
435
  const inventory: Inventory = foundWorksheetDetail.targetVas.inventory
367
436
 
368
437
  // reset lockedQty if there's inventory found
369
- if (inventory && inventory.lockedQty >= targetVas.qty) {
438
+ if (
439
+ inventory &&
440
+ inventory.lockedQty >= targetVas.qty &&
441
+ targetVas.vas.operationGuide &&
442
+ targetVas.vas.operationGuide !== 'vas-repack' &&
443
+ targetVas.vas.operationGuide !== 'vas-repack-relabel'
444
+ ) {
370
445
  await this.trxMgr.getRepository(Inventory).save({
371
446
  ...inventory,
372
447
  lockedQty: inventory.lockedQty - targetVas.qty,
@@ -664,6 +739,12 @@ export class VasWorksheetController extends WorksheetController {
664
739
  (wsd: WorksheetDetail) => wsd.targetVas.id === targetVas.id
665
740
  )
666
741
 
742
+ // if (targetVas.operationGuide && (!issue || (targetVas.vas.name.toUpperCase() == VAS.REPACKAGING && issue))) {
743
+ // await this.doOperationTransaction(targetVas)
744
+ // } /*else if (targetVas.operationGuide && targetVas.vas.name.toUpperCase() === VAS.REPACKAGING && issue) {
745
+ // await this.doOperationTransaction(targetVas)
746
+ // }*/
747
+
667
748
  if (targetVas.operationGuide && !issue) {
668
749
  await this.doOperationTransaction(targetVas)
669
750
  }
@@ -1,24 +1,26 @@
1
+ import { EntityManager, EntitySchema, Equal, FindOneOptions, In, Not } from 'typeorm'
2
+
1
3
  import { Role, User } from '@things-factory/auth-base'
2
4
  import { Bizplace, getDomainUsers } from '@things-factory/biz-base'
5
+ import { sendNotification } from '@things-factory/notification'
6
+ import { ProductDetail } from '@things-factory/product-base'
3
7
  import {
4
8
  ArrivalNotice,
5
9
  DeliveryOrder,
6
10
  InventoryCheck,
7
- OrderInventory,
8
- OrderProduct,
9
- OrderVas,
10
11
  ORDER_INVENTORY_STATUS,
11
12
  ORDER_PRODUCT_STATUS,
12
13
  ORDER_VAS_STATUS,
14
+ OrderInventory,
15
+ OrderProduct,
16
+ OrderVas,
13
17
  ReleaseGood,
14
- VasOrder,
15
- ReturnOrder
18
+ ReturnOrder,
19
+ VasOrder
16
20
  } from '@things-factory/sales-base'
17
- import { ProductDetail } from '@things-factory/product-base'
18
21
  import { Domain } from '@things-factory/shell'
19
- import { sendNotification } from '@things-factory/notification'
20
- import { Inventory, Pallet, INVENTORY_STATUS } from '@things-factory/warehouse-base'
21
- import { EntityManager, EntitySchema, Equal, FindOneOptions, Not, In } from 'typeorm'
22
+ import { Inventory, INVENTORY_STATUS, Pallet } from '@things-factory/warehouse-base'
23
+
22
24
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../constants'
23
25
  import { Worksheet, WorksheetDetail } from '../entities'
24
26
  import { generateInventoryHistory, WorksheetNoGenerator } from '../utils'
@@ -56,6 +58,7 @@ export class WorksheetController {
56
58
  public readonly ERROR_MSG = {
57
59
  FIND: {
58
60
  NO_RESULT: (condition: any) => `There's no results matched with condition ${condition}`,
61
+ NO_CHILD_RESULT: (condition: any) => `There's no child result matched with condition ${condition}`,
59
62
  NOT_MATCH: (source: any, target: any) => `Unable to find matching ${target} using ${source}`
60
63
  },
61
64
  ORDER_ITEM: {
@@ -637,10 +640,12 @@ export class WorksheetController {
637
640
 
638
641
  const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails
639
642
 
640
- worksheetDetails.forEach((wsd: WorksheetDetail) => {
641
- wsd.status = WORKSHEET_STATUS.DONE
642
- wsd.updater = this.user
643
- })
643
+ worksheetDetails
644
+ .filter((wsd: WorksheetDetail) => wsd.status !== ORDER_INVENTORY_STATUS.REPLACED)
645
+ .forEach((wsd: WorksheetDetail) => {
646
+ wsd.status = WORKSHEET_STATUS.DONE
647
+ wsd.updater = this.user
648
+ })
644
649
  await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetails)
645
650
 
646
651
  if (worksheetType === WORKSHEET_TYPE.UNLOADING) {
@@ -668,12 +673,14 @@ export class WorksheetController {
668
673
  worksheetType === WORKSHEET_TYPE.WAREHOUSE_RETURN ||
669
674
  worksheetType === WORKSHEET_TYPE.UNLOADING_RETURN
670
675
  ) {
671
- const targetInventories: OrderInventory[] = worksheet.worksheetDetails.map((wsd: WorksheetDetail) => {
672
- let targetInventory: OrderInventory = wsd.targetInventory
673
- targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
674
- targetInventory.updater = this.user
675
- return targetInventory
676
- })
676
+ const targetInventories: OrderInventory[] = worksheet.worksheetDetails
677
+ .filter((wsd: WorksheetDetail) => wsd.status !== ORDER_INVENTORY_STATUS.REPLACED)
678
+ .map((wsd: WorksheetDetail) => {
679
+ let targetInventory: OrderInventory = wsd.targetInventory
680
+ targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED
681
+ targetInventory.updater = this.user
682
+ return targetInventory
683
+ })
677
684
 
678
685
  await this.updateOrderTargets(targetInventories)
679
686
  }
@@ -951,6 +958,60 @@ export class WorksheetController {
951
958
  return childQty
952
959
  }
953
960
 
961
+ /**
962
+ * @summary Check for product child qty at any scanned level
963
+ * @description It will check every level of product detail by comparing scanned level and GAN registered level.
964
+ * By getting the level that has relation, child qty will be retrieved
965
+ * 1st level: PALLET -> 2 CARTONS (scan), 2nd level: CARTON -> 6 BAGS, 3rd level: BAG -> 10 UNITS, lowest: UNIT (order registered packing type)
966
+ */
967
+ async getChildPackingSize(
968
+ productDetails: ProductDetail[],
969
+ defaultProductDetail: ProductDetail,
970
+ unmatchingProductDetail: ProductDetail
971
+ ): Promise<number> {
972
+ let hasChildRelation: boolean = Boolean(unmatchingProductDetail?.childProductDetail)
973
+ let hasMatchingChild: boolean
974
+ let packingSize: number = 1
975
+ let currentChildProductDetail: ProductDetail
976
+
977
+ if (hasChildRelation) {
978
+ currentChildProductDetail = productDetails.find(
979
+ (productDetail: ProductDetail) => productDetail.id === unmatchingProductDetail.childProductDetail.id
980
+ )
981
+
982
+ if (!currentChildProductDetail) {
983
+ throw new Error(this.ERROR_MSG.FIND.NOT_MATCH('packing type', `GTIN (${unmatchingProductDetail.gtin})`))
984
+ }
985
+
986
+ hasMatchingChild = Boolean(defaultProductDetail.id === currentChildProductDetail.id)
987
+ if (hasMatchingChild) {
988
+ packingSize = unmatchingProductDetail.packingSize
989
+ } else {
990
+ packingSize = unmatchingProductDetail.packingSize * packingSize
991
+ }
992
+ } else {
993
+ throw new Error(this.ERROR_MSG.FIND.NO_CHILD_RESULT(`${unmatchingProductDetail.gtin}`))
994
+ }
995
+
996
+ while (hasChildRelation && !hasMatchingChild) {
997
+ if (hasMatchingChild) {
998
+ packingSize = currentChildProductDetail.packingSize * packingSize // 12 x 10
999
+ } else if (!hasMatchingChild && hasChildRelation) {
1000
+ packingSize = currentChildProductDetail.packingSize * packingSize // 12 x 10
1001
+ currentChildProductDetail = productDetails.find(
1002
+ (productDetail: ProductDetail) => productDetail.id === currentChildProductDetail.childProductDetail.id
1003
+ )
1004
+
1005
+ hasChildRelation = Boolean(currentChildProductDetail?.childProductDetail)
1006
+ hasMatchingChild = Boolean(defaultProductDetail.id === currentChildProductDetail.id)
1007
+ } else if (!hasChildRelation && !hasMatchingChild) {
1008
+ throw new Error(this.ERROR_MSG.FIND.NO_RESULT(unmatchingProductDetail.gtin))
1009
+ }
1010
+ }
1011
+
1012
+ return packingSize
1013
+ }
1014
+
954
1015
  async createInventory(inventory: Partial<Inventory> | Partial<Inventory>[]): Promise<Inventory | Inventory[]> {
955
1016
  inventory = this.setStamp(inventory)
956
1017
  return await this.trxMgr.getRepository(Inventory).save(inventory)
@@ -26,6 +26,8 @@ import { WorksheetDetail } from './worksheet-detail'
26
26
  @Index('ix_worksheet_0', (worksheet: Worksheet) => [worksheet.domain, worksheet.bizplace, worksheet.name], {
27
27
  unique: true
28
28
  })
29
+ @Index('ix_worksheet_1', (worksheet: Worksheet) => [worksheet.arrivalNotice, worksheet.type])
30
+ @Index('ix_worksheet_2', (worksheet: Worksheet) => [worksheet.releaseGood, worksheet.type])
29
31
  export class Worksheet {
30
32
  @PrimaryGeneratedColumn('uuid')
31
33
  id: string
@@ -1,9 +1,10 @@
1
+ import { EntityManager, In } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Bizplace } from '@things-factory/biz-base'
3
5
  import { ReleaseGood } from '@things-factory/sales-base'
4
6
  import { Domain } from '@things-factory/shell'
5
7
  import { Pallet, PalletHistory } from '@things-factory/warehouse-base'
6
- import { EntityManager, getRepository, In } from 'typeorm'
7
8
 
8
9
  export const palletOutbound = {
9
10
  async palletOutbound(_: any, { refOrderNo, patches }, context: any) {