@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,7 +1,7 @@
|
|
|
1
1
|
import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'
|
|
2
2
|
import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'
|
|
3
3
|
import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
4
|
-
import { EntityManager, getConnection,
|
|
4
|
+
import { EntityManager, getConnection, In, IsNull, Repository } from 'typeorm'
|
|
5
5
|
|
|
6
6
|
import { Attachment, createAttachments, deleteAttachmentsByRef } from '@things-factory/attachment-base'
|
|
7
7
|
import { User } from '@things-factory/auth-base'
|
|
@@ -9,7 +9,7 @@ import { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'
|
|
|
9
9
|
import { generateId } from '@things-factory/id-rule-base'
|
|
10
10
|
import { Product, ProductBundle, ProductDetail } from '@things-factory/product-base'
|
|
11
11
|
import { Setting } from '@things-factory/setting-base'
|
|
12
|
-
import { Domain } from '@things-factory/shell'
|
|
12
|
+
import { Domain, getRepository } from '@things-factory/shell'
|
|
13
13
|
|
|
14
14
|
// import { Location } from '@things-factory/warehouse-base'
|
|
15
15
|
import { DraftReleaseGood, DraftReleaseGoodPatch, NewDraftReleaseGood, OrderProduct } from '../'
|
|
@@ -42,14 +42,14 @@ export class DraftReleaseGoodMutation {
|
|
|
42
42
|
@Directive('@transaction')
|
|
43
43
|
@Mutation(returns => DraftReleaseGood)
|
|
44
44
|
async upsertDraftReleaseGood(
|
|
45
|
-
@Ctx() context:
|
|
45
|
+
@Ctx() context: ResolverContext,
|
|
46
46
|
@Arg('draftReleaseGood', type => DraftReleaseGoodPatch) draftReleaseGood: DraftReleaseGoodPatch,
|
|
47
47
|
@Arg('orderProducts', type => [OrderProductPatch]) orderProducts: [OrderProductPatch],
|
|
48
48
|
@Arg('files', type => [GraphQLUpload], { nullable: true }) files?: FileUpload[],
|
|
49
49
|
@Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder?: ShippingOrderPatch
|
|
50
50
|
): Promise<DraftReleaseGood> {
|
|
51
51
|
try {
|
|
52
|
-
const { tx }
|
|
52
|
+
const { tx } = context.state
|
|
53
53
|
const createdDraftReleaseGood: DraftReleaseGood = await upsertDraftReleaseGoodFunction(
|
|
54
54
|
null,
|
|
55
55
|
draftReleaseGood,
|
|
@@ -70,12 +70,12 @@ export class DraftReleaseGoodMutation {
|
|
|
70
70
|
@Mutation(returns => DraftReleaseGood, { description: 'To create new DraftReleaseGood' })
|
|
71
71
|
async createDraftReleaseGood(
|
|
72
72
|
@Arg('draftReleaseGood', type => NewDraftReleaseGood, { nullable: true }) draftReleaseGood: NewDraftReleaseGood,
|
|
73
|
-
@Ctx() context:
|
|
73
|
+
@Ctx() context: ResolverContext
|
|
74
74
|
): Promise<DraftReleaseGood> {
|
|
75
75
|
const { domain, user, tx } = context.state
|
|
76
76
|
|
|
77
77
|
let drg = await tx.getRepository(DraftReleaseGood).save({
|
|
78
|
-
...draftReleaseGood,
|
|
78
|
+
...(draftReleaseGood as any),
|
|
79
79
|
domain,
|
|
80
80
|
status: 'INSUFFICIENT',
|
|
81
81
|
creator: user,
|
|
@@ -92,18 +92,18 @@ export class DraftReleaseGoodMutation {
|
|
|
92
92
|
async updateDraftReleaseGood(
|
|
93
93
|
@Arg('id') id: string,
|
|
94
94
|
@Arg('patch', type => DraftReleaseGoodPatch) patch: DraftReleaseGoodPatch,
|
|
95
|
-
@Ctx() context:
|
|
95
|
+
@Ctx() context: ResolverContext
|
|
96
96
|
): Promise<DraftReleaseGood> {
|
|
97
97
|
const { domain, user, tx } = context.state
|
|
98
98
|
|
|
99
99
|
const repository = tx.getRepository(DraftReleaseGood)
|
|
100
100
|
const draftReleaseGood = await repository.findOne({
|
|
101
|
-
where: { domain, id }
|
|
101
|
+
where: { domain: { id: domain.id }, id }
|
|
102
102
|
})
|
|
103
103
|
|
|
104
104
|
return await repository.save({
|
|
105
105
|
...draftReleaseGood,
|
|
106
|
-
...patch,
|
|
106
|
+
...(patch as any),
|
|
107
107
|
updater: user
|
|
108
108
|
})
|
|
109
109
|
}
|
|
@@ -112,7 +112,7 @@ export class DraftReleaseGoodMutation {
|
|
|
112
112
|
@Mutation(returns => [DraftReleaseGood], { description: "To modify multiple DraftReleaseGoods' information" })
|
|
113
113
|
async updateMultipleDraftReleaseGood(
|
|
114
114
|
@Arg('patches', type => [DraftReleaseGoodPatch]) patches: DraftReleaseGoodPatch[],
|
|
115
|
-
@Ctx() context:
|
|
115
|
+
@Ctx() context: ResolverContext
|
|
116
116
|
): Promise<DraftReleaseGood[]> {
|
|
117
117
|
const { domain, user, tx } = context.state
|
|
118
118
|
|
|
@@ -126,7 +126,7 @@ export class DraftReleaseGoodMutation {
|
|
|
126
126
|
const newRecord = _createRecords[i]
|
|
127
127
|
|
|
128
128
|
const result = await draftReleaseGoodRepo.save({
|
|
129
|
-
...newRecord,
|
|
129
|
+
...(newRecord as any),
|
|
130
130
|
domain,
|
|
131
131
|
creator: user,
|
|
132
132
|
updater: user
|
|
@@ -139,11 +139,11 @@ export class DraftReleaseGoodMutation {
|
|
|
139
139
|
if (_updateRecords.length > 0) {
|
|
140
140
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
141
141
|
const newRecord = _updateRecords[i]
|
|
142
|
-
const draftReleaseGood = await draftReleaseGoodRepo.
|
|
142
|
+
const draftReleaseGood = await draftReleaseGoodRepo.findOneBy({ id: newRecord.id })
|
|
143
143
|
|
|
144
144
|
const result = await draftReleaseGoodRepo.save({
|
|
145
145
|
...draftReleaseGood,
|
|
146
|
-
...newRecord,
|
|
146
|
+
...(newRecord as any),
|
|
147
147
|
updater: user
|
|
148
148
|
})
|
|
149
149
|
|
|
@@ -156,20 +156,23 @@ export class DraftReleaseGoodMutation {
|
|
|
156
156
|
|
|
157
157
|
@Directive('@transaction')
|
|
158
158
|
@Mutation(returns => Boolean, { description: 'To delete DraftReleaseGood' })
|
|
159
|
-
async deleteDraftReleaseGood(@Arg('id') id: string, @Ctx() context:
|
|
159
|
+
async deleteDraftReleaseGood(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {
|
|
160
160
|
const { domain, tx } = context.state
|
|
161
161
|
|
|
162
|
-
await tx.getRepository(DraftReleaseGood).delete({ domain, id })
|
|
162
|
+
await tx.getRepository(DraftReleaseGood).delete({ domain: { id: domain.id }, id })
|
|
163
163
|
return true
|
|
164
164
|
}
|
|
165
165
|
|
|
166
166
|
@Directive('@transaction')
|
|
167
167
|
@Mutation(returns => Boolean, { description: 'To delete multiple draftReleaseGoods' })
|
|
168
|
-
async deleteDraftReleaseGoods(
|
|
168
|
+
async deleteDraftReleaseGoods(
|
|
169
|
+
@Arg('ids', type => [String]) ids: string[],
|
|
170
|
+
@Ctx() context: ResolverContext
|
|
171
|
+
): Promise<boolean> {
|
|
169
172
|
const { domain, tx } = context.state
|
|
170
173
|
|
|
171
174
|
await tx.getRepository(DraftReleaseGood).delete({
|
|
172
|
-
domain,
|
|
175
|
+
domain: { id: domain.id },
|
|
173
176
|
id: In(ids)
|
|
174
177
|
})
|
|
175
178
|
|
|
@@ -180,7 +183,7 @@ export class DraftReleaseGoodMutation {
|
|
|
180
183
|
@Directive('@transaction')
|
|
181
184
|
@Mutation(returns => Boolean, { description: 'To generate Release Goods from Draft' })
|
|
182
185
|
async generateReleaseGoodsFromDraft(
|
|
183
|
-
@Ctx() context:
|
|
186
|
+
@Ctx() context: ResolverContext,
|
|
184
187
|
@Arg('ids', type => [String]) ids: string[]
|
|
185
188
|
// @Arg('rawReleaseGoods', type => [NewReleaseGood], { nullable: true }) rawReleaseGoods: NewReleaseGood[],
|
|
186
189
|
// @Arg('bizplaceId', type => String) bizplaceId: string
|
|
@@ -189,7 +192,7 @@ export class DraftReleaseGoodMutation {
|
|
|
189
192
|
|
|
190
193
|
const updatableDraftOrders = await tx.getRepository(DraftReleaseGood).find({
|
|
191
194
|
where: {
|
|
192
|
-
domain,
|
|
195
|
+
domain: { id: domain.id },
|
|
193
196
|
id: In(ids),
|
|
194
197
|
status: DRAFT_RELEASE_ORDER_STATUS.DRAFT
|
|
195
198
|
},
|
|
@@ -210,183 +213,190 @@ export class DraftReleaseGoodMutation {
|
|
|
210
213
|
|
|
211
214
|
const roNoSetting: Setting = await settingRepo.findOne({
|
|
212
215
|
where: {
|
|
213
|
-
domain,
|
|
216
|
+
dodomain: { id: domain.id },
|
|
214
217
|
name: ORDER_NUMBER_SETTING_KEY.RO_NUMBER_RULE
|
|
215
218
|
}
|
|
216
219
|
})
|
|
217
220
|
|
|
218
221
|
for (let index = 0; index < updatableDraftOrders.length; index++) {
|
|
219
|
-
|
|
222
|
+
await getConnection().transaction(async (parentTx: EntityManager) => {
|
|
223
|
+
const draftOrder = updatableDraftOrders[index]
|
|
220
224
|
|
|
221
|
-
|
|
222
|
-
|
|
225
|
+
let foundPermittedBizplace: Bizplace
|
|
226
|
+
let companyBizplace: Bizplace
|
|
223
227
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]
|
|
235
|
-
|
|
236
|
-
let productInventory = await InventoryUtil.bizplaceProductInventory(
|
|
237
|
-
bizplaces,
|
|
238
|
-
{
|
|
239
|
-
filters: [
|
|
240
|
-
{
|
|
241
|
-
name: 'productId',
|
|
242
|
-
operator: 'in',
|
|
243
|
-
value: [
|
|
244
|
-
...draftOrder.orderProducts
|
|
245
|
-
.filter(itm => itm?.product)
|
|
246
|
-
.map(itm => {
|
|
247
|
-
return itm.product.id
|
|
248
|
-
}),
|
|
249
|
-
...draftOrder.orderProducts
|
|
250
|
-
.filter(itm => itm?.productBundle)
|
|
251
|
-
.map(itm => {
|
|
252
|
-
return itm.productBundle.id
|
|
253
|
-
})
|
|
254
|
-
]
|
|
255
|
-
}
|
|
256
|
-
]
|
|
257
|
-
},
|
|
258
|
-
context,
|
|
259
|
-
tx
|
|
260
|
-
)
|
|
261
|
-
|
|
262
|
-
draftOrder.orderProducts = draftOrder.orderProducts.map(itm => {
|
|
263
|
-
let foundProductInv = productInventory.items.find(
|
|
264
|
-
i =>
|
|
265
|
-
(i.productId == itm?.product?.id || i.productId == itm?.productBundle?.id) &&
|
|
266
|
-
i.packingType == itm.packingType &&
|
|
267
|
-
i.packingSize == itm.packingSize &&
|
|
268
|
-
i.uom == itm.uom &&
|
|
269
|
-
itm.releaseQty <= i.remainQty
|
|
270
|
-
)
|
|
271
|
-
return { ...itm, status: foundProductInv ? 'suffice' : 'insufficient' }
|
|
272
|
-
})
|
|
228
|
+
if (draftOrder?.bizplace?.id) {
|
|
229
|
+
foundPermittedBizplace = await parentTx.getRepository(Bizplace).findOne({
|
|
230
|
+
where: { id: draftOrder.bizplace.id },
|
|
231
|
+
relations: ['company', 'company.domain']
|
|
232
|
+
})
|
|
233
|
+
const companyDomain: Domain = foundPermittedBizplace.company.domain
|
|
234
|
+
companyBizplace = await parentTx.getRepository(Bizplace).findOne({ where: { domain: companyDomain } })
|
|
235
|
+
} else {
|
|
236
|
+
return false
|
|
237
|
+
}
|
|
273
238
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
if (!insufficient) {
|
|
277
|
-
//create RO
|
|
278
|
-
let releaseGood = { ...draftOrder }
|
|
279
|
-
delete releaseGood.id
|
|
280
|
-
delete releaseGood.name
|
|
281
|
-
delete releaseGood.createdAt
|
|
282
|
-
delete releaseGood.createdBy
|
|
283
|
-
delete releaseGood.updatedAt
|
|
284
|
-
delete releaseGood.updatedBy
|
|
285
|
-
|
|
286
|
-
let orderInventories = []
|
|
287
|
-
|
|
288
|
-
for (let index = 0; index < draftOrder.orderProducts.length; index++) {
|
|
289
|
-
const itm = draftOrder.orderProducts[index]
|
|
290
|
-
let data = []
|
|
291
|
-
if (itm.productBundle) {
|
|
292
|
-
let bundle = await tx.getRepository(ProductBundle).findOne({
|
|
293
|
-
where: { id: itm.productBundle.id },
|
|
294
|
-
relations: [
|
|
295
|
-
'productBundleSettings',
|
|
296
|
-
'productBundleSettings.productDetail',
|
|
297
|
-
'productBundleSettings.product'
|
|
298
|
-
]
|
|
299
|
-
})
|
|
239
|
+
const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]
|
|
300
240
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
packing_type: objProductBundleSetting.productDetail.packingType,
|
|
306
|
-
packing_size: objProductBundleSetting.productDetail.packingSize,
|
|
307
|
-
uom: objProductBundleSetting.productDetail.uom,
|
|
308
|
-
release_qty: objProductBundleSetting.bundleQty * itm.releaseQty,
|
|
309
|
-
assignedQty: undefined,
|
|
310
|
-
assignedUomValue: undefined,
|
|
311
|
-
releaseUomValue: undefined
|
|
312
|
-
})
|
|
313
|
-
}
|
|
314
|
-
} else {
|
|
315
|
-
data = [
|
|
241
|
+
let productInventory = await InventoryUtil.bizplaceProductInventory(
|
|
242
|
+
bizplaces,
|
|
243
|
+
{
|
|
244
|
+
filters: [
|
|
316
245
|
{
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
246
|
+
name: 'productId',
|
|
247
|
+
operator: 'in',
|
|
248
|
+
value: [
|
|
249
|
+
...draftOrder.orderProducts
|
|
250
|
+
.filter(itm => itm?.product)
|
|
251
|
+
.map(itm => {
|
|
252
|
+
return itm.product.id
|
|
253
|
+
}),
|
|
254
|
+
...draftOrder.orderProducts
|
|
255
|
+
.filter(itm => itm?.productBundle)
|
|
256
|
+
.map(itm => {
|
|
257
|
+
return itm.productBundle.id
|
|
258
|
+
})
|
|
259
|
+
]
|
|
325
260
|
}
|
|
326
261
|
]
|
|
262
|
+
},
|
|
263
|
+
context,
|
|
264
|
+
parentTx
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
draftOrder.orderProducts = draftOrder.orderProducts.map(itm => {
|
|
268
|
+
let foundProductInv = productInventory.items.find(
|
|
269
|
+
i =>
|
|
270
|
+
(i.productId == itm?.product?.id || i.productId == itm?.productBundle?.id) &&
|
|
271
|
+
i.packingType == itm.packingType &&
|
|
272
|
+
i.packingSize == itm.packingSize &&
|
|
273
|
+
i.uom == itm.uom &&
|
|
274
|
+
itm.releaseQty <= i.remainQty
|
|
275
|
+
)
|
|
276
|
+
return {
|
|
277
|
+
...itm,
|
|
278
|
+
releaseUomValue: (foundProductInv.remainUomValue / foundProductInv.remainQty) * itm.releaseQty,
|
|
279
|
+
status: foundProductInv ? 'suffice' : 'insufficient'
|
|
327
280
|
}
|
|
281
|
+
})
|
|
328
282
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
283
|
+
let insufficient = draftOrder.orderProducts.find(op => op.status == 'insufficient')
|
|
284
|
+
if (!insufficient) {
|
|
285
|
+
//create RO
|
|
286
|
+
let releaseGood = { ...draftOrder }
|
|
287
|
+
delete releaseGood.id
|
|
288
|
+
delete releaseGood.name
|
|
289
|
+
delete releaseGood.createdAt
|
|
290
|
+
delete (releaseGood as any).createdBy
|
|
291
|
+
delete releaseGood.updatedAt
|
|
292
|
+
delete (releaseGood as any).updatedBy
|
|
293
|
+
|
|
294
|
+
let orderInventories = []
|
|
295
|
+
|
|
296
|
+
for (let index = 0; index < draftOrder.orderProducts.length; index++) {
|
|
297
|
+
const itm: Partial<OrderProduct> = draftOrder.orderProducts[index]
|
|
298
|
+
let data = []
|
|
299
|
+
if (itm.productBundle) {
|
|
300
|
+
let bundle: ProductBundle = await parentTx.getRepository(ProductBundle).findOne({
|
|
301
|
+
where: { id: itm.productBundle.id },
|
|
302
|
+
relations: [
|
|
303
|
+
'productBundleSettings',
|
|
304
|
+
'productBundleSettings.productDetail',
|
|
305
|
+
'productBundleSettings.product'
|
|
306
|
+
]
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
for (let index2 = 0; index2 < bundle.productBundleSettings.length; index2++) {
|
|
310
|
+
const objProductBundleSetting = bundle.productBundleSettings[index2]
|
|
311
|
+
data.push({
|
|
312
|
+
sku: objProductBundleSetting.product.sku,
|
|
313
|
+
packingType: objProductBundleSetting.productDetail.packingType,
|
|
314
|
+
packingSize: objProductBundleSetting.productDetail.packingSize,
|
|
315
|
+
uom: objProductBundleSetting.productDetail.uom,
|
|
316
|
+
releaseQty: objProductBundleSetting.bundleQty * itm.releaseQty,
|
|
317
|
+
assignedQty: undefined,
|
|
318
|
+
assignedUomValue: undefined,
|
|
319
|
+
releaseUomValue: objProductBundleSetting.bundleQty * itm.releaseQty * itm.releaseUomValue
|
|
320
|
+
})
|
|
321
|
+
}
|
|
340
322
|
} else {
|
|
341
|
-
|
|
323
|
+
data = [
|
|
324
|
+
{
|
|
325
|
+
sku: itm.product.sku,
|
|
326
|
+
packingType: itm.packingType,
|
|
327
|
+
packingSize: itm.packingSize,
|
|
328
|
+
uom: itm.uom,
|
|
329
|
+
releaseQty: itm.releaseQty,
|
|
330
|
+
assignedQty: undefined,
|
|
331
|
+
assignedUomValue: undefined,
|
|
332
|
+
releaseUomValue: itm.releaseUomValue
|
|
333
|
+
}
|
|
334
|
+
]
|
|
342
335
|
}
|
|
343
|
-
})
|
|
344
|
-
}
|
|
345
|
-
try {
|
|
346
|
-
await getConnection().transaction(async (childTx: EntityManager) => {
|
|
347
|
-
let availableItems: any[] = await bulkReleaseGoodsAvailableItemsFunction(
|
|
348
|
-
orderInventories,
|
|
349
|
-
draftOrder.bizplace.id,
|
|
350
|
-
context,
|
|
351
|
-
childTx
|
|
352
|
-
)
|
|
353
|
-
|
|
354
|
-
if (availableItems.some(item => !item.release_qty || item.release_qty > item.assignedQty))
|
|
355
|
-
throw new ValidationError({
|
|
356
|
-
...ValidationError.ERROR_CODES.INSUFFICIENT_STOCK,
|
|
357
|
-
detail: { data: JSON.stringify(availableItems) }
|
|
358
|
-
})
|
|
359
336
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
337
|
+
data.forEach(data => {
|
|
338
|
+
let existingOI = orderInventories.find(
|
|
339
|
+
itm =>
|
|
340
|
+
itm.sku == data.sku &&
|
|
341
|
+
itm.packingType == data.packingType &&
|
|
342
|
+
itm.packingSize == data.packingSize &&
|
|
343
|
+
itm.uom == data.uom
|
|
344
|
+
)
|
|
345
|
+
|
|
346
|
+
if (existingOI) {
|
|
347
|
+
existingOI.releaseQty = existingOI.releaseQty + data.releaseQty
|
|
348
|
+
existingOI.releaseUomValue = existingOI.releaseUomValue + data.uomValue
|
|
349
|
+
existingOI.uomValue = existingOI.uomValue + data.uomValue
|
|
350
|
+
} else {
|
|
351
|
+
orderInventories.push({ ...data, orderProduct: itm })
|
|
365
352
|
}
|
|
366
353
|
})
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
)
|
|
376
|
-
|
|
377
|
-
await childTx
|
|
378
|
-
.getRepository(DraftReleaseGood)
|
|
379
|
-
.update(
|
|
380
|
-
{ id: draftOrder.id },
|
|
381
|
-
{ releaseGood: createdReleaseGood, status: DRAFT_RELEASE_ORDER_STATUS.SUBMITTED }
|
|
354
|
+
}
|
|
355
|
+
try {
|
|
356
|
+
await getConnection().transaction(async (childTx: EntityManager) => {
|
|
357
|
+
let availableItems: any[] = await bulkReleaseGoodsAvailableItemsFunction(
|
|
358
|
+
orderInventories,
|
|
359
|
+
draftOrder.bizplace.id,
|
|
360
|
+
context,
|
|
361
|
+
childTx
|
|
382
362
|
)
|
|
363
|
+
if (availableItems.some(item => !item.releaseQty || item.releaseQty > item.assignedQty)) {
|
|
364
|
+
throw new ValidationError({
|
|
365
|
+
...ValidationError.ERROR_CODES.INSUFFICIENT_STOCK,
|
|
366
|
+
detail: { data: JSON.stringify(availableItems) }
|
|
367
|
+
})
|
|
368
|
+
}
|
|
383
369
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
370
|
+
// update orderInventories if availableItems are valid
|
|
371
|
+
;(releaseGood as any).orderInventories = availableItems.map(itm => {
|
|
372
|
+
return {
|
|
373
|
+
...itm,
|
|
374
|
+
releaseQty: itm.releaseQty,
|
|
375
|
+
releaseUomValue: itm.releaseUomValue,
|
|
376
|
+
uomValue: itm.uomValue
|
|
377
|
+
}
|
|
378
|
+
})
|
|
379
|
+
let createdReleaseGood: ReleaseGood = await bulkGenerateReleaseGood(
|
|
380
|
+
releaseGood,
|
|
381
|
+
releaseGood.bizplace.id,
|
|
382
|
+
roNoSetting,
|
|
383
|
+
domain,
|
|
384
|
+
user,
|
|
385
|
+
childTx
|
|
386
|
+
)
|
|
387
|
+
await childTx
|
|
388
|
+
.getRepository(DraftReleaseGood)
|
|
389
|
+
.update(
|
|
390
|
+
{ id: draftOrder.id },
|
|
391
|
+
{ releaseGood: createdReleaseGood, status: DRAFT_RELEASE_ORDER_STATUS.SUBMITTED }
|
|
392
|
+
)
|
|
393
|
+
createdReleaseGood = await confirmReleaseGood(createdReleaseGood.name, context, childTx)
|
|
394
|
+
})
|
|
395
|
+
} catch (error) {
|
|
396
|
+
console.error(error)
|
|
397
|
+
}
|
|
388
398
|
}
|
|
389
|
-
}
|
|
399
|
+
})
|
|
390
400
|
}
|
|
391
401
|
}
|
|
392
402
|
|
|
@@ -437,7 +447,7 @@ export async function createDraftReleaseGoodFunction(
|
|
|
437
447
|
context: any,
|
|
438
448
|
tx?: EntityManager
|
|
439
449
|
): Promise<DraftReleaseGood> {
|
|
440
|
-
const { domain, user }
|
|
450
|
+
const { domain, user } = context.state
|
|
441
451
|
|
|
442
452
|
let myBizplace: Bizplace
|
|
443
453
|
let orderNo: string = ''
|
|
@@ -463,7 +473,7 @@ export async function createDraftReleaseGoodFunction(
|
|
|
463
473
|
// // find DRO number rule setting
|
|
464
474
|
const droNoSetting: Setting = await settingRepo.findOne({
|
|
465
475
|
where: {
|
|
466
|
-
domain,
|
|
476
|
+
domain: { id: domain.id },
|
|
467
477
|
name: ORDER_NUMBER_SETTING_KEY.DO_NUMBER_RULE
|
|
468
478
|
}
|
|
469
479
|
})
|
|
@@ -474,7 +484,21 @@ export async function createDraftReleaseGoodFunction(
|
|
|
474
484
|
orderNo = OrderNoGenerator.draftReleaseGood()
|
|
475
485
|
}
|
|
476
486
|
|
|
477
|
-
// // 1. Create
|
|
487
|
+
// // 1. Create shipping order if found
|
|
488
|
+
if (shippingOrder) {
|
|
489
|
+
let newShippingOrder: ShippingOrder = await tx.getRepository(ShippingOrder).save({
|
|
490
|
+
...shippingOrder,
|
|
491
|
+
name: OrderNoGenerator.shippingOrder(),
|
|
492
|
+
domain,
|
|
493
|
+
bizplace: draftReleaseGood.bizplace,
|
|
494
|
+
status: ORDER_STATUS.PENDING,
|
|
495
|
+
creator: user,
|
|
496
|
+
updater: user
|
|
497
|
+
})
|
|
498
|
+
draftReleaseGood.shippingOrder = newShippingOrder
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
// // 2. Create draft release good
|
|
478
502
|
const createdDraftReleaseGood: DraftReleaseGood = await tx.getRepository(DraftReleaseGood).save({
|
|
479
503
|
...draftReleaseGood,
|
|
480
504
|
name: orderNo,
|
|
@@ -484,7 +508,7 @@ export async function createDraftReleaseGoodFunction(
|
|
|
484
508
|
updater: user
|
|
485
509
|
})
|
|
486
510
|
|
|
487
|
-
// //
|
|
511
|
+
// // 3. Create draft release good product
|
|
488
512
|
await upsertDraftReleaseGoodProducts(
|
|
489
513
|
domain,
|
|
490
514
|
draftReleaseGood.bizplace,
|
|
@@ -494,7 +518,7 @@ export async function createDraftReleaseGoodFunction(
|
|
|
494
518
|
tx
|
|
495
519
|
)
|
|
496
520
|
|
|
497
|
-
// //
|
|
521
|
+
// // 4. Create Attachments
|
|
498
522
|
if (files?.length) {
|
|
499
523
|
const attachments: Attachment[] = files.map(attachment => {
|
|
500
524
|
return {
|
|
@@ -519,7 +543,7 @@ export async function updateDraftReleaseGoodFunction(
|
|
|
519
543
|
context: any,
|
|
520
544
|
tx?: EntityManager
|
|
521
545
|
): Promise<DraftReleaseGood> {
|
|
522
|
-
const { domain, user }
|
|
546
|
+
const { domain, user } = context.state
|
|
523
547
|
|
|
524
548
|
let existingDraftReleaseGood: any = await getDraftReleaseGoodFunction(_, draftReleaseGood.name, context, tx)
|
|
525
549
|
|
|
@@ -560,7 +584,7 @@ export async function updateDraftReleaseGoodFunction(
|
|
|
560
584
|
...existingDraftReleaseGood,
|
|
561
585
|
...draftReleaseGood,
|
|
562
586
|
domain,
|
|
563
|
-
creator:
|
|
587
|
+
creator: existingDraftReleaseGood.creator,
|
|
564
588
|
updater: user
|
|
565
589
|
})
|
|
566
590
|
|
|
@@ -570,7 +594,7 @@ export async function updateDraftReleaseGoodFunction(
|
|
|
570
594
|
// // 3. Remove Purchase Order Attachment
|
|
571
595
|
const foundAttachments: Attachment[] = await getRepository(Attachment).find({
|
|
572
596
|
where: {
|
|
573
|
-
domain,
|
|
597
|
+
domain: { id: domain.id },
|
|
574
598
|
refBy: draftReleaseGood.id,
|
|
575
599
|
category: ATTACHMENT_TYPE.DGRN
|
|
576
600
|
}
|
|
@@ -636,7 +660,8 @@ export async function upsertDraftReleaseGoodProducts(
|
|
|
636
660
|
|
|
637
661
|
if (removeOP.length > 0) await orderProductRepo.delete(removeOP.map(itm => itm.id))
|
|
638
662
|
|
|
639
|
-
bizplace = await bizplaceRepo.findOne(
|
|
663
|
+
bizplace = await bizplaceRepo.findOne({
|
|
664
|
+
where: { id: bizplace.id },
|
|
640
665
|
relations: ['domain', 'company', 'company.domain']
|
|
641
666
|
})
|
|
642
667
|
|