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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist-server/controllers/ecommerce/ecommerce-controller.js +46 -2
  2. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  3. package/dist-server/controllers/ecommerce/index.js +1 -0
  4. package/dist-server/controllers/ecommerce/index.js.map +1 -1
  5. package/dist-server/controllers/ecommerce/sellercraft-controller.js +168 -0
  6. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
  7. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +7 -7
  8. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +7 -7
  10. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  11. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +1 -1
  12. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +14 -14
  14. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/index.js +2 -0
  16. package/dist-server/controllers/index.js.map +1 -1
  17. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +48 -13
  18. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  19. package/dist-server/controllers/outbound/loading-worksheet-controller.js +4 -4
  20. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  21. package/dist-server/controllers/outbound/packing-worksheet-controller.js +16 -1
  22. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  23. package/dist-server/controllers/outbound/picking-worksheet-controller.js +20 -12
  24. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  25. package/dist-server/controllers/outbound/returning-worksheet-controller.js +1 -1
  26. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  27. package/dist-server/controllers/render-elccl-grn.js +13 -16
  28. package/dist-server/controllers/render-elccl-grn.js.map +1 -1
  29. package/dist-server/controllers/render-grn.js +192 -0
  30. package/dist-server/controllers/render-grn.js.map +1 -0
  31. package/dist-server/controllers/render-job-sheet.js +63 -47
  32. package/dist-server/controllers/render-job-sheet.js.map +1 -1
  33. package/dist-server/controllers/render-kimeda-grn.js +35 -21
  34. package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
  35. package/dist-server/controllers/render-manual-do.js +9 -9
  36. package/dist-server/controllers/render-manual-do.js.map +1 -1
  37. package/dist-server/controllers/render-orientage-do.js +61 -35
  38. package/dist-server/controllers/render-orientage-do.js.map +1 -1
  39. package/dist-server/controllers/render-orientage-grn.js +53 -27
  40. package/dist-server/controllers/render-orientage-grn.js.map +1 -1
  41. package/dist-server/controllers/render-ro-do.js +34 -20
  42. package/dist-server/controllers/render-ro-do.js.map +1 -1
  43. package/dist-server/controllers/render-seebuu-grn.js +177 -0
  44. package/dist-server/controllers/render-seebuu-grn.js.map +1 -0
  45. package/dist-server/controllers/vas/vas-worksheet-controller.js +78 -17
  46. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  47. package/dist-server/controllers/worksheet-controller.js +59 -11
  48. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  49. package/dist-server/entities/worksheet-detail.js +23 -23
  50. package/dist-server/entities/worksheet-detail.js.map +1 -1
  51. package/dist-server/entities/worksheet-movement.js +9 -9
  52. package/dist-server/entities/worksheet-movement.js.map +1 -1
  53. package/dist-server/entities/worksheet.js +28 -26
  54. package/dist-server/entities/worksheet.js.map +1 -1
  55. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +2 -2
  56. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
  57. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +2 -2
  58. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  59. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js +3 -3
  60. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js.map +1 -1
  61. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js +3 -3
  62. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js.map +1 -1
  63. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +3 -3
  64. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  65. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +2 -2
  66. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -1
  67. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +32 -10
  68. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  69. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js +8 -6
  70. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
  71. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js +1 -1
  72. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js.map +1 -1
  73. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js +4 -4
  74. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -1
  75. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +25 -0
  76. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +1 -0
  77. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js +4 -4
  78. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
  79. package/dist-server/graphql/resolvers/worksheet/having-vas.js +3 -3
  80. package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -1
  81. package/dist-server/graphql/resolvers/worksheet/index.js +5 -4
  82. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  83. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +4 -4
  84. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  85. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js +4 -4
  86. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -1
  87. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js +2 -2
  88. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -1
  89. package/dist-server/graphql/resolvers/worksheet/loading/loading.js +1 -1
  90. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
  91. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +4 -4
  92. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
  93. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +5 -5
  94. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
  95. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +13 -1
  96. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  97. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +38 -28
  98. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  99. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +13 -1
  100. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  101. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +13 -1
  102. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  103. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +68 -19
  104. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  105. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +2 -2
  106. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
  107. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +7 -5
  108. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  109. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +22 -2
  110. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
  111. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +31 -6
  112. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  113. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js +4 -4
  114. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
  115. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +20 -1
  116. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  117. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +129 -125
  118. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  119. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js +2 -2
  120. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js.map +1 -1
  121. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +9 -9
  122. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -1
  123. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js +4 -4
  124. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
  125. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +5 -4
  126. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  127. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +1 -1
  128. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  129. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js +1 -1
  130. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -1
  131. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js +1 -1
  132. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -1
  133. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +2 -2
  134. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
  135. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +2 -2
  136. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -1
  137. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +12 -7
  138. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
  139. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +1 -1
  140. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
  141. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +13 -4
  142. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
  143. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +2 -2
  144. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -1
  145. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +3 -3
  146. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  147. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js +4 -4
  148. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -1
  149. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +14 -14
  150. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  151. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js +2 -2
  152. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -1
  153. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +24 -4
  154. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  155. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +18 -1
  156. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
  157. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js +2 -2
  158. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -1
  159. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +3 -3
  160. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
  161. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js +1 -1
  162. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js.map +1 -1
  163. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js +8 -8
  164. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -1
  165. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +3 -3
  166. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -1
  167. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +308 -17
  168. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  169. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
  170. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -1
  171. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +2 -2
  172. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -1
  173. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js +5 -5
  174. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -1
  175. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js +6 -6
  176. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -1
  177. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js +3 -3
  178. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -1
  179. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +137 -31
  180. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
  181. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +163 -48
  182. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
  183. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +37 -23
  184. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
  185. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js +5 -5
  186. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -1
  187. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js +8 -8
  188. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -1
  189. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js +3 -3
  190. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -1
  191. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +3 -3
  192. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -1
  193. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +8 -8
  194. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
  195. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js +2 -2
  196. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -1
  197. package/dist-server/graphql/resolvers/worksheet/worksheet.js +43 -37
  198. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
  199. package/dist-server/graphql/resolvers/worksheet/worksheets.js +46 -17
  200. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
  201. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +1 -1
  202. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -1
  203. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js +1 -1
  204. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js.map +1 -1
  205. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +89 -125
  206. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
  207. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js +1 -1
  208. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -1
  209. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +2 -2
  210. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
  211. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +3 -2
  212. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
  213. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js +1 -1
  214. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -1
  215. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +1 -1
  216. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -1
  217. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +3 -2
  218. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
  219. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js +2 -2
  220. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js.map +1 -1
  221. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +1 -1
  222. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -1
  223. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js +1 -1
  224. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js.map +1 -1
  225. package/dist-server/graphql/types/index.js +2 -1
  226. package/dist-server/graphql/types/index.js.map +1 -1
  227. package/dist-server/graphql/types/pallet/index.js +10 -0
  228. package/dist-server/graphql/types/pallet/index.js.map +1 -0
  229. package/dist-server/graphql/types/worksheet/airwaybill.js +10 -0
  230. package/dist-server/graphql/types/worksheet/airwaybill.js.map +1 -0
  231. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js +1 -1
  232. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js.map +1 -1
  233. package/dist-server/graphql/types/worksheet/contact-point-info.js +1 -1
  234. package/dist-server/graphql/types/worksheet/contact-point-info.js.map +1 -1
  235. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js +1 -1
  236. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js.map +1 -1
  237. package/dist-server/graphql/types/worksheet/delivery-info.js +1 -1
  238. package/dist-server/graphql/types/worksheet/delivery-info.js.map +1 -1
  239. package/dist-server/graphql/types/worksheet/delivery-order-info.js +1 -1
  240. package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -1
  241. package/dist-server/graphql/types/worksheet/delivery-worksheet.js +1 -1
  242. package/dist-server/graphql/types/worksheet/delivery-worksheet.js.map +1 -1
  243. package/dist-server/graphql/types/worksheet/executing-worksheet.js +1 -1
  244. package/dist-server/graphql/types/worksheet/executing-worksheet.js.map +1 -1
  245. package/dist-server/graphql/types/worksheet/goods-delivery-note.js +1 -1
  246. package/dist-server/graphql/types/worksheet/goods-delivery-note.js.map +1 -1
  247. package/dist-server/graphql/types/worksheet/index.js +10 -2
  248. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  249. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js +1 -1
  250. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js.map +1 -1
  251. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +1 -1
  252. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -1
  253. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js +1 -1
  254. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js.map +1 -1
  255. package/dist-server/graphql/types/worksheet/new-worksheet.js +1 -1
  256. package/dist-server/graphql/types/worksheet/new-worksheet.js.map +1 -1
  257. package/dist-server/graphql/types/worksheet/picking-assignment-status.js +1 -1
  258. package/dist-server/graphql/types/worksheet/picking-assignment-status.js.map +1 -1
  259. package/dist-server/graphql/types/worksheet/product-approval.js +1 -1
  260. package/dist-server/graphql/types/worksheet/product-approval.js.map +1 -1
  261. package/dist-server/graphql/types/worksheet/release-good-worksheet.js +1 -1
  262. package/dist-server/graphql/types/worksheet/release-good-worksheet.js.map +1 -1
  263. package/dist-server/graphql/types/worksheet/return-order-worksheet.js +1 -1
  264. package/dist-server/graphql/types/worksheet/return-order-worksheet.js.map +1 -1
  265. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js +1 -1
  266. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js.map +1 -1
  267. package/dist-server/graphql/types/worksheet/vas-worksheet.js +1 -1
  268. package/dist-server/graphql/types/worksheet/vas-worksheet.js.map +1 -1
  269. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +1 -1
  270. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
  271. package/dist-server/graphql/types/worksheet/worksheet-info.js +3 -1
  272. package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
  273. package/dist-server/graphql/types/worksheet/worksheet-list.js +1 -1
  274. package/dist-server/graphql/types/worksheet/worksheet-list.js.map +1 -1
  275. package/dist-server/graphql/types/worksheet/worksheet-patch.js +1 -1
  276. package/dist-server/graphql/types/worksheet/worksheet-patch.js.map +1 -1
  277. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js +1 -1
  278. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js.map +1 -1
  279. package/dist-server/graphql/types/worksheet/worksheet.js +1 -1
  280. package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -1
  281. package/dist-server/graphql/types/worksheet-detail/index.js +2 -1
  282. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  283. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +2 -1
  284. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
  285. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js +1 -1
  286. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js.map +1 -1
  287. package/dist-server/graphql/types/worksheet-detail/pallet-info.js +1 -1
  288. package/dist-server/graphql/types/worksheet-detail/pallet-info.js.map +1 -1
  289. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js +1 -1
  290. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js.map +1 -1
  291. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js +1 -1
  292. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js.map +1 -1
  293. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js +1 -1
  294. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js.map +1 -1
  295. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js +1 -1
  296. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js.map +1 -1
  297. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js +1 -1
  298. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js.map +1 -1
  299. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js +1 -1
  300. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js.map +1 -1
  301. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js +1 -1
  302. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js.map +1 -1
  303. package/dist-server/routes.js +20 -12
  304. package/dist-server/routes.js.map +1 -1
  305. package/dist-server/utils/inventory-util.js +59 -17
  306. package/dist-server/utils/inventory-util.js.map +1 -1
  307. package/dist-server/utils/worksheet-no-generator.js +24 -24
  308. package/dist-server/utils/worksheet-no-generator.js.map +1 -1
  309. package/dist-server/utils/worksheet-util.js +2 -2
  310. package/dist-server/utils/worksheet-util.js.map +1 -1
  311. package/package.json +16 -15
  312. package/server/controllers/ecommerce/ecommerce-controller.ts +82 -4
  313. package/server/controllers/ecommerce/index.ts +1 -0
  314. package/server/controllers/ecommerce/sellercraft-controller.ts +223 -0
  315. package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +1 -0
  316. package/server/controllers/inbound/unloading-worksheet-controller.ts +16 -14
  317. package/server/controllers/index.ts +2 -0
  318. package/server/controllers/inspect/cycle-count-worksheet-controller.ts +108 -43
  319. package/server/controllers/outbound/packing-worksheet-controller.ts +21 -4
  320. package/server/controllers/outbound/picking-worksheet-controller.ts +26 -11
  321. package/server/controllers/render-elccl-grn.ts +3 -7
  322. package/server/controllers/render-grn.ts +218 -0
  323. package/server/controllers/render-job-sheet.ts +51 -39
  324. package/server/controllers/render-kimeda-grn.ts +28 -16
  325. package/server/controllers/render-orientage-do.ts +41 -11
  326. package/server/controllers/render-orientage-grn.ts +39 -10
  327. package/server/controllers/render-ro-do.ts +22 -6
  328. package/server/controllers/render-seebuu-grn.ts +198 -0
  329. package/server/controllers/vas/vas-worksheet-controller.ts +104 -23
  330. package/server/controllers/worksheet-controller.ts +80 -19
  331. package/server/entities/worksheet.ts +2 -0
  332. package/server/graphql/resolvers/pallet/pallet-outbound.ts +2 -1
  333. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +30 -2
  334. package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +7 -4
  335. package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +30 -0
  336. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +18 -3
  337. package/server/graphql/resolvers/worksheet/index.ts +6 -4
  338. package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +4 -2
  339. package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +20 -3
  340. package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +47 -38
  341. package/server/graphql/resolvers/worksheet/packing/packing.ts +22 -3
  342. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +22 -3
  343. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +79 -19
  344. package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +5 -1
  345. package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +34 -4
  346. package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +41 -8
  347. package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +4 -3
  348. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +31 -3
  349. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +149 -148
  350. package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +5 -4
  351. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +5 -2
  352. package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +7 -2
  353. package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +22 -9
  354. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +29 -5
  355. package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +23 -2
  356. package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +452 -14
  357. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.ts +36 -1
  358. package/server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.ts +8 -2
  359. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +185 -56
  360. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +210 -54
  361. package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +64 -32
  362. package/server/graphql/resolvers/worksheet/worksheet.ts +67 -62
  363. package/server/graphql/resolvers/worksheet/worksheets.ts +51 -13
  364. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +119 -168
  365. package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +2 -1
  366. package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +2 -1
  367. package/server/graphql/types/index.ts +2 -1
  368. package/server/graphql/types/pallet/index.ts +6 -0
  369. package/server/graphql/types/worksheet/airwaybill.ts +7 -0
  370. package/server/graphql/types/worksheet/index.ts +10 -2
  371. package/server/graphql/types/worksheet/worksheet-info.ts +2 -0
  372. package/server/graphql/types/worksheet-detail/index.ts +2 -1
  373. package/server/graphql/types/worksheet-detail/inventory-detail.ts +1 -0
  374. package/server/routes.ts +15 -5
  375. package/server/utils/inventory-util.ts +64 -21
@@ -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
  })
@@ -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
  }