@things-factory/sales-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/constants/order.js +4 -1
- package/dist-server/constants/order.js.map +1 -1
- package/dist-server/constants/release-good.js +5 -1
- package/dist-server/constants/release-good.js.map +1 -1
- package/dist-server/controllers/ecommerce/ecommerce-controller.js +1 -1
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +102 -94
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/order-controller.js +7 -5
- package/dist-server/controllers/order-controller.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js +152 -65
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-query.js +15 -16
- package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-types.js +1 -2
- package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice.js +7 -7
- package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
- package/dist-server/service/claim/claim-mutation.js +15 -14
- package/dist-server/service/claim/claim-mutation.js.map +1 -1
- package/dist-server/service/claim/claim-query.js +8 -10
- package/dist-server/service/claim/claim-query.js.map +1 -1
- package/dist-server/service/claim/claim.js +7 -7
- package/dist-server/service/claim/claim.js.map +1 -1
- package/dist-server/service/claim-detail/claim-detail-mutation.js +9 -8
- package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -1
- package/dist-server/service/claim-detail/claim-detail-query.js +9 -10
- package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -1
- package/dist-server/service/claim-detail/claim-detail.js +3 -4
- package/dist-server/service/claim-detail/claim-detail.js.map +1 -1
- package/dist-server/service/claim-order/claim-order-mutation.js +9 -8
- package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -1
- package/dist-server/service/claim-order/claim-order-query.js +9 -10
- package/dist-server/service/claim-order/claim-order-query.js.map +1 -1
- package/dist-server/service/claim-order/claim-order.js +3 -4
- package/dist-server/service/claim-order/claim-order.js.map +1 -1
- package/dist-server/service/collection-order/collection-order-mutation.js +15 -14
- package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
- package/dist-server/service/collection-order/collection-order-query.js +14 -14
- package/dist-server/service/collection-order/collection-order-query.js.map +1 -1
- package/dist-server/service/collection-order/collection-order-types.js +4 -5
- package/dist-server/service/collection-order/collection-order-types.js.map +1 -1
- package/dist-server/service/collection-order/collection-order.js +7 -7
- package/dist-server/service/collection-order/collection-order.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-mutation.js +138 -51
- package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-query.js +51 -38
- package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-types.js +22 -3
- package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order.js +92 -7
- package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
- package/dist-server/service/draft-release-good/draft-release-good-mutation.js +157 -143
- package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -1
- package/dist-server/service/draft-release-good/draft-release-good-query.js +54 -24
- package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -1
- package/dist-server/service/draft-release-good/draft-release-good-type.js +3 -4
- package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -1
- package/dist-server/service/draft-release-good/draft-release-good.js +11 -6
- package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +12 -11
- package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js.map +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-query.js +104 -12
- package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note-types.js +67 -4
- package/dist-server/service/goods-receival-note/goods-receival-note-types.js.map +1 -1
- package/dist-server/service/goods-receival-note/goods-receival-note.js +46 -5
- package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -1
- package/dist-server/service/inventory-check/inventory-check-mutation.js +6 -6
- package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -1
- package/dist-server/service/inventory-check/inventory-check-query.js +8 -10
- package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -1
- package/dist-server/service/inventory-check/inventory-check.js +5 -5
- package/dist-server/service/inventory-check/inventory-check.js.map +1 -1
- package/dist-server/service/invoice/invoice-mutation.js +5 -5
- package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
- package/dist-server/service/invoice/invoice-query.js +7 -9
- package/dist-server/service/invoice/invoice-query.js.map +1 -1
- package/dist-server/service/invoice/invoice-types.js +2 -3
- package/dist-server/service/invoice/invoice-types.js.map +1 -1
- package/dist-server/service/invoice/invoice.js +3 -4
- package/dist-server/service/invoice/invoice.js.map +1 -1
- package/dist-server/service/invoice-product/invoice-product-mutation.js +1 -1
- package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
- package/dist-server/service/invoice-product/invoice-product-query.js +7 -9
- package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -1
- package/dist-server/service/invoice-product/invoice-product.js +5 -5
- package/dist-server/service/invoice-product/invoice-product.js.map +1 -1
- package/dist-server/service/job-sheet/job-sheet-mutation.js +5 -5
- package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
- package/dist-server/service/job-sheet/job-sheet-query.js +6 -8
- package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
- package/dist-server/service/job-sheet/job-sheet.js +5 -5
- package/dist-server/service/job-sheet/job-sheet.js.map +1 -1
- package/dist-server/service/manifest/manifest-mutation.js +84 -4
- package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
- package/dist-server/service/manifest/manifest-query.js +52 -19
- package/dist-server/service/manifest/manifest-query.js.map +1 -1
- package/dist-server/service/manifest/manifest-type.js +8 -0
- package/dist-server/service/manifest/manifest-type.js.map +1 -1
- package/dist-server/service/manifest/manifest.js +8 -4
- package/dist-server/service/manifest/manifest.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-mutation.js +3 -3
- package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-query.js +202 -221
- package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-types.js +15 -15
- package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory.js +45 -15
- package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
- package/dist-server/service/order-product/order-product-mutation.js +2 -2
- package/dist-server/service/order-product/order-product-mutation.js.map +1 -1
- package/dist-server/service/order-product/order-product-query.js +44 -14
- package/dist-server/service/order-product/order-product-query.js.map +1 -1
- package/dist-server/service/order-product/order-product-types.js +18 -19
- package/dist-server/service/order-product/order-product-types.js.map +1 -1
- package/dist-server/service/order-product/order-product.js +14 -11
- package/dist-server/service/order-product/order-product.js.map +1 -1
- package/dist-server/service/order-tote/order-tote-mutation.js +2 -2
- package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -1
- package/dist-server/service/order-tote/order-tote-query.js +13 -14
- package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
- package/dist-server/service/order-tote/order-tote-types.js +4 -5
- package/dist-server/service/order-tote/order-tote-types.js.map +1 -1
- package/dist-server/service/order-tote/order-tote.js +6 -5
- package/dist-server/service/order-tote/order-tote.js.map +1 -1
- package/dist-server/service/order-tote-item/order-tote-item-mutation.js +2 -2
- package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -1
- package/dist-server/service/order-tote-item/order-tote-item-query.js +7 -9
- package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -1
- package/dist-server/service/order-tote-item/order-tote-item-types.js +5 -6
- package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -1
- package/dist-server/service/order-tote-item/order-tote-item.js +2 -3
- package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
- package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +2 -2
- package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -1
- package/dist-server/service/order-tote-seal/order-tote-seal-query.js +8 -10
- package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -1
- package/dist-server/service/order-tote-seal/order-tote-seal-types.js +2 -3
- package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -1
- package/dist-server/service/order-tote-seal/order-tote-seal.js +2 -3
- package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -1
- package/dist-server/service/order-vas/order-vas-mutation.js +1 -1
- package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -1
- package/dist-server/service/order-vas/order-vas-query.js +8 -10
- package/dist-server/service/order-vas/order-vas-query.js.map +1 -1
- package/dist-server/service/order-vas/order-vas-types.js +16 -17
- package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
- package/dist-server/service/order-vas/order-vas.js +7 -7
- package/dist-server/service/order-vas/order-vas.js.map +1 -1
- package/dist-server/service/others/other-query.js +48 -30
- package/dist-server/service/others/other-query.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order-mutation.js +36 -34
- package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order-query.js +11 -12
- package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order-types.js +8 -9
- package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order.js +8 -8
- package/dist-server/service/purchase-order/purchase-order.js.map +1 -1
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +1 -1
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js.map +1 -1
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +9 -10
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js.map +1 -1
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +3 -4
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -1
- package/dist-server/service/release-good/release-good-mutation.js +182 -94
- package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-query.js +251 -172
- package/dist-server/service/release-good/release-good-query.js.map +1 -1
- package/dist-server/service/release-good/release-good-types.js +181 -9
- package/dist-server/service/release-good/release-good-types.js.map +1 -1
- package/dist-server/service/release-good/release-good.js +64 -13
- package/dist-server/service/release-good/release-good.js.map +1 -1
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +19 -14
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js.map +1 -1
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +8 -10
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js.map +1 -1
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +6 -7
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js.map +1 -1
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +5 -5
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -1
- package/dist-server/service/return-order/return-order-mutation.js +38 -27
- package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
- package/dist-server/service/return-order/return-order-query.js +14 -16
- package/dist-server/service/return-order/return-order-query.js.map +1 -1
- package/dist-server/service/return-order/return-order-types.js +9 -9
- package/dist-server/service/return-order/return-order-types.js.map +1 -1
- package/dist-server/service/return-order/return-order.js +6 -6
- package/dist-server/service/return-order/return-order.js.map +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +17 -13
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +13 -14
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +9 -9
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -1
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +8 -8
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +4 -4
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +7 -9
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js.map +1 -1
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +4 -5
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js.map +1 -1
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +7 -7
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
- package/dist-server/service/shipping-order/shipping-order-mutation.js +2 -2
- package/dist-server/service/shipping-order/shipping-order-mutation.js.map +1 -1
- package/dist-server/service/shipping-order/shipping-order-query.js +9 -10
- package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
- package/dist-server/service/shipping-order/shipping-order-types.js +21 -1
- package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -1
- package/dist-server/service/shipping-order/shipping-order.js +27 -7
- package/dist-server/service/shipping-order/shipping-order.js.map +1 -1
- package/dist-server/service/transfer-order/transfer-order-mutation.js +19 -14
- package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
- package/dist-server/service/transfer-order/transfer-order-query.js +8 -10
- package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -1
- package/dist-server/service/transfer-order/transfer-order-types.js +1 -2
- package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -1
- package/dist-server/service/transfer-order/transfer-order.js +5 -5
- package/dist-server/service/transfer-order/transfer-order.js.map +1 -1
- package/dist-server/service/vas/vas-mutation.js +2 -2
- package/dist-server/service/vas/vas-mutation.js.map +1 -1
- package/dist-server/service/vas/vas-query.js +8 -10
- package/dist-server/service/vas/vas-query.js.map +1 -1
- package/dist-server/service/vas/vas.js +3 -4
- package/dist-server/service/vas/vas.js.map +1 -1
- package/dist-server/service/vas-order/vas-order-mutation.js +20 -15
- package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
- package/dist-server/service/vas-order/vas-order-query.js +11 -12
- package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
- package/dist-server/service/vas-order/vas-order.js +5 -5
- package/dist-server/service/vas-order/vas-order.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/dist-server/utils/datetime-util.js +49 -0
- package/dist-server/utils/datetime-util.js.map +1 -0
- package/dist-server/utils/index.js +1 -0
- package/dist-server/utils/index.js.map +1 -1
- package/dist-server/utils/inventory-util.js +89 -29
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/package.json +13 -13
- package/server/constants/order.ts +4 -1
- package/server/constants/release-good.ts +6 -3
- package/server/controllers/ecommerce/ecommerce-controller.ts +1 -1
- package/server/controllers/ecommerce/sellercraft-controller.ts +124 -107
- package/server/controllers/order-controller.ts +7 -5
- package/server/service/arrival-notice/arrival-notice-mutation.ts +204 -91
- package/server/service/arrival-notice/arrival-notice-query.ts +17 -17
- package/server/service/claim/claim-mutation.ts +20 -14
- package/server/service/claim/claim-query.ts +10 -9
- package/server/service/claim-detail/claim-detail-mutation.ts +16 -10
- package/server/service/claim-detail/claim-detail-query.ts +13 -8
- package/server/service/claim-order/claim-order-mutation.ts +16 -10
- package/server/service/claim-order/claim-order-query.ts +10 -8
- package/server/service/collection-order/collection-order-mutation.ts +31 -32
- package/server/service/collection-order/collection-order-query.ts +18 -15
- package/server/service/delivery-order/delivery-order-mutation.ts +206 -73
- package/server/service/delivery-order/delivery-order-query.ts +90 -53
- package/server/service/delivery-order/delivery-order-types.ts +15 -0
- package/server/service/delivery-order/delivery-order.ts +68 -0
- package/server/service/draft-release-good/draft-release-good-mutation.ts +208 -183
- package/server/service/draft-release-good/draft-release-good-query.ts +81 -44
- package/server/service/draft-release-good/draft-release-good.ts +7 -3
- package/server/service/goods-receival-note/goods-receival-note-mutation.ts +23 -18
- package/server/service/goods-receival-note/goods-receival-note-query.ts +126 -15
- package/server/service/goods-receival-note/goods-receival-note-types.ts +48 -0
- package/server/service/goods-receival-note/goods-receival-note.ts +32 -0
- package/server/service/inventory-check/inventory-check-mutation.ts +24 -19
- package/server/service/inventory-check/inventory-check-query.ts +10 -9
- package/server/service/invoice/invoice-mutation.ts +14 -11
- package/server/service/invoice/invoice-query.ts +8 -9
- package/server/service/invoice-product/invoice-product-mutation.ts +4 -4
- package/server/service/invoice-product/invoice-product-query.ts +8 -9
- package/server/service/job-sheet/job-sheet-mutation.ts +12 -10
- package/server/service/job-sheet/job-sheet-query.ts +16 -11
- package/server/service/manifest/manifest-mutation.ts +93 -8
- package/server/service/manifest/manifest-query.ts +73 -23
- package/server/service/manifest/manifest-type.ts +6 -0
- package/server/service/manifest/manifest.ts +6 -2
- package/server/service/order-inventory/order-inventory-mutation.ts +13 -12
- package/server/service/order-inventory/order-inventory-query.ts +226 -253
- package/server/service/order-inventory/order-inventory.ts +26 -2
- package/server/service/order-product/order-product-mutation.ts +11 -10
- package/server/service/order-product/order-product-query.ts +55 -18
- package/server/service/order-product/order-product.ts +7 -0
- package/server/service/order-tote/order-tote-mutation.ts +10 -9
- package/server/service/order-tote/order-tote-query.ts +13 -15
- package/server/service/order-tote/order-tote.ts +13 -2
- package/server/service/order-tote-item/order-tote-item-mutation.ts +10 -9
- package/server/service/order-tote-item/order-tote-item-query.ts +12 -18
- package/server/service/order-tote-seal/order-tote-seal-mutation.ts +10 -9
- package/server/service/order-tote-seal/order-tote-seal-query.ts +10 -11
- package/server/service/order-vas/order-vas-mutation.ts +4 -5
- package/server/service/order-vas/order-vas-query.ts +10 -9
- package/server/service/others/other-query.ts +76 -54
- package/server/service/purchase-order/purchase-order-mutation.ts +46 -46
- package/server/service/purchase-order/purchase-order-query.ts +13 -11
- package/server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.ts +7 -7
- package/server/service/purchase-order-other-charge/purchase-order-other-charge-query.ts +14 -9
- package/server/service/release-good/release-good-mutation.ts +297 -134
- package/server/service/release-good/release-good-query.ts +268 -186
- package/server/service/release-good/release-good-types.ts +132 -4
- package/server/service/release-good/release-good.ts +55 -24
- package/server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts +35 -29
- package/server/service/retail-replenishment-order/retail-replenishment-order-query.ts +13 -9
- package/server/service/retail-replenishment-order/retail-replenishment-order-types.ts +7 -5
- package/server/service/return-order/return-order-mutation.ts +82 -54
- package/server/service/return-order/return-order-query.ts +21 -19
- package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +38 -23
- package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +19 -16
- package/server/service/reverse-kitting-order/reverse-kitting-order.ts +2 -2
- package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.ts +9 -9
- package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.ts +7 -8
- package/server/service/shipping-order/shipping-order-mutation.ts +11 -11
- package/server/service/shipping-order/shipping-order-query.ts +13 -11
- package/server/service/shipping-order/shipping-order-types.ts +16 -1
- package/server/service/shipping-order/shipping-order.ts +18 -2
- package/server/service/transfer-order/transfer-order-mutation.ts +34 -25
- package/server/service/transfer-order/transfer-order-query.ts +11 -10
- package/server/service/vas/vas-mutation.ts +13 -15
- package/server/service/vas/vas-query.ts +12 -10
- package/server/service/vas-order/vas-order-mutation.ts +38 -28
- package/server/service/vas-order/vas-order-query.ts +15 -13
- package/server/utils/datetime-util.ts +54 -0
- package/server/utils/index.ts +1 -0
- package/server/utils/inventory-util.ts +128 -34
- package/translations/en.json +4 -0
- package/translations/ko.json +6 -2
- package/translations/ms.json +5 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
-
import { Brackets,
|
|
1
|
+
import { Arg, Args, Ctx, Directive, FieldResolver, Query, Resolver, Root } from 'type-graphql'
|
|
2
|
+
import { Brackets, Like, OrderByCondition, SelectQueryBuilder } from 'typeorm'
|
|
3
3
|
|
|
4
4
|
import { User } from '@things-factory/auth-base'
|
|
5
5
|
import { getPermittedBizplaceIds } from '@things-factory/biz-base'
|
|
@@ -10,11 +10,12 @@ import {
|
|
|
10
10
|
Domain,
|
|
11
11
|
Filter,
|
|
12
12
|
getQueryBuilderFromListParams,
|
|
13
|
+
getRepository,
|
|
13
14
|
ListParam,
|
|
14
15
|
Pagination,
|
|
15
16
|
Sorting
|
|
16
17
|
} from '@things-factory/shell'
|
|
17
|
-
import { Inventory, InventoryPatch
|
|
18
|
+
import { Inventory, InventoryPatch } from '@things-factory/warehouse-base'
|
|
18
19
|
|
|
19
20
|
import { ORDER_INVENTORY_STATUS, ORDER_STATUS } from '../../constants'
|
|
20
21
|
import { ArrivalNotice } from '../arrival-notice/arrival-notice'
|
|
@@ -30,66 +31,98 @@ interface filterInterface {
|
|
|
30
31
|
@Resolver(OrderInventory)
|
|
31
32
|
export class OrderInventoryQuery {
|
|
32
33
|
@Query(returns => OrderInventoryList)
|
|
33
|
-
async orderInventories(@Ctx() context:
|
|
34
|
-
const { domain }
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
(filter: filterInterface) => filter.name === 'arrivalNoticeNo' && filter.operator === 'eq'
|
|
40
|
-
)
|
|
41
|
-
const rgParam = filters.find(
|
|
42
|
-
(filter: filterInterface) => filter.name === 'releaseGoodNo' && filter.operator === 'eq'
|
|
43
|
-
)
|
|
44
|
-
|
|
45
|
-
if (anParam && !filters.some((filter: filterInterface) => filter.name === 'arrivalNotice')) {
|
|
34
|
+
async orderInventories(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<OrderInventoryList> {
|
|
35
|
+
const { domain } = context.state
|
|
36
|
+
const arrivalNoticeNoParam: any = params.filters.find((param: any) => param.name === 'arrivalNoticeNo')
|
|
37
|
+
const releaseGoodNoParam: any = params.filters.find((param: any) => param.name === 'releaseGoodNo')
|
|
38
|
+
|
|
39
|
+
if (arrivalNoticeNoParam && arrivalNoticeNoParam?.value) {
|
|
46
40
|
const foundArrivalNotice: ArrivalNotice = await getRepository(ArrivalNotice).findOne({
|
|
47
41
|
where: {
|
|
48
|
-
name:
|
|
42
|
+
name: arrivalNoticeNoParam.value,
|
|
49
43
|
domain
|
|
50
44
|
}
|
|
51
45
|
})
|
|
52
46
|
|
|
53
47
|
if (foundArrivalNotice) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
48
|
+
params.filters.splice(
|
|
49
|
+
params.filters.findIndex(item => item.name == 'arrivalNoticeNo'),
|
|
50
|
+
1
|
|
51
|
+
)
|
|
52
|
+
params.filters.push({ name: 'arrivalNoticeId', operator: 'eq', value: foundArrivalNotice.id })
|
|
53
|
+
} else {
|
|
54
|
+
throw new Error(`Cannot find result for order "${arrivalNoticeNoParam.value}"`)
|
|
55
|
+
}
|
|
57
56
|
}
|
|
58
57
|
|
|
59
|
-
if (
|
|
58
|
+
if (releaseGoodNoParam && releaseGoodNoParam?.value) {
|
|
60
59
|
const foundReleaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({
|
|
61
60
|
where: {
|
|
62
|
-
name:
|
|
61
|
+
name: releaseGoodNoParam.value,
|
|
63
62
|
domain
|
|
64
63
|
}
|
|
65
64
|
})
|
|
66
65
|
|
|
67
66
|
if (foundReleaseGood) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
params.filters.splice(
|
|
68
|
+
params.filters.findIndex(item => item.name == 'releaseGoodNo'),
|
|
69
|
+
1
|
|
70
|
+
)
|
|
71
|
+
params.filters.push({ name: 'releaseGoodId', operator: 'eq', value: foundReleaseGood.id })
|
|
72
|
+
} else {
|
|
73
|
+
throw new Error(`Cannot find result for order "${releaseGoodNoParam.value}"`)
|
|
74
|
+
}
|
|
71
75
|
}
|
|
72
76
|
|
|
73
|
-
const
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
77
|
+
const qb: SelectQueryBuilder<OrderInventory> = getRepository(OrderInventory).createQueryBuilder('oi')
|
|
78
|
+
buildQuery(qb, params, context)
|
|
79
|
+
|
|
80
|
+
qb.leftJoinAndSelect('oi.domain', 'domain')
|
|
81
|
+
qb.leftJoinAndSelect('oi.arrivalNotice', 'arrivalNotice')
|
|
82
|
+
qb.leftJoinAndSelect('oi.orderProduct', 'orderProduct')
|
|
83
|
+
qb.leftJoinAndSelect('oi.inventory', 'inventory')
|
|
84
|
+
qb.leftJoinAndSelect('inventory.product', 'product')
|
|
85
|
+
qb.leftJoinAndSelect('inventory.location', 'location')
|
|
86
|
+
qb.leftJoinAndSelect('oi.releaseGood', 'releaseGood')
|
|
87
|
+
qb.leftJoinAndSelect('oi.deliveryOrder', 'deliveryOrder')
|
|
88
|
+
qb.leftJoinAndSelect('oi.creator', 'creator')
|
|
89
|
+
qb.leftJoinAndSelect('oi.updater', 'updater')
|
|
90
|
+
|
|
91
|
+
let sort: OrderByCondition = {}
|
|
92
|
+
if (params?.sortings) {
|
|
93
|
+
if (params.sortings.some(e => e.name === 'inventoryPalletId')) {
|
|
94
|
+
// overwrite the worksheet status sorting since inventory check status is needed
|
|
95
|
+
sort = {
|
|
96
|
+
'inventory.palletId': params.sortings[params.sortings.findIndex(item => item.name == 'inventoryPalletId')]
|
|
97
|
+
.desc
|
|
98
|
+
? 'DESC'
|
|
99
|
+
: 'ASC',
|
|
100
|
+
'oi.createdAt': params.sortings[params.sortings.findIndex(item => item.name == 'createdAt')]?.desc
|
|
101
|
+
? 'DESC'
|
|
102
|
+
: 'ASC'
|
|
103
|
+
}
|
|
104
|
+
} else if (params.sortings.some(e => e.name === 'createdAt')) {
|
|
105
|
+
sort = {
|
|
106
|
+
...sort,
|
|
107
|
+
'oi.createdAt': params.sortings[params.sortings.findIndex(item => item.name == 'createdAt')]?.desc
|
|
108
|
+
? 'DESC'
|
|
109
|
+
: 'ASC'
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
} else {
|
|
113
|
+
sort = { 'oi.createdAt': 'ASC' }
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
qb.orderBy(sort)
|
|
117
|
+
|
|
118
|
+
let [items, total] = await qb.getManyAndCount()
|
|
119
|
+
|
|
87
120
|
return { items, total }
|
|
88
121
|
}
|
|
89
122
|
|
|
90
123
|
@Query(returns => OrderInventoryList)
|
|
91
124
|
async mergedProductOrderInventories(
|
|
92
|
-
@Ctx() context:
|
|
125
|
+
@Ctx() context: ResolverContext,
|
|
93
126
|
@Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
|
|
94
127
|
@Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
|
|
95
128
|
@Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
|
|
@@ -169,12 +202,12 @@ export class OrderInventoryQuery {
|
|
|
169
202
|
}
|
|
170
203
|
|
|
171
204
|
@Query(returns => OrderInventory)
|
|
172
|
-
async orderInventory(@Arg('id') id: string, @Ctx() context:
|
|
173
|
-
const { domain }
|
|
205
|
+
async orderInventory(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<OrderInventory> {
|
|
206
|
+
const { domain } = context.state
|
|
174
207
|
|
|
175
208
|
return await getRepository(OrderInventory).findOne({
|
|
176
209
|
where: {
|
|
177
|
-
domain,
|
|
210
|
+
domain: { id: domain.id },
|
|
178
211
|
id
|
|
179
212
|
},
|
|
180
213
|
relations: ['domain', 'releaseGood', 'inventory', 'creator', 'updater']
|
|
@@ -184,15 +217,15 @@ export class OrderInventoryQuery {
|
|
|
184
217
|
@Query(returns => Boolean)
|
|
185
218
|
async validateOrderInventory(
|
|
186
219
|
@Arg('patches', type => [InventoryPatch]) patches: InventoryPatch[],
|
|
187
|
-
@Ctx() context:
|
|
220
|
+
@Ctx() context: ResolverContext
|
|
188
221
|
) {
|
|
189
|
-
const { domain, user, tx }
|
|
222
|
+
const { domain, user, tx } = context.state
|
|
190
223
|
|
|
191
224
|
let error = []
|
|
192
225
|
|
|
193
226
|
for (let i = 0; i < patches.length; i++) {
|
|
194
227
|
let foundExistingPallet: Inventory = await getRepository(Inventory).findOne({
|
|
195
|
-
where: { domain, palletId: patches[i]?.palletId }
|
|
228
|
+
where: { domain: { id: domain.id }, palletId: patches[i]?.palletId }
|
|
196
229
|
})
|
|
197
230
|
|
|
198
231
|
if (!foundExistingPallet) {
|
|
@@ -220,8 +253,8 @@ export class OrderInventoryQuery {
|
|
|
220
253
|
}
|
|
221
254
|
|
|
222
255
|
@Query(returns => OrderInventoryList)
|
|
223
|
-
async inventoriesByOrder(@Ctx() context:
|
|
224
|
-
const { domain, user }
|
|
256
|
+
async inventoriesByOrder(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<OrderInventoryList> {
|
|
257
|
+
const { domain, user } = context.state
|
|
225
258
|
|
|
226
259
|
let permittedBizplaceIds: string[] = await getPermittedBizplaceIds(domain, user)
|
|
227
260
|
|
|
@@ -288,12 +321,12 @@ export class OrderInventoryQuery {
|
|
|
288
321
|
|
|
289
322
|
@Query(returns => OrderInventoryList)
|
|
290
323
|
async nonLoadedOrderInventories(
|
|
291
|
-
@Ctx() context:
|
|
324
|
+
@Ctx() context: ResolverContext,
|
|
292
325
|
@Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
|
|
293
326
|
@Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
|
|
294
327
|
@Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
|
|
295
328
|
): Promise<OrderInventoryList> {
|
|
296
|
-
const { page, limit }
|
|
329
|
+
const { page, limit } = pagination
|
|
297
330
|
|
|
298
331
|
try {
|
|
299
332
|
const productFilter = filters.find(x => x.name == 'productInfo')
|
|
@@ -315,7 +348,7 @@ export class OrderInventoryQuery {
|
|
|
315
348
|
.addSelect('(oi.release_uom_value / oi.release_qty) * oi.picked_qty', 'picked_uom_value')
|
|
316
349
|
.innerJoinAndSelect('oi.inventory', 'inv')
|
|
317
350
|
.innerJoinAndSelect('oi.releaseGood', 'rg')
|
|
318
|
-
.innerJoinAndSelect('oi.product', '
|
|
351
|
+
.innerJoinAndSelect('oi.product', 'product')
|
|
319
352
|
.leftJoinAndSelect('oi.binLocation', 'bin_loc')
|
|
320
353
|
.andWhere('rg.status IN (:...releaseGoodStatus)', {
|
|
321
354
|
releaseGoodStatus: [ORDER_STATUS.PICKING, ORDER_STATUS.LOADING]
|
|
@@ -370,20 +403,20 @@ export class OrderInventoryQuery {
|
|
|
370
403
|
}
|
|
371
404
|
|
|
372
405
|
if (sortings?.length !== 0) {
|
|
373
|
-
const sorter = (sortings || []).reduce((acc, sort) => {
|
|
406
|
+
const sorter: OrderByCondition = (sortings || []).reduce((acc, sort) => {
|
|
374
407
|
const order: string = sort.desc ? 'DESC' : 'ASC'
|
|
375
408
|
|
|
376
409
|
switch (sort.name) {
|
|
377
410
|
case 'productSku':
|
|
378
|
-
acc = { ...acc, ['
|
|
411
|
+
acc = { ...acc, ['product.sku']: order }
|
|
379
412
|
break
|
|
380
413
|
|
|
381
414
|
case 'productName':
|
|
382
|
-
acc = { ...acc, ['
|
|
415
|
+
acc = { ...acc, ['product.name']: order }
|
|
383
416
|
break
|
|
384
417
|
|
|
385
418
|
case 'productBrand':
|
|
386
|
-
acc = { ...acc, ['
|
|
419
|
+
acc = { ...acc, ['product.brand']: order }
|
|
387
420
|
|
|
388
421
|
case 'binLocation':
|
|
389
422
|
acc = { ...acc, ['bin_loc.name']: order }
|
|
@@ -447,194 +480,137 @@ export class OrderInventoryQuery {
|
|
|
447
480
|
}
|
|
448
481
|
}
|
|
449
482
|
|
|
483
|
+
@Directive('@transaction')
|
|
450
484
|
@Query(returns => OrderInventoryList)
|
|
451
485
|
async orderInventoriesOfMultipleReleaseOrders(
|
|
452
|
-
@Ctx() context:
|
|
486
|
+
@Ctx() context: ResolverContext,
|
|
453
487
|
@Arg('partnerId') partnerId: string,
|
|
488
|
+
@Arg('priority', { nullable: true }) priority: string,
|
|
489
|
+
@Arg('binNumber', { nullable: true }) binNumber: string,
|
|
454
490
|
@Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
|
|
455
491
|
@Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
|
|
456
492
|
): Promise<OrderInventoryList> {
|
|
457
493
|
try {
|
|
458
|
-
const { domain
|
|
459
|
-
const
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
})
|
|
494
|
+
const { domain, tx } = context.state
|
|
495
|
+
const withSkuParam: any = filters.find((param: any) => param.name === 'withSku')
|
|
496
|
+
const withToteParam: any = filters.find((param: any) => param.name === 'withTote')
|
|
497
|
+
const mergedPageParam: any = filters.find((param: any) => param.name === 'merged')
|
|
498
|
+
|
|
499
|
+
let sort = ''
|
|
500
|
+
let prioritySort = ''
|
|
501
|
+
let releaseOrderIdQuery = ''
|
|
502
|
+
|
|
503
|
+
// Require further evaluation. Potential performance issue.
|
|
504
|
+
if (mergedPageParam) {
|
|
505
|
+
releaseOrderIdQuery = `
|
|
506
|
+
select rg.id from release_goods rg
|
|
507
|
+
inner join order_inventories oi on oi.release_good_id = rg.id
|
|
508
|
+
inner join worksheet_details wd on wd.target_inventory_id = oi.id
|
|
509
|
+
inner join worksheets w on w.id = wd.worksheet_id
|
|
510
|
+
where rg.route_id is not null and rg.type = 'b2b'
|
|
511
|
+
and rg.domain_id = $1 and rg.bizplace_id = $2
|
|
512
|
+
and w.type in ('BATCH_PICKING', 'SORTING', 'LOADING') and w.status = 'EXECUTING'
|
|
513
|
+
and rg.id not in (select rg2.id from release_goods rg2
|
|
514
|
+
inner join worksheets w2 on w2.release_good_id = rg2.id
|
|
515
|
+
where rg2.domain_id = $1 and rg2.bizplace_id = $2
|
|
516
|
+
and rg2.route_id is not null and rg2.type = 'b2b'
|
|
517
|
+
and w2.type in ('PICKING'))
|
|
518
|
+
group by rg.id
|
|
519
|
+
`
|
|
485
520
|
} else {
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
521
|
+
releaseOrderIdQuery = `
|
|
522
|
+
select rg.id from release_goods rg
|
|
523
|
+
inner join worksheets w on w.release_good_id = rg.id
|
|
524
|
+
where rg.domain_id = $1 and rg.bizplace_id = $2
|
|
525
|
+
and rg.route_id is not null and rg.type = 'b2b'
|
|
526
|
+
and w.type in ('PICKING', 'LOADING') and w.status = 'EXECUTING'
|
|
527
|
+
and rg.id not in (select rg2.id from release_goods rg2
|
|
528
|
+
inner join order_inventories oi2 on oi2.release_good_id = rg2.id
|
|
529
|
+
inner join worksheet_details wd2 on wd2.target_inventory_id = oi2.id
|
|
530
|
+
inner join worksheets w2 on w2.id = wd2.worksheet_id
|
|
531
|
+
where rg2.route_id is not null and rg2.type = 'b2b'
|
|
532
|
+
and rg2.domain_id = $1 and rg2.bizplace_id = $2
|
|
533
|
+
and w2.type in ('BATCH_PICKING'))
|
|
534
|
+
group by rg.id
|
|
535
|
+
`
|
|
491
536
|
}
|
|
492
537
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
acc = { ...acc, ['rg.name']: order }
|
|
512
|
-
break
|
|
513
|
-
|
|
514
|
-
case 'productSku':
|
|
515
|
-
acc = { ...acc, ['Product.sku']: order }
|
|
516
|
-
break
|
|
517
|
-
|
|
518
|
-
case 'binNumber':
|
|
519
|
-
acc = { ...acc, ['bin_loc.name']: order }
|
|
520
|
-
break
|
|
521
|
-
}
|
|
538
|
+
await tx.query(
|
|
539
|
+
`
|
|
540
|
+
create temp table temp_route_label ON COMMIT drop as (
|
|
541
|
+
select distinct(ot.name) as "toteNumber", oi.id, rg3.name as "releaseGoodName", (case when ot.name is null then oi.release_qty else null end) as "releaseQty",
|
|
542
|
+
(case when ot.name is null then p.sku else null end) as "productSKU", (case when ot.name is null then p.name else null end) as "productName", (case when ot.name is null then l.name else null end) as "binNumber",
|
|
543
|
+
rg3.route_id as "routeId", rg3.store_id as "storeId", rg3.store_name as "storeName", rg3.stop_id as "stopId",
|
|
544
|
+
rg3.created_at as "createdAt" from order_inventories oi
|
|
545
|
+
inner join release_goods rg3 on rg3.id = oi.release_good_id
|
|
546
|
+
inner join products p on p.id = oi.product_id
|
|
547
|
+
left join locations l on l.id = oi.bin_location_id
|
|
548
|
+
left join order_tote_items oti on oti.order_inventory_id = oi.id
|
|
549
|
+
left join order_totes ot on ot.id = oti.order_tote_id
|
|
550
|
+
where oi.release_good_id in
|
|
551
|
+
(${releaseOrderIdQuery})
|
|
552
|
+
)
|
|
553
|
+
`,
|
|
554
|
+
[domain.id, partnerId]
|
|
555
|
+
)
|
|
522
556
|
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
557
|
+
let withSkuQuery = withSkuParam?.value == true ? `AND tmp."binNumber" is null AND tmp."toteNumber" is null` : ''
|
|
558
|
+
let withBinQuery = ''
|
|
559
|
+
let withToteQuery =
|
|
560
|
+
withToteParam?.value == true
|
|
561
|
+
? (withSkuParam?.value == true || binNumber ? `OR ` : 'AND ') + `tmp."toteNumber" is not null`
|
|
562
|
+
: ''
|
|
563
|
+
|
|
564
|
+
if (binNumber) {
|
|
565
|
+
if (binNumber !== 'all' && binNumber !== '') {
|
|
566
|
+
withBinQuery =
|
|
567
|
+
(withSkuParam?.value == true || withToteParam?.value == false ? `OR ` : `AND `) +
|
|
568
|
+
`tmp."binNumber" = '` +
|
|
569
|
+
binNumber +
|
|
570
|
+
`'`
|
|
571
|
+
} else if (binNumber == 'all') {
|
|
572
|
+
withBinQuery =
|
|
573
|
+
(withSkuParam?.value == true || withToteParam?.value == false ? `OR ` : `AND `) +
|
|
574
|
+
`tmp."binNumber" is not null`
|
|
575
|
+
}
|
|
526
576
|
}
|
|
527
577
|
|
|
528
|
-
|
|
578
|
+
if (priority) {
|
|
579
|
+
prioritySort = ' order by '
|
|
529
580
|
|
|
530
|
-
|
|
531
|
-
} catch (e) {
|
|
532
|
-
throw e
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
|
|
536
|
-
@Query(returns => OrderInventoryList)
|
|
537
|
-
async orderInventoriesOfMergedReleaseOrders(
|
|
538
|
-
@Ctx() context: any,
|
|
539
|
-
@Arg('partnerId') partnerId: string,
|
|
540
|
-
@Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
|
|
541
|
-
@Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
|
|
542
|
-
): Promise<OrderInventoryList> {
|
|
543
|
-
try {
|
|
544
|
-
const { domain }: { domain: Domain } = context.state
|
|
545
|
-
const binNumberParam: any = filters.find((param: any) => param.name === 'binNumber')
|
|
546
|
-
const priorityParam: any = filters.find((param: any) => param.name === 'priority')
|
|
547
|
-
let arrFilters = []
|
|
548
|
-
|
|
549
|
-
if (priorityParam) {
|
|
550
|
-
filters.splice(
|
|
551
|
-
filters.findIndex(item => item.name == 'priority'),
|
|
552
|
-
1
|
|
553
|
-
)
|
|
554
|
-
|
|
555
|
-
switch (priorityParam.value) {
|
|
581
|
+
switch (priority) {
|
|
556
582
|
case 'roSku':
|
|
557
|
-
|
|
558
|
-
sortings.push({ name: 'productSku', desc: false })
|
|
583
|
+
prioritySort = prioritySort + '"createdAt" desc, "productSKU" asc'
|
|
559
584
|
break
|
|
560
585
|
|
|
561
586
|
case 'roBin':
|
|
562
|
-
|
|
563
|
-
|
|
587
|
+
prioritySort = prioritySort + '"createdAt" desc, "binNumber" asc'
|
|
588
|
+
break
|
|
589
|
+
|
|
590
|
+
case 'roTote':
|
|
591
|
+
prioritySort = prioritySort + '"createdAt" desc, "toteNumber" asc'
|
|
564
592
|
break
|
|
565
593
|
|
|
566
594
|
case 'skuRo':
|
|
567
|
-
|
|
568
|
-
sortings.push({ name: 'releaseGood', desc: true })
|
|
595
|
+
prioritySort = prioritySort + '"productSKU" asc, "createdAt" desc'
|
|
569
596
|
break
|
|
570
597
|
|
|
571
598
|
case 'skuBin':
|
|
572
|
-
|
|
573
|
-
sortings.push({ name: 'binNumber', desc: false })
|
|
599
|
+
prioritySort = prioritySort + '"productSKU" asc, "binNumber" asc'
|
|
574
600
|
break
|
|
575
601
|
|
|
576
602
|
case 'binSku':
|
|
577
|
-
|
|
578
|
-
sortings.push({ name: 'productSku', desc: false })
|
|
603
|
+
prioritySort = prioritySort + '"binNumber" asc, "productSKU" asc'
|
|
579
604
|
break
|
|
580
605
|
|
|
581
606
|
case 'binRo':
|
|
582
|
-
|
|
583
|
-
sortings.push({ name: 'releaseGood', desc: true })
|
|
607
|
+
prioritySort = prioritySort + '"binNumber" asc, "createdAt" desc'
|
|
584
608
|
break
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
|
|
588
|
-
const releaseGoodsList: ReleaseGood[] = await getRepository(ReleaseGood).query(
|
|
589
|
-
`select oi.release_good_id as id from worksheets w
|
|
590
|
-
inner join worksheet_details wd on wd.worksheet_id =w.id
|
|
591
|
-
inner join order_inventories oi on oi.id =wd.target_inventory_id
|
|
592
|
-
inner join release_goods rg on rg.id = oi.release_good_id
|
|
593
|
-
and oi.status in ('PICKING', 'PICKED', 'SORTING', 'SORTED')
|
|
594
|
-
and w.type = 'BATCH_PICKING' and w.status != 'DEACTIVATED'
|
|
595
|
-
and rg.domain_id = '${domain.id}' and rg.bizplace_id = '${partnerId}'
|
|
596
|
-
and rg.route_id is not null
|
|
597
|
-
group by oi.release_good_id`
|
|
598
|
-
)
|
|
599
|
-
|
|
600
|
-
if (releaseGoodsList && releaseGoodsList.length) {
|
|
601
|
-
arrFilters.push({
|
|
602
|
-
name: 'releaseGoodId',
|
|
603
|
-
operator: 'in',
|
|
604
|
-
value: releaseGoodsList.map((foundRG: ReleaseGood) => foundRG.id),
|
|
605
|
-
relation: false
|
|
606
|
-
})
|
|
607
|
-
} else {
|
|
608
|
-
arrFilters.push({
|
|
609
|
-
name: 'releaseGoodId',
|
|
610
|
-
operator: 'is_null',
|
|
611
|
-
relation: false
|
|
612
|
-
})
|
|
613
|
-
}
|
|
614
609
|
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
qb.select('oi')
|
|
620
|
-
qb.innerJoinAndSelect('oi.releaseGood', 'rg')
|
|
621
|
-
qb.innerJoinAndSelect('oi.product', 'Product')
|
|
622
|
-
qb.leftJoinAndSelect('oi.binLocation', 'bin_loc')
|
|
623
|
-
qb.leftJoinAndSelect('oi.domain', 'domain')
|
|
624
|
-
qb.leftJoinAndSelect('oi.creator', 'creator')
|
|
625
|
-
qb.leftJoinAndSelect('oi.updater', 'updater')
|
|
626
|
-
|
|
627
|
-
if (binNumberParam) {
|
|
628
|
-
let binLocation: Location = await getRepository(Location).findOne({
|
|
629
|
-
where: { domain, name: binNumberParam.value }
|
|
630
|
-
})
|
|
631
|
-
|
|
632
|
-
filters.splice(
|
|
633
|
-
filters.findIndex(item => item.name == 'binNumber'),
|
|
634
|
-
1
|
|
635
|
-
)
|
|
636
|
-
|
|
637
|
-
qb.andWhere('bin_loc.id = :id', { id: binLocation.id })
|
|
610
|
+
case 'toteRo':
|
|
611
|
+
prioritySort = prioritySort + '"toteNumber" asc, "createdAt" desc'
|
|
612
|
+
break
|
|
613
|
+
}
|
|
638
614
|
}
|
|
639
615
|
|
|
640
616
|
if (sortings?.length !== 0) {
|
|
@@ -643,28 +619,40 @@ export class OrderInventoryQuery {
|
|
|
643
619
|
|
|
644
620
|
switch (sort.name) {
|
|
645
621
|
case 'roName':
|
|
646
|
-
acc =
|
|
647
|
-
break
|
|
648
|
-
|
|
649
|
-
case 'releaseGood':
|
|
650
|
-
acc = { ...acc, ['rg.created_at']: order }
|
|
622
|
+
acc = [...acc, '"releaseGoodName" ' + order]
|
|
651
623
|
break
|
|
652
624
|
|
|
653
625
|
case 'productSku':
|
|
654
|
-
acc =
|
|
626
|
+
acc = [...acc, '"productSKU" ' + order]
|
|
655
627
|
break
|
|
656
628
|
|
|
657
629
|
case 'binNumber':
|
|
658
|
-
acc =
|
|
630
|
+
acc = [...acc, '"binNumber" ' + order]
|
|
631
|
+
break
|
|
632
|
+
|
|
633
|
+
case 'toteNumber':
|
|
634
|
+
acc = [...acc, '"toteNumber" ' + order]
|
|
659
635
|
break
|
|
660
636
|
}
|
|
661
637
|
|
|
662
638
|
return acc
|
|
663
|
-
},
|
|
664
|
-
|
|
639
|
+
}, [])
|
|
640
|
+
|
|
641
|
+
sort = (priority ? ', ' : ' order by ') + sorter.toString()
|
|
665
642
|
}
|
|
666
643
|
|
|
667
|
-
|
|
644
|
+
let items = await tx.query(
|
|
645
|
+
`
|
|
646
|
+
select * from temp_route_label tmp where 1 = 1
|
|
647
|
+
${withSkuQuery}
|
|
648
|
+
${withBinQuery}
|
|
649
|
+
${withToteQuery}
|
|
650
|
+
${prioritySort}
|
|
651
|
+
${sort}
|
|
652
|
+
`
|
|
653
|
+
)
|
|
654
|
+
|
|
655
|
+
let total = items.length
|
|
668
656
|
|
|
669
657
|
return { items, total }
|
|
670
658
|
} catch (e) {
|
|
@@ -674,70 +662,55 @@ export class OrderInventoryQuery {
|
|
|
674
662
|
|
|
675
663
|
@Query(returns => OrderInventoryList)
|
|
676
664
|
async orderInventoriesForReleaseGood(
|
|
677
|
-
@Ctx() context:
|
|
665
|
+
@Ctx() context: ResolverContext,
|
|
678
666
|
@Args() params: ListParam,
|
|
679
667
|
@Arg('productTypes', type => [String], { nullable: true }) productTypes?: string[]
|
|
680
668
|
): Promise<OrderInventoryList> {
|
|
681
|
-
const { domain }
|
|
682
|
-
let filters = params.filters
|
|
683
|
-
|
|
684
|
-
const rgParam = filters.find(
|
|
685
|
-
(filter: filterInterface) => filter.name === 'releaseGoodNo' && filter.operator === 'eq'
|
|
686
|
-
)
|
|
687
|
-
|
|
688
|
-
if (rgParam && !filters.some(filter => filter.name === 'releaseGood')) {
|
|
689
|
-
if (!rgParam.value) filters = params.filters.filter(filter => filter.name !== 'releaseGoodNo')
|
|
690
|
-
else {
|
|
691
|
-
const foundReleaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({
|
|
692
|
-
where: {
|
|
693
|
-
name: rgParam.value,
|
|
694
|
-
domain
|
|
695
|
-
}
|
|
696
|
-
})
|
|
697
|
-
|
|
698
|
-
if (foundReleaseGood) {
|
|
699
|
-
filters = params.filters.filter(filter => filter.name !== 'releaseGoodNo')
|
|
700
|
-
params.filters = [...filters, { name: 'releaseGood', operator: 'eq', value: foundReleaseGood.id }]
|
|
701
|
-
} else throw new Error(`Cannot find result for order "${rgParam.value}"`)
|
|
702
|
-
}
|
|
703
|
-
}
|
|
669
|
+
const { domain } = context.state
|
|
704
670
|
|
|
705
671
|
const qb = getQueryBuilderFromListParams({
|
|
706
672
|
repository: getRepository(OrderInventory),
|
|
707
673
|
params,
|
|
708
674
|
domain,
|
|
709
675
|
alias: 'oi',
|
|
710
|
-
searchables: ['bizplace', 'product']
|
|
676
|
+
searchables: ['bizplace', 'product', 'releaseGood', 'lot'],
|
|
677
|
+
filtersMap: {
|
|
678
|
+
lot: {
|
|
679
|
+
/* 조인 테이블의 필터대상 컬럼이름을 디폴트('name')에서 다른 컬럼('sku')로 변경 */
|
|
680
|
+
relationColumn: 'inventory',
|
|
681
|
+
columnName: 'palletId'
|
|
682
|
+
}
|
|
683
|
+
}
|
|
711
684
|
})
|
|
712
685
|
|
|
713
|
-
|
|
714
|
-
.leftJoinAndSelect('oi.releaseGood', 'rg')
|
|
686
|
+
qb.leftJoinAndSelect('oi.releaseGood', 'rg')
|
|
715
687
|
.leftJoinAndSelect('rg.deliverTo', 'deliverTo')
|
|
716
688
|
.leftJoinAndSelect('deliverTo.bizplace', 'deliverToBizplace')
|
|
717
|
-
.leftJoinAndSelect('oi.product', 'p')
|
|
718
689
|
.leftJoinAndSelect('oi.inventory', 'i')
|
|
690
|
+
.leftJoinAndSelect('oi.product', 'p')
|
|
719
691
|
.leftJoinAndSelect('oi.bizplace', 'b')
|
|
720
692
|
.andWhere('oi.type = :oiType', { oiType: 'RELEASE_OF_GOODS' })
|
|
721
693
|
.andWhere('p.type IN (:...productTypes)', {
|
|
722
694
|
productTypes: productTypes
|
|
723
695
|
})
|
|
724
|
-
|
|
696
|
+
|
|
697
|
+
const [items, total] = await qb.getManyAndCount()
|
|
725
698
|
|
|
726
699
|
return { items, total }
|
|
727
700
|
}
|
|
728
701
|
|
|
729
702
|
@FieldResolver(type => Domain)
|
|
730
703
|
async domain(@Root() orderInventory: OrderInventory): Promise<Domain> {
|
|
731
|
-
return await getRepository(Domain).
|
|
704
|
+
return await getRepository(Domain).findOneBy({ id: orderInventory.domainId })
|
|
732
705
|
}
|
|
733
706
|
|
|
734
707
|
@FieldResolver(type => User)
|
|
735
708
|
async creator(@Root() orderInventory: OrderInventory): Promise<User> {
|
|
736
|
-
return await getRepository(User).
|
|
709
|
+
return await getRepository(User).findOneBy({ id: orderInventory.creatorId })
|
|
737
710
|
}
|
|
738
711
|
|
|
739
712
|
@FieldResolver(type => User)
|
|
740
713
|
async updater(@Root() orderInventory: OrderInventory): Promise<User> {
|
|
741
|
-
return await getRepository(User).
|
|
714
|
+
return await getRepository(User).findOneBy({ id: orderInventory.updaterId })
|
|
742
715
|
}
|
|
743
716
|
}
|