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