@things-factory/worksheet-base 4.3.651 → 4.3.653
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.
- package/dist-server/constants/index.js +22 -0
- package/dist-server/constants/index.js.map +1 -0
- package/dist-server/constants/rule-type.js +8 -0
- package/dist-server/constants/rule-type.js.map +1 -0
- package/dist-server/constants/target-type.js +10 -0
- package/dist-server/constants/target-type.js.map +1 -0
- package/dist-server/constants/template.js +17 -0
- package/dist-server/constants/template.js.map +1 -0
- package/dist-server/constants/transaction-type.js +13 -0
- package/dist-server/constants/transaction-type.js.map +1 -0
- package/dist-server/constants/worksheet.js +44 -0
- package/dist-server/constants/worksheet.js.map +1 -0
- package/dist-server/controllers/ecommerce/ecommerce-controller.js +252 -0
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -0
- package/dist-server/controllers/ecommerce/index.js +19 -0
- package/dist-server/controllers/ecommerce/index.js.map +1 -0
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +458 -0
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
- package/dist-server/controllers/inbound/index.js +21 -0
- package/dist-server/controllers/inbound/index.js.map +1 -0
- package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +353 -0
- package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/inbound/putaway-worksheet-controller.js +444 -0
- package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +189 -0
- package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +1056 -0
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/index.js +37 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +1039 -0
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/inspect/index.js +18 -0
- package/dist-server/controllers/inspect/index.js.map +1 -0
- package/dist-server/controllers/outbound/index.js +31 -0
- package/dist-server/controllers/outbound/index.js.map +1 -0
- package/dist-server/controllers/outbound/loading-worksheet-controller.js +304 -0
- package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +573 -0
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +2489 -0
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/outbound/returning-worksheet-controller.js +171 -0
- package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js +539 -0
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/pos/index.js +18 -0
- package/dist-server/controllers/pos/index.js.map +1 -0
- package/dist-server/controllers/pos/xilnex-controller.js +188 -0
- package/dist-server/controllers/pos/xilnex-controller.js.map +1 -0
- package/dist-server/controllers/render-elccl-grn.js +194 -0
- package/dist-server/controllers/render-elccl-grn.js.map +1 -0
- package/dist-server/controllers/render-fm-grn.js +229 -0
- package/dist-server/controllers/render-fm-grn.js.map +1 -0
- package/dist-server/controllers/render-grn.js +240 -0
- package/dist-server/controllers/render-grn.js.map +1 -0
- package/dist-server/controllers/render-invoices.js +187 -0
- package/dist-server/controllers/render-invoices.js.map +1 -0
- package/dist-server/controllers/render-job-sheet.js +184 -0
- package/dist-server/controllers/render-job-sheet.js.map +1 -0
- package/dist-server/controllers/render-kimeda-grn.js +152 -0
- package/dist-server/controllers/render-kimeda-grn.js.map +1 -0
- package/dist-server/controllers/render-manifest.js +76 -0
- package/dist-server/controllers/render-manifest.js.map +1 -0
- package/dist-server/controllers/render-manual-do.js +204 -0
- package/dist-server/controllers/render-manual-do.js.map +1 -0
- package/dist-server/controllers/render-orientage-do.js +325 -0
- package/dist-server/controllers/render-orientage-do.js.map +1 -0
- package/dist-server/controllers/render-orientage-grn.js +158 -0
- package/dist-server/controllers/render-orientage-grn.js.map +1 -0
- package/dist-server/controllers/render-po.js +157 -0
- package/dist-server/controllers/render-po.js.map +1 -0
- package/dist-server/controllers/render-ro-do.js +393 -0
- package/dist-server/controllers/render-ro-do.js.map +1 -0
- package/dist-server/controllers/render-seebuu-grn.js +177 -0
- package/dist-server/controllers/render-seebuu-grn.js.map +1 -0
- package/dist-server/controllers/replenishment/index.js +18 -0
- package/dist-server/controllers/replenishment/index.js.map +1 -0
- package/dist-server/controllers/replenishment/replenishment-worksheet-controller.js +483 -0
- package/dist-server/controllers/replenishment/replenishment-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/vas/index.js +18 -0
- package/dist-server/controllers/vas/index.js.map +1 -0
- package/dist-server/controllers/vas/vas-worksheet-controller.js +792 -0
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -0
- package/dist-server/controllers/worksheet-controller.js +1049 -0
- package/dist-server/controllers/worksheet-controller.js.map +1 -0
- package/dist-server/entities/active-worksheet-picking-view.js +164 -0
- package/dist-server/entities/active-worksheet-picking-view.js.map +1 -0
- package/dist-server/entities/index.js +24 -0
- package/dist-server/entities/index.js.map +1 -0
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +171 -0
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -0
- package/dist-server/entities/warehouse-inventory-assignment-ranking.js +39 -0
- package/dist-server/entities/warehouse-inventory-assignment-ranking.js.map +1 -0
- package/dist-server/entities/worksheet-detail.js +136 -0
- package/dist-server/entities/worksheet-detail.js.map +1 -0
- package/dist-server/entities/worksheet-movement.js +58 -0
- package/dist-server/entities/worksheet-movement.js.map +1 -0
- package/dist-server/entities/worksheet.js +140 -0
- package/dist-server/entities/worksheet.js.map +1 -0
- package/dist-server/graphql/index.js +33 -0
- package/dist-server/graphql/index.js.map +1 -0
- package/dist-server/graphql/resolvers/index.js +33 -0
- package/dist-server/graphql/resolvers/index.js.map +1 -0
- package/dist-server/graphql/resolvers/pallet/index.js +7 -0
- package/dist-server/graphql/resolvers/pallet/index.js.map +1 -0
- package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +53 -0
- package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +138 -0
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/cancel-arrival-notice.js +55 -0
- package/dist-server/graphql/resolvers/worksheet/cancel-arrival-notice.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/cancel-replenishment.js +57 -0
- package/dist-server/graphql/resolvers/worksheet/cancel-replenishment.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js +29 -0
- package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js +63 -0
- package/dist-server/graphql/resolvers/worksheet/check-stock-take-current-location.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js +249 -0
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/create-worksheet.js +11 -0
- package/dist-server/graphql/resolvers/worksheet/create-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +131 -0
- package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +255 -0
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet-for-carton.js +130 -0
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet-for-carton.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet-for-pallet.js +133 -0
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet-for-pallet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js +18 -0
- package/dist-server/graphql/resolvers/worksheet/delete-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js +102 -0
- package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js +169 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-delivery-order-ro.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-powrup-document.js +60 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-powrup-document.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js +60 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-webspert-document.js +49 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-webspert-document.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js +34 -0
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js +28 -0
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js +140 -0
- package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js +45 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet-carton.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet-carton.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js +48 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js +57 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js +42 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +495 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-replenishement-worksheet.js +19 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-replenishement-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js +28 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js +22 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/get-packing-list.js +80 -0
- package/dist-server/graphql/resolvers/worksheet/get-packing-list.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/having-vas.js +43 -0
- package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/index.js +75 -0
- package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-inventory.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-inventory.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-inventory-carton.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-inventory-carton.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-inventory.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-inventory.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js +28 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/index.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting-carton.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting-carton.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting-pallet.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting-pallet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-inventory-carton.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-inventory-carton.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-inventory.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-inventory.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection-carton.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection-carton.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +137 -0
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js +41 -0
- package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js +59 -0
- package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +138 -0
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/loading/index.js +9 -0
- package/dist-server/graphql/resolvers/worksheet/loading/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/loading/loading.js +25 -0
- package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +179 -0
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +48 -0
- package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +30 -0
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +53 -0
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/packing/index.js +10 -0
- package/dist-server/graphql/resolvers/worksheet/packing/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js +51 -0
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +29 -0
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +619 -0
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +122 -0
- package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +163 -0
- package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js +103 -0
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +81 -0
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js +31 -0
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/bulk-activate-picking.js +75 -0
- package/dist-server/graphql/resolvers/worksheet/picking/bulk-activate-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +273 -0
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +432 -0
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js +110 -0
- package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/index.js +21 -0
- package/dist-server/graphql/resolvers/worksheet/picking/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js +22 -0
- package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +62 -0
- package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/picking.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/picking/picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/replenishment-picking.js +12 -0
- package/dist-server/graphql/resolvers/worksheet/picking/replenishment-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js +13 -0
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +193 -0
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +162 -0
- package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js +41 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +88 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-replenishment-putaway.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-replenishment-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/index.js +12 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/putaway.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/replenishment-putaway.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/replenishment-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/undo-replenishment-putaway.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/putaway/undo-replenishment-putaway.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-replenishment-worksheet.js +87 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-replenishment-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js +41 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js +67 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/index.js +9 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +73 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +141 -0
- package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +157 -0
- package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/refresh-active-worksheet-picking-views.js +11 -0
- package/dist-server/graphql/resolvers/worksheet/refresh-active-worksheet-picking-views.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +164 -0
- package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js +41 -0
- package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +91 -0
- package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/replenishment/activate-picking-replenishment.js +17 -0
- package/dist-server/graphql/resolvers/worksheet/replenishment/activate-picking-replenishment.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/replenishment/index.js +6 -0
- package/dist-server/graphql/resolvers/worksheet/replenishment/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +63 -0
- package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/returning/activate-return.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/returning/activate-return.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js +29 -0
- package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/returning/index.js +8 -0
- package/dist-server/graphql/resolvers/worksheet/returning/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/returning/returning.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/returning/returning.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js +28 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/index.js +10 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +89 -0
- package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/transfer.js +88 -0
- package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js +45 -0
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +69 -0
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js +38 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.js +32 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +70 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/index.js +14 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/unload.js +19 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +57 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return/index.js +8 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js +67 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +102 -0
- package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/update-worksheet.js +20 -0
- package/dist-server/graphql/resolvers/worksheet/update-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas/activate-vas.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/vas/activate-vas.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js +99 -0
- package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.js +22 -0
- package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas/index.js +11 -0
- package/dist-server/graphql/resolvers/worksheet/vas/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.js +16 -0
- package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-candidates.js +123 -0
- package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +36 -0
- package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +729 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js +22 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js +21 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/relabeling.js +3 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/relabeling.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js +9 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repackaging.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repalletizing.js +3 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/repalletizing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/unpacking.js +3 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/interfaces/unpacking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +71 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js +46 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js +21 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js +68 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js +28 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +166 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js +20 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js +278 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js +113 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js +63 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js +20 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js +117 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js +55 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js +15 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js +19 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +132 -0
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +94 -0
- package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js +29 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js +54 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +501 -0
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/worksheets.js +547 -0
- package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js +22 -0
- package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js +39 -0
- package/dist-server/graphql/resolvers/worksheet-detail/create-worksheet-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js +18 -0
- package/dist-server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +149 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js +122 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js +25 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-carton-id.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +77 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +177 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +67 -0
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/index.js +20 -0
- package/dist-server/graphql/resolvers/worksheet-detail/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +100 -0
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js +30 -0
- package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +31 -0
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js +49 -0
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js +17 -0
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-details.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +14 -0
- package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.js +12 -0
- package/dist-server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-movement/index.js +11 -0
- package/dist-server/graphql/resolvers/worksheet-movement/index.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js +13 -0
- package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js +12 -0
- package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js +15 -0
- package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movements.js.map +1 -0
- package/dist-server/graphql/types/index.js +39 -0
- package/dist-server/graphql/types/index.js.map +1 -0
- package/dist-server/graphql/types/pallet/index.js +13 -0
- package/dist-server/graphql/types/pallet/index.js.map +1 -0
- package/dist-server/graphql/types/pallet/pallet.js +10 -0
- package/dist-server/graphql/types/pallet/pallet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js +11 -0
- package/dist-server/graphql/types/worksheet/arrival-notice-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.js +12 -0
- package/dist-server/graphql/types/worksheet/batch-pick-worksheet-info.js.map +1 -0
- package/dist-server/graphql/types/worksheet/contact-point-info.js +15 -0
- package/dist-server/graphql/types/worksheet/contact-point-info.js.map +1 -0
- package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js +19 -0
- package/dist-server/graphql/types/worksheet/cycle-count-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/delivery-info.js +14 -0
- package/dist-server/graphql/types/worksheet/delivery-info.js.map +1 -0
- package/dist-server/graphql/types/worksheet/delivery-order-info.js +30 -0
- package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -0
- package/dist-server/graphql/types/worksheet/delivery-order-ro.js +18 -0
- package/dist-server/graphql/types/worksheet/delivery-order-ro.js.map +1 -0
- package/dist-server/graphql/types/worksheet/delivery-worksheet.js +10 -0
- package/dist-server/graphql/types/worksheet/delivery-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/executing-worksheet.js +11 -0
- package/dist-server/graphql/types/worksheet/executing-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js +12 -0
- package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js.map +1 -0
- package/dist-server/graphql/types/worksheet/goods-delivery-note.js +11 -0
- package/dist-server/graphql/types/worksheet/goods-delivery-note.js.map +1 -0
- package/dist-server/graphql/types/worksheet/index.js +902 -0
- package/dist-server/graphql/types/worksheet/index.js.map +1 -0
- package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js +11 -0
- package/dist-server/graphql/types/worksheet/inventory-check-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +12 -0
- package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -0
- package/dist-server/graphql/types/worksheet/location-filter.js +13 -0
- package/dist-server/graphql/types/worksheet/location-filter.js.map +1 -0
- package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js +11 -0
- package/dist-server/graphql/types/worksheet/multiple-release-good-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js +12 -0
- package/dist-server/graphql/types/worksheet/my-picking-assignment-status.js.map +1 -0
- package/dist-server/graphql/types/worksheet/new-worksheet.js +13 -0
- package/dist-server/graphql/types/worksheet/new-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/packing-list.js +10 -0
- package/dist-server/graphql/types/worksheet/packing-list.js.map +1 -0
- package/dist-server/graphql/types/worksheet/picking-assignment-status.js +12 -0
- package/dist-server/graphql/types/worksheet/picking-assignment-status.js.map +1 -0
- package/dist-server/graphql/types/worksheet/powrup-document.js +11 -0
- package/dist-server/graphql/types/worksheet/powrup-document.js.map +1 -0
- package/dist-server/graphql/types/worksheet/product-approval.js +14 -0
- package/dist-server/graphql/types/worksheet/product-approval.js.map +1 -0
- package/dist-server/graphql/types/worksheet/release-good-worksheet.js +11 -0
- package/dist-server/graphql/types/worksheet/release-good-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/replenish-inventory-patch.js +11 -0
- package/dist-server/graphql/types/worksheet/replenish-inventory-patch.js.map +1 -0
- package/dist-server/graphql/types/worksheet/return-order-worksheet.js +11 -0
- package/dist-server/graphql/types/worksheet/return-order-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/sellercraft-document.js +11 -0
- package/dist-server/graphql/types/worksheet/sellercraft-document.js.map +1 -0
- package/dist-server/graphql/types/worksheet/vas-order-worksheet.js +10 -0
- package/dist-server/graphql/types/worksheet/vas-order-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/vas-worksheet.js +11 -0
- package/dist-server/graphql/types/worksheet/vas-worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet/webspert-document.js +11 -0
- package/dist-server/graphql/types/worksheet/webspert-document.js.map +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +88 -0
- package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js +46 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-list.js +11 -0
- package/dist-server/graphql/types/worksheet/worksheet-list.js.map +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-patch.js +21 -0
- package/dist-server/graphql/types/worksheet/worksheet-patch.js.map +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js +12 -0
- package/dist-server/graphql/types/worksheet/worksheet-with-pagination.js.map +1 -0
- package/dist-server/graphql/types/worksheet/worksheet.js +45 -0
- package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/index.js +83 -0
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +48 -0
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js +24 -0
- package/dist-server/graphql/types/worksheet-detail/new-worksheet-detail.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/pallet-info.js +14 -0
- package/dist-server/graphql/types/worksheet-detail/pallet-info.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js +11 -0
- package/dist-server/graphql/types/worksheet-detail/worksheet-detail-list.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js +32 -0
- package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js +34 -0
- package/dist-server/graphql/types/worksheet-detail/worksheet-detail.js.map +1 -0
- package/dist-server/graphql/types/worksheet-movement/index.js +31 -0
- package/dist-server/graphql/types/worksheet-movement/index.js.map +1 -0
- package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js +11 -0
- package/dist-server/graphql/types/worksheet-movement/new-worksheet-movement.js.map +1 -0
- package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js +11 -0
- package/dist-server/graphql/types/worksheet-movement/worksheet-movement-list.js.map +1 -0
- package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js +11 -0
- package/dist-server/graphql/types/worksheet-movement/worksheet-movement-patch.js.map +1 -0
- package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js +13 -0
- package/dist-server/graphql/types/worksheet-movement/worksheet-movement.js.map +1 -0
- package/dist-server/index.js +38 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/middlewares/index.js +4 -0
- package/dist-server/middlewares/index.js.map +1 -0
- package/dist-server/migrations/index.js +12 -0
- package/dist-server/migrations/index.js.map +1 -0
- package/dist-server/routes.js +65 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/utils/datetime-util.js +61 -0
- package/dist-server/utils/datetime-util.js.map +1 -0
- package/dist-server/utils/index.js +23 -0
- package/dist-server/utils/index.js.map +1 -0
- package/dist-server/utils/inventory-util.js +236 -0
- package/dist-server/utils/inventory-util.js.map +1 -0
- package/dist-server/utils/lambda/lambda-const.js +6 -0
- package/dist-server/utils/lambda/lambda-const.js.map +1 -0
- package/dist-server/utils/lmd-util.js +699 -0
- package/dist-server/utils/lmd-util.js.map +1 -0
- package/dist-server/utils/worksheet-no-generator.js +187 -0
- package/dist-server/utils/worksheet-no-generator.js.map +1 -0
- package/dist-server/utils/worksheet-util.js +85 -0
- package/dist-server/utils/worksheet-util.js.map +1 -0
- package/dist-server/utils/xilnex-util.js +62 -0
- package/dist-server/utils/xilnex-util.js.map +1 -0
- package/package.json +12 -12
|
@@ -0,0 +1,1056 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UnloadingWorksheetController = void 0;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const id_rule_base_1 = require("@things-factory/id-rule-base");
|
|
6
|
+
const sales_base_1 = require("@things-factory/sales-base");
|
|
7
|
+
const setting_base_1 = require("@things-factory/setting-base");
|
|
8
|
+
const warehouse_base_1 = require("@things-factory/warehouse-base");
|
|
9
|
+
const constants_1 = require("../../constants");
|
|
10
|
+
const entities_1 = require("../../entities");
|
|
11
|
+
const utils_1 = require("../../utils");
|
|
12
|
+
const vas_worksheet_controller_1 = require("../vas/vas-worksheet-controller");
|
|
13
|
+
class UnloadingWorksheetController extends vas_worksheet_controller_1.VasWorksheetController {
|
|
14
|
+
async generateUnloadingWorksheet(arrivalNoticeNo, bufferLocationId) {
|
|
15
|
+
try {
|
|
16
|
+
let arrivalNotice = await this.findRefOrder(sales_base_1.ArrivalNotice, {
|
|
17
|
+
domain: this.domain,
|
|
18
|
+
name: arrivalNoticeNo,
|
|
19
|
+
status: sales_base_1.ORDER_STATUS.ARRIVED
|
|
20
|
+
}, ['bizplace', 'orderVass']);
|
|
21
|
+
const orderProducts = await this.trxMgr
|
|
22
|
+
.getRepository(sales_base_1.OrderProduct)
|
|
23
|
+
.find({ where: { arrivalNotice } });
|
|
24
|
+
const orderVASs = arrivalNotice.orderVass;
|
|
25
|
+
const bufferLocation = await this.trxMgr.getRepository(warehouse_base_1.Location).findOne(bufferLocationId);
|
|
26
|
+
const worksheet = await this.generateWorksheet(constants_1.WORKSHEET_TYPE.UNLOADING, arrivalNotice, orderProducts, sales_base_1.ORDER_STATUS.READY_TO_UNLOAD, sales_base_1.ORDER_PRODUCT_STATUS.READY_TO_UNLOAD, { bufferLocation });
|
|
27
|
+
if ((orderVASs === null || orderVASs === void 0 ? void 0 : orderVASs.length) > 0) {
|
|
28
|
+
await this.generateVasWorksheet(arrivalNotice);
|
|
29
|
+
}
|
|
30
|
+
return worksheet;
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
throw new Error(e);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
async unload(worksheetDetailName, inventory, productBarcode) {
|
|
37
|
+
var _a;
|
|
38
|
+
const worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
|
|
39
|
+
where: {
|
|
40
|
+
name: worksheetDetailName,
|
|
41
|
+
status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DEACTIVATED))
|
|
42
|
+
},
|
|
43
|
+
relations: [
|
|
44
|
+
'bizplace',
|
|
45
|
+
'worksheet',
|
|
46
|
+
'worksheet.arrivalNotice',
|
|
47
|
+
'worksheet.returnOrder',
|
|
48
|
+
'worksheet.bufferLocation',
|
|
49
|
+
'worksheet.bufferLocation.warehouse',
|
|
50
|
+
'targetProduct',
|
|
51
|
+
'targetProduct.product',
|
|
52
|
+
'targetProduct.productDetail',
|
|
53
|
+
'targetInventory',
|
|
54
|
+
'targetInventory.inventory',
|
|
55
|
+
'targetInventory.product',
|
|
56
|
+
'targetInventory.productDetail'
|
|
57
|
+
]
|
|
58
|
+
});
|
|
59
|
+
if (!worksheetDetail)
|
|
60
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName));
|
|
61
|
+
const targetProduct = worksheetDetail.targetProduct;
|
|
62
|
+
if (targetProduct && targetProduct.status == sales_base_1.ORDER_PRODUCT_STATUS.EDITED)
|
|
63
|
+
throw new Error('this product is pending for changes approval');
|
|
64
|
+
const arrivalNotice = worksheetDetail.worksheet.arrivalNotice;
|
|
65
|
+
const returnOrder = worksheetDetail.worksheet.returnOrder;
|
|
66
|
+
const location = worksheetDetail.worksheet.bufferLocation;
|
|
67
|
+
const targetOrderInventory = worksheetDetail === null || worksheetDetail === void 0 ? void 0 : worksheetDetail.targetInventory;
|
|
68
|
+
const originInventory = (targetOrderInventory === null || targetOrderInventory === void 0 ? void 0 : targetOrderInventory.inventory) || null;
|
|
69
|
+
const orderId = Boolean(arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.id) ? arrivalNotice.id : returnOrder.id;
|
|
70
|
+
let productDetail = Boolean(arrivalNotice)
|
|
71
|
+
? targetProduct.productDetail
|
|
72
|
+
: targetOrderInventory.productDetail;
|
|
73
|
+
let qty = Number(inventory.qty);
|
|
74
|
+
let uom = Boolean(arrivalNotice) ? targetProduct.uom : originInventory.uom;
|
|
75
|
+
if (isNaN(qty) || qty <= 0) {
|
|
76
|
+
throw new Error('Invalid quantity value');
|
|
77
|
+
}
|
|
78
|
+
if (!(inventory === null || inventory === void 0 ? void 0 : inventory.palletId)) {
|
|
79
|
+
if (!(inventory === null || inventory === void 0 ? void 0 : inventory.cartonId)) {
|
|
80
|
+
throw new Error('missing carton Id');
|
|
81
|
+
}
|
|
82
|
+
// Commenting thhis function will enable the usage of pre-existing carton during unloading
|
|
83
|
+
// await this.checkCartonDuplication(inventory.cartonId, orderId)
|
|
84
|
+
if (targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.palletId) {
|
|
85
|
+
inventory.palletId = targetProduct.palletId;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
inventory.palletId = await (0, id_rule_base_1.generateId)({
|
|
89
|
+
domain: this.domain,
|
|
90
|
+
type: constants_1.RULE_TYPE.LOT_NUMBER_ID,
|
|
91
|
+
seed: { date: utils_1.DateGenerator.generateDate() }
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
await this.checkPalletDuplication(inventory.palletId);
|
|
97
|
+
}
|
|
98
|
+
let newInventory = new warehouse_base_1.Inventory();
|
|
99
|
+
newInventory = {
|
|
100
|
+
bizplace: worksheetDetail.bizplace,
|
|
101
|
+
name: warehouse_base_1.InventoryNoGenerator.inventoryName(),
|
|
102
|
+
palletId: inventory.palletId,
|
|
103
|
+
cartonId: inventory.cartonId || undefined,
|
|
104
|
+
refOrderId: orderId,
|
|
105
|
+
productDetail,
|
|
106
|
+
warehouse: location.warehouse,
|
|
107
|
+
zone: location.zone,
|
|
108
|
+
location: location,
|
|
109
|
+
expirationDate: (inventory === null || inventory === void 0 ? void 0 : inventory.expirationDate) ? new Date(inventory.expirationDate) : undefined,
|
|
110
|
+
status: warehouse_base_1.INVENTORY_STATUS.UNLOADED,
|
|
111
|
+
qty: qty
|
|
112
|
+
};
|
|
113
|
+
if ((_a = inventory.reusablePallet) === null || _a === void 0 ? void 0 : _a.id) {
|
|
114
|
+
newInventory.reusablePallet = await this.trxMgr.getRepository(warehouse_base_1.Pallet).findOne(inventory.reusablePallet.id);
|
|
115
|
+
}
|
|
116
|
+
// Find matching product based on GTIN
|
|
117
|
+
if (productBarcode) {
|
|
118
|
+
let matchingProduct;
|
|
119
|
+
matchingProduct = await this.getDirectQty(Object.assign(Object.assign({}, productDetail), { product: targetOrderInventory === null || targetOrderInventory === void 0 ? void 0 : targetOrderInventory.product }), productBarcode, qty);
|
|
120
|
+
//validate matching product details based on scanned barcode
|
|
121
|
+
if (!matchingProduct)
|
|
122
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode));
|
|
123
|
+
qty = matchingProduct.qty;
|
|
124
|
+
uom = arrivalNotice ? targetProduct.uom : matchingProduct.uom;
|
|
125
|
+
}
|
|
126
|
+
// Calculate uom value
|
|
127
|
+
const uomValue = Math.round(qty *
|
|
128
|
+
(Boolean(arrivalNotice)
|
|
129
|
+
? targetProduct.uomValue
|
|
130
|
+
: targetOrderInventory.returnUomValue / targetOrderInventory.returnQty) *
|
|
131
|
+
1000) / 1000;
|
|
132
|
+
if (arrivalNotice) {
|
|
133
|
+
newInventory = Object.assign(Object.assign({}, newInventory), { batchId: targetProduct.batchId, batchIdRef: targetProduct.batchIdRef, product: targetProduct.product, packingType: targetProduct.packingType, packingSize: targetProduct.packingSize, remark: targetProduct.remark, manufactureDate: targetProduct.manufactureDate, orderProductId: targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.id, uom: uom || productDetail.uom, qty: qty, uomValue: uomValue, unitCost: (targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.unitPrice)
|
|
134
|
+
? ((targetProduct.packQty * targetProduct.unitPrice + targetProduct.miscAmt - targetProduct.discountAmt) *
|
|
135
|
+
(1 + targetProduct.taxRate / 100)) /
|
|
136
|
+
targetProduct.packQty
|
|
137
|
+
: 0 });
|
|
138
|
+
const updateOP = {
|
|
139
|
+
id: targetProduct.id,
|
|
140
|
+
actualPalletQty: ++targetProduct.actualPalletQty,
|
|
141
|
+
actualPackQty: Number(targetProduct.actualPackQty || 0) + qty,
|
|
142
|
+
status: sales_base_1.ORDER_PRODUCT_STATUS.UNLOADED,
|
|
143
|
+
productDetail: productDetail
|
|
144
|
+
};
|
|
145
|
+
// targetProduct.status = ORDER_PRODUCT_STATUS.UNLOADED
|
|
146
|
+
// targetProduct.productDetail = productDetail
|
|
147
|
+
await this.updateOrderTargets([updateOP], sales_base_1.OrderProduct);
|
|
148
|
+
}
|
|
149
|
+
// case 2: Return Order -> Update Order Inventory
|
|
150
|
+
else if (returnOrder) {
|
|
151
|
+
newInventory = Object.assign(Object.assign({}, newInventory), { batchId: targetOrderInventory.batchId, batchIdRef: null, product: targetOrderInventory.product, packingType: targetOrderInventory.packingType, packingSize: targetOrderInventory.packingSize, remark: targetOrderInventory.remark, uom: uom || productDetail.uom, qty: qty, uomValue: uomValue, unitCost: targetOrderInventory.unitCost, orderInventoryId: targetOrderInventory === null || targetOrderInventory === void 0 ? void 0 : targetOrderInventory.id, refInventory: targetOrderInventory === null || targetOrderInventory === void 0 ? void 0 : targetOrderInventory.inventory });
|
|
152
|
+
const updateOI = {
|
|
153
|
+
id: targetOrderInventory.id,
|
|
154
|
+
actualPalletQty: ++targetOrderInventory.actualPalletQty,
|
|
155
|
+
actualPackQty: targetOrderInventory.actualPackQty + qty,
|
|
156
|
+
status: sales_base_1.ORDER_PRODUCT_STATUS.UNLOADED
|
|
157
|
+
};
|
|
158
|
+
await this.updateOrderTargets([updateOI], sales_base_1.OrderInventory);
|
|
159
|
+
}
|
|
160
|
+
// Create New History Transaction
|
|
161
|
+
newInventory = await this.transactionInventory(newInventory, Boolean(arrivalNotice) ? arrivalNotice : returnOrder, newInventory.qty, newInventory.uomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNLOADING);
|
|
162
|
+
return (arrivalNotice === null || arrivalNotice === void 0 ? void 0 : arrivalNotice.name) || (returnOrder === null || returnOrder === void 0 ? void 0 : returnOrder.name) || null;
|
|
163
|
+
}
|
|
164
|
+
async scanSerialNumberUnload(worksheetDetailName, serialNumber, inventory) {
|
|
165
|
+
var _a;
|
|
166
|
+
const worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
|
|
167
|
+
where: {
|
|
168
|
+
name: worksheetDetailName,
|
|
169
|
+
status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DEACTIVATED))
|
|
170
|
+
},
|
|
171
|
+
relations: [
|
|
172
|
+
'bizplace',
|
|
173
|
+
'worksheet',
|
|
174
|
+
'worksheet.arrivalNotice',
|
|
175
|
+
'worksheet.returnOrder',
|
|
176
|
+
'worksheet.bufferLocation',
|
|
177
|
+
'worksheet.bufferLocation.warehouse',
|
|
178
|
+
'targetProduct',
|
|
179
|
+
'targetProduct.product',
|
|
180
|
+
'targetProduct.productDetail',
|
|
181
|
+
'targetProduct.product.productDetails',
|
|
182
|
+
'targetProduct.product.productDetails.childProductDetail',
|
|
183
|
+
'targetInventory',
|
|
184
|
+
'targetInventory.productDetail',
|
|
185
|
+
'targetInventory.product',
|
|
186
|
+
'targetInventory.product.productDetails',
|
|
187
|
+
'targetInventory.product.productDetails.childProductDetail'
|
|
188
|
+
]
|
|
189
|
+
});
|
|
190
|
+
if (!worksheetDetail)
|
|
191
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName));
|
|
192
|
+
if (!(inventory === null || inventory === void 0 ? void 0 : inventory.palletId))
|
|
193
|
+
inventory.palletId = await (0, id_rule_base_1.generateId)({
|
|
194
|
+
domain: this.domain,
|
|
195
|
+
type: constants_1.RULE_TYPE.LOT_NUMBER_ID,
|
|
196
|
+
seed: { date: utils_1.DateGenerator.generateDate() }
|
|
197
|
+
});
|
|
198
|
+
const targetProduct = worksheetDetail.targetProduct;
|
|
199
|
+
if ((targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.status) == sales_base_1.ORDER_PRODUCT_STATUS.EDITED)
|
|
200
|
+
throw new Error('this product is pending for changes approval');
|
|
201
|
+
const bizplace = worksheetDetail.bizplace;
|
|
202
|
+
const worksheet = worksheetDetail.worksheet;
|
|
203
|
+
const arrivalNotice = worksheet.arrivalNotice;
|
|
204
|
+
const returnOrder = worksheet.returnOrder;
|
|
205
|
+
const targetInventory = worksheetDetail.targetInventory;
|
|
206
|
+
const product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product;
|
|
207
|
+
const productDetail = Boolean(arrivalNotice)
|
|
208
|
+
? targetProduct.productDetail
|
|
209
|
+
: targetInventory.productDetail;
|
|
210
|
+
const packingType = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType;
|
|
211
|
+
const packingSize = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize;
|
|
212
|
+
const batchId = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId;
|
|
213
|
+
let qty = 0;
|
|
214
|
+
let uom = Boolean(arrivalNotice) ? targetProduct.uom : targetInventory.uom;
|
|
215
|
+
const cartonId = inventory.cartonId;
|
|
216
|
+
const orderId = Boolean(arrivalNotice) ? arrivalNotice.id : returnOrder.id;
|
|
217
|
+
await this.checkSerialNumberDuplication(serialNumber, product);
|
|
218
|
+
qty++;
|
|
219
|
+
const invQb = this.trxMgr
|
|
220
|
+
.getRepository(warehouse_base_1.Inventory)
|
|
221
|
+
.createQueryBuilder('INV')
|
|
222
|
+
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
223
|
+
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
224
|
+
.andWhere('INV.product_detail_id = :productDetailId', { productDetailId: productDetail.id })
|
|
225
|
+
.andWhere('INV.batch_id = :batchId', { batchId: batchId });
|
|
226
|
+
if (arrivalNotice)
|
|
227
|
+
invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id });
|
|
228
|
+
else if (returnOrder)
|
|
229
|
+
invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id });
|
|
230
|
+
if (inventory === null || inventory === void 0 ? void 0 : inventory.expirationDate) {
|
|
231
|
+
invQb.andWhere('INV.expiration_date = :expirationDate', {
|
|
232
|
+
expirationDate: inventory.expirationDate
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
if (inventory === null || inventory === void 0 ? void 0 : inventory.cartonId)
|
|
236
|
+
invQb.andWhere('INV.carton_id = :cartonId', { cartonId: inventory.cartonId });
|
|
237
|
+
else
|
|
238
|
+
invQb.andWhere('INV.pallet_id = :palletId', { palletId: inventory.palletId });
|
|
239
|
+
let foundInventory = await invQb.getOne();
|
|
240
|
+
const batchIdRef = Boolean(arrivalNotice) ? targetProduct.batchIdRef : null;
|
|
241
|
+
const remark = Boolean(arrivalNotice) ? targetProduct.remark : targetInventory.remark;
|
|
242
|
+
const manufactureDate = Boolean(arrivalNotice) ? targetProduct.manufactureDate : null;
|
|
243
|
+
const location = worksheet.bufferLocation;
|
|
244
|
+
const warehouse = location.warehouse;
|
|
245
|
+
const zone = location.zone;
|
|
246
|
+
const unitCost = Boolean(arrivalNotice)
|
|
247
|
+
? (targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.unitPrice)
|
|
248
|
+
? ((targetProduct.packQty * targetProduct.unitPrice + targetProduct.miscAmt - targetProduct.discountAmt) *
|
|
249
|
+
(1 + targetProduct.taxRate / 100)) /
|
|
250
|
+
targetProduct.packQty
|
|
251
|
+
: 0
|
|
252
|
+
: null;
|
|
253
|
+
if (!foundInventory) {
|
|
254
|
+
let newInventory = new warehouse_base_1.Inventory();
|
|
255
|
+
newInventory.bizplace = bizplace;
|
|
256
|
+
newInventory.domain = this.domain;
|
|
257
|
+
newInventory.name = warehouse_base_1.InventoryNoGenerator.inventoryName();
|
|
258
|
+
newInventory.palletId = inventory.palletId;
|
|
259
|
+
newInventory.cartonId = inventory.cartonId;
|
|
260
|
+
newInventory.batchId = batchId;
|
|
261
|
+
newInventory.batchIdRef = batchIdRef;
|
|
262
|
+
newInventory.product = product;
|
|
263
|
+
newInventory.productDetail = productDetail;
|
|
264
|
+
newInventory.packingType = packingType;
|
|
265
|
+
newInventory.packingSize = packingSize;
|
|
266
|
+
newInventory.uom = uom;
|
|
267
|
+
newInventory.remark = remark;
|
|
268
|
+
newInventory.qty = qty;
|
|
269
|
+
newInventory.uomValue =
|
|
270
|
+
Math.round(qty *
|
|
271
|
+
(Boolean(arrivalNotice)
|
|
272
|
+
? targetProduct.uomValue
|
|
273
|
+
: targetInventory.returnUomValue / targetInventory.returnQty) *
|
|
274
|
+
1000) / 1000;
|
|
275
|
+
newInventory.manufactureDate = manufactureDate;
|
|
276
|
+
newInventory.refOrderId = orderId;
|
|
277
|
+
newInventory.unitCost = unitCost;
|
|
278
|
+
if ((_a = inventory.reusablePallet) === null || _a === void 0 ? void 0 : _a.id) {
|
|
279
|
+
newInventory.reusablePallet = await this.trxMgr.getRepository(warehouse_base_1.Pallet).findOne(inventory.reusablePallet.id);
|
|
280
|
+
}
|
|
281
|
+
newInventory.orderProductId = Boolean(arrivalNotice) ? targetProduct.id : null;
|
|
282
|
+
newInventory.orderInventoryId = Boolean(returnOrder) ? targetInventory.id : null;
|
|
283
|
+
newInventory.warehouse = warehouse;
|
|
284
|
+
newInventory.location = location;
|
|
285
|
+
newInventory.zone = zone;
|
|
286
|
+
newInventory.status = warehouse_base_1.INVENTORY_STATUS.CHECKED;
|
|
287
|
+
newInventory.creator = this.user;
|
|
288
|
+
if (inventory === null || inventory === void 0 ? void 0 : inventory.expirationDate) {
|
|
289
|
+
newInventory.expirationDate = new Date(inventory.expirationDate);
|
|
290
|
+
}
|
|
291
|
+
if (arrivalNotice) {
|
|
292
|
+
targetProduct.actualPalletQty++;
|
|
293
|
+
targetProduct.actualPackQty = Boolean(targetProduct.actualPackQty) ? targetProduct.actualPackQty + qty : qty;
|
|
294
|
+
}
|
|
295
|
+
else if (returnOrder) {
|
|
296
|
+
targetInventory.actualPalletQty++;
|
|
297
|
+
targetInventory.actualPackQty = Boolean(targetInventory.actualPackQty)
|
|
298
|
+
? targetInventory.actualPackQty + qty
|
|
299
|
+
: qty;
|
|
300
|
+
}
|
|
301
|
+
foundInventory = await this.trxMgr.getRepository(warehouse_base_1.Inventory).save(newInventory);
|
|
302
|
+
//refer to scanUnload
|
|
303
|
+
newInventory = await this.transactionInventory(newInventory, Boolean(arrivalNotice) ? arrivalNotice : returnOrder, newInventory.qty, newInventory.uomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNLOADING);
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
const updatedQty = foundInventory.qty + qty;
|
|
307
|
+
foundInventory.expirationDate = foundInventory.expirationDate ? new Date(foundInventory.expirationDate) : null;
|
|
308
|
+
foundInventory.qty = updatedQty;
|
|
309
|
+
foundInventory.uomValue +=
|
|
310
|
+
Math.round(qty *
|
|
311
|
+
(Boolean(arrivalNotice)
|
|
312
|
+
? targetProduct.uomValue
|
|
313
|
+
: targetInventory.returnUomValue / targetInventory.returnQty) *
|
|
314
|
+
1000) / 1000;
|
|
315
|
+
//refer to scanUnload
|
|
316
|
+
foundInventory = await this.transactionInventory(foundInventory, Boolean(arrivalNotice) ? arrivalNotice : returnOrder, foundInventory.qty, foundInventory.uomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNLOADING);
|
|
317
|
+
if (arrivalNotice)
|
|
318
|
+
targetProduct.actualPackQty = targetProduct.actualPackQty + qty;
|
|
319
|
+
else if (returnOrder)
|
|
320
|
+
targetInventory.actualPackQty = targetInventory.actualPackQty + qty;
|
|
321
|
+
foundInventory = await this.trxMgr.getRepository(warehouse_base_1.Inventory).save(foundInventory);
|
|
322
|
+
}
|
|
323
|
+
let inventoryItem = new warehouse_base_1.InventoryItem();
|
|
324
|
+
inventoryItem.name = warehouse_base_1.InventoryNoGenerator.inventoryItemName();
|
|
325
|
+
inventoryItem.serialNumber = serialNumber;
|
|
326
|
+
inventoryItem.status = foundInventory.status;
|
|
327
|
+
inventoryItem.inboundOrderId = foundInventory.refOrderId;
|
|
328
|
+
inventoryItem.product = product;
|
|
329
|
+
inventoryItem.productDetail = productDetail;
|
|
330
|
+
inventoryItem.inventory = foundInventory;
|
|
331
|
+
inventoryItem.source = warehouse_base_1.INVENTORY_ITEM_SOURCE.INBOUND;
|
|
332
|
+
inventoryItem.domain = this.domain;
|
|
333
|
+
inventoryItem.creator = this.user;
|
|
334
|
+
inventoryItem.updater = this.user;
|
|
335
|
+
await this.trxMgr.getRepository(warehouse_base_1.InventoryItem).save(inventoryItem);
|
|
336
|
+
if (arrivalNotice) {
|
|
337
|
+
targetProduct.updater = this.user;
|
|
338
|
+
this.updateOrderTargets([targetProduct]);
|
|
339
|
+
}
|
|
340
|
+
else if (returnOrder) {
|
|
341
|
+
targetInventory.updater = this.user;
|
|
342
|
+
this.updateOrderTargets([targetInventory]);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
async scanProductUnload(worksheetDetailName, productBarcode, inventory) {
|
|
346
|
+
var _a;
|
|
347
|
+
const worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
|
|
348
|
+
where: {
|
|
349
|
+
name: worksheetDetailName,
|
|
350
|
+
status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DEACTIVATED))
|
|
351
|
+
},
|
|
352
|
+
relations: [
|
|
353
|
+
'bizplace',
|
|
354
|
+
'worksheet',
|
|
355
|
+
'worksheet.arrivalNotice',
|
|
356
|
+
'worksheet.returnOrder',
|
|
357
|
+
'worksheet.bufferLocation',
|
|
358
|
+
'worksheet.bufferLocation.warehouse',
|
|
359
|
+
'targetProduct',
|
|
360
|
+
'targetProduct.product',
|
|
361
|
+
'targetProduct.productDetail',
|
|
362
|
+
'targetProduct.product.productDetails',
|
|
363
|
+
'targetProduct.product.productDetails.childProductDetail',
|
|
364
|
+
'targetInventory',
|
|
365
|
+
'targetInventory.product',
|
|
366
|
+
'targetInventory.productDetail',
|
|
367
|
+
'targetInventory.product.productDetails',
|
|
368
|
+
'targetInventory.product.productDetails.childProductDetail'
|
|
369
|
+
]
|
|
370
|
+
});
|
|
371
|
+
if (!worksheetDetail)
|
|
372
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName));
|
|
373
|
+
if (!(inventory === null || inventory === void 0 ? void 0 : inventory.palletId))
|
|
374
|
+
inventory.palletId = await (0, id_rule_base_1.generateId)({
|
|
375
|
+
domain: this.domain,
|
|
376
|
+
type: constants_1.RULE_TYPE.LOT_NUMBER_ID,
|
|
377
|
+
seed: { date: utils_1.DateGenerator.generateDate() }
|
|
378
|
+
});
|
|
379
|
+
const targetProduct = worksheetDetail.targetProduct;
|
|
380
|
+
if (targetProduct.status == sales_base_1.ORDER_PRODUCT_STATUS.EDITED)
|
|
381
|
+
throw new Error('this product is pending for changes approval');
|
|
382
|
+
const bizplace = worksheetDetail.bizplace;
|
|
383
|
+
const worksheet = worksheetDetail.worksheet;
|
|
384
|
+
const arrivalNotice = worksheet.arrivalNotice;
|
|
385
|
+
const returnOrder = worksheet.returnOrder;
|
|
386
|
+
const targetInventory = worksheetDetail.targetInventory;
|
|
387
|
+
const product = Boolean(arrivalNotice) ? targetProduct.product : targetInventory.product;
|
|
388
|
+
let productDetail = Boolean(arrivalNotice)
|
|
389
|
+
? targetProduct.productDetail
|
|
390
|
+
: targetInventory.productDetail;
|
|
391
|
+
const packingType = Boolean(arrivalNotice) ? targetProduct.packingType : targetInventory.packingType;
|
|
392
|
+
const packingSize = Boolean(arrivalNotice) ? targetProduct.packingSize : targetInventory.packingSize;
|
|
393
|
+
const batchId = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId;
|
|
394
|
+
let qty = 1;
|
|
395
|
+
let uom = Boolean(arrivalNotice) ? targetProduct.uom : targetInventory.uom;
|
|
396
|
+
const cartonId = inventory.cartonId;
|
|
397
|
+
const orderId = Boolean(arrivalNotice) ? arrivalNotice.id : returnOrder.id;
|
|
398
|
+
// Commenting thhis function will enable the usage of pre-existing carton during unloading
|
|
399
|
+
// await this.checkCartonDuplication(cartonId, orderId)
|
|
400
|
+
let matchingProduct;
|
|
401
|
+
matchingProduct = await this.getDirectQty(Object.assign(Object.assign({}, productDetail), { product: targetInventory === null || targetInventory === void 0 ? void 0 : targetInventory.product }), productBarcode, qty);
|
|
402
|
+
//validate matching product details based on scanned barcode
|
|
403
|
+
if (!matchingProduct)
|
|
404
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(productBarcode));
|
|
405
|
+
qty = matchingProduct.qty;
|
|
406
|
+
uom = arrivalNotice ? targetProduct.uom : matchingProduct.uom;
|
|
407
|
+
const invQb = this.trxMgr
|
|
408
|
+
.getRepository(warehouse_base_1.Inventory)
|
|
409
|
+
.createQueryBuilder('INV')
|
|
410
|
+
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
411
|
+
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
412
|
+
.andWhere('INV.product_detail_id = :productDetailId', { productDetailId: productDetail.id })
|
|
413
|
+
.andWhere('INV.batch_id = :batchId', { batchId: batchId });
|
|
414
|
+
if (arrivalNotice)
|
|
415
|
+
invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id });
|
|
416
|
+
else if (returnOrder)
|
|
417
|
+
invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id });
|
|
418
|
+
if (inventory === null || inventory === void 0 ? void 0 : inventory.expirationDate) {
|
|
419
|
+
invQb.andWhere('INV.expiration_date = :expirationDate', {
|
|
420
|
+
expirationDate: inventory.expirationDate
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
if (inventory === null || inventory === void 0 ? void 0 : inventory.cartonId)
|
|
424
|
+
invQb.andWhere('INV.carton_id = :cartonId', { cartonId: inventory.cartonId });
|
|
425
|
+
else
|
|
426
|
+
invQb.andWhere('INV.pallet_id = :palletId', { palletId: inventory.palletId });
|
|
427
|
+
let foundInventory = await invQb.getOne();
|
|
428
|
+
const batchIdRef = Boolean(arrivalNotice) ? targetProduct.batchIdRef : null;
|
|
429
|
+
const remark = Boolean(arrivalNotice) ? targetProduct.remark : targetInventory.remark;
|
|
430
|
+
const manufactureDate = Boolean(arrivalNotice) ? targetProduct.manufactureDate : null;
|
|
431
|
+
const location = worksheet.bufferLocation;
|
|
432
|
+
const warehouse = location.warehouse;
|
|
433
|
+
const zone = location.zone;
|
|
434
|
+
const unitCost = Boolean(arrivalNotice)
|
|
435
|
+
? (targetProduct === null || targetProduct === void 0 ? void 0 : targetProduct.unitPrice)
|
|
436
|
+
? ((targetProduct.packQty * targetProduct.unitPrice + targetProduct.miscAmt - targetProduct.discountAmt) *
|
|
437
|
+
(1 + targetProduct.taxRate / 100)) /
|
|
438
|
+
targetProduct.packQty
|
|
439
|
+
: 0
|
|
440
|
+
: null;
|
|
441
|
+
if (!foundInventory) {
|
|
442
|
+
let newInventory = new warehouse_base_1.Inventory();
|
|
443
|
+
newInventory.bizplace = bizplace;
|
|
444
|
+
newInventory.domain = this.domain;
|
|
445
|
+
newInventory.name = warehouse_base_1.InventoryNoGenerator.inventoryName();
|
|
446
|
+
newInventory.palletId = inventory.palletId;
|
|
447
|
+
newInventory.cartonId = inventory.cartonId;
|
|
448
|
+
newInventory.batchId = batchId;
|
|
449
|
+
newInventory.batchIdRef = batchIdRef;
|
|
450
|
+
newInventory.product = product;
|
|
451
|
+
newInventory.productDetail = productDetail;
|
|
452
|
+
newInventory.packingType = packingType;
|
|
453
|
+
newInventory.packingSize = packingSize;
|
|
454
|
+
newInventory.uom = uom;
|
|
455
|
+
newInventory.remark = remark;
|
|
456
|
+
newInventory.qty = qty;
|
|
457
|
+
newInventory.uomValue =
|
|
458
|
+
Math.round(qty *
|
|
459
|
+
(Boolean(arrivalNotice)
|
|
460
|
+
? targetProduct.uomValue
|
|
461
|
+
: targetInventory.returnUomValue / targetInventory.returnQty) *
|
|
462
|
+
1000) / 1000;
|
|
463
|
+
newInventory.manufactureDate = manufactureDate;
|
|
464
|
+
newInventory.refOrderId = orderId;
|
|
465
|
+
newInventory.unitCost = unitCost;
|
|
466
|
+
if ((_a = inventory.reusablePallet) === null || _a === void 0 ? void 0 : _a.id) {
|
|
467
|
+
newInventory.reusablePallet = await this.trxMgr.getRepository(warehouse_base_1.Pallet).findOne(inventory.reusablePallet.id);
|
|
468
|
+
}
|
|
469
|
+
newInventory.orderProductId = Boolean(arrivalNotice) ? targetProduct.id : null;
|
|
470
|
+
newInventory.orderInventoryId = Boolean(returnOrder) ? targetInventory.id : null;
|
|
471
|
+
newInventory.warehouse = warehouse;
|
|
472
|
+
newInventory.location = location;
|
|
473
|
+
newInventory.zone = zone;
|
|
474
|
+
newInventory.status = warehouse_base_1.INVENTORY_STATUS.CHECKED;
|
|
475
|
+
newInventory.creator = this.user;
|
|
476
|
+
if (inventory === null || inventory === void 0 ? void 0 : inventory.expirationDate) {
|
|
477
|
+
newInventory.expirationDate = new Date(inventory.expirationDate);
|
|
478
|
+
}
|
|
479
|
+
if (arrivalNotice) {
|
|
480
|
+
targetProduct.actualPalletQty++;
|
|
481
|
+
targetProduct.actualPackQty = Boolean(targetProduct.actualPackQty) ? targetProduct.actualPackQty + qty : qty;
|
|
482
|
+
}
|
|
483
|
+
else if (returnOrder) {
|
|
484
|
+
targetInventory.actualPalletQty++;
|
|
485
|
+
targetInventory.actualPackQty = Boolean(targetInventory.actualPackQty)
|
|
486
|
+
? targetInventory.actualPackQty + qty
|
|
487
|
+
: qty;
|
|
488
|
+
}
|
|
489
|
+
await this.trxMgr.getRepository(warehouse_base_1.Inventory).save(newInventory);
|
|
490
|
+
}
|
|
491
|
+
else {
|
|
492
|
+
const updatedQty = foundInventory.qty + qty;
|
|
493
|
+
foundInventory.expirationDate = foundInventory.expirationDate ? new Date(foundInventory.expirationDate) : null;
|
|
494
|
+
foundInventory.qty = updatedQty;
|
|
495
|
+
foundInventory.uomValue +=
|
|
496
|
+
Math.round(qty *
|
|
497
|
+
(Boolean(arrivalNotice)
|
|
498
|
+
? targetProduct.uomValue
|
|
499
|
+
: targetInventory.returnUomValue / targetInventory.returnQty) *
|
|
500
|
+
1000) / 1000;
|
|
501
|
+
foundInventory.productDetail = productDetail;
|
|
502
|
+
if (arrivalNotice)
|
|
503
|
+
targetProduct.actualPackQty = targetProduct.actualPackQty + qty;
|
|
504
|
+
else if (returnOrder)
|
|
505
|
+
targetInventory.actualPackQty = targetInventory.actualPackQty + qty;
|
|
506
|
+
await this.trxMgr.getRepository(warehouse_base_1.Inventory).save(foundInventory);
|
|
507
|
+
}
|
|
508
|
+
if (arrivalNotice) {
|
|
509
|
+
targetProduct.updater = this.user;
|
|
510
|
+
targetProduct.productDetail = productDetail;
|
|
511
|
+
this.updateOrderTargets([targetProduct]);
|
|
512
|
+
}
|
|
513
|
+
else if (returnOrder) {
|
|
514
|
+
targetInventory.updater = this.user;
|
|
515
|
+
this.updateOrderTargets([targetInventory]);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
async completeProductScanUnload(worksheetDetailName, inventory) {
|
|
519
|
+
const worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
|
|
520
|
+
where: {
|
|
521
|
+
name: worksheetDetailName,
|
|
522
|
+
status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DEACTIVATED))
|
|
523
|
+
},
|
|
524
|
+
relations: [
|
|
525
|
+
'bizplace',
|
|
526
|
+
'worksheet',
|
|
527
|
+
'worksheet.arrivalNotice',
|
|
528
|
+
'worksheet.returnOrder',
|
|
529
|
+
'worksheet.bufferLocation',
|
|
530
|
+
'worksheet.bufferLocation.warehouse',
|
|
531
|
+
'targetProduct',
|
|
532
|
+
'targetProduct.product',
|
|
533
|
+
'targetProduct.productDetail',
|
|
534
|
+
'targetInventory',
|
|
535
|
+
'targetInventory.product',
|
|
536
|
+
'targetInventory.productDetail'
|
|
537
|
+
]
|
|
538
|
+
});
|
|
539
|
+
if (!worksheetDetail)
|
|
540
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(worksheetDetailName));
|
|
541
|
+
const bizplace = worksheetDetail.bizplace;
|
|
542
|
+
const worksheet = worksheetDetail.worksheet;
|
|
543
|
+
const arrivalNotice = worksheet.arrivalNotice;
|
|
544
|
+
const returnOrder = worksheet.returnOrder;
|
|
545
|
+
const targetProduct = worksheetDetail.targetProduct;
|
|
546
|
+
const targetInventory = worksheetDetail.targetInventory;
|
|
547
|
+
const productDetail = Boolean(arrivalNotice) ? targetProduct.productDetail : targetInventory.productDetail;
|
|
548
|
+
const batchId = Boolean(arrivalNotice) ? targetProduct.batchId : targetInventory.batchId;
|
|
549
|
+
const invQb = await this.trxMgr
|
|
550
|
+
.getRepository(warehouse_base_1.Inventory)
|
|
551
|
+
.createQueryBuilder('INV')
|
|
552
|
+
.where('INV.domain_id = :domainId', { domainId: this.domain.id })
|
|
553
|
+
.andWhere('INV.bizplace_id = :bizplaceId', { bizplaceId: bizplace.id })
|
|
554
|
+
.andWhere('INV.product_detail_id = :productDetailId', { productDetailId: productDetail.id })
|
|
555
|
+
.andWhere('INV.batch_id = :batchId', { batchId: batchId });
|
|
556
|
+
if (arrivalNotice)
|
|
557
|
+
invQb.andWhere('INV.ref_order_id = :arrivalNoticeId', { arrivalNoticeId: arrivalNotice.id });
|
|
558
|
+
else if (returnOrder)
|
|
559
|
+
invQb.andWhere('INV.ref_order_id = :returnOrderId', { returnOrderId: returnOrder.id });
|
|
560
|
+
if (inventory === null || inventory === void 0 ? void 0 : inventory.expirationDate) {
|
|
561
|
+
invQb.andWhere('INV.expiration_date = :expirationDate', {
|
|
562
|
+
expirationDate: inventory.expirationDate
|
|
563
|
+
});
|
|
564
|
+
}
|
|
565
|
+
if (inventory === null || inventory === void 0 ? void 0 : inventory.cartonId)
|
|
566
|
+
invQb.andWhere('INV.carton_id = :cartonId', { cartonId: inventory.cartonId });
|
|
567
|
+
else
|
|
568
|
+
invQb.andWhere('INV.pallet_id = :palletId', { palletId: inventory.palletId });
|
|
569
|
+
let foundInventory = await invQb.getOne();
|
|
570
|
+
if (!foundInventory)
|
|
571
|
+
throw new Error(this.ERROR_MSG.FIND.NO_RESULT(foundInventory.palletId));
|
|
572
|
+
foundInventory.status = warehouse_base_1.INVENTORY_STATUS.UNLOADED;
|
|
573
|
+
foundInventory = await this.transactionInventory(foundInventory, Boolean(arrivalNotice) ? arrivalNotice : returnOrder, foundInventory.qty, foundInventory.uomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNLOADING);
|
|
574
|
+
}
|
|
575
|
+
async undoUnload(orderType, orderNo, inventoryIds) {
|
|
576
|
+
for (var i = 0; i < inventoryIds.length; i++) {
|
|
577
|
+
const inventoryId = inventoryIds[i];
|
|
578
|
+
let inventory = await this.trxMgr.getRepository(warehouse_base_1.Inventory).findOne({
|
|
579
|
+
where: { domain: this.domain, id: inventoryId },
|
|
580
|
+
relations: ['location', 'product', 'productDetail']
|
|
581
|
+
});
|
|
582
|
+
this.checkRecordValidity(inventory, {
|
|
583
|
+
status: (status) => {
|
|
584
|
+
const availableStatus = [warehouse_base_1.INVENTORY_STATUS.UNLOADED, warehouse_base_1.INVENTORY_STATUS.CHECKED];
|
|
585
|
+
if (availableStatus.indexOf(status) < 0) {
|
|
586
|
+
throw new Error(this.ERROR_MSG.VALIDITY.UNEXPECTED_FIELD_VALUE('status', 'Inventory current status unable to undo', status));
|
|
587
|
+
}
|
|
588
|
+
return true;
|
|
589
|
+
}
|
|
590
|
+
});
|
|
591
|
+
const qty = inventory.qty;
|
|
592
|
+
let targetProduct;
|
|
593
|
+
let targetInventory;
|
|
594
|
+
let arrivalNotice;
|
|
595
|
+
let returnOrder;
|
|
596
|
+
let worksheetDetail;
|
|
597
|
+
let worksheetDetailStatus;
|
|
598
|
+
if (orderType === sales_base_1.ORDER_TYPES.ARRIVAL_NOTICE) {
|
|
599
|
+
arrivalNotice = await this.trxMgr.getRepository(sales_base_1.ArrivalNotice).findOne({
|
|
600
|
+
where: { domain: this.domain, name: orderNo },
|
|
601
|
+
relations: ['orderProducts', 'orderProducts.product', 'orderProducts.productDetail']
|
|
602
|
+
});
|
|
603
|
+
targetProduct = arrivalNotice.orderProducts.find(op => op.batchId == inventory.batchId && op.productDetail.id == inventory.productDetail.id);
|
|
604
|
+
let foundPartialUnloadedInventories = await this.trxMgr.getRepository(warehouse_base_1.Inventory).findOne({
|
|
605
|
+
where: { domain: this.domain, orderProductId: targetProduct.id, status: warehouse_base_1.INVENTORY_STATUS.PARTIALLY_UNLOADED }
|
|
606
|
+
});
|
|
607
|
+
if (foundPartialUnloadedInventories) {
|
|
608
|
+
worksheetDetailStatus = constants_1.WORKSHEET_STATUS.PARTIALLY_UNLOADED;
|
|
609
|
+
}
|
|
610
|
+
if (inventory.status == warehouse_base_1.INVENTORY_STATUS.UNLOADED) {
|
|
611
|
+
targetProduct.actualPackQty -= qty;
|
|
612
|
+
targetProduct.actualPalletQty--;
|
|
613
|
+
targetProduct.remark = null;
|
|
614
|
+
targetProduct.issue = null;
|
|
615
|
+
targetProduct.status = sales_base_1.ORDER_PRODUCT_STATUS.UNLOADING;
|
|
616
|
+
}
|
|
617
|
+
else {
|
|
618
|
+
targetProduct.actualPackQty -= qty;
|
|
619
|
+
}
|
|
620
|
+
targetProduct.updater = this.user;
|
|
621
|
+
await this.updateOrderTargets([targetProduct]);
|
|
622
|
+
worksheetDetail = await this.trxMgr
|
|
623
|
+
.getRepository(entities_1.WorksheetDetail)
|
|
624
|
+
.findOne({ where: { domain: this.domain, targetProduct } });
|
|
625
|
+
//remove all related serial numbers
|
|
626
|
+
await this.trxMgr.getRepository(warehouse_base_1.InventoryItem).delete({ inventory: inventoryId });
|
|
627
|
+
}
|
|
628
|
+
else {
|
|
629
|
+
returnOrder = await this.trxMgr.getRepository(sales_base_1.ReturnOrder).findOne({
|
|
630
|
+
where: { domain: this.domain, name: orderNo },
|
|
631
|
+
relations: ['orderInventories', 'orderInventories.inventory', 'orderInventories.productDetail']
|
|
632
|
+
});
|
|
633
|
+
targetInventory = returnOrder.orderInventories.find(oi => oi.batchId == inventory.batchId && oi.productDetail.id == inventory.productDetail.id);
|
|
634
|
+
if (inventory.status == warehouse_base_1.INVENTORY_STATUS.UNLOADED) {
|
|
635
|
+
targetInventory.actualPackQty -= qty;
|
|
636
|
+
targetInventory.actualPalletQty--;
|
|
637
|
+
targetInventory.status = sales_base_1.ORDER_PRODUCT_STATUS.UNLOADING;
|
|
638
|
+
}
|
|
639
|
+
else {
|
|
640
|
+
targetInventory.actualPackQty--;
|
|
641
|
+
}
|
|
642
|
+
targetInventory.updater = this.user;
|
|
643
|
+
await this.updateOrderTargets([targetInventory]);
|
|
644
|
+
worksheetDetail = await this.trxMgr
|
|
645
|
+
.getRepository(entities_1.WorksheetDetail)
|
|
646
|
+
.findOne({ where: { domain: this.domain, targetInventory } });
|
|
647
|
+
}
|
|
648
|
+
if (inventory.status == warehouse_base_1.INVENTORY_STATUS.CHECKED) {
|
|
649
|
+
inventory.qty -= qty;
|
|
650
|
+
inventory.uomValue =
|
|
651
|
+
Math.round(inventory.qty *
|
|
652
|
+
(Boolean(orderType === sales_base_1.ORDER_TYPES.ARRIVAL_NOTICE)
|
|
653
|
+
? targetProduct.uomValue
|
|
654
|
+
: targetInventory.returnUomValue) *
|
|
655
|
+
1000) / 1000;
|
|
656
|
+
inventory.updater = this.user;
|
|
657
|
+
await this.trxMgr.getRepository(warehouse_base_1.Inventory).save(inventory);
|
|
658
|
+
if (inventory.qty == 0) {
|
|
659
|
+
inventory.lastSeq++;
|
|
660
|
+
inventory.status = warehouse_base_1.INVENTORY_STATUS.DELETED;
|
|
661
|
+
inventory = await this.transactionInventory(inventory, Boolean(orderType === sales_base_1.ORDER_TYPES.ARRIVAL_NOTICE) ? arrivalNotice : returnOrder, -inventory.qty, -inventory.uomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNDO_UNLOADING);
|
|
662
|
+
inventory.qty = 0;
|
|
663
|
+
inventory.uomValue = 0;
|
|
664
|
+
inventory.updater = this.user;
|
|
665
|
+
targetProduct.actualPalletQty--;
|
|
666
|
+
await this.updateOrderTargets([targetProduct]);
|
|
667
|
+
await this.trxMgr.getRepository(warehouse_base_1.InventoryHistory).update({ inventory }, { inventory: null });
|
|
668
|
+
await this.trxMgr.getRepository(warehouse_base_1.Inventory).delete({ id: inventory.id });
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
else {
|
|
672
|
+
inventory.lastSeq++;
|
|
673
|
+
inventory.status = warehouse_base_1.INVENTORY_STATUS.DELETED;
|
|
674
|
+
inventory = await this.transactionInventory(inventory, Boolean(orderType === sales_base_1.ORDER_TYPES.ARRIVAL_NOTICE) ? arrivalNotice : returnOrder, -inventory.qty, -inventory.uomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNDO_UNLOADING);
|
|
675
|
+
inventory.qty = 0;
|
|
676
|
+
inventory.uomValue = 0;
|
|
677
|
+
inventory.updater = this.user;
|
|
678
|
+
await this.trxMgr.getRepository(warehouse_base_1.InventoryHistory).update({ inventory }, { inventory: null });
|
|
679
|
+
await this.trxMgr.getRepository(warehouse_base_1.Inventory).delete({ id: inventory.id });
|
|
680
|
+
}
|
|
681
|
+
worksheetDetail.issue = inventory.qty == 0 && (worksheetDetail === null || worksheetDetail === void 0 ? void 0 : worksheetDetail.issue) ? null : worksheetDetail.issue;
|
|
682
|
+
worksheetDetail.status =
|
|
683
|
+
worksheetDetailStatus == constants_1.WORKSHEET_STATUS.PARTIALLY_UNLOADED
|
|
684
|
+
? constants_1.WORKSHEET_STATUS.PARTIALLY_UNLOADED
|
|
685
|
+
: constants_1.WORKSHEET_STATUS.EXECUTING;
|
|
686
|
+
worksheetDetail.updater = this.user;
|
|
687
|
+
await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetail);
|
|
688
|
+
}
|
|
689
|
+
}
|
|
690
|
+
async undoSerialNumberUnload(worksheetDetailName, inventoryItemId) {
|
|
691
|
+
const worksheetDetail = await this.trxMgr.getRepository(entities_1.WorksheetDetail).findOne({
|
|
692
|
+
where: { name: worksheetDetailName, domain: this.domain, status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DEACTIVATED)) },
|
|
693
|
+
relations: [
|
|
694
|
+
'worksheet',
|
|
695
|
+
'worksheet.arrivalNotice',
|
|
696
|
+
'worksheet.returnOrder',
|
|
697
|
+
'targetProduct',
|
|
698
|
+
'targetProduct.product'
|
|
699
|
+
]
|
|
700
|
+
});
|
|
701
|
+
let worksheet = worksheetDetail.worksheet;
|
|
702
|
+
let arrivalNotice = worksheet.arrivalNotice;
|
|
703
|
+
let returnOrder = worksheet.returnOrder;
|
|
704
|
+
let targetInventory = worksheetDetail.targetInventory;
|
|
705
|
+
let targetProduct = worksheetDetail.targetProduct;
|
|
706
|
+
let inventoryItem = await this.trxMgr.getRepository(warehouse_base_1.InventoryItem).findOne({
|
|
707
|
+
where: { domain: this.domain, id: inventoryItemId },
|
|
708
|
+
relations: ['inventory', 'product']
|
|
709
|
+
});
|
|
710
|
+
let inventory = inventoryItem.inventory;
|
|
711
|
+
await this.trxMgr.getRepository(warehouse_base_1.InventoryItem).delete(inventoryItem.id);
|
|
712
|
+
inventory.qty--;
|
|
713
|
+
inventory.uomValue =
|
|
714
|
+
Math.round(inventory.qty *
|
|
715
|
+
(Boolean(arrivalNotice)
|
|
716
|
+
? targetProduct.uomValue
|
|
717
|
+
: targetInventory.returnUomValue / targetInventory.returnQty) *
|
|
718
|
+
1000) / 1000;
|
|
719
|
+
await this.trxMgr
|
|
720
|
+
.getRepository(warehouse_base_1.Inventory)
|
|
721
|
+
.update({ id: inventory.id }, { qty: inventory.qty, uomValue: inventory.uomValue });
|
|
722
|
+
targetProduct.actualPackQty--;
|
|
723
|
+
const inventoryItems = await this.trxMgr.getRepository(warehouse_base_1.InventoryItem).find({
|
|
724
|
+
where: { domain: this.domain, inboundOrderId: arrivalNotice.id, inventory }
|
|
725
|
+
});
|
|
726
|
+
if ((inventoryItems === null || inventoryItems === void 0 ? void 0 : inventoryItems.length) == 0) {
|
|
727
|
+
await this.trxMgr.getRepository(warehouse_base_1.Inventory).delete(inventory.id);
|
|
728
|
+
targetProduct.actualPalletQty--;
|
|
729
|
+
}
|
|
730
|
+
targetProduct.updater = this.user;
|
|
731
|
+
await this.updateOrderTargets([targetProduct]);
|
|
732
|
+
}
|
|
733
|
+
async activateUnloading(worksheetNo, unloadingWorksheetDetails) {
|
|
734
|
+
let worksheet = await this.findActivatableWorksheet(worksheetNo, constants_1.WORKSHEET_TYPE.UNLOADING, [
|
|
735
|
+
'bizplace',
|
|
736
|
+
'arrivalNotice',
|
|
737
|
+
'worksheetDetails',
|
|
738
|
+
'worksheetDetails.targetProduct',
|
|
739
|
+
'worksheetDetails.targetProduct.product',
|
|
740
|
+
'worksheetDetails.targetVas'
|
|
741
|
+
]);
|
|
742
|
+
let arrivalNotice = worksheet.arrivalNotice;
|
|
743
|
+
let vasWorksheet = new entities_1.Worksheet();
|
|
744
|
+
try {
|
|
745
|
+
vasWorksheet = await this.findWorksheetByRefOrder(arrivalNotice, constants_1.WORKSHEET_TYPE.VAS);
|
|
746
|
+
}
|
|
747
|
+
catch (e) {
|
|
748
|
+
// do nothing
|
|
749
|
+
}
|
|
750
|
+
if (!Object.keys(vasWorksheet).length || (vasWorksheet === null || vasWorksheet === void 0 ? void 0 : vasWorksheet.status) == constants_1.WORKSHEET_STATUS.DONE) {
|
|
751
|
+
const bizplace = worksheet.bizplace;
|
|
752
|
+
let worksheetDetails = worksheet.worksheetDetails;
|
|
753
|
+
const targetProductsId = worksheet.worksheetDetails.map(wsd => {
|
|
754
|
+
return wsd.targetProduct.id;
|
|
755
|
+
});
|
|
756
|
+
await this.trxMgr
|
|
757
|
+
.getRepository(sales_base_1.OrderProduct)
|
|
758
|
+
.update({ id: (0, typeorm_1.In)(targetProductsId) }, { status: sales_base_1.ORDER_PRODUCT_STATUS.UNLOADING, updater: this.user });
|
|
759
|
+
arrivalNotice.status = sales_base_1.ORDER_STATUS.PROCESSING;
|
|
760
|
+
arrivalNotice.updater = this.user;
|
|
761
|
+
this.updateRefOrder(arrivalNotice);
|
|
762
|
+
const palletizingWSDs = this.filterPalletizingWSDs(unloadingWorksheetDetails);
|
|
763
|
+
if (palletizingWSDs === null || palletizingWSDs === void 0 ? void 0 : palletizingWSDs.length) {
|
|
764
|
+
this.createPalletizingWSDs(bizplace, arrivalNotice, worksheetDetails, unloadingWorksheetDetails);
|
|
765
|
+
}
|
|
766
|
+
worksheet = await this.activateWorksheet(worksheet, worksheetDetails, unloadingWorksheetDetails);
|
|
767
|
+
}
|
|
768
|
+
else if (vasWorksheet && vasWorksheet.status == constants_1.WORKSHEET_STATUS.DEACTIVATED) {
|
|
769
|
+
await this.activateVAS(vasWorksheet.name, vasWorksheet.worksheetDetails);
|
|
770
|
+
}
|
|
771
|
+
else if (vasWorksheet && vasWorksheet.status == constants_1.WORKSHEET_STATUS.EXECUTING) {
|
|
772
|
+
throw new Error(`There is pending VAS execution`);
|
|
773
|
+
}
|
|
774
|
+
return worksheet;
|
|
775
|
+
}
|
|
776
|
+
async getProductScanningVal(arrivalNotice) {
|
|
777
|
+
var _a;
|
|
778
|
+
let productScanning = 'false';
|
|
779
|
+
const enableProductScanning = await this.trxMgr.getRepository(setting_base_1.Setting).findOne({
|
|
780
|
+
where: { domain: this.domain, category: 'id-rule', name: 'enable-product-scanning' }
|
|
781
|
+
});
|
|
782
|
+
if (enableProductScanning)
|
|
783
|
+
productScanning = enableProductScanning.value;
|
|
784
|
+
const partnerEnableProductScanning = await this.trxMgr.getRepository(setting_base_1.PartnerSetting).findOne({
|
|
785
|
+
where: { setting: enableProductScanning, domain: this.domain, partnerDomain: (_a = arrivalNotice.bizplace) === null || _a === void 0 ? void 0 : _a.domain }
|
|
786
|
+
});
|
|
787
|
+
if (partnerEnableProductScanning)
|
|
788
|
+
productScanning = partnerEnableProductScanning.value;
|
|
789
|
+
return productScanning;
|
|
790
|
+
}
|
|
791
|
+
async getInputQtyVal(arrivalNotice) {
|
|
792
|
+
var _a;
|
|
793
|
+
let inputQty = '';
|
|
794
|
+
const enableInputQty = await this.trxMgr.getRepository(setting_base_1.Setting).findOne({
|
|
795
|
+
where: { domain: this.domain, category: 'id-rule', name: 'enable-input-qty' }
|
|
796
|
+
});
|
|
797
|
+
if (enableInputQty)
|
|
798
|
+
inputQty = enableInputQty.value;
|
|
799
|
+
const partnerEnableInputQty = await this.trxMgr.getRepository(setting_base_1.PartnerSetting).findOne({
|
|
800
|
+
where: { setting: enableInputQty, domain: this.domain, partnerDomain: (_a = arrivalNotice.bizplace) === null || _a === void 0 ? void 0 : _a.domain }
|
|
801
|
+
});
|
|
802
|
+
if (partnerEnableInputQty)
|
|
803
|
+
inputQty = partnerEnableInputQty.value;
|
|
804
|
+
return parseInt(inputQty || '-1');
|
|
805
|
+
}
|
|
806
|
+
// only creates inventory history upon partial or full unload when
|
|
807
|
+
// productScanning is true
|
|
808
|
+
// inputQty is false
|
|
809
|
+
async createInventoryHistory(arrivalNotice, inventories) {
|
|
810
|
+
try {
|
|
811
|
+
if (inventories === undefined) {
|
|
812
|
+
const inventoryList = await this.trxMgr.getRepository(warehouse_base_1.Inventory).findAndCount({
|
|
813
|
+
where: {
|
|
814
|
+
domain: this.domain,
|
|
815
|
+
refOrderId: arrivalNotice.id
|
|
816
|
+
}
|
|
817
|
+
});
|
|
818
|
+
inventories = inventoryList[0];
|
|
819
|
+
}
|
|
820
|
+
for (const inventory of inventories) {
|
|
821
|
+
await this.transactionInventory(inventory, arrivalNotice, inventory.qty, inventory.uomValue, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNLOADING);
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
catch (e) {
|
|
825
|
+
throw e;
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
async completeUnloading(arrivalNoticeNo, unloadingWorksheetDetails) {
|
|
829
|
+
let arrivalNotice = await this.findRefOrder(sales_base_1.ArrivalNotice, { domain: this.domain, name: arrivalNoticeNo, status: (0, typeorm_1.In)([sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PUTTING_AWAY]) }, ['orderProducts', 'releaseGood', 'bizplace', 'bizplace.domain']);
|
|
830
|
+
if (arrivalNotice.crossDocking) {
|
|
831
|
+
// Picking worksheet for cross docking should be completed before complete it
|
|
832
|
+
// Find picking worksheet
|
|
833
|
+
const releaseGood = arrivalNotice.releaseGood;
|
|
834
|
+
const executingPickingWS = await this.trxMgr.getRepository(entities_1.Worksheet).findOne({
|
|
835
|
+
where: {
|
|
836
|
+
domain: this.domain,
|
|
837
|
+
releaseGood,
|
|
838
|
+
type: constants_1.WORKSHEET_TYPE.PICKING,
|
|
839
|
+
status: (0, typeorm_1.Not)((0, typeorm_1.Equal)(constants_1.WORKSHEET_STATUS.DONE))
|
|
840
|
+
}
|
|
841
|
+
});
|
|
842
|
+
if (executingPickingWS)
|
|
843
|
+
throw new Error(`Picking should be completed before complete unloading for cross docking.`);
|
|
844
|
+
}
|
|
845
|
+
if (arrivalNotice.orderProducts.some((op) => op.status === sales_base_1.ORDER_PRODUCT_STATUS.READY_TO_APPROVED)) {
|
|
846
|
+
throw new Error(`There's non-approved order products`);
|
|
847
|
+
}
|
|
848
|
+
let worksheet = await this.findWorksheetByRefOrder(arrivalNotice, constants_1.WORKSHEET_TYPE.UNLOADING, [
|
|
849
|
+
'worksheetDetails',
|
|
850
|
+
'worksheetDetails.targetProduct'
|
|
851
|
+
]);
|
|
852
|
+
this.checkRecordValidity(worksheet, { status: constants_1.WORKSHEET_STATUS.EXECUTING });
|
|
853
|
+
const partiallyUnloadedCnt = await this.trxMgr.getRepository(warehouse_base_1.Inventory).count({
|
|
854
|
+
where: { domain: this.domain, refOrderId: arrivalNotice.id, status: warehouse_base_1.INVENTORY_STATUS.PARTIALLY_UNLOADED }
|
|
855
|
+
});
|
|
856
|
+
if (partiallyUnloadedCnt) {
|
|
857
|
+
throw new Error('There is partially unloaded pallet, generate putaway worksheet before complete unloading.');
|
|
858
|
+
}
|
|
859
|
+
if (unloadingWorksheetDetails.some((wsd) => wsd.issue)) {
|
|
860
|
+
const worksheetDetails = worksheet.worksheetDetails;
|
|
861
|
+
unloadingWorksheetDetails = this.renewWorksheetDetails(worksheetDetails, unloadingWorksheetDetails, 'name', {
|
|
862
|
+
updater: this.user
|
|
863
|
+
});
|
|
864
|
+
const worksheetDetailsWithIssue = unloadingWorksheetDetails.filter((wsd) => wsd.issue);
|
|
865
|
+
if (worksheetDetailsWithIssue.length) {
|
|
866
|
+
await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetailsWithIssue);
|
|
867
|
+
}
|
|
868
|
+
const targetProductsWithIssue = worksheetDetailsWithIssue.map((wsd) => {
|
|
869
|
+
let targetProduct = wsd.targetProduct;
|
|
870
|
+
targetProduct.issue = wsd.issue;
|
|
871
|
+
return targetProduct;
|
|
872
|
+
});
|
|
873
|
+
await this.updateOrderTargets(targetProductsWithIssue);
|
|
874
|
+
}
|
|
875
|
+
if (arrivalNotice.status !== sales_base_1.ORDER_STATUS.PUTTING_AWAY) {
|
|
876
|
+
await this.completeWorksheet(worksheet, sales_base_1.ORDER_STATUS.READY_TO_PUTAWAY);
|
|
877
|
+
}
|
|
878
|
+
else {
|
|
879
|
+
await this.completeWorksheet(worksheet);
|
|
880
|
+
}
|
|
881
|
+
const productScanning = await this.getProductScanningVal(arrivalNotice);
|
|
882
|
+
const inputQty = await this.getInputQtyVal(arrivalNotice);
|
|
883
|
+
if (productScanning === 'true' && (inputQty < 0 || inputQty > 3)) {
|
|
884
|
+
await this.createInventoryHistory(arrivalNotice);
|
|
885
|
+
}
|
|
886
|
+
else {
|
|
887
|
+
const inventories = await this.trxMgr.getRepository(warehouse_base_1.Inventory).find({
|
|
888
|
+
where: {
|
|
889
|
+
domain: this.domain,
|
|
890
|
+
refOrderId: arrivalNotice.id,
|
|
891
|
+
status: (0, typeorm_1.In)([warehouse_base_1.INVENTORY_STATUS.UNLOADED, warehouse_base_1.INVENTORY_STATUS.CHECKED])
|
|
892
|
+
},
|
|
893
|
+
relations: ['domain', 'bizplace', 'product', 'warehouse', 'location']
|
|
894
|
+
});
|
|
895
|
+
for (let inventory of inventories) {
|
|
896
|
+
let inventoryItems = await this.trxMgr.getRepository(warehouse_base_1.InventoryItem).find({
|
|
897
|
+
where: { domain: this.domain, inventory }
|
|
898
|
+
});
|
|
899
|
+
if (inventoryItems === null || inventoryItems === void 0 ? void 0 : inventoryItems.length) {
|
|
900
|
+
inventory.status = warehouse_base_1.INVENTORY_STATUS.STORED;
|
|
901
|
+
await Promise.all(inventoryItems.map(async (inventoryItem) => {
|
|
902
|
+
await this.trxMgr
|
|
903
|
+
.getRepository(warehouse_base_1.InventoryItem)
|
|
904
|
+
.update({ id: inventoryItem.id }, { status: warehouse_base_1.INVENTORY_STATUS.STORED });
|
|
905
|
+
}));
|
|
906
|
+
await (0, warehouse_base_1.generateInventoryHistory)(inventory, arrivalNotice, warehouse_base_1.INVENTORY_TRANSACTION_TYPE.UNLOADING, inventory.qty, inventory.uomValue, this.user, this.trxMgr);
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
let vasWorksheet = await this.trxMgr.getRepository(entities_1.Worksheet).findOne({
|
|
911
|
+
where: {
|
|
912
|
+
arrivalNotice,
|
|
913
|
+
type: constants_1.WORKSHEET_TYPE.VAS
|
|
914
|
+
},
|
|
915
|
+
relations: ['worksheetDetails', 'worksheetDetails.targetVas', 'worksheetDetails.targetVas.vas']
|
|
916
|
+
});
|
|
917
|
+
if (vasWorksheet) {
|
|
918
|
+
let serviceVasWorksheetDetails = vasWorksheet.worksheetDetails.filter(x => x.targetVas.vas.type == sales_base_1.VAS_TYPES.SERVICE && x.status != constants_1.WORKSHEET_STATUS.DONE);
|
|
919
|
+
let materialsVasWorksheetDetails = vasWorksheet.worksheetDetails.filter(x => x.targetVas.vas.type == sales_base_1.VAS_TYPES.MATERIALS);
|
|
920
|
+
materialsVasWorksheetDetails.forEach((wsd) => {
|
|
921
|
+
wsd.status = constants_1.WORKSHEET_STATUS.DONE;
|
|
922
|
+
wsd.updater = this.user;
|
|
923
|
+
});
|
|
924
|
+
await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(materialsVasWorksheetDetails);
|
|
925
|
+
let targetVASs = materialsVasWorksheetDetails.map((wsd) => {
|
|
926
|
+
let targetVas = wsd.targetVas;
|
|
927
|
+
targetVas.status = sales_base_1.ORDER_VAS_STATUS.TERMINATED;
|
|
928
|
+
targetVas.updater = this.user;
|
|
929
|
+
return targetVas;
|
|
930
|
+
});
|
|
931
|
+
if (targetVASs.length)
|
|
932
|
+
await this.updateOrderTargets(targetVASs);
|
|
933
|
+
if (serviceVasWorksheetDetails.length <= 0) {
|
|
934
|
+
vasWorksheet.status = constants_1.WORKSHEET_STATUS.DONE;
|
|
935
|
+
vasWorksheet.updater = this.user;
|
|
936
|
+
await this.trxMgr.getRepository(entities_1.Worksheet).save(vasWorksheet);
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
}
|
|
940
|
+
async completeUnloadingPartially(arrivalNoticeNo, unloadingWorksheetDetail) {
|
|
941
|
+
const arrivalNotice = await this.findRefOrder(sales_base_1.ArrivalNotice, {
|
|
942
|
+
domain: this.domain,
|
|
943
|
+
name: arrivalNoticeNo,
|
|
944
|
+
status: (0, typeorm_1.In)([sales_base_1.ORDER_STATUS.PROCESSING, sales_base_1.ORDER_STATUS.PUTTING_AWAY])
|
|
945
|
+
}, ['bizplace', 'bizplace.domain']);
|
|
946
|
+
const worksheet = await this.findWorksheetByRefOrder(arrivalNotice, constants_1.WORKSHEET_TYPE.UNLOADING, [
|
|
947
|
+
'worksheetDetails',
|
|
948
|
+
'worksheetDetails.targetProduct'
|
|
949
|
+
]);
|
|
950
|
+
this.checkRecordValidity(worksheet, { status: constants_1.WORKSHEET_STATUS.EXECUTING });
|
|
951
|
+
let worksheetDetails = worksheet.worksheetDetails.filter(({ name: itm1 }) => unloadingWorksheetDetail.some(({ name: itm2 }) => itm2 === itm1));
|
|
952
|
+
worksheetDetails.forEach((wsds) => {
|
|
953
|
+
wsds.status = constants_1.WORKSHEET_STATUS.PARTIALLY_UNLOADED;
|
|
954
|
+
wsds.updater = this.user;
|
|
955
|
+
});
|
|
956
|
+
worksheetDetails = await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(worksheetDetails);
|
|
957
|
+
for (let i = 0; i < worksheetDetails.length; i++) {
|
|
958
|
+
worksheetDetails[i].targetProduct.status = sales_base_1.ORDER_PRODUCT_STATUS.PARTIALLY_UNLOADED;
|
|
959
|
+
worksheetDetails[i].targetProduct.remark = worksheetDetails[i].issue || worksheetDetails[i].targetProduct.remark;
|
|
960
|
+
await this.updateOrderTargets([worksheetDetails[i].targetProduct]);
|
|
961
|
+
}
|
|
962
|
+
let inventories = await this.trxMgr.getRepository(warehouse_base_1.Inventory).find({
|
|
963
|
+
where: {
|
|
964
|
+
domain: this.domain,
|
|
965
|
+
refOrderId: arrivalNotice.id,
|
|
966
|
+
status: (0, typeorm_1.In)([warehouse_base_1.INVENTORY_STATUS.UNLOADED, warehouse_base_1.INVENTORY_STATUS.CHECKED])
|
|
967
|
+
}
|
|
968
|
+
});
|
|
969
|
+
inventories.forEach((inventory) => {
|
|
970
|
+
inventory.status = warehouse_base_1.INVENTORY_STATUS.PARTIALLY_UNLOADED;
|
|
971
|
+
inventory.updater = this.user;
|
|
972
|
+
});
|
|
973
|
+
await this.trxMgr.getRepository(warehouse_base_1.Inventory).save(inventories);
|
|
974
|
+
const productScanning = await this.getProductScanningVal(arrivalNotice);
|
|
975
|
+
const inputQty = await this.getInputQtyVal(arrivalNotice);
|
|
976
|
+
if (productScanning === 'true' && (inputQty < 0 || inputQty > 3))
|
|
977
|
+
await this.createInventoryHistory(arrivalNotice, inventories);
|
|
978
|
+
let vasWorksheet = await this.trxMgr.getRepository(entities_1.Worksheet).findOne({
|
|
979
|
+
where: {
|
|
980
|
+
arrivalNotice,
|
|
981
|
+
type: constants_1.WORKSHEET_TYPE.VAS
|
|
982
|
+
},
|
|
983
|
+
relations: ['worksheetDetails', 'worksheetDetails.targetVas', 'worksheetDetails.targetVas.vas']
|
|
984
|
+
});
|
|
985
|
+
if (vasWorksheet) {
|
|
986
|
+
let serviceVasWorksheetDetails = vasWorksheet.worksheetDetails.filter(x => x.targetVas.vas.type == sales_base_1.VAS_TYPES.SERVICE && x.status != constants_1.WORKSHEET_STATUS.DONE);
|
|
987
|
+
let materialsVasWorksheetDetails = vasWorksheet.worksheetDetails.filter(x => x.targetVas.vas.type == sales_base_1.VAS_TYPES.MATERIALS);
|
|
988
|
+
materialsVasWorksheetDetails.forEach((wsd) => {
|
|
989
|
+
wsd.status = constants_1.WORKSHEET_STATUS.DONE;
|
|
990
|
+
wsd.updater = this.user;
|
|
991
|
+
});
|
|
992
|
+
await this.trxMgr.getRepository(entities_1.WorksheetDetail).save(materialsVasWorksheetDetails);
|
|
993
|
+
let targetVASs = materialsVasWorksheetDetails.map((wsd) => {
|
|
994
|
+
let targetVas = wsd.targetVas;
|
|
995
|
+
targetVas.status = sales_base_1.ORDER_VAS_STATUS.TERMINATED;
|
|
996
|
+
targetVas.updater = this.user;
|
|
997
|
+
return targetVas;
|
|
998
|
+
});
|
|
999
|
+
await this.updateOrderTargets(targetVASs);
|
|
1000
|
+
if (serviceVasWorksheetDetails.length <= 0) {
|
|
1001
|
+
vasWorksheet.status = constants_1.WORKSHEET_STATUS.DONE;
|
|
1002
|
+
vasWorksheet.updater = this.user;
|
|
1003
|
+
await this.trxMgr.getRepository(entities_1.Worksheet).save(vasWorksheet);
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
return worksheet;
|
|
1007
|
+
}
|
|
1008
|
+
async createPalletizingWSDs(bizplace, arrivalNotice, worksheetDetails, palletizingWSDs) {
|
|
1009
|
+
let palletizingOrderVASs = [];
|
|
1010
|
+
let currentSetNo = 1;
|
|
1011
|
+
if (worksheetDetails.some((wd) => wd.targetVas)) {
|
|
1012
|
+
const getSetNo = worksheetDetails.map((wd) => wd.targetVas.set);
|
|
1013
|
+
if (getSetNo.length > 0) {
|
|
1014
|
+
currentSetNo = Math.max(...getSetNo) + 1;
|
|
1015
|
+
}
|
|
1016
|
+
}
|
|
1017
|
+
for (let palletizingWSD of palletizingWSDs) {
|
|
1018
|
+
const palletizingVAS = await this.trxMgr.getRepository(sales_base_1.Vas).findOne({
|
|
1019
|
+
where: { domain: this.domain, id: palletizingWSD.palletizingVasId }
|
|
1020
|
+
});
|
|
1021
|
+
const targetProduct = worksheetDetails.find((wsd) => wsd.name === palletizingWSD.name).targetProduct;
|
|
1022
|
+
let palletizingOrderVas = new sales_base_1.OrderVas();
|
|
1023
|
+
palletizingOrderVas.domain = this.domain;
|
|
1024
|
+
palletizingOrderVas.bizplace = bizplace;
|
|
1025
|
+
palletizingOrderVas.name = sales_base_1.OrderNoGenerator.orderVas();
|
|
1026
|
+
palletizingOrderVas.arrivalNotice = arrivalNotice;
|
|
1027
|
+
palletizingOrderVas.vas = palletizingVAS;
|
|
1028
|
+
palletizingOrderVas.set = currentSetNo;
|
|
1029
|
+
palletizingOrderVas.targetType = sales_base_1.VAS_TARGET_TYPES.BATCH_AND_PRODUCT_TYPE;
|
|
1030
|
+
palletizingOrderVas.targetBatchId = targetProduct.batchId;
|
|
1031
|
+
palletizingOrderVas.qty = targetProduct.packQty;
|
|
1032
|
+
palletizingOrderVas.targetProduct = targetProduct.product;
|
|
1033
|
+
palletizingOrderVas.packingType = targetProduct.packingType;
|
|
1034
|
+
palletizingOrderVas.description = palletizingWSD.palletizingDescription;
|
|
1035
|
+
palletizingOrderVas.type = sales_base_1.ORDER_TYPES.ARRIVAL_NOTICE;
|
|
1036
|
+
palletizingOrderVas.status = sales_base_1.ORDER_VAS_STATUS.COMPLETED;
|
|
1037
|
+
palletizingOrderVas.creator = this.user;
|
|
1038
|
+
palletizingOrderVas.updater = this.user;
|
|
1039
|
+
palletizingOrderVas = await this.trxMgr.getRepository(sales_base_1.OrderVas).save(palletizingOrderVas);
|
|
1040
|
+
palletizingOrderVASs.push(palletizingOrderVas);
|
|
1041
|
+
currentSetNo++;
|
|
1042
|
+
}
|
|
1043
|
+
let vasWorksheet = await this.findWorksheetByRefOrder(arrivalNotice, constants_1.WORKSHEET_TYPE.VAS);
|
|
1044
|
+
if (!vasWorksheet) {
|
|
1045
|
+
await this.generateVasWorksheet(arrivalNotice);
|
|
1046
|
+
}
|
|
1047
|
+
else {
|
|
1048
|
+
await this.createWorksheetDetails(vasWorksheet, constants_1.WORKSHEET_TYPE.VAS, palletizingOrderVASs);
|
|
1049
|
+
}
|
|
1050
|
+
}
|
|
1051
|
+
filterPalletizingWSDs(unloadingWSDs) {
|
|
1052
|
+
return unloadingWSDs.filter((wsd) => wsd.palletQty && wsd.palletizingDescription);
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
exports.UnloadingWorksheetController = UnloadingWorksheetController;
|
|
1056
|
+
//# sourceMappingURL=unloading-worksheet-controller.js.map
|