@things-factory/worksheet-base 5.0.13 → 6.0.0-alpha.1
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/sellercraft-controller.js +225 -191
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js +2 -2
- package/dist-server/controllers/inbound/unloading-returning-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +28 -17
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js +1 -1
- package/dist-server/controllers/inspect/cycle-count-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +17 -3
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +221 -144
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/returning-worksheet-controller.js +16 -0
- package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js +8 -8
- package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/render-elccl-grn.js +21 -16
- package/dist-server/controllers/render-elccl-grn.js.map +1 -1
- package/dist-server/controllers/render-fm-grn.js +43 -26
- package/dist-server/controllers/render-fm-grn.js.map +1 -1
- package/dist-server/controllers/render-grn.js +42 -28
- package/dist-server/controllers/render-grn.js.map +1 -1
- package/dist-server/controllers/render-invoices.js +4 -5
- package/dist-server/controllers/render-invoices.js.map +1 -1
- package/dist-server/controllers/render-job-sheet.js +19 -19
- package/dist-server/controllers/render-job-sheet.js.map +1 -1
- package/dist-server/controllers/render-kimeda-grn.js +38 -23
- package/dist-server/controllers/render-kimeda-grn.js.map +1 -1
- package/dist-server/controllers/render-manifest.js +8 -9
- package/dist-server/controllers/render-manifest.js.map +1 -1
- package/dist-server/controllers/render-manual-do.js +15 -15
- package/dist-server/controllers/render-manual-do.js.map +1 -1
- package/dist-server/controllers/render-orientage-do.js +74 -28
- package/dist-server/controllers/render-orientage-do.js.map +1 -1
- package/dist-server/controllers/render-orientage-grn.js +25 -15
- package/dist-server/controllers/render-orientage-grn.js.map +1 -1
- package/dist-server/controllers/render-po.js +28 -19
- package/dist-server/controllers/render-po.js.map +1 -1
- package/dist-server/controllers/render-ro-do.js +139 -105
- package/dist-server/controllers/render-ro-do.js.map +1 -1
- package/dist-server/controllers/render-seebuu-grn.js +29 -19
- package/dist-server/controllers/render-seebuu-grn.js.map +1 -1
- package/dist-server/controllers/vas/vas-worksheet-controller.js +5 -5
- package/dist-server/controllers/vas/vas-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +75 -25
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +2 -1
- package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -1
- package/dist-server/entities/worksheet-detail.js +14 -12
- package/dist-server/entities/worksheet-detail.js.map +1 -1
- package/dist-server/entities/worksheet-movement.js +1 -2
- package/dist-server/entities/worksheet-movement.js.map +1 -1
- package/dist-server/entities/worksheet.js +13 -13
- package/dist-server/entities/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/pallet/pallet-outbound.js +1 -1
- package/dist-server/graphql/resolvers/pallet/pallet-outbound.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +6 -6
- package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/check-inventory-release.js +6 -5
- 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 +8 -8
- 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 +82 -80
- package/dist-server/graphql/resolvers/worksheet/confirm-cancellation-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/create-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js +5 -4
- package/dist-server/graphql/resolvers/worksheet/cross-dock-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +5 -5
- package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/cycle-count-worksheet.js +5 -4
- 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 +83 -52
- package/dist-server/graphql/resolvers/worksheet/delivery-order-by-worksheet.js.map +1 -1
- 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-sellercraft-document.js +67 -0
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-document.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js +1 -34
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.js +70 -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 +34 -3
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js +3 -3
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js +14 -10
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/having-vas.js +7 -7
- package/dist-server/graphql/resolvers/worksheet/having-vas.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/index.js +5 -3
- package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inspecting/complete-inspection.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inspecting/inspecting.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inspecting/relocate-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inspecting/undo-inspection.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +18 -9
- package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js +6 -5
- package/dist-server/graphql/resolvers/worksheet/loaded-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/activate-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +14 -14
- package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading/undo-loading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +11 -10
- package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js +5 -4
- package/dist-server/graphql/resolvers/worksheet/not-tally-target-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js +3 -4
- package/dist-server/graphql/resolvers/worksheet/packing/activate-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js +2 -2
- package/dist-server/graphql/resolvers/worksheet/packing/complete-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +16 -11
- package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +96 -22
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +5 -5
- package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/pending-cancellation-release-order.js +93 -81
- 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 +0 -19
- package/dist-server/graphql/resolvers/worksheet/picking/activate-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js +11 -5
- package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +10 -4
- package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +34 -38
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js +46 -35
- package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.js +7 -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 +33 -16
- package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js +5 -8
- package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/undo-picking-assignment.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +6 -5
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js +10 -8
- package/dist-server/graphql/resolvers/worksheet/proceed-extra-products.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/activate-putaway.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +4 -3
- package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/putaway.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway/undo-putaway.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-return/putaway-return.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +3 -3
- package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +3 -3
- package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js +16 -11
- package/dist-server/graphql/resolvers/worksheet/recommend-putway-location.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js +139 -149
- package/dist-server/graphql/resolvers/worksheet/reject-cancellation-release-order.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js +1 -1
- package/dist-server/graphql/resolvers/worksheet/relocate-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js +2 -2
- package/dist-server/graphql/resolvers/worksheet/replace-picking-pallets.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +3 -3
- package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/returning/activate-return.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/returning/complete-return.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/returning/returning.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/activate-sorting.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/transfer.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js +8 -7
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +9 -8
- package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js +4 -2
- package/dist-server/graphql/resolvers/worksheet/unloading/activate-unloading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +6 -2
- package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/scan-product-unload.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.js +7 -3
- 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 +3 -3
- package/dist-server/graphql/resolvers/worksheet/unloading-return-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +5 -5
- 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/activate-vas.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas/assign-vas-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas/complete-vas.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas/execute-vas.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas/undo-vas-inventory.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas/undo-vas.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-candidates.js +13 -12
- package/dist-server/graphql/resolvers/worksheet/vas-candidates.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-inventories.js +7 -6
- package/dist-server/graphql/resolvers/worksheet/vas-inventories.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js +36 -18
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/common-utils.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.js +10 -3
- 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 +3 -2
- 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 +11 -3
- 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.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.js +3 -2
- 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 +2 -2
- 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 +1 -1
- 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 +2 -1
- 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 +3 -3
- 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.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js +7 -7
- package/dist-server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js +11 -10
- package/dist-server/graphql/resolvers/worksheet/vas-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js +7 -4
- package/dist-server/graphql/resolvers/worksheet/worksheet-by-order-no.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js +5 -5
- package/dist-server/graphql/resolvers/worksheet/worksheet-with-pagination.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +72 -42
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheets.js +42 -17
- package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.js +3 -3
- package/dist-server/graphql/resolvers/worksheet-detail/check-progressing-pallet.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 +13 -10
- 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-batch-picking-worksheet-details.js +7 -5
- package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +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 +3 -3
- package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +5 -2
- package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/index.js +2 -1
- package/dist-server/graphql/resolvers/worksheet-detail/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.js +81 -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 +2 -2
- package/dist-server/graphql/resolvers/worksheet-detail/update-worksheet-detail.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-detail/worksheet-detail.js +2 -2
- 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 +1 -1
- 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/delete-worksheet-movement.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js +1 -1
- package/dist-server/graphql/resolvers/worksheet-movement/update-worksheet-movement.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet-movement/worksheet-movement.js +1 -1
- package/dist-server/graphql/resolvers/worksheet-movement/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/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/delivery-order-info.js +3 -0
- package/dist-server/graphql/types/worksheet/delivery-order-info.js.map +1 -1
- 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/index.js +26 -15
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- 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/sellercraft-document.js +11 -0
- package/dist-server/graphql/types/worksheet/sellercraft-document.js.map +1 -0
- package/dist-server/graphql/types/worksheet-detail/index.js +10 -0
- package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +1 -0
- package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/inventory-util.js +26 -20
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/dist-server/utils/worksheet-util.js +8 -6
- package/dist-server/utils/worksheet-util.js.map +1 -1
- package/package.json +17 -17
- package/server/controllers/ecommerce/sellercraft-controller.ts +282 -223
- package/server/controllers/inbound/unloading-returning-worksheet-controller.ts +9 -17
- package/server/controllers/inbound/unloading-worksheet-controller.ts +55 -66
- package/server/controllers/inspect/cycle-count-worksheet-controller.ts +1 -1
- package/server/controllers/outbound/packing-worksheet-controller.ts +25 -4
- package/server/controllers/outbound/picking-worksheet-controller.ts +292 -172
- package/server/controllers/outbound/returning-worksheet-controller.ts +23 -0
- package/server/controllers/outbound/sorting-worksheet-controller.ts +20 -20
- package/server/controllers/render-elccl-grn.ts +16 -11
- package/server/controllers/render-fm-grn.ts +32 -14
- package/server/controllers/render-grn.ts +31 -16
- package/server/controllers/render-invoices.ts +3 -3
- package/server/controllers/render-job-sheet.ts +13 -11
- package/server/controllers/render-kimeda-grn.ts +28 -13
- package/server/controllers/render-manifest.ts +25 -24
- package/server/controllers/render-manual-do.ts +9 -10
- package/server/controllers/render-orientage-do.ts +79 -30
- package/server/controllers/render-orientage-grn.ts +30 -20
- package/server/controllers/render-po.ts +31 -20
- package/server/controllers/render-ro-do.ts +151 -124
- package/server/controllers/render-seebuu-grn.ts +21 -11
- package/server/controllers/vas/vas-worksheet-controller.ts +19 -20
- package/server/controllers/worksheet-controller.ts +97 -27
- package/server/entities/warehouse-bizplace-onhand-inventory.ts +2 -1
- package/server/entities/worksheet-detail.ts +9 -0
- package/server/graphql/resolvers/pallet/pallet-outbound.ts +5 -8
- package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +8 -6
- package/server/graphql/resolvers/worksheet/cancel-draft-release-order.ts +4 -11
- package/server/graphql/resolvers/worksheet/check-inventory-release.ts +8 -7
- package/server/graphql/resolvers/worksheet/check-stock-take-current-location.ts +10 -8
- package/server/graphql/resolvers/worksheet/confirm-cancellation-release-order.ts +112 -138
- package/server/graphql/resolvers/worksheet/create-worksheet.ts +6 -8
- package/server/graphql/resolvers/worksheet/cross-dock-picking.ts +8 -7
- package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +7 -7
- package/server/graphql/resolvers/worksheet/cycle-count-worksheet.ts +6 -6
- package/server/graphql/resolvers/worksheet/delete-worksheet.ts +5 -3
- package/server/graphql/resolvers/worksheet/delivery-order-by-worksheet.ts +87 -53
- package/server/graphql/resolvers/worksheet/fetch-delivery-order-ro.ts +190 -0
- package/server/graphql/resolvers/worksheet/fetch-sellercraft-document.ts +69 -0
- package/server/graphql/resolvers/worksheet/find-release-orders-by-task-no.ts +5 -45
- package/server/graphql/resolvers/worksheet/find-release-orders-by-worksheet-no.ts +5 -5
- package/server/graphql/resolvers/worksheet/find-sorting-release-orders-by-task-no.ts +80 -0
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.ts +45 -5
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-batch-picking-worksheet.ts +11 -10
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-cycle-count-worksheet.ts +1 -1
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.ts +7 -14
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-return-worksheet.ts +10 -4
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-partial-putaway-worksheet.ts +10 -4
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-putaway-worksheet.ts +5 -3
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +25 -29
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-return-order-worksheet.ts +6 -4
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-vas-order-worksheet.ts +6 -4
- package/server/graphql/resolvers/worksheet/having-vas.ts +10 -8
- package/server/graphql/resolvers/worksheet/index.ts +7 -3
- package/server/graphql/resolvers/worksheet/inspecting/activate-cycle-count.ts +5 -3
- package/server/graphql/resolvers/worksheet/inspecting/add-extra-pallet.ts +4 -2
- package/server/graphql/resolvers/worksheet/inspecting/check-missing-pallet.ts +5 -3
- package/server/graphql/resolvers/worksheet/inspecting/complete-inspection.ts +5 -3
- package/server/graphql/resolvers/worksheet/inspecting/inspecting.ts +9 -3
- package/server/graphql/resolvers/worksheet/inspecting/relocate-pallet.ts +16 -4
- package/server/graphql/resolvers/worksheet/inspecting/undo-inspection.ts +5 -3
- package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +34 -17
- package/server/graphql/resolvers/worksheet/loaded-inventories.ts +7 -6
- package/server/graphql/resolvers/worksheet/loading/activate-loading.ts +5 -3
- package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +16 -16
- package/server/graphql/resolvers/worksheet/loading/loading.ts +5 -3
- package/server/graphql/resolvers/worksheet/loading/undo-loading.ts +5 -3
- package/server/graphql/resolvers/worksheet/loading-worksheet.ts +11 -11
- package/server/graphql/resolvers/worksheet/not-tally-target-inventories.ts +6 -6
- package/server/graphql/resolvers/worksheet/packing/activate-packing.ts +14 -13
- package/server/graphql/resolvers/worksheet/packing/complete-packing.ts +4 -4
- package/server/graphql/resolvers/worksheet/packing/packing.ts +3 -3
- package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +21 -17
- package/server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.ts +2 -2
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +102 -24
- package/server/graphql/resolvers/worksheet/palletizing-pallets.ts +10 -8
- package/server/graphql/resolvers/worksheet/pending-cancellation-release-order.ts +107 -97
- package/server/graphql/resolvers/worksheet/picking/activate-batch-picking.ts +3 -30
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +3 -3
- package/server/graphql/resolvers/worksheet/picking/assign-picking-inventories.ts +23 -4
- package/server/graphql/resolvers/worksheet/picking/assign-picking-worker.ts +25 -17
- package/server/graphql/resolvers/worksheet/picking/batch-picking.ts +4 -2
- package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +15 -6
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +37 -42
- package/server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts +52 -42
- package/server/graphql/resolvers/worksheet/picking/my-picking-assignment-status.ts +15 -6
- package/server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.ts +49 -35
- package/server/graphql/resolvers/worksheet/picking/picking.ts +4 -2
- package/server/graphql/resolvers/worksheet/picking/scan-product-batch-picking.ts +11 -6
- package/server/graphql/resolvers/worksheet/picking/scan-product-picking.ts +10 -35
- package/server/graphql/resolvers/worksheet/picking/seal-tote.ts +2 -2
- package/server/graphql/resolvers/worksheet/picking/undo-picking-assignment.ts +9 -3
- package/server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts +2 -2
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +11 -11
- package/server/graphql/resolvers/worksheet/proceed-extra-products.ts +13 -13
- package/server/graphql/resolvers/worksheet/putaway/activate-putaway.ts +5 -3
- package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +6 -5
- package/server/graphql/resolvers/worksheet/putaway/putaway.ts +5 -3
- package/server/graphql/resolvers/worksheet/putaway/undo-putaway.ts +5 -3
- package/server/graphql/resolvers/worksheet/putaway-return/activate-putaway-return.ts +5 -3
- package/server/graphql/resolvers/worksheet/putaway-return/complete-putaway-return.ts +13 -6
- package/server/graphql/resolvers/worksheet/putaway-return/putaway-return.ts +5 -3
- package/server/graphql/resolvers/worksheet/putaway-return/undo-putaway-return.ts +5 -3
- package/server/graphql/resolvers/worksheet/putaway-returning-worksheet.ts +4 -6
- package/server/graphql/resolvers/worksheet/putaway-worksheet.ts +4 -6
- package/server/graphql/resolvers/worksheet/recommend-putway-location.ts +20 -19
- package/server/graphql/resolvers/worksheet/reject-cancellation-release-order.ts +154 -220
- package/server/graphql/resolvers/worksheet/relocate-pallet.ts +6 -4
- package/server/graphql/resolvers/worksheet/replace-picking-pallets.ts +3 -7
- package/server/graphql/resolvers/worksheet/return-worksheet.ts +4 -6
- package/server/graphql/resolvers/worksheet/returning/activate-return.ts +5 -3
- package/server/graphql/resolvers/worksheet/returning/complete-return.ts +5 -3
- package/server/graphql/resolvers/worksheet/returning/returning.ts +5 -3
- package/server/graphql/resolvers/worksheet/sorting/activate-sorting.ts +5 -3
- package/server/graphql/resolvers/worksheet/sorting/complete-order-sorting.ts +7 -5
- package/server/graphql/resolvers/worksheet/sorting/complete-worksheet-sorting.ts +5 -3
- package/server/graphql/resolvers/worksheet/sorting/scan-product-sorting.ts +9 -3
- package/server/graphql/resolvers/worksheet/sorting/sorting-product.ts +9 -3
- package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +5 -5
- package/server/graphql/resolvers/worksheet/transfer.ts +10 -12
- package/server/graphql/resolvers/worksheet/unloaded-inventories-by-reusable-pallet.ts +13 -7
- package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +9 -9
- package/server/graphql/resolvers/worksheet/unloading/activate-unloading.ts +9 -5
- package/server/graphql/resolvers/worksheet/unloading/complete-product-scan-unload.ts +5 -3
- package/server/graphql/resolvers/worksheet/unloading/complete-unloading-partially.ts +5 -3
- package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +8 -4
- package/server/graphql/resolvers/worksheet/unloading/scan-product-unload.ts +5 -3
- package/server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts +2 -2
- package/server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts +2 -2
- package/server/graphql/resolvers/worksheet/unloading/undo-unloading.ts +2 -2
- package/server/graphql/resolvers/worksheet/unloading/unload.ts +7 -7
- package/server/graphql/resolvers/worksheet/unloading-return/activate-unloading-return.ts +5 -3
- package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-return-partially.ts +5 -3
- package/server/graphql/resolvers/worksheet/unloading-return/complete-unload-returning.ts +9 -5
- package/server/graphql/resolvers/worksheet/unloading-return-worksheet.ts +4 -6
- package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +5 -7
- package/server/graphql/resolvers/worksheet/update-worksheet.ts +5 -5
- package/server/graphql/resolvers/worksheet/vas/activate-vas.ts +5 -3
- package/server/graphql/resolvers/worksheet/vas/assign-vas-inventories.ts +5 -3
- package/server/graphql/resolvers/worksheet/vas/complete-vas.ts +5 -3
- package/server/graphql/resolvers/worksheet/vas/execute-vas.ts +5 -3
- package/server/graphql/resolvers/worksheet/vas/undo-vas-inventory.ts +5 -3
- package/server/graphql/resolvers/worksheet/vas/undo-vas.ts +5 -3
- package/server/graphql/resolvers/worksheet/vas-candidates.ts +20 -17
- package/server/graphql/resolvers/worksheet/vas-inventories.ts +9 -7
- package/server/graphql/resolvers/worksheet/vas-transactions/common-utils.ts +36 -18
- package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/check-relabelable.ts +12 -5
- package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/complete-relabeling.ts +6 -3
- package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/relabeling.ts +14 -6
- package/server/graphql/resolvers/worksheet/vas-transactions/relabeling/undo-relabeling.ts +5 -7
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/complete-repackaging.ts +3 -2
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/repackaging.ts +8 -5
- package/server/graphql/resolvers/worksheet/vas-transactions/repackaging/undo-repackaging.ts +6 -16
- package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/complete-repalletizing.ts +5 -2
- package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/repalletizing.ts +10 -8
- package/server/graphql/resolvers/worksheet/vas-transactions/repalletizing/undo-repalletizing.ts +3 -5
- package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/complete-unpacking.ts +6 -6
- package/server/graphql/resolvers/worksheet/vas-transactions/unpacking/unpacking.ts +10 -13
- package/server/graphql/resolvers/worksheet/vas-worksheet.ts +13 -11
- package/server/graphql/resolvers/worksheet/worksheet-by-order-no.ts +13 -8
- package/server/graphql/resolvers/worksheet/worksheet-with-pagination.ts +7 -5
- package/server/graphql/resolvers/worksheet/worksheet.ts +86 -32
- package/server/graphql/resolvers/worksheet/worksheets.ts +60 -19
- package/server/graphql/resolvers/worksheet-detail/check-progressing-pallet.ts +7 -8
- package/server/graphql/resolvers/worksheet-detail/create-worksheet-detail.ts +4 -6
- package/server/graphql/resolvers/worksheet-detail/delete-worksheet-detail.ts +5 -6
- package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +13 -19
- package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts +19 -27
- package/server/graphql/resolvers/worksheet-detail/generate-carton-id.ts +2 -4
- package/server/graphql/resolvers/worksheet-detail/generate-pallet-id.ts +6 -6
- package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +7 -4
- package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +3 -3
- package/server/graphql/resolvers/worksheet-detail/index.ts +3 -1
- package/server/graphql/resolvers/worksheet-detail/regenerate-release-good-worksheet-details.ts +164 -0
- package/server/graphql/resolvers/worksheet-detail/update-worksheet-detail.ts +8 -7
- package/server/graphql/resolvers/worksheet-detail/worksheet-detail.ts +6 -7
- package/server/graphql/resolvers/worksheet-detail/worksheet-details-by-product-group.ts +5 -5
- package/server/graphql/resolvers/worksheet-detail/worksheet-details.ts +6 -7
- package/server/graphql/resolvers/worksheet-movement/create-worksheet-movement.ts +4 -3
- package/server/graphql/resolvers/worksheet-movement/delete-worksheet-movement.ts +3 -2
- package/server/graphql/resolvers/worksheet-movement/update-worksheet-movement.ts +2 -4
- package/server/graphql/resolvers/worksheet-movement/worksheet-movement.ts +3 -6
- package/server/graphql/resolvers/worksheet-movement/worksheet-movements.ts +4 -4
- package/server/graphql/types/worksheet/batch-pick-worksheet-info.ts +9 -0
- package/server/graphql/types/worksheet/delivery-order-info.ts +3 -0
- package/server/graphql/types/worksheet/delivery-order-ro.ts +15 -0
- package/server/graphql/types/worksheet/index.ts +49 -38
- package/server/graphql/types/worksheet/multiple-release-good-worksheet.ts +8 -0
- package/server/graphql/types/worksheet/sellercraft-document.ts +8 -0
- package/server/graphql/types/worksheet-detail/index.ts +10 -0
- package/server/graphql/types/worksheet-detail/inventory-detail.ts +1 -0
- package/server/utils/inventory-util.ts +20 -14
- package/server/utils/worksheet-util.ts +10 -6
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js +0 -25
- package/dist-server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.js.map +0 -1
- package/dist-server/graphql/types/worksheet/airwaybill.js +0 -11
- package/dist-server/graphql/types/worksheet/airwaybill.js.map +0 -1
- package/server/graphql/resolvers/worksheet/fetch-sellercraft-airway-bill.ts +0 -30
- package/server/graphql/types/worksheet/airwaybill.ts +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-job-sheet.js","sourceRoot":"","sources":["../../server/controllers/render-job-sheet.ts"],"names":[],"mappings":"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","sourcesContent":["import { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { config } from '@things-factory/env'\nimport { Product } from '@things-factory/product-base'\nimport { ArrivalNotice, JobSheet, OrderProduct } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\nimport FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { EntityManager, getManager, getRepository, IsNull, Not } from 'typeorm'\nimport { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet } from '../entities'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderJobSheet({ ganNo, timezoneOffSet }, context) {\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n }) //.. find domain\n\n // find GAN\n const foundGAN: ArrivalNotice = await getRepository(ArrivalNotice).findOne({\n where: { domain, name: ganNo },\n relations: ['bizplace', 'bizplace.company', 'bizplace.domain']\n })\n\n // find job sheet\n const foundJS: JobSheet = await getRepository(JobSheet).findOne({\n where: { domain, bizplace: foundGAN.bizplace, arrivalNoticeRefNo: foundGAN.name }\n })\n\n // customer bizplace\n const partnerBiz: Bizplace = foundGAN.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain, category: TEMPLATE_TYPE.JOB_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n // find unloading worksheet for getting unloading time\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING },\n relations: ['updater']\n })\n\n // find list of unloaded product\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: { domain, arrivalNotice: foundGAN, actualPalletQty: Not(IsNull()) },\n relations: ['product']\n })\n\n const products: Product[] = targetProducts.map((op: OrderProduct) => op.product)\n const prodType: any[] = products.map(prod => prod.type)\n\n return await getManager().transaction(async (trxMgr: EntityManager) => {\n await trxMgr.query(\n `\n create temp table temp_invHistory on commit drop as (\n select i2.id as inventory_id, i2.pallet_id, i2.product_id, i2.packing_type, i2.batch_id,\n ih.id as inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.uom_value, ih.opening_uom_value, \n ih.created_at\n from (\n select i2.* from inventories i2 \n inner join order_inventories oi on oi.inventory_id = i2.id\n where oi.arrival_notice_id = $1\n ) i2\n inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id \n )\n `,\n [foundGAN.id]\n )\n\n const invItems: any[] = await trxMgr.query(\n ` \n SELECT rn,\n inv_id, \n case when rn = 1 then \"packingType\" else null end as \"packingType\",\n case when rn = 1 then \"createdAt\" else null end as \"createdAt\",\n case when rn = 1 then \"productName\" else null end as \"productName\", \n case when rn = 1 then \"unloadedQty\" else null end as \"unloadedQty\",\n case when rn = 1 then \"outboundAt\" else null end as \"outboundAt\",\n \"doName\",\n case when rn = 1 then \"palletId\" else null end as \"palletId\",\n qty,\n case when rn = 1 then \"ownTransport\" else null end as \"ownTransport\",\n case when rn = 1 then \"vasName\" else null end as \"vasName\" \n from \n ( \n SELECT\n row_number() over(partition by pallet_id order by inv.pallet_id, product.name asc) as rn,\n inv.id AS \"inv_id\", inv.packing_type AS \"packingType\", inv.created_at AS \"createdAt\", product.name AS \"productName\", \n (\t\n select distinct on(pallet_id) COALESCE(qty, 0) AS unloadedQty from temp_invHistory invh \n where invh.status = 'UNLOADED' and invh.inventory_id = inv.id\n order by pallet_id, seq asc\n ) AS \"unloadedQty\", \n (\n select distinct on(pallet_id) COALESCE(created_at, null) AS outboundAt from temp_invHistory invh \n where invh.status = 'TERMINATED' and invh.inventory_id = inv.id\n order by pallet_id, seq desc\n ) AS \"outboundAt\",\n STRING_AGG (case when do2.name is not null then (CONCAT(do2.delivery_date, ' (', orderInv.release_qty, ') ', do2.name, ', ', case when do2.own_collection = true then 'TPT N' else 'TPT Y' end )) else null end, ', ') AS \"doName\",\n case when plt.name is not null then (CONCAT(inv.pallet_id, ' (', plt.name, ')')) else inv.pallet_id end AS \"palletId\",\n SUM(orderInv.release_qty) as \"qty\",\n do2.own_collection AS \"ownTransport\",\n STRING_AGG (vas.name, ', ') AS \"vasName\" \n FROM inventories inv \n LEFT JOIN order_inventories orderInv ON orderInv.inventory_id = inv.id AND orderInv.release_good_id is not null and orderInv.status <> 'CANCELLED' AND orderinv.picked_qty > 0\n LEFT JOIN order_vass orderVass ON orderVass.inventory_id = inv.id \n LEFT JOIN vass vas ON vas.id = orderVass.vas_id \n LEFT JOIN pallets plt on plt.id = inv.reusable_pallet_id\n LEFT JOIN delivery_orders do2 ON do2.id = orderInv.delivery_order_id \n LEFT JOIN products product ON product.id=inv.product_id \n inner join order_inventories oi on oi.inventory_id = inv.id\n where oi.arrival_notice_id = $1\n AND inv.domain_id = $2\n GROUP BY inv.id, product.name, do2.own_collection, plt.name\n ORDER BY inv.pallet_id, product.name asc\n ) foo\n `,\n [foundGAN.id, domain.id]\n )\n\n const sumPackQty = targetProducts.map((op: OrderProduct) => op.actualPackQty).reduce((a, b) => a + b, 0)\n\n let sumPalletQty = 0\n if (foundJS?.sumPalletQty) {\n sumPalletQty = foundJS.sumPalletQty\n }\n let index = 0\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.company.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n container_no: foundJS?.containerNo ? foundJS.containerNo : foundJS.deliveryOrderNo,\n container_size: foundJS ? foundJS.containerSize : null,\n eta: foundGAN?.ata ? DateTimeConverter.datetime(foundGAN.ata, timezoneOffSet) : null,\n ata: foundGAN?.ata ? DateTimeConverter.date(foundGAN.ata) : null,\n unloading_date: foundWS?.startedAt ? DateTimeConverter.date(foundWS.startedAt) : '',\n mt_date: foundJS?.containerMtDate ? DateTimeConverter.date(foundJS.containerMtDate) : '',\n advise_mt_date: foundJS.adviseMtDate ? DateTimeConverter.datetime(foundJS.adviseMtDate, timezoneOffSet) : '',\n loose_item: foundGAN.looseItem ? 'N' : 'Y',\n no_of_pallet:\n (sumPalletQty > 1 ? `${sumPalletQty} PALLETS` : `${sumPalletQty} PALLET`) +\n `, ` +\n (sumPackQty ? `${sumPackQty} CTN` : 0),\n commodity: prodType.filter((a, b) => prodType.indexOf(a) === b).join(', '),\n created_on: DateTimeConverter.date(foundJS.createdAt),\n job_no: foundJS ? foundJS.name : null,\n ref_no: foundGAN.name,\n product_list: invItems.map(item => {\n index = item.rn == 1 ? index + 1 : index\n return {\n idx: item.rn == 1 ? index : '',\n pallet_id: item.palletId,\n product_name: item.productName,\n product_type: item.packingType,\n in_pallet: DateTimeConverter.date(item.createdAt),\n out_pallet: item?.outboundAt ? DateTimeConverter.date(item.outboundAt) : null,\n do_list: item.doName,\n product_qty: item.unloadedQty,\n remark: foundGAN.looseItem ? 'STRETCH FILM' : null\n }\n })\n }\n const formData = new FormData()\n\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n })\n}\n"]}
|
|
1
|
+
{"version":3,"file":"render-job-sheet.js","sourceRoot":"","sources":["../../server/controllers/render-job-sheet.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { EntityManager, getManager, IsNull, Not } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { Product } from '@things-factory/product-base'\nimport { ArrivalNotice, JobSheet, OrderProduct } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet } from '../entities'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderJobSheet({ ganNo, timezoneOffSet }, context) {\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n }) //.. find domain\n\n // find GAN\n const foundGAN: ArrivalNotice = await getRepository(ArrivalNotice).findOne({\n where: { domain: { id: domain.id }, name: ganNo },\n relations: ['bizplace', 'bizplace.company', 'bizplace.domain']\n })\n\n // find job sheet\n const foundJS: JobSheet = await getRepository(JobSheet).findOne({\n where: { domain: { id: domain.id }, bizplace: foundGAN.bizplace, arrivalNoticeRefNo: foundGAN.name }\n })\n\n // customer bizplace\n const partnerBiz: Bizplace = foundGAN.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, category: TEMPLATE_TYPE.JOB_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n // find unloading worksheet for getting unloading time\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain: { id: domain.id }, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING },\n relations: ['updater']\n })\n\n // find list of unloaded product\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: { domain: { id: domain.id }, arrivalNotice: foundGAN, actualPalletQty: Not(IsNull()) },\n relations: ['product']\n })\n\n const products: Product[] = targetProducts.map((op: OrderProduct) => op.product)\n const prodType: any[] = products.map(prod => prod.type)\n\n return await getManager().transaction(async (trxMgr: EntityManager) => {\n await trxMgr.query(\n `\n create temp table temp_invHistory on commit drop as (\n select i2.id as inventory_id, i2.pallet_id, i2.product_id, i2.packing_type, i2.batch_id,\n ih.id as inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.uom_value, ih.opening_uom_value, \n ih.created_at\n from (\n select i2.* from inventories i2 \n inner join order_inventories oi on oi.inventory_id = i2.id\n where oi.arrival_notice_id = $1\n ) i2\n inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id \n )\n `,\n [foundGAN.id]\n )\n\n const invItems: any[] = await trxMgr.query(\n ` \n SELECT rn,\n inv_id, \n case when rn = 1 then \"packingType\" else null end as \"packingType\",\n case when rn = 1 then \"createdAt\" else null end as \"createdAt\",\n case when rn = 1 then \"productName\" else null end as \"productName\", \n case when rn = 1 then \"unloadedQty\" else null end as \"unloadedQty\",\n case when rn = 1 then \"outboundAt\" else null end as \"outboundAt\",\n \"doName\",\n case when rn = 1 then \"palletId\" else null end as \"palletId\",\n qty,\n case when rn = 1 then \"ownTransport\" else null end as \"ownTransport\",\n case when rn = 1 then \"vasName\" else null end as \"vasName\" \n from \n ( \n SELECT\n row_number() over(partition by pallet_id order by inv.pallet_id, product.name asc) as rn,\n inv.id AS \"inv_id\", inv.packing_type AS \"packingType\", inv.created_at AS \"createdAt\", product.name AS \"productName\", \n (\t\n select distinct on(pallet_id) COALESCE(qty, 0) AS unloadedQty from temp_invHistory invh \n where invh.status = 'UNLOADED' and invh.inventory_id = inv.id\n order by pallet_id, seq asc\n ) AS \"unloadedQty\", \n (\n select distinct on(pallet_id) COALESCE(created_at, null) AS outboundAt from temp_invHistory invh \n where invh.status = 'TERMINATED' and invh.inventory_id = inv.id\n order by pallet_id, seq desc\n ) AS \"outboundAt\",\n STRING_AGG (case when do2.name is not null then (CONCAT(do2.delivery_date, ' (', orderInv.release_qty, ') ', do2.name, ', ', case when do2.own_collection = true then 'TPT N' else 'TPT Y' end )) else null end, ', ') AS \"doName\",\n case when plt.name is not null then (CONCAT(inv.pallet_id, ' (', plt.name, ')')) else inv.pallet_id end AS \"palletId\",\n SUM(orderInv.release_qty) as \"qty\",\n do2.own_collection AS \"ownTransport\",\n STRING_AGG (vas.name, ', ') AS \"vasName\" \n FROM inventories inv \n LEFT JOIN order_inventories orderInv ON orderInv.inventory_id = inv.id AND orderInv.release_good_id is not null and orderInv.status <> 'CANCELLED' AND orderinv.picked_qty > 0\n LEFT JOIN order_vass orderVass ON orderVass.inventory_id = inv.id \n LEFT JOIN vass vas ON vas.id = orderVass.vas_id \n LEFT JOIN pallets plt on plt.id = inv.reusable_pallet_id\n LEFT JOIN delivery_orders do2 ON do2.id = orderInv.delivery_order_id \n LEFT JOIN products product ON product.id=inv.product_id \n inner join order_inventories oi on oi.inventory_id = inv.id\n where oi.arrival_notice_id = $1\n AND inv.domain_id = $2\n GROUP BY inv.id, product.name, do2.own_collection, plt.name\n ORDER BY inv.pallet_id, product.name asc\n ) foo\n `,\n [foundGAN.id, domain.id]\n )\n\n const sumPackQty = targetProducts.map((op: OrderProduct) => op.actualPackQty).reduce((a, b) => a + b, 0)\n\n let sumPalletQty = 0\n if (foundJS?.sumPalletQty) {\n sumPalletQty = foundJS.sumPalletQty\n }\n let index = 0\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.company.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n container_no: foundJS?.containerNo ? foundJS.containerNo : foundJS.deliveryOrderNo,\n container_size: foundJS ? foundJS.containerSize : null,\n eta: foundGAN?.ata ? DateTimeConverter.datetime(foundGAN.ata, timezoneOffSet) : null,\n ata: foundGAN?.ata ? DateTimeConverter.date(foundGAN.ata) : null,\n unloading_date: foundWS?.startedAt ? DateTimeConverter.date(foundWS.startedAt) : '',\n mt_date: foundJS?.containerMtDate ? DateTimeConverter.date(foundJS.containerMtDate) : '',\n advise_mt_date: foundJS.adviseMtDate ? DateTimeConverter.datetime(foundJS.adviseMtDate, timezoneOffSet) : '',\n loose_item: foundGAN.looseItem ? 'N' : 'Y',\n no_of_pallet:\n (sumPalletQty > 1 ? `${sumPalletQty} PALLETS` : `${sumPalletQty} PALLET`) +\n `, ` +\n (sumPackQty ? `${sumPackQty} CTN` : 0),\n commodity: prodType.filter((a, b) => prodType.indexOf(a) === b).join(', '),\n created_on: DateTimeConverter.date(foundJS.createdAt),\n job_no: foundJS ? foundJS.name : null,\n ref_no: foundGAN.name,\n product_list: invItems.map(item => {\n index = item.rn == 1 ? index + 1 : index\n return {\n idx: item.rn == 1 ? index : '',\n pallet_id: item.palletId,\n product_name: item.productName,\n product_type: item.packingType,\n in_pallet: DateTimeConverter.date(item.createdAt),\n out_pallet: item?.outboundAt ? DateTimeConverter.date(item.outboundAt) : null,\n do_list: item.doName,\n product_qty: item.unloadedQty,\n remark: foundGAN.looseItem ? 'STRETCH FILM' : null\n }\n })\n }\n const formData = new FormData()\n\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n })\n}\n"]}
|
|
@@ -17,12 +17,12 @@ const datetime_util_1 = require("../utils/datetime-util");
|
|
|
17
17
|
const REPORT_API_URL = env_1.config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html');
|
|
18
18
|
async function renderKimedaGRN({ grnNo, timezoneOffSet }, context) {
|
|
19
19
|
// 1. find domain
|
|
20
|
-
const domain = await (0,
|
|
20
|
+
const domain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({
|
|
21
21
|
where: { id: context.state.domain.id }
|
|
22
22
|
});
|
|
23
23
|
// 2. find grn
|
|
24
|
-
const foundGRN = await (0,
|
|
25
|
-
where: { domain, name: grnNo },
|
|
24
|
+
const foundGRN = await (0, shell_1.getRepository)(sales_base_1.GoodsReceivalNote).findOne({
|
|
25
|
+
where: { domain: { id: domain.id }, name: grnNo },
|
|
26
26
|
relations: ['domain', 'bizplace', 'bizplace.domain', 'bizplace.company', 'arrivalNotice']
|
|
27
27
|
});
|
|
28
28
|
// 3. find GAN
|
|
@@ -30,58 +30,73 @@ async function renderKimedaGRN({ grnNo, timezoneOffSet }, context) {
|
|
|
30
30
|
const ownRefNo = foundGAN.refNo;
|
|
31
31
|
// 4. find customer bizplace
|
|
32
32
|
const partnerBiz = foundGRN.bizplace;
|
|
33
|
-
const partnerDomain = await (0,
|
|
33
|
+
const partnerDomain = await (0, shell_1.getRepository)(auth_base_1.Partner).findOne({
|
|
34
34
|
where: { partnerDomain: partnerBiz.domain, domain },
|
|
35
35
|
relations: ['domain']
|
|
36
36
|
});
|
|
37
37
|
const domainOwner = partnerDomain.domain;
|
|
38
|
-
const domainBizplace = await (0,
|
|
38
|
+
const domainBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
|
|
39
39
|
where: { domain: domainOwner },
|
|
40
40
|
relations: ['company']
|
|
41
41
|
});
|
|
42
42
|
// 5. find domain contact point
|
|
43
|
-
const foundCP = await (0,
|
|
44
|
-
where: { domain, bizplace: domainBizplace }
|
|
43
|
+
const foundCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
|
|
44
|
+
where: { domain: { id: domain.id }, bizplace: domainBizplace }
|
|
45
45
|
});
|
|
46
46
|
// 5. find domain contact point
|
|
47
|
-
const foundPartnerCP = await (0,
|
|
48
|
-
where: { domain, bizplace: partnerBiz }
|
|
47
|
+
const foundPartnerCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
|
|
48
|
+
where: { domain: { id: domain.id }, bizplace: partnerBiz }
|
|
49
49
|
});
|
|
50
50
|
// 6. find unloading worksheet
|
|
51
|
-
const foundWS = await (0,
|
|
52
|
-
where: {
|
|
51
|
+
const foundWS = await (0, shell_1.getRepository)(entities_1.Worksheet).findOne({
|
|
52
|
+
where: {
|
|
53
|
+
domain: { id: domain.id },
|
|
54
|
+
arrivalNotice: foundGAN,
|
|
55
|
+
type: constants_1.WORKSHEET_TYPE.UNLOADING,
|
|
56
|
+
status: sales_base_1.ORDER_STATUS.DONE
|
|
57
|
+
},
|
|
53
58
|
relations: ['worksheetDetails', 'updater']
|
|
54
59
|
});
|
|
55
60
|
// find putaway worksheet
|
|
56
|
-
const foundPutawayWS = await (0,
|
|
57
|
-
where: {
|
|
61
|
+
const foundPutawayWS = await (0, shell_1.getRepository)(entities_1.Worksheet).findOne({
|
|
62
|
+
where: {
|
|
63
|
+
domain: { id: domain.id },
|
|
64
|
+
arrivalNotice: foundGAN,
|
|
65
|
+
type: constants_1.WORKSHEET_TYPE.PUTAWAY,
|
|
66
|
+
status: sales_base_1.ORDER_STATUS.DONE
|
|
67
|
+
},
|
|
58
68
|
relations: ['worksheetDetails', 'updater']
|
|
59
69
|
});
|
|
60
|
-
const targetProducts = await (0,
|
|
61
|
-
where: {
|
|
70
|
+
const targetProducts = await (0, shell_1.getRepository)(sales_base_1.OrderProduct).find({
|
|
71
|
+
where: {
|
|
72
|
+
domain: { id: domain.id },
|
|
73
|
+
arrivalNotice: foundGAN,
|
|
74
|
+
actualPalletQty: (0, typeorm_1.Not)((0, typeorm_1.IsNull)()),
|
|
75
|
+
actualPackQty: (0, typeorm_1.Not)((0, typeorm_1.IsNull)())
|
|
76
|
+
},
|
|
62
77
|
relations: ['product']
|
|
63
78
|
});
|
|
64
79
|
// 7. find grn template based on category
|
|
65
|
-
const foundTemplate = await (0,
|
|
66
|
-
where: { domain, category: constants_1.TEMPLATE_TYPE.GRN_TEMPLATE }
|
|
80
|
+
const foundTemplate = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
|
|
81
|
+
where: { domain: { id: domain.id }, category: constants_1.TEMPLATE_TYPE.GRN_TEMPLATE }
|
|
67
82
|
});
|
|
68
83
|
// 8. find grn logo
|
|
69
|
-
const foundLogo = await (0,
|
|
84
|
+
const foundLogo = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
|
|
70
85
|
where: {
|
|
71
|
-
domain,
|
|
86
|
+
domain: { id: domain.id },
|
|
72
87
|
category: constants_1.TEMPLATE_TYPE.LOGO
|
|
73
88
|
}
|
|
74
89
|
});
|
|
75
90
|
// 9. find signature
|
|
76
|
-
const foundSignature = await (0,
|
|
91
|
+
const foundSignature = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
|
|
77
92
|
where: {
|
|
78
|
-
domain,
|
|
93
|
+
domain: { id: domain.id },
|
|
79
94
|
category: constants_1.TEMPLATE_TYPE.SIGNATURE
|
|
80
95
|
}
|
|
81
96
|
});
|
|
82
|
-
const foundCop = await (0,
|
|
97
|
+
const foundCop = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
|
|
83
98
|
where: {
|
|
84
|
-
domain,
|
|
99
|
+
domain: { id: domain.id },
|
|
85
100
|
category: constants_1.TEMPLATE_TYPE.COP
|
|
86
101
|
}
|
|
87
102
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-kimeda-grn.js","sourceRoot":"","sources":["../../server/controllers/render-kimeda-grn.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { getRepository, IsNull, Not } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { ArrivalNotice, GoodsReceivalNote, ORDER_STATUS, OrderProduct } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet } from '../entities'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderKimedaGRN({ grnNo, timezoneOffSet }, context: any) {\n // 1. find domain\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n // 2. find grn\n const foundGRN: GoodsReceivalNote = await getRepository(GoodsReceivalNote).findOne({\n where: { domain, name: grnNo },\n relations: ['domain', 'bizplace', 'bizplace.domain', 'bizplace.company', 'arrivalNotice']\n })\n\n // 3. find GAN\n const foundGAN: ArrivalNotice = foundGRN.arrivalNotice\n const ownRefNo = foundGAN.refNo\n\n // 4. find customer bizplace\n const partnerBiz: Bizplace = foundGRN.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain, domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n // 5. find domain contact point\n const foundCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain, bizplace: domainBizplace }\n })\n\n // 5. find domain contact point\n const foundPartnerCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain, bizplace: partnerBiz }\n })\n\n // 6. find unloading worksheet\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.UNLOADING, status: ORDER_STATUS.DONE },\n relations: ['worksheetDetails', 'updater']\n })\n\n // find putaway worksheet\n const foundPutawayWS: Worksheet = await getRepository(Worksheet).findOne({\n where: { domain, arrivalNotice: foundGAN, type: WORKSHEET_TYPE.PUTAWAY, status: ORDER_STATUS.DONE },\n relations: ['worksheetDetails', 'updater']\n })\n\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: { domain, arrivalNotice: foundGAN, actualPalletQty: Not(IsNull()), actualPackQty: Not(IsNull()) },\n relations: ['product']\n })\n\n // 7. find grn template based on category\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain, category: TEMPLATE_TYPE.GRN_TEMPLATE }\n })\n\n // 8. find grn logo\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n // 9. find signature\n const foundSignature: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.SIGNATURE\n }\n })\n\n const foundCop: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.COP\n }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n let signature = null\n if (foundSignature?.path) {\n signature = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundSignature.path, 'base64'))\n }\n\n let cop = null\n if (foundCop?.path) {\n cop = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundCop.path, 'base64'))\n }\n\n const data = {\n logo_url: logo,\n sign_url: signature,\n cop_url: cop,\n customer_biz: partnerBiz.name,\n customer_address: partnerBiz.address,\n company_domain: domainBizplace.company.name,\n company_phone: foundCP.phone,\n company_email: foundCP.email,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n order_no: foundGRN.name,\n gan_no: foundGAN.name,\n gan_accepted_at: foundGAN.acceptedAt ? DateTimeConverter.datetime(foundGAN.acceptedAt, timezoneOffSet) : '',\n unload_date: DateTimeConverter.date(foundWS.endedAt),\n ref_no: ownRefNo ? `${foundGAN.name} / ${foundGAN.refNo}` : `${foundGAN.name}`,\n received_date: DateTimeConverter.date(foundWS.endedAt),\n truck_no: foundGAN.truckNo || '',\n container_no: foundGAN.containerNo || '',\n delivery_order_no: foundGAN.deliveryOrderNo ? foundGAN.deliveryOrderNo : '',\n account_no: foundPartnerCP ? foundPartnerCP.accountNo : '',\n unloaded_by: foundWS ? foundWS.updater.name : '',\n putaway_by: foundPutawayWS ? foundPutawayWS.updater.name : '',\n product_list: targetProducts.map((item, idx) => {\n return {\n list_no: idx + 1,\n product_sku: `${item.product.sku}`,\n product_name: `${item.product.name}(${item.product.description})`,\n product_desc: item.product.description,\n product_nameOnly: item.product.name,\n product_type: item.packingType,\n product_batch: item.batchId,\n product_qty: item.actualPackQty,\n product_uom_value: `${Math.round(item.uomValue * 100) / 100} ${item.uom}`,\n pallet_qty: item.actualPalletQty,\n remark: (item.remark ? item.remark : '') + (item.issue ? ' [Issue]: ' + item.issue : '')\n }\n })\n }\n\n const formData = new FormData()\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n}\n"]}
|
|
1
|
+
{"version":3,"file":"render-kimeda-grn.js","sourceRoot":"","sources":["../../server/controllers/render-kimeda-grn.ts"],"names":[],"mappings":";;;;AAAA,kEAAgC;AAChC,oEAA8B;AAC9B,qCAAqC;AAErC,qEAAqE;AACrE,yDAAmD;AACnD,uDAAiE;AACjE,6CAA4C;AAC5C,2DAAyG;AACzG,iDAA6D;AAE7D,4CAA4D;AAC5D,0CAAuC;AACvC,0DAA0D;AAE1D,MAAM,cAAc,GAAG,YAAM,CAAC,GAAG,CAAC,cAAc,EAAE,6CAA6C,CAAC,CAAA;AAEzF,KAAK,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,OAAwB;IACvF,iBAAiB;IACjB,MAAM,MAAM,GAAW,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC;QACzD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;KACvC,CAAC,CAAA;IAEF,cAAc;IACd,MAAM,QAAQ,GAAsB,MAAM,IAAA,qBAAa,EAAC,8BAAiB,CAAC,CAAC,OAAO,CAAC;QACjF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACjD,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,CAAC;KAC1F,CAAC,CAAA;IAEF,cAAc;IACd,MAAM,QAAQ,GAAkB,QAAQ,CAAC,aAAa,CAAA;IACtD,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAA;IAE/B,4BAA4B;IAC5B,MAAM,UAAU,GAAa,QAAQ,CAAC,QAAQ,CAAA;IAE9C,MAAM,aAAa,GAAY,MAAM,IAAA,qBAAa,EAAC,mBAAO,CAAC,CAAC,OAAO,CAAC;QAClE,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE;QACnD,SAAS,EAAE,CAAC,QAAQ,CAAC;KACtB,CAAC,CAAA;IAEF,MAAM,WAAW,GAAW,aAAa,CAAC,MAAM,CAAA;IAChD,MAAM,cAAc,GAAa,MAAM,IAAA,qBAAa,EAAC,mBAAQ,CAAC,CAAC,OAAO,CAAC;QACrE,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;QAC9B,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,+BAA+B;IAC/B,MAAM,OAAO,GAAiB,MAAM,IAAA,qBAAa,EAAC,uBAAY,CAAC,CAAC,OAAO,CAAC;QACtE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE;KAC/D,CAAC,CAAA;IAEF,+BAA+B;IAC/B,MAAM,cAAc,GAAiB,MAAM,IAAA,qBAAa,EAAC,uBAAY,CAAC,CAAC,OAAO,CAAC;QAC7E,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;KAC3D,CAAC,CAAA;IAEF,8BAA8B;IAC9B,MAAM,OAAO,GAAc,MAAM,IAAA,qBAAa,EAAC,oBAAS,CAAC,CAAC,OAAO,CAAC;QAChE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,aAAa,EAAE,QAAQ;YACvB,IAAI,EAAE,0BAAc,CAAC,SAAS;YAC9B,MAAM,EAAE,yBAAY,CAAC,IAAI;SAC1B;QACD,SAAS,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC;KAC3C,CAAC,CAAA;IAEF,yBAAyB;IACzB,MAAM,cAAc,GAAc,MAAM,IAAA,qBAAa,EAAC,oBAAS,CAAC,CAAC,OAAO,CAAC;QACvE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,aAAa,EAAE,QAAQ;YACvB,IAAI,EAAE,0BAAc,CAAC,OAAO;YAC5B,MAAM,EAAE,yBAAY,CAAC,IAAI;SAC1B;QACD,SAAS,EAAE,CAAC,kBAAkB,EAAE,SAAS,CAAC;KAC3C,CAAC,CAAA;IAEF,MAAM,cAAc,GAAmB,MAAM,IAAA,qBAAa,EAAC,yBAAY,CAAC,CAAC,IAAI,CAAC;QAC5E,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,aAAa,EAAE,QAAQ;YACvB,eAAe,EAAE,IAAA,aAAG,EAAC,IAAA,gBAAM,GAAE,CAAC;YAC9B,aAAa,EAAE,IAAA,aAAG,EAAC,IAAA,gBAAM,GAAE,CAAC;SAC7B;QACD,SAAS,EAAE,CAAC,SAAS,CAAC;KACvB,CAAC,CAAA;IAEF,yCAAyC;IACzC,MAAM,aAAa,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACxE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAa,CAAC,YAAY,EAAE;KAC3E,CAAC,CAAA;IAEF,mBAAmB;IACnB,MAAM,SAAS,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACpE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,yBAAa,CAAC,IAAI;SAC7B;KACF,CAAC,CAAA;IAEF,oBAAoB;IACpB,MAAM,cAAc,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACzE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,yBAAa,CAAC,SAAS;SAClC;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACnE,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,yBAAa,CAAC,GAAG;SAC5B;KACF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,yBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEpE,IAAI,IAAI,GAAG,IAAI,CAAA;IACf,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,IAAI,EAAE;QACnB,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,MAAM,yBAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;KACtG;IAED,IAAI,SAAS,GAAG,IAAI,CAAA;IACpB,IAAI,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,EAAE;QACxB,SAAS,GAAG,OAAO,GAAG,cAAc,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,MAAM,yBAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;KACrH;IAED,IAAI,GAAG,GAAG,IAAI,CAAA;IACd,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,EAAE;QAClB,GAAG,GAAG,OAAO,GAAG,cAAc,CAAC,QAAQ,GAAG,UAAU,GAAG,CAAC,MAAM,yBAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;KACzG;IAED,MAAM,IAAI,GAAG;QACX,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,GAAG;QACZ,YAAY,EAAE,UAAU,CAAC,IAAI;QAC7B,gBAAgB,EAAE,UAAU,CAAC,OAAO;QACpC,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI;QAC3C,aAAa,EAAE,OAAO,CAAC,KAAK;QAC5B,aAAa,EAAE,OAAO,CAAC,KAAK;QAC5B,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,GAAG;QACvC,eAAe,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO;QAC/C,QAAQ,EAAE,QAAQ,CAAC,IAAI;QACvB,MAAM,EAAE,QAAQ,CAAC,IAAI;QACrB,eAAe,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,iCAAiB,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;QAC3G,WAAW,EAAE,iCAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACpD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE;QAC9E,aAAa,EAAE,iCAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;QACtD,QAAQ,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;QAChC,YAAY,EAAE,QAAQ,CAAC,WAAW,IAAI,EAAE;QACxC,iBAAiB,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;QAC3E,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;QAC1D,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAChD,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE;QAC7D,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC7C,OAAO;gBACL,OAAO,EAAE,GAAG,GAAG,CAAC;gBAChB,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBAClC,YAAY,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG;gBACjE,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;gBACtC,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;gBACnC,YAAY,EAAE,IAAI,CAAC,WAAW;gBAC9B,aAAa,EAAE,IAAI,CAAC,OAAO;gBAC3B,WAAW,EAAE,IAAI,CAAC,aAAa;gBAC/B,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE;gBACzE,UAAU,EAAE,IAAI,CAAC,eAAe;gBAChC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;aACzF,CAAA;QACH,CAAC,CAAC;KACH,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,cAAc,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IAEF,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;AAC9B,CAAC;AAvKD,0CAuKC","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { IsNull, Not } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { ArrivalNotice, GoodsReceivalNote, ORDER_STATUS, OrderProduct } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE, WORKSHEET_TYPE } from '../constants'\nimport { Worksheet } from '../entities'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderKimedaGRN({ grnNo, timezoneOffSet }, context: ResolverContext) {\n // 1. find domain\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n // 2. find grn\n const foundGRN: GoodsReceivalNote = await getRepository(GoodsReceivalNote).findOne({\n where: { domain: { id: domain.id }, name: grnNo },\n relations: ['domain', 'bizplace', 'bizplace.domain', 'bizplace.company', 'arrivalNotice']\n })\n\n // 3. find GAN\n const foundGAN: ArrivalNotice = foundGRN.arrivalNotice\n const ownRefNo = foundGAN.refNo\n\n // 4. find customer bizplace\n const partnerBiz: Bizplace = foundGRN.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain, domain },\n relations: ['domain']\n })\n\n const domainOwner: Domain = partnerDomain.domain\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n // 5. find domain contact point\n const foundCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, bizplace: domainBizplace }\n })\n\n // 5. find domain contact point\n const foundPartnerCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, bizplace: partnerBiz }\n })\n\n // 6. find unloading worksheet\n const foundWS: Worksheet = await getRepository(Worksheet).findOne({\n where: {\n domain: { id: domain.id },\n arrivalNotice: foundGAN,\n type: WORKSHEET_TYPE.UNLOADING,\n status: ORDER_STATUS.DONE\n },\n relations: ['worksheetDetails', 'updater']\n })\n\n // find putaway worksheet\n const foundPutawayWS: Worksheet = await getRepository(Worksheet).findOne({\n where: {\n domain: { id: domain.id },\n arrivalNotice: foundGAN,\n type: WORKSHEET_TYPE.PUTAWAY,\n status: ORDER_STATUS.DONE\n },\n relations: ['worksheetDetails', 'updater']\n })\n\n const targetProducts: OrderProduct[] = await getRepository(OrderProduct).find({\n where: {\n domain: { id: domain.id },\n arrivalNotice: foundGAN,\n actualPalletQty: Not(IsNull()),\n actualPackQty: Not(IsNull())\n },\n relations: ['product']\n })\n\n // 7. find grn template based on category\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, category: TEMPLATE_TYPE.GRN_TEMPLATE }\n })\n\n // 8. find grn logo\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n // 9. find signature\n const foundSignature: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.SIGNATURE\n }\n })\n\n const foundCop: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.COP\n }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n let signature = null\n if (foundSignature?.path) {\n signature = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundSignature.path, 'base64'))\n }\n\n let cop = null\n if (foundCop?.path) {\n cop = 'data:' + foundSignature.mimetype + ';base64,' + (await STORAGE.readFile(foundCop.path, 'base64'))\n }\n\n const data = {\n logo_url: logo,\n sign_url: signature,\n cop_url: cop,\n customer_biz: partnerBiz.name,\n customer_address: partnerBiz.address,\n company_domain: domainBizplace.company.name,\n company_phone: foundCP.phone,\n company_email: foundCP.email,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n order_no: foundGRN.name,\n gan_no: foundGAN.name,\n gan_accepted_at: foundGAN.acceptedAt ? DateTimeConverter.datetime(foundGAN.acceptedAt, timezoneOffSet) : '',\n unload_date: DateTimeConverter.date(foundWS.endedAt),\n ref_no: ownRefNo ? `${foundGAN.name} / ${foundGAN.refNo}` : `${foundGAN.name}`,\n received_date: DateTimeConverter.date(foundWS.endedAt),\n truck_no: foundGAN.truckNo || '',\n container_no: foundGAN.containerNo || '',\n delivery_order_no: foundGAN.deliveryOrderNo ? foundGAN.deliveryOrderNo : '',\n account_no: foundPartnerCP ? foundPartnerCP.accountNo : '',\n unloaded_by: foundWS ? foundWS.updater.name : '',\n putaway_by: foundPutawayWS ? foundPutawayWS.updater.name : '',\n product_list: targetProducts.map((item, idx) => {\n return {\n list_no: idx + 1,\n product_sku: `${item.product.sku}`,\n product_name: `${item.product.name}(${item.product.description})`,\n product_desc: item.product.description,\n product_nameOnly: item.product.name,\n product_type: item.packingType,\n product_batch: item.batchId,\n product_qty: item.actualPackQty,\n product_uom_value: `${Math.round(item.uomValue * 100) / 100} ${item.uom}`,\n pallet_qty: item.actualPalletQty,\n remark: (item.remark ? item.remark : '') + (item.issue ? ' [Issue]: ' + item.issue : '')\n }\n })\n }\n\n const formData = new FormData()\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n}\n"]}
|
|
@@ -4,33 +4,32 @@ exports.renderManifest = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const form_data_1 = tslib_1.__importDefault(require("form-data"));
|
|
6
6
|
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
7
|
-
const typeorm_1 = require("typeorm");
|
|
8
7
|
const attachment_base_1 = require("@things-factory/attachment-base");
|
|
8
|
+
const biz_base_1 = require("@things-factory/biz-base");
|
|
9
9
|
const env_1 = require("@things-factory/env");
|
|
10
10
|
const sales_base_1 = require("@things-factory/sales-base");
|
|
11
11
|
const shell_1 = require("@things-factory/shell");
|
|
12
|
-
const biz_base_1 = require("@things-factory/biz-base");
|
|
13
12
|
const constants_1 = require("../constants");
|
|
14
13
|
const datetime_util_1 = require("../utils/datetime-util");
|
|
15
14
|
const REPORT_API_URL = env_1.config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html');
|
|
16
15
|
async function renderManifest({ manifestNo }, context) {
|
|
17
16
|
// 1. find domain
|
|
18
|
-
const domain = await (0,
|
|
17
|
+
const domain = await (0, shell_1.getRepository)(shell_1.Domain).findOne({
|
|
19
18
|
where: { id: context.state.domain.id }
|
|
20
19
|
});
|
|
21
20
|
// 2. find manifest
|
|
22
|
-
const manifest = await (0,
|
|
23
|
-
where: { domain, name: manifestNo },
|
|
21
|
+
const manifest = await (0, shell_1.getRepository)(sales_base_1.Manifest).findOne({
|
|
22
|
+
where: { domain: { id: domain.id }, name: manifestNo },
|
|
24
23
|
relations: ['domain']
|
|
25
24
|
});
|
|
26
25
|
// find release good
|
|
27
|
-
let releaseGoods = await (0,
|
|
28
|
-
where: { domain, manifest },
|
|
26
|
+
let releaseGoods = await (0, shell_1.getRepository)(sales_base_1.ReleaseGood).find({
|
|
27
|
+
where: { domain: { id: domain.id }, manifest },
|
|
29
28
|
relations: ['bizplace']
|
|
30
29
|
});
|
|
31
30
|
// 7. find grn template based on category
|
|
32
|
-
const foundTemplate = await (0,
|
|
33
|
-
where: { domain, category: constants_1.TEMPLATE_TYPE.MANIFEST_TEMPLATE }
|
|
31
|
+
const foundTemplate = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
|
|
32
|
+
where: { domain: { id: domain.id }, category: constants_1.TEMPLATE_TYPE.MANIFEST_TEMPLATE }
|
|
34
33
|
});
|
|
35
34
|
const template = await attachment_base_1.STORAGE.readFile(foundTemplate.path, 'utf-8');
|
|
36
35
|
const data = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-manifest.js","sourceRoot":"","sources":["../../server/controllers/render-manifest.ts"],"names":[],"mappings":";;;;AAAA,kEAAgC;AAChC,oEAA8B;
|
|
1
|
+
{"version":3,"file":"render-manifest.js","sourceRoot":"","sources":["../../server/controllers/render-manifest.ts"],"names":[],"mappings":";;;;AAAA,kEAAgC;AAChC,oEAA8B;AAE9B,qEAAqE;AACrE,uDAAuE;AACvE,6CAA4C;AAC5C,2DAAkE;AAClE,iDAA6D;AAE7D,4CAA4C;AAC5C,0DAA0D;AAE1D,MAAM,cAAc,GAAG,YAAM,CAAC,GAAG,CAAC,cAAc,EAAE,6CAA6C,CAAC,CAAA;AAEzF,KAAK,UAAU,cAAc,CAAC,EAAE,UAAU,EAAE,EAAE,OAAwB;IAC3E,iBAAiB;IACjB,MAAM,MAAM,GAAW,MAAM,IAAA,qBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC;QACzD,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;KACvC,CAAC,CAAA;IAEF,mBAAmB;IACnB,MAAM,QAAQ,GAAa,MAAM,IAAA,qBAAa,EAAC,qBAAQ,CAAC,CAAC,OAAO,CAAC;QAC/D,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QACtD,SAAS,EAAE,CAAC,QAAQ,CAAC;KACtB,CAAC,CAAA;IAEF,oBAAoB;IACpB,IAAI,YAAY,GAAkB,MAAM,IAAA,qBAAa,EAAC,wBAAW,CAAC,CAAC,IAAI,CAAC;QACtE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE;QAC9C,SAAS,EAAE,CAAC,UAAU,CAAC;KACxB,CAAC,CAAA;IAEF,yCAAyC;IACzC,MAAM,aAAa,GAAe,MAAM,IAAA,qBAAa,EAAC,4BAAU,CAAC,CAAC,OAAO,CAAC;QACxE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAa,CAAC,iBAAiB,EAAE;KAChF,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,MAAM,yBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IAEpE,MAAM,IAAI,GAAG;QACX,iBAAiB,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB;QAC7C,WAAW,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;QAC3B,aAAa,EAAE,iCAAiB,CAAC,IAAI,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAC,CAAC,QAAQ,EAAE;QACrE,UAAU,EAAE,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,KAAI,CAAC;QACrC,YAAY,EAAE,MAAM,OAAO,CAAC,GAAG,CAC7B,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;YACnC,MAAM,kBAAkB,GAAW,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAA;YACnD,MAAM,mBAAmB,GAAa,MAAM,IAAA,6BAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAA;YAC9F,OAAO;gBACL,OAAO,EAAE,GAAG,GAAG,CAAC;gBAChB,QAAQ,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK;gBACrB,WAAW,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU;gBAC7B,KAAK,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM;gBACnB,aAAa,EAAE,iCAAiB,CAAC,IAAI,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,CAAC,CAAC,QAAQ,EAAE;gBACxE,YAAY,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW;gBAC/B,gBAAgB,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,gBAAgB;gBACxC,gBAAgB,EAAE,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU,KAAK,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,EAAE;gBACtD,MAAM,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM;gBACpB,MAAM,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM;gBACpB,mBAAmB,EAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI;aACrD,CAAA;QACH,CAAC,CAAC,CACH;KACF,CAAA;IAED,MAAM,QAAQ,GAAG,IAAI,mBAAQ,EAAE,CAAA;IAC/B,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACrC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,cAAc,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,QAAQ;KACf,CAAC,CAAA;IAEF,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;AAC9B,CAAC;AA7DD,wCA6DC","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Bizplace, getCompanyBizplace } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { Manifest, ReleaseGood } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE } from '../constants'\nimport { DateTimeConverter } from '../utils/datetime-util'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderManifest({ manifestNo }, context: ResolverContext) {\n // 1. find domain\n const domain: Domain = await getRepository(Domain).findOne({\n where: { id: context.state.domain.id }\n })\n\n // 2. find manifest\n const manifest: Manifest = await getRepository(Manifest).findOne({\n where: { domain: { id: domain.id }, name: manifestNo },\n relations: ['domain']\n })\n\n // find release good\n let releaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({\n where: { domain: { id: domain.id }, manifest },\n relations: ['bizplace']\n })\n\n // 7. find grn template based on category\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, category: TEMPLATE_TYPE.MANIFEST_TEMPLATE }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n\n const data = {\n shipping_provider: manifest?.shippingProvider,\n manifest_no: manifest?.name,\n manifest_date: DateTimeConverter.date(manifest?.createdAt).toString(),\n total_list: releaseGoods?.length || 0,\n product_list: await Promise.all(\n releaseGoods.map(async (item, idx) => {\n const customerBizplaceId: string = item.bizplace.id\n const custCompanyBizplace: Bizplace = await getCompanyBizplace(null, null, customerBizplaceId)\n return {\n list_no: idx + 1,\n order_no: item?.refNo,\n tracking_no: item?.trackingNo,\n phone: item?.phone1,\n delivery_date: DateTimeConverter.date(manifest?.dispatchedAt).toString(),\n attention_to: item?.attentionTo,\n delivery_address: item?.deliveryAddress1,\n postal_code_city: `${item?.postalCode}, ${item?.city}`,\n remark: item?.remark,\n status: item?.status,\n company_domain_name: custCompanyBizplace.domain.name\n }\n })\n )\n }\n\n const formData = new FormData()\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n}\n"]}
|
|
@@ -4,19 +4,19 @@ exports.renderManualDO = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const form_data_1 = tslib_1.__importDefault(require("form-data"));
|
|
6
6
|
const node_fetch_1 = tslib_1.__importDefault(require("node-fetch"));
|
|
7
|
-
const typeorm_1 = require("typeorm");
|
|
8
7
|
const attachment_base_1 = require("@things-factory/attachment-base");
|
|
9
8
|
const auth_base_1 = require("@things-factory/auth-base");
|
|
10
9
|
const biz_base_1 = require("@things-factory/biz-base");
|
|
11
10
|
const env_1 = require("@things-factory/env");
|
|
12
11
|
const sales_base_1 = require("@things-factory/sales-base");
|
|
12
|
+
const shell_1 = require("@things-factory/shell");
|
|
13
13
|
const constants_1 = require("../constants");
|
|
14
14
|
const REPORT_API_URL = env_1.config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html');
|
|
15
15
|
async function renderManualDO({ doNo }, context) {
|
|
16
16
|
const { domain } = context.state;
|
|
17
17
|
// #1. find delivery order based on name
|
|
18
|
-
const foundDO = await (0,
|
|
19
|
-
where: { domain, name: doNo },
|
|
18
|
+
const foundDO = await (0, shell_1.getRepository)(sales_base_1.DeliveryOrder).findOne({
|
|
19
|
+
where: { domain: { id: domain.id }, name: doNo },
|
|
20
20
|
relations: [
|
|
21
21
|
'domain',
|
|
22
22
|
'bizplace',
|
|
@@ -32,38 +32,38 @@ async function renderManualDO({ doNo }, context) {
|
|
|
32
32
|
// #2. find contact point based on DO.contactPointRefId
|
|
33
33
|
let foundCP = null;
|
|
34
34
|
if (foundDO === null || foundDO === void 0 ? void 0 : foundDO.contactPointRefId) {
|
|
35
|
-
foundCP = await (0,
|
|
36
|
-
where: { domain, id: foundDO.contactPointRefId }
|
|
35
|
+
foundCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
|
|
36
|
+
where: { domain: { id: domain.id }, id: foundDO.contactPointRefId }
|
|
37
37
|
});
|
|
38
38
|
}
|
|
39
39
|
// #3. find partner bizplace and Domain
|
|
40
40
|
const partnerBiz = foundDO.bizplace;
|
|
41
|
-
const partnerDomain = await (0,
|
|
41
|
+
const partnerDomain = await (0, shell_1.getRepository)(auth_base_1.Partner).findOne({
|
|
42
42
|
where: { partnerDomain: partnerBiz.domain },
|
|
43
43
|
relations: ['domain']
|
|
44
44
|
});
|
|
45
45
|
// #4. find domain owner and bizplace
|
|
46
46
|
const domainOwner = partnerDomain.domain;
|
|
47
|
-
const domainBizplace = await (0,
|
|
47
|
+
const domainBizplace = await (0, shell_1.getRepository)(biz_base_1.Bizplace).findOne({
|
|
48
48
|
where: { domain: domainOwner },
|
|
49
49
|
relations: ['company']
|
|
50
50
|
});
|
|
51
51
|
// #5. find domain contact point
|
|
52
|
-
const foundWarehouseCP = await (0,
|
|
53
|
-
where: { domain, bizplace: domainBizplace, type: 'WAREHOUSE' }
|
|
52
|
+
const foundWarehouseCP = await (0, shell_1.getRepository)(biz_base_1.ContactPoint).findOne({
|
|
53
|
+
where: { domain: { id: domain.id }, bizplace: domainBizplace, type: 'WAREHOUSE' }
|
|
54
54
|
});
|
|
55
55
|
// #6. find list of order inventory
|
|
56
|
-
const orderInventories = await (0,
|
|
57
|
-
where: { domain, deliveryOrder: foundDO },
|
|
56
|
+
const orderInventories = await (0, shell_1.getRepository)(sales_base_1.OrderInventory).find({
|
|
57
|
+
where: { domain: { id: domain.id }, deliveryOrder: foundDO },
|
|
58
58
|
relations: ['product']
|
|
59
59
|
});
|
|
60
60
|
// #7. find DO template and logo
|
|
61
|
-
const foundTemplate = await (0,
|
|
62
|
-
where: { domain, category: constants_1.TEMPLATE_TYPE.DO_TEMPLATE }
|
|
61
|
+
const foundTemplate = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
|
|
62
|
+
where: { domain: { id: domain.id }, category: constants_1.TEMPLATE_TYPE.DO_TEMPLATE }
|
|
63
63
|
});
|
|
64
|
-
const foundLogo = await (0,
|
|
64
|
+
const foundLogo = await (0, shell_1.getRepository)(attachment_base_1.Attachment).findOne({
|
|
65
65
|
where: {
|
|
66
|
-
domain,
|
|
66
|
+
domain: { id: domain.id },
|
|
67
67
|
category: constants_1.TEMPLATE_TYPE.LOGO
|
|
68
68
|
}
|
|
69
69
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-manual-do.js","sourceRoot":"","sources":["../../server/controllers/render-manual-do.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\nimport { getRepository } from 'typeorm'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { Product } from '@things-factory/product-base'\nimport { DeliveryOrder, OrderInventory } from '@things-factory/sales-base'\nimport { Domain } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE } from '../constants'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderManualDO({ doNo }, context: any) {\n const { domain }: { domain: Domain } = context.state\n\n // #1. find delivery order based on name\n const foundDO: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain, name: doNo },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.company',\n 'bizplace.domain',\n 'transportDriver',\n 'transportVehicle',\n 'creator',\n 'updater'\n ]\n })\n\n const ownTransportFlag: Boolean = foundDO.ownCollection\n\n // #2. find contact point based on DO.contactPointRefId\n let foundCP: ContactPoint = null\n if (foundDO?.contactPointRefId) {\n foundCP = await getRepository(ContactPoint).findOne({\n where: { domain, id: foundDO.contactPointRefId }\n })\n }\n\n // #3. find partner bizplace and Domain\n const partnerBiz: Bizplace = foundDO.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain },\n relations: ['domain']\n })\n\n // #4. find domain owner and bizplace\n const domainOwner: Domain = partnerDomain.domain\n\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n // #5. find domain contact point\n const foundWarehouseCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain, bizplace: domainBizplace, type: 'WAREHOUSE' }\n })\n\n // #6. find list of order inventory\n const orderInventories: OrderInventory[] = await getRepository(OrderInventory).find({\n where: { domain, deliveryOrder: foundDO },\n relations: ['product']\n })\n\n // #7. find DO template and logo\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain, category: TEMPLATE_TYPE.DO_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain,\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n // #8. find truck driver name\n let foundDriver: any = null\n if (foundDO?.ownCollection && foundDO?.otherDriver) {\n foundDriver = foundDO.otherDriver\n } else {\n foundDriver = foundDO.transportDriver.name\n }\n\n // #9. get product data\n let productList: any[] = []\n productList = orderInventories\n .map((oi: OrderInventory) => {\n const product: Product = oi.product\n return {\n product_name: `${product.name} (${product.description})`,\n product_desc: `${product?.description || ''}`,\n product_nameOnly: `${product.name}`,\n product_sku: `${product.sku}`,\n product_type: `${product.packingType}`,\n product_batch: `${oi.batchId}`,\n product_qty: `${oi.releaseQty}`,\n product_weight: `${oi.releaseWeight}`,\n product_gross_weight: product.grossWeight,\n product_uom_value: `${oi.releaseUomValue}`,\n product_uom: `${product.primaryUnit || ''}`,\n remark: `${oi.remark}`,\n cross_docking: `${oi.crossDocking}`,\n pallet: ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.product_name === item.product_name &&\n newItem.product_batch === item.product_batch &&\n newItem.cross_docking === item.cross_docking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n product_sku: item.product_sku,\n product_name: item.product_name,\n product_type: item.product_type,\n product_batch: item.product_batch,\n product_qty: item.product_qty,\n product_weight: item.product_weight,\n product_uom_value: item.product_uom_value,\n product_uom: item.product_uom,\n product_desc: item.product_desc,\n product_nameOnly: item.product_nameOnly,\n remark: item.remark,\n palletQty: 1,\n cross_docking: item.cross_docking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.product_name === item.product_name &&\n ni.product_batch === item.product_batch &&\n ni.cross_docking === item.cross_docking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n product_qty: ni.product_qty + item.product_qty,\n product_weight: ni.product_weight + item.product_weight,\n product_uom_value: ni.product_uom_value + item.product_uom_value\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n // 10. set data to be displayed in DO document\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n company_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n warehouse_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n company_email: foundWarehouseCP.email,\n customer_name: foundCP ? foundCP.name : null,\n customer_delivery_address: foundCP ? foundCP.address : null,\n customer_billing_address: foundCP ? foundCP.billingAddress : null,\n customer_phone: foundCP ? foundCP.phone : null,\n customer_email: foundCP ? foundCP.email : null,\n customer_company: foundCP ? foundCP.companyName : null,\n own_collection: ownTransportFlag ? '[SELF-COLLECTION]' : `[${domain.brandName} TRANSPORT]`,\n destination: foundDO.to || '',\n ref_no: foundDO.refNo,\n ref_no_only: foundDO.refNo,\n order_no: foundDO.name,\n delivery_date: foundDO.deliveryDate || '',\n truck_no: foundDO.truckNo,\n driver_name: foundDriver || '',\n pallet_qty: foundDO.palletQty,\n worker_name: '',\n do_remark: foundDO.remark,\n reusable_pallet: foundDO.reusablePallet,\n pallet_list: /*foundRP.map(rp => rp.name).join(', ')*/ '',\n product_list: productList.map((prod: any, idx) => {\n return {\n ...prod,\n list_no: idx + 1,\n product_uom_value: `${Math.round(prod.product_uom_value * 100) / 100} ${prod.product_uom}`,\n remark: prod?.remark\n ? prod.remark\n : prod.cross_docking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n } //.. make data from do\n const formData = new FormData()\n\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n}\n"]}
|
|
1
|
+
{"version":3,"file":"render-manual-do.js","sourceRoot":"","sources":["../../server/controllers/render-manual-do.ts"],"names":[],"mappings":"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","sourcesContent":["import FormData from 'form-data'\nimport fetch from 'node-fetch'\n\nimport { Attachment, STORAGE } from '@things-factory/attachment-base'\nimport { Partner } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint } from '@things-factory/biz-base'\nimport { config } from '@things-factory/env'\nimport { Product } from '@things-factory/product-base'\nimport { DeliveryOrder, OrderInventory } from '@things-factory/sales-base'\nimport { Domain, getRepository } from '@things-factory/shell'\n\nimport { TEMPLATE_TYPE } from '../constants'\n\nconst REPORT_API_URL = config.get('reportApiUrl', 'http://localhost:8888/rest/report/show_html')\n\nexport async function renderManualDO({ doNo }, context: ResolverContext) {\n const { domain } = context.state\n\n // #1. find delivery order based on name\n const foundDO: DeliveryOrder = await getRepository(DeliveryOrder).findOne({\n where: { domain: { id: domain.id }, name: doNo },\n relations: [\n 'domain',\n 'bizplace',\n 'bizplace.company',\n 'bizplace.domain',\n 'transportDriver',\n 'transportVehicle',\n 'creator',\n 'updater'\n ]\n })\n\n const ownTransportFlag: Boolean = foundDO.ownCollection\n\n // #2. find contact point based on DO.contactPointRefId\n let foundCP: ContactPoint = null\n if (foundDO?.contactPointRefId) {\n foundCP = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, id: foundDO.contactPointRefId }\n })\n }\n\n // #3. find partner bizplace and Domain\n const partnerBiz: Bizplace = foundDO.bizplace\n\n const partnerDomain: Partner = await getRepository(Partner).findOne({\n where: { partnerDomain: partnerBiz.domain },\n relations: ['domain']\n })\n\n // #4. find domain owner and bizplace\n const domainOwner: Domain = partnerDomain.domain\n\n const domainBizplace: Bizplace = await getRepository(Bizplace).findOne({\n where: { domain: domainOwner },\n relations: ['company']\n })\n\n // #5. find domain contact point\n const foundWarehouseCP: ContactPoint = await getRepository(ContactPoint).findOne({\n where: { domain: { id: domain.id }, bizplace: domainBizplace, type: 'WAREHOUSE' }\n })\n\n // #6. find list of order inventory\n const orderInventories: OrderInventory[] = await getRepository(OrderInventory).find({\n where: { domain: { id: domain.id }, deliveryOrder: foundDO },\n relations: ['product']\n })\n\n // #7. find DO template and logo\n const foundTemplate: Attachment = await getRepository(Attachment).findOne({\n where: { domain: { id: domain.id }, category: TEMPLATE_TYPE.DO_TEMPLATE }\n })\n\n const foundLogo: Attachment = await getRepository(Attachment).findOne({\n where: {\n domain: { id: domain.id },\n category: TEMPLATE_TYPE.LOGO\n }\n })\n\n const template = await STORAGE.readFile(foundTemplate.path, 'utf-8')\n let logo = null\n if (foundLogo?.path) {\n logo = 'data:' + foundLogo.mimetype + ';base64,' + (await STORAGE.readFile(foundLogo.path, 'base64'))\n }\n\n // #8. find truck driver name\n let foundDriver: any = null\n if (foundDO?.ownCollection && foundDO?.otherDriver) {\n foundDriver = foundDO.otherDriver\n } else {\n foundDriver = foundDO.transportDriver.name\n }\n\n // #9. get product data\n let productList: any[] = []\n productList = orderInventories\n .map((oi: OrderInventory) => {\n const product: Product = oi.product\n return {\n product_name: `${product.name} (${product.description})`,\n product_desc: `${product?.description || ''}`,\n product_nameOnly: `${product.name}`,\n product_sku: `${product.sku}`,\n product_type: `${product.packingType}`,\n product_batch: `${oi.batchId}`,\n product_qty: `${oi.releaseQty}`,\n product_weight: `${oi.releaseWeight}`,\n product_gross_weight: product.grossWeight,\n product_uom_value: `${oi.releaseUomValue}`,\n product_uom: `${product.primaryUnit || ''}`,\n remark: `${oi.remark}`,\n cross_docking: `${oi.crossDocking}`,\n pallet: ''\n }\n })\n .reduce((newItem, item) => {\n var foundItem = newItem.find(\n newItem =>\n newItem.product_name === item.product_name &&\n newItem.product_batch === item.product_batch &&\n newItem.cross_docking === item.cross_docking &&\n newItem.pallet === item.pallet\n )\n if (!foundItem) {\n foundItem = {\n product_sku: item.product_sku,\n product_name: item.product_name,\n product_type: item.product_type,\n product_batch: item.product_batch,\n product_qty: item.product_qty,\n product_weight: item.product_weight,\n product_uom_value: item.product_uom_value,\n product_uom: item.product_uom,\n product_desc: item.product_desc,\n product_nameOnly: item.product_nameOnly,\n remark: item.remark,\n palletQty: 1,\n cross_docking: item.cross_docking,\n pallet: item.pallet\n }\n\n newItem.push(foundItem)\n return newItem\n } else {\n return newItem.map(ni => {\n if (\n ni.product_name === item.product_name &&\n ni.product_batch === item.product_batch &&\n ni.cross_docking === item.cross_docking &&\n ni.pallet === item.pallet\n ) {\n return {\n ...ni,\n palletQty: ni.palletQty + 1,\n product_qty: ni.product_qty + item.product_qty,\n product_weight: ni.product_weight + item.product_weight,\n product_uom_value: ni.product_uom_value + item.product_uom_value\n }\n } else {\n return ni\n }\n })\n }\n }, [])\n\n // 10. set data to be displayed in DO document\n const data = {\n logo_url: logo,\n customer_biz: partnerBiz.name,\n company_domain: domainBizplace.company.name,\n company_brn: domainBizplace.company.brn,\n company_address: domainBizplace.company.address,\n company_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n warehouse_phone: foundWarehouseCP ? foundWarehouseCP.phone : null,\n company_email: foundWarehouseCP.email,\n customer_name: foundCP ? foundCP.name : null,\n customer_delivery_address: foundCP ? foundCP.address : null,\n customer_billing_address: foundCP ? foundCP.billingAddress : null,\n customer_phone: foundCP ? foundCP.phone : null,\n customer_email: foundCP ? foundCP.email : null,\n customer_company: foundCP ? foundCP.companyName : null,\n own_collection: ownTransportFlag ? '[SELF-COLLECTION]' : `[${domain.brandName} TRANSPORT]`,\n destination: foundDO.to || '',\n ref_no: foundDO.refNo,\n ref_no_only: foundDO.refNo,\n order_no: foundDO.name,\n delivery_date: foundDO.deliveryDate || '',\n truck_no: foundDO.truckNo,\n driver_name: foundDriver || '',\n pallet_qty: foundDO.palletQty,\n worker_name: '',\n do_remark: foundDO.remark,\n reusable_pallet: foundDO.reusablePallet,\n pallet_list: /*foundRP.map(rp => rp.name).join(', ')*/ '',\n product_list: productList.map((prod: any, idx) => {\n return {\n ...prod,\n list_no: idx + 1,\n product_uom_value: `${Math.round(prod.product_uom_value * 100) / 100} ${prod.product_uom}`,\n remark: prod?.remark\n ? prod.remark\n : prod.cross_docking\n ? prod.pallet === ''\n ? `${prod.palletQty} PALLET(S) [C/D]`\n : `${prod.palletQty} PALLET(S) (${prod.pallet}) [C/D]`\n : prod.pallet === ''\n ? `${prod.palletQty} PALLET(S)`\n : `${prod.palletQty} PALLET(S) (${prod.pallet})`\n }\n })\n } //.. make data from do\n const formData = new FormData()\n\n formData.append('template', template)\n formData.append('jsonString', JSON.stringify(data))\n\n const response = await fetch(REPORT_API_URL, {\n method: 'POST',\n body: formData\n })\n\n return await response.text()\n}\n"]}
|