@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
@@ -0,0 +1,223 @@
1
+ import { Equal, Not } from 'typeorm'
2
+
3
+ import { Sellercraft, SellercraftAPI } from '@things-factory/integration-sellercraft'
4
+ import { Product, ProductDetail } from '@things-factory/product-base'
5
+ import {
6
+ ArrivalNotice,
7
+ OrderInventory,
8
+ OrderProduct,
9
+ PurchaseOrder,
10
+ ReleaseGood,
11
+ ReturnOrder
12
+ } from '@things-factory/sales-base'
13
+ import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
14
+
15
+ import { WorksheetController } from '../worksheet-controller'
16
+
17
+ export class SellercraftController extends WorksheetController {
18
+ async registerProductInbound(sellercraft: Sellercraft, arrivalNotice: ArrivalNotice): Promise<void> {
19
+ const orderProducts: OrderProduct[] = arrivalNotice.orderProducts
20
+ const purchaseOrder: PurchaseOrder = arrivalNotice.purchaseOrder
21
+ const sellercraftOPs: any[] = await Promise.all(
22
+ orderProducts.map(async (orderProduct: OrderProduct) => {
23
+ const product: Product = orderProduct.product
24
+ const productDetails: ProductDetail[] = product.productDetails
25
+ const unloadedPackingType: string = orderProduct.packingType
26
+ const defaultProductDetail: ProductDetail = product.productDetails.find(
27
+ productDetail => productDetail.isDefault
28
+ )
29
+
30
+ let packingSize: number = 1
31
+ if (unloadedPackingType !== defaultProductDetail.packingType) {
32
+ const unmatchingProductDetail: ProductDetail = product.productDetails.find(
33
+ productDetail => productDetail.packingType === unloadedPackingType
34
+ )
35
+
36
+ packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail)
37
+ }
38
+
39
+ return {
40
+ sku: product.sku,
41
+ purchaseOrderQty: orderProduct.packQty * packingSize,
42
+ receivedQty: orderProduct.actualPackQty * packingSize,
43
+ uom: 'EA',
44
+ batchId: orderProduct.batchId,
45
+ productName: product.name,
46
+ gtin: defaultProductDetail.gtin,
47
+ forceCreateProduct: false,
48
+ expiryTime: 0,
49
+ weight: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
50
+ packageDimension: {
51
+ length: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
52
+ width: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
53
+ height: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
54
+ }
55
+ }
56
+ })
57
+ )
58
+
59
+ const inboundOrder: any = {
60
+ accountId: sellercraft.accountId,
61
+ inboundId: arrivalNotice.name,
62
+ inboundTime: Math.floor(new Date(arrivalNotice.updatedAt).getTime() / 1000),
63
+ inboundType: purchaseOrder ? 'purchase_order' : 'blind_receive',
64
+ purchaseOrderId: purchaseOrder ? purchaseOrder.name : '',
65
+ sellercraftOPs
66
+ }
67
+ await SellercraftAPI.addInboundOrder(sellercraft, { ...inboundOrder })
68
+ }
69
+
70
+ async registerProductReturn(sellercraft: Sellercraft, returnOrder: ReturnOrder): Promise<void> {
71
+ const orderInventories: OrderInventory[] = returnOrder.orderInventories
72
+ const sellercraftOPs: any[] = await Promise.all(
73
+ orderInventories.map(async (orderInventory: OrderInventory) => {
74
+ const product: Product = orderInventory.product
75
+ const productDetails: ProductDetail[] = product.productDetails
76
+ const unloadedPackingType: string = orderInventory.packingType
77
+ const defaultProductDetail: ProductDetail = product.productDetails.find(
78
+ productDetail => productDetail.isDefault
79
+ )
80
+
81
+ let packingSize: number = 1
82
+ if (unloadedPackingType !== defaultProductDetail.packingType) {
83
+ const unmatchingProductDetail: ProductDetail = product.productDetails.find(
84
+ productDetail => productDetail.packingType === unloadedPackingType
85
+ )
86
+
87
+ packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail)
88
+ }
89
+
90
+ return {
91
+ sku: product.sku,
92
+ purchaseOrderQty: orderInventory.returnQty * packingSize,
93
+ receivedQty: orderInventory.returnQty * packingSize,
94
+ uom: 'EA',
95
+ batchId: orderInventory.batchId,
96
+ forceCreateProduct: false,
97
+ expiryTime: 0
98
+ }
99
+ })
100
+ )
101
+
102
+ const returnInbound: any = {
103
+ accountId: sellercraft.accountId,
104
+ inboundId: returnOrder.name,
105
+ inboundTime: Math.floor(new Date(returnOrder.updatedAt).getTime() / 1000),
106
+ purchaseOrderId: '',
107
+ inboundType: 'sales_return',
108
+ sellercraftOPs
109
+ }
110
+ await SellercraftAPI.addInboundOrder(sellercraft, { ...returnInbound })
111
+ }
112
+
113
+ async updateSellercraftStock(sellercraft: Sellercraft, inventory: Inventory): Promise<void> {
114
+ let product: Product = inventory.product
115
+ const productDetails: ProductDetail[] = product.productDetails
116
+ const inventories: Inventory[] = await this.trxMgr.getRepository(Inventory).find({
117
+ where: { domain: this.domain, product, status: Not(Equal(INVENTORY_STATUS.TERMINATED)) }
118
+ })
119
+
120
+ let defaultProductDetail: ProductDetail
121
+ const sellercraftInvs: any[] = await Promise.all(
122
+ inventories.map(async (inventory: Inventory) => {
123
+ const inventoryPackingType: string = inventory.packingType
124
+ defaultProductDetail = product.productDetails.find(productDetail => productDetail.isDefault)
125
+
126
+ let packingSize: number = 1
127
+ if (inventoryPackingType !== defaultProductDetail.packingType) {
128
+ const unmatchingProductDetail: ProductDetail = product.productDetails.find(
129
+ productDetail => productDetail.packingType === inventoryPackingType
130
+ )
131
+
132
+ packingSize = await this.getChildPackingSize(productDetails, defaultProductDetail, unmatchingProductDetail)
133
+ }
134
+
135
+ return { quantity: inventory.qty * packingSize - inventory.lockedQty * packingSize }
136
+ })
137
+ )
138
+
139
+ const totalQty: number = sellercraftInvs.reduce((total, currentValue) => {
140
+ total += currentValue.quantity
141
+ return total
142
+ }, 0)
143
+
144
+ const sellercraftInv: any = {
145
+ accountId: sellercraft.accountId,
146
+ sku: product.sku,
147
+ uom: 'EA',
148
+ quantity: totalQty,
149
+ gtin: defaultProductDetail.gtin,
150
+ weight: defaultProductDetail.nettWeight < 1 ? 1 : defaultProductDetail.nettWeight,
151
+ packageDimension: {
152
+ length: defaultProductDetail.depth < 1 ? 1 : defaultProductDetail.depth,
153
+ width: defaultProductDetail.width < 1 ? 1 : defaultProductDetail.width,
154
+ height: defaultProductDetail.height < 1 ? 1 : defaultProductDetail.height
155
+ }
156
+ }
157
+
158
+ await SellercraftAPI.updateProduct(sellercraft, { sellercraftInv })
159
+ }
160
+
161
+ async initiateOrderShipment(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {
162
+ const orderInformation: any = {
163
+ accountId: sellercraft.accountId,
164
+ orderId: releaseGood.collectionOrderNo,
165
+ packageId: releaseGood.packageId
166
+ }
167
+
168
+ const {
169
+ handOverType,
170
+ pickupTime,
171
+ pickupAddress,
172
+ dropoffAddress
173
+ } = await SellercraftAPI.initiateOrderShipment(sellercraft, { ...orderInformation })
174
+
175
+ releaseGood.handoverType = handOverType
176
+ if (pickupAddress) {
177
+ releaseGood.pickupAddress = pickupAddress
178
+ releaseGood.pickupTime = new Date(pickupTime * 1000)
179
+ }
180
+ if (dropoffAddress) releaseGood.dropoffAddress = dropoffAddress
181
+ releaseGood.updater = this.user
182
+ await this.trxMgr.getRepository(ReleaseGood).save(releaseGood)
183
+ }
184
+
185
+ async initiateOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<void> {
186
+ const orderInformation: any = {
187
+ accountId: sellercraft.accountId,
188
+ orderId: releaseGood.collectionOrderNo,
189
+ packageId: releaseGood.packageId
190
+ }
191
+ await SellercraftAPI.initiateOrderDocument(sellercraft, { ...orderInformation })
192
+ }
193
+
194
+ async fetchOrderDocument(sellercraft: Sellercraft, releaseGood: ReleaseGood): Promise<ReleaseGood> {
195
+ const orderInformation: any = {
196
+ accountId: sellercraft.accountId,
197
+ orderId: releaseGood.collectionOrderNo,
198
+ packageId: releaseGood.packageId
199
+ }
200
+ const { documents, trackingNo }: { documents: any[]; trackingNo: string } = await SellercraftAPI.fetchOrderDocument(
201
+ sellercraft,
202
+ {
203
+ ...orderInformation
204
+ }
205
+ )
206
+
207
+ if (documents?.length) {
208
+ documents.map(document => {
209
+ if (document.type === 'invoice') {
210
+ releaseGood.invoice = document.download_url
211
+ } else if (document.type === 'airway_bill') {
212
+ releaseGood.airwayBill = document.download_url
213
+ }
214
+ })
215
+
216
+ releaseGood.trackingNo = trackingNo
217
+ releaseGood.updater = this.user
218
+ releaseGood = await this.trxMgr.getRepository(ReleaseGood).save(releaseGood)
219
+ }
220
+
221
+ return releaseGood
222
+ }
223
+ }
@@ -15,6 +15,7 @@ import {
15
15
  } from '@things-factory/sales-base'
