@things-factory/worksheet-base 5.0.7 → 5.0.13

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 (351) hide show
  1. package/dist-server/constants/index.js +6 -19
  2. package/dist-server/constants/index.js.map +1 -1
  3. package/dist-server/constants/rule-type.js.map +1 -1
  4. package/dist-server/constants/target-type.js.map +1 -1
  5. package/dist-server/constants/template.js.map +1 -1
  6. package/dist-server/constants/transaction-type.js.map +1 -1
  7. package/dist-server/constants/worksheet.js.map +1 -1
  8. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  9. package/dist-server/controllers/ecommerce/index.js +3 -16
  10. package/dist-server/controllers/ecommerce/index.js.map +1 -1
  11. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  12. package/dist-server/controllers/inbound/index.js +5 -18
  13. package/dist-server/controllers/inbound/index.js.map +1 -1
  14. package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  16. package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
  17. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  18. package/dist-server/controllers/index.js +19 -32
  19. package/dist-server/controllers/index.js.map +1 -1
  20. package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
  21. package/dist-server/controllers/inspect/index.js +2 -15
  22. package/dist-server/controllers/inspect/index.js.map +1 -1
  23. package/dist-server/controllers/outbound/index.js +6 -19
  24. package/dist-server/controllers/outbound/index.js.map +1 -1
  25. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  26. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  27. package/dist-server/controllers/outbound/picking-worksheet-controller.js +3 -13
  28. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  29. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  30. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  31. package/dist-server/controllers/render-elccl-grn.js +3 -5
  32. package/dist-server/controllers/render-elccl-grn.js.map +1 -1
  33. package/dist-server/controllers/render-fm-grn.js +4 -6
  34. package/dist-server/controllers/render-fm-grn.js.map +1 -1
  35. package/dist-server/controllers/render-grn.js +4 -6
  36. package/dist-server/controllers/render-grn.js.map +1 -1
  37. package/dist-server/controllers/render-invoices.js +3 -5
  38. package/dist-server/controllers/render-invoices.js.map +1 -1
  39. package/dist-server/controllers/render-job-sheet.js +3 -5
  40. package/dist-server/controllers/render-job-sheet.js.map +1 -1
  41. package/dist-server/controllers/render-kimeda-grn.js +3 -5
  42. package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
  43. package/dist-server/controllers/render-manifest.js +3 -5
  44. package/dist-server/controllers/render-manifest.js.map +1 -1
  45. package/dist-server/controllers/render-manual-do.js +3 -5
  46. package/dist-server/controllers/render-manual-do.js.map +1 -1
  47. package/dist-server/controllers/render-orientage-do.js +3 -5
  48. package/dist-server/controllers/render-orientage-do.js.map +1 -1
  49. package/dist-server/controllers/render-orientage-grn.js +3 -5
  50. package/dist-server/controllers/render-orientage-grn.js.map +1 -1
  51. package/dist-server/controllers/render-po.js +3 -5
  52. package/dist-server/controllers/render-po.js.map +1 -1
  53. package/dist-server/controllers/render-ro-do.js +4 -6
  54. package/dist-server/controllers/render-ro-do.js.map +1 -1
  55. package/dist-server/controllers/render-seebuu-grn.js +3 -5
  56. package/dist-server/controllers/render-seebuu-grn.js.map +1 -1
  57. package/dist-server/controllers/vas/index.js +2 -15
  58. package/dist-server/controllers/vas/index.js.map +1 -1
  59. package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
  60. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  61. package/dist-server/entities/index.js.map +1 -1
  62. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +26 -34
  63. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -1
  64. package/dist-server/entities/worksheet-detail.js +44 -52
  65. package/dist-server/entities/worksheet-detail.js.map +1 -1
  66. package/dist-server/entities/worksheet-movement.js +16 -24
  67. package/dist-server/entities/worksheet-movement.js.map +1 -1
  68. package/dist-server/entities/worksheet.js +48 -56
  69. package/dist-server/entities/worksheet.js.map +1 -1
  70. package/dist-server/graphql/index.js +3 -25
  71. package/dist-server/graphql/index.js.map +1 -1
  72. package/dist-server/graphql/resolvers/index.js +5 -27
  73. package/dist-server/graphql/resolvers/index.js.map +1 -1
  74. package/dist-server/graphql/resolvers/pallet/index.js.map +1 -1
  75. package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
  76. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  77. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -1
  78. package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js.map +1 -1
  79. package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js.map +1 -1
  80. package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
  81. package/dist-server/graphql/resolvers/worksheet/create-worksheet.js.map +1 -1
  82. package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -1
  83. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  84. package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js.map +1 -1
  85. package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js.map +1 -1
  86. package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -1
  87. package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +1 -1
  88. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js.map +1 -1
  89. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js.map +1 -1
  90. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
  91. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js.map +1 -1
  92. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
  93. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -1
  94. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js.map +1 -1
  95. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js.map +1 -1
  96. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js.map +1 -1
  97. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
  98. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js.map +1 -1
  99. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js.map +1 -1
  100. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js.map +1 -1
  101. package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -1
  102. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  103. package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.js.map +1 -1
  104. package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.js.map +1 -1
  105. package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.js.map +1 -1
  106. package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js.map +1 -1
  107. package/dist-server/graphql/resolvers/worksheet/inspecting/index.js.map +1 -1
  108. package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting.js.map +1 -1
  109. package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-pallet.js.map +1 -1
  110. package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.js.map +1 -1
  111. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  112. package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -1
  113. package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -1
  114. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  115. package/dist-server/graphql/resolvers/worksheet/loading/index.js.map +1 -1
  116. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
  117. package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js.map +1 -1
  118. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
  119. package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
  120. package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
  121. package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
  122. package/dist-server/graphql/resolvers/worksheet/packing/index.js.map +1 -1
  123. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  124. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  125. package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js.map +1 -1
  126. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  127. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
  128. package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -1
  129. package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
  130. package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
  131. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
  132. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js.map +1 -1
  133. package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.js.map +1 -1
  134. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  135. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  136. package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -1
  137. package/dist-server/graphql/resolvers/worksheet/picking/index.js.map +1 -1
  138. package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js.map +1 -1
  139. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -1
  140. package/dist-server/graphql/resolvers/worksheet/picking/picking.js.map +1 -1
  141. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js.map +1 -1
  142. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -1
  143. package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +1 -1
  144. package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
  145. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -1
  146. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  147. package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
  148. package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -1
  149. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  150. package/dist-server/graphql/resolvers/worksheet/putaway/index.js.map +1 -1
  151. package/dist-server/graphql/resolvers/worksheet/putaway/putaway.js.map +1 -1
  152. package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.js.map +1 -1
  153. package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -1
  154. package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
  155. package/dist-server/graphql/resolvers/worksheet/putaway-return/index.js.map +1 -1
  156. package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.js.map +1 -1
  157. package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.js.map +1 -1
  158. package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
  159. package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -1
  160. package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
  161. package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
  162. package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js.map +1 -1
  163. package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
  164. package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -1
  165. package/dist-server/graphql/resolvers/worksheet/returning/activate-return.js.map +1 -1
  166. package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js.map +1 -1
  167. package/dist-server/graphql/resolvers/worksheet/returning/index.js.map +1 -1
  168. package/dist-server/graphql/resolvers/worksheet/returning/returning.js.map +1 -1
  169. package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.js.map +1 -1
  170. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -1
  171. package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.js.map +1 -1
  172. package/dist-server/graphql/resolvers/worksheet/sorting/index.js.map +1 -1
  173. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -1
  174. package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js.map +1 -1
  175. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  176. package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -1
  177. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -1
  178. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  179. package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -1
  180. package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.js.map +1 -1
  181. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.js.map +1 -1
  182. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  183. package/dist-server/graphql/resolvers/worksheet/unloading/index.js.map +1 -1
  184. package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.js.map +1 -1
  185. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -1
  186. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -1
  187. package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js.map +1 -1
  188. package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -1
  189. package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.js.map +1 -1
  190. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.js.map +1 -1
  191. package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -1
  192. package/dist-server/graphql/resolvers/worksheet/unloading-return/index.js.map +1 -1
  193. package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -1
  194. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
  195. package/dist-server/graphql/resolvers/worksheet/update-worksheet.js.map +1 -1
  196. package/dist-server/graphql/resolvers/worksheet/vas/activate-vas.js.map +1 -1
  197. package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.js.map +1 -1
  198. package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js.map +1 -1
  199. package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.js.map +1 -1
  200. package/dist-server/graphql/resolvers/worksheet/vas/index.js.map +1 -1
  201. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.js.map +1 -1
  202. package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.js.map +1 -1
  203. package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -1
  204. package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -1
  205. package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
  206. package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js +6 -19
  207. package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js.map +1 -1
  208. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js +5 -18
  209. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -1
  210. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/relabeling.js.map +1 -1
  211. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -1
  212. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repalletizing.js.map +1 -1
  213. package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/unpacking.js.map +1 -1
  214. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -1
  215. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -1
  216. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js +5 -18
  217. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js.map +1 -1
  218. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -1
  219. package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -1
  220. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -1
  221. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js +4 -17
  222. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js.map +1 -1
  223. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -1
  224. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -1
  225. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -1
  226. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js +4 -17
  227. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js.map +1 -1
  228. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -1
  229. package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -1
  230. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js.map +1 -1
  231. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js +3 -16
  232. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js.map +1 -1
  233. package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -1
  234. package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
  235. package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js.map +1 -1
  236. package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -1
  237. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
  238. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
  239. package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js.map +1 -1
  240. package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -1
  241. package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js.map +1 -1
  242. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
  243. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -1
  244. package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -1
  245. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
  246. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -1
  247. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
  248. package/dist-server/graphql/resolvers/worksheet-detail/index.js.map +1 -1
  249. package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -1
  250. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -1
  251. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -1
  252. package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js.map +1 -1
  253. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -1
  254. package/dist-server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.js.map +1 -1
  255. package/dist-server/graphql/resolvers/worksheet-movement/index.js.map +1 -1
  256. package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js.map +1 -1
  257. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js.map +1 -1
  258. package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js.map +1 -1
  259. package/dist-server/graphql/types/index.js +5 -27
  260. package/dist-server/graphql/types/index.js.map +1 -1
  261. package/dist-server/graphql/types/pallet/index.js.map +1 -1
  262. package/dist-server/graphql/types/pallet/pallet.js +2 -4
  263. package/dist-server/graphql/types/pallet/pallet.js.map +1 -1
  264. package/dist-server/graphql/types/worksheet/airwaybill.js +2 -4
  265. package/dist-server/graphql/types/worksheet/airwaybill.js.map +1 -1
  266. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js +2 -4
  267. package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js.map +1 -1
  268. package/dist-server/graphql/types/worksheet/contact-point-info.js +2 -4
  269. package/dist-server/graphql/types/worksheet/contact-point-info.js.map +1 -1
  270. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js +2 -4
  271. package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js.map +1 -1
  272. package/dist-server/graphql/types/worksheet/delivery-info.js +2 -4
  273. package/dist-server/graphql/types/worksheet/delivery-info.js.map +1 -1
  274. package/dist-server/graphql/types/worksheet/delivery-order-info.js +2 -4
  275. package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -1
  276. package/dist-server/graphql/types/worksheet/delivery-worksheet.js +2 -4
  277. package/dist-server/graphql/types/worksheet/delivery-worksheet.js.map +1 -1
  278. package/dist-server/graphql/types/worksheet/executing-worksheet.js +2 -4
  279. package/dist-server/graphql/types/worksheet/executing-worksheet.js.map +1 -1
  280. package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js +2 -4
  281. package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js.map +1 -1
  282. package/dist-server/graphql/types/worksheet/goods-delivery-note.js +2 -4
  283. package/dist-server/graphql/types/worksheet/goods-delivery-note.js.map +1 -1
  284. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  285. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js +2 -4
  286. package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js.map +1 -1
  287. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +2 -4
  288. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -1
  289. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js +2 -4
  290. package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js.map +1 -1
  291. package/dist-server/graphql/types/worksheet/new-worksheet.js +2 -4
  292. package/dist-server/graphql/types/worksheet/new-worksheet.js.map +1 -1
  293. package/dist-server/graphql/types/worksheet/picking-assignment-status.js +2 -4
  294. package/dist-server/graphql/types/worksheet/picking-assignment-status.js.map +1 -1
  295. package/dist-server/graphql/types/worksheet/product-approval.js +2 -4
  296. package/dist-server/graphql/types/worksheet/product-approval.js.map +1 -1
  297. package/dist-server/graphql/types/worksheet/release-good-worksheet.js +2 -4
  298. package/dist-server/graphql/types/worksheet/release-good-worksheet.js.map +1 -1
  299. package/dist-server/graphql/types/worksheet/return-order-worksheet.js +2 -4
  300. package/dist-server/graphql/types/worksheet/return-order-worksheet.js.map +1 -1
  301. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js +2 -4
  302. package/dist-server/graphql/types/worksheet/vas-order-worksheet.js.map +1 -1
  303. package/dist-server/graphql/types/worksheet/vas-worksheet.js +2 -4
  304. package/dist-server/graphql/types/worksheet/vas-worksheet.js.map +1 -1
  305. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +2 -4
  306. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
  307. package/dist-server/graphql/types/worksheet/worksheet-info.js +2 -4
  308. package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
  309. package/dist-server/graphql/types/worksheet/worksheet-list.js +2 -4
  310. package/dist-server/graphql/types/worksheet/worksheet-list.js.map +1 -1
  311. package/dist-server/graphql/types/worksheet/worksheet-patch.js +2 -4
  312. package/dist-server/graphql/types/worksheet/worksheet-patch.js.map +1 -1
  313. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js +2 -4
  314. package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js.map +1 -1
  315. package/dist-server/graphql/types/worksheet/worksheet.js +2 -4
  316. package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -1
  317. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  318. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +2 -4
  319. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
  320. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js +2 -4
  321. package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js.map +1 -1
  322. package/dist-server/graphql/types/worksheet-detail/pallet-info.js +2 -4
  323. package/dist-server/graphql/types/worksheet-detail/pallet-info.js.map +1 -1
  324. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js +2 -4
  325. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js.map +1 -1
  326. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js +2 -4
  327. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js.map +1 -1
  328. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js +2 -4
  329. package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js.map +1 -1
  330. package/dist-server/graphql/types/worksheet-movement/index.js.map +1 -1
  331. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js +2 -4
  332. package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js.map +1 -1
  333. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js +2 -4
  334. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js.map +1 -1
  335. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js +2 -4
  336. package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js.map +1 -1
  337. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js +2 -4
  338. package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js.map +1 -1
  339. package/dist-server/index.js +12 -25
  340. package/dist-server/index.js.map +1 -1
  341. package/dist-server/middlewares/index.js.map +1 -1
  342. package/dist-server/migrations/index.js.map +1 -1
  343. package/dist-server/routes.js.map +1 -1
  344. package/dist-server/tsconfig.tsbuildinfo +1 -0
  345. package/dist-server/utils/datetime-util.js.map +1 -1
  346. package/dist-server/utils/index.js +5 -18
  347. package/dist-server/utils/index.js.map +1 -1
  348. package/dist-server/utils/inventory-util.js.map +1 -1
  349. package/dist-server/utils/worksheet-no-generator.js.map +1 -1
  350. package/dist-server/utils/worksheet-util.js.map +1 -1
  351. package/package.json +17 -17
@@ -1 +1 @@
1
- {"version":3,"file":"vas-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/vas/vas-worksheet-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vas-worksheet-controller.js","sourceRoot":"","sources":["../../../server/controllers/vas/vas-worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, Equal, In, Not } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Product } from '@things-factory/product-base'\nimport {\n ArrivalNotice,\n ORDER_STATUS,\n ORDER_TYPES,\n ORDER_VAS_STATUS,\n OrderNoGenerator,\n OrderVas,\n ReleaseGood,\n VAS,\n VasOrder\n} from '@things-factory/sales-base'\nimport {\n Inventory,\n INVENTORY_STATUS,\n INVENTORY_TRANSACTION_TYPE,\n InventoryHistory,\n InventoryNoGenerator,\n Location,\n LOCATION_TYPE,\n Warehouse\n} from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../constants'\nimport { Worksheet, WorksheetDetail } from '../../entities'\nimport {\n completeRelabeling,\n completeRepackaging,\n completeRepalletizing,\n completeUnpacking,\n FeaturedInventoryInterface,\n RefOrderType\n} from '../../graphql/resolvers/worksheet/vas-transactions'\nimport { PackingUnits } from '../../graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging'\nimport { generateInventoryHistory } from '../../utils'\nimport { ReferenceOrderType, WorksheetController } from '../worksheet-controller'\n\ntype CompleteTransactionType = (trxMgr: EntityManager, orderVas: OrderVas, user: User) => Promise<void>\n\nexport class VasWorksheetController extends WorksheetController {\n private readonly COMPLETE_TRX_MAP: Record<string, CompleteTransactionType> = {\n 'vas-repalletizing': completeRepalletizing,\n 'vas-repack': completeRepackaging,\n 'vas-repack-relabel': completeRepackaging,\n 'vas-relabel': completeRelabeling,\n 'vas-unpack': completeUnpacking\n }\n\n async generateVasWorksheet(referenceOrder: ReferenceOrderType): Promise<Worksheet> {\n let orderStatus = referenceOrder.status\n let orderVASs: OrderVas[]\n\n if (referenceOrder instanceof ArrivalNotice) {\n const arrivalNotice: ArrivalNotice = await this.findRefOrder(ArrivalNotice, referenceOrder, ['orderVass'])\n orderVASs = arrivalNotice.orderVass\n } else if (referenceOrder instanceof ReleaseGood) {\n const releaseGood: ReleaseGood = await this.findRefOrder(ReleaseGood, referenceOrder, ['orderVass'])\n orderVASs = releaseGood.orderVass\n } else {\n const vasOrder: VasOrder = await this.findRefOrder(VasOrder, referenceOrder, ['orderVass'])\n orderVASs = vasOrder.orderVass\n orderStatus = ORDER_STATUS.READY_TO_EXECUTE\n }\n\n return await this.generateWorksheet(\n WORKSHEET_TYPE.VAS,\n referenceOrder,\n orderVASs,\n orderStatus,\n ORDER_VAS_STATUS.READY_TO_PROCESS\n )\n }\n\n async assignInventories(worksheetDetailIds: string[], inventories: Partial<Inventory>): Promise<void> {\n const worksheetDetails: WorksheetDetail[] = await this.trxMgr\n .getRepository(WorksheetDetail)\n .findByIds(worksheetDetailIds, {\n relations: [\n 'bizplace',\n 'worksheet',\n 'targetVas',\n 'targetVas.arrivalNotice',\n 'targetVas.releaseGood',\n 'targetVas.shippingOrder',\n 'targetVas.vasOrder',\n 'targetVas.vas',\n 'targetVas.targetProduct'\n ]\n })\n\n let seq: number = 0\n\n for (let worksheetDetail of worksheetDetails) {\n const bizplace: Bizplace = worksheetDetail.bizplace\n const worksheet: Worksheet = worksheetDetail.worksheet\n const targetVas: OrderVas = worksheetDetail.targetVas\n\n let newWorksheetDetail: Partial<WorksheetDetail> = Object.assign({}, worksheetDetail)\n delete newWorksheetDetail.id\n\n // get accumulated inventories qty\n const accInventoriesQty: number = inventories.reduce((acc, inv) => {\n return acc + inv.qty\n }, 0)\n\n let operationGuide = JSON.parse(targetVas.operationGuide)\n let vasOperationGuide = targetVas.vas?.operationGuide\n\n if (vasOperationGuide === 'vas-repack' || vasOperationGuide === 'vas-repack-relabel') {\n const mainInventory: Inventory = inventories[0]\n const featuredInvs: FeaturedInventoryInterface[] = []\n const foundInvs: Inventory[] = await this.trxMgr\n .getRepository(Inventory)\n .findByIds(inventories.filter(inv => inv.id !== mainInventory.id).map(inv => inv.id))\n\n /* Update lockedQty of featuredInvs */\n for (let inventory of foundInvs) {\n const transferQty: number = inventories.find(inv => inv.id === inventory.id).qty\n const transferUomValue: number = Math.round((inventory.uomValue / inventory.qty) * transferQty * 100) / 100\n\n inventory.lockedQty += transferQty\n inventory.lockedUomValue += transferUomValue\n\n await this.trxMgr.getRepository(Inventory).save(inventory)\n\n let featuredInv: FeaturedInventoryInterface = {\n palletId: inventory.palletId,\n originalQty: transferQty,\n originalUomValue: transferUomValue,\n packingSize: inventory.packingSize,\n uomValuePerQty: inventory.uomValue / (inventory.qty * inventory.packingSize)\n }\n\n switch (operationGuide.data?.packingUnit) {\n case PackingUnits.QTY:\n featuredInv.currentUnitQty = transferQty * inventory.packingSize\n break\n\n case PackingUnits.UOM:\n featuredInv.currentUomValue = transferUomValue\n break\n }\n\n featuredInvs.push(featuredInv)\n }\n\n /* assign featuredInvs inside operationGuide.data */\n operationGuide.data = {\n ...operationGuide.data,\n featuredInvs\n }\n\n /* assign main inventory as the only inventories */\n inventories = [mainInventory]\n }\n\n for (let inventory of inventories) {\n let newTargetVas: OrderVas = new OrderVas()\n\n const foundInventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne(inventory.id)\n if (!foundInventory) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(inventory.id))\n\n // assigned inventory qty that was passed from client side\n const assignedQty = inventory.qty\n const unitUomValue: number = foundInventory.uomValue / foundInventory.qty\n\n // update unpack qty for unpacking vas\n if (vasOperationGuide === 'vas-unpack') {\n operationGuide.data.unpackQty = Math.round(operationGuide.data.unpackQty / accInventoriesQty) * assignedQty\n }\n\n if (vasOperationGuide === 'vas-repack' || vasOperationGuide === 'vas-repack-relabel') {\n switch (operationGuide.data?.packingUnit) {\n case PackingUnits.UOM:\n newTargetVas.qty = 1\n newTargetVas.uomValue = targetVas.uomValue\n break\n\n default:\n newTargetVas.qty = accInventoriesQty\n newTargetVas.uomValue = accInventoriesQty * unitUomValue\n }\n } else {\n newTargetVas.qty = assignedQty\n newTargetVas.uomValue = assignedQty * unitUomValue\n }\n\n newTargetVas.set = targetVas.set\n newTargetVas.targetType = targetVas.targetType\n newTargetVas.targetBatchId = targetVas.targetBatchId\n newTargetVas.packingType = targetVas.packingType\n newTargetVas.operationGuide = operationGuide ? JSON.stringify(operationGuide) : null\n newTargetVas.type = targetVas.type\n newTargetVas.remark = targetVas.remark\n newTargetVas.status = targetVas.status\n newTargetVas.targetProduct = targetVas.targetProduct\n newTargetVas.vasOrder = targetVas.vasOrder\n newTargetVas.vas = targetVas.vas\n newTargetVas.domain = this.domain\n newTargetVas.name = OrderNoGenerator.orderVas()\n newTargetVas.inventory = foundInventory\n newTargetVas.bizplace = bizplace\n newTargetVas.creator = this.user\n newTargetVas.updater = this.user\n newTargetVas = await this.trxMgr.getRepository(OrderVas).save(newTargetVas)\n\n await this.createWorksheetDetails(worksheet, WORKSHEET_TYPE.VAS, [newTargetVas])\n seq++\n\n // update inventory locked qty & uom value\n const currentLockedQty: number = foundInventory.lockedQty || 0\n const currentLockedUomValue: number = foundInventory.lockedUomValue || 0\n\n await this.trxMgr.getRepository(Inventory).save({\n ...foundInventory,\n lockedQty: inventory.qty + currentLockedQty,\n lockedUomValue: inventory.qty * unitUomValue + currentLockedUomValue,\n updater: this.user\n })\n }\n\n await this.trxMgr.getRepository(WorksheetDetail).delete(worksheetDetail.id)\n await this.trxMgr.getRepository(OrderVas).delete(targetVas.id)\n }\n }\n\n async activateVAS(worksheetNo: string, vasWorksheetDetails: Partial<WorksheetDetail>[]): Promise<Worksheet> {\n const worksheet: Worksheet = await this.findActivatableWorksheet(worksheetNo, WORKSHEET_TYPE.VAS, [\n 'vasOrder',\n 'worksheetDetails',\n 'worksheetDetails.targetVas'\n ])\n\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n const targetVass: OrderVas[] = worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetVas: OrderVas = wsd.targetVas\n targetVas.status = ORDER_VAS_STATUS.PROCESSING\n targetVas.updater = this.user\n return targetVas\n })\n\n // Update VAS Order if it's pure VAS Order (status: READY_TO_PROCESS => PROCESSING)\n let vasOrder: VasOrder = worksheet.vasOrder\n if (vasOrder?.id) {\n vasOrder.status = ORDER_STATUS.PROCESSING\n vasOrder.updater = this.user\n\n await this.updateRefOrder(vasOrder)\n }\n\n await this.updateOrderTargets(targetVass)\n return await this.activateWorksheet(worksheet, worksheetDetails, vasWorksheetDetails)\n }\n\n async unpackingWithPallet(\n worksheetDetailName: string,\n childProduct: Partial<Product>,\n unpackQty: number,\n unpackUomValue: number,\n palletId: string,\n locationName: string,\n refOrder: RefOrderType\n ): Promise<void> {\n await this.checkPalletDuplication(palletId)\n\n const worksheetDetail: WorksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).findOne({\n where: {\n name: worksheetDetailName,\n type: WORKSHEET_TYPE.VAS,\n status: Not(Equal(WORKSHEET_STATUS.DEACTIVATED))\n },\n relations: ['bizplace', 'worksheet', 'worksheet.vasOrder', 'targetVas', 'targetVas.inventory']\n })\n if (!worksheetDetail) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName))\n\n const targetVas: OrderVas = worksheetDetail.targetVas\n const bizplace: Bizplace = worksheetDetail.bizplace\n\n const location: Location = await this.trxMgr.getRepository(Location).findOne({\n where: {\n domain: this.domain,\n name: locationName,\n type: In([LOCATION_TYPE.SHELF, LOCATION_TYPE.BUFFER, LOCATION_TYPE.FLOOR])\n },\n relations: ['warehouse']\n })\n if (!location) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(locationName))\n\n const warehouse: Warehouse = location.warehouse\n const zone: string = location.zone\n\n // create new unpacked inventory\n let newInventory: Partial<Inventory> = new Inventory()\n newInventory.bizplace = bizplace\n newInventory.name = InventoryNoGenerator.inventoryName()\n newInventory.palletId = palletId\n newInventory.batchId = worksheetDetail.targetVas.targetBatchId\n newInventory.product = childProduct\n newInventory.packingType = childProduct.packingType\n newInventory.uom = childProduct.primaryUnit\n newInventory.remark = null\n newInventory.qty = unpackQty\n newInventory.uomValue = unpackUomValue * unpackQty\n newInventory.refOrderId = refOrder.id\n newInventory.warehouse = warehouse\n newInventory.location = location\n newInventory.zone = zone\n newInventory.orderVasId = targetVas.id\n newInventory.status = INVENTORY_STATUS.STORED\n\n newInventory = await this.transactionInventory(\n newInventory,\n refOrder,\n newInventory.qty,\n newInventory.uomValue,\n INVENTORY_TRANSACTION_TYPE.UNPACKING\n )\n\n // find inventory history that might exist due to undo unpacking process\n const existInventoryHistories: InventoryHistory[] = await this.trxMgr.getRepository(InventoryHistory).find({\n where: {\n domain: this.domain,\n inventory: null,\n palletId\n },\n relations: ['domain', 'inventory']\n })\n\n // if found any, update the inventory id\n if (existInventoryHistories.length) {\n existInventoryHistories.forEach(async (invHistory: InventoryHistory) => {\n await this.trxMgr.getRepository(InventoryHistory).save({\n ...invHistory,\n inventory: newInventory\n })\n })\n\n newInventory = await this.trxMgr.getRepository(Inventory).save({\n ...newInventory,\n lastSeq: Math.max(...existInventoryHistories.map(invHist => invHist.seq)) + 1\n })\n }\n\n // add picking and terminated for unpacking in RO\n if (refOrder instanceof ReleaseGood) {\n newInventory.qty = 0\n newInventory.uomValue = 0\n newInventory = await this.transactionInventory(\n newInventory,\n refOrder,\n -newInventory.qty,\n -newInventory.uomValue,\n INVENTORY_TRANSACTION_TYPE.PICKING\n )\n\n newInventory.status = INVENTORY_STATUS.TERMINATED\n await this.transactionInventory(newInventory, refOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.TERMINATED)\n }\n\n // update actual qty and actual uom value of order_vass\n let actualQty: number = 0\n let actualUomValue: number = 0\n\n actualQty = Number(targetVas.actualQty) + Number(unpackQty)\n actualUomValue = Number(targetVas.actualUomValue) + Number(unpackUomValue)\n\n let newTargetVas: OrderVas = Object.assign({}, targetVas)\n newTargetVas.actualQty = actualQty\n newTargetVas.actualUomValue = actualUomValue\n\n await this.trxMgr.getRepository(Inventory).save(newInventory)\n await this.trxMgr.getRepository(OrderVas).save(newTargetVas)\n }\n\n async executeVAS(worksheetDetail: Partial<WorksheetDetail>, palletId?: string): Promise<void> {\n const worksheetDetailName = worksheetDetail.name\n let foundWorksheetDetail: WorksheetDetail = await this.findExecutableWorksheetDetailByName(\n worksheetDetailName,\n WORKSHEET_TYPE.VAS,\n [\n 'bizplace',\n 'worksheet',\n 'worksheet.arrivalNotice',\n 'worksheet.releaseGood',\n 'targetVas',\n 'targetVas.vas',\n 'targetVas.arrivalNotice',\n 'targetVas.releaseGood',\n 'targetVas.vasOrder',\n 'targetVas.targetProduct',\n 'targetVas.inventory'\n ]\n )\n const bizplace: Bizplace = foundWorksheetDetail.bizplace\n const worksheet: Worksheet = foundWorksheetDetail.worksheet\n\n if (palletId) {\n const inventory: Inventory = await this.checkPalletAcceptable(palletId, worksheet, foundWorksheetDetail)\n\n let targetVas: OrderVas = foundWorksheetDetail.targetVas\n const totalTargetQty: number = targetVas.qty\n // inventory assigment\n targetVas.inventory = inventory\n // 현재 작업 대상 target vas의 수량을 inventory의 수량 만큼 감소 시킴\n targetVas.qty = inventory.qty\n targetVas = await this.trxMgr.getRepository(OrderVas).save(targetVas)\n // 남은 수량이 있다면 새로운 worksheet detail과 target vas를 생성\n\n const remainQty: number = totalTargetQty - inventory.qty\n if (remainQty > 0) {\n let newTargetVas: Partial<OrderVas> = Object.assign({}, targetVas)\n delete newTargetVas.id\n newTargetVas.domain = this.domain\n newTargetVas.bizplace = bizplace\n newTargetVas.name = OrderNoGenerator.orderVas()\n newTargetVas.qty = remainQty\n newTargetVas.creator = this.user\n newTargetVas.updater = this.user\n newTargetVas = await this.trxMgr.getRepository(OrderVas).save(newTargetVas)\n\n // Create new worksheet detail\n await this.createWorksheetDetails(worksheet, WORKSHEET_TYPE.VAS, [newTargetVas], {\n status: foundWorksheetDetail.status\n })\n }\n }\n\n const targetVas: VasOrder = foundWorksheetDetail.targetVas\n if (!targetVas) throw new Error(`VAS doesn't exists`)\n\n const inventory: Inventory = foundWorksheetDetail.targetVas.inventory\n\n // reset lockedQty if there's inventory found\n if (\n inventory &&\n inventory.lockedQty >= targetVas.qty &&\n targetVas.vas.operationGuide &&\n targetVas.vas.operationGuide !== 'vas-repack' &&\n targetVas.vas.operationGuide !== 'vas-repack-relabel'\n ) {\n await this.trxMgr.getRepository(Inventory).save({\n ...inventory,\n lockedQty: inventory.lockedQty - targetVas.qty,\n lockedUomValue: inventory.lockedUomValue - targetVas.uomValue\n })\n }\n\n // 1. update status of worksheetDetail (EXECUTING => DONE)\n foundWorksheetDetail = Object.assign(foundWorksheetDetail, worksheetDetail)\n foundWorksheetDetail.status = WORKSHEET_STATUS.DONE\n foundWorksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(foundWorksheetDetail)\n\n // 2. update vas\n targetVas.status = ORDER_VAS_STATUS.COMPLETED\n targetVas.updater = this.user\n await this.updateOrderTargets([targetVas])\n }\n\n async undoVAS(worksheetDetail: Partial<WorksheetDetail>): Promise<void> {\n const worksheetDetailName: string = worksheetDetail.name\n worksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, [\n 'worksheet',\n 'targetVas',\n 'targetVas.vas',\n 'targetVas.vasOrder',\n 'targetVas.inventory'\n ])\n this.checkRecordValidity(worksheetDetail, { status: WORKSHEET_STATUS.DONE, type: WORKSHEET_TYPE.VAS })\n\n let targetVas: OrderVas = worksheetDetail.targetVas\n const inventory: Inventory = targetVas.inventory\n\n // update lockedQty if there's inventory found\n if (inventory) {\n await this.trxMgr.getRepository(Inventory).save({\n ...inventory,\n lockedQty: inventory.lockedQty + targetVas.qty,\n lockedUomValue: inventory.lockedUomValue + targetVas.uomValue\n })\n }\n\n targetVas.status = ORDER_VAS_STATUS.PROCESSING\n targetVas.updater = this.user\n await this.updateOrderTargets([targetVas])\n\n worksheetDetail.status = WORKSHEET_STATUS.EXECUTING\n worksheetDetail.issue = ''\n worksheetDetail.updater = this.user\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetail)\n }\n\n async undoVasInventory(worksheetDetailName: string, palletId: string): Promise<void> {\n const worksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, [\n 'domain',\n 'bizplace',\n 'worksheet',\n 'targetVas',\n 'targetVas.vas',\n 'targetVas.vasOrder',\n 'targetVas.inventory'\n ])\n const bizplace: Bizplace = worksheetDetail.bizplace\n const targetVas: OrderVas = worksheetDetail.targetVas\n const { arrivalNotice, releaseGood, vasOrder } = targetVas\n const refOrder: RefOrderType = arrivalNotice || releaseGood || vasOrder\n\n let vasInventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: {\n domain: this.domain,\n bizplace,\n orderVasId: targetVas.id,\n palletId\n }\n })\n\n let newTargetVas: OrderVas = new OrderVas()\n newTargetVas.id = targetVas.id\n newTargetVas.name = targetVas.name\n newTargetVas.description = targetVas.description\n newTargetVas.set = targetVas.set\n newTargetVas.targetType = targetVas.targetType\n newTargetVas.targetBatchId = targetVas.targetBatchId\n newTargetVas.packingType = targetVas.packingType\n newTargetVas.operationGuide = targetVas.operationGuide\n newTargetVas.type = targetVas.type\n newTargetVas.remark = targetVas.remark\n newTargetVas.status = targetVas.status\n newTargetVas.targetProduct = targetVas.targetProduct\n newTargetVas.vasOrder = targetVas.vasOrder\n newTargetVas.vas = targetVas.vas\n newTargetVas.domain = this.domain\n newTargetVas.name = targetVas.name\n newTargetVas.qty = targetVas.qty\n newTargetVas.uomValue = targetVas.uomValue\n newTargetVas.inventory = targetVas.inventory\n newTargetVas.bizplace = bizplace\n newTargetVas.creator = this.user\n newTargetVas.updater = this.user\n newTargetVas.actualQty = targetVas.actualQty - vasInventory.qty\n newTargetVas.actualUomValue =\n targetVas.actualUomValue - Math.round((vasInventory.uomValue / vasInventory.qty) * 100) / 100\n\n vasInventory.lastSeq++\n vasInventory.status = INVENTORY_STATUS.DELETED\n vasInventory = await this.transactionInventory(\n vasInventory,\n refOrder,\n -vasInventory.qty,\n -vasInventory.uomValue,\n INVENTORY_TRANSACTION_TYPE.UNDO_UNPACKING\n )\n // vasInventory.qty = 0\n // vasInventory.weight = 0\n // vasInventory.uomValue = 0\n // vasInventory.updater = this.user\n\n await this.updateOrderTargets([newTargetVas])\n\n await this.trxMgr.getRepository(InventoryHistory).update({ inventory: vasInventory }, { inventory: null })\n await this.trxMgr.getRepository(Inventory).delete({ id: vasInventory.id })\n }\n\n private async checkPalletAcceptable(\n palletId: string,\n worksheet: Worksheet,\n worksheetDetail: WorksheetDetail\n ): Promise<Inventory> {\n // inventory가 존재해야함\n const inventory: Inventory = await this.trxMgr.getRepository(Inventory).findOne({\n where: { domain: this.domain, palletId },\n relations: ['product']\n })\n if (!inventory) throw new Error(`Can't find inventory by pallet ID (${palletId})`)\n\n // 현재 작업 set에서 하나라도 모두 완료된 유형의 VAS가 존재할 경우\n // 해당 VAS를 처리한 pallet 리스트에 한하여 작업을 수행 해야함 (동일한 SET는 동일한 군집의 Pallet을 대상으로 처리되어야 하기 때문에)\n worksheet = await this.trxMgr.getRepository(Worksheet).findOne(worksheet.id, {\n relations: [\n 'worksheetDetails',\n 'worksheetDetails.targetVas',\n 'worksheetDetails.targetVas.inventory',\n 'worksheetDetails.targetVas.vas'\n ]\n })\n\n const vasIds: string[] = worksheet.worksheetDetails\n .filter((wsd: WorksheetDetail) => wsd.targetVas.set === worksheetDetail.targetVas.set)\n .map((wsd: WorksheetDetail) => wsd.targetVas.vas.id)\n\n let completedCnt: { [key: string]: number } = {}\n vasIds.forEach((vasId: string) => (completedCnt[vasId] = 0))\n worksheet.worksheetDetails.forEach((wsd: WorksheetDetail) => {\n if (wsd.status !== WORKSHEET_STATUS.DONE) {\n completedCnt[wsd.targetVas.vas.id]++\n }\n })\n let finishedVasId: string\n for (let vasId in completedCnt) {\n if (completedCnt[vasId] === 0) {\n finishedVasId = vasId\n break\n }\n }\n\n if (finishedVasId) {\n const availPalletIds: string[] = worksheet.worksheetDetails\n .filter((wsd: WorksheetDetail) => wsd.targetVas.vas.id === finishedVasId)\n .map((wsd: WorksheetDetail) => wsd.targetVas.inventory.palletId)\n\n if (availPalletIds.indexOf(inventory.palletId) >= 0) {\n return inventory\n } else {\n throw new Error(\n this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('execute VAS', `${palletId} is not suitable for doing this VAS`)\n )\n }\n }\n\n // refOrder에 따라 적절한 상태를 가지고 있어야함\n // Arrival Notice = 'PARTIALLY_UNLOADED or PUTTING_AWAY\n const refOrder: ArrivalNotice | ReleaseGood = worksheet.arrivalNotice || worksheet.releaseGood\n if (refOrder instanceof ArrivalNotice) {\n const acceptableStatus = [INVENTORY_STATUS.PARTIALLY_UNLOADED, INVENTORY_STATUS.PUTTING_AWAY]\n if (acceptableStatus.indexOf(inventory.status) < 0)\n throw new Error(`The pallet doesn't have right status for doing VAS`)\n } else if (refOrder instanceof ReleaseGood) {\n throw new Error('TODO: Status check for Release Good')\n }\n\n // target vas의 조건에 충족해야 함 (targetBatchId, targetProduct)\n const { targetBatchId, targetProduct } = worksheetDetail.targetVas\n if (targetBatchId && targetBatchId !== inventory.batchId) {\n throw new Error(`The pallet (${inventory.palletId}) doesn't have correct batch ID (${targetBatchId})`)\n }\n\n if (targetProduct?.id && targetProduct.id !== inventory.product.id) {\n throw new Error(`The pallet (${inventory.palletId}) doesn't have correct product (${targetProduct.name})`)\n }\n\n // reference order와 관계되어 있는 inventory여야 함\n if (refOrder instanceof ArrivalNotice) {\n if (inventory.refOrderId !== refOrder.id)\n throw new Error(`The pallet ${inventory.palletId} is not related with GAN (${refOrder.name})`)\n }\n\n // 다른 vas order set에 포함되어 있지 않아야함\n const relatedInvs: Inventory[] = worksheet.worksheetDetails\n .filter(\n (\n wsd: WorksheetDetail // 현재 작업대상이 아니고 현재 작업 대상과 같은 세트가 아니고 인벤토리 값이 있는\n ) =>\n wsd.id !== worksheetDetail.id &&\n wsd.targetVas.set !== worksheetDetail.targetVas.set &&\n wsd.targetVas.inventory\n )\n .map((wsd: WorksheetDetail) => wsd.targetVas.inventory)\n\n if (relatedInvs.find((relInv: Inventory) => relInv.palletId === inventory.palletId)) {\n throw new Error(`The pallet (${inventory.palletId}) is already assigned for another VAS SET`)\n }\n\n // 현재 작업유형에 동이한 pallet으로 처리된 이력이 없어야함\n const completedWSD: WorksheetDetail[] = worksheet.worksheetDetails.filter(\n (wsd: WorksheetDetail) =>\n wsd.status === WORKSHEET_STATUS.DONE &&\n wsd.targetVas.set === worksheetDetail.targetVas.set &&\n wsd.targetVas.vas.id === worksheetDetail.targetVas.vas.id\n )\n\n if (completedWSD.find((wsd: WorksheetDetail) => wsd.targetVas.inventory.palletId === palletId)) {\n throw new Error(\n this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY('execute VAS', `VAS is finished for pallet (${palletId}) already`)\n )\n }\n\n return inventory\n }\n\n async completeVAS(orderNo: string, orderType: string, vasWorksheetDetails: WorksheetDetail[]): Promise<Worksheet> {\n const ENTITY_MAP: { [key: string]: ArrivalNotice | ReleaseGood | VasOrder } = {\n [ORDER_TYPES.ARRIVAL_NOTICE]: ArrivalNotice,\n [ORDER_TYPES.RELEASE_OF_GOODS]: ReleaseGood,\n [ORDER_TYPES.VAS_ORDER]: VasOrder\n }\n let refOrder: ReferenceOrderType = await this.findRefOrder(ENTITY_MAP[orderType], {\n domain: this.domain,\n name: orderNo\n })\n let worksheet: Worksheet = await this.findWorksheetByRefOrder(refOrder, WORKSHEET_TYPE.VAS, [\n 'worksheetDetails',\n 'worksheetDetails.targetVas',\n 'worksheetDetails.targetVas.vas',\n 'worksheetDetails.targetVas.inventory'\n ])\n\n const isPureVAS: boolean = refOrder instanceof VasOrder\n if (isPureVAS) {\n refOrder.status = ORDER_STATUS.DONE\n await this.updateRefOrder(refOrder)\n }\n\n // Do complete operation transactions if there it is\n let foundWorksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n let targetVASs: OrderVas[] = foundWorksheetDetails.map((wsd: WorksheetDetail) => wsd.targetVas)\n\n // assign issues brought from execute VAS page to foundWorksheetDetails\n foundWorksheetDetails = foundWorksheetDetails.map(worksheetDetail => {\n return {\n ...worksheetDetail,\n issue: vasWorksheetDetails.find(wsd => wsd.name === worksheetDetail.name).issue || null\n }\n })\n\n // reduce parent inventory qty if same parent is selected\n targetVASs = targetVASs.reduce((acc, curr) => {\n if (curr.inventory) {\n for (let i = 0; i < acc.length; i++) {\n if (acc[i].inventory?.id === curr.inventory?.id) {\n curr.inventory.qty -= acc[i].qty\n curr.inventory.uomValue -= acc[i].uomValue\n curr.inventory.lockedQty -= acc[i].qty\n curr.inventory.lockedUomValue -= acc[i].uomValue\n }\n }\n }\n\n acc.push(curr)\n\n return acc\n }, [])\n\n for (const targetVas of targetVASs) {\n const { issue }: { issue: string } = foundWorksheetDetails.find(\n (wsd: WorksheetDetail) => wsd.targetVas.id === targetVas.id\n )\n\n // if (targetVas.operationGuide && (!issue || (targetVas.vas.name.toUpperCase() == VAS.REPACKAGING && issue))) {\n // await this.doOperationTransaction(targetVas)\n // } /*else if (targetVas.operationGuide && targetVas.vas.name.toUpperCase() === VAS.REPACKAGING && issue) {\n // await this.doOperationTransaction(targetVas)\n // }*/\n\n if (targetVas.operationGuide && !issue) {\n await this.doOperationTransaction(targetVas)\n }\n\n if (targetVas.vas.name.toUpperCase() === VAS.UNPACKING && !(refOrder instanceof ArrivalNotice)) {\n // Update qty and uom value of parent inventory (only applies for pure vas and RO)\n const parentInventory: Inventory = targetVas.inventory\n let newParentInventory: Partial<Inventory> = Object.assign({}, parentInventory)\n newParentInventory.qty = parentInventory.qty - targetVas.qty\n newParentInventory.uomValue = Math.round((parentInventory.uomValue - targetVas.uomValue) * 100) / 100\n newParentInventory.lockedQty = parentInventory.lockedQty - targetVas.qty\n newParentInventory.lockedUomValue =\n Math.round((parentInventory.lockedUomValue - targetVas.uomValue) * 100) / 100\n\n // update qty and uomValue for VasOrder\n // if refOrder is from ReleaseGood, no need to update because this trxn is consider similar to LOADING trxn\n if (refOrder instanceof VasOrder) {\n await this.transactionInventory(\n newParentInventory,\n refOrder,\n -targetVas.qty,\n -targetVas.uomValue,\n INVENTORY_TRANSACTION_TYPE.UNPACKED\n )\n } else if (refOrder instanceof ReleaseGood) {\n await generateInventoryHistory(\n newParentInventory,\n refOrder,\n INVENTORY_TRANSACTION_TYPE.UNPACKED,\n 0,\n 0,\n this.user,\n this.trxMgr\n )\n }\n\n // add TERMINATED status if inventory qty = 0\n if (newParentInventory.qty === 0) {\n newParentInventory.status = INVENTORY_STATUS.TERMINATED\n await this.transactionInventory(newParentInventory, refOrder, 0, 0, INVENTORY_TRANSACTION_TYPE.TERMINATED)\n }\n }\n }\n\n // update worksheet details if there is any issue found from the list\n if (foundWorksheetDetails.some((wsd: Partial<WorksheetDetail>) => wsd.issue)) {\n const worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n foundWorksheetDetails = this.renewWorksheetDetails(worksheetDetails, foundWorksheetDetails, 'name', {\n updater: this.user\n })\n\n const worksheetDetailsWithIssue: WorksheetDetail[] = foundWorksheetDetails.filter(\n (wsd: WorksheetDetail) => wsd.issue\n ) as WorksheetDetail[]\n\n if (worksheetDetailsWithIssue.length) {\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetailsWithIssue)\n }\n }\n\n let orderStatus: string =\n refOrder instanceof ArrivalNotice\n ? ORDER_STATUS.READY_TO_UNLOAD\n : refOrder instanceof ReleaseGood\n ? ORDER_STATUS.LOADING\n : ORDER_STATUS.DONE\n\n worksheet = await this.completeWorksheet(worksheet, orderStatus)\n return worksheet\n }\n\n async doOperationTransaction(targetVas: OrderVas): Promise<void> {\n const operationGuide: string = targetVas.vas?.operationGuide\n if (operationGuide) {\n await this.COMPLETE_TRX_MAP[operationGuide](this.trxMgr, targetVas, this.user)\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"worksheet-controller.js","sourceRoot":"","sources":["../../server/controllers/worksheet-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worksheet-controller.js","sourceRoot":"","sources":["../../server/controllers/worksheet-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, EntitySchema, Equal, FindOneOptions, In, Not } from 'typeorm'\n\nimport { Role, User } from '@things-factory/auth-base'\nimport { Bizplace, getDomainUsers } from '@things-factory/biz-base'\nimport { sendNotification } from '@things-factory/notification'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport {\n ArrivalNotice,\n DeliveryOrder,\n InventoryCheck,\n ORDER_INVENTORY_STATUS,\n ORDER_PRODUCT_STATUS,\n ORDER_VAS_STATUS,\n OrderInventory,\n OrderProduct,\n OrderVas,\n ReleaseGood,\n ReturnOrder,\n VasOrder\n} from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\nimport { Inventory, INVENTORY_STATUS, InventoryItem, Pallet } from '@things-factory/warehouse-base'\n\nimport { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet, WorksheetDetail } from '../entities'\nimport { generateInventoryHistory, WorksheetNoGenerator } from '../utils'\n\nexport type ReferenceOrderType = ArrivalNotice | ReleaseGood | VasOrder | InventoryCheck | DeliveryOrder | ReturnOrder\nexport type OrderTargetTypes = OrderProduct | OrderInventory | OrderVas\n\nexport enum ReferenceOrderFields {\n ArrivalNotice = 'arrivalNotice',\n ReleaseGood = 'releaseGood',\n VasOrder = 'vasOrder',\n InventoryCheck = 'inventoryCheck',\n ReturnOrder = 'returnOrder'\n}\n\nexport enum OrderTargetFields {\n OrderProduct = 'targetProduct',\n OrderInventory = 'targetInventory',\n OrderVas = 'targetVas'\n}\n\nexport interface BasicInterface {\n domain: Domain\n user: User\n}\n\nexport type NotificationMsgInterface = {\n title: string\n body: string\n url: string\n data: any\n}\n\nexport class WorksheetController {\n public readonly ERROR_MSG = {\n FIND: {\n NO_RESULT: (condition: any) => `There's no results matched with condition ${condition}`,\n NO_CHILD_RESULT: (condition: any) => `There's no child result matched with condition ${condition}`,\n NOT_MATCH: (source: any, target: any) => `Unable to find matching ${target} using ${source}`\n },\n ORDER_ITEM: {\n NO_MATCHING_RESULT: (condition: any, condition2: any) =>\n `Current item with ${condition} (${condition2}) not belong to this order`,\n EXCESS_QTY: (condition: any, condition2: any, condition3: any) =>\n `Excess qty is scanned for item ${condition}, ${condition2} (${condition3})`\n },\n PRODUCT: {\n NO_MATCHING_RESULT: (condition: any, condition2: any) =>\n `Order packing type and packing size not match with product master, ${condition} (${condition2})`,\n BARCODE_NOT_EXIST: (condition: any, condition2: any, condition3: any) =>\n `Product barcode - ${condition} with ${condition2} ${condition3}, not exist in master data.`\n },\n CREATE: {\n ID_EXISTS: 'Target has ID already',\n EMPTY_CREATOR: 'Cannot create without creator',\n EMPTY_UPDATER: 'Cannot create without updater'\n },\n UPDATE: {\n ID_NOT_EXISTS: `Target doesn't have ID`,\n EMPTY_UPDATER: 'Cannot update without updater'\n },\n VALIDITY: {\n UNEXPECTED_FIELD_VALUE: (field: string, expectedValue: any, actualValue: any) =>\n `Expected ${field} value is ${expectedValue} but got ${actualValue}`,\n DUPLICATED: (field: string, value: any) => `There is duplicated ${field} value (${value})`,\n CANT_PROCEED_STEP_BY: (step: string, reason: string) => `Can't proceed to ${step} because ${reason}`\n }\n }\n\n private readonly ROLE_NAMES: Record<string, string> = {\n OFFICE_ADMIN: 'Office Admin'\n }\n\n protected trxMgr: EntityManager\n protected domain: Domain\n protected user: User\n\n constructor(trxMgr: EntityManager, domain: Domain, user: User) {\n this.trxMgr = trxMgr\n this.domain = domain\n this.user = user\n }\n\n private getRefOrderField(refOrder: ReferenceOrderType): string {\n if (refOrder instanceof ArrivalNotice) {\n return ReferenceOrderFields.ArrivalNotice\n } else if (refOrder instanceof ReleaseGood) {\n return ReferenceOrderFields.ReleaseGood\n } else if (refOrder instanceof VasOrder) {\n return ReferenceOrderFields.VasOrder\n } else if (refOrder instanceof InventoryCheck) {\n return ReferenceOrderFields.InventoryCheck\n } else if (refOrder instanceof ReturnOrder) {\n return ReferenceOrderFields.ReturnOrder\n } else {\n throw new Error(\n this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('refOrder', 'One of reference order type', refOrder)\n )\n }\n }\n\n private getOrderTargetField(orderTarget: OrderTargetTypes): string {\n if (orderTarget instanceof OrderProduct) {\n return OrderTargetFields.OrderProduct\n } else if (orderTarget instanceof OrderInventory) {\n return OrderTargetFields.OrderInventory\n } else if (orderTarget instanceof OrderVas) {\n return OrderTargetFields.OrderVas\n } else {\n this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('orderTarget', 'One of order target type', orderTarget)\n }\n }\n\n /**\n * @summary Find reference order (ArrivalNotice, ReleaseGood, VasOrder, etc...)\n * @description\n * Find and return reference order with its relations based on passed condition & reltaions\n */\n async findRefOrder(\n entitySchema: EntitySchema,\n condition: Partial<ReferenceOrderType>,\n relations?: string[]\n ): Promise<ReferenceOrderType> {\n condition = this.tidyConditions(condition)\n let findOption: FindOneOptions = { where: condition }\n if (relations?.length > 0) findOption.relations = relations\n\n const refOrder: ReferenceOrderType = await this.trxMgr.getRepository(entitySchema).findOne(findOption)\n if (!refOrder) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(findOption))\n\n return refOrder\n }\n\n /**\n * @summary find worksheet by passed condition\n * @description find worksheey based on passed condition\n * It will return worksheetDetail as its relation by default\n * If you want to get additional relations you need to define reltaions\n * ex) findWorksheet(condition, ['arrivalNotice', 'releaseGood'])\n */\n async findWorksheet(condition: Record<string, any>, relations: string[] = ['worksheetDetails']): Promise<Worksheet> {\n condition = this.tidyConditions(condition)\n const worksheet: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne({\n where: {\n domain: this.domain,\n ...condition\n },\n relations\n })\n\n if (!worksheet) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(condition))\n return worksheet\n }\n\n /**\n * @summary Find worksheet by passed params\n * @description Find and return worksheet based on passed ID\n * It will return worksheetDetail as its relation by default\n * If you want to get additional relations you need to define reltaions\n * ex) findWorksheetById(id, ['arrivalNotice', 'releaseGood'])\n */\n async findWorksheetById(id: string, relations: string[] = ['worksheetDetails']): Promise<Worksheet> {\n const worksheet: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne(id, { relations })\n if (!worksheet) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(id))\n\n return worksheet\n }\n\n /**\n * @summary Find worksheet by passed params\n * @description Find and return worksheet based on worksheet no\n * It will return worksheetDetail as its relation by default\n * If you want to get additional relations you need to define reltaions\n * ex) findWorksheetByNo(worksheetNo, ['arrivalNotice', 'releaseGood'])\n */\n async findWorksheetByNo(worksheetNo: string, relations: string[] = ['worksheetDetails']): Promise<Worksheet> {\n const worksheet: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne({\n where: { domain: this.domain, name: worksheetNo },\n relations\n })\n\n if (!worksheet) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetNo))\n\n return worksheet\n }\n\n /**\n * @summary Find worksheet by passed params.\n * @description Find and return worksheet based on worksheet no\n * It will return worksheetDetail as its relation by default\n * If you want to get additional relations you need to define reltaions\n * ex) findWorksheetByNo(worksheetNo, ['arrivalNotice', 'releaseGood'])\n */\n async findWorksheetByRefOrder(\n refOrder: ReferenceOrderType,\n type: string,\n relations: string[] = ['worksheetDetails']\n ): Promise<Worksheet> {\n const refOrderField: string = this.getRefOrderField(refOrder)\n if (!refOrder.bizplace?.id) {\n switch (refOrderField) {\n case ReferenceOrderFields.ArrivalNotice:\n refOrder = await this.findRefOrder(ArrivalNotice, refOrder, ['bizplace'])\n break\n\n case ReferenceOrderFields.ReleaseGood:\n refOrder = await this.findRefOrder(ReleaseGood, refOrder, ['bizplace'])\n break\n\n case ReferenceOrderFields.VasOrder:\n refOrder = await this.findRefOrder(VasOrder, refOrder, ['bizplace'])\n break\n\n case ReferenceOrderFields.InventoryCheck:\n refOrder = await this.findRefOrder(InventoryCheck, refOrder, ['bizplace'])\n break\n\n case ReferenceOrderFields.ReturnOrder:\n refOrder = await this.findRefOrder(ReturnOrder, refOrder, ['bizplace'])\n break\n }\n }\n\n const bizplace: Bizplace = refOrder.bizplace\n const condition: FindOneOptions = {\n where: {\n bizplace,\n domain: this.domain,\n type,\n [refOrderField]: refOrder\n },\n relations\n }\n\n const worksheet: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne(condition)\n if (!worksheet) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(type))\n\n return worksheet\n }\n\n /**\n * @summary Find activatable worksheet by worksheet no and type\n * @description Find worksheet by passed worksheet no\n * and check validity by passed type and status (DEACTIVATED)\n * It will return worksheetDetail as its relation by default\n * If you want to get additional relations you need to define reltaions\n * ex) findActivatableWorksheet(worksheetNo, type, ['arrivalNotice])\n */\n async findActivatableWorksheet(\n worksheetNo: string,\n type: string,\n relations: string[] = ['worksheetDetails']\n ): Promise<Worksheet> {\n const worksheet: Worksheet = await this.findWorksheetByNo(worksheetNo, relations)\n this.checkRecordValidity(worksheet, { type, status: WORKSHEET_STATUS.DEACTIVATED })\n\n return worksheet\n }\n\n /**\n * @summary Find executable worksheet detail by its name\n * @description Find worksheet detail by passwd worksheet detail name\n * and check validity by passed type and status (EXECUTING)\n * If you want to get additional relations you need to define relations\n * ex) findExecutableWorksheetDetailByName(worksheetDetailName, type, ['arrivalNotice'])\n */\n async findActivatableWorksheetDetailByName(\n worksheetDetailName: string,\n type: string,\n relations: string[] = []\n ): Promise<WorksheetDetail> {\n const worksheetDetail: WorksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, relations)\n this.checkRecordValidity(worksheetDetail, { type, status: WORKSHEET_STATUS.DEACTIVATED })\n\n return worksheetDetail\n }\n\n /**\n * @summary find worksheet detail by passed condition\n * @description find worksheet detail based on passed condition\n * If you want to get additional relations you need to define reltaions\n * ex) findWorksheetDetail(condition, ['worksheet'])\n */\n async findWorksheetDetail(condition: Record<string, any>, relations?: string[]): Promise<WorksheetDetail> {\n condition = this.tidyConditions(condition)\n const worksheetDetail: WorksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).findOne({\n where: {\n domain: this.domain,\n ...condition\n },\n relations\n })\n\n if (!worksheetDetail) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(condition))\n return worksheetDetail\n }\n\n /**\n * @summary find worksheet detail by passed worksheet detail name\n * @description find worksheey based on passed name of worksheet detail\n * If you want to get additional relations you need to define reltaions\n * ex) findWorksheetDetail(condition, ['worksheet'])\n */\n async findWorksheetDetailByName(worksheetDetailName: string, relations?: string[]): Promise<WorksheetDetail> {\n const worksheetDetail: WorksheetDetail = await this.trxMgr.getRepository(WorksheetDetail).findOne({\n where: { domain: this.domain, name: worksheetDetailName },\n relations\n })\n\n if (!worksheetDetail) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName))\n return worksheetDetail\n }\n\n async findWorksheetDetailByNames(worksheetDetailNames: [string], relations?: string[]): Promise<WorksheetDetail[]> {\n const worksheetDetails: WorksheetDetail[] = await this.trxMgr.getRepository(WorksheetDetail).find({\n where: { domain: this.domain, name: In(worksheetDetailNames) },\n relations\n })\n\n if (!worksheetDetails?.length) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailNames.toString()))\n return worksheetDetails\n }\n\n /**\n * @summary Find executable worksheet detail by its name\n * @description Find worksheet detail by passwd worksheet detail name\n * and check validity by passed type and status (EXECUTING)\n * If you want to get additional relations you need to define relations\n * ex) findExecutableWorksheetDetailByName(worksheetDetailName, type, ['arrivalNotice'])\n */\n async findExecutableWorksheetDetailByName(\n worksheetDetailName: string,\n type: string,\n relations: string[] = []\n ): Promise<WorksheetDetail> {\n const worksheetDetail: WorksheetDetail = await this.findWorksheetDetailByName(worksheetDetailName, relations)\n this.checkRecordValidity(worksheetDetail, { type, status: WORKSHEET_STATUS.EXECUTING })\n\n return worksheetDetail\n }\n\n async findExecutableWorksheetDetailByNames(\n worksheetDetailNames: [string],\n type: string,\n relations: string[] = []\n ): Promise<WorksheetDetail[]> {\n const worksheetDetails: WorksheetDetail[] = await this.findWorksheetDetailByNames(worksheetDetailNames, relations)\n worksheetDetails.map(worksheetDetail => {\n this.checkRecordValidity(worksheetDetail, { type, status: WORKSHEET_STATUS.EXECUTING })\n })\n\n return worksheetDetails\n }\n\n /**\n * @summary Creating worksheet\n * @description creating worksheet by passed params\n * It will set status as DEACTIVATED by default\n * If you want to define status by yourself, need to pass status in additionalProps\n * ex) createWorksheet(refOrder, type, { status: WORKSHEET_STATUS.ACTIVATED })\n */\n async createWorksheet(\n refOrder: ReferenceOrderType,\n type: string,\n additionalProps: Partial<Worksheet> = {}\n ): Promise<Worksheet> {\n let refOrderType: string = await this.getRefOrderField(refOrder)\n const bizplace: Bizplace = await this.extractBizplaceFromRefOrder(refOrder)\n\n let existingWorksheet: Worksheet\n try {\n existingWorksheet = await this.findWorksheetByRefOrder(refOrder, type)\n } catch (e) {}\n\n if (existingWorksheet)\n throw new Error(\n this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY(\n `create ${type.toLocaleLowerCase()} worksheet`,\n 'existing worksheet is found'\n )\n )\n\n const worksheet: Partial<Worksheet> = {\n domain: this.domain,\n bizplace,\n name: WorksheetNoGenerator.generate(type),\n type,\n status: WORKSHEET_STATUS.DEACTIVATED,\n creator: this.user,\n updater: this.user,\n [refOrderType]: refOrder,\n ...additionalProps\n }\n\n if (worksheet.id) throw new Error(this.ERROR_MSG.CREATE.ID_EXISTS)\n\n return await this.trxMgr.getRepository(Worksheet).save(worksheet)\n }\n\n async createBatchWorksheet(\n taskNo: string,\n bizplace: Bizplace,\n type: string,\n additionalProps: Partial<Worksheet> = {}\n ): Promise<Worksheet> {\n const worksheet: Partial<Worksheet> = {\n domain: this.domain,\n bizplace,\n name: WorksheetNoGenerator.generate(type),\n type,\n taskNo,\n status: WORKSHEET_STATUS.DEACTIVATED,\n creator: this.user,\n updater: this.user,\n ...additionalProps\n }\n\n if (worksheet.id) throw new Error(this.ERROR_MSG.CREATE.ID_EXISTS)\n\n return await this.trxMgr.getRepository(Worksheet).save(worksheet)\n }\n\n /**\n * @summary Creating worksheet details\n * @description creating worksheet details by passed params\n * It will set status as DEACTIVATED by default\n * If you want to define status by yourself, need to pass status in additionalProps\n * ex) createWorksheetDetails(refOrder, type, { status: WORKSHEET_STATUS.ACTIVATED })\n *\n */\n async createWorksheetDetails(\n worksheet: Worksheet,\n type: string,\n orderTargets: OrderTargetTypes[],\n additionalProps: Partial<WorksheetDetail> = {}\n ): Promise<WorksheetDetail[]> {\n if (!worksheet.bizplace?.id) {\n worksheet = await this.findWorksheetById(worksheet.id, ['bizplace'])\n }\n const bizplace: Bizplace = worksheet.bizplace\n\n const worksheetDetails: Partial<WorksheetDetail>[] = orderTargets.map((orderTarget: OrderTargetTypes) => {\n const orderTargetField: string = this.getOrderTargetField(orderTarget)\n return {\n domain: this.domain,\n bizplace,\n worksheet,\n name: WorksheetNoGenerator.generate(type, true),\n type,\n status: WORKSHEET_STATUS.DEACTIVATED,\n [orderTargetField]: orderTarget,\n creator: this.user,\n updater: this.user,\n ...additionalProps\n }\n })\n\n if (worksheetDetails.some((wsd: Partial<WorksheetDetail>) => wsd.id))\n throw new Error(this.ERROR_MSG.CREATE.ID_EXISTS)\n\n return await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetails)\n }\n\n /**\n * @summary Update reference order (ArrivalNotice, ReleaseGood, VasOrder, InventoryCheck)\n * @description\n * Update reference order like (ArrivalNotice, ReleaseGood, VasOrder, InventoryCheck)\n */\n async updateRefOrder(refOrder: ReferenceOrderType, entitySchema?: EntitySchema): Promise<any> {\n if (!entitySchema) {\n if (refOrder instanceof ArrivalNotice) {\n entitySchema = ArrivalNotice\n } else if (refOrder instanceof ReleaseGood) {\n entitySchema = ReleaseGood\n } else if (refOrder instanceof VasOrder) {\n entitySchema = VasOrder\n } else if (refOrder instanceof InventoryCheck) {\n entitySchema = InventoryCheck\n } else if (refOrder instanceof ReturnOrder) {\n entitySchema = ReturnOrder\n }\n }\n\n if (!refOrder.id) throw new Error(this.ERROR_MSG.UPDATE.ID_NOT_EXISTS)\n if (!refOrder.updater?.id) refOrder = this.setStamp(refOrder)\n\n return await this.trxMgr.getRepository(entitySchema).save(refOrder)\n }\n\n /**\n * @summary Update order targets (OrderProduct, OrderInventory, OrderVas)\n * @description\n * Update order targets like (OrderProduct, OrderInventory, OrderVas)\n */\n async updateOrderTargets(orderTargets: OrderTargetTypes[], entitySchema?: EntitySchema): Promise<any> {\n if (!entitySchema) {\n if (orderTargets[0] instanceof OrderProduct) {\n entitySchema = OrderProduct\n } else if (orderTargets[0] instanceof OrderInventory) {\n entitySchema = OrderInventory\n } else if (orderTargets[0] instanceof OrderVas) {\n entitySchema = OrderVas\n }\n }\n\n if (orderTargets.some((orderTarget: any) => !orderTarget.id)) throw new Error(this.ERROR_MSG.UPDATE.ID_NOT_EXISTS)\n orderTargets.forEach((orderTarget: OrderTargetTypes) => {\n if (!orderTarget.updater?.id) orderTarget = this.setStamp(orderTarget)\n })\n\n return await this.trxMgr.getRepository(entitySchema).save(orderTargets)\n }\n\n /**\n * @summary generate worksheet and worksheet details\n * @description It will generate worksheet and worksheet details in onetime\n * Step 1. Call createWorksheet to create worksheet\n * The status of worksheet will be DEACTIVATED by default\n * You can change it through passing additionalProps\n * Step 2. Update status of order targets\n * Beacuse its status can be different based on type of worksheet\n * Step 3. Call createWorksheetDetails to create worksheet details\n * Step 4. Call updateRefOrder to change status of reference order\n */\n async generateWorksheet(\n worksheetType: string,\n refOrder: ReferenceOrderType,\n orderTargets: OrderTargetTypes[],\n refOrderStatus: string,\n orderTargetStatus: string,\n additionalProps: Partial<Worksheet> = {}\n ): Promise<Worksheet> {\n const worksheet: Worksheet = await this.createWorksheet(refOrder, worksheetType, additionalProps)\n\n orderTargets.forEach((orderTarget: OrderTargetTypes) => {\n orderTarget.status = orderTargetStatus\n })\n orderTargets = await this.updateOrderTargets(orderTargets)\n\n worksheet.worksheetDetails = await this.createWorksheetDetails(worksheet, worksheetType, orderTargets)\n\n refOrder.status = refOrderStatus\n await this.updateRefOrder(refOrder)\n\n return worksheet\n }\n\n // @chernhaoee I think the naming of this function is not proper. Seems like it should be something like \"updateLoadingWorksheet\" since the logic targets only Loading Order Target\n async updateWorksheet(\n worksheetType: string,\n refOrder: ReferenceOrderType,\n worksheet: Worksheet,\n orderTargets: OrderTargetTypes[],\n refOrderStatus: string,\n orderTargetStatus: string\n ): Promise<Worksheet> {\n let newOrderTarget = []\n\n orderTargets.forEach((orderTarget: OrderTargetTypes) => {\n orderTarget.status = orderTargetStatus\n })\n orderTargets = await this.updateOrderTargets(orderTargets)\n\n for (let orderTarget of orderTargets) {\n try {\n await this.findWorksheetDetail({\n targetInventory: orderTarget.id,\n type: WORKSHEET_TYPE.LOADING\n })\n } catch (e) {\n newOrderTarget.push(orderTarget)\n }\n }\n\n worksheet.worksheetDetails = await this.createWorksheetDetails(worksheet, worksheetType, newOrderTarget)\n\n // find worksheet details that doesnt exist based on order inventory\n //worksheet.worksheetDetails = await this.findWorksheetDetail(worksheet.id)\n\n refOrder.status = refOrderStatus\n await this.updateRefOrder(refOrder)\n\n return worksheet\n }\n\n async generateBatchWorksheet(\n worksheetType: string,\n batchPickingWorksheet: Worksheet,\n orderTargets: OrderTargetTypes[],\n orderTargetStatus: string,\n additionalProps: Partial<Worksheet> = {}\n ): Promise<Worksheet> {\n const worksheet: Worksheet = await this.createBatchWorksheet(\n batchPickingWorksheet.taskNo,\n batchPickingWorksheet.bizplace,\n worksheetType,\n additionalProps\n )\n\n orderTargets.forEach((orderTarget: OrderTargetTypes) => {\n orderTarget.status = orderTargetStatus\n })\n orderTargets = await this.updateOrderTargets(orderTargets)\n\n worksheet.worksheetDetails = await this.createWorksheetDetails(worksheet, worksheetType, orderTargets)\n\n return worksheet\n }\n\n /**\n * @summary Activate worksheet\n * @description It will activate passed worksheet\n * Every passed worksheet and worksheet details should have value on its id field\n * Because this function has logic to update worksheet and worksheet details\n * Step 1. Check whether every passed worksheet and worksheet details has id\n * Step 2. Change worksheet properly and update it\n * Step 3. Change worksheet details properly and update it\n */\n async activateWorksheet(\n worksheet: Worksheet,\n worksheetDetails: WorksheetDetail[],\n changedWorksheetDetails: Partial<WorksheetDetail>[]\n ): Promise<Worksheet> {\n if (!worksheet.id || worksheetDetails.some((wsd: WorksheetDetail) => !wsd.id)) {\n throw new Error(this.ERROR_MSG.UPDATE.ID_NOT_EXISTS)\n }\n\n worksheet.status = WORKSHEET_STATUS.EXECUTING\n worksheet.startedAt = new Date()\n worksheet.updater = this.user\n worksheet = await this.trxMgr.getRepository(Worksheet).save(worksheet)\n\n worksheetDetails = this.renewWorksheetDetails(worksheetDetails, changedWorksheetDetails, 'name', {\n status: WORKSHEET_STATUS.EXECUTING,\n updater: this.user\n })\n worksheet.worksheetDetails = await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetails)\n\n return worksheet\n }\n\n /**\n * @summary Complete worksheet\n * @description It will activate passed worksheet\n * Passed worksheet should have value on its id field\n * Because this function has logic to update worksheet\n * Step 1. Check whether passed worksheet has id\n * Step 2. Change worksheet properly and update it\n * Step 3. Renew worksheet with relations which is needed to complete worksheet\n * Step 4. Change order targets properly and update it based on type of worksheet\n * Step 5. If passed updatedRefOrderStatus has value it update reference order status\n */\n async completeWorksheet(worksheet: Worksheet, updatedRefOrderStatus?: string): Promise<Worksheet> {\n if (!worksheet.id) throw new Error(this.ERROR_MSG.UPDATE.ID_NOT_EXISTS)\n\n worksheet.status = WORKSHEET_STATUS.DONE\n worksheet.endedAt = new Date()\n worksheet.updater = this.user\n worksheet = await this.trxMgr.getRepository(Worksheet).save(worksheet)\n\n const worksheetType: string = worksheet.type\n worksheet = await this.findWorksheet(worksheet, [\n 'worksheetDetails',\n 'worksheetDetails.targetProduct',\n 'worksheetDetails.targetInventory',\n 'worksheetDetails.targetVas'\n ])\n\n let worksheetDetails: WorksheetDetail[] = worksheet.worksheetDetails\n\n worksheetDetails\n .filter((wsd: WorksheetDetail) => wsd.status !== ORDER_INVENTORY_STATUS.REPLACED)\n .forEach((wsd: WorksheetDetail) => {\n wsd.status = WORKSHEET_STATUS.DONE\n wsd.updater = this.user\n })\n await this.trxMgr.getRepository(WorksheetDetail).save(worksheetDetails)\n\n if (worksheetType === WORKSHEET_TYPE.UNLOADING) {\n let targetProducts: OrderProduct[] = worksheet.worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetProduct: OrderProduct = wsd.targetProduct\n targetProduct.status = ORDER_PRODUCT_STATUS.TERMINATED\n targetProduct.updater = this.user\n return targetProduct\n })\n\n await this.updateOrderTargets(targetProducts)\n } else if (worksheetType === WORKSHEET_TYPE.VAS) {\n let targetVASs: OrderVas[] = worksheet.worksheetDetails.map((wsd: WorksheetDetail) => {\n let targetVAS: OrderVas = wsd.targetVas\n targetVAS.status = ORDER_VAS_STATUS.TERMINATED\n targetVAS.updater = this.user\n return targetVAS\n })\n\n await this.updateOrderTargets(targetVASs)\n } else if (\n worksheetType === WORKSHEET_TYPE.PUTAWAY ||\n worksheetType === WORKSHEET_TYPE.PICKING ||\n worksheetType === WORKSHEET_TYPE.PACKING ||\n worksheetType === WORKSHEET_TYPE.LOADING ||\n worksheetType === WORKSHEET_TYPE.WAREHOUSE_RETURN ||\n worksheetType === WORKSHEET_TYPE.UNLOADING_RETURN\n ) {\n let targetInventories: OrderInventory[] = worksheet.worksheetDetails\n .filter((wsd: WorksheetDetail) => wsd.status !== ORDER_INVENTORY_STATUS.REPLACED)\n .map((wsd: WorksheetDetail) => {\n let targetInventory: OrderInventory = wsd.targetInventory\n targetInventory.status = ORDER_INVENTORY_STATUS.TERMINATED\n targetInventory.updater = this.user\n return targetInventory\n })\n\n await this.updateOrderTargets(targetInventories)\n }\n\n if (updatedRefOrderStatus) {\n const refOrder: ReferenceOrderType = await this.extractRefOrderFromWorksheet(worksheet)\n refOrder.status = updatedRefOrderStatus\n refOrder.updater = this.user\n await this.updateRefOrder(refOrder)\n }\n\n return worksheet\n }\n\n /**\n * @summary Renew worksheet details by changed worksheet details\n * @description When you want to merge changed worksheet detail list into original worksheet detail list\n * you can use this function\n * it will loop through whole passed original worksheet details and find out matched changed one by value of 'ID' or its 'name'\n * Because of this, every passed origin worksheet details and changed worksheet details should have one of those values\n */\n renewWorksheetDetails(\n originWSDs: WorksheetDetail[],\n changedWSDs: Partial<WorksheetDetail>[],\n identifier: string,\n additionalProps: Partial<WorksheetDetail> = {}\n ): WorksheetDetail[] {\n if (\n originWSDs.some((wsd: WorksheetDetail) => !wsd[identifier]) ||\n changedWSDs.some((wsd: Partial<WorksheetDetail>) => !wsd[identifier])\n ) {\n throw new Error(\n this.ERROR_MSG.VALIDITY.CANT_PROCEED_STEP_BY(\n 'renew worksheet details',\n `some passed parameter doesn't have identifier (${identifier})`\n )\n )\n }\n\n return originWSDs.map((originWSD: WorksheetDetail) => {\n const changedWSD: Partial<WorksheetDetail> = this.findMatchedWSD(originWSD[identifier], changedWSDs)\n\n return {\n ...originWSD,\n ...changedWSD,\n ...additionalProps\n }\n })\n }\n\n /**\n * @summary Find out matched worksheet detail by identifier\n * @description Find out matched worksheet detail by identifier\n * identifier can be 'ID' or 'name' of worksheet detail\n */\n findMatchedWSD(identifier: string, candidates: any[]): any {\n return candidates.find(\n (candidate: Partial<WorksheetDetail>) => candidate.id === identifier || candidate.name === identifier\n )\n }\n\n /**\n * @summary Valitiy checker\n * @description It will try to check whether passed record has same properties with passed conditions\n * Basically it will check equality of value\n * If you want to check advanced validation you can pass function to customize the logic of validation\n * Passed function will be call with actual value of record as parameter\n */\n checkRecordValidity(record: Record<string, any>, conditions: Record<string, any>): void {\n for (let field in conditions) {\n let isValid: boolean = false\n if (typeof conditions[field] === 'function') {\n isValid = conditions[field](record[field])\n } else {\n isValid = conditions[field] === record[field]\n }\n\n if (!isValid)\n throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE(field, conditions[field], record[field]))\n }\n }\n\n /**\n * @summary Notify to passed users\n * @description Passed notification message will be sent to passed users\n */\n async notifyToUsers(users: User[], message: NotificationMsgInterface): Promise<void> {\n const receivers: any[] = users.map(user => user.id)\n await sendNotification({\n receivers,\n message\n })\n }\n\n /**\n * @summary Notify to office admin\n * @description Passed notification message will be sent to office admin of current domain\n * default role name is defiend as ROLE_NAME.OFFICE_ADMIn by default\n * You can change role name by passing roleName as parameter\n */\n async notifyToOfficeAdmin(message: NotificationMsgInterface, roleName?: string): Promise<void> {\n const users: User[] = await this.trxMgr\n .getRepository('users_roles')\n .createQueryBuilder('ur')\n .select('ur.users_id', 'id')\n .where(qb => {\n const subQuery = qb\n .subQuery()\n .select('role.id')\n .from(Role, 'role')\n .where('role.name = :roleName', { roleName: roleName || this.ROLE_NAMES.OFFICE_ADMIN })\n .andWhere('role.domain_id = :domainId', { domainId: this.domain.id })\n .getQuery()\n return 'ur.roles_id IN ' + subQuery\n })\n .getRawMany()\n\n this.notifyToUsers(users, message)\n }\n\n /**\n * @summary Notify to customer of passed bizplace\n * @description Passed notification message will be sent to customer of passed bizplace\n */\n async notifyToCustomer(bizplace: Bizplace, message: NotificationMsgInterface): Promise<void> {\n const users: any[] = await getDomainUsers(bizplace, this.trxMgr)\n\n this.notifyToUsers(users, message)\n }\n\n /**\n * @summary extract out referenc order from given worksheet\n * @description If it doesn't have any reference order\n * find worksheet with every possible reference order once again\n * and extract out reference order from found worksheet\n */\n async extractRefOrderFromWorksheet(worksheet: Worksheet): Promise<ReferenceOrderType> {\n let refOrder: ReferenceOrderType =\n worksheet.arrivalNotice ||\n worksheet.releaseGood ||\n worksheet.vasOrder ||\n worksheet.inventoryCheck ||\n worksheet.returnOrder ||\n null\n if (!refOrder) {\n const wsWithRefOrd: Worksheet = await this.trxMgr.getRepository(Worksheet).findOne(worksheet.id, {\n relations: ['arrivalNotice', 'releaseGood', 'vasOrder', 'inventoryCheck', 'returnOrder']\n })\n\n refOrder =\n wsWithRefOrd.arrivalNotice ||\n wsWithRefOrd.releaseGood ||\n wsWithRefOrd.vasOrder ||\n wsWithRefOrd.inventoryCheck ||\n wsWithRefOrd.returnOrder ||\n null\n if (!refOrder) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheet.id))\n }\n\n return refOrder\n }\n\n /**\n * @summary extract out reference orders from given merged order worksheet\n * @description If it doesn't have any reference order\n * find worksheet with every possible reference order once again\n * and extract out reference order from found worksheet\n */\n async extractMultipleRefOrderFromWorksheet(worksheet: Worksheet): Promise<ReferenceOrderType> {\n const wsdWithRefOrd: WorksheetDetail[] = await this.trxMgr.getRepository(WorksheetDetail).find({\n where: { domain: this.domain, worksheet },\n relations: ['targetInventory', 'targetInventory.releaseGood']\n })\n\n let refOrder: ReferenceOrderType[] = wsdWithRefOrd.map((ord: WorksheetDetail) => ord.targetInventory.releaseGood)\n\n if (!refOrder) throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheet.id))\n\n return refOrder\n }\n\n /**\n * @summary Check whether passed pallet is existing alreay\n * @description It will try to count inventories which has same domain and same pallet Id and not terminated one\n * If there's positive result it will throw an error cause pallet is duplicated\n */\n async checkPalletDuplication(palletId: string): Promise<void> {\n const duplicatedPalletCnt: number = await this.trxMgr.getRepository(Inventory).count({\n domain: this.domain,\n palletId,\n status: Not(Equal(INVENTORY_STATUS.TERMINATED))\n })\n\n if (duplicatedPalletCnt) throw new Error(this.ERROR_MSG.VALIDITY.DUPLICATED('Pallet ID', palletId))\n\n const duplicatedReusablePalletCnt: number = await this.trxMgr.getRepository(Pallet).count({\n where: {\n domain: this.domain,\n name: palletId\n }\n })\n\n if (duplicatedReusablePalletCnt) throw new Error(this.ERROR_MSG.VALIDITY.DUPLICATED('Pallet ID', palletId))\n }\n\n /**\n * @summary Check whether passed carton is existing alreay\n * @description It will try to count inventories which has same domain and same carton Id and not terminated one\n * If there's positive result it will throw an error cause carton is duplicated\n */\n async checkCartonDuplication(cartonId: string, orderId: string): Promise<void> {\n const duplicatedCartonCnt: number = await this.trxMgr.getRepository(Inventory).count({\n domain: this.domain,\n cartonId,\n refOrderId: Not(Equal(orderId)),\n status: Not(Equal(INVENTORY_STATUS.TERMINATED))\n })\n\n if (duplicatedCartonCnt) throw new Error(this.ERROR_MSG.VALIDITY.DUPLICATED('Carton ID', cartonId))\n }\n\n /**\n * @summary Check whether passed serial number is existing already\n * @description It will try to count inventories which has same domain and same serial number and and not terminated one\n * If there's positive result it will throw an error cause serial number is duplicated\n */\n async checkSerialNumberDuplication(serialNumber: string, product: Product): Promise<void> {\n const duplicatedSerialNumberCnt: number = await this.trxMgr.getRepository(InventoryItem).count({\n domain: this.domain,\n product,\n serialNumber,\n status: Not(Equal(INVENTORY_STATUS.DELETED))\n })\n\n if (duplicatedSerialNumberCnt) throw new Error(this.ERROR_MSG.VALIDITY.DUPLICATED('Serial Number', serialNumber))\n }\n\n /**\n * @summary Check for product child qty at any scanned level\n * @description It will check every level of product detail by comparing scanned level and GAN registered level.\n * By getting the level that has relation, child qty will be retrieved\n * 1st level: PALLET -> 2 CARTONS (scan), 2nd level: CARTON -> 6 BAGS, 3rd level: BAG -> 10 UNITS, lowest: UNIT (order registered packing type)\n */\n async getChildQty(\n productDetails: ProductDetail[],\n productBarcode: string,\n orderProductDetail: ProductDetail\n ): Promise<number> {\n const scannedProductDetail: ProductDetail = productDetails.find(\n (productDetail: ProductDetail) => productDetail.gtin === productBarcode\n )\n let hasChildRelation: boolean = Boolean(scannedProductDetail?.childProductDetail)\n let hasMatchingChild: boolean\n let childQty: number\n let currentProductDetail: ProductDetail\n\n if (hasChildRelation) {\n hasMatchingChild = Boolean(orderProductDetail.id === scannedProductDetail.childProductDetail.id)\n currentProductDetail = productDetails.find(\n (productDetail: ProductDetail) => productDetail.id === scannedProductDetail.childProductDetail.id\n )\n if (!currentProductDetail)\n throw new Error(this.ERROR_MSG.FIND.NOT_MATCH('inner pack', `GTIN (${productBarcode})`))\n childQty = scannedProductDetail.packingSize\n } else {\n throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))\n }\n\n if (hasMatchingChild) {\n childQty = scannedProductDetail.packingSize\n } else {\n while (hasChildRelation && !hasMatchingChild) {\n hasChildRelation = Boolean(currentProductDetail?.childProductDetail)\n\n if (hasChildRelation)\n hasMatchingChild = Boolean(orderProductDetail.id === currentProductDetail.childProductDetail.id)\n\n if (hasMatchingChild) {\n childQty = currentProductDetail.packingSize * childQty\n } else if (!hasMatchingChild && hasChildRelation) {\n childQty = currentProductDetail.packingSize * childQty\n currentProductDetail = productDetails.find(\n (productDetail: ProductDetail) => productDetail.id === currentProductDetail.childProductDetail.id\n )\n } else if (!hasChildRelation && !hasMatchingChild) {\n throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode))\n }\n }\n }\n\n return childQty\n }\n\n /**\n * @summary Check for product child qty at any scanned level\n * @description It will check every level of product detail by comparing scanned level and GAN registered level.\n * By getting the level that has relation, child qty will be retrieved\n * 1st level: PALLET -> 2 CARTONS (scan), 2nd level: CARTON -> 6 BAGS, 3rd level: BAG -> 10 UNITS, lowest: UNIT (order registered packing type)\n */\n async getChildPackingSize(\n productDetails: ProductDetail[],\n defaultProductDetail: ProductDetail,\n unmatchingProductDetail: ProductDetail\n ): Promise<number> {\n let hasChildRelation: boolean = Boolean(unmatchingProductDetail?.childProductDetail)\n let hasMatchingChild: boolean\n let packingSize: number = 1\n let currentChildProductDetail: ProductDetail\n\n if (hasChildRelation) {\n currentChildProductDetail = productDetails.find(\n (productDetail: ProductDetail) => productDetail.id === unmatchingProductDetail.childProductDetail.id\n )\n\n if (!currentChildProductDetail) {\n throw new Error(this.ERROR_MSG.FIND.NOT_MATCH('packing type', `GTIN (${unmatchingProductDetail.gtin})`))\n }\n\n hasMatchingChild = Boolean(defaultProductDetail.id === currentChildProductDetail.id)\n if (hasMatchingChild) {\n packingSize = unmatchingProductDetail.packingSize\n } else {\n packingSize = unmatchingProductDetail.packingSize * packingSize\n }\n } else {\n throw new Error(this.ERROR_MSG.FIND.NO_CHILD_RESULT(`${unmatchingProductDetail.gtin}`))\n }\n\n while (hasChildRelation && !hasMatchingChild) {\n if (hasMatchingChild) {\n packingSize = currentChildProductDetail.packingSize * packingSize // 12 x 10\n } else if (!hasMatchingChild && hasChildRelation) {\n packingSize = currentChildProductDetail.packingSize * packingSize // 12 x 10\n currentChildProductDetail = productDetails.find(\n (productDetail: ProductDetail) => productDetail.id === currentChildProductDetail.childProductDetail.id\n )\n\n hasChildRelation = Boolean(currentChildProductDetail?.childProductDetail)\n hasMatchingChild = Boolean(defaultProductDetail.id === currentChildProductDetail.id)\n } else if (!hasChildRelation && !hasMatchingChild) {\n throw new Error(this.ERROR_MSG.FIND.NO_RESULT(unmatchingProductDetail.gtin))\n }\n }\n\n return packingSize\n }\n\n async createInventory(inventory: Partial<Inventory> | Partial<Inventory>[]): Promise<Inventory | Inventory[]> {\n inventory = this.setStamp(inventory)\n return await this.trxMgr.getRepository(Inventory).save(inventory)\n }\n\n /**\n * @summary Update inventory record\n * @description It will update inventory after set a stamp (domain, updater)\n * The special point of this function is that this changes won't generate inventory history\n * If you want to generate inventory history automatically you would better to use transactionInventory function\n */\n async updateInventory(inventory: Partial<Inventory> | Partial<Inventory>[]): Promise<Inventory | Inventory[]> {\n if (!inventory.id) throw new Error(this.ERROR_MSG.UPDATE.ID_NOT_EXISTS)\n inventory = this.setStamp(inventory)\n return await this.trxMgr.getRepository(Inventory).save(inventory)\n }\n\n /**\n * @summary Do transaction on inventory record\n * @description It will update inventory after set a temp (domain, updater)\n * and then generate inventory history based on current changes\n */\n async transactionInventory(\n inventory: Partial<Inventory>,\n referencOrder: ReferenceOrderType,\n changedQty: number,\n changedWeight: number,\n transactionType: string\n ): Promise<Inventory> {\n if (inventory.id) {\n inventory = await this.updateInventory(inventory)\n } else {\n inventory = await this.createInventory(inventory)\n }\n\n await generateInventoryHistory(\n inventory,\n referencOrder,\n transactionType,\n changedQty,\n changedWeight,\n this.user,\n this.trxMgr\n )\n\n return inventory\n }\n\n /**\n * @summary set common stamp like domain, creator, updater\n * @description Set common stamp to passed record\n * If it doesn't have id it will handle it as creating one\n * If it has id it will handle it as updating one\n */\n setStamp(record: Record<string, any>): Record<string, any> {\n if (!record.domain) record.domain = this.domain\n if (!record.id && !record.creator) record.creator = this.user\n if (!record.updater) record.updater = this.user\n\n return record\n }\n\n /**\n * @summary Extract bizplace from reference order\n * @description It will find reference order with bizplace and return only bizplace to extract it out\n */\n async extractBizplaceFromRefOrder(refOrder: ReferenceOrderType, entitySchema?: EntitySchema): Promise<Bizplace> {\n if (!entitySchema) {\n if (refOrder instanceof ArrivalNotice) {\n entitySchema = ArrivalNotice\n } else if (refOrder instanceof ReleaseGood) {\n entitySchema = ReleaseGood\n } else if (refOrder instanceof VasOrder) {\n entitySchema = VasOrder\n } else if (refOrder instanceof InventoryCheck) {\n entitySchema = InventoryCheck\n } else if (refOrder instanceof ReturnOrder) {\n entitySchema = ReturnOrder\n }\n }\n\n const { bizplace }: { bizplace: Bizplace } = await this.findRefOrder(entitySchema, refOrder, ['bizplace'])\n return bizplace\n }\n\n tidyConditions(record: Record<string, any>): Record<string, any> {\n if ('id' in record) {\n return { id: record.id }\n } else {\n Object.keys(record).forEach((key: string) => {\n if (record[key] === null || record[key] instanceof Date || Array.isArray(record[key])) delete record[key]\n })\n }\n\n return record\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/entities/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAO9B,0FAPA,qBAAS,OAOA;AANlB,yDAAoD;AAMhC,gGANX,kCAAe,OAMW;AALnC,6DAAwD;AAKnB,kGAL5B,sCAAiB,OAK4B;AAJtD,+FAAwF;AAE3E,QAAA,QAAQ,GAAG,CAAC,qBAAS,EAAE,kCAAe,EAAE,sCAAiB,EAAE,sEAAgC,CAAC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../server/entities/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAO9B,0FAPA,qBAAS,OAOA;AANlB,yDAAoD;AAMhC,gGANX,kCAAe,OAMW;AALnC,6DAAwD;AAKnB,kGAL5B,sCAAiB,OAK4B;AAJtD,+FAAwF;AAE3E,QAAA,QAAQ,GAAG,CAAC,qBAAS,EAAE,kCAAe,EAAE,sCAAiB,EAAE,sEAAgC,CAAC,CAAA","sourcesContent":["import { Worksheet } from './worksheet'\nimport { WorksheetDetail } from './worksheet-detail'\nimport { WorksheetMovement } from './worksheet-movement'\nimport { WarehouseBizplaceOnhandInventory } from './warehouse-bizplace-onhand-inventory'\n\nexport const entities = [Worksheet, WorksheetDetail, WorksheetMovement, WarehouseBizplaceOnhandInventory]\n\nexport { Worksheet, WorksheetDetail, WorksheetMovement }\n"]}
@@ -1,67 +1,59 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.WarehouseBizplaceOnhandInventory = void 0;
4
+ const tslib_1 = require("tslib");
13
5
  const typeorm_1 = require("typeorm");
14
6
  let WarehouseBizplaceOnhandInventory = class WarehouseBizplaceOnhandInventory {
15
7
  };
16
- __decorate([
8
+ tslib_1.__decorate([
17
9
  (0, typeorm_1.ViewColumn)(),
18
- __metadata("design:type", String)
10
+ tslib_1.__metadata("design:type", String)
19
11
  ], WarehouseBizplaceOnhandInventory.prototype, "domainName", void 0);
20
- __decorate([
12
+ tslib_1.__decorate([
21
13
  (0, typeorm_1.ViewColumn)(),
22
- __metadata("design:type", String)
14
+ tslib_1.__metadata("design:type", String)
23
15
  ], WarehouseBizplaceOnhandInventory.prototype, "bizplaceName", void 0);
24
- __decorate([
16
+ tslib_1.__decorate([
25
17
  (0, typeorm_1.ViewColumn)(),
26
- __metadata("design:type", String)
18
+ tslib_1.__metadata("design:type", String)
27
19
  ], WarehouseBizplaceOnhandInventory.prototype, "domainId", void 0);
28
- __decorate([
20
+ tslib_1.__decorate([
29
21
  (0, typeorm_1.ViewColumn)(),
30
- __metadata("design:type", String)
22
+ tslib_1.__metadata("design:type", String)
31
23
  ], WarehouseBizplaceOnhandInventory.prototype, "bizplaceId", void 0);
32
- __decorate([
24
+ tslib_1.__decorate([
33
25
  (0, typeorm_1.ViewColumn)(),
34
- __metadata("design:type", String)
26
+ tslib_1.__metadata("design:type", String)
35
27
  ], WarehouseBizplaceOnhandInventory.prototype, "packingType", void 0);
36
- __decorate([
28
+ tslib_1.__decorate([
37
29
  (0, typeorm_1.ViewColumn)(),
38
- __metadata("design:type", Number)
30
+ tslib_1.__metadata("design:type", Number)
39
31
  ], WarehouseBizplaceOnhandInventory.prototype, "packingSize", void 0);
40
- __decorate([
32
+ tslib_1.__decorate([
41
33
  (0, typeorm_1.ViewColumn)(),
42
- __metadata("design:type", String)
34
+ tslib_1.__metadata("design:type", String)
43
35
  ], WarehouseBizplaceOnhandInventory.prototype, "uom", void 0);
44
- __decorate([
36
+ tslib_1.__decorate([
45
37
  (0, typeorm_1.ViewColumn)(),
46
- __metadata("design:type", String)
38
+ tslib_1.__metadata("design:type", String)
47
39
  ], WarehouseBizplaceOnhandInventory.prototype, "productId", void 0);
48
- __decorate([
40
+ tslib_1.__decorate([
49
41
  (0, typeorm_1.ViewColumn)(),
50
- __metadata("design:type", String)
42
+ tslib_1.__metadata("design:type", String)
51
43
  ], WarehouseBizplaceOnhandInventory.prototype, "productBundleId", void 0);
52
- __decorate([
44
+ tslib_1.__decorate([
53
45
  (0, typeorm_1.ViewColumn)(),
54
- __metadata("design:type", Number)
46
+ tslib_1.__metadata("design:type", Number)
55
47
  ], WarehouseBizplaceOnhandInventory.prototype, "remainQty", void 0);
56
- __decorate([
48
+ tslib_1.__decorate([
57
49
  (0, typeorm_1.ViewColumn)(),
58
- __metadata("design:type", Number)
50
+ tslib_1.__metadata("design:type", Number)
59
51
  ], WarehouseBizplaceOnhandInventory.prototype, "remainUomValue", void 0);
60
- __decorate([
52
+ tslib_1.__decorate([
61
53
  (0, typeorm_1.ViewColumn)(),
62
- __metadata("design:type", String)
54
+ tslib_1.__metadata("design:type", String)
63
55
  ], WarehouseBizplaceOnhandInventory.prototype, "groupType", void 0);
64
- WarehouseBizplaceOnhandInventory = __decorate([
56
+ WarehouseBizplaceOnhandInventory = tslib_1.__decorate([
65
57
  (0, typeorm_1.ViewEntity)({
66
58
  expression: `
67
59
  select d.name as "domainName", b.name as "bizplaceName", src.* from (
@@ -1 +1 @@
1
- {"version":3,"file":"warehouse-bizplace-onhand-inventory.js","sourceRoot":"","sources":["../../server/entities/warehouse-bizplace-onhand-inventory.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qCAAgD;AA8GhD,IAAa,gCAAgC,GAA7C,MAAa,gCAAgC;CAoC5C,CAAA;AAlCC;IADC,IAAA,oBAAU,GAAE;;oEACK;AAGlB;IADC,IAAA,oBAAU,GAAE;;sEACO;AAGpB;IADC,IAAA,oBAAU,GAAE;;kEACG;AAGhB;IADC,IAAA,oBAAU,GAAE;;oEACK;AAGlB;IADC,IAAA,oBAAU,GAAE;;qEACM;AAGnB;IADC,IAAA,oBAAU,GAAE;;qEACM;AAGnB;IADC,IAAA,oBAAU,GAAE;;6DACF;AAGX;IADC,IAAA,oBAAU,GAAE;;mEACI;AAGjB;IADC,IAAA,oBAAU,GAAE;;yEACU;AAGvB;IADC,IAAA,oBAAU,GAAE;;mEACI;AAGjB;IADC,IAAA,oBAAU,GAAE;;wEACS;AAGtB;IADC,IAAA,oBAAU,GAAE;;mEACI;AAnCN,gCAAgC;IA5G5C,IAAA,oBAAU,EAAC;QACV,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwGX;KACF,CAAC;GAEW,gCAAgC,CAoC5C;AApCY,4EAAgC"}
1
+ {"version":3,"file":"warehouse-bizplace-onhand-inventory.js","sourceRoot":"","sources":["../../server/entities/warehouse-bizplace-onhand-inventory.ts"],"names":[],"mappings":";;;;AAAA,qCAAgD;AA8GhD,IAAa,gCAAgC,GAA7C,MAAa,gCAAgC;CAoC5C,CAAA;AAlCC;IADC,IAAA,oBAAU,GAAE;;oEACK;AAGlB;IADC,IAAA,oBAAU,GAAE;;sEACO;AAGpB;IADC,IAAA,oBAAU,GAAE;;kEACG;AAGhB;IADC,IAAA,oBAAU,GAAE;;oEACK;AAGlB;IADC,IAAA,oBAAU,GAAE;;qEACM;AAGnB;IADC,IAAA,oBAAU,GAAE;;qEACM;AAGnB;IADC,IAAA,oBAAU,GAAE;;6DACF;AAGX;IADC,IAAA,oBAAU,GAAE;;mEACI;AAGjB;IADC,IAAA,oBAAU,GAAE;;yEACU;AAGvB;IADC,IAAA,oBAAU,GAAE;;mEACI;AAGjB;IADC,IAAA,oBAAU,GAAE;;wEACS;AAGtB;IADC,IAAA,oBAAU,GAAE;;mEACI;AAnCN,gCAAgC;IA5G5C,IAAA,oBAAU,EAAC;QACV,UAAU,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwGX;KACF,CAAC;GAEW,gCAAgC,CAoC5C;AApCY,4EAAgC","sourcesContent":["import { ViewColumn, ViewEntity } from 'typeorm'\n\n@ViewEntity({\n expression: ` \n select d.name as \"domainName\", b.name as \"bizplaceName\", src.* from (\n WITH oi as (\n select\n oi.domain_id,\n oi.bizplace_id,\n SUM(oi.release_qty) AS release_qty,\n SUM(oi.release_uom_value) AS release_uom_value,\n oi.batch_id,\n oi.batch_id_ref,\n oi.product_id,\n oi.packing_type,\n oi.packing_size,\n oi.uom\n FROM\n order_inventories oi\n WHERE\n (oi.status = 'PENDING' or oi.status = 'PENDING_RECEIVE' or oi.status = 'PENDING_WORKSHEET' or oi.status = 'PENDING_SPLIT')\n AND oi.batch_id NOTNULL\n AND oi.product_id NOTNULL\n AND oi.packing_type NOTNULL\n AND oi.packing_size NOTNULL\n AND oi.inventory_id IS NULL\n GROUP BY\n oi.domain_id,\n oi.bizplace_id,\n oi.batch_id,\n oi.batch_id_ref,\n oi.product_id,\n oi.packing_type,\n oi.packing_size,\n oi.uom\n ) \n -- SINGLE ITEM INVENTORY QUERY\n select\n i.domain_id as \"domainId\",\n i.bizplace_id as \"bizplaceId\",\n i.packing_type as \"packingType\",\n i.packing_size as \"packingSize\",\n i.uom,\n i.product_id as \"productId\",\n null as \"productBundleId\",\n COALESCE(SUM(COALESCE(i.qty, 0)) - SUM(COALESCE(i.locked_qty, 0)) - MAX(COALESCE(oi.release_qty, 0))) AS \"remainQty\",\n COALESCE(SUM(COALESCE(i.uom_value, 0)) - SUM(COALESCE(i.locked_uom_value, 0)) - MAX(COALESCE(oi.release_uom_value, 0)), 0) AS \"remainUomValue\",\n COALESCE(sum(COALESCE(i.qty, 0::double precision))) AS \"qty\",\n COALESCE(sum(COALESCE(i.uom_value, 0::double precision))) AS \"uomValue\",\n 'SINGLE' AS \"groupType\"\n FROM inventories i\n INNER JOIN locations l2 ON i.location_id = l2.id AND i.domain_id = l2.domain_id AND l2.type NOT IN ('QUARANTINE', 'RESERVE')\n LEFT JOIN oi ON i.batch_id = oi.batch_id AND i.product_id = oi.product_id AND i.packing_type = oi.packing_type AND i.packing_size = oi.packing_size AND i.uom = oi.uom\n WHERE i.status = 'STORED'\n GROUP by\n i.domain_id,\n i.bizplace_id,\n i.product_id,\n i.packing_type,\n i.packing_size,\n i.uom\n union all\n -- BUNDLE ITEM INVENTORY QUERY\n SELECT \n pbs.domain_id as \"domainId\",\n pbs.bizplace_id as \"bizplaceId\",\n pb.packing_type as \"packingType\", \n pb.packing_size as \"packingSize\",\n 'UNIT' AS \"uom\", \n null as \"productId\",\n pb.id AS \"productBundleId\",\n COALESCE(MIN(FLOOR(pbs.\"availableQty\")),0) AS \"remainQty\", \n COALESCE(MIN(FLOOR(pbs.\"availableUomValue\")),0) AS \"remainUomValue\",\n COALESCE(MIN(FLOOR(pbs.\"qty\")), 0::double precision) AS \"qty\",\n COALESCE(MIN(FLOOR(pbs.\"uomValue\")), 0::double precision) AS \"uomValue\",\n 'BUNDLE' AS \"groupType\"\n FROM product_bundles pb\n INNER JOIN (\n SELECT i.domain_id, i.bizplace_id, pbs.product_id, pbs.product_bundle_id, min(pbs.bundle_qty),\n (SUM(COALESCE(i.qty, 0)) - SUM(COALESCE(i.locked_qty, 0)) - MAX(COALESCE(oi.release_qty, 0))) / min(pbs.bundle_qty) AS \"availableQty\",\n (SUM(COALESCE(i.uom_value, 0)) - SUM(COALESCE(i.locked_uom_value, 0)) - MAX(COALESCE(oi.release_uom_value, 0))) / min(pbs.bundle_qty) AS \"availableUomValue\",\n (sum(COALESCE(i.qty, 0::double precision))) / min(pbs.bundle_qty)::double precision AS \"qty\",\n (sum(COALESCE(i.uom_value, 0::double precision))) / min(pbs.bundle_qty)::double precision AS \"uomValue\"\n FROM product_bundle_settings pbs \n LEFT JOIN inventories i ON i.product_id = pbs.product_id AND i.status = 'STORED'\n INNER JOIN locations l ON i.location_id = l.id AND i.domain_id = l.domain_id AND l.type NOT IN ('QUARANTINE', 'RESERVE') \n LEFT JOIN oi ON oi.product_id = i.product_id\n GROUP by\n i.domain_id, \n i.bizplace_id,\n pbs.product_id, \n pbs.product_bundle_id\n ) pbs ON pbs.product_bundle_id = pb.id\n GROUP BY \n pbs.domain_id,\n pbs.bizplace_id,\n pb.packing_type, \n pb.packing_size, \n pb.name, \n pb.sku, \n pb.id\n )\n AS src \n inner join domains d on d.id = src.\"domainId\"\n inner join bizplaces b on b.id = src.\"bizplaceId\"\n where src.\"remainQty\" > 0\n order by src.\"domainId\"\n `\n})\n\nexport class WarehouseBizplaceOnhandInventory {\n @ViewColumn()\n domainName: string\n\n @ViewColumn()\n bizplaceName: string\n\n @ViewColumn()\n domainId: string\n\n @ViewColumn()\n bizplaceId: string\n\n @ViewColumn()\n packingType: string\n\n @ViewColumn()\n packingSize: number\n\n @ViewColumn()\n uom: string\n\n @ViewColumn()\n productId: string\n\n @ViewColumn()\n productBundleId: string\n\n @ViewColumn()\n remainQty: number\n\n @ViewColumn()\n remainUomValue: number\n\n @ViewColumn()\n groupType: string\n}\n"]}