@devx-commerce/plugin-gati 0.0.34-beta.8 → 0.0.34-beta.80
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/.medusa/server/src/admin/index.js +3 -1
- package/.medusa/server/src/admin/index.mjs +3 -1
- package/.medusa/server/src/api/admin/erp-event/query-config.js +8 -1
- package/.medusa/server/src/api/admin/generate-invoice/route.js +158 -0
- package/.medusa/server/src/api/admin/masters/utils.js +29 -1
- package/.medusa/server/src/api/admin/masters/validators.js +2 -2
- package/.medusa/server/src/api/admin/variant-options/recalculate/route.js +446 -0
- package/.medusa/server/src/api/admin/variant-options/sync/route.js +21 -5
- package/.medusa/server/src/api/erp/webhook/config.js +73 -5
- package/.medusa/server/src/api/erp/webhook/route.js +10 -137
- package/.medusa/server/src/api/erp/webhook/utils.js +8 -1
- package/.medusa/server/src/api/pos/customer-ledger/middleware.js +13 -0
- package/.medusa/server/src/api/pos/customer-ledger/route.js +50 -0
- package/.medusa/server/src/api/pos/generate-invoice/route.js +164 -0
- package/.medusa/server/src/api/pos/gold/calculate/route.js +104 -0
- package/.medusa/server/src/api/pos/gold/item-master-purity.js +46 -0
- package/.medusa/server/src/api/pos/gold/middleware.js +18 -0
- package/.medusa/server/src/api/pos/gold/route.js +83 -0
- package/.medusa/server/src/api/pos/gold-rate/route.js +37 -24
- package/.medusa/server/src/api/pos/middleware.js +13 -1
- package/.medusa/server/src/api/pos/old-gold-item/middleware.js +10 -0
- package/.medusa/server/src/api/pos/old-gold-item/route.js +52 -0
- package/.medusa/server/src/api/pos/platinumdata/middleware.js +13 -0
- package/.medusa/server/src/api/pos/platinumdata/route.js +41 -0
- package/.medusa/server/src/api/pos/silverdata/middleware.js +13 -0
- package/.medusa/server/src/api/pos/silverdata/route.js +41 -0
- package/.medusa/server/src/api/pos/wallet-balance/middleware.js +13 -0
- package/.medusa/server/src/api/pos/wallet-balance/route.js +68 -0
- package/.medusa/server/src/api/store/custom-price/validators.js +2 -2
- package/.medusa/server/src/api/store/customer-ledger/middleware.js +13 -0
- package/.medusa/server/src/api/store/customer-ledger/route.js +49 -0
- package/.medusa/server/src/api/store/gold-rate/validators.js +2 -2
- package/.medusa/server/src/api/store/middleware.js +5 -1
- package/.medusa/server/src/api/store/wallet-balance/middleware.js +13 -0
- package/.medusa/server/src/api/store/wallet-balance/route.js +67 -0
- package/.medusa/server/src/jobs/process-erp-events.js +128 -0
- package/.medusa/server/src/jobs/process-variant-option-sync.js +46 -29
- package/.medusa/server/src/jobs/sync-addless-detail.js +68 -0
- package/.medusa/server/src/jobs/sync-book-list-and-applicable-policy.js +97 -0
- package/.medusa/server/src/jobs/sync-customer-advance-payment-erp.js +105 -0
- package/.medusa/server/src/jobs/sync-customer-erp.js +128 -0
- package/.medusa/server/src/jobs/sync-item-master.js +29 -0
- package/.medusa/server/src/jobs/sync-labour-chart-master.js +29 -0
- package/.medusa/server/src/jobs/sync-order-erp.js +46 -20
- package/.medusa/server/src/jobs/sync-order-request-erp.js +64 -0
- package/.medusa/server/src/jobs/sync-payment-book-master.js +71 -0
- package/.medusa/server/src/jobs/sync-rate-chart-master.js +29 -0
- package/.medusa/server/src/jobs/sync-report-master.js +54 -0
- package/.medusa/server/src/jobs/sync-sale-return-policy-master.js +38 -0
- package/.medusa/server/src/jobs/sync-urd-purchase-erp.js +84 -0
- package/.medusa/server/src/lib/api-response.js +2 -1
- package/.medusa/server/src/links/jewel-trans-master.js +13 -0
- package/.medusa/server/src/links/order-master.js +13 -0
- package/.medusa/server/src/links/sale-master.js +13 -0
- package/.medusa/server/src/modules/addless-detail/index.js +13 -0
- package/.medusa/server/src/modules/addless-detail/migrations/Migration20260212101102.js +15 -0
- package/.medusa/server/src/modules/addless-detail/migrations/Migration20260213000000.js +47 -0
- package/.medusa/server/src/modules/addless-detail/migrations/Migration20260226053037.js +15 -0
- package/.medusa/server/src/modules/addless-detail/models/addless-master.js +17 -0
- package/.medusa/server/src/modules/addless-detail/service.js +10 -0
- package/.medusa/server/src/modules/applicable-sale-return-policy/index.js +13 -0
- package/.medusa/server/src/modules/applicable-sale-return-policy/migrations/Migration20260123083526.js +15 -0
- package/.medusa/server/src/modules/applicable-sale-return-policy/models/applicable-sale-return-policy.js +23 -0
- package/.medusa/server/src/modules/applicable-sale-return-policy/service.js +10 -0
- package/.medusa/server/src/modules/book-list/index.js +13 -0
- package/.medusa/server/src/modules/book-list/migrations/Migration20260123083525.js +15 -0
- package/.medusa/server/src/modules/book-list/migrations/Migration20260401051011.js +14 -0
- package/.medusa/server/src/modules/book-list/models/book-list.js +13 -0
- package/.medusa/server/src/modules/book-list/service.js +10 -0
- package/.medusa/server/src/modules/category-group-master/migrations/Migration20250729035221.js +2 -2
- package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js +2 -2
- package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js +2 -2
- package/.medusa/server/src/modules/category-master/migrations/Migration20250513122212.js +2 -2
- package/.medusa/server/src/modules/category-master/migrations/Migration20250519180539.js +2 -2
- package/.medusa/server/src/modules/category-master/migrations/Migration20250531004724.js +2 -2
- package/.medusa/server/src/modules/category-master/migrations/Migration20250729040659.js +2 -2
- package/.medusa/server/src/modules/category-master/migrations/Migration20251031061327.js +2 -2
- package/.medusa/server/src/modules/category-master/migrations/Migration20251104045755.js +2 -2
- package/.medusa/server/src/modules/collection-group-master/migrations/Migration20250531022203.js +2 -2
- package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js +2 -2
- package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js +2 -2
- package/.medusa/server/src/modules/collection-master/migrations/Migration20250513122211.js +2 -2
- package/.medusa/server/src/modules/collection-master/migrations/Migration20250531025048.js +2 -2
- package/.medusa/server/src/modules/collection-master/migrations/Migration20251031060941.js +2 -2
- package/.medusa/server/src/modules/collection-master/migrations/Migration20251104050012.js +2 -2
- package/.medusa/server/src/modules/customer-receive-voucher/index.js +13 -0
- package/.medusa/server/src/modules/customer-receive-voucher/migrations/Migration20250115000000.js +51 -0
- package/.medusa/server/src/modules/customer-receive-voucher/migrations/Migration20260106050934.js +18 -0
- package/.medusa/server/src/modules/customer-receive-voucher/models/customer-receive-voucher.js +35 -0
- package/.medusa/server/src/modules/customer-receive-voucher/service.js +10 -0
- package/.medusa/server/src/modules/discount-master/migrations/Migration20250707232514.js +2 -2
- package/.medusa/server/src/modules/discount-master/migrations/Migration20250708051709.js +2 -2
- package/.medusa/server/src/modules/discount-master/migrations/Migration20250708051737.js +2 -2
- package/.medusa/server/src/modules/discount-master/migrations/Migration20251031061523.js +2 -2
- package/.medusa/server/src/modules/discount-master/migrations/Migration20251104050153.js +2 -2
- package/.medusa/server/src/modules/erp/migrations/Migration20250513121436.js +2 -2
- package/.medusa/server/src/modules/erp/service.js +611 -8
- package/.medusa/server/src/modules/erp-event/migrations/Migration20250908040911.js +2 -2
- package/.medusa/server/src/modules/erp-event/migrations/Migration20250922095956.js +2 -2
- package/.medusa/server/src/modules/erp-event/migrations/Migration20260529052734.js +14 -0
- package/.medusa/server/src/modules/erp-event/models/erp-event.js +6 -1
- package/.medusa/server/src/modules/extended-product/migrations/Migration20250620030100.js +2 -2
- package/.medusa/server/src/modules/extended-product/migrations/Migration20250716041546.js +2 -2
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251103182726.js +2 -2
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251119062526.js +2 -2
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251202055742.js +2 -2
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251202064200.js +2 -2
- package/.medusa/server/src/modules/extended-product/migrations/Migration20260323103543.js +14 -0
- package/.medusa/server/src/modules/extended-product/models/extended-product.js +2 -1
- package/.medusa/server/src/modules/extended-product/service.js +37 -1
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030335.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030522.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250629220100.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250629223425.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250704064831.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250716121609.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250725104852.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250726232339.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20250916065103.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251119063328.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120045708.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120051832.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120052514.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251202055952.js +2 -2
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251210112341.js +18 -0
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20260616000001.js +14 -0
- package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +4 -2
- package/.medusa/server/src/modules/extended-variant/service.js +37 -1
- package/.medusa/server/src/modules/item-master/index.js +13 -0
- package/.medusa/server/src/modules/item-master/migrations/Migration20260212101055.js +15 -0
- package/.medusa/server/src/modules/item-master/models/item-master.js +20 -0
- package/.medusa/server/src/modules/item-master/service.js +10 -0
- package/.medusa/server/src/modules/item-size-master/migrations/Migration20251031111036.js +2 -2
- package/.medusa/server/src/modules/jewel-trans-master/index.js +13 -0
- package/.medusa/server/src/modules/jewel-trans-master/migrations/Migration20260226053036.js +57 -0
- package/.medusa/server/src/modules/jewel-trans-master/models/jewel-trans-master.js +151 -0
- package/.medusa/server/src/modules/jewel-trans-master/service.js +16 -0
- package/.medusa/server/src/modules/labour-chart-master/index.js +13 -0
- package/.medusa/server/src/modules/labour-chart-master/migrations/Migration20260101081502.js +15 -0
- package/.medusa/server/src/modules/labour-chart-master/models/labour-chart-master.js +16 -0
- package/.medusa/server/src/modules/labour-chart-master/service.js +10 -0
- package/.medusa/server/src/modules/material-purchase-master/index.js +13 -0
- package/.medusa/server/src/modules/material-purchase-master/migrations/Migration20260310090700.js +18 -0
- package/.medusa/server/src/modules/material-purchase-master/models/material-purchase-detail-line.js +24 -0
- package/.medusa/server/src/modules/material-purchase-master/models/material-purchase-master.js +21 -0
- package/.medusa/server/src/modules/material-purchase-master/service.js +12 -0
- package/.medusa/server/src/modules/order-master/index.js +13 -0
- package/.medusa/server/src/modules/order-master/migrations/Migration20260226053036.js +29 -0
- package/.medusa/server/src/modules/order-master/migrations/Migration20260303000001.js +30 -0
- package/.medusa/server/src/modules/order-master/migrations/Migration20260319094758.js +26 -0
- package/.medusa/server/src/modules/order-master/migrations/Migration20260320000001.js +19 -0
- package/.medusa/server/src/modules/order-master/models/order-master.js +112 -0
- package/.medusa/server/src/modules/order-master/service.js +13 -0
- package/.medusa/server/src/modules/order-proceed-master/index.js +13 -0
- package/.medusa/server/src/modules/order-proceed-master/migrations/Migration20260327100226.js +31 -0
- package/.medusa/server/src/modules/order-proceed-master/models/order-proceed-master.js +38 -0
- package/.medusa/server/src/modules/order-proceed-master/service.js +11 -0
- package/.medusa/server/src/modules/party-master/migrations/Migration20250604104235.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20250604115453.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20250604120348.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20250604120701.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20250608220924.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20250612225738.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20250612231031.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20250708123734.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20251031061657.js +2 -2
- package/.medusa/server/src/modules/party-master/migrations/Migration20251104050242.js +2 -2
- package/.medusa/server/src/modules/payment-book-master/index.js +13 -0
- package/.medusa/server/src/modules/payment-book-master/migrations/Migration20251203105358.js +15 -0
- package/.medusa/server/src/modules/payment-book-master/models/payment-book-master.js +12 -0
- package/.medusa/server/src/modules/payment-book-master/service.js +10 -0
- package/.medusa/server/src/modules/promocode-master/migrations/Migration20250819123821.js +2 -2
- package/.medusa/server/src/modules/promocode-master/migrations/Migration20250918095713.js +2 -2
- package/.medusa/server/src/modules/promocode-master/migrations/Migration20251031061829.js +2 -2
- package/.medusa/server/src/modules/promocode-master/migrations/Migration20251104050332.js +2 -2
- package/.medusa/server/src/modules/quality-master/migrations/Migration20251031095211.js +2 -2
- package/.medusa/server/src/modules/quality-master/migrations/Migration20251105045114.js +2 -2
- package/.medusa/server/src/modules/rate-chart-master/index.js +13 -0
- package/.medusa/server/src/modules/rate-chart-master/migrations/Migration20260101081500.js +15 -0
- package/.medusa/server/src/modules/rate-chart-master/models/rate-chart-master.js +13 -0
- package/.medusa/server/src/modules/rate-chart-master/service.js +10 -0
- package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190057.js +2 -2
- package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190322.js +2 -2
- package/.medusa/server/src/modules/raw-master/migrations/Migration20251031061912.js +2 -2
- package/.medusa/server/src/modules/receive-voucher-master/index.js +13 -0
- package/.medusa/server/src/modules/receive-voucher-master/migrations/Migration20260328053649.js +16 -0
- package/.medusa/server/src/modules/receive-voucher-master/models/receive-voucher-master.js +27 -0
- package/.medusa/server/src/modules/receive-voucher-master/service.js +10 -0
- package/.medusa/server/src/modules/report-master/index.js +13 -0
- package/.medusa/server/src/modules/report-master/migrations/Migration20260121060955.js +15 -0
- package/.medusa/server/src/modules/report-master/migrations/Migration20260121112624.js +15 -0
- package/.medusa/server/src/modules/report-master/models/report-master.js +12 -0
- package/.medusa/server/src/modules/report-master/service.js +10 -0
- package/.medusa/server/src/modules/sale-master/index.js +13 -0
- package/.medusa/server/src/modules/sale-master/migrations/Migration20260205092935.js +15 -0
- package/.medusa/server/src/modules/sale-master/migrations/Migration20260205100000.js +16 -0
- package/.medusa/server/src/modules/sale-master/models/sale-master.js +27 -0
- package/.medusa/server/src/modules/sale-master/service.js +10 -0
- package/.medusa/server/src/modules/sale-return-master/index.js +13 -0
- package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260205093034.js +15 -0
- package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260327084135.js +14 -0
- package/.medusa/server/src/modules/sale-return-master/models/sale-return-master.js +18 -0
- package/.medusa/server/src/modules/sale-return-master/service.js +10 -0
- package/.medusa/server/src/modules/sale-return-policy-master/index.js +13 -0
- package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260105061449.js +21 -0
- package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260129084920.js +14 -0
- package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260129085620.js +20 -0
- package/.medusa/server/src/modules/sale-return-policy-master/models/sale-return-policy-master.js +37 -0
- package/.medusa/server/src/modules/sale-return-policy-master/service.js +12 -0
- package/.medusa/server/src/modules/shape-master/migrations/Migration20250509174455.js +2 -2
- package/.medusa/server/src/modules/shape-master/migrations/Migration20251031062019.js +2 -2
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20250713113247.js +2 -2
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20250713121440.js +2 -2
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251031062128.js +2 -2
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251104050501.js +2 -2
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251203083315.js +2 -2
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250513115356.js +2 -2
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250519180538.js +2 -2
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250531010409.js +2 -2
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730025135.js +2 -2
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730025307.js +2 -2
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730032130.js +2 -2
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251031062303.js +2 -2
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251104050743.js +2 -2
- package/.medusa/server/src/modules/tone-master/migrations/Migration20251031104320.js +2 -2
- package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251101082220.js +2 -2
- package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251103123857.js +2 -2
- package/.medusa/server/src/subscribers/cutomer-updated.js +3 -1
- package/.medusa/server/src/subscribers/erp-batch-processor.js +147 -0
- package/.medusa/server/src/subscribers/order-item-update.js +11 -0
- package/.medusa/server/src/subscribers/party-master.js +39 -35
- package/.medusa/server/src/subscribers/product-sync.js +1 -1
- package/.medusa/server/src/subscribers/product-variant-deleted.js +27 -0
- package/.medusa/server/src/subscribers/shipping-info-master.js +10 -4
- package/.medusa/server/src/utils/build-redis-key.js +3 -1
- package/.medusa/server/src/utils/erp-health.js +24 -0
- package/.medusa/server/src/utils/state-helper.js +3 -2
- package/.medusa/server/src/workflows/addless-detail/index.js +11 -0
- package/.medusa/server/src/workflows/addless-detail/steps/create-or-update-addless-detail.js +36 -0
- package/.medusa/server/src/workflows/addless-detail/steps/fetch-addless-detail.js +73 -0
- package/.medusa/server/src/workflows/applicable-sale-return-policy/index.js +11 -0
- package/.medusa/server/src/workflows/applicable-sale-return-policy/steps/create-or-update-applicable-sale-return-policy.js +74 -0
- package/.medusa/server/src/workflows/applicable-sale-return-policy/steps/fetch-applicable-sale-return-policy.js +64 -0
- package/.medusa/server/src/workflows/book-list/index.js +11 -0
- package/.medusa/server/src/workflows/book-list/steps/create-or-update-book-list.js +59 -0
- package/.medusa/server/src/workflows/book-list/steps/fetch-book-list.js +64 -0
- package/.medusa/server/src/workflows/create-extended-product-from-product/index.js +9 -8
- package/.medusa/server/src/workflows/create-extended-variant-from-variant/index.js +9 -18
- package/.medusa/server/src/workflows/customer-advance-payment/index.js +18 -0
- package/.medusa/server/src/workflows/customer-advance-payment/steps/create-receive-voucher.js +71 -0
- package/.medusa/server/src/workflows/customer-advance-payment/steps/index.js +18 -0
- package/.medusa/server/src/workflows/customer-advance-payment/workflows/create-receive-voucher-workflow.js +11 -0
- package/.medusa/server/src/workflows/customer-advance-payment/workflows/index.js +18 -0
- package/.medusa/server/src/workflows/daily-rate/index.js +37 -0
- package/.medusa/server/src/workflows/daily-rate/perf.js +89 -0
- package/.medusa/server/src/workflows/daily-rate/steps/fetch-gold-rate-step.js +29 -0
- package/.medusa/server/src/workflows/daily-rate/steps/update-inward-metal-rates-step.js +154 -0
- package/.medusa/server/src/workflows/daily-rate/steps/update-party-style-metal-rates-step.js +224 -0
- package/.medusa/server/src/workflows/daily-rate/steps/update-style-master-metal-rates-step.js +180 -0
- package/.medusa/server/src/workflows/daily-rate/steps/update-unfix-order-items-on-gold-rate.js +308 -0
- package/.medusa/server/src/workflows/erp-batch-processing/index.js +19 -0
- package/.medusa/server/src/workflows/erp-batch-processing/steps/finalize-batch-processing.js +55 -0
- package/.medusa/server/src/workflows/erp-batch-processing/steps/index.js +20 -0
- package/.medusa/server/src/workflows/erp-batch-processing/steps/initialize-batch-processing.js +40 -0
- package/.medusa/server/src/workflows/erp-batch-processing/steps/start-batch-processing.js +22 -0
- package/.medusa/server/src/workflows/erp-batch-processing/workflows/erp-batch-processing.js +25 -0
- package/.medusa/server/src/workflows/erp-batch-processing/workflows/index.js +18 -0
- package/.medusa/server/src/workflows/erp-event/steps/update-erp-event.js +24 -7
- package/.medusa/server/src/workflows/erp-event/workflows/update-erp-event.js +1 -1
- package/.medusa/server/src/workflows/helpers/product-helper.js +212 -21
- package/.medusa/server/src/workflows/helpers/variant-helper.js +165 -162
- package/.medusa/server/src/workflows/hooks/product-updated.js +23 -15
- package/.medusa/server/src/workflows/hooks/variant-updated.js +24 -22
- package/.medusa/server/src/workflows/index.js +4 -1
- package/.medusa/server/src/workflows/inward-master/helper/index.js +28 -13
- package/.medusa/server/src/workflows/inward-master/steps/create-inward-exploration-lines.js +1 -2
- package/.medusa/server/src/workflows/inward-master/steps/create-inward-extra-charges-lines.js +1 -2
- package/.medusa/server/src/workflows/inward-master/steps/create-order-fulfillment-for-inward.js +196 -0
- package/.medusa/server/src/workflows/inward-master/steps/fetch-inward-master.js +17 -25
- package/.medusa/server/src/workflows/inward-master/steps/index.js +3 -1
- package/.medusa/server/src/workflows/inward-master/steps/notify-inward-skipped.js +38 -0
- package/.medusa/server/src/workflows/inward-master/steps/update-order-item-from-inward.js +259 -0
- package/.medusa/server/src/workflows/inward-master/workflows/create-inward.js +89 -75
- package/.medusa/server/src/workflows/inward-master/workflows/delete-inward.js +6 -9
- package/.medusa/server/src/workflows/inward-master/workflows/update-instock.js +2 -1
- package/.medusa/server/src/workflows/inward-master/workflows/update-inward.js +49 -7
- package/.medusa/server/src/workflows/item-master/index.js +11 -0
- package/.medusa/server/src/workflows/item-master/steps/create-or-update-item-master.js +50 -0
- package/.medusa/server/src/workflows/item-master/steps/fetch-item-master.js +29 -0
- package/.medusa/server/src/workflows/jewel-trans-master/index.js +18 -0
- package/.medusa/server/src/workflows/jewel-trans-master/steps/create-or-update-jewel-trans-master.js +370 -0
- package/.medusa/server/src/workflows/jewel-trans-master/steps/index.js +18 -0
- package/.medusa/server/src/workflows/labour-chart-master/index.js +11 -0
- package/.medusa/server/src/workflows/labour-chart-master/steps/create-or-update-labour-chart-master.js +38 -0
- package/.medusa/server/src/workflows/labour-chart-master/steps/fetch-labour-chart.js +31 -0
- package/.medusa/server/src/workflows/material-purchase-master/index.js +24 -0
- package/.medusa/server/src/workflows/material-purchase-master/steps/create-material-purchase-master.js +119 -0
- package/.medusa/server/src/workflows/material-purchase-master/steps/delete-material-purchase-master.js +102 -0
- package/.medusa/server/src/workflows/material-purchase-master/steps/fetch-material-purchase-master.js +60 -0
- package/.medusa/server/src/workflows/material-purchase-master/steps/update-material-purchase-master.js +149 -0
- package/.medusa/server/src/workflows/order-master/index.js +3 -0
- package/.medusa/server/src/workflows/order-master/order-master-webhook.js +24 -0
- package/.medusa/server/src/workflows/order-master/steps/create-or-update-order-master.js +275 -0
- package/.medusa/server/src/workflows/order-master/steps/delete-order-master-by-erp-ids.js +61 -0
- package/.medusa/server/src/workflows/order-master/steps/process-order-master-from-webhook.js +1038 -0
- package/.medusa/server/src/workflows/order-proceed-master/index.js +6 -0
- package/.medusa/server/src/workflows/order-proceed-master/order-proceed-master-webhook.js +26 -0
- package/.medusa/server/src/workflows/order-proceed-master/steps/create-or-update-order-proceed-master.js +186 -0
- package/.medusa/server/src/workflows/order-proceed-master/steps/delete-order-proceed-master-by-erp-ids.js +28 -0
- package/.medusa/server/src/workflows/orders/steps/create-sale-for-order-step.js +218 -0
- package/.medusa/server/src/workflows/orders/steps/find-nearest-pincodes-step.js +336 -0
- package/.medusa/server/src/workflows/orders/steps/get-today-gold-rate-step.js +83 -0
- package/.medusa/server/src/workflows/orders/steps/index.js +16 -1
- package/.medusa/server/src/workflows/orders/steps/revert-to-wallet-step.js +165 -0
- package/.medusa/server/src/workflows/orders/steps/sync-advance-payment-to-erp-step.js +191 -0
- package/.medusa/server/src/workflows/orders/steps/sync-buyback-to-erp-step.js +99 -0
- package/.medusa/server/src/workflows/orders/steps/sync-cancel-to-erp-step.js +120 -0
- package/.medusa/server/src/workflows/orders/steps/sync-exchange-to-erp-step.js +101 -0
- package/.medusa/server/src/workflows/orders/steps/sync-old-gold-to-erp-step.js +161 -0
- package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +756 -20
- package/.medusa/server/src/workflows/orders/steps/sync-sale-return-to-erp-step.js +277 -0
- package/.medusa/server/src/workflows/orders/steps/update-old-gold-sync-status-step.js +64 -0
- package/.medusa/server/src/workflows/orders/utils/apply-order-item-price-change.js +79 -0
- package/.medusa/server/src/workflows/orders/utils/order-helper.js +182 -37
- package/.medusa/server/src/workflows/orders/utils/order-request-helper.js +235 -0
- package/.medusa/server/src/workflows/orders/workflows/create-sale-for-order.js +10 -0
- package/.medusa/server/src/workflows/orders/workflows/get-today-gold-rate.js +10 -0
- package/.medusa/server/src/workflows/orders/workflows/index.js +4 -1
- package/.medusa/server/src/workflows/orders/workflows/sync-advanve-payment-to-erp.js +21 -0
- package/.medusa/server/src/workflows/orders/workflows/sync-old-gold-to-erp.js +24 -0
- package/.medusa/server/src/workflows/orders/workflows/sync-order-to-erp.js +54 -5
- package/.medusa/server/src/workflows/orders/workflows/sync-sale-return-to-erp.js +11 -0
- package/.medusa/server/src/workflows/party-master/steps/create-customer-erp.js +66 -33
- package/.medusa/server/src/workflows/party-master/steps/create-user-erp.js +115 -0
- package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +2 -1
- package/.medusa/server/src/workflows/party-master/steps/index.js +2 -1
- package/.medusa/server/src/workflows/party-master/workflows/create-or-update-party-master.js +2 -2
- package/.medusa/server/src/workflows/party-master/workflows/create-user-erp.js +11 -0
- package/.medusa/server/src/workflows/party-master/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-deletion.js +16 -249
- package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +103 -22
- package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +49 -18
- package/.medusa/server/src/workflows/party-style-master/workflows/delete-party-style-master.js +4 -15
- package/.medusa/server/src/workflows/payment-book-master/index.js +11 -0
- package/.medusa/server/src/workflows/payment-book-master/steps/create-or-update-payment-book-master.js +37 -0
- package/.medusa/server/src/workflows/payment-book-master/steps/fetch-payment-book.js +64 -0
- package/.medusa/server/src/workflows/rate-chart-master/index.js +11 -0
- package/.medusa/server/src/workflows/rate-chart-master/steps/create-or-update-rate-chart-master.js +25 -0
- package/.medusa/server/src/workflows/rate-chart-master/steps/fetch-rate-chart.js +31 -0
- package/.medusa/server/src/workflows/receive-voucher-master/index.js +24 -0
- package/.medusa/server/src/workflows/receive-voucher-master/steps/create-receive-voucher-master.js +125 -0
- package/.medusa/server/src/workflows/receive-voucher-master/steps/delete-receive-voucher-master.js +45 -0
- package/.medusa/server/src/workflows/receive-voucher-master/steps/fetch-receive-voucher-master.js +22 -0
- package/.medusa/server/src/workflows/receive-voucher-master/steps/update-receive-voucher-master.js +44 -0
- package/.medusa/server/src/workflows/report-master/index.js +11 -0
- package/.medusa/server/src/workflows/report-master/steps/create-or-update-report-master.js +53 -0
- package/.medusa/server/src/workflows/report-master/steps/fetch-report.js +71 -0
- package/.medusa/server/src/workflows/sale-master/index.js +35 -0
- package/.medusa/server/src/workflows/sale-master/steps/create-sale-master.js +72 -0
- package/.medusa/server/src/workflows/sale-master/steps/delete-sale-master.js +59 -0
- package/.medusa/server/src/workflows/sale-master/steps/sync-extended-order-from-sale.js +40 -0
- package/.medusa/server/src/workflows/sale-master/steps/update-sale-master.js +95 -0
- package/.medusa/server/src/workflows/sale-return-master/index.js +6 -0
- package/.medusa/server/src/workflows/sale-return-master/sale-return-master-webhook.js +28 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/create-or-update-sale-return-master.js +109 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/create-sale-return-master.js +45 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master-by-erp-ids.js +36 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master.js +36 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/process-sale-return-from-webhook.js +234 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/update-sale-return-master.js +53 -0
- package/.medusa/server/src/workflows/sale-return-policy-master/index.js +11 -0
- package/.medusa/server/src/workflows/sale-return-policy-master/steps/create-or-update-sale-return-policy-master.js +91 -0
- package/.medusa/server/src/workflows/sale-return-policy-master/steps/fetch-sale-return-policy.js +31 -0
- package/.medusa/server/src/workflows/shipping-info-master/workflows/create-or-update-shipping-info.js +59 -0
- package/.medusa/server/src/workflows/shipping-info-master/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master.js +116 -10
- package/.medusa/server/src/workflows/style-master/workflows/delete-style-master.js +9 -1
- package/.medusa/server/src/workflows/update-extended-product-from-product/index.js +6 -16
- package/.medusa/server/src/workflows/update-extended-variant-from-variant/workflows/update-extended-variant-status-from-variant.js +5 -17
- package/package.json +18 -33
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateOrderItemFromInwardStep = exports.updateOrderItemFromInwardStepId = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const apply_order_item_price_change_1 = require("../../orders/utils/apply-order-item-price-change");
|
|
7
|
+
exports.updateOrderItemFromInwardStepId = "update-order-item-from-inward-step";
|
|
8
|
+
exports.updateOrderItemFromInwardStep = (0, workflows_sdk_1.createStep)(exports.updateOrderItemFromInwardStepId, async (inwards, { container }) => {
|
|
9
|
+
const logger = container.resolve("logger");
|
|
10
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
11
|
+
const orderService = container.resolve(utils_1.Modules.ORDER);
|
|
12
|
+
logger.info(`[InwardPriceUpdate] Processing ${inwards.length} inward(s)...`);
|
|
13
|
+
for (const inward of inwards) {
|
|
14
|
+
try {
|
|
15
|
+
// Query 1: order_master → get Medusa order ID + verify MTO
|
|
16
|
+
const { data: orderMasters } = await query.graph({
|
|
17
|
+
entity: "order_master",
|
|
18
|
+
fields: [
|
|
19
|
+
"id",
|
|
20
|
+
"order.*",
|
|
21
|
+
"order.metadata",
|
|
22
|
+
"order.extended_order.sale_external_id",
|
|
23
|
+
],
|
|
24
|
+
filters: { erp_order_id: inward.erp_order_id },
|
|
25
|
+
});
|
|
26
|
+
if (!orderMasters.length) {
|
|
27
|
+
logger.warn(`[InwardPriceUpdate] No order_master for erp_order_id=${inward.erp_order_id}`);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
const linkedOrder = orderMasters[0]?.order;
|
|
31
|
+
const medusaOrderId = linkedOrder?.id;
|
|
32
|
+
if (!medusaOrderId) {
|
|
33
|
+
logger.warn(`[InwardPriceUpdate] No linked Medusa order for erp_order_id=${inward.erp_order_id}`);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (linkedOrder?.metadata?.cart_order_type !== "make_to_order") {
|
|
37
|
+
logger.info(`[InwardPriceUpdate] Skip non-MTO order=${medusaOrderId}`);
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
// Once an ERP sale exists for the order, the price is billed and locked
|
|
41
|
+
// — do NOT change it from inward updates. sale_external_id is set on the
|
|
42
|
+
// extended_order at sale creation (create-sale-for-order-step).
|
|
43
|
+
const extOrder = linkedOrder?.extended_order;
|
|
44
|
+
const saleExternalId = (Array.isArray(extOrder) ? extOrder[0] : extOrder)?.sale_external_id;
|
|
45
|
+
if (saleExternalId) {
|
|
46
|
+
logger.info(`[InwardPriceUpdate] Skip order=${medusaOrderId} — sale already created (sale_external_id=${saleExternalId})`);
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
// Query 2: order → items for SKU matching
|
|
50
|
+
const { data: orders } = await query.graph({
|
|
51
|
+
entity: "order",
|
|
52
|
+
fields: [
|
|
53
|
+
"id",
|
|
54
|
+
"metadata",
|
|
55
|
+
"items.*",
|
|
56
|
+
"items.variant.extended_variant.gross_weight",
|
|
57
|
+
"items.variant.extended_variant.net_weight",
|
|
58
|
+
],
|
|
59
|
+
filters: { id: medusaOrderId },
|
|
60
|
+
});
|
|
61
|
+
const order = orders[0];
|
|
62
|
+
if (!order)
|
|
63
|
+
continue;
|
|
64
|
+
const matchingItem = order.items?.find((item) => item.variant_sku === inward.inward_sku_no);
|
|
65
|
+
if (!matchingItem) {
|
|
66
|
+
logger.warn(`[InwardPriceUpdate] No item sku=${inward.inward_sku_no} in order=${medusaOrderId}`);
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (matchingItem.metadata?.is_price_fixed === true) {
|
|
70
|
+
logger.info(`[InwardPriceUpdate] Skip fixed-price item=${matchingItem.id}`);
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
// Query 3: inward_master → detail lines + extra charges for ERP-computed price
|
|
74
|
+
const { data: inwardMasters } = await query.graph({
|
|
75
|
+
entity: "inward_master",
|
|
76
|
+
fields: [
|
|
77
|
+
"id",
|
|
78
|
+
"jewel_id",
|
|
79
|
+
"gross_weight",
|
|
80
|
+
"net_weight",
|
|
81
|
+
"inward_details.*",
|
|
82
|
+
"inward_extra_charges.*",
|
|
83
|
+
],
|
|
84
|
+
filters: { jewel_id: inward.jewel_id },
|
|
85
|
+
});
|
|
86
|
+
const inwardMaster = inwardMasters[0];
|
|
87
|
+
if (!inwardMaster) {
|
|
88
|
+
logger.warn(`[InwardPriceUpdate] No inward_master for jewel_id=${inward.jewel_id}`);
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
// A jewel_id identifies ONE physical piece, but repeated/concurrent
|
|
92
|
+
// inward webhooks can leave duplicate inward_master rows and/or stacked
|
|
93
|
+
// detail lines for the same jewel — which would make the summed price
|
|
94
|
+
// multiply (x2, x3…). Collapse to the DISTINCT ERP lines across ALL
|
|
95
|
+
// masters for this jewel before summing: dedupe details by
|
|
96
|
+
// jewel_detail_id and charges by inward_extra_charges_id, falling back to
|
|
97
|
+
// the row id when the ERP id is missing so genuinely distinct lines are
|
|
98
|
+
// never dropped.
|
|
99
|
+
const dedupeBy = (rows, keyField) => {
|
|
100
|
+
const seen = new Map();
|
|
101
|
+
for (const row of rows) {
|
|
102
|
+
const erpId = row?.[keyField];
|
|
103
|
+
const key = erpId != null && erpId !== 0
|
|
104
|
+
? `${keyField}:${erpId}`
|
|
105
|
+
: `row:${row?.id}`;
|
|
106
|
+
if (!seen.has(key))
|
|
107
|
+
seen.set(key, row);
|
|
108
|
+
}
|
|
109
|
+
return [...seen.values()];
|
|
110
|
+
};
|
|
111
|
+
const allDetails = inwardMasters.flatMap((m) => m.inward_details ?? []);
|
|
112
|
+
const allExtraCharges = inwardMasters.flatMap((m) => m.inward_extra_charges ?? []);
|
|
113
|
+
// Sum ERP-computed amounts across all DISTINCT detail lines:
|
|
114
|
+
// final_amt (if set) or amount, plus cpf, hand, set, loss charges
|
|
115
|
+
const detailTotal = dedupeBy(allDetails, "jewel_detail_id").reduce((sum, d) => {
|
|
116
|
+
const lineAmt = Number(d.final_amt ?? d.amount ?? 0);
|
|
117
|
+
return (sum +
|
|
118
|
+
lineAmt +
|
|
119
|
+
Number(d.cpf_amt ?? 0) +
|
|
120
|
+
Number(d.hand_amount ?? 0) +
|
|
121
|
+
Number(d.set_amount ?? 0) +
|
|
122
|
+
Number(d.loss_amt ?? 0));
|
|
123
|
+
}, 0);
|
|
124
|
+
const extraTotal = dedupeBy(allExtraCharges, "inward_extra_charges_id").reduce((sum, ec) => sum + Number(ec.amount ?? 0), 0);
|
|
125
|
+
const newUnitPrice = Math.round((detailTotal + extraTotal) * 100) / 100;
|
|
126
|
+
const oldUnitPrice = Number(matchingItem.unit_price || 0);
|
|
127
|
+
// Detect every order-item field driven by the inward, so an inward
|
|
128
|
+
// UPDATE re-syncs them (not just price): unit_price, variant_barcode
|
|
129
|
+
// (jewel_code), metadata.jewel_id, and the actual physical-piece
|
|
130
|
+
// weights (gross/net) — which differ from the catalog/style weight.
|
|
131
|
+
const md = matchingItem.metadata || {};
|
|
132
|
+
const oldBarcode = matchingItem.variant_barcode ?? null;
|
|
133
|
+
const newBarcode = inward.jewel_code ?? null;
|
|
134
|
+
const oldJewelId = md.jewel_id ?? null;
|
|
135
|
+
const newJewelId = inward.jewel_id ?? null;
|
|
136
|
+
// Old weight = previously-synced metadata weight, falling back to the
|
|
137
|
+
// catalog/style variant weight (what was shown before any inward sync)
|
|
138
|
+
// so the first sync's diff reads e.g. 1.697→3.416 instead of —→3.416.
|
|
139
|
+
const evWeight = matchingItem.variant?.extended_variant || {};
|
|
140
|
+
const oldGross = md.gross_weight ?? evWeight.gross_weight ?? null;
|
|
141
|
+
const newGross = inwardMaster.gross_weight ?? null;
|
|
142
|
+
const oldNet = md.net_weight ?? evWeight.net_weight ?? null;
|
|
143
|
+
const newNet = inwardMaster.net_weight ?? null;
|
|
144
|
+
const priceChanged = newUnitPrice !== oldUnitPrice;
|
|
145
|
+
const barcodeChanged = newBarcode != null && newBarcode !== oldBarcode;
|
|
146
|
+
const jewelIdChanged = newJewelId != null && oldJewelId !== newJewelId;
|
|
147
|
+
const grossChanged = newGross != null && Number(oldGross) !== Number(newGross);
|
|
148
|
+
const netChanged = newNet != null && Number(oldNet) !== Number(newNet);
|
|
149
|
+
if (!priceChanged &&
|
|
150
|
+
!barcodeChanged &&
|
|
151
|
+
!jewelIdChanged &&
|
|
152
|
+
!grossChanged &&
|
|
153
|
+
!netChanged) {
|
|
154
|
+
logger.info(`[InwardPriceUpdate] No change item=${matchingItem.id} price=${oldUnitPrice}`);
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
// Human summary + structured old→new diff (used by history below).
|
|
158
|
+
const changeSummary = [
|
|
159
|
+
priceChanged ? `price ${oldUnitPrice}→${newUnitPrice}` : null,
|
|
160
|
+
barcodeChanged ? `barcode ${oldBarcode ?? "—"}→${newBarcode}` : null,
|
|
161
|
+
jewelIdChanged ? `jewel_id ${oldJewelId ?? "—"}→${newJewelId}` : null,
|
|
162
|
+
grossChanged ? `gross_wt ${oldGross ?? "—"}→${newGross}` : null,
|
|
163
|
+
netChanged ? `net_wt ${oldNet ?? "—"}→${newNet}` : null,
|
|
164
|
+
]
|
|
165
|
+
.filter(Boolean)
|
|
166
|
+
.join(", ");
|
|
167
|
+
const changeDetails = {
|
|
168
|
+
type: "inward_order_item_update",
|
|
169
|
+
item_id: matchingItem.id,
|
|
170
|
+
sku: inward.inward_sku_no,
|
|
171
|
+
jewel_id: newJewelId,
|
|
172
|
+
...(priceChanged
|
|
173
|
+
? { old_price: oldUnitPrice, new_price: newUnitPrice }
|
|
174
|
+
: {}),
|
|
175
|
+
...(barcodeChanged
|
|
176
|
+
? { old_barcode: oldBarcode, new_barcode: newBarcode }
|
|
177
|
+
: {}),
|
|
178
|
+
...(jewelIdChanged
|
|
179
|
+
? { old_jewel_id: oldJewelId, new_jewel_id: newJewelId }
|
|
180
|
+
: {}),
|
|
181
|
+
...(grossChanged
|
|
182
|
+
? { old_gross_weight: oldGross, new_gross_weight: newGross }
|
|
183
|
+
: {}),
|
|
184
|
+
...(netChanged
|
|
185
|
+
? { old_net_weight: oldNet, new_net_weight: newNet }
|
|
186
|
+
: {}),
|
|
187
|
+
};
|
|
188
|
+
// Non-price fields (barcode, metadata weights/jewel_id) live on the
|
|
189
|
+
// line item — write them directly. The PRICE is applied separately via
|
|
190
|
+
// the confirmed order-change flow below (which versions the order).
|
|
191
|
+
const lineItemData = {};
|
|
192
|
+
if (barcodeChanged)
|
|
193
|
+
lineItemData.variant_barcode = newBarcode;
|
|
194
|
+
if (jewelIdChanged || grossChanged || netChanged) {
|
|
195
|
+
lineItemData.metadata = {
|
|
196
|
+
...md,
|
|
197
|
+
...(jewelIdChanged ? { jewel_id: newJewelId } : {}),
|
|
198
|
+
...(grossChanged ? { gross_weight: newGross } : {}),
|
|
199
|
+
...(netChanged ? { net_weight: newNet } : {}),
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
if (Object.keys(lineItemData).length) {
|
|
203
|
+
await orderService.updateOrderLineItems([
|
|
204
|
+
{ selector: { id: matchingItem.id }, data: lineItemData },
|
|
205
|
+
]);
|
|
206
|
+
}
|
|
207
|
+
if (priceChanged) {
|
|
208
|
+
// Apply the price as a CONFIRMED order change: bumps the order
|
|
209
|
+
// version, upserts the new-version order_item (so the displayed price
|
|
210
|
+
// + totals + summary all update), and records history with the full
|
|
211
|
+
// inward diff in metadata. Non-fatal.
|
|
212
|
+
try {
|
|
213
|
+
await (0, apply_order_item_price_change_1.applyOrderItemPriceChange)(orderService, {
|
|
214
|
+
order_id: medusaOrderId,
|
|
215
|
+
items: [
|
|
216
|
+
{
|
|
217
|
+
item_id: matchingItem.id,
|
|
218
|
+
quantity: Number(matchingItem.quantity || 1),
|
|
219
|
+
new_unit_price: newUnitPrice,
|
|
220
|
+
},
|
|
221
|
+
],
|
|
222
|
+
description: `Inward update: sku=${inward.inward_sku_no} ${changeSummary}`,
|
|
223
|
+
history_metadata: {
|
|
224
|
+
reason: "inward_order_item_update",
|
|
225
|
+
...changeDetails,
|
|
226
|
+
},
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
catch (applyErr) {
|
|
230
|
+
logger.error(`[InwardPriceUpdate] Failed to apply price change item=${matchingItem.id}: ${applyErr?.message}`);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
// Only non-price fields changed — record the diff in history without
|
|
235
|
+
// a version bump (versioning applies to the price ITEM_UPDATE).
|
|
236
|
+
try {
|
|
237
|
+
await orderService.registerOrderChange({
|
|
238
|
+
order_id: medusaOrderId,
|
|
239
|
+
created_by: "system",
|
|
240
|
+
confirmed_by: "system",
|
|
241
|
+
change_type: "update_order",
|
|
242
|
+
description: `Inward update: sku=${inward.inward_sku_no} ${changeSummary}`,
|
|
243
|
+
metadata: { reason: "inward_order_item_update", ...changeDetails },
|
|
244
|
+
details: changeDetails,
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
catch (changeError) {
|
|
248
|
+
logger.error(`[InwardPriceUpdate] Failed to register order change item=${matchingItem.id}: ${changeError?.message}`);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
logger.info(`[InwardPriceUpdate] item=${matchingItem.id} sku=${inward.inward_sku_no} ${changeSummary} (jewel_id=${newJewelId}, detail=${detailTotal}, extra=${extraTotal})`);
|
|
252
|
+
}
|
|
253
|
+
catch (err) {
|
|
254
|
+
logger.error(`[InwardPriceUpdate] ERROR jewel_id=${inward.jewel_id} erp_order_id=${inward.erp_order_id}: ${err?.message}\n${err?.stack}`);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return new workflows_sdk_1.StepResponse(null);
|
|
258
|
+
});
|
|
259
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9yZGVyLWl0ZW0tZnJvbS1pbndhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2lud2FyZC1tYXN0ZXIvc3RlcHMvdXBkYXRlLW9yZGVyLWl0ZW0tZnJvbS1pbndhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUErRTtBQUMvRSxvR0FBNkY7QUFTaEYsUUFBQSwrQkFBK0IsR0FDMUMsb0NBQW9DLENBQUM7QUFFMUIsUUFBQSw2QkFBNkIsR0FBRyxJQUFBLDBCQUFVLEVBQ3JELHVDQUErQixFQUMvQixLQUFLLEVBQUUsT0FBeUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDakUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMzQyxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBUSxDQUFDO0lBRTdELE1BQU0sQ0FBQyxJQUFJLENBQ1Qsa0NBQWtDLE9BQU8sQ0FBQyxNQUFNLGVBQWUsQ0FDaEUsQ0FBQztJQUVGLEtBQUssTUFBTSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDO1lBQ0gsMkRBQTJEO1lBQzNELE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUMvQyxNQUFNLEVBQUUsY0FBYztnQkFDdEIsTUFBTSxFQUFFO29CQUNOLElBQUk7b0JBQ0osU0FBUztvQkFDVCxnQkFBZ0I7b0JBQ2hCLHVDQUF1QztpQkFDeEM7Z0JBQ0QsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVB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
|
|
@@ -4,6 +4,8 @@ exports.createInwardMasterWorkflow = exports.createInwardWorkflowId = void 0;
|
|
|
4
4
|
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
5
|
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
6
6
|
const update_extended_variant_batch_1 = require("../../update-extended-variant-from-variant/steps/update-extended-variant-batch");
|
|
7
|
+
const create_order_fulfillment_for_inward_1 = require("../steps/create-order-fulfillment-for-inward");
|
|
8
|
+
const update_order_item_from_inward_1 = require("../steps/update-order-item-from-inward");
|
|
7
9
|
const helper_1 = require("../helper");
|
|
8
10
|
const steps_1 = require("../steps");
|
|
9
11
|
const fetch_inward_master_1 = require("../steps/fetch-inward-master");
|
|
@@ -39,11 +41,42 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
39
41
|
}).config({
|
|
40
42
|
name: "variants",
|
|
41
43
|
});
|
|
42
|
-
//
|
|
43
|
-
(0, workflows_sdk_1.
|
|
44
|
-
const
|
|
44
|
+
// Get all the location ids from the inward data
|
|
45
|
+
const locationIds = (0, workflows_sdk_1.transform)({ transformedInwardMaster }, ({ transformedInwardMaster }) => {
|
|
46
|
+
const ids = transformedInwardMaster.map((inward) => inward.location_id);
|
|
47
|
+
return [...new Set(ids)]; // Convert to array immediately
|
|
48
|
+
});
|
|
49
|
+
// Get ALL branch stock locations so inventory levels are created for every outlet,
|
|
50
|
+
// not just the ones in the current inward batch. This prevents "Inventory level not found"
|
|
51
|
+
// errors during fulfillment when an order is placed at a location that received no inward.
|
|
52
|
+
const { data: partyMasters } = (0, core_flows_1.useQueryGraphStep)({
|
|
53
|
+
entity: "party_master",
|
|
54
|
+
fields: ["*"],
|
|
55
|
+
filters: {
|
|
56
|
+
is_location: true,
|
|
57
|
+
},
|
|
58
|
+
}).config({
|
|
59
|
+
name: "party-masters",
|
|
60
|
+
});
|
|
61
|
+
// Filter out "Self" (HO) — inventory management only applies to real branch locations
|
|
62
|
+
const filteredStockLocations = (0, workflows_sdk_1.transform)({ partyMasters }, ({ partyMasters }) => partyMasters.filter((location) => location.branch_name !== "Self"));
|
|
63
|
+
// Variant IDs whose inward is at a real branch (not Self/HO).
|
|
64
|
+
// In a mixed batch some inwards may be at Self and others at branches —
|
|
65
|
+
// only the branch ones should have manage_inventory enabled.
|
|
66
|
+
const variantIdsForManageInventory = (0, workflows_sdk_1.transform)({ transformedInwardMaster, extendedVariants, filteredStockLocations }, ({ transformedInwardMaster, extendedVariants, filteredStockLocations, }) => {
|
|
67
|
+
const nonSelfLocationIds = new Set(filteredStockLocations.map((loc) => loc.party_no));
|
|
68
|
+
const nonSelfSkus = new Set(transformedInwardMaster
|
|
69
|
+
.filter((inward) => nonSelfLocationIds.has(inward.location_id))
|
|
70
|
+
.map((inward) => inward.inward_sku_no));
|
|
71
|
+
return extendedVariants
|
|
72
|
+
.filter((ev) => nonSelfSkus.has(ev.party_style_sku_no))
|
|
73
|
+
.map((ev) => ev.mapping_id)
|
|
74
|
+
.filter(Boolean);
|
|
75
|
+
});
|
|
76
|
+
// Only set manage_inventory = true for variants whose inward is at a non-Self branch
|
|
77
|
+
(0, workflows_sdk_1.when)({ variantIdsForManageInventory }, (data) => data.variantIdsForManageInventory.length > 0).then(() => {
|
|
45
78
|
return (0, steps_1.updateVariantManageInventoryStep)({
|
|
46
|
-
variant_ids:
|
|
79
|
+
variant_ids: variantIdsForManageInventory,
|
|
47
80
|
});
|
|
48
81
|
});
|
|
49
82
|
const inventoryItemIds = (0, workflows_sdk_1.transform)({ variants }, ({ variants }) => variants.flatMap((variant) => variant.inventory_items.map((item) => item.inventory_item_id)));
|
|
@@ -63,23 +96,19 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
63
96
|
}).config({
|
|
64
97
|
name: "inventory-levels",
|
|
65
98
|
});
|
|
66
|
-
// Get all the location ids from the inward data
|
|
67
|
-
const locationIds = (0, workflows_sdk_1.transform)({ transformedInwardMaster }, ({ transformedInwardMaster }) => {
|
|
68
|
-
const ids = transformedInwardMaster.map((inward) => inward.location_id);
|
|
69
|
-
return [...new Set(ids)]; // Convert to array immediately
|
|
70
|
-
});
|
|
71
|
-
// Get all the party_master from the inward locations
|
|
72
|
-
const { data: partyMasters } = (0, core_flows_1.useQueryGraphStep)({
|
|
73
|
-
entity: "party_master",
|
|
74
|
-
fields: ["*"],
|
|
75
|
-
filters: {
|
|
76
|
-
party_no: locationIds,
|
|
77
|
-
},
|
|
78
|
-
}).config({
|
|
79
|
-
name: "party-masters",
|
|
80
|
-
});
|
|
81
99
|
// Get all the inwards to create
|
|
82
100
|
const inwardsToCreate = (0, workflows_sdk_1.transform)({ transformedInwardMaster, extendedVariants }, ({ transformedInwardMaster, extendedVariants }) => transformedInwardMaster.filter((item) => extendedVariants.some((variant) => variant?.party_style_sku_no === item?.inward_sku_no)));
|
|
101
|
+
const skippedInwardInfo = (0, workflows_sdk_1.transform)({ transformedInwardMaster, inwardsToCreate }, ({ transformedInwardMaster, inwardsToCreate }) => {
|
|
102
|
+
const createdSkus = new Set(inwardsToCreate.map((i) => i.inward_sku_no));
|
|
103
|
+
const skipped = transformedInwardMaster.filter((i) => !createdSkus.has(i.inward_sku_no));
|
|
104
|
+
return {
|
|
105
|
+
skippedSkus: [...new Set(skipped.map((i) => i.inward_sku_no))],
|
|
106
|
+
inwardNos: skipped.map((i) => i.jewel_code).filter(Boolean),
|
|
107
|
+
};
|
|
108
|
+
});
|
|
109
|
+
(0, workflows_sdk_1.when)({ skippedInwardInfo }, ({ skippedInwardInfo }) => skippedInwardInfo.skippedSkus.length > 0).then(() => {
|
|
110
|
+
(0, steps_1.notifyInwardSkippedStep)(skippedInwardInfo);
|
|
111
|
+
});
|
|
83
112
|
const inwardsToCreateWithVariants = (0, workflows_sdk_1.transform)({ inwardsToCreate, extendedVariants }, helper_1.mapWithVariants);
|
|
84
113
|
// Create main detail
|
|
85
114
|
const createdInwards = (0, steps_1.createInwardStep)(inwardsToCreateWithVariants);
|
|
@@ -130,9 +159,9 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
130
159
|
});
|
|
131
160
|
(0, workflows_sdk_1.when)({
|
|
132
161
|
createdInwards,
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
162
|
+
filteredStockLocations,
|
|
163
|
+
}, (data) => data.createdInwards.length > 0 &&
|
|
164
|
+
data.filteredStockLocations.length > 0).then(() => {
|
|
136
165
|
update_instock_1.updateInStockWorkflow.runAsStep({
|
|
137
166
|
input: {
|
|
138
167
|
inwards: createdInwards,
|
|
@@ -161,29 +190,15 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
161
190
|
// Update extended variants with inward master IDs and branch locations
|
|
162
191
|
const updatedExtendedVariants = (0, workflows_sdk_1.when)({ createdInwards, extendedVariants }, (data) => data.createdInwards.length > 0 && data.extendedVariants.length > 0).then(() => {
|
|
163
192
|
const updateExtendedVariantInput = (0, workflows_sdk_1.transform)({ createdInwards, extendedVariants, branchPartyMasters }, ({ createdInwards, extendedVariants, branchPartyMasters }) => {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
acc[party.party_no] = party.mapping_id;
|
|
169
|
-
return acc;
|
|
170
|
-
}, {});
|
|
171
|
-
console.log("Branch to mapping ID map:", branchToMappingId);
|
|
172
|
-
}
|
|
173
|
-
catch (error) {
|
|
174
|
-
console.error("Error creating branch mapping:", error);
|
|
175
|
-
branchToMappingId = {};
|
|
176
|
-
}
|
|
193
|
+
const branchToMappingId = branchPartyMasters.reduce((acc, party) => {
|
|
194
|
+
acc[party.party_no] = party.mapping_id;
|
|
195
|
+
return acc;
|
|
196
|
+
}, {});
|
|
177
197
|
const updates = extendedVariants
|
|
178
198
|
.map((variant) => {
|
|
179
199
|
const inward = createdInwards.find((inward) => inward.inward_sku_no === variant.party_style_sku_no);
|
|
180
200
|
if (inward?.id) {
|
|
181
|
-
//
|
|
182
|
-
const existingInwardMasters = variant.inward_master.length > 0
|
|
183
|
-
? Array.isArray(variant.inward_master)
|
|
184
|
-
? variant.inward_master.map((item) => item.id)
|
|
185
|
-
: [variant.inward_master.id]
|
|
186
|
-
: [];
|
|
201
|
+
// Existing inward IDs from variant (may include stale refs if inwards were deleted)
|
|
187
202
|
// Update branch locations based on inward status using mapping_id
|
|
188
203
|
const existingOutletIds = variant.outlet_ids || [];
|
|
189
204
|
let updatedOutletIds = [...existingOutletIds];
|
|
@@ -200,18 +215,10 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
200
215
|
updatedOutletIds = updatedOutletIds.filter((outletId) => outletId !== mappingId);
|
|
201
216
|
}
|
|
202
217
|
}
|
|
203
|
-
|
|
218
|
+
return {
|
|
204
219
|
id: variant.id,
|
|
205
220
|
outlet_ids: updatedOutletIds,
|
|
206
221
|
};
|
|
207
|
-
// Only add inward master if not already present
|
|
208
|
-
if (!existingInwardMasters.includes(inward.id)) {
|
|
209
|
-
updateData.inward_master = [
|
|
210
|
-
...existingInwardMasters,
|
|
211
|
-
inward.id,
|
|
212
|
-
];
|
|
213
|
-
}
|
|
214
|
-
return updateData;
|
|
215
222
|
}
|
|
216
223
|
return null;
|
|
217
224
|
})
|
|
@@ -221,38 +228,45 @@ exports.createInwardMasterWorkflow = (0, workflows_sdk_1.createWorkflow)(exports
|
|
|
221
228
|
return (0, update_extended_variant_batch_1.updateExtendedVariantBatchStep)(updateExtendedVariantInput);
|
|
222
229
|
});
|
|
223
230
|
// Sync updated variants to OpenSearch
|
|
224
|
-
const variantIds = (0, workflows_sdk_1.transform)({ extendedVariants }, ({ extendedVariants }) =>
|
|
225
|
-
try {
|
|
226
|
-
const ids = extendedVariants
|
|
227
|
-
.map((variant) => variant.mapping_id)
|
|
228
|
-
.filter(Boolean);
|
|
229
|
-
console.log("Variant IDs for sync:", ids);
|
|
230
|
-
return ids;
|
|
231
|
-
}
|
|
232
|
-
catch (error) {
|
|
233
|
-
console.error("Error extracting variant IDs:", error);
|
|
234
|
-
return [];
|
|
235
|
-
}
|
|
236
|
-
});
|
|
231
|
+
const variantIds = (0, workflows_sdk_1.transform)({ extendedVariants }, ({ extendedVariants }) => extendedVariants.map((variant) => variant.mapping_id).filter(Boolean));
|
|
237
232
|
(0, workflows_sdk_1.when)({ variantIds, updatedExtendedVariants }, ({ variantIds }) => variantIds.length > 0).then(() => {
|
|
238
233
|
(0, core_flows_1.emitEventStep)({
|
|
239
|
-
eventName: "
|
|
234
|
+
eventName: "erp.variant-synced",
|
|
240
235
|
data: {
|
|
241
|
-
|
|
236
|
+
ids: variantIds,
|
|
242
237
|
operation: "update",
|
|
243
|
-
id: variantIds,
|
|
244
238
|
},
|
|
245
|
-
}).config({
|
|
246
|
-
name: "sync-to-os-variant-update",
|
|
247
239
|
});
|
|
248
240
|
});
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
241
|
+
// Finalize the order-item price/weights from the inward FIRST, while the
|
|
242
|
+
// order is still open, so the fulfillment below snapshots the FINAL price
|
|
243
|
+
// into the versioned order_item (and recomputes order totals / amount due).
|
|
244
|
+
// Running fulfillment first would lock in the old estimate price.
|
|
245
|
+
const inwardsForPriceUpdate = (0, workflows_sdk_1.transform)({ transformedInwardMaster }, ({ transformedInwardMaster }) => transformedInwardMaster
|
|
246
|
+
.filter((i) => i.erp_order_id)
|
|
247
|
+
.map((i) => ({
|
|
248
|
+
jewel_id: i.jewel_id,
|
|
249
|
+
jewel_code: i.jewel_code,
|
|
250
|
+
inward_sku_no: i.inward_sku_no,
|
|
251
|
+
erp_order_id: i.erp_order_id,
|
|
252
|
+
})));
|
|
253
|
+
(0, workflows_sdk_1.when)({ inwardsForPriceUpdate }, ({ inwardsForPriceUpdate }) => inwardsForPriceUpdate.length > 0).then(() => {
|
|
254
|
+
(0, update_order_item_from_inward_1.updateOrderItemFromInwardStep)(inwardsForPriceUpdate);
|
|
255
|
+
});
|
|
256
|
+
const inwardsNeedingFulfillment = (0, workflows_sdk_1.transform)({ transformedInwardMaster }, ({ transformedInwardMaster }) => transformedInwardMaster
|
|
257
|
+
.filter((i) => i.erp_order_id)
|
|
258
|
+
.map((i) => ({
|
|
259
|
+
jewel_id: i.jewel_id,
|
|
260
|
+
jewel_code: i.jewel_code,
|
|
261
|
+
inward_sku_no: i.inward_sku_no,
|
|
262
|
+
erp_order_id: i.erp_order_id,
|
|
263
|
+
branch_no: i.branch_no || i.location_id,
|
|
264
|
+
branch_name: i.branch_name,
|
|
265
|
+
})));
|
|
266
|
+
(0, workflows_sdk_1.when)({ inwardsNeedingFulfillment }, ({ inwardsNeedingFulfillment }) => inwardsNeedingFulfillment.length > 0).then(() => {
|
|
267
|
+
(0, create_order_fulfillment_for_inward_1.createOrderFulfillmentForInwardStep)(inwardsNeedingFulfillment);
|
|
255
268
|
});
|
|
269
|
+
const finalResult = (0, workflows_sdk_1.transform)({ createdInwards, extendedVariants }, ({ createdInwards, extendedVariants }) => extendedVariants.length ? createdInwards || [] : []);
|
|
256
270
|
return new workflows_sdk_1.WorkflowResponse(finalResult);
|
|
257
271
|
});
|
|
258
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWlud2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaW53YXJkLW1hc3Rlci93b3JrZmxvd3MvY3JlYXRlLWlud2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMkM7QUFDM0MsNERBQStFO0FBRy9FLGtJQUFnSTtBQUNoSSxzQ0FPbUI7QUFDbkIsb0NBT2tCO0FBQ2xCLHNFQUFpRTtBQUVqRSxxREFBeUQ7QUFFNUMsUUFBQSxzQkFBc0IsR0FBRyxlQUFlLENBQUM7QUFFekMsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDhCQUFjLEVBQ3RELDhCQUFzQixFQUN0QixDQUFDLEtBQWtCLEVBQUUsRUFBRTtJQUNyQixNQUFNLFVBQVUsR0FBRyxJQUFBLHVDQUFpQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLE1BQU0sdUJBQXVCLEdBQUcsSUFBQSx5QkFBUyxFQUN2QyxFQUFFLFVBQVUsRUFBRSxFQUNkLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBQSw4QkFBcUIsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUMxRSxDQUFDO0lBQ0Ysb0RBQW9EO0lBQ3BELE1BQU0sY0FBYyxHQUFHLElBQUEseUJBQVMsRUFDOUIsRUFBRSx1QkFBdUIsRUFBRSxFQUMzQixDQUFDLEVBQUUsdUJBQXVCLEVBQUUsRUFBRSxFQUFFO1FBQzlCLE1BQU0sSUFBSSxHQUFHLHVCQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQywrQkFBK0I7SUFDNUQsQ0FBQyxDQUNGLENBQUM7SUFFRiwwREFBMEQ7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
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWlud2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvaW53YXJkLW1hc3Rlci93b3JrZmxvd3MvY3JlYXRlLWlud2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMkM7QUFDM0MsNERBQStFO0FBRy9FLGtJQUFnSTtBQUNoSSxzR0FBbUc7QUFDbkcsMEZBQXVGO0FBQ3ZGLHNDQU9tQjtBQUNuQixvQ0FRa0I7QUFDbEIsc0VBQWlFO0FBRWpFLHFEQUF5RDtBQUU1QyxRQUFBLHNCQUFzQixHQUFHLGVBQWUsQ0FBQztBQUV6QyxRQUFBLDBCQUEwQixHQUFHLElBQUEsOEJBQWMsRUFDdEQsOEJBQXNCLEVBQ3RCLENBQUMsS0FBa0IsRUFBRSxFQUFFO0lBQ3JCLE1BQU0sVUFBVSxHQUFHLElBQUEsdUNBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsTUFBTSx1QkFBdUIsR0FBRyxJQUFBLHlCQUFTLEVBQ3ZDLEVBQUUsVUFBVSxFQUFFLEVBQ2QsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFBLDhCQUFxQixFQUFDLElBQUksQ0FBQyxDQUFDLENBQzFFLENBQUM7SUFDRixvREFBb0Q7SUFDcEQsTUFBTSxjQUFjLEdBQUcsSUFBQSx5QkFBUyxFQUM5QixFQUFFLHVCQUF1QixFQUFFLEVBQzNCLENBQUMsRUFBRSx1QkFBdUIsRUFBRSxFQUFFLEVBQUU7UUFDOUIsTUFBTSxJQUFJLEdBQUcsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkUsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLCtCQUErQjtJQUM1RCxD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
|