16
16
  import {
17
17
  Inventory,
18
+ InventoryHistory,
18
19
  InventoryNoGenerator,
19
20
  INVENTORY_STATUS,
20
21
  INVENTORY_TRANSACTION_TYPE,
@@ -1,38 +1,40 @@
1
- import { Domain } from '@things-factory/shell'
1
+ import { Equal, In, Not, SelectQueryBuilder } from 'typeorm'
2
+
2
3
  import { Bizplace } from '@things-factory/biz-base'
3
- import { Product, ProductDetail } from '@things-factory/product-base'
4
4
  import { generateId } from '@things-factory/id-rule-base'
5
+ import { Product, ProductDetail } from '@things-factory/product-base'
5
6
  import {
6
7
  ArrivalNotice,
7
- OrderNoGenerator,
8
- OrderProduct,
9
- OrderInventory,
10
- OrderVas,
11
8
  ORDER_PRODUCT_STATUS,
12
9
  ORDER_STATUS,
13
10
  ORDER_TYPES,
14
11
  ORDER_VAS_STATUS,
12
+ OrderInventory,
13
+ OrderNoGenerator,
14
+ OrderProduct,
15
+ OrderVas,
15
16
  ReleaseGood,
16
17
  ReturnOrder,
17
18
  Vas,
18
19
  VAS_TARGET_TYPES,
19
20
  VAS_TYPES
20
21
  } from '@things-factory/sales-base'
22
+ import { Domain } from '@things-factory/shell'
21
23
  import {
22
24
  Inventory,
23
- InventoryHistory,
24
- InventoryNoGenerator,
25
25
  INVENTORY_STATUS,
26
26
  INVENTORY_TRANSACTION_TYPE,
27
+ InventoryHistory,
28
+ InventoryNoGenerator,
27
29
  Location,
28
30
  Pallet,
29
31
  Warehouse
30
32
  } from '@things-factory/warehouse-base'
31
- import { Equal, In, Not, SelectQueryBuilder } from 'typeorm'
32
- import { WORKSHEET_STATUS, WORKSHEET_TYPE, RULE_TYPE } from '../../constants'
33
+
34
+ import { RULE_TYPE, WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
33
35
  import { Worksheet, WorksheetDetail } from '../../entities'
34
- import { VasWorksheetController } from '../vas/vas-worksheet-controller'
35
36
  import { DateGenerator } from '../../utils'
37
+ import { VasWorksheetController } from '../vas/vas-worksheet-controller'
36
38
 
37
39
  export type UnloadingWorksheetDetail = Partial<WorksheetDetail> & {
38
40
  palletizingVasId: string
@@ -102,13 +104,14 @@ export class UnloadingWorksheetController extends VasWorksheetController {
102
104
  const returnOrder: ReturnOrder = worksheet.returnOrder
103
105
  const orderId: string = Boolean(arrivalNotice?.id) ? arrivalNotice.id : returnOrder.id
104
106
  const targetProduct: OrderProduct = worksheetDetail.targetProduct
105
- const targetInventory: OrderInventory = worksheetDetail.targetInventory
107
+ const targetInventory: OrderInventory = worksheetDetail?.targetInventory
108
+ const originInventory: OrderInventory = targetInventory ? targetInventory.inventory : null
106
109
  const batchId: string = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId
107
110
  const batchIdRef: string = Boolean(arrivalNotice) ? targetProduct.batchIdRef : null
108
111
  const product: Product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product
109
112
  const packingType: string = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType
110
113
  const packingSize: number = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize
111
- const uom: string = Boolean(arrivalNotice) ? targetProduct.uom : targetInventory.uom
114
+ const uom: string = Boolean(arrivalNotice) ? targetProduct.uom : originInventory.uom
112
115
  const remark: string = Boolean(arrivalNotice) ? targetProduct.remark : targetInventory.remark
113
116
  const manufactureYear: number = Boolean(arrivalNotice) ? targetProduct.manufactureYear : null
114
117
  const qty: number = inventory.qty
@@ -522,7 +525,6 @@ export class UnloadingWorksheetController extends VasWorksheetController {
522
525
  INVENTORY_TRANSACTION_TYPE.UNDO_UNLOADING
523
526
  )
524
527
  inventory.qty = 0
525
- inventory.weight = 0
526
528
  inventory.uomValue = 0
527
529
  inventory.updater = this.user
528
530
 
@@ -1,10 +1,12 @@
1
1
  export * from './render-ro-do'
2
+ export * from './render-grn'
2
3
  export * from './render-manual-do'
3
4
  export * from './render-elccl-grn'
4
5
  export * from './render-job-sheet'
5
6
  export * from './render-kimeda-grn'
6
7
  export * from './render-orientage-grn'
7
8
  export * from './render-orientage-do'
9
+ export * from './render-seebuu-grn'
8
10
 
9
11
  /* Worksheet Controllers */
10
12
  export * from './worksheet-controller'
@@ -1,21 +1,29 @@
1
+ import { Brackets, Equal, In, Not, SelectQueryBuilder } from 'typeorm'
2
+
1
3
  import { Bizplace } from '@things-factory/biz-base'
2
4
  import {
3
5
  generateCycleCount,
4
6
  InventoryCheck,
5
- OrderInventory,
6
- OrderNoGenerator,
7
7
  ORDER_INVENTORY_STATUS,
8
- ORDER_STATUS
8
+ ORDER_STATUS,
9
+ OrderInventory,
10
+ OrderNoGenerator
9
11
  } from '@things-factory/sales-base'
10
- import { Inventory, Location, INVENTORY_STATUS } from '@things-factory/warehouse-base'
11
- import { Brackets, Equal, Not, SelectQueryBuilder, In } from 'typeorm'
12
+ import { Inventory, INVENTORY_STATUS, Location } from '@things-factory/warehouse-base'
13
+
12
14
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
13
15
  import { Worksheet, WorksheetDetail } from '../../entities'
14
- import { WorksheetController } from '../worksheet-controller'
15
16
  import { WorksheetNoGenerator } from '../../utils'
17
+ import { WorksheetController } from '../worksheet-controller'
16
18
 
17
19
  export class CycleCountWorksheetController extends WorksheetController {
18
- async generateCycleCountWorksheet(executionDate: string, customerId: string, orderInventoryIds: string[] = [], limit: number): Promise<Worksheet> {
20
+ async generateCycleCountWorksheet(
21
+ executionDate: string,
22
+ customerId: string,
23
+ orderInventoryIds: string[] = [],
24
+ orderInventory: OrderInventory[],
25
+ limit: number
26
+ ): Promise<Worksheet> {
19
27
  // Find out warehouse and customer bizplace
20
28
  const customerBizplace: Bizplace = await this.trxMgr.getRepository(Bizplace).findOne(customerId)
21
29
  let foundCycleCountWorksheet: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne({
@@ -27,11 +35,13 @@ export class CycleCountWorksheetController extends WorksheetController {
27
35
  },
28
36
  relations: ['worksheetDetails', 'worksheetDetails.targetInventory', 'inventoryCheck']
29
37
  })
30
-
38
+
31
39
  // Create second round of cycle count with specified order inventories
32
40
  if (orderInventoryIds.length) {
33
41
  // Update status of target inventories (NOT_TALLY => INSPECTING)
34
- let targetInventories: OrderInventory[] = await this.trxMgr.getRepository(OrderInventory).findByIds(orderInventoryIds)
42
+ let targetInventories: OrderInventory[] = await this.trxMgr
43
+ .getRepository(OrderInventory)
44
+ .findByIds(orderInventoryIds)
35
45
  targetInventories.forEach((targetInventory: OrderInventory) => {
36
46
  targetInventory.status = ORDER_INVENTORY_STATUS.INSPECTING
37
47
  targetInventory.updater = this.user
@@ -68,7 +78,13 @@ export class CycleCountWorksheetController extends WorksheetController {
68
78
  throw new Error(`Unfinished cycle count worksheet exists.`)
69
79
  }
70
80
 
71
- const cycleCount: InventoryCheck = await generateCycleCount(this.trxMgr, this.domain, this.user, executionDate, customerId)
81
+ const cycleCount: InventoryCheck = await generateCycleCount(
82
+ this.trxMgr,
83
+ this.domain,
84
+ this.user,
85
+ executionDate,
86
+ customerId
87
+ )
72
88
 
73
89
  // Find out inventories which is target for cycle counting
74
90
  const qb: SelectQueryBuilder<Inventory> = this.trxMgr.getRepository(Inventory).createQueryBuilder('INV')
@@ -83,11 +99,42 @@ export class CycleCountWorksheetController extends WorksheetController {
83
99
  })
84
100
  )
85
101
 
102
+ if (orderInventory && orderInventory.length > 0) {
103
+ let keyval = {
104
+ batchId: 'batch_id',
105
+ batchIdRef: 'batch_id_ref',
106
+ packingType: 'packing_type',
107
+ packingSize: 'packing_size',
108
+ productId: 'product_id'
109
+ }
110
+
111
+ qb.andWhere(
112
+ new Brackets(qb => {
113
+ orderInventory.forEach((itm, idx) => {
114
+ // sample itm value
115
+ // batchId: 'WO00019730', batchIdRef: null, packingType: 'CARBOY', packingSize: 1, productId: '1d679587-c713-42d6-bd0a-74e587e39cc7'
116
+ qb.orWhere(
117
+ new Brackets(qb2 => {
118
+ let first = true
119
+ for (var prop in itm) {
120
+ if (first) {
121
+ first = false
122
+ qb2.where(`INV.${keyval[prop]} ${itm[prop] == null ? 'is null' : " = '" + itm[prop] + "'"}`)
123
+ } else {
124
+ qb2.andWhere(`INV.${keyval[prop]} ${itm[prop] == null ? 'is null' : " = '" + itm[prop] + "'"}`)
125
+ }
126
+ }
127
+ })
128
+ )
129
+ })
130
+ })
131
+ )
132
+ } else {
86
133
  if (limit > 0) {
87
- qb.orderBy("RANDOM()")
88
- .limit(limit)
134
+ qb.orderBy('RANDOM()').limit(limit)
89
135
  }
90
-
136
+ }
137
+
91
138
  let inventories: Inventory[] = await qb.getMany()
92
139
 
93
140
  if (!inventories.length) {
@@ -234,7 +281,7 @@ export class CycleCountWorksheetController extends WorksheetController {
234
281
  await this.updateOrderTargets([targetInventory])
235
282
 
236
283
  //If all tally, remove lockedQty, lockedWeight, lockedUomValue
237
- if(!isChanged) {
284
+ if (!isChanged) {
238
285
  inventory.lockedQty = 0
239
286
  inventory.lockedWeight = 0
240
287
  inventory.lockedUomValue = 0
@@ -256,9 +303,9 @@ export class CycleCountWorksheetController extends WorksheetController {
256
303
  targetInventory.inspectedUomValue = null
257
304
  targetInventory.inspectedLocation = null
258
305
  targetInventory.status =
259
- targetInventory.status === ORDER_INVENTORY_STATUS.RELOCATED
260
- ? ORDER_INVENTORY_STATUS.MISSING
261
- : ORDER_INVENTORY_STATUS.INSPECTING
306
+ targetInventory.status === ORDER_INVENTORY_STATUS.RELOCATED
307
+ ? ORDER_INVENTORY_STATUS.MISSING
308
+ : ORDER_INVENTORY_STATUS.INSPECTING
262
309
  targetInventory.updater = this.user
263
310
  await this.updateOrderTargets([targetInventory])
264
311
 
@@ -285,15 +332,22 @@ export class CycleCountWorksheetController extends WorksheetController {
285
332
  worksheetDetail.status = WORKSHEET_STATUS.NOT_TALLY
286
333
  worksheetDetail.updater = this.user
287
334
  await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
288
-
335
+
289
336
  targetInventory.status = ORDER_INVENTORY_STATUS.MISSING
290
337
  targetInventory.updater = this.user
291
- await this.updateOrderTargets([targetInventory])
338
+ await this.updateOrderTargets([targetInventory])
292
339
  }
293
340
 
294
- async addExtraPallet(cycleCountNo: string, palletId: string, inspectedBatchNo: string, inspectedQty: number, inspectedUomValue: number, locationName: string): Promise<void> {
341
+ async addExtraPallet(
342
+ cycleCountNo: string,
343
+ palletId: string,
344
+ inspectedBatchNo: string,
345
+ inspectedQty: number,
346
+ inspectedUomValue: number,
347
+ locationName: string
348
+ ): Promise<void> {
295
349
  const inventoryCheck: InventoryCheck = await this.findRefOrder(
296
- InventoryCheck,
350
+ InventoryCheck,
297
351
  {
298
352
  name: cycleCountNo,
299
353
  status: ORDER_STATUS.INSPECTING
@@ -304,26 +358,31 @@ export class CycleCountWorksheetController extends WorksheetController {
304
358
  const bizplace: Bizplace = inventoryCheck.bizplace
305
359
  const qb: SelectQueryBuilder<Inventory> = this.trxMgr.getRepository(Inventory).createQueryBuilder('INV')
306
360
  let inventory: Inventory = await qb
307
- .where('INV.domain = :domainId', { domainId: this.domain.id })
308
- .andWhere('INV.bizplace = :bizplaceId', { bizplaceId: bizplace.id })
309
- .andWhere('INV.palletId = :palletId', { palletId })
310
- .andWhere('INV.status = :status', { status: INVENTORY_STATUS.STORED })
311
- .andWhere(
312
- new Brackets(qb => {
313
- qb.where('INV.lockedQty ISNULL')
314
- qb.orWhere('INV.lockedQty = 0')
315
- })
316
- )
317
- .getOne()
361
+ .where('INV.domain = :domainId', { domainId: this.domain.id })
362
+ .andWhere('INV.bizplace = :bizplaceId', { bizplaceId: bizplace.id })
363
+ .andWhere('INV.palletId = :palletId', { palletId })
364
+ .andWhere('INV.status = :status', { status: INVENTORY_STATUS.STORED })
365
+ .andWhere(
366
+ new Brackets(qb => {
367
+ qb.where('INV.lockedQty ISNULL')
368
+ qb.orWhere('INV.lockedQty = 0')
369
+ })
370
+ )
371
+ .getOne()
318
372
  if (!inventory) throw new Error('Failed to find inventory')
319
373
 
320
374
  const worksheet: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne({
321
- where: { domain: this.domain, type: WORKSHEET_TYPE.CYCLE_COUNT, status: WORKSHEET_STATUS.EXECUTING, inventoryCheck }
375
+ where: {
376
+ domain: this.domain,
377
+ type: WORKSHEET_TYPE.CYCLE_COUNT,
378
+ status: WORKSHEET_STATUS.EXECUTING,
379
+ inventoryCheck
380
+ }
322
381
  })
323
382
  const location: Location = await this.trxMgr.getRepository(Location).findOne({
324
383
  where: { domain: this.domain, name: locationName }
325
384
  })
326
-
385
+
327
386
  let targetInventory: OrderInventory = new OrderInventory()
328
387
  targetInventory.domain = this.domain
329
388
  targetInventory.bizplace = bizplace
@@ -338,7 +397,7 @@ export class CycleCountWorksheetController extends WorksheetController {
338
397
  targetInventory.inspectedLocation = location
339
398
  targetInventory.creator = this.user
340
399
  targetInventory.updater = this.user
341
- await this.updateOrderTargets([targetInventory])
400
+ await this.updateOrderTargets([targetInventory])
342
401
 
343
402
  let worksheetDetail: WorksheetDetail = new WorksheetDetail()
344
403
  worksheetDetail.domain = this.domain
@@ -353,34 +412,40 @@ export class CycleCountWorksheetController extends WorksheetController {
353
412
  await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
354
413
  }
355
414
 
356
- async relocatePallet( worksheetDetailName: string, inspectedBatchNo: string, inspectedQty: number, inspectedUomValue: number, inspectedLocationName: string ): Promise<void> {
415
+ async relocatePallet(
416
+ worksheetDetailName: string,
417
+ inspectedBatchNo: string,
418
+ inspectedQty: number,
419
+ inspectedUomValue: number,
420
+ inspectedLocationName: string
421
+ ): Promise<void> {
357
422
  let worksheetDetail: WorksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).findOne({
358
423
  where: { domain: this.domain, name: worksheetDetailName, type: WORKSHEET_TYPE.CYCLE_COUNT },
359
424
  relations: ['targetInventory', 'targetInventory.inventory', 'targetInventory.inventory.location']
360
425
  })
361
-
426
+
362
427
  if (!worksheetDetail) throw new Error('Failed to find worksheet detail')
363
-
428
+
364
429
  let targetInventory: OrderInventory = worksheetDetail.targetInventory
365
430
  const location: Location = targetInventory?.inventory?.location
366
431
  if (location.name === inspectedLocationName) throw new Error(`You can't relocate at same location`)
367
-
432
+
368
433
  const inspectedLocation: Location = await this.trxMgr.getRepository(Location).findOne({
369
434
  where: { name: inspectedLocationName, domain: this.domain }
370
435
  })
371
-
436
+
372
437
  worksheetDetail.status = WORKSHEET_STATUS.NOT_TALLY
373
438
  worksheetDetail.updater = this.user
374
439
  await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
375
-
440
+
376
441
  targetInventory.inspectedLocation = inspectedLocation
377
442
  targetInventory.inspectedBatchNo = inspectedBatchNo
378
443
  targetInventory.inspectedQty = inspectedQty
379
444
  targetInventory.inspectedWeight = 0
380
- targetInventory.inspectedUomValue = inspectedUomValue
445
+ targetInventory.inspectedUomValue = inspectedUomValue
381
446
  targetInventory.status = ORDER_INVENTORY_STATUS.RELOCATED
382
447
  targetInventory.updater = this.user
383
- await this.updateOrderTargets([targetInventory])
448
+ await this.updateOrderTargets([targetInventory])
384
449
  }
385
450
 
386
451
  async completeCycleCount(inventoryCheckNo: string): Promise<Worksheet> {
@@ -1,6 +1,7 @@
1
1
  import { Product, ProductDetail } from '@things-factory/product-base'
2
- import { OrderInventory, ORDER_INVENTORY_STATUS, ORDER_STATUS, ReleaseGood } from '@things-factory/sales-base'
2
+ import { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
3
3
  import { Inventory, INVENTORY_TRANSACTION_TYPE } from '@things-factory/warehouse-base'
4
+
4
5
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'
5
6
  import { Worksheet, WorksheetDetail } from '../../entities'
6
7
  import { VasWorksheetController } from '../vas/vas-worksheet-controller'
@@ -18,6 +19,13 @@ export class PackingWorksheetController extends VasWorksheetController {
18
19
  )
19
20
  const orderInventories: OrderInventory[] = releaseGood.orderInventories
20
21
 
22
+ const existingPackingWorksheet: Worksheet = await this.trxMgr
23
+ .getRepository(Worksheet)
24
+ .findOne({
25
+ where: { domain: this.domain, releaseGood, type: WORKSHEET_TYPE.PACKING, status: WORKSHEET_STATUS.DEACTIVATED }
26
+ })
27
+
28
+ if (existingPackingWorksheet) throw new Error('There is existing packing worksheet that has been generated')
21
29
  let worksheet: Worksheet = await this.createWorksheet(releaseGood, WORKSHEET_TYPE.PACKING)
22
30
 
23
31
  if (orderInventories.every((oi: OrderInventory) => oi.inventory?.id) || releaseGood.crossDocking) {
@@ -44,6 +52,8 @@ export class PackingWorksheetController extends VasWorksheetController {
44
52
  async activatePacking(worksheetNo: string): Promise<Worksheet> {
45
53
  let worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.PACKING, [
46
54
  'releaseGood',
55
+ 'releaseGood.bizplace',
56
+ 'releaseGood.bizplace.domain',
47
57
  'worksheetDetails',
48
58
  'worksheetDetails.targetInventory'
49
59
  ])
@@ -67,12 +77,14 @@ export class PackingWorksheetController extends VasWorksheetController {
67
77
  return worksheet
68
78
  }
69
79
 
70
- async packing(worksheetDetailName: string, packedQty: number): Promise<void> {
80
+ async packing(worksheetDetailName: string, packedQty: number): Promise<WorksheetDetail> {
71
81
  let worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(
72
82
  worksheetDetailName,
73
83
  WORKSHEET_TYPE.PACKING,
74
84
  [
75
85
  'worksheet',
86
+ 'worksheet.bizplace',
87
+ 'worksheet.bizplace.domain',
76
88
  'targetInventory',
77
89
  'targetInventory.releaseGood',
78
90
  'targetInventory.inventory',
@@ -96,15 +108,18 @@ export class PackingWorksheetController extends VasWorksheetController {
96
108
 
97
109
  worksheetDetail.status = WORKSHEET_STATUS.DONE
98
110
  worksheetDetail.updater = this.user
99
- await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
111
+ worksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)
112
+ return worksheetDetail
100
113
  }
101
114
 
102
- async scanProductPacking(worksheetDetailName: string, productBarcode: string): Promise<void> {
115
+ async scanProductPacking(worksheetDetailName: string, productBarcode: string): Promise<WorksheetDetail> {
103
116
  let worksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(
104
117
  worksheetDetailName,
105
118
  WORKSHEET_TYPE.PACKING,
106
119
  [
107
120
  'worksheet',
121
+ 'worksheet.bizplace',
122
+ 'worksheet.bizplace.domain',
108
123
  'targetInventory',
109
124
  'targetInventory.releaseGood',
110
125
  'targetInventory.inventory',
@@ -147,6 +162,8 @@ export class PackingWorksheetController extends VasWorksheetController {
147
162
  } else {
148
163
  await this.trxMgr.getRepository(OrderInventory).save(targetInventory)
149
164
  }
165
+
166
+ return worksheetDetail
150
167
  }
151
168
 
152
169
  async completePacking(releaseGoodNo: string): Promise<Worksheet> {