@things-factory/worksheet-base 4.0.0-alpha.6 → 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 (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,14 +1,17 @@
1
+ import { EntityManager } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Bizplace } from '@things-factory/biz-base'
3
- import { ArrivalNotice, generateGoodsReceivalNote } from '@things-factory/sales-base'
4
5
  import { MarketplaceStore } from '@things-factory/integration-marketplace'
6
+ import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
7
+ import { ArrivalNotice, generateGoodsReceivalNote } from '@things-factory/sales-base'
5
8
  import { Domain } from '@things-factory/shell'
6
9
  import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
7
- import { EntityManager } from 'typeorm'
10
+
8
11
  import { WORKSHEET_STATUS } from '../../../../constants'
9
12
  import { PutawayWorksheetController, UnloadingWorksheetController } from '../../../../controllers'
13
+ import { EcommerceController, SellercraftController } from '../../../../controllers/ecommerce'
10
14
  import { Worksheet, WorksheetDetail } from '../../../../entities'
11
- import { EcommerceController } from '../../../../controllers/ecommerce'
12
15
 
13
16
  export const completeUnloadingResolver = {
14
17
  async completeUnloading(_: any, { arrivalNoticeNo, worksheetDetails }, context: any) {
@@ -17,7 +20,17 @@ export const completeUnloadingResolver = {
17
20
 
18
21
  const arrivalNotice: ArrivalNotice = await tx.getRepository(ArrivalNotice).findOne({
19
22
  where: { domain, name: arrivalNoticeNo },
20
- relations: ['bizplace', 'bizplace.company', 'bizplace.company.domain', 'orderProducts', 'orderProducts.product']
23
+ relations: [
24
+ 'purchaseOrder',
25
+ 'bizplace',
26
+ 'bizplace.domain',
27
+ 'bizplace.company',
28
+ 'bizplace.company.domain',
29
+ 'orderProducts',
30
+ 'orderProducts.product',
31
+ 'orderProducts.product.productDetails',
32
+ 'orderProducts.product.productDetails.childProductDetail'
33
+ ]
21
34
  })
22
35
 
23
36
  const putawayWSCtrl: PutawayWorksheetController = new PutawayWorksheetController(tx, domain, user)
@@ -29,10 +42,21 @@ export const completeUnloadingResolver = {
29
42
 
30
43
  // search for any active marketplace connection
31
44
  const companyDomain: Domain = arrivalNotice.bizplace.company.domain
45
+ const customerDomain: Domain = arrivalNotice.bizplace.domain
32
46
  const marketplaceStores: MarketplaceStore[] = await tx.getRepository(MarketplaceStore).find({
33
- where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true }
47
+ where: { domain: companyDomain, status: 'ACTIVE', isAutoUpdateStockQty: true },
48
+ relations: ['marketplaceDistributors']
34
49
  })
35
50
 
51
+ const sellercraft: Sellercraft = await tx
52
+ .getRepository(Sellercraft)
53
+ .findOne({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
54
+
55
+ if (sellercraft) {
56
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
57
+ await sellercraftCtrl.registerProductInbound(sellercraft, arrivalNotice)
58
+ }
59
+
36
60
  if (marketplaceStores?.length && marketplaceStores.some(store => store.isAutoUpdateStockQty)) {
37
61
  const ecommerceCtrl: EcommerceController = new EcommerceController(tx, domain, user)
38
62
  await ecommerceCtrl.updateProductVariationStock(marketplaceStores, arrivalNotice.orderProducts, companyDomain)
@@ -1,10 +1,14 @@
1
+ import { EntityManager } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
4
+ import { Sellercraft, SellercraftStatus } from '@things-factory/integration-sellercraft'
2
5
  import { ReturnOrder } from '@things-factory/sales-base'
3
6
  import { Domain } from '@things-factory/shell'
4
7
  import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
5
- import { EntityManager } from 'typeorm'
8
+
6
9
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
7
10
  import { PutawayReturningWorksheetController, UnloadingReturningWorksheetController } from '../../../../controllers'
11
+ import { SellercraftController } from '../../../../controllers/ecommerce'
8
12
  import { Worksheet, WorksheetDetail } from '../../../../entities'
9
13
 
10
14
  export const completeUnloadReturningResolver = {
@@ -14,9 +18,26 @@ export const completeUnloadReturningResolver = {
14
18
 
15
19
  const returnOrder: ReturnOrder = await tx.getRepository(ReturnOrder).findOne({
16
20
  where: { domain, name: returnOrderNo },
17
- relations: ['bizplace']
21
+ relations: [
22
+ 'bizplace',
23
+ 'bizplace.domain',
24
+ 'orderInventories',
25
+ 'orderInventories.inventory',
26
+ 'orderInventories.product',
27
+ 'orderInventories.product.productDetails'
28
+ ]
18
29
  })
19
30
 
31
+ const customerDomain: Domain = returnOrder.bizplace.domain
32
+ const sellercraft: Sellercraft = await tx
33
+ .getRepository(Sellercraft)
34
+ .findOne({ domain: customerDomain, status: SellercraftStatus.ACTIVE })
35
+
36
+ if (sellercraft) {
37
+ const sellercraftCtrl: SellercraftController = new SellercraftController(tx, domain, user)
38
+ await sellercraftCtrl.registerProductReturn(sellercraft, returnOrder)
39
+ }
40
+
20
41
  const putawayWSCtrl: PutawayReturningWorksheetController = new PutawayReturningWorksheetController(tx, domain, user)
21
42
  let putawayWorksheet: Worksheet
22
43
 
@@ -1,29 +1,37 @@
1
+ import { EntityManager, Equal, In, IsNull, Not } from 'typeorm'
2
+
1
3
  import { User } from '@things-factory/auth-base'
2
4
  import { Bizplace } from '@things-factory/biz-base'
3
5
  import {
4
6
  ArrivalNotice,
7
+ ORDER_INVENTORY_STATUS,
8
+ ORDER_TYPES,
5
9
  OrderInventory,
6
10
  OrderNoGenerator,
7
11
  OrderVas,
8
- ORDER_INVENTORY_STATUS,
9
- ORDER_TYPES,
10
12
  ReleaseGood
11
13
  } from '@things-factory/sales-base'
12
14
  import { Domain } from '@things-factory/shell'
13
15
  import {
14
16
  Inventory,
15
- InventoryNoGenerator,
16
17
  INVENTORY_STATUS,
17
18
  INVENTORY_TRANSACTION_TYPE,
19
+ InventoryNoGenerator,
18
20
  Location,
19
21
  Pallet,
20
22
  Warehouse
21
23
  } from '@things-factory/warehouse-base'
22
- import { EntityManager, Equal, In, IsNull, Not } from 'typeorm'
24
+
23
25
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../../constants'
24
26
  import { Worksheet, WorksheetDetail } from '../../../../entities'
25
27
  import { generateInventoryHistory, WorksheetNoGenerator } from '../../../../utils'
26
- import { OperationGuideInterface, PalletChangesInterface, RefOrderType } from './interfaces'
28
+ import {
29
+ OperationGuideInterface,
30
+ PackingUnits,
31
+ PalletChangesInterface,
32
+ RefOrderType,
33
+ TemporaryPalletChangesInterface
34
+ } from './interfaces'
27
35
 
28
36
  /**
29
37
  * @description Find worksheet detail by name
@@ -184,6 +192,368 @@ export async function getRemainInventoryAmount(
184
192
  return { remainQty, remainUomValue }
185
193
  }
186
194
 
195
+ /** REMARK
196
+ * @farishelmi created temporary function @temporaryGetReducedAmount and
197
+ * @temporaryGetRemainInventoryAmount specifically for @Repackaging
198
+ * - because in repackaging we need to calculate based on unit qty of a product
199
+ * - eg: Carton of 12 Cokes repack into Boxes of 6 Cokes
200
+ * - this function should be merged with its origin once the logic in other vas is updated
201
+ * */
202
+
203
+ export function temporaryGetCurrentAmount(
204
+ palletChanges: TemporaryPalletChangesInterface[],
205
+ palletId: string,
206
+ packingUnit: string,
207
+ stdAmount: number
208
+ ): { qty: number; uomValue: number } {
209
+ return palletChanges
210
+ .filter((pc: TemporaryPalletChangesInterface) => pc.toPalletId === palletId)
211
+ .reduce(
212
+ (currentAmount: { qty: number; uomValue: number }, pc: TemporaryPalletChangesInterface) => {
213
+ if (packingUnit == PackingUnits.QTY) {
214
+ return {
215
+ qty: currentAmount.qty + pc.reducedUnitQty / stdAmount,
216
+ uomValue: currentAmount.uomValue + pc.reducedUomValue
217
+ }
218
+ } else if (packingUnit == PackingUnits.UOM) {
219
+ return {
220
+ qty: currentAmount.qty + pc.reducedQty,
221
+ uomValue: currentAmount.uomValue + pc.reducedUomValue
222
+ }
223
+ } else {
224
+ return { qty: 0, uomValue: 0 }
225
+ }
226
+ },
227
+ { qty: 0, uomValue: 0 }
228
+ )
229
+ }
230
+
231
+ /**
232
+ * @description need to consider unit amount because we have packingSize for each packingType
233
+ * @param palletChanges
234
+ * @param palletId
235
+ * @returns reducedUomValue: used for packingUnit == UOM
236
+ * @returns reducedUnitQty: used for packingUnit == QTY
237
+ */
238
+ export function temporaryGetReducedAmount(
239
+ palletChanges: TemporaryPalletChangesInterface[],
240
+ palletId: string
241
+ ): { reducedUomValue: number; reducedUnitQty: number } {
242
+ return palletChanges
243
+ .filter((pc: TemporaryPalletChangesInterface) => pc.fromPalletId === palletId)
244
+ .reduce(
245
+ (
246
+ reducedAmount: {
247
+ reducedUomValue: number
248
+ reducedUnitQty: number
249
+ },
250
+ pc: TemporaryPalletChangesInterface
251
+ ) => {
252
+ return {
253
+ reducedUomValue: reducedAmount.reducedUomValue + pc.reducedUomValue || 0,
254
+ reducedUnitQty: reducedAmount.reducedUnitQty + pc.reducedUnitQty || 0
255
+ }
256
+ },
257
+ { reducedUomValue: 0, reducedUnitQty: 0 }
258
+ )
259
+ }
260
+
261
+ export async function temporaryGetRemainInventoryAmount(
262
+ trxMgr: EntityManager,
263
+ refOrder: RefOrderType,
264
+ domain: Domain,
265
+ bizplace: Bizplace,
266
+ originInv: Inventory,
267
+ palletChanges: TemporaryPalletChangesInterface[],
268
+ palletId: string
269
+ ): Promise<{ remainUomValue: number; remainUnitQty: number }> {
270
+ let remainUomValue: number = 0
271
+ let remainUnitQty: number = 0
272
+
273
+ const packingSize: number = originInv.packingSize
274
+ const { reducedUomValue, reducedUnitQty } = temporaryGetReducedAmount(palletChanges, palletId)
275
+ if (refOrder instanceof ReleaseGood) {
276
+ // Find loading order inventory to figure out uomValue
277
+ const orderInv: OrderInventory = await trxMgr.getRepository(OrderInventory).findOne({
278
+ where: { domain, bizplace, inventory: originInv, releaseGood: refOrder, type: ORDER_TYPES.RELEASE_OF_GOODS }
279
+ })
280
+
281
+ remainUomValue = orderInv.releaseUomValue - reducedUomValue
282
+ remainUnitQty = orderInv.releaseQty * packingSize - reducedUnitQty
283
+ } else {
284
+ remainUomValue = originInv.uomValue - reducedUomValue
285
+ remainUnitQty = originInv.qty * packingSize - reducedUnitQty
286
+ }
287
+
288
+ if (remainUomValue <= 0 || remainUnitQty <= 0) throw new Error(`There's no more remaining product on the pallet`)
289
+ return { remainUomValue, remainUnitQty }
290
+ }
291
+
292
+ export async function updateOriginInventories(
293
+ trxMgr: EntityManager,
294
+ domain: Domain,
295
+ bizplace: Bizplace,
296
+ user: User,
297
+ refOrder: RefOrderType,
298
+ repackedFroms: Partial<TemporaryPalletChangesInterface[]>,
299
+ packingUnit: string,
300
+ transactionType: string
301
+ ): Promise<Inventory[]> {
302
+ const inventories: Inventory[] = []
303
+
304
+ for (let inv of repackedFroms) {
305
+ let foundInventory: Inventory = await trxMgr.getRepository(Inventory).findOne({
306
+ where: { domain, bizplace, palletId: inv.fromPalletId, status: Not(Equal(INVENTORY_STATUS.TERMINATED)) }
307
+ })
308
+
309
+ if (foundInventory) {
310
+ let repackedPkgQty: number = 0
311
+ let repackedPkgUomValue: number = 0
312
+
313
+ switch (packingUnit) {
314
+ case PackingUnits.QTY:
315
+ repackedPkgQty = inv.reducedUnitQty / inv.packingSize
316
+ repackedPkgUomValue = inv.reducedUomValue // it should be called reducedUomValue instead. sbb dh kira smua dgn packingsize
317
+ break
318
+
319
+ case PackingUnits.UOM:
320
+ // repackedPkgQty = inv.reducedQty / inv.packingSize
321
+ // repackedPkgUomValue = rf.reducedUomValue
322
+ break
323
+ }
324
+
325
+ foundInventory = await trxMgr.getRepository(Inventory).save({
326
+ ...foundInventory,
327
+ qty: repackedPkgQty,
328
+ uomValue: repackedPkgUomValue,
329
+ creator: user,
330
+ updater: user
331
+ })
332
+
333
+ await generateInventoryHistory(
334
+ foundInventory,
335
+ refOrder,
336
+ transactionType,
337
+ repackedPkgQty,
338
+ repackedPkgUomValue,
339
+ user,
340
+ trxMgr
341
+ )
342
+
343
+ inventories.push(foundInventory)
344
+ } else {
345
+ throw new Error(`${inv.fromPalletId} is not exist in inventory. Hence, qty cannot be updated.`)
346
+ }
347
+ }
348
+
349
+ return inventories
350
+ }
351
+
352
+ //// @farishelmi What is the difference between upsertInventory vs temporaryUpsertInventory? If it is repeated function, kindly remove one of them.
353
+ export async function temporaryUpsertInventory(
354
+ trxMgr: EntityManager,
355
+ domain: Domain,
356
+ bizplace: Bizplace,
357
+ user: User,
358
+ originInv: Inventory,
359
+ refOrder: RefOrderType,
360
+ palletId: string,
361
+ locationName: string,
362
+ packingType: string,
363
+ addedQty: number,
364
+ addedUomValue: number,
365
+ transactionType: string,
366
+ stdAmount?: number,
367
+ packingUnit?: string
368
+ ): Promise<Inventory> {
369
+ const location: Location = await trxMgr.getRepository(Location).findOne({
370
+ where: { domain, name: locationName },
371
+ relations: ['warehouse']
372
+ })
373
+ if (!location) throw new Error(`Location is not found by (${locationName})`)
374
+ const warehouse: Warehouse = location.warehouse
375
+ const zone: string = location.zone
376
+
377
+ let inv: Inventory = await trxMgr.getRepository(Inventory).findOne({
378
+ where: {
379
+ domain,
380
+ bizplace,
381
+ palletId,
382
+ batchId: originInv.batchId,
383
+ product: originInv.product,
384
+ packingType,
385
+ packingSize: stdAmount,
386
+ refOrderId: originInv.refOrderId,
387
+ status: Not(Equal(INVENTORY_STATUS.TERMINATED))
388
+ },
389
+ relations: ['product', 'refInventory']
390
+ })
391
+
392
+ // Create new inventory
393
+ if (!inv) {
394
+ let newInventory: Inventory = new Inventory()
395
+
396
+ inv = {
397
+ ...newInventory,
398
+ domain,
399
+ bizplace,
400
+ palletId,
401
+ name: InventoryNoGenerator.inventoryName(),
402
+ packingType,
403
+ qty: addedQty,
404
+ weight: 0,
405
+ uomValue: addedUomValue,
406
+ lockedQty: 0,
407
+ lockedUomValue: 0,
408
+ packingSize: packingUnit == PackingUnits.QTY ? stdAmount : 1,
409
+ warehouse,
410
+ location,
411
+ zone,
412
+ creator: user,
413
+ updater: user
414
+ }
415
+
416
+ // Save changed inventory
417
+ inv = await trxMgr.getRepository(Inventory).save(inv)
418
+
419
+ // Check whether the pallet is resuable or not
420
+ const pallet: Pallet = await trxMgr.getRepository(Pallet).findOne({
421
+ where: { domain, name: palletId, inventory: IsNull() }
422
+ })
423
+ // If it's exists => it's reusable pallet and need to update it's inventory field
424
+ if (pallet) {
425
+ pallet.inventory = inv
426
+ pallet.updater = user
427
+ await trxMgr.getRepository(Pallet).save(pallet)
428
+ }
429
+ } else {
430
+ // Update inventory
431
+ inv.qty += addedQty
432
+ inv.uomValue += addedUomValue
433
+ inv.warehouse = warehouse
434
+ inv.location = location
435
+ inv.zone = location.zone
436
+ inv.updater = user
437
+
438
+ // Save changed inventory
439
+ inv = await trxMgr.getRepository(Inventory).save(inv)
440
+ }
441
+
442
+ // Create inventory history
443
+ await generateInventoryHistory(inv, refOrder, transactionType, addedQty, addedUomValue, user, trxMgr)
444
+
445
+ return inv
446
+ }
447
+
448
+ //// @farishelmi What is the difference between deductProductAmount vs temporaryDeductProductAmount? If it is repeated function, kindly remove one of them.
449
+ export async function temporaryDeductProductAmount(
450
+ trxMgr: EntityManager,
451
+ domain: Domain,
452
+ bizplace: Bizplace,
453
+ user: User,
454
+ refOrder: RefOrderType,
455
+ originInv: Inventory,
456
+ reducedQty: number,
457
+ reducedUomValue: number,
458
+ transactionType: string,
459
+ originalQty?: number,
460
+ originalUomValue?: number,
461
+ currentUnitQty?: number,
462
+ currentUomValue?: number
463
+ ) {
464
+ if (refOrder instanceof ReleaseGood) {
465
+ const loadingWS: Worksheet = await trxMgr.getRepository(Worksheet).findOne({
466
+ where: { domain, bizplace, releaseGood: refOrder, type: WORKSHEET_TYPE.LOADING },
467
+ relations: ['worksheetDetails', 'worksheetDetails.targetInventory', 'worksheetDetails.targetInventory.inventory']
468
+ })
469
+
470
+ if (!loadingWS)
471
+ throw new Error(
472
+ `Picking process is not finished yet. Please complete picking first before complete Repalletizing`
473
+ )
474
+
475
+ let orderInv: OrderInventory = loadingWS.worksheetDetails
476
+ .map((wsd: WorksheetDetail) => wsd.targetInventory)
477
+ .find((oi: OrderInventory) => oi.inventory.id === originInv.id)
478
+ if (!orderInv) {
479
+ throw new Error(`Failed to find order inventory (Pallet ID: ${originInv.palletId})`)
480
+ }
481
+
482
+ orderInv.releaseQty -= reducedQty
483
+ orderInv.releaseUomValue -= reducedUomValue
484
+ orderInv.updater = user
485
+
486
+ await trxMgr.getRepository(OrderInventory).save(orderInv)
487
+ } else {
488
+ // currentUnitQty > 0 only belongs to PackingUnits.QTY
489
+ if (currentUnitQty > 0) {
490
+ const unitUomValue: number = originInv.uomValue / originInv.qty
491
+
492
+ reducedQty = Math.floor((originalQty * originInv.packingSize - currentUnitQty) / originInv.packingSize)
493
+ reducedUomValue = unitUomValue * reducedQty
494
+
495
+ originInv.qty -= reducedQty
496
+ originInv.uomValue -= reducedUomValue
497
+ originInv.lockedQty -= originalQty
498
+ originInv.lockedUomValue -= originalUomValue
499
+ originInv.updater = user
500
+
501
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
502
+ await generateInventoryHistory(originInv, refOrder, transactionType, -reducedQty, -reducedUomValue, user, trxMgr)
503
+
504
+ // minus 1 because remain unit qty only exist if the unitQty < 1
505
+ if (originInv.qty - 1 == 0) {
506
+ originInv.status = INVENTORY_STATUS.TERMINATED
507
+ originInv.qty = 0
508
+ originInv.uomValue = 0
509
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
510
+ await generateInventoryHistory(originInv, refOrder, transactionType, -1, -unitUomValue, user, trxMgr)
511
+
512
+ const newQty: number = currentUnitQty
513
+ const newUomValue: number = (unitUomValue / originInv.packingSize) * newQty
514
+
515
+ originInv.qty = newQty
516
+ originInv.uomValue = newUomValue
517
+ originInv.packingSize = 1
518
+ originInv.status = INVENTORY_STATUS.STORED
519
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
520
+ await generateInventoryHistory(originInv, refOrder, transactionType, newQty, newUomValue, user, trxMgr)
521
+ }
522
+
523
+ // currentUnitUomValue > 0 only belongs to PackingUnits.QTY
524
+ } else if (currentUomValue > 0) {
525
+ reducedUomValue = Math.round((originalUomValue - currentUomValue + Number.EPSILON) * 100) / 100
526
+
527
+ originInv.qty -= reducedQty
528
+ originInv.uomValue -= reducedUomValue
529
+ originInv.lockedQty -= originalQty
530
+ originInv.lockedUomValue -= originalUomValue
531
+ originInv.updater = user
532
+
533
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
534
+ await generateInventoryHistory(originInv, refOrder, transactionType, -reducedQty, -reducedUomValue, user, trxMgr)
535
+ } else {
536
+ originInv.qty -= reducedQty
537
+ originInv.uomValue -= reducedUomValue
538
+ originInv.lockedQty -= originalQty
539
+ originInv.lockedUomValue -= originalUomValue
540
+ originInv.updater = user
541
+ originInv.status = originInv.qty > 0 ? INVENTORY_STATUS.STORED : INVENTORY_STATUS.TERMINATED
542
+
543
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
544
+ await generateInventoryHistory(originInv, refOrder, transactionType, -reducedQty, -reducedUomValue, user, trxMgr)
545
+
546
+ if (originInv.qty <= 0 || originInv.uomValue <= 0) {
547
+ originInv.status = INVENTORY_STATUS.TERMINATED
548
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
549
+ await generateInventoryHistory(originInv, refOrder, INVENTORY_TRANSACTION_TYPE.TERMINATED, 0, 0, user, trxMgr)
550
+ }
551
+ }
552
+ }
553
+
554
+ return originInv
555
+ }
556
+
187
557
  /**
188
558
  * @description Assign inventory to targetVas
189
559
  * When Vas order comes together with Arrival Notice or Release Good
@@ -375,7 +745,9 @@ export async function upsertInventory(
375
745
  packingType: string,
376
746
  addedQty: number,
377
747
  addedUomValue: number,
378
- transactionType: string
748
+ transactionType: string,
749
+ stdAmount?: number,
750
+ packingUnit?: string
379
751
  ): Promise<Inventory> {
380
752
  const location: Location = await trxMgr.getRepository(Location).findOne({
381
753
  where: { domain, name: locationName },
@@ -393,6 +765,7 @@ export async function upsertInventory(
393
765
  batchId: originInv.batchId,
394
766
  product: originInv.product,
395
767
  packingType,
768
+ packingSize: stdAmount,
396
769
  refOrderId: originInv.refOrderId,
397
770
  status: Not(Equal(INVENTORY_STATUS.TERMINATED))
398
771
  },
@@ -412,8 +785,11 @@ export async function upsertInventory(
412
785
  name: InventoryNoGenerator.inventoryName(),
413
786
  packingType,
414
787
  qty: addedQty,
415
- weight:0,
788
+ weight: 0,
416
789
  uomValue: addedUomValue,
790
+ lockedQty: 0,
791
+ lockedUomValue: 0,
792
+ packingSize: packingUnit == PackingUnits.QTY ? stdAmount : 1,
417
793
  warehouse,
418
794
  location,
419
795
  zone,
@@ -462,7 +838,11 @@ export async function deductProductAmount(
462
838
  originInv: Inventory,
463
839
  reducedQty: number,
464
840
  reducedUomValue: number,
465
- transactionType: string
841
+ transactionType: string,
842
+ originalQty?: number,
843
+ originalUomValue?: number,
844
+ currentUnitQty?: number,
845
+ currentUomValue?: number
466
846
  ) {
467
847
  if (refOrder instanceof ReleaseGood) {
468
848
  const loadingWS: Worksheet = await trxMgr.getRepository(Worksheet).findOne({
@@ -488,14 +868,72 @@ export async function deductProductAmount(
488
868
 
489
869
  await trxMgr.getRepository(OrderInventory).save(orderInv)
490
870
  } else {
491
- originInv.qty -= reducedQty
492
- originInv.uomValue -= reducedUomValue
493
- originInv.updater = user
494
- originInv.status = originInv.qty <= 0 || originInv.uomValue <= 0 ? INVENTORY_STATUS.TERMINATED : originInv.status
871
+ // currentUnitQty > 0 only belongs to PackingUnits.QTY
872
+ if (currentUnitQty > 0) {
873
+ const unitUomValue: number = originInv.uomValue / originInv.qty
874
+
875
+ reducedQty = Math.floor((originalQty * originInv.packingSize - currentUnitQty) / originInv.packingSize)
876
+ reducedUomValue = unitUomValue * reducedQty
495
877
 
496
- originInv = await trxMgr.getRepository(Inventory).save(originInv)
497
- await generateInventoryHistory(originInv, refOrder, transactionType, -reducedQty, -reducedUomValue, user, trxMgr)
878
+ originInv.qty -= reducedQty
879
+ originInv.uomValue -= reducedUomValue
880
+ originInv.lockedQty -= reducedQty
881
+ originInv.lockedUomValue -= reducedUomValue
882
+ originInv.updater = user
883
+
884
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
885
+ await generateInventoryHistory(originInv, refOrder, transactionType, -reducedQty, -reducedUomValue, user, trxMgr)
886
+
887
+ // minus 1 because remain unit qty only exist if the unitQty < 1
888
+ if (originInv.qty - 1 == 0) {
889
+ originInv.status = INVENTORY_STATUS.TERMINATED
890
+ originInv.qty = 0
891
+ originInv.uomValue = 0
892
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
893
+ await generateInventoryHistory(originInv, refOrder, transactionType, -1, -unitUomValue, user, trxMgr)
894
+
895
+ const newQty: number = currentUnitQty
896
+ const newUomValue: number = (unitUomValue / originInv.packingSize) * newQty
897
+
898
+ originInv.qty = newQty
899
+ originInv.uomValue = newUomValue
900
+ originInv.packingSize = 1
901
+ originInv.status = INVENTORY_STATUS.STORED
902
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
903
+ await generateInventoryHistory(originInv, refOrder, transactionType, newQty, newUomValue, user, trxMgr)
904
+ }
905
+
906
+ // currentUnitUomValue > 0 only belongs to PackingUnits.UOM
907
+ } else if (currentUomValue > 0) {
908
+ reducedUomValue = Math.round((originalUomValue - currentUomValue + Number.EPSILON) * 100) / 100
909
+
910
+ originInv.qty -= reducedQty
911
+ originInv.uomValue -= reducedUomValue
912
+ originInv.lockedQty -= reducedQty
913
+ originInv.lockedUomValue -= reducedUomValue
914
+ originInv.updater = user
915
+
916
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
917
+ await generateInventoryHistory(originInv, refOrder, transactionType, -reducedQty, -reducedUomValue, user, trxMgr)
918
+ } else {
919
+ originInv.qty -= reducedQty
920
+ originInv.uomValue -= reducedUomValue
921
+ originInv.lockedQty -= reducedQty
922
+ originInv.lockedUomValue -= reducedUomValue
923
+ originInv.updater = user
924
+ originInv.status = originInv.qty > 0 ? INVENTORY_STATUS.STORED : INVENTORY_STATUS.TERMINATED
925
+
926
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
927
+ await generateInventoryHistory(originInv, refOrder, transactionType, -reducedQty, -reducedUomValue, user, trxMgr)
928
+
929
+ if (originInv.qty <= 0 || originInv.uomValue <= 0) {
930
+ originInv.status = INVENTORY_STATUS.TERMINATED
931
+ originInv = await trxMgr.getRepository(Inventory).save(originInv)
932
+ await generateInventoryHistory(originInv, refOrder, INVENTORY_TRANSACTION_TYPE.TERMINATED, 0, 0, user, trxMgr)
933
+ }
934
+ }
498
935
  }
936
+
499
937
  return originInv
500
938
  }
501
939
 
@@ -1,4 +1,9 @@
1
- import { ArrivalNotice, ReleaseGood, ShippingOrder, VasOrder } from '@things-factory/sales-base'
1
+ import {
2
+ ArrivalNotice,
3
+ ReleaseGood,
4
+ ShippingOrder,
5
+ VasOrder
6
+ } from '@things-factory/sales-base'
2
7
 
3
8
  export * from './repalletizing'
4
9
  export * from './repackaging'
@@ -19,3 +24,33 @@ export interface PalletChangesInterface {
19
24
  reducedUomValue: number
20
25
  locationName?: string
21
26
  }
27
+
28
+ export interface FeaturedInventoryInterface {
29
+ palletId: string
30
+ originalQty: number
31
+ originalUomValue: number
32
+ currentUnitQty?: number
33
+ currentUomValue?: number
34
+ packingSize: number
35
+ uomValuePerQty: number
36
+ }
37
+
38
+ /** REMARK
39
+ * @farishelmi created this temporary interface solely for @Repackaging
40
+ * - because in repackaging we need to calculate based on unit qty of a product
41
+ * - eg: Carton of 12 Cokes repack into Boxes of 6 Cokes
42
+ * - this interface should be merged with its origin once the logic in other vas is updated
43
+ * */
44
+ export interface TemporaryPalletChangesInterface {
45
+ fromPalletId: string
46
+ toPalletId: string
47
+ reducedQty?: number
48
+ reducedUomValue?: number
49
+ reducedUnitQty?: number
50
+ originalQty?: number
51
+ originalUomValue?: number
52
+ currentUnitQty?: number
53
+ currentUomValue?: number
54
+ locationName?: string
55
+ packingSize: number
56
+ }