@things-factory/sales-base 7.0.1-beta.0 → 7.0.1-beta.12
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/attachment-type.d.ts +9 -0
- package/dist-server/constants/index.d.ts +7 -0
- package/dist-server/constants/load-type.d.ts +4 -0
- package/dist-server/constants/order.d.ts +191 -0
- package/dist-server/constants/product-group-type.d.ts +4 -0
- package/dist-server/constants/release-good.d.ts +8 -0
- package/dist-server/constants/release-good.js +1 -1
- package/dist-server/constants/release-good.js.map +1 -1
- package/dist-server/constants/transfer-order-type.d.ts +5 -0
- package/dist-server/constants/validation-error-code.d.ts +12 -0
- package/dist-server/constants/vas-target-type.d.ts +22 -0
- package/dist-server/controllers/ecommerce/ecommerce-controller.d.ts +6 -0
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
- package/dist-server/controllers/ecommerce/index.d.ts +2 -0
- package/dist-server/controllers/ecommerce/sellercraft-controller.d.ts +9 -0
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/index.d.ts +2 -0
- package/dist-server/controllers/order-controller.d.ts +109 -0
- package/dist-server/controllers/order-controller.js +2 -2
- package/dist-server/controllers/order-controller.js.map +1 -1
- package/dist-server/errors/index.d.ts +1 -0
- package/dist-server/errors/validation-error.d.ts +12 -0
- package/dist-server/index.d.ts +5 -0
- package/dist-server/migrations/index.d.ts +1 -0
- package/dist-server/service/arrival-notice/arrival-notice-mutation.d.ts +28 -0
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js +55 -16
- package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-query.d.ts +15 -0
- package/dist-server/service/arrival-notice/arrival-notice-query.js +2 -2
- package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice-types.d.ts +107 -0
- package/dist-server/service/arrival-notice/arrival-notice-types.js +8 -8
- package/dist-server/service/arrival-notice/arrival-notice-types.js.map +1 -1
- package/dist-server/service/arrival-notice/arrival-notice.d.ts +56 -0
- package/dist-server/service/arrival-notice/arrival-notice.js +4 -5
- package/dist-server/service/arrival-notice/arrival-notice.js.map +1 -1
- package/dist-server/service/arrival-notice/index.d.ts +7 -0
- package/dist-server/service/claim/claim-mutation.d.ts +9 -0
- package/dist-server/service/claim/claim-mutation.js +2 -2
- package/dist-server/service/claim/claim-mutation.js.map +1 -1
- package/dist-server/service/claim/claim-query.d.ts +13 -0
- package/dist-server/service/claim/claim-query.js +2 -2
- package/dist-server/service/claim/claim-query.js.map +1 -1
- package/dist-server/service/claim/claim-types.d.ts +48 -0
- package/dist-server/service/claim/claim-types.js +6 -6
- package/dist-server/service/claim/claim-types.js.map +1 -1
- package/dist-server/service/claim/claim.d.ts +37 -0
- package/dist-server/service/claim/claim.js +5 -6
- package/dist-server/service/claim/claim.js.map +1 -1
- package/dist-server/service/claim/index.d.ts +7 -0
- package/dist-server/service/claim-detail/claim-detail-mutation.d.ts +9 -0
- package/dist-server/service/claim-detail/claim-detail-mutation.js +2 -2
- package/dist-server/service/claim-detail/claim-detail-mutation.js.map +1 -1
- package/dist-server/service/claim-detail/claim-detail-query.d.ts +11 -0
- package/dist-server/service/claim-detail/claim-detail-query.js +2 -2
- package/dist-server/service/claim-detail/claim-detail-query.js.map +1 -1
- package/dist-server/service/claim-detail/claim-detail-types.d.ts +19 -0
- package/dist-server/service/claim-detail/claim-detail-types.js +6 -6
- package/dist-server/service/claim-detail/claim-detail-types.js.map +1 -1
- package/dist-server/service/claim-detail/claim-detail.d.ts +21 -0
- package/dist-server/service/claim-detail/claim-detail.js +2 -2
- package/dist-server/service/claim-detail/claim-detail.js.map +1 -1
- package/dist-server/service/claim-detail/index.d.ts +7 -0
- package/dist-server/service/claim-order/claim-order-mutation.d.ts +9 -0
- package/dist-server/service/claim-order/claim-order-mutation.js +2 -2
- package/dist-server/service/claim-order/claim-order-mutation.js.map +1 -1
- package/dist-server/service/claim-order/claim-order-query.d.ts +11 -0
- package/dist-server/service/claim-order/claim-order-query.js +2 -2
- package/dist-server/service/claim-order/claim-order-query.js.map +1 -1
- package/dist-server/service/claim-order/claim-order-types.d.ts +15 -0
- package/dist-server/service/claim-order/claim-order-types.js +6 -6
- package/dist-server/service/claim-order/claim-order-types.js.map +1 -1
- package/dist-server/service/claim-order/claim-order.d.ts +21 -0
- package/dist-server/service/claim-order/claim-order.js +2 -2
- package/dist-server/service/claim-order/claim-order.js.map +1 -1
- package/dist-server/service/claim-order/index.d.ts +7 -0
- package/dist-server/service/collection-order/collection-order-mutation.d.ts +13 -0
- package/dist-server/service/collection-order/collection-order-mutation.js +2 -2
- package/dist-server/service/collection-order/collection-order-mutation.js.map +1 -1
- package/dist-server/service/collection-order/collection-order-query.d.ts +12 -0
- package/dist-server/service/collection-order/collection-order-query.js +2 -2
- package/dist-server/service/collection-order/collection-order-query.js.map +1 -1
- package/dist-server/service/collection-order/collection-order-types.d.ts +60 -0
- package/dist-server/service/collection-order/collection-order-types.js +8 -8
- package/dist-server/service/collection-order/collection-order-types.js.map +1 -1
- package/dist-server/service/collection-order/collection-order.d.ts +39 -0
- package/dist-server/service/collection-order/collection-order.js +5 -6
- package/dist-server/service/collection-order/collection-order.js.map +1 -1
- package/dist-server/service/collection-order/index.d.ts +7 -0
- package/dist-server/service/delivery-order/delivery-order-mutation.d.ts +38 -0
- package/dist-server/service/delivery-order/delivery-order-mutation.js +3 -3
- package/dist-server/service/delivery-order/delivery-order-mutation.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-query.d.ts +20 -0
- package/dist-server/service/delivery-order/delivery-order-query.js +2 -2
- package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order-types.d.ts +96 -0
- package/dist-server/service/delivery-order/delivery-order-types.js +8 -8
- package/dist-server/service/delivery-order/delivery-order-types.js.map +1 -1
- package/dist-server/service/delivery-order/delivery-order.d.ts +73 -0
- package/dist-server/service/delivery-order/delivery-order.js +5 -6
- package/dist-server/service/delivery-order/delivery-order.js.map +1 -1
- package/dist-server/service/delivery-order/index.d.ts +7 -0
- package/dist-server/service/draft-release-good/draft-release-good-mutation.d.ts +21 -0
- package/dist-server/service/draft-release-good/draft-release-good-mutation.js +5 -5
- 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.d.ts +10 -0
- package/dist-server/service/draft-release-good/draft-release-good-query.js +2 -2
- 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.d.ts +91 -0
- package/dist-server/service/draft-release-good/draft-release-good-type.js +6 -6
- 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.d.ts +66 -0
- package/dist-server/service/draft-release-good/draft-release-good.js +4 -5
- package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -1
- package/dist-server/service/draft-release-good/index.d.ts +7 -0
- package/dist-server/service/goods-receival-note/goods-receival-note-mutation.d.ts +16 -0
- package/dist-server/service/goods-receival-note/goods-receival-note-mutation.js +2 -2
- 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.d.ts +11 -0
- package/dist-server/service/goods-receival-note/goods-receival-note-query.js +2 -2
- 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.d.ts +39 -0
- package/dist-server/service/goods-receival-note/goods-receival-note-types.js +8 -8
- 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.d.ts +36 -0
- package/dist-server/service/goods-receival-note/goods-receival-note.js +3 -4
- package/dist-server/service/goods-receival-note/goods-receival-note.js.map +1 -1
- package/dist-server/service/goods-receival-note/index.d.ts +7 -0
- package/dist-server/service/index.d.ts +119 -0
- package/dist-server/service/inventory-check/index.d.ts +7 -0
- package/dist-server/service/inventory-check/inventory-check-mutation.d.ts +14 -0
- package/dist-server/service/inventory-check/inventory-check-mutation.js +2 -2
- package/dist-server/service/inventory-check/inventory-check-mutation.js.map +1 -1
- package/dist-server/service/inventory-check/inventory-check-query.d.ts +11 -0
- package/dist-server/service/inventory-check/inventory-check-query.js +2 -2
- package/dist-server/service/inventory-check/inventory-check-query.js.map +1 -1
- package/dist-server/service/inventory-check/inventory-check-types.d.ts +20 -0
- package/dist-server/service/inventory-check/inventory-check-types.js +6 -6
- package/dist-server/service/inventory-check/inventory-check-types.js.map +1 -1
- package/dist-server/service/inventory-check/inventory-check.d.ts +24 -0
- package/dist-server/service/inventory-check/inventory-check.js +3 -4
- package/dist-server/service/inventory-check/inventory-check.js.map +1 -1
- package/dist-server/service/invoice/index.d.ts +7 -0
- package/dist-server/service/invoice/invoice-mutation.d.ts +11 -0
- package/dist-server/service/invoice/invoice-mutation.js +2 -2
- package/dist-server/service/invoice/invoice-mutation.js.map +1 -1
- package/dist-server/service/invoice/invoice-query.d.ts +11 -0
- package/dist-server/service/invoice/invoice-query.js +2 -2
- package/dist-server/service/invoice/invoice-query.js.map +1 -1
- package/dist-server/service/invoice/invoice-types.d.ts +97 -0
- package/dist-server/service/invoice/invoice-types.js +6 -6
- package/dist-server/service/invoice/invoice-types.js.map +1 -1
- package/dist-server/service/invoice/invoice.d.ts +58 -0
- package/dist-server/service/invoice/invoice.js +2 -2
- package/dist-server/service/invoice/invoice.js.map +1 -1
- package/dist-server/service/invoice-product/index.d.ts +7 -0
- package/dist-server/service/invoice-product/invoice-product-mutation.d.ts +7 -0
- package/dist-server/service/invoice-product/invoice-product-mutation.js +2 -2
- package/dist-server/service/invoice-product/invoice-product-mutation.js.map +1 -1
- package/dist-server/service/invoice-product/invoice-product-query.d.ts +11 -0
- package/dist-server/service/invoice-product/invoice-product-query.js +2 -2
- package/dist-server/service/invoice-product/invoice-product-query.js.map +1 -1
- package/dist-server/service/invoice-product/invoice-product-types.d.ts +32 -0
- package/dist-server/service/invoice-product/invoice-product-types.js +8 -8
- package/dist-server/service/invoice-product/invoice-product-types.js.map +1 -1
- package/dist-server/service/invoice-product/invoice-product.d.ts +26 -0
- package/dist-server/service/invoice-product/invoice-product.js +3 -4
- package/dist-server/service/invoice-product/invoice-product.js.map +1 -1
- package/dist-server/service/job-sheet/index.d.ts +7 -0
- package/dist-server/service/job-sheet/job-sheet-mutation.d.ts +10 -0
- package/dist-server/service/job-sheet/job-sheet-mutation.js +2 -2
- package/dist-server/service/job-sheet/job-sheet-mutation.js.map +1 -1
- package/dist-server/service/job-sheet/job-sheet-query.d.ts +11 -0
- package/dist-server/service/job-sheet/job-sheet-query.js +2 -2
- package/dist-server/service/job-sheet/job-sheet-query.js.map +1 -1
- package/dist-server/service/job-sheet/job-sheet-types.d.ts +27 -0
- package/dist-server/service/job-sheet/job-sheet-types.js +6 -6
- package/dist-server/service/job-sheet/job-sheet-types.js.map +1 -1
- package/dist-server/service/job-sheet/job-sheet.d.ts +27 -0
- package/dist-server/service/job-sheet/job-sheet.js +3 -4
- package/dist-server/service/job-sheet/job-sheet.js.map +1 -1
- package/dist-server/service/manifest/index.d.ts +5 -0
- package/dist-server/service/manifest/manifest-mutation.d.ts +9 -0
- package/dist-server/service/manifest/manifest-mutation.js +2 -2
- package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
- package/dist-server/service/manifest/manifest-query.d.ts +11 -0
- package/dist-server/service/manifest/manifest-query.js +2 -2
- package/dist-server/service/manifest/manifest-query.js.map +1 -1
- package/dist-server/service/manifest/manifest-type.d.ts +33 -0
- package/dist-server/service/manifest/manifest-type.js +10 -10
- package/dist-server/service/manifest/manifest-type.js.map +1 -1
- package/dist-server/service/manifest/manifest.d.ts +27 -0
- package/dist-server/service/manifest/manifest.js +3 -3
- package/dist-server/service/manifest/manifest.js.map +1 -1
- package/dist-server/service/order-inventory/index.d.ts +7 -0
- package/dist-server/service/order-inventory/order-inventory-mutation.d.ts +7 -0
- package/dist-server/service/order-inventory/order-inventory-mutation.js +2 -2
- package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-query.d.ts +18 -0
- package/dist-server/service/order-inventory/order-inventory-query.js +2 -2
- package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory-types.d.ts +84 -0
- package/dist-server/service/order-inventory/order-inventory-types.js +8 -9
- package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
- package/dist-server/service/order-inventory/order-inventory.d.ts +114 -0
- package/dist-server/service/order-inventory/order-inventory.js +8 -9
- package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
- package/dist-server/service/order-product/index.d.ts +7 -0
- package/dist-server/service/order-product/order-product-mutation.d.ts +7 -0
- 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.d.ts +11 -0
- package/dist-server/service/order-product/order-product-query.js +2 -2
- package/dist-server/service/order-product/order-product-query.js.map +1 -1
- package/dist-server/service/order-product/order-product-types.d.ts +116 -0
- package/dist-server/service/order-product/order-product-types.js +8 -8
- package/dist-server/service/order-product/order-product-types.js.map +1 -1
- package/dist-server/service/order-product/order-product.d.ts +95 -0
- package/dist-server/service/order-product/order-product.js +24 -13
- package/dist-server/service/order-product/order-product.js.map +1 -1
- package/dist-server/service/order-tote/index.d.ts +7 -0
- package/dist-server/service/order-tote/order-tote-mutation.d.ts +4 -0
- 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.d.ts +8 -0
- package/dist-server/service/order-tote/order-tote-query.js +2 -2
- package/dist-server/service/order-tote/order-tote-query.js.map +1 -1
- package/dist-server/service/order-tote/order-tote-types.d.ts +19 -0
- package/dist-server/service/order-tote/order-tote-types.js +6 -6
- package/dist-server/service/order-tote/order-tote-types.js.map +1 -1
- package/dist-server/service/order-tote/order-tote.d.ts +20 -0
- package/dist-server/service/order-tote/order-tote.js +3 -4
- package/dist-server/service/order-tote/order-tote.js.map +1 -1
- package/dist-server/service/order-tote-item/index.d.ts +7 -0
- package/dist-server/service/order-tote-item/order-tote-item-mutation.d.ts +4 -0
- 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.d.ts +7 -0
- package/dist-server/service/order-tote-item/order-tote-item-query.js +2 -2
- 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.d.ts +22 -0
- package/dist-server/service/order-tote-item/order-tote-item-types.js +6 -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.d.ts +23 -0
- package/dist-server/service/order-tote-item/order-tote-item.js +2 -2
- package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -1
- package/dist-server/service/order-tote-seal/index.d.ts +7 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-mutation.d.ts +4 -0
- 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.d.ts +12 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-query.js +2 -2
- 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.d.ts +17 -0
- package/dist-server/service/order-tote-seal/order-tote-seal-types.js +6 -6
- 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.d.ts +14 -0
- package/dist-server/service/order-tote-seal/order-tote-seal.js +2 -2
- package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -1
- package/dist-server/service/order-vas/index.d.ts +7 -0
- package/dist-server/service/order-vas/order-vas-mutation.d.ts +5 -0
- package/dist-server/service/order-vas/order-vas-mutation.js +2 -2
- package/dist-server/service/order-vas/order-vas-mutation.js.map +1 -1
- package/dist-server/service/order-vas/order-vas-query.d.ts +11 -0
- package/dist-server/service/order-vas/order-vas-query.js +2 -2
- package/dist-server/service/order-vas/order-vas-query.js.map +1 -1
- package/dist-server/service/order-vas/order-vas-types.d.ts +57 -0
- package/dist-server/service/order-vas/order-vas-types.js +6 -6
- package/dist-server/service/order-vas/order-vas-types.js.map +1 -1
- package/dist-server/service/order-vas/order-vas.d.ts +65 -0
- package/dist-server/service/order-vas/order-vas.js +8 -10
- package/dist-server/service/order-vas/order-vas.js.map +1 -1
- package/dist-server/service/others/index.d.ts +3 -0
- package/dist-server/service/others/other-query.d.ts +10 -0
- package/dist-server/service/others/other-query.js +41 -11
- package/dist-server/service/others/other-query.js.map +1 -1
- package/dist-server/service/others/other-types.d.ts +40 -0
- package/dist-server/service/others/other-types.js +5 -6
- package/dist-server/service/others/other-types.js.map +1 -1
- package/dist-server/service/purchase-order/index.d.ts +7 -0
- package/dist-server/service/purchase-order/purchase-order-mutation.d.ts +18 -0
- package/dist-server/service/purchase-order/purchase-order-mutation.js +11 -21
- package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order-query.d.ts +54 -0
- package/dist-server/service/purchase-order/purchase-order-query.js +2 -2
- package/dist-server/service/purchase-order/purchase-order-query.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order-types.d.ts +56 -0
- package/dist-server/service/purchase-order/purchase-order-types.js +6 -6
- package/dist-server/service/purchase-order/purchase-order-types.js.map +1 -1
- package/dist-server/service/purchase-order/purchase-order.d.ts +46 -0
- package/dist-server/service/purchase-order/purchase-order.js +5 -6
- package/dist-server/service/purchase-order/purchase-order.js.map +1 -1
- package/dist-server/service/purchase-order-other-charge/index.d.ts +7 -0
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.d.ts +4 -0
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.js +2 -2
- 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.d.ts +11 -0
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-query.js +2 -2
- 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-types.d.ts +18 -0
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js +6 -6
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge-types.js.map +1 -1
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.d.ts +20 -0
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js +2 -2
- package/dist-server/service/purchase-order-other-charge/purchase-order-other-charge.js.map +1 -1
- package/dist-server/service/release-good/index.d.ts +7 -0
- package/dist-server/service/release-good/release-good-mutation.d.ts +26 -0
- package/dist-server/service/release-good/release-good-mutation.js +3 -3
- package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
- package/dist-server/service/release-good/release-good-query.d.ts +17 -0
- package/dist-server/service/release-good/release-good-query.js +2 -2
- package/dist-server/service/release-good/release-good-query.js.map +1 -1
- package/dist-server/service/release-good/release-good-types.d.ts +233 -0
- package/dist-server/service/release-good/release-good-types.js +21 -22
- package/dist-server/service/release-good/release-good-types.js.map +1 -1
- package/dist-server/service/release-good/release-good.d.ts +121 -0
- package/dist-server/service/release-good/release-good.js +5 -6
- package/dist-server/service/release-good/release-good.js.map +1 -1
- package/dist-server/service/retail-replenishment-order/index.d.ts +7 -0
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.d.ts +16 -0
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-mutation.js +2 -2
- 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.d.ts +11 -0
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-query.js +2 -2
- 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.d.ts +39 -0
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order-types.js +6 -6
- 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.d.ts +29 -0
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js +3 -4
- package/dist-server/service/retail-replenishment-order/retail-replenishment-order.js.map +1 -1
- package/dist-server/service/return-order/index.d.ts +7 -0
- package/dist-server/service/return-order/return-order-mutation.d.ts +18 -0
- package/dist-server/service/return-order/return-order-mutation.js +3 -3
- package/dist-server/service/return-order/return-order-mutation.js.map +1 -1
- package/dist-server/service/return-order/return-order-query.d.ts +13 -0
- package/dist-server/service/return-order/return-order-query.js +2 -2
- package/dist-server/service/return-order/return-order-query.js.map +1 -1
- package/dist-server/service/return-order/return-order-types.d.ts +76 -0
- package/dist-server/service/return-order/return-order-types.js +10 -11
- package/dist-server/service/return-order/return-order-types.js.map +1 -1
- package/dist-server/service/return-order/return-order.d.ts +33 -0
- package/dist-server/service/return-order/return-order.js +3 -4
- package/dist-server/service/return-order/return-order.js.map +1 -1
- package/dist-server/service/reverse-kitting-order/index.d.ts +7 -0
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.d.ts +14 -0
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +2 -2
- 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.d.ts +14 -0
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +2 -2
- 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.d.ts +61 -0
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +15 -16
- 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.d.ts +34 -0
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js +5 -6
- package/dist-server/service/reverse-kitting-order/reverse-kitting-order.js.map +1 -1
- package/dist-server/service/reverse-kitting-order-inventory/index.d.ts +7 -0
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.d.ts +9 -0
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +2 -2
- 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.d.ts +11 -0
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.js +2 -2
- 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.d.ts +35 -0
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.js +6 -6
- 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.d.ts +39 -0
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js +5 -6
- package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.js.map +1 -1
- package/dist-server/service/shipping-order/index.d.ts +7 -0
- package/dist-server/service/shipping-order/shipping-order-mutation.d.ts +7 -0
- 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.d.ts +11 -0
- package/dist-server/service/shipping-order/shipping-order-query.js +2 -2
- package/dist-server/service/shipping-order/shipping-order-query.js.map +1 -1
- package/dist-server/service/shipping-order/shipping-order-types.d.ts +33 -0
- package/dist-server/service/shipping-order/shipping-order-types.js +6 -6
- package/dist-server/service/shipping-order/shipping-order-types.js.map +1 -1
- package/dist-server/service/shipping-order/shipping-order.d.ts +33 -0
- package/dist-server/service/shipping-order/shipping-order.js +3 -4
- package/dist-server/service/shipping-order/shipping-order.js.map +1 -1
- package/dist-server/service/transfer-order/index.d.ts +7 -0
- package/dist-server/service/transfer-order/transfer-order-mutation.d.ts +16 -0
- package/dist-server/service/transfer-order/transfer-order-mutation.js +3 -3
- package/dist-server/service/transfer-order/transfer-order-mutation.js.map +1 -1
- package/dist-server/service/transfer-order/transfer-order-query.d.ts +11 -0
- package/dist-server/service/transfer-order/transfer-order-query.js +2 -2
- package/dist-server/service/transfer-order/transfer-order-query.js.map +1 -1
- package/dist-server/service/transfer-order/transfer-order-types.d.ts +37 -0
- package/dist-server/service/transfer-order/transfer-order-types.js +6 -6
- package/dist-server/service/transfer-order/transfer-order-types.js.map +1 -1
- package/dist-server/service/transfer-order/transfer-order.d.ts +30 -0
- package/dist-server/service/transfer-order/transfer-order.js +3 -4
- package/dist-server/service/transfer-order/transfer-order.js.map +1 -1
- package/dist-server/service/vas/index.d.ts +7 -0
- package/dist-server/service/vas/vas-mutation.d.ts +9 -0
- 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.d.ts +11 -0
- package/dist-server/service/vas/vas-query.js +2 -2
- package/dist-server/service/vas/vas-query.js.map +1 -1
- package/dist-server/service/vas/vas-types.d.ts +27 -0
- package/dist-server/service/vas/vas-types.js +6 -6
- package/dist-server/service/vas/vas-types.js.map +1 -1
- package/dist-server/service/vas/vas.d.ts +22 -0
- package/dist-server/service/vas/vas.js +2 -2
- package/dist-server/service/vas/vas.js.map +1 -1
- package/dist-server/service/vas-order/index.d.ts +7 -0
- package/dist-server/service/vas-order/vas-order-mutation.d.ts +9 -0
- package/dist-server/service/vas-order/vas-order-mutation.js +2 -2
- package/dist-server/service/vas-order/vas-order-mutation.js.map +1 -1
- package/dist-server/service/vas-order/vas-order-query.d.ts +12 -0
- package/dist-server/service/vas-order/vas-order-query.js +2 -2
- package/dist-server/service/vas-order/vas-order-query.js.map +1 -1
- package/dist-server/service/vas-order/vas-order-types.d.ts +21 -0
- package/dist-server/service/vas-order/vas-order-types.js +6 -6
- package/dist-server/service/vas-order/vas-order-types.js.map +1 -1
- package/dist-server/service/vas-order/vas-order.d.ts +22 -0
- package/dist-server/service/vas-order/vas-order.js +3 -4
- 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.d.ts +7 -0
- package/dist-server/utils/datetime-util.js.map +1 -1
- package/dist-server/utils/index.d.ts +3 -0
- package/dist-server/utils/inventory-util.d.ts +75 -0
- package/dist-server/utils/inventory-util.js +2 -2
- package/dist-server/utils/inventory-util.js.map +1 -1
- package/dist-server/utils/order-no-generator.d.ts +25 -0
- package/package.json +13 -13
- package/server/controllers/order-controller.ts +1 -1
- package/server/service/arrival-notice/arrival-notice-mutation.ts +123 -26
- package/server/service/claim/claim-mutation.ts +3 -3
- package/server/service/delivery-order/delivery-order-mutation.ts +6 -6
- package/server/service/draft-release-good/draft-release-good-mutation.ts +11 -10
- package/server/service/draft-release-good/draft-release-good-query.ts +1 -1
- package/server/service/inventory-check/inventory-check-mutation.ts +1 -1
- package/server/service/order-inventory/order-inventory-query.ts +1 -1
- package/server/service/order-product/order-product.ts +26 -4
- package/server/service/others/other-query.ts +78 -19
- package/server/service/purchase-order/purchase-order-mutation.ts +5 -4
- package/server/service/release-good/release-good-mutation.ts +7 -7
- package/server/service/release-good/release-good-query.ts +16 -16
- package/server/service/return-order/return-order-mutation.ts +3 -3
- package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +5 -5
- package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +1 -1
- package/server/service/transfer-order/transfer-order-mutation.ts +3 -3
- package/server/utils/inventory-util.ts +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"other-query.js","sourceRoot":"","sources":["../../../server/service/others/other-query.ts"],"names":[],"mappings":"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","sourcesContent":["import orderBy from 'lodash/orderBy'\nimport { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain, ListParam } from '@things-factory/shell'\n\nimport { InventoryProductGroup, InventoryProductGroupList, NewOrderInventory, NewOrderProduct, OrderInventory, OrderProduct } from '../'\nimport { InventoryUtil } from '../../utils'\n\n@Resolver()\nexport class OtherQuery {\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async allBizplaceProductInventory(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: companyDomain } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceProductInventory(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroup(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroupOpenAPI(@Ctx() context: ResolverContext, @Args() params: ListParam): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.inventoryProductGroupOpenAPI(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [OrderInventory])\n async bulkUploadValidateWarehousePartnersProductsQuantity(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderInventories', type => [NewOrderInventory], { nullable: true }) orderInventories?: NewOrderInventory[]\n ): Promise<OrderInventory[]> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n const partnerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n id: partnerBizplaceId\n },\n relations: ['company', 'company.domain']\n })\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let newOrderInventories: any[] = []\n\n for (var i = 0; i < orderInventories.length; i++) {\n const orderInventory: any = orderInventories[i]\n\n let filters: any[] = [\n {\n name: 'productName',\n operator: 'eq',\n value: orderInventory.productSKU\n }\n ]\n\n if (orderInventory?.packingType != null) {\n filters.push({\n name: 'packingType',\n operator: 'eq',\n value: orderInventory.packingType\n })\n }\n\n const params: any = {\n filters: [...filters]\n }\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n // Filter to find for item with enough remain qty\n const availableItems = items.filter(item => item.remainQty >= orderInventory.releaseQty)\n let availableItem\n\n if (availableItems.length > 0) {\n availableItem = availableItems[0]\n }\n\n let packageUomValue = availableItem ? availableItem.remainUomValue / availableItem.remainQty : null\n const newOrderInventory: any = {\n product: availableItem\n ? {\n id: availableItem.productId,\n sku: availableItem.productSKU,\n name: availableItem.productName\n }\n : { id: null },\n inventory: availableItem\n ? {\n ...availableItem,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : ''\n }\n : null,\n productId: availableItem ? availableItem.productId : null,\n productSKU: availableItem ? availableItem.productSKU : orderInventory.productSKU,\n productName: availableItem ? availableItem.productName : null,\n uom: availableItem ? availableItem.uom : null,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : '',\n batchId: availableItem ? availableItem.batchId : null,\n batchIdRef: availableItem ? availableItem.batchIdRef : null,\n packingType: availableItem ? availableItem.packingType : orderInventory.packingType,\n packingSize: availableItem ? availableItem.packingSize : 1,\n releaseQty: orderInventory.releaseQty ? (Number.isInteger(orderInventory.releaseQty) ? orderInventory.releaseQty : null) : null,\n releaseUomValue: availableItem\n ? Number.isInteger(orderInventory.releaseQty)\n ? parseFloat((orderInventory.releaseQty * packageUomValue).toFixed(2))\n : null\n : null,\n groupType: availableItem ? availableItem.groupType : null,\n isError: !availableItem ? true : false\n }\n\n newOrderInventories.push(newOrderInventory)\n\n // end loop\n }\n\n try {\n await InventoryUtil.validateWarehousePartnersProductsQuantity(domain, partnerBizplace, newOrderInventories, context, tx)\n } catch (e) {\n const errorData = JSON.parse(e.detail.data)\n\n errorData.forEach(dt => {\n let idx = newOrderInventories.findIndex(x => x.product?.id && x.product.id == dt.productId && x.batchId == dt.batchId && x.packingType == dt.packingType)\n\n if (idx >= 0) {\n newOrderInventories[idx].remainQty = dt.availableQty\n newOrderInventories[idx].remainUomValue = dt.availableUomValue\n newOrderInventories[idx].isError = dt.availableQty == null ? newOrderInventories[idx].releaseQty > 0 : newOrderInventories[idx].releaseQty > dt.availableQty\n newOrderInventories[idx].remainUomValueWithUom = dt.availableUomValue == null ? '' : `${dt.availableUomValue} ${dt.uom}`\n if (newOrderInventories[idx].inventory != null) {\n newOrderInventories[idx].inventory.remainQty = dt.availableQty\n newOrderInventories[idx].inventory.remainUomValue = dt.availableUomValue\n newOrderInventories[idx].inventory.remainUomValueWithUom = `${dt.availableUomValue} ${dt.uom}` || ''\n }\n }\n })\n }\n\n return orderBy(newOrderInventories, ['isError'], ['desc'])\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidateOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', 'company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: boolean = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') || (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '') productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true ? (productDetail?.uomValue ? productDetail.uomValue : null) : orderProduct?.uomValue ? orderProduct.uomValue : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue: orderProduct.packQty > 0 ? (uomValue ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}` : null) : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidatePoOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', 'company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: boolean = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') || (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '') productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true ? (productDetail?.uomValue ? productDetail.uomValue : null) : orderProduct?.uomValue ? orderProduct.uomValue : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue: orderProduct.packQty > 0 ? (uomValue ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}` : null) : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"other-query.js","sourceRoot":"","sources":["../../../server/service/others/other-query.ts"],"names":[],"mappings":"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","sourcesContent":["import orderBy from 'lodash/orderBy'\nimport { Arg, Args, Ctx, Directive, Query, Resolver } from 'type-graphql'\nimport { EntityManager } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { PartnerSetting, Setting } from '@things-factory/setting-base'\nimport { Domain, ListParam } from '@things-factory/shell'\n\nimport {\n InventoryProductGroup,\n InventoryProductGroupList,\n NewOrderInventory,\n NewOrderProduct,\n OrderInventory,\n OrderProduct\n} from '../'\nimport { InventoryUtil } from '../../utils'\n\n@Resolver()\nexport class OtherQuery {\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async allBizplaceProductInventory(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: companyDomain } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceProductInventory(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"inventory\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroup(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@transaction')\n @Query(returns => InventoryProductGroupList)\n async inventoryProductGroupOpenAPI(\n @Ctx() context: ResolverContext,\n @Args() params: ListParam\n ): Promise<InventoryProductGroupList> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n\n let bizplaceId: any = params.filters.find(filter => filter.name === 'bizplace_id').value\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (bizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == bizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n const { items, total } = await InventoryUtil.inventoryProductGroupOpenAPI(bizplaces, params, context, tx)\n\n return { items, total }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [OrderInventory])\n async bulkUploadValidateWarehousePartnersProductsQuantity(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderInventories', type => [NewOrderInventory], { nullable: true }) orderInventories?: NewOrderInventory[]\n ): Promise<OrderInventory[]> {\n const { domain, user, tx, bizplace } = context.state\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n const partnerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({\n where: {\n id: partnerBizplaceId\n },\n relations: ['company', 'company.domain']\n })\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let newOrderInventories: any[] = []\n\n for (var i = 0; i < orderInventories.length; i++) {\n const orderInventory: any = orderInventories[i]\n\n let filters: any[] = [\n {\n name: 'productName',\n operator: 'eq',\n value: orderInventory.productSKU\n }\n ]\n\n if (orderInventory?.packingType != null) {\n filters.push({\n name: 'packingType',\n operator: 'eq',\n value: orderInventory.packingType\n })\n }\n\n const params: any = {\n filters: [...filters]\n }\n\n const { items, total } = await InventoryUtil.bizplaceInventoryProductGroup(bizplaces, params, context, tx)\n\n // Filter to find for item with enough remain qty\n const availableItems = items.filter(item => item.remainQty >= orderInventory.releaseQty)\n let availableItem\n\n if (availableItems.length > 0) {\n availableItem = availableItems[0]\n }\n\n let packageUomValue = availableItem ? availableItem.remainUomValue / availableItem.remainQty : null\n const newOrderInventory: any = {\n product: availableItem\n ? {\n id: availableItem.productId,\n sku: availableItem.productSKU,\n name: availableItem.productName\n }\n : { id: null },\n inventory: availableItem\n ? {\n ...availableItem,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : ''\n }\n : null,\n productId: availableItem ? availableItem.productId : null,\n productSKU: availableItem ? availableItem.productSKU : orderInventory.productSKU,\n productName: availableItem ? availableItem.productName : null,\n uom: availableItem ? availableItem.uom : null,\n remainQty: availableItem ? availableItem.remainQty : null,\n remainUomValue: availableItem ? availableItem.remainUomValue : null,\n remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : '',\n batchId: availableItem ? availableItem.batchId : null,\n batchIdRef: availableItem ? availableItem.batchIdRef : null,\n packingType: availableItem ? availableItem.packingType : orderInventory.packingType,\n packingSize: availableItem ? availableItem.packingSize : 1,\n releaseQty: orderInventory.releaseQty\n ? Number.isInteger(orderInventory.releaseQty)\n ? orderInventory.releaseQty\n : null\n : null,\n releaseUomValue: availableItem\n ? Number.isInteger(orderInventory.releaseQty)\n ? parseFloat((orderInventory.releaseQty * packageUomValue).toFixed(2))\n : null\n : null,\n groupType: availableItem ? availableItem.groupType : null,\n isError: !availableItem ? true : false\n }\n\n newOrderInventories.push(newOrderInventory)\n\n // end loop\n }\n\n try {\n await InventoryUtil.validateWarehousePartnersProductsQuantity(\n domain,\n partnerBizplace,\n newOrderInventories,\n context,\n tx\n )\n } catch (e) {\n const errorData = JSON.parse(e.detail.data)\n\n errorData.forEach(dt => {\n let idx = newOrderInventories.findIndex(\n x =>\n x.product?.id && x.product.id == dt.productId && x.batchId == dt.batchId && x.packingType == dt.packingType\n )\n\n if (idx >= 0) {\n newOrderInventories[idx].remainQty = dt.availableQty\n newOrderInventories[idx].remainUomValue = dt.availableUomValue\n newOrderInventories[idx].isError =\n dt.availableQty == null\n ? newOrderInventories[idx].releaseQty > 0\n : newOrderInventories[idx].releaseQty > dt.availableQty\n newOrderInventories[idx].remainUomValueWithUom =\n dt.availableUomValue == null ? '' : `${dt.availableUomValue} ${dt.uom}`\n if (newOrderInventories[idx].inventory != null) {\n newOrderInventories[idx].inventory.remainQty = dt.availableQty\n newOrderInventories[idx].inventory.remainUomValue = dt.availableUomValue\n newOrderInventories[idx].inventory.remainUomValueWithUom = `${dt.availableUomValue} ${dt.uom}` || ''\n }\n }\n })\n }\n\n return orderBy(newOrderInventories, ['isError'], ['desc'])\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidateOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', 'company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: any = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||\n (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '')\n productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true\n ? productDetail?.uomValue\n ? productDetail.uomValue\n : null\n : orderProduct?.uomValue\n ? orderProduct.uomValue\n : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue:\n orderProduct.packQty > 0\n ? uomValue\n ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}`\n : null\n : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n @Directive('@privilege(category: \"order_customer\", privilege: \"query\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Query(returns => [InventoryProductGroup])\n async bulkUploadValidatePoOrderProducts(\n @Ctx() context: ResolverContext,\n @Arg('partnerBizplaceId') partnerBizplaceId: string,\n @Arg('orderProducts', type => [NewOrderProduct], { nullable: true }) orderProducts: NewOrderProduct[]\n ): Promise<OrderProduct[]> {\n const { domain, user, tx, bizplace } = context.state\n\n const productDetailRepo = tx.getRepository(ProductDetail)\n\n let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace\n let companyBizplace: Bizplace\n\n if (partnerBizplaceId) {\n foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == partnerBizplaceId)\n\n if (foundPermittedBizplace) {\n if (!foundPermittedBizplace.company?.id) {\n foundPermittedBizplace = await tx.getRepository(Bizplace).findOne({\n where: { id: foundPermittedBizplace.id },\n relations: ['domain', 'company', 'company.domain']\n })\n }\n const companyDomain: Domain = foundPermittedBizplace.company.domain\n companyBizplace = await tx.getRepository(Bizplace).findOne({ where: { domain: { id: companyDomain.id } } })\n }\n }\n\n const bizplaces: Bizplace[] = [foundPermittedBizplace, companyBizplace]\n if (bizplace) bizplaces.push(bizplace)\n\n let strictProduct: any = false\n\n const strictProductSelectionSetting: Setting = await tx.getRepository(Setting).findOne({\n where: { domain: { id: domain.id }, category: 'id-rule', name: 'strict-product-selection' }\n })\n\n if (strictProductSelectionSetting) strictProduct = strictProductSelectionSetting.value\n\n const partnerStrictProductSelectionSetting: PartnerSetting = await tx.getRepository(PartnerSetting).findOne({\n where: {\n setting: { id: strictProductSelectionSetting.id },\n domain: { id: domain.id },\n partnerDomain: { id: foundPermittedBizplace?.domain?.id }\n }\n })\n\n if (partnerStrictProductSelectionSetting) strictProduct = partnerStrictProductSelectionSetting.value\n\n let newOrderProducts: any[] = []\n\n for (var i = 0; i < orderProducts.length; i++) {\n const orderProduct = orderProducts[i]\n const productSKU: string = orderProduct.productSKU\n const foundProduct: Product = await tx.getRepository(Product).findOne({\n where: {\n sku: productSKU,\n bizplace: { id: companyBizplace.id }\n }\n })\n\n let newOrderProduct: any\n\n if (foundProduct) {\n let productDetail: ProductDetail\n const hasConditions: boolean = Boolean(\n (orderProduct?.packingType && orderProduct?.packingType.trim() != '') ||\n (orderProduct?.uom && orderProduct?.uom.trim() != '')\n )\n let productDetailCondition: any = { product: foundProduct }\n\n if (hasConditions) {\n if (orderProduct?.packingType && orderProduct.packingType.trim() != '')\n productDetailCondition.packingType = orderProduct.packingType.trim()\n\n if (orderProduct?.uom && orderProduct.uom.trim() != '') productDetailCondition.uom = orderProduct.uom.trim()\n } else {\n productDetailCondition.isDefault = true\n }\n\n productDetail = await productDetailRepo.findOne({\n where: productDetailCondition\n })\n\n const uomValue: number =\n strictProduct == true\n ? productDetail?.uomValue\n ? productDetail.uomValue\n : null\n : orderProduct?.uomValue\n ? orderProduct.uomValue\n : productDetail.uomValue\n\n newOrderProduct = {\n ...orderProduct,\n packingType: orderProduct?.packingType ? orderProduct.packingType : productDetail.packingType,\n packingSize: productDetail?.packingSize ? productDetail.packingSize : null,\n uom: productDetail?.uom ? productDetail.uom : null,\n uomValue: uomValue,\n productName: `${foundProduct.name}(${foundProduct.description}(${foundProduct.sku}))`,\n productBrand: foundProduct?.brand ? foundProduct.brand : null,\n isError: productDetail ? false : true,\n product: {\n id: foundProduct.id,\n name: foundProduct.name,\n sku: foundProduct.sku,\n type: foundProduct.type,\n brand: foundProduct.brand,\n primaryUnit: productDetail?.uom ? productDetail.uom : null,\n primaryValue: productDetail?.uomValue ? productDetail.uomValue : null\n },\n totalUomValue:\n orderProduct.packQty > 0\n ? uomValue\n ? `${(orderProduct.packQty * uomValue).toFixed(2)} ${productDetail.uom}`\n : null\n : null\n }\n } else {\n newOrderProduct = {\n ...orderProduct,\n productName: orderProduct.productSKU,\n isError: true\n }\n }\n\n newOrderProducts.push(newOrderProduct)\n }\n\n return newOrderProducts\n }\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Product } from '@things-factory/product-base';
|
|
2
|
+
export declare class InventoryProductGroupList {
|
|
3
|
+
items: InventoryProductGroup[];
|
|
4
|
+
total: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class InventoryProductGroup {
|
|
7
|
+
id: string;
|
|
8
|
+
productId: string;
|
|
9
|
+
batchId: string;
|
|
10
|
+
batchIdRef: string;
|
|
11
|
+
productSKU: string;
|
|
12
|
+
productName: string;
|
|
13
|
+
productBrand: string;
|
|
14
|
+
packingType: string;
|
|
15
|
+
packingSize: number;
|
|
16
|
+
palletId: string;
|
|
17
|
+
createdAt: Date;
|
|
18
|
+
packQty: number;
|
|
19
|
+
totalQty: number;
|
|
20
|
+
totalLockedQty: number;
|
|
21
|
+
totalLockedUomValue: number;
|
|
22
|
+
palletQty: number;
|
|
23
|
+
remainQty: number;
|
|
24
|
+
remainWeight: number;
|
|
25
|
+
remainUomValue: number;
|
|
26
|
+
remainUomValueWithUom: string;
|
|
27
|
+
uom: string;
|
|
28
|
+
uomValue: number;
|
|
29
|
+
totalUomValue: String;
|
|
30
|
+
groupType: string;
|
|
31
|
+
manufactureDate: Date;
|
|
32
|
+
unitPrice: number;
|
|
33
|
+
remark: string;
|
|
34
|
+
discountAmt: number;
|
|
35
|
+
miscAmt: number;
|
|
36
|
+
taxRate: number;
|
|
37
|
+
isError: Boolean;
|
|
38
|
+
product: Product;
|
|
39
|
+
expirationDate: Date;
|
|
40
|
+
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
3
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
3
|
exports.InventoryProductGroup = exports.InventoryProductGroupList = void 0;
|
|
5
4
|
const tslib_1 = require("tslib");
|
|
@@ -8,6 +7,7 @@ const product_base_1 = require("@things-factory/product-base");
|
|
|
8
7
|
const shell_1 = require("@things-factory/shell");
|
|
9
8
|
let InventoryProductGroupList = class InventoryProductGroupList {
|
|
10
9
|
};
|
|
10
|
+
exports.InventoryProductGroupList = InventoryProductGroupList;
|
|
11
11
|
tslib_1.__decorate([
|
|
12
12
|
(0, type_graphql_1.Field)(type => [InventoryProductGroup], { nullable: true }),
|
|
13
13
|
tslib_1.__metadata("design:type", Array)
|
|
@@ -16,12 +16,12 @@ tslib_1.__decorate([
|
|
|
16
16
|
(0, type_graphql_1.Field)(type => type_graphql_1.Int, { nullable: true }),
|
|
17
17
|
tslib_1.__metadata("design:type", Number)
|
|
18
18
|
], InventoryProductGroupList.prototype, "total", void 0);
|
|
19
|
-
InventoryProductGroupList = tslib_1.__decorate([
|
|
19
|
+
exports.InventoryProductGroupList = InventoryProductGroupList = tslib_1.__decorate([
|
|
20
20
|
(0, type_graphql_1.ObjectType)()
|
|
21
21
|
], InventoryProductGroupList);
|
|
22
|
-
exports.InventoryProductGroupList = InventoryProductGroupList;
|
|
23
22
|
let InventoryProductGroup = class InventoryProductGroup {
|
|
24
23
|
};
|
|
24
|
+
exports.InventoryProductGroup = InventoryProductGroup;
|
|
25
25
|
tslib_1.__decorate([
|
|
26
26
|
(0, type_graphql_1.Field)({ nullable: true }),
|
|
27
27
|
tslib_1.__metadata("design:type", String)
|
|
@@ -148,14 +148,13 @@ tslib_1.__decorate([
|
|
|
148
148
|
], InventoryProductGroup.prototype, "isError", void 0);
|
|
149
149
|
tslib_1.__decorate([
|
|
150
150
|
(0, type_graphql_1.Field)(type => product_base_1.Product, { nullable: true }),
|
|
151
|
-
tslib_1.__metadata("design:type",
|
|
151
|
+
tslib_1.__metadata("design:type", product_base_1.Product)
|
|
152
152
|
], InventoryProductGroup.prototype, "product", void 0);
|
|
153
153
|
tslib_1.__decorate([
|
|
154
154
|
(0, type_graphql_1.Field)(type => shell_1.ScalarDate, { nullable: true }),
|
|
155
155
|
tslib_1.__metadata("design:type", Date)
|
|
156
156
|
], InventoryProductGroup.prototype, "expirationDate", void 0);
|
|
157
|
-
InventoryProductGroup = tslib_1.__decorate([
|
|
157
|
+
exports.InventoryProductGroup = InventoryProductGroup = tslib_1.__decorate([
|
|
158
158
|
(0, type_graphql_1.ObjectType)()
|
|
159
159
|
], InventoryProductGroup);
|
|
160
|
-
exports.InventoryProductGroup = InventoryProductGroup;
|
|
161
160
|
//# sourceMappingURL=other-types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"other-types.js","sourceRoot":"","sources":["../../../server/service/others/other-types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"other-types.js","sourceRoot":"","sources":["../../../server/service/others/other-types.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, Float, Int, ObjectType } from 'type-graphql'\n\nimport { Product } from '@things-factory/product-base'\nimport { ScalarDate } from '@things-factory/shell'\n\n@ObjectType()\nexport class InventoryProductGroupList {\n @Field(type => [InventoryProductGroup], { nullable: true })\n items: InventoryProductGroup[]\n\n @Field(type => Int, { nullable: true })\n total: number\n}\n\n@ObjectType()\nexport class InventoryProductGroup {\n @Field({ nullable: true })\n id: string\n\n @Field({ nullable: true })\n productId: string\n\n @Field({ nullable: true })\n batchId: string\n\n @Field({ nullable: true })\n batchIdRef: string\n\n @Field({ nullable: true })\n productSKU: string\n\n @Field({ nullable: true })\n productName: string\n\n @Field({ nullable: true })\n productBrand: string\n\n @Field({ nullable: true })\n packingType: string\n\n @Field(type => Float, { nullable: true })\n packingSize: number\n\n @Field({ nullable: true })\n palletId: string\n\n @Field({ nullable: true })\n createdAt: Date\n\n @Field(type => Float, { nullable: true })\n packQty: number\n\n @Field(type => Int, { nullable: true })\n totalQty: number\n\n @Field(type => Int, { nullable: true })\n totalLockedQty: number\n\n @Field(type => Int, { nullable: true })\n totalLockedUomValue: number\n\n @Field(type => Int, { nullable: true })\n palletQty: number\n\n @Field(type => Float, { nullable: true })\n remainQty: number\n\n @Field(type => Float, { nullable: true })\n remainWeight: number\n\n @Field(type => Float, { nullable: true })\n remainUomValue: number\n\n @Field({ nullable: true })\n remainUomValueWithUom: string\n\n @Field({ nullable: true })\n uom: string\n\n @Field(type => Float, { nullable: true })\n uomValue: number\n\n @Field({ nullable: true })\n totalUomValue: String\n\n @Field({ nullable: true })\n groupType: string\n\n @Field(type => ScalarDate, { nullable: true })\n manufactureDate: Date\n\n @Field(type => Float, { nullable: true })\n unitPrice: number\n\n @Field({ nullable: true })\n remark: string\n\n @Field(type => Float, { nullable: true })\n discountAmt: number\n\n @Field(type => Float, { nullable: true })\n miscAmt: number\n\n @Field(type => Float, { nullable: true })\n taxRate: number\n\n @Field(type => Float, { nullable: true })\n isError: Boolean\n\n @Field(type => Product, { nullable: true })\n product: Product\n\n @Field(type => ScalarDate, { nullable: true })\n expirationDate: Date\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PurchaseOrder } from './purchase-order';
|
|
2
|
+
import { PurchaseOrderMutation } from './purchase-order-mutation';
|
|
3
|
+
import { PurchaseOrderQuery } from './purchase-order-query';
|
|
4
|
+
export declare const entities: (typeof PurchaseOrder)[];
|
|
5
|
+
export declare const resolvers: (typeof PurchaseOrderQuery | typeof PurchaseOrderMutation)[];
|
|
6
|
+
export * from './purchase-order-mutation';
|
|
7
|
+
export * from './purchase-order-query';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { FileUpload } from 'graphql-upload/GraphQLUpload.js';
|
|
2
|
+
import { EntityManager } from 'typeorm';
|
|
3
|
+
import { User } from '@things-factory/auth-base';
|
|
4
|
+
import { Bizplace } from '@things-factory/biz-base';
|
|
5
|
+
import { Domain } from '@things-factory/shell';
|
|
6
|
+
import { NewPurchaseOrder, OrderProduct, PurchaseOrder, PurchaseOrderPatch } from '../';
|
|
7
|
+
export declare class PurchaseOrderMutation {
|
|
8
|
+
upsertPurchaseOrder(context: ResolverContext, purchaseOrder: PurchaseOrderPatch, files?: FileUpload): Promise<PurchaseOrder>;
|
|
9
|
+
approvePurchaseOrder(id: string, context: ResolverContext): Promise<PurchaseOrder>;
|
|
10
|
+
rejectPurchaseOrder(id: string, context: ResolverContext): Promise<PurchaseOrder>;
|
|
11
|
+
createPurchaseOrder(purchaseOrder: NewPurchaseOrder, context: ResolverContext): Promise<PurchaseOrder>;
|
|
12
|
+
updatePurchaseOrder(name: string, patch: PurchaseOrderPatch, context: ResolverContext): Promise<PurchaseOrder>;
|
|
13
|
+
deletePurchaseOrder(name: string, context: ResolverContext): Promise<boolean>;
|
|
14
|
+
}
|
|
15
|
+
export declare function upsertPurchaseOrderFunction(_: any, purchaseOrder: any, files: FileUpload[], context: any, tx?: EntityManager): Promise<PurchaseOrder>;
|
|
16
|
+
export declare function createPurchaseOrderFunction(_: any, purchaseOrder: any, files: FileUpload[], context: any, tx?: EntityManager): Promise<PurchaseOrder>;
|
|
17
|
+
export declare function updatePurchaseOrderFunction(_: any, purchaseOrder: any, files: FileUpload[], context: any, tx?: EntityManager): Promise<PurchaseOrder>;
|
|
18
|
+
export declare function upsertPurchaseOrderProducts(domain: Domain, bizplace: Bizplace, purchaseOrder: PurchaseOrder, orderProducts: OrderProduct[], user: User, tx?: EntityManager): Promise<void>;
|
|
@@ -85,6 +85,7 @@ let PurchaseOrderMutation = class PurchaseOrderMutation {
|
|
|
85
85
|
return true;
|
|
86
86
|
}
|
|
87
87
|
};
|
|
88
|
+
exports.PurchaseOrderMutation = PurchaseOrderMutation;
|
|
88
89
|
tslib_1.__decorate([
|
|
89
90
|
(0, type_graphql_1.Directive)('@privilege(category: "order_customer", privilege: "mutation")'),
|
|
90
91
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
@@ -144,10 +145,9 @@ tslib_1.__decorate([
|
|
|
144
145
|
tslib_1.__metadata("design:paramtypes", [String, Object]),
|
|
145
146
|
tslib_1.__metadata("design:returntype", Promise)
|
|
146
147
|
], PurchaseOrderMutation.prototype, "deletePurchaseOrder", null);
|
|
147
|
-
PurchaseOrderMutation = tslib_1.__decorate([
|
|
148
|
+
exports.PurchaseOrderMutation = PurchaseOrderMutation = tslib_1.__decorate([
|
|
148
149
|
(0, type_graphql_1.Resolver)(__1.PurchaseOrder)
|
|
149
150
|
], PurchaseOrderMutation);
|
|
150
|
-
exports.PurchaseOrderMutation = PurchaseOrderMutation;
|
|
151
151
|
async function upsertPurchaseOrderFunction(_, purchaseOrder, files, context, tx) {
|
|
152
152
|
if (!purchaseOrder.id) {
|
|
153
153
|
purchaseOrder = await createPurchaseOrderFunction(_, purchaseOrder, files, context, tx);
|
|
@@ -209,17 +209,12 @@ async function createPurchaseOrderFunction(_, purchaseOrder, files, context, tx)
|
|
|
209
209
|
await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, createdPurchaseOrder, orderProducts, user, tx);
|
|
210
210
|
try {
|
|
211
211
|
// // 3. Create purchase order misc charges
|
|
212
|
-
for (var _g = true, otherCharges_1 = tslib_1.__asyncValues(otherCharges), otherCharges_1_1; otherCharges_1_1 = await otherCharges_1.next(), _a = otherCharges_1_1.done, !_a;) {
|
|
212
|
+
for (var _g = true, otherCharges_1 = tslib_1.__asyncValues(otherCharges), otherCharges_1_1; otherCharges_1_1 = await otherCharges_1.next(), _a = otherCharges_1_1.done, !_a; _g = true) {
|
|
213
213
|
_c = otherCharges_1_1.value;
|
|
214
214
|
_g = false;
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
await tx.getRepository(__1.PurchaseOrderOtherCharge).save(Object.assign(Object.assign({}, oc), { domain, purchaseOrder: createdPurchaseOrder, creator: user, updater: user }));
|
|
219
|
-
}
|
|
220
|
-
finally {
|
|
221
|
-
_g = true;
|
|
222
|
-
}
|
|
215
|
+
let oc = _c;
|
|
216
|
+
delete oc.id;
|
|
217
|
+
await tx.getRepository(__1.PurchaseOrderOtherCharge).save(Object.assign(Object.assign({}, oc), { domain, purchaseOrder: createdPurchaseOrder, creator: user, updater: user }));
|
|
223
218
|
}
|
|
224
219
|
}
|
|
225
220
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
@@ -276,18 +271,13 @@ async function updatePurchaseOrderFunction(_, purchaseOrder, files, context, tx)
|
|
|
276
271
|
});
|
|
277
272
|
try {
|
|
278
273
|
// // 4. Process Purchase Other Other Charges Data and Insert/ Update data
|
|
279
|
-
for (var _g = true, otherCharges_2 = tslib_1.__asyncValues(otherCharges), otherCharges_2_1; otherCharges_2_1 = await otherCharges_2.next(), _a = otherCharges_2_1.done, !_a;) {
|
|
274
|
+
for (var _g = true, otherCharges_2 = tslib_1.__asyncValues(otherCharges), otherCharges_2_1; otherCharges_2_1 = await otherCharges_2.next(), _a = otherCharges_2_1.done, !_a; _g = true) {
|
|
280
275
|
_c = otherCharges_2_1.value;
|
|
281
276
|
_g = false;
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
await otherChargesRepo.save(Object.assign(Object.assign({}, oc), { domain, purchaseOrder: existingPurchaseOrder, creator: (oc === null || oc === void 0 ? void 0 : oc.id) ? oc.creator : user, updater: user }));
|
|
287
|
-
}
|
|
288
|
-
finally {
|
|
289
|
-
_g = true;
|
|
290
|
-
}
|
|
277
|
+
let oc = _c;
|
|
278
|
+
if (!(oc === null || oc === void 0 ? void 0 : oc.id))
|
|
279
|
+
delete oc.id;
|
|
280
|
+
await otherChargesRepo.save(Object.assign(Object.assign({}, oc), { domain, purchaseOrder: existingPurchaseOrder, creator: (oc === null || oc === void 0 ? void 0 : oc.id) ? oc.creator : user, updater: user }));
|
|
291
281
|
}
|
|
292
282
|
}
|
|
293
283
|
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"purchase-order-mutation.js","sourceRoot":"","sources":["../../../server/service/purchase-order/purchase-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, Repository } from 'typeorm'\n\nimport { Attachment, createAttachments, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { Location } from '@things-factory/warehouse-base'\n\nimport {\n ArrivalNotice,\n NewPurchaseOrder,\n OrderProduct,\n PurchaseOrder,\n PurchaseOrderOtherCharge,\n PurchaseOrderPatch\n} from '../'\nimport {\n ATTACHMENT_TYPE,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS,\n PURCHASE_ORDER_STATUS\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { checkArrivedNoticeFunction, generateArrivalNoticeFunction } from '../arrival-notice/arrival-notice-mutation'\nimport { getPurchaseOrderFunction } from './purchase-order-query'\n\n@Resolver(PurchaseOrder)\nexport class PurchaseOrderMutation {\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async upsertPurchaseOrder(\n @Ctx() context: ResolverContext,\n @Arg('purchaseOrder', type => PurchaseOrderPatch) purchaseOrder: PurchaseOrderPatch,\n @Arg('files', type => [GraphQLUpload], { nullable: true }) files?: FileUpload\n ): Promise<PurchaseOrder> {\n try {\n const { tx } = context.state\n const createdPurchaseOrder: PurchaseOrder = await upsertPurchaseOrderFunction(\n null,\n purchaseOrder,\n files,\n context,\n tx\n )\n\n return createdPurchaseOrder\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async approvePurchaseOrder(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const findPurchaseOrder: PurchaseOrder = await getRepository(PurchaseOrder).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['orderProducts', 'orderProducts.product', 'bufferLocation', 'bizplace', 'domain']\n })\n\n // const findPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).findOne({where: {id}, relations:['bizplace']})\n // const findOrderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).findBy({purchaseOrder: {id: findPurchaseOrder.id}}})\n\n // // 1. Approve purchase order\n const approvePurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...findPurchaseOrder,\n status: PURCHASE_ORDER_STATUS.APPROVED,\n approvedBy: user,\n approvedOn: new Date().toUTCString(),\n updater: user\n })\n\n await tx.getRepository(OrderProduct).save(\n findPurchaseOrder.orderProducts.map(itm => {\n return {\n ...itm,\n status: PURCHASE_ORDER_STATUS.APPROVED\n }\n })\n )\n\n // // 2. Create and confirm arrival notice\n let newGANOrder = {\n ...findPurchaseOrder,\n orderProducts: findPurchaseOrder.orderProducts.map(itm => {\n delete itm.id, itm.name\n return {\n ...itm\n }\n }),\n customerBizplaceId: findPurchaseOrder.bizplace.id,\n purchaseOrder: approvePurchaseOrder,\n orderVass: [],\n creator: user,\n updater: user\n }\n\n delete newGANOrder.id\n //change gan status to intransit and call check arrived notice function right\n newGANOrder.status = ORDER_STATUS.INTRANSIT\n\n const createdGAN: ArrivalNotice = await generateArrivalNoticeFunction(null, newGANOrder, true, [], context, tx)\n\n // await confirmArrivalNoticeFunction(createdGAN.name, context, tx)\n\n // await receiveArrivalNoticeFunction(null, createdGAN.name, context)\n\n await checkArrivedNoticeFunction(createdGAN.name, context, tx)\n\n return approvePurchaseOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async rejectPurchaseOrder(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const findPurchaseOrder: PurchaseOrder = await getRepository(PurchaseOrder).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['orderProducts']\n })\n // // 1. Reject purchase order\n const rejectedPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...findPurchaseOrder,\n status: PURCHASE_ORDER_STATUS.REJECTED,\n updater: user\n })\n\n await tx.getRepository(OrderProduct).save(\n findPurchaseOrder.orderProducts.map(itm => {\n return {\n ...itm,\n status: PURCHASE_ORDER_STATUS.REJECTED\n }\n })\n )\n\n return rejectedPurchaseOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async createPurchaseOrder(\n @Arg('purchaseOrder', type => NewPurchaseOrder) purchaseOrder: NewPurchaseOrder,\n @Ctx() context: ResolverContext\n ): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n return await tx.getRepository(PurchaseOrder).save({\n ...purchaseOrder,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async updatePurchaseOrder(\n @Arg('name') name: string,\n @Arg('patch', type => PurchaseOrderPatch) patch: PurchaseOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const repository = tx.getRepository(PurchaseOrder)\n const purchaseOrder = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...purchaseOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deletePurchaseOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(PurchaseOrder).delete({ domain: { id: domain.id }, name })\n return true\n }\n}\n\nexport async function upsertPurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n if (!purchaseOrder.id) {\n purchaseOrder = await createPurchaseOrderFunction(_, purchaseOrder, files, context, tx)\n } else {\n purchaseOrder = await updatePurchaseOrderFunction(_, purchaseOrder, files, context, tx)\n }\n\n return purchaseOrder\n}\n\nexport async function createPurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n const { domain, user } = context.state\n let orderProducts: OrderProduct[] = purchaseOrder.orderProducts\n let otherCharges: PurchaseOrderOtherCharge[] = purchaseOrder.otherCharges\n\n let myBizplace: Bizplace\n let orderNo: string = ''\n let arrError: string[] = []\n\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n if (purchaseOrder?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == purchaseOrder.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n purchaseOrder.bizplace = foundPermittedBizplace\n } else {\n arrError.push(`No bizplace was selected`)\n }\n\n if (purchaseOrder?.supplier?.id) {\n purchaseOrder.supplier = await getRepository(ContactPoint).findOneBy({ id: purchaseOrder.supplier.id })\n } else {\n arrError.push(`No supplier was selected`)\n }\n\n if (purchaseOrder?.bufferLocation?.id) {\n purchaseOrder.bufferLocation = await getRepository(Location).findOneBy({ id: purchaseOrder.bufferLocation.id })\n } else {\n arrError.push(`No buffer location was selected`)\n }\n\n if (arrError.length > 0) {\n throw new Error(arrError.join(', '))\n }\n\n // // find PO number rule setting\n const poNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.PO_NUMBER_RULE\n }\n })\n\n orderNo = poNoSetting\n ? await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.PO_NUMBER, seed: {} })\n : OrderNoGenerator.purchaseOrder()\n\n // // 1. Create purchase order\n const createdPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...purchaseOrder,\n name: orderNo,\n domain,\n looseItem: purchaseOrder?.looseItem ? purchaseOrder.looseItem : false,\n creator: user,\n updater: user\n })\n\n // // 2. Create purchase order product\n await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, createdPurchaseOrder, orderProducts, user, tx)\n\n // // 3. Create purchase order misc charges\n for await (let oc of otherCharges) {\n delete oc.id\n await tx.getRepository(PurchaseOrderOtherCharge).save({\n ...oc,\n domain,\n purchaseOrder: createdPurchaseOrder,\n creator: user,\n updater: user\n })\n }\n\n // // 4. Create Attacments\n if (files?.length) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.PO,\n refBy: createdPurchaseOrder.id,\n category: ATTACHMENT_TYPE.PO /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return createdPurchaseOrder\n}\n\nexport async function updatePurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n const { domain, user } = context.state\n\n let existingPurchaseOrder: any = await getPurchaseOrderFunction(_, purchaseOrder.name, context, tx)\n\n let orderProducts: OrderProduct[] = purchaseOrder.orderProducts\n let otherCharges: PurchaseOrderOtherCharge[] = purchaseOrder.otherCharges\n\n if (purchaseOrder?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == purchaseOrder.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n purchaseOrder.bizplace = foundPermittedBizplace\n }\n\n if (purchaseOrder?.supplier?.id) {\n purchaseOrder.supplier = await getRepository(ContactPoint).findOneBy({ id: purchaseOrder.supplier.id })\n }\n\n if (purchaseOrder?.bufferLocation?.id) {\n purchaseOrder.bufferLocation = await getRepository(Location).findOneBy({ id: purchaseOrder.bufferLocation.id })\n }\n\n // // 1. Update purchase order\n const updatePurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...existingPurchaseOrder,\n ...purchaseOrder,\n domain,\n creator: user,\n updater: user\n })\n\n // // 2. Update purchase order product\n await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, purchaseOrder, orderProducts, user, tx)\n\n // // 3. Delete Removed Other Charges\n const otherChargesRepo: Repository<PurchaseOrderOtherCharge> =\n tx?.getRepository(PurchaseOrderOtherCharge) || getRepository(PurchaseOrderOtherCharge)\n let removeOC = existingPurchaseOrder.otherCharges.filter(\n existingOC => (otherCharges.filter(inOC => inOC.id == existingOC.id).length = 0)\n )\n removeOC.forEach(async oc => {\n await otherChargesRepo.delete(oc)\n })\n\n // // 4. Process Purchase Other Other Charges Data and Insert/ Update data\n for await (let oc of otherCharges) {\n if (!oc?.id) delete oc.id\n await otherChargesRepo.save({\n ...oc,\n domain,\n purchaseOrder: existingPurchaseOrder,\n creator: oc?.id ? oc.creator : user,\n updater: user\n })\n }\n\n // // 5. Remove Purchase Order Products\n const foundAttachments: Attachment[] = await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: purchaseOrder.id,\n category: ATTACHMENT_TYPE.PO\n }\n })\n\n // // 6. Remove All Attachment\n if (foundAttachments?.length) {\n await deleteAttachmentsByRef(_, { refBys: foundAttachments.map(file => file.refBy) }, context)\n }\n\n // // 7. Add New Attachment\n if (files?.length > 0) {\n const attachments: Attachment[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.PO,\n refBy: updatePurchaseOrder.id,\n category: ATTACHMENT_TYPE.PO /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return existingPurchaseOrder\n}\n\nexport async function upsertPurchaseOrderProducts(\n domain: Domain,\n bizplace: Bizplace,\n purchaseOrder: PurchaseOrder,\n orderProducts: OrderProduct[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n try {\n const purchaseOrderRepo: Repository<Product> = tx?.getRepository(PurchaseOrder) || getRepository(PurchaseOrder)\n const bizplaceRepo: Repository<Product> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const orderProductRepo: Repository<OrderProduct> = tx?.getRepository(OrderProduct) || getRepository(OrderProduct)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n\n // // Remove all existing order products that do not exist in current input\n let removeOP = purchaseOrder.orderProducts.filter(\n existingOP => (orderProducts.filter(inOP => inOP.id == existingOP.id).length = 0)\n )\n removeOP.forEach(async op => {\n await orderProductRepo.delete(op.id)\n })\n\n purchaseOrder = await purchaseOrderRepo.findOneBy({ id: purchaseOrder.id })\n\n bizplace = await bizplaceRepo.findOneBy({ id: bizplace.id })\n\n orderProducts = await Promise.all(\n orderProducts.map(async (op: OrderProduct) => {\n if (!op?.id) delete op.id\n let foundProductDetail: ProductDetail = await tx\n .getRepository(ProductDetail)\n .findOne({ where: { product: { id: op.product.id }, packingType: op.packingType } })\n return {\n ...op,\n domain,\n bizplace: bizplace,\n name: op?.id ? op.name : OrderNoGenerator.orderProduct(),\n product: await productRepo.findOneBy({ id: op.product.id }),\n packingSize: foundProductDetail?.packingSize || 1,\n purchaseOrder: purchaseOrder,\n status: purchaseOrder.status,\n creator: op?.id ? op.creator : user,\n updater: user\n }\n })\n )\n\n await orderProductRepo.save(orderProducts)\n } catch (error) {\n throw error\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"purchase-order-mutation.js","sourceRoot":"","sources":["../../../server/service/purchase-order/purchase-order-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'\nimport GraphQLUpload from 'graphql-upload/GraphQLUpload.js'\nimport { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'\nimport { EntityManager, Repository } from 'typeorm'\n\nimport { Attachment, createAttachments, deleteAttachmentsByRef } from '@things-factory/attachment-base'\nimport { User } from '@things-factory/auth-base'\nimport { Bizplace, ContactPoint, getPermittedBizplaces } from '@things-factory/biz-base'\nimport { generateId } from '@things-factory/id-rule-base'\nimport { Product, ProductDetail } from '@things-factory/product-base'\nimport { Setting } from '@things-factory/setting-base'\nimport { Domain, getRepository } from '@things-factory/shell'\nimport { Location } from '@things-factory/warehouse-base'\n\nimport {\n ArrivalNotice,\n NewPurchaseOrder,\n OrderProduct,\n PurchaseOrder,\n PurchaseOrderOtherCharge,\n PurchaseOrderPatch\n} from '../'\nimport {\n ATTACHMENT_TYPE,\n ORDER_NUMBER_RULE_TYPE,\n ORDER_NUMBER_SETTING_KEY,\n ORDER_STATUS,\n PURCHASE_ORDER_STATUS\n} from '../../constants'\nimport { OrderNoGenerator } from '../../utils'\nimport { checkArrivedNoticeFunction, generateArrivalNoticeFunction } from '../arrival-notice/arrival-notice-mutation'\nimport { getPurchaseOrderFunction } from './purchase-order-query'\n\n@Resolver(PurchaseOrder)\nexport class PurchaseOrderMutation {\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async upsertPurchaseOrder(\n @Ctx() context: ResolverContext,\n @Arg('purchaseOrder', type => PurchaseOrderPatch) purchaseOrder: PurchaseOrderPatch,\n @Arg('files', type => [GraphQLUpload], { nullable: true }) files?: FileUpload\n ): Promise<PurchaseOrder> {\n try {\n const { tx } = context.state\n const createdPurchaseOrder: PurchaseOrder = await upsertPurchaseOrderFunction(\n null,\n purchaseOrder,\n files,\n context,\n tx\n )\n\n return createdPurchaseOrder\n } catch (error) {\n throw error\n }\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async approvePurchaseOrder(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const findPurchaseOrder: PurchaseOrder = await getRepository(PurchaseOrder).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['orderProducts', 'orderProducts.product', 'bufferLocation', 'bizplace', 'domain']\n })\n\n // const findPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).findOne({where: {id}, relations:['bizplace']})\n // const findOrderProducts: OrderProduct[] = await tx.getRepository(OrderProduct).findBy({purchaseOrder: {id: findPurchaseOrder.id}}})\n\n // // 1. Approve purchase order\n const approvePurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...findPurchaseOrder,\n status: PURCHASE_ORDER_STATUS.APPROVED,\n approvedBy: user,\n approvedOn: new Date().toUTCString(),\n updater: user\n })\n\n await tx.getRepository(OrderProduct).save(\n findPurchaseOrder.orderProducts.map(itm => {\n return {\n ...itm,\n status: PURCHASE_ORDER_STATUS.APPROVED\n }\n })\n )\n\n // // 2. Create and confirm arrival notice\n let newGANOrder = {\n ...findPurchaseOrder,\n orderProducts: findPurchaseOrder.orderProducts.map(itm => {\n delete itm.id, itm.name\n return {\n ...itm\n }\n }),\n customerBizplaceId: findPurchaseOrder.bizplace.id,\n purchaseOrder: approvePurchaseOrder,\n orderVass: [],\n creator: user,\n updater: user\n }\n\n delete newGANOrder.id\n //change gan status to intransit and call check arrived notice function right\n newGANOrder.status = ORDER_STATUS.INTRANSIT\n\n const createdGAN: ArrivalNotice = await generateArrivalNoticeFunction(null, newGANOrder, true, [], context, tx)\n\n // await confirmArrivalNoticeFunction(createdGAN.name, context, tx)\n\n // await receiveArrivalNoticeFunction(null, createdGAN.name, context)\n\n await checkArrivedNoticeFunction(createdGAN.name, context, tx)\n\n return approvePurchaseOrder\n }\n\n @Directive('@privilege(category: \"order_customer\", privilege: \"mutation\")')\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async rejectPurchaseOrder(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const findPurchaseOrder: PurchaseOrder = await getRepository(PurchaseOrder).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['orderProducts']\n })\n // // 1. Reject purchase order\n const rejectedPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...findPurchaseOrder,\n status: PURCHASE_ORDER_STATUS.REJECTED,\n updater: user\n })\n\n await tx.getRepository(OrderProduct).save(\n findPurchaseOrder.orderProducts.map(itm => {\n return {\n ...itm,\n status: PURCHASE_ORDER_STATUS.REJECTED\n }\n })\n )\n\n return rejectedPurchaseOrder\n }\n\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async createPurchaseOrder(\n @Arg('purchaseOrder', type => NewPurchaseOrder) purchaseOrder: NewPurchaseOrder,\n @Ctx() context: ResolverContext\n ): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n return await tx.getRepository(PurchaseOrder).save({\n ...purchaseOrder,\n domain,\n creator: user,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => PurchaseOrder)\n async updatePurchaseOrder(\n @Arg('name') name: string,\n @Arg('patch', type => PurchaseOrderPatch) patch: PurchaseOrderPatch,\n @Ctx() context: ResolverContext\n ): Promise<PurchaseOrder> {\n const { tx, domain, user } = context.state\n\n const repository = tx.getRepository(PurchaseOrder)\n const purchaseOrder = await repository.findOne({\n where: { domain: { id: domain.id }, name }\n })\n\n return await repository.save({\n ...purchaseOrder,\n ...patch,\n updater: user\n })\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean)\n async deletePurchaseOrder(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { tx, domain } = context.state\n await tx.getRepository(PurchaseOrder).delete({ domain: { id: domain.id }, name })\n return true\n }\n}\n\nexport async function upsertPurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n if (!purchaseOrder.id) {\n purchaseOrder = await createPurchaseOrderFunction(_, purchaseOrder, files, context, tx)\n } else {\n purchaseOrder = await updatePurchaseOrderFunction(_, purchaseOrder, files, context, tx)\n }\n\n return purchaseOrder\n}\n\nexport async function createPurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n const { domain, user } = context.state\n let orderProducts: OrderProduct[] = purchaseOrder.orderProducts\n let otherCharges: PurchaseOrderOtherCharge[] = purchaseOrder.otherCharges\n\n let myBizplace: Bizplace\n let orderNo: string = ''\n let arrError: string[] = []\n\n const settingRepo: Repository<Setting> = tx?.getRepository(Setting) || getRepository(Setting)\n\n if (purchaseOrder?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == purchaseOrder.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n purchaseOrder.bizplace = foundPermittedBizplace\n } else {\n arrError.push(`No bizplace was selected`)\n }\n\n if (purchaseOrder?.supplier?.id) {\n purchaseOrder.supplier = await getRepository(ContactPoint).findOneBy({ id: purchaseOrder.supplier.id })\n } else {\n arrError.push(`No supplier was selected`)\n }\n\n if (purchaseOrder?.bufferLocation?.id) {\n purchaseOrder.bufferLocation = await getRepository(Location).findOneBy({ id: purchaseOrder.bufferLocation.id })\n } else {\n arrError.push(`No buffer location was selected`)\n }\n\n if (arrError.length > 0) {\n throw new Error(arrError.join(', '))\n }\n\n // // find PO number rule setting\n const poNoSetting: Setting = await settingRepo.findOne({\n where: {\n domain: { id: domain.id },\n name: ORDER_NUMBER_SETTING_KEY.PO_NUMBER_RULE\n }\n })\n\n orderNo = poNoSetting\n ? await generateId({ domain, type: ORDER_NUMBER_RULE_TYPE.PO_NUMBER, seed: {} })\n : OrderNoGenerator.purchaseOrder()\n\n // // 1. Create purchase order\n const createdPurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...purchaseOrder,\n name: orderNo,\n domain,\n looseItem: purchaseOrder?.looseItem ? purchaseOrder.looseItem : false,\n creator: user,\n updater: user\n })\n\n // // 2. Create purchase order product\n await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, createdPurchaseOrder, orderProducts, user, tx)\n\n // // 3. Create purchase order misc charges\n for await (let oc of otherCharges) {\n delete oc.id\n await tx.getRepository(PurchaseOrderOtherCharge).save({\n ...oc,\n domain,\n purchaseOrder: createdPurchaseOrder,\n creator: user,\n updater: user\n })\n }\n\n // // 4. Create Attacments\n if (files?.length) {\n const attachments: Partial<Attachment>[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.PO,\n refBy: createdPurchaseOrder.id,\n category: ATTACHMENT_TYPE.PO /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return createdPurchaseOrder\n}\n\nexport async function updatePurchaseOrderFunction(\n _: any,\n purchaseOrder: any,\n files: FileUpload[],\n context: any,\n tx?: EntityManager\n): Promise<PurchaseOrder> {\n const { domain, user } = context.state\n\n let existingPurchaseOrder: any = await getPurchaseOrderFunction(_, purchaseOrder.name, context, tx)\n\n let orderProducts: OrderProduct[] = purchaseOrder.orderProducts\n let otherCharges: PurchaseOrderOtherCharge[] = purchaseOrder.otherCharges\n\n if (purchaseOrder?.bizplace?.id) {\n const permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)\n let foundPermittedBizplace: Bizplace = permittedBizplaces.find(biz => biz.id == purchaseOrder.bizplace.id)\n\n if (!foundPermittedBizplace) throw new Error(`This user does not permitted for this company`)\n\n purchaseOrder.bizplace = foundPermittedBizplace\n }\n\n if (purchaseOrder?.supplier?.id) {\n purchaseOrder.supplier = await getRepository(ContactPoint).findOneBy({ id: purchaseOrder.supplier.id })\n }\n\n if (purchaseOrder?.bufferLocation?.id) {\n purchaseOrder.bufferLocation = await getRepository(Location).findOneBy({ id: purchaseOrder.bufferLocation.id })\n }\n\n // // 1. Update purchase order\n const updatePurchaseOrder: PurchaseOrder = await tx.getRepository(PurchaseOrder).save({\n ...existingPurchaseOrder,\n ...purchaseOrder,\n domain,\n creator: user,\n updater: user\n })\n\n // // 2. Update purchase order product\n await upsertPurchaseOrderProducts(domain, purchaseOrder.bizplace, purchaseOrder, orderProducts, user, tx)\n\n // // 3. Delete Removed Other Charges\n const otherChargesRepo: Repository<PurchaseOrderOtherCharge> =\n tx?.getRepository(PurchaseOrderOtherCharge) || getRepository(PurchaseOrderOtherCharge)\n let removeOC = existingPurchaseOrder.otherCharges.filter(\n existingOC => (otherCharges.filter(inOC => inOC.id == existingOC.id).length = 0)\n )\n removeOC.forEach(async oc => {\n await otherChargesRepo.delete(oc)\n })\n\n // // 4. Process Purchase Other Other Charges Data and Insert/ Update data\n for await (let oc of otherCharges) {\n if (!oc?.id) delete oc.id\n await otherChargesRepo.save({\n ...oc,\n domain,\n purchaseOrder: existingPurchaseOrder,\n creator: oc?.id ? oc.creator : user,\n updater: user\n })\n }\n\n // // 5. Remove Purchase Order Products\n const foundAttachments: Attachment[] = await getRepository(Attachment).find({\n where: {\n domain: { id: domain.id },\n refBy: purchaseOrder.id,\n category: ATTACHMENT_TYPE.PO\n }\n })\n\n // // 6. Remove All Attachment\n if (foundAttachments?.length) {\n await deleteAttachmentsByRef(_, { refBys: foundAttachments.map(file => file.refBy) }, context)\n }\n\n // // 7. Add New Attachment\n if (files?.length > 0) {\n const attachments: Partial<Attachment>[] = files.map(attachment => {\n return {\n file: attachment,\n refType: ATTACHMENT_TYPE.PO,\n refBy: updatePurchaseOrder.id,\n category: ATTACHMENT_TYPE.PO /* TODO use refType */\n }\n })\n await createAttachments(_, { attachments }, context)\n }\n\n return existingPurchaseOrder\n}\n\nexport async function upsertPurchaseOrderProducts(\n domain: Domain,\n bizplace: Bizplace,\n purchaseOrder: PurchaseOrder,\n orderProducts: OrderProduct[],\n user: User,\n tx?: EntityManager\n): Promise<void> {\n try {\n const purchaseOrderRepo: Repository<PurchaseOrder> =\n tx?.getRepository(PurchaseOrder) || getRepository(PurchaseOrder)\n const bizplaceRepo: Repository<Bizplace> = tx?.getRepository(Bizplace) || getRepository(Bizplace)\n const orderProductRepo: Repository<OrderProduct> = tx?.getRepository(OrderProduct) || getRepository(OrderProduct)\n const productRepo: Repository<Product> = tx?.getRepository(Product) || getRepository(Product)\n\n // // Remove all existing order products that do not exist in current input\n let removeOP = purchaseOrder.orderProducts.filter(\n existingOP => (orderProducts.filter(inOP => inOP.id == existingOP.id).length = 0)\n )\n removeOP.forEach(async op => {\n await orderProductRepo.delete(op.id)\n })\n\n purchaseOrder = await purchaseOrderRepo.findOneBy({ id: purchaseOrder.id })\n\n bizplace = await bizplaceRepo.findOneBy({ id: bizplace.id })\n\n orderProducts = await Promise.all(\n orderProducts.map(async (op: OrderProduct) => {\n if (!op?.id) delete op.id\n let foundProductDetail: ProductDetail = await tx\n .getRepository(ProductDetail)\n .findOne({ where: { product: { id: op.product.id }, packingType: op.packingType } })\n return {\n ...op,\n domain,\n bizplace: bizplace,\n name: op?.id ? op.name : OrderNoGenerator.orderProduct(),\n product: await productRepo.findOneBy({ id: op.product.id }),\n packingSize: foundProductDetail?.packingSize || 1,\n purchaseOrder: purchaseOrder,\n status: purchaseOrder.status,\n creator: op?.id ? op.creator : user,\n updater: user\n }\n })\n )\n\n await orderProductRepo.save(orderProducts)\n } catch (error) {\n throw error\n }\n}\n"]}
|