@devx-commerce/plugin-gati 0.0.34-beta.4 → 0.0.34-beta.40
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/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 +36 -1
- 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 +427 -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 +205 -0
- package/.medusa/server/src/jobs/process-variant-option-sync.js +43 -28
- package/.medusa/server/src/jobs/sync-addless-detail.js +60 -0
- package/.medusa/server/src/jobs/sync-book-list-and-applicable-policy.js +89 -0
- package/.medusa/server/src/jobs/sync-item-master.js +20 -0
- package/.medusa/server/src/jobs/sync-labour-chart-master.js +20 -0
- package/.medusa/server/src/jobs/sync-order-erp.js +2 -2
- package/.medusa/server/src/jobs/sync-payment-book-master.js +63 -0
- package/.medusa/server/src/jobs/sync-rate-chart-master.js +20 -0
- package/.medusa/server/src/jobs/sync-report-master.js +46 -0
- package/.medusa/server/src/jobs/sync-sale-return-policy-master.js +29 -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/models/book-list.js +12 -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 +542 -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/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-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/models/extended-variant.js +2 -2
- 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/models/order-master.js +97 -0
- package/.medusa/server/src/modules/order-master/service.js +12 -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/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/models/sale-return-master.js +16 -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/order-item-update.js +11 -0
- package/.medusa/server/src/subscribers/party-master.js +36 -35
- package/.medusa/server/src/subscribers/shipping-info-master.js +3 -3
- package/.medusa/server/src/utils/build-redis-key.js +3 -1
- 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 +55 -0
- package/.medusa/server/src/workflows/book-list/steps/fetch-book-list.js +64 -0
- 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/helpers/product-helper.js +33 -17
- package/.medusa/server/src/workflows/helpers/variant-helper.js +165 -162
- package/.medusa/server/src/workflows/hooks/product-updated.js +6 -11
- package/.medusa/server/src/workflows/index.js +3 -1
- package/.medusa/server/src/workflows/inward-master/helper/index.js +5 -1
- package/.medusa/server/src/workflows/inward-master/workflows/create-inward.js +6 -3
- package/.medusa/server/src/workflows/inward-master/workflows/update-inward.js +6 -2
- 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 +79 -0
- package/.medusa/server/src/workflows/material-purchase-master/steps/delete-material-purchase-master.js +81 -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 +100 -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 +245 -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 +283 -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 +77 -0
- package/.medusa/server/src/workflows/orders/steps/index.js +14 -1
- package/.medusa/server/src/workflows/orders/steps/sync-advance-payment-to-erp-step.js +185 -0
- package/.medusa/server/src/workflows/orders/steps/sync-buyback-to-erp-step.js +98 -0
- package/.medusa/server/src/workflows/orders/steps/sync-cancel-to-erp-step.js +119 -0
- package/.medusa/server/src/workflows/orders/steps/sync-exchange-to-erp-step.js +100 -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 +534 -16
- package/.medusa/server/src/workflows/orders/steps/sync-sale-return-to-erp-step.js +147 -0
- package/.medusa/server/src/workflows/orders/steps/update-old-gold-sync-status-step.js +60 -0
- package/.medusa/server/src/workflows/orders/utils/order-helper.js +143 -36
- package/.medusa/server/src/workflows/orders/utils/order-request-helper.js +222 -0
- package/.medusa/server/src/workflows/orders/workflows/get-today-gold-rate.js +10 -0
- package/.medusa/server/src/workflows/orders/workflows/index.js +3 -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 +23 -0
- package/.medusa/server/src/workflows/orders/workflows/sync-order-to-erp.js +53 -4
- package/.medusa/server/src/workflows/party-master/steps/create-customer-erp.js +44 -33
- package/.medusa/server/src/workflows/party-master/steps/create-user-erp.js +96 -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 +16 -10
- 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/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 +24 -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/update-sale-master.js +95 -0
- package/.medusa/server/src/workflows/sale-return-master/index.js +24 -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.js +36 -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/update-extended-product-from-product/index.js +6 -8
- package/.medusa/server/src/workflows/update-extended-variant-from-variant/workflows/update-extended-variant-status-from-variant.js +9 -3
- package/package.json +14 -32
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findNearestPincodesStep = void 0;
|
|
4
|
+
exports.findNearestPincodes = findNearestPincodes;
|
|
5
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const framework_1 = require("@medusajs/framework");
|
|
8
|
+
/**
|
|
9
|
+
* Core function to find nearest pincodes using Ola Krutrim Maps APIs
|
|
10
|
+
* Can be used directly or through the step
|
|
11
|
+
*/
|
|
12
|
+
async function findNearestPincodes(input, log) {
|
|
13
|
+
const { sourcePincode, targetPincodes, limit = 5 } = input;
|
|
14
|
+
const logInstance = log || console;
|
|
15
|
+
if (!sourcePincode || !targetPincodes || targetPincodes.length === 0) {
|
|
16
|
+
logInstance.warn("[findNearestPincodes] Missing required input parameters");
|
|
17
|
+
return {
|
|
18
|
+
nearestPincodes: [],
|
|
19
|
+
sourcePincode: sourcePincode || "",
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const apiKey = process.env.OLAKRUTRIM_MAPS_API_KEY;
|
|
23
|
+
const baseUrl = process.env.OLAKRUTRIM_MAPS_BASE_URL || "https://api.olamaps.io";
|
|
24
|
+
// Allow custom endpoint paths via environment variables
|
|
25
|
+
const geocodeEndpoint = "/places/v1/geocode";
|
|
26
|
+
const distanceMatrixEndpoint = "/routing/v1/distanceMatrix";
|
|
27
|
+
if (!apiKey) {
|
|
28
|
+
logInstance.error("[findNearestPincodes] OLAKRUTRIM_MAPS_API_KEY missing");
|
|
29
|
+
throw new Error("Ola Krutrim Maps API key is not configured");
|
|
30
|
+
}
|
|
31
|
+
logInstance.info(`[findNearestPincodes] Finding nearest pincodes for source: ${sourcePincode}, targets: ${targetPincodes.length}`);
|
|
32
|
+
logInstance.info(`[findNearestPincodes] Using Maps API baseUrl: ${baseUrl}`);
|
|
33
|
+
logInstance.info(`[findNearestPincodes] Using geocode endpoint: ${geocodeEndpoint}`);
|
|
34
|
+
// Ola Maps API uses api_key as query parameter, not Bearer token
|
|
35
|
+
// Step 1: Geocode source pincode to get coordinates
|
|
36
|
+
const sourceGeocodeUrl = `${baseUrl}${geocodeEndpoint}?address=${encodeURIComponent(sourcePincode)}&api_key=${encodeURIComponent(apiKey)}`;
|
|
37
|
+
logInstance.info(`[findNearestPincodes] Calling source geocode API: ${sourceGeocodeUrl}`);
|
|
38
|
+
let sourceGeocodeData;
|
|
39
|
+
try {
|
|
40
|
+
const sourceGeocodeResponse = await fetch(sourceGeocodeUrl);
|
|
41
|
+
if (!sourceGeocodeResponse.ok) {
|
|
42
|
+
const errorText = await sourceGeocodeResponse.text().catch(() => "Unknown error");
|
|
43
|
+
logInstance.error(`[findNearestPincodes] Source geocode API returned ${sourceGeocodeResponse.status} ${sourceGeocodeResponse.statusText}`);
|
|
44
|
+
logInstance.error(`[findNearestPincodes] API URL: ${sourceGeocodeUrl}`);
|
|
45
|
+
logInstance.error(`[findNearestPincodes] Response preview: ${errorText.substring(0, 300)}`);
|
|
46
|
+
// Provide helpful error message based on status code
|
|
47
|
+
if (sourceGeocodeResponse.status === 404) {
|
|
48
|
+
const errorMsg = `Maps API endpoint not found (404). ` +
|
|
49
|
+
`Current URL: ${sourceGeocodeUrl}. ` +
|
|
50
|
+
`\nPossible issues:` +
|
|
51
|
+
`\n1. The endpoint path may be incorrect. Try setting OLAKRUTRIM_MAPS_GEOCODE_ENDPOINT environment variable.` +
|
|
52
|
+
`\n2. The baseUrl may be incorrect. Current: ${baseUrl}. Try setting OLAKRUTRIM_MAPS_BASE_URL.` +
|
|
53
|
+
`\n3. The API may require a different endpoint structure. Check Ola Krutrim Maps API documentation.` +
|
|
54
|
+
`\n4. The baseUrl might be pointing to a frontend application instead of the API server.`;
|
|
55
|
+
throw new Error(errorMsg);
|
|
56
|
+
}
|
|
57
|
+
else if (sourceGeocodeResponse.status === 401 || sourceGeocodeResponse.status === 403) {
|
|
58
|
+
throw new Error(`Maps API authentication failed (${sourceGeocodeResponse.status}). ` +
|
|
59
|
+
`Please verify the OLAKRUTRIM_MAPS_API_KEY is valid and has the required permissions.`);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
throw new Error(`Source geocode API error: ${sourceGeocodeResponse.status} ${sourceGeocodeResponse.statusText}. ` +
|
|
63
|
+
`Response: ${errorText.substring(0, 200)}`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Read response text once (can only be read once)
|
|
67
|
+
const responseText = await sourceGeocodeResponse.text().catch(() => "Unable to read response");
|
|
68
|
+
// Check content type before parsing JSON
|
|
69
|
+
const contentType = sourceGeocodeResponse.headers.get("content-type");
|
|
70
|
+
if (!contentType || !contentType.includes("application/json")) {
|
|
71
|
+
throw new Error(`Expected JSON response but received ${contentType}. Response: ${responseText.substring(0, 200)}`);
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
sourceGeocodeData = JSON.parse(responseText);
|
|
75
|
+
logInstance.info(`[findNearestPincodes] Successfully geocoded source pincode ${sourcePincode}`);
|
|
76
|
+
}
|
|
77
|
+
catch (parseError) {
|
|
78
|
+
logInstance.error(`[findNearestPincodes] Failed to parse JSON response for source pincode ${sourcePincode}`);
|
|
79
|
+
throw new Error(`Failed to parse JSON response: ${parseError.message}. ` +
|
|
80
|
+
`Response: ${responseText.substring(0, 200)}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
logInstance.error(`[findNearestPincodes] Error geocoding source pincode ${sourcePincode}:`, error);
|
|
85
|
+
// Re-throw the error with the original message (it already has helpful context)
|
|
86
|
+
throw error;
|
|
87
|
+
}
|
|
88
|
+
// Ola Maps API response structure: { geocodingResults: [...], status: "ok" }
|
|
89
|
+
if (sourceGeocodeData.status !== "ok" ||
|
|
90
|
+
!sourceGeocodeData?.geocodingResults?.length) {
|
|
91
|
+
logInstance.error(`[findNearestPincodes] Failed to geocode source pincode: ${sourcePincode}. Status: ${sourceGeocodeData.status}`);
|
|
92
|
+
throw new Error(`Failed to geocode source pincode: ${sourcePincode}`);
|
|
93
|
+
}
|
|
94
|
+
const sourceLocation = sourceGeocodeData.geocodingResults[0].geometry?.location;
|
|
95
|
+
if (!sourceLocation) {
|
|
96
|
+
throw new Error(`Source location missing for pincode: ${sourcePincode}`);
|
|
97
|
+
}
|
|
98
|
+
const sourceAddress = `${sourceLocation.lat},${sourceLocation.lng}`;
|
|
99
|
+
// Step 2: Geocode all target pincodes
|
|
100
|
+
const targetGeocodePromises = targetPincodes.map(async (pincode) => {
|
|
101
|
+
const geocodeUrl = `${baseUrl}${geocodeEndpoint}?address=${encodeURIComponent(pincode)}&api_key=${encodeURIComponent(apiKey)}`;
|
|
102
|
+
try {
|
|
103
|
+
const response = await fetch(geocodeUrl);
|
|
104
|
+
if (!response.ok) {
|
|
105
|
+
const errorText = await response.text().catch(() => "Unknown error");
|
|
106
|
+
logInstance.warn(`[findNearestPincodes] Target geocode API error for pincode ${pincode}: ${response.status} ${response.statusText}`);
|
|
107
|
+
return null;
|
|
108
|
+
}
|
|
109
|
+
// Read response text once (can only be read once)
|
|
110
|
+
const responseText = await response.text().catch(() => "Unable to read response");
|
|
111
|
+
// Check content type before parsing JSON
|
|
112
|
+
const contentType = response.headers.get("content-type");
|
|
113
|
+
if (!contentType || !contentType.includes("application/json")) {
|
|
114
|
+
logInstance.warn(`[findNearestPincodes] Expected JSON but received ${contentType} for pincode ${pincode}. Response: ${responseText.substring(0, 100)}`);
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
let data;
|
|
118
|
+
try {
|
|
119
|
+
data = JSON.parse(responseText);
|
|
120
|
+
}
|
|
121
|
+
catch (parseError) {
|
|
122
|
+
logInstance.warn(`[findNearestPincodes] Failed to parse JSON for pincode ${pincode}: ${parseError.message}. Response: ${responseText.substring(0, 100)}`);
|
|
123
|
+
return null;
|
|
124
|
+
}
|
|
125
|
+
// Ola Maps API response structure: { geocodingResults: [...], status: "ok" }
|
|
126
|
+
const geoResult = data?.geocodingResults?.[0]?.geometry?.location ||
|
|
127
|
+
data?.geocodes?.[0]?.geometry?.location ||
|
|
128
|
+
data?.results?.[0]?.geometry?.location;
|
|
129
|
+
if ((data.status === "ok" || data.status === "OK") && geoResult) {
|
|
130
|
+
return {
|
|
131
|
+
pincode,
|
|
132
|
+
location: geoResult,
|
|
133
|
+
address: `${geoResult.lat},${geoResult.lng}`,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
logInstance.warn(`[findNearestPincodes] Failed to geocode pincode ${pincode}:`, error?.message || error);
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
const targetLocations = (await Promise.all(targetGeocodePromises)).filter((loc) => loc !== null);
|
|
144
|
+
if (targetLocations.length === 0) {
|
|
145
|
+
logInstance.warn("[findNearestPincodes] No valid target pincodes found after geocoding");
|
|
146
|
+
return {
|
|
147
|
+
nearestPincodes: [],
|
|
148
|
+
sourcePincode,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
// Step 3: Use Distance Matrix API to get distances
|
|
152
|
+
// Ola Maps Distance Matrix API allows multiple origins and destinations
|
|
153
|
+
const BATCH_SIZE = 25;
|
|
154
|
+
const distances = new Map();
|
|
155
|
+
for (let i = 0; i < targetLocations.length; i += BATCH_SIZE) {
|
|
156
|
+
const batch = targetLocations.slice(i, i + BATCH_SIZE);
|
|
157
|
+
// Format: lat,lng|lat,lng (comma-separated coordinates, pipe-separated destinations)
|
|
158
|
+
const destinations = batch.map((loc) => loc.address).join("|");
|
|
159
|
+
// Ola Maps API format: origins=lat,lng&destinations=lat,lng|lat,lng
|
|
160
|
+
const distanceMatrixUrl = `${baseUrl}${distanceMatrixEndpoint}?origins=${encodeURIComponent(sourceAddress)}&destinations=${encodeURIComponent(destinations)}&api_key=${encodeURIComponent(apiKey)}`;
|
|
161
|
+
try {
|
|
162
|
+
const response = await fetch(distanceMatrixUrl, {
|
|
163
|
+
headers: {
|
|
164
|
+
"X-Request-Id": `find-nearest-pincodes-${Date.now()}-${i}`,
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
if (!response.ok) {
|
|
168
|
+
const errorText = await response.text().catch(() => "Unknown error");
|
|
169
|
+
logInstance.error(`[findNearestPincodes] Distance matrix API error for batch ${i}: ${response.status} ${response.statusText}. Response: ${errorText.substring(0, 200)}`);
|
|
170
|
+
continue; // Skip this batch and continue with next
|
|
171
|
+
}
|
|
172
|
+
// Read response text once (can only be read once)
|
|
173
|
+
const responseText = await response.text().catch(() => "Unable to read response");
|
|
174
|
+
// Check content type before parsing JSON
|
|
175
|
+
const contentType = response.headers.get("content-type");
|
|
176
|
+
if (!contentType || !contentType.includes("application/json")) {
|
|
177
|
+
logInstance.error(`[findNearestPincodes] Expected JSON but received ${contentType} for distance matrix batch ${i}. Response: ${responseText.substring(0, 200)}`);
|
|
178
|
+
continue; // Skip this batch and continue with next
|
|
179
|
+
}
|
|
180
|
+
let data;
|
|
181
|
+
try {
|
|
182
|
+
data = JSON.parse(responseText);
|
|
183
|
+
}
|
|
184
|
+
catch (parseError) {
|
|
185
|
+
logInstance.error(`[findNearestPincodes] Failed to parse JSON for distance matrix batch ${i}: ${parseError.message}. Response: ${responseText.substring(0, 200)}`);
|
|
186
|
+
continue; // Skip this batch and continue with next
|
|
187
|
+
}
|
|
188
|
+
// Ola Maps API response format: { rows: [{ elements: [...] }], status: "success" or "ok" }
|
|
189
|
+
const matrixRows = data?.rows || data?.matrix || [];
|
|
190
|
+
const status = (data?.status?.toLowerCase() || data?.status || "").toLowerCase();
|
|
191
|
+
logInstance.info(`[findNearestPincodes] Distance matrix API response status: ${status}, rows count: ${matrixRows.length}`);
|
|
192
|
+
// Log full response structure for first batch to debug
|
|
193
|
+
if (i === 0) {
|
|
194
|
+
logInstance.info(`[findNearestPincodes] Full distance matrix response structure: ${JSON.stringify(data, null, 2).substring(0, 1000)}`);
|
|
195
|
+
}
|
|
196
|
+
// Accept both "success" and "ok" status
|
|
197
|
+
if ((status === "ok" || status === "success") && matrixRows.length > 0 && matrixRows[0]?.elements) {
|
|
198
|
+
logInstance.info(`[findNearestPincodes] Processing ${matrixRows[0].elements.length} distance matrix elements`);
|
|
199
|
+
matrixRows[0].elements.forEach((element, index) => {
|
|
200
|
+
if (index >= batch.length) {
|
|
201
|
+
logInstance.warn(`[findNearestPincodes] Element index ${index} exceeds batch size ${batch.length}`);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const pincode = batch[index]?.pincode;
|
|
205
|
+
const elementStatus = (element.status?.toLowerCase() || element.status || "").toLowerCase();
|
|
206
|
+
// Log full element structure for debugging (first time only)
|
|
207
|
+
if (index === 0) {
|
|
208
|
+
logInstance.info(`[findNearestPincodes] Sample element structure: ${JSON.stringify(element, null, 2).substring(0, 500)}`);
|
|
209
|
+
}
|
|
210
|
+
// Ola Maps API distance structure (similar to Google Maps API format)
|
|
211
|
+
// Standard format: { distance: { value: number (meters), text: string }, duration: {...}, status: string }
|
|
212
|
+
// Following the same pattern as maps-service which uses element.distance.value
|
|
213
|
+
let distanceMeters = null;
|
|
214
|
+
// Log element structure for first element to debug
|
|
215
|
+
if (index === 0) {
|
|
216
|
+
logInstance.info(`[findNearestPincodes] Sample element structure: ${JSON.stringify(element, null, 2).substring(0, 800)}`);
|
|
217
|
+
}
|
|
218
|
+
// Primary check: element.distance.value (standard format like Google Maps API and maps-service)
|
|
219
|
+
// This is the same pattern used in maps-service/service.ts line 262
|
|
220
|
+
if (element.distance && typeof element.distance === 'object' && element.distance.value !== undefined && element.distance.value !== null) {
|
|
221
|
+
distanceMeters = Number(element.distance.value);
|
|
222
|
+
logInstance.info(`[findNearestPincodes] ✓ Found distance in element.distance.value: ${distanceMeters} meters (same format as maps-service)`);
|
|
223
|
+
}
|
|
224
|
+
// Fallback: Check for alternative Ola Maps API structures
|
|
225
|
+
else if (element.distanceMeters !== undefined && element.distanceMeters !== null) {
|
|
226
|
+
distanceMeters = Number(element.distanceMeters);
|
|
227
|
+
logInstance.info(`[findNearestPincodes] ✓ Found distance in element.distanceMeters: ${distanceMeters} meters`);
|
|
228
|
+
}
|
|
229
|
+
else if (element.distance && typeof element.distance === 'number') {
|
|
230
|
+
distanceMeters = Number(element.distance);
|
|
231
|
+
logInstance.info(`[findNearestPincodes] ✓ Found distance as direct number: ${distanceMeters} meters`);
|
|
232
|
+
}
|
|
233
|
+
else if (element.distance?.meters !== undefined && element.distance?.meters !== null) {
|
|
234
|
+
distanceMeters = Number(element.distance.meters);
|
|
235
|
+
logInstance.info(`[findNearestPincodes] ✓ Found distance in element.distance.meters: ${distanceMeters} meters`);
|
|
236
|
+
}
|
|
237
|
+
// If still null, try recursive extraction from nested structures
|
|
238
|
+
if (distanceMeters === null) {
|
|
239
|
+
const tryExtractDistance = (obj, depth = 0) => {
|
|
240
|
+
if (depth > 3)
|
|
241
|
+
return null; // Prevent infinite recursion
|
|
242
|
+
if (typeof obj === 'number' && obj > 0 && obj < 10000000)
|
|
243
|
+
return obj;
|
|
244
|
+
if (typeof obj !== 'object' || obj === null)
|
|
245
|
+
return null;
|
|
246
|
+
for (const key in obj) {
|
|
247
|
+
const value = obj[key];
|
|
248
|
+
if (key.toLowerCase().includes('distance') || key.toLowerCase().includes('meter') || key.toLowerCase().includes('km')) {
|
|
249
|
+
if (typeof value === 'number' && value > 0)
|
|
250
|
+
return value;
|
|
251
|
+
if (typeof value === 'object' && value !== null) {
|
|
252
|
+
const nested = tryExtractDistance(value, depth + 1);
|
|
253
|
+
if (nested !== null)
|
|
254
|
+
return nested;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
return null;
|
|
259
|
+
};
|
|
260
|
+
const extractedDistance = tryExtractDistance(element);
|
|
261
|
+
if (extractedDistance !== null) {
|
|
262
|
+
distanceMeters = extractedDistance;
|
|
263
|
+
logInstance.info(`[findNearestPincodes] ✓ Extracted distance from nested structure: ${distanceMeters} meters`);
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
// Log all available keys for debugging
|
|
267
|
+
const elementKeys = Object.keys(element || {});
|
|
268
|
+
logInstance.error(`[findNearestPincodes] ✗ Distance not found. Element keys: ${elementKeys.join(", ")}. Full element: ${JSON.stringify(element, null, 2)}`);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
// Accept both "ok" and "success" status for elements, and require distance to be a valid number
|
|
272
|
+
if ((elementStatus === "ok" || elementStatus === "success") && distanceMeters !== null && !isNaN(distanceMeters) && distanceMeters > 0) {
|
|
273
|
+
const distanceKm = distanceMeters / 1000;
|
|
274
|
+
distances.set(pincode, distanceKm);
|
|
275
|
+
logInstance.info(`[findNearestPincodes] ✓ Distance from ${sourcePincode} to ${pincode}: ${distanceKm.toFixed(2)} km (${distanceMeters} meters)`);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
logInstance.warn(`[findNearestPincodes] ✗ Distance matrix element failed for pincode ${pincode}: status=${elementStatus}, distanceMeters=${distanceMeters}, isValid=${distanceMeters !== null && !isNaN(distanceMeters) && distanceMeters > 0}`);
|
|
279
|
+
}
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
else {
|
|
283
|
+
logInstance.error(`[findNearestPincodes] Distance matrix API response invalid. Status: ${status}, Has rows: ${!!matrixRows.length}, Response keys: ${JSON.stringify(Object.keys(data || {}))}`);
|
|
284
|
+
// Log full response for debugging (first 500 chars)
|
|
285
|
+
logInstance.error(`[findNearestPincodes] Full response preview: ${JSON.stringify(data).substring(0, 500)}`);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
catch (error) {
|
|
289
|
+
logInstance.error(`[findNearestPincodes] Error fetching distance matrix batch ${i}:`, error?.message || error);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (distances.size === 0) {
|
|
293
|
+
const errorMsg = `No distances calculated for source pincode ${sourcePincode} and target pincodes: ${targetPincodes.join(", ")}. This may indicate an issue with the distance matrix API response format.`;
|
|
294
|
+
logInstance.error(`[findNearestPincodes] ${errorMsg}`);
|
|
295
|
+
throw new Error(errorMsg);
|
|
296
|
+
}
|
|
297
|
+
// Step 4: Sort by distance and return top N
|
|
298
|
+
const pincodeDistances = Array.from(distances.entries()).map(([pincode, distance]) => ({
|
|
299
|
+
pincode,
|
|
300
|
+
distance,
|
|
301
|
+
}));
|
|
302
|
+
pincodeDistances.sort((a, b) => a.distance - b.distance);
|
|
303
|
+
const nearestPincodes = pincodeDistances.slice(0, limit);
|
|
304
|
+
logInstance.info(`[findNearestPincodes] Found ${nearestPincodes.length} nearest pincodes: ${nearestPincodes.map(p => `${p.pincode} (${p.distance.toFixed(2)}km)`).join(", ")}`);
|
|
305
|
+
// Ensure we always return at least one result if we have any distances
|
|
306
|
+
if (nearestPincodes.length === 0 && distances.size > 0) {
|
|
307
|
+
logInstance.warn("[findNearestPincodes] No pincodes after sorting, but distances exist. Returning first available.");
|
|
308
|
+
const firstDistance = Array.from(distances.entries())[0];
|
|
309
|
+
return {
|
|
310
|
+
nearestPincodes: [{
|
|
311
|
+
pincode: firstDistance[0],
|
|
312
|
+
distance: firstDistance[1],
|
|
313
|
+
}],
|
|
314
|
+
sourcePincode,
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
return {
|
|
318
|
+
nearestPincodes,
|
|
319
|
+
sourcePincode,
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Find nearest pincodes using Ola Krutrim Maps Distance Matrix API
|
|
324
|
+
*/
|
|
325
|
+
exports.findNearestPincodesStep = (0, workflows_sdk_1.createStep)("find-nearest-pincodes-step", async (input, { container }) => {
|
|
326
|
+
const log = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER) || framework_1.logger;
|
|
327
|
+
try {
|
|
328
|
+
const result = await findNearestPincodes(input, log);
|
|
329
|
+
return new workflows_sdk_1.StepResponse(result);
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
log.error(`[findNearestPincodesStep] Error finding nearest pincodes:`, error);
|
|
333
|
+
throw new Error(`Failed to find nearest pincodes: ${error.message || error}`);
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1uZWFyZXN0LXBpbmNvZGVzLXN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy9zdGVwcy9maW5kLW5lYXJlc3QtcGluY29kZXMtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUF3QkEsa0RBOGJDO0FBdGRELHFFQUE2RTtBQUM3RSxxREFBc0U7QUFDdEUsbURBQTZDO0FBa0I3Qzs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsbUJBQW1CLENBQ3ZDLEtBQStCLEVBQy9CLEdBQVM7SUFFVCxNQUFNLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBQzNELE1BQU0sV0FBVyxHQUFHLEdBQUcsSUFBSSxPQUFPLENBQUM7SUFFbkMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3JFLFdBQVcsQ0FBQyxJQUFJLENBQUMseURBQXlELENBQUMsQ0FBQztRQUM1RSxPQUFPO1lBQ0wsZUFBZSxFQUFFLEVBQUU7WUFDbkIsYUFBYSxFQUFFLGFBQWEsSUFBSSxFQUFFO1NBQ25DLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQztJQUNuRCxNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixJQUFJLHdCQUF3QixDQUFDO0lBQ25FLHdEQUF3RDtJQUN4RCxNQUFNLGVBQWUsR0FBSSxvQkFBb0IsQ0FBQztJQUM5QyxNQUFNLHNCQUFzQixHQUFHLDRCQUE0QixDQUFDO0lBRTVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLFdBQVcsQ0FBQyxLQUFLLENBQUMsdURBQXVELENBQUMsQ0FBQztRQUMzRSxNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFJLENBQ2QsOERBQThELGFBQWEsY0FBYyxjQUFjLENBQUMsTUFBTSxFQUFFLENBQ2pILENBQUM7SUFDRixXQUFXLENBQUMsSUFBSSxDQUNkLGlEQUFpRCxPQUFPLEVBQUUsQ0FDM0QsQ0FBQztJQUNGLFdBQVcsQ0FBQyxJQUFJLENBQ2QsaURBQWlELGVBQWUsRUFBRSxDQUNuRSxDQUFDO0lBRUYsaUVBQWlFO0lBQ2pFLG9EQUFvRDtJQUNwRCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsT0FBTyxHQUFHLGVBQWUsWUFBWSxrQkFBa0IsQ0FDakYsYUFBYSxDQUNkLFlBQVksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztJQUUxQyxXQUFXLENBQUMsSUFBSSxDQUNkLHFEQUFxRCxnQkFBZ0IsRUFBRSxDQUN4RSxDQUFDO0lBRUYsSUFBSSxpQkFBc0IsQ0FBQztJQUMzQixJQUFJLENBQUM7UUFDSCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFNUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sU0FBUyxHQUFHLE1BQU0scUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xGLFdBQVcsQ0FBQyxLQUFLLENBQ2YscURBQXFELHFCQUFxQixDQUFDLE1BQU0sSUFBSSxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsQ0FDeEgsQ0FBQztZQUNGLFdBQVcsQ0FBQyxLQUFLLENBQ2Ysa0NBQWtDLGdCQUFnQixFQUFFLENBQ3JELENBQUM7WUFDRixXQUFXLENBQUMsS0FBSyxDQUNmLDJDQUEyQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUN6RSxDQUFDO1lBRUYscURBQXFEO1lBQ3JELElBQUkscUJBQXFCLENBQUMsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUN6QyxNQUFNLFFBQVEsR0FDWixxQ0FBcUM7b0JBQ3JDLGdCQUFnQixnQkFBZ0IsSUFBSTtvQkFDcEMsb0JBQW9CO29CQUNwQiw2R0FBNkc7b0JBQzdHLCtDQUErQyxPQUFPLHlDQUF5QztvQkFDL0Ysb0dBQW9HO29CQUNwRyx5RkFBeUYsQ0FBQztnQkFDNUYsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QixDQUFDO2lCQUFNLElBQUkscUJBQXFCLENBQUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3hGLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUNBQW1DLHFCQUFxQixDQUFDLE1BQU0sS0FBSztvQkFDcEUsc0ZBQXNGLENBQ3ZGLENBQUM7WUFDSixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FDYiw2QkFBNkIscUJBQXFCLENBQUMsTUFBTSxJQUFJLHFCQUFxQixDQUFDLFVBQVUsSUFBSTtvQkFDakcsYUFBYSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUMzQyxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxrREFBa0Q7UUFDbEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUUvRix5Q0FBeUM7UUFDekMsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsV0FBVyxlQUFlLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNySCxDQUFDO1FBRUQsSUFBSSxDQUFDO1lBQ0gsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM3QyxXQUFXLENBQUMsSUFBSSxDQUNkLDhEQUE4RCxhQUFhLEVBQUUsQ0FDOUUsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLFVBQWUsRUFBRSxDQUFDO1lBQ3pCLFdBQVcsQ0FBQyxLQUFLLENBQ2YsMEVBQTBFLGFBQWEsRUFBRSxDQUMxRixDQUFDO1lBQ0YsTUFBTSxJQUFJLEtBQUssQ0FDYixrQ0FBa0MsVUFBVSxDQUFDLE9BQU8sSUFBSTtnQkFDeEQsYUFBYSxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUM5QyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLFdBQVcsQ0FBQyxLQUFLLENBQ2Ysd0RBQXdELGFBQWEsR0FBRyxFQUN4RSxLQUFLLENBQ04sQ0FBQztRQUNGLGdGQUFnRjtRQUNoRixNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7SUFFRCw2RUFBNkU7SUFDN0UsSUFDRSxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssSUFBSTtRQUNqQyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFDNUMsQ0FBQztRQUNELFdBQVcsQ0FBQyxLQUFLLENBQ2YsMkRBQTJELGFBQWEsYUFBYSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FDaEgsQ0FBQztRQUNGLE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUM7SUFDaEYsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUNELE1BQU0sYUFBYSxHQUFHLEdBQUcsY0FBYyxDQUFDLEdBQUcsSUFBSSxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFcEUsc0NBQXNDO0lBQ3RDLE1BQU0scUJBQXFCLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDakUsTUFBTSxVQUFVLEdBQUcsR0FBRyxPQUFPLEdBQUcsZUFBZSxZQUFZLGtCQUFrQixDQUMzRSxPQUFPLENBQ1IsWUFBWSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBRXpDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDckUsV0FBVyxDQUFDLElBQUksQ0FDZCw4REFBOEQsT0FBTyxLQUFLLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUNuSCxDQUFDO2dCQUNGLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELGtEQUFrRDtZQUNsRCxNQUFNLFlBQVksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUVsRix5Q0FBeUM7WUFDekMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxXQUFXLENBQUMsSUFBSSxDQUNkLG9EQUFvRCxXQUFXLGdCQUFnQixPQUFPLGVBQWUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDdEksQ0FBQztnQkFDRixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCxJQUFJLElBQVMsQ0FBQztZQUNkLElBQUksQ0FBQztnQkFDSCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQUMsT0FBTyxVQUFlLEVBQUUsQ0FBQztnQkFDekIsV0FBVyxDQUFDLElBQUksQ0FDZCwwREFBMEQsT0FBTyxLQUFLLFVBQVUsQ0FBQyxPQUFPLGVBQWUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDeEksQ0FBQztnQkFDRixPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCw2RUFBNkU7WUFDN0UsTUFBTSxTQUFTLEdBQ2IsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVE7Z0JBQy9DLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUTtnQkFDdkMsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUM7WUFFekMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQ2hFLE9BQU87b0JBQ0wsT0FBTztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUMsR0FBRyxFQUFFO2lCQUM3QyxDQUFDO1lBQ0osQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7WUFDdEIsV0FBVyxDQUFDLElBQUksQ0FDWixtREFBbUQsT0FBTyxHQUFHLEVBQzdELEtBQUssRUFBRSxPQUFPLElBQUksS0FBSyxDQUN4QixDQUFDO1lBQ0YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUN2RSxDQUFDLEdBQUcsRUFBa0MsRUFBRSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQ3RELENBQUM7SUFFRixJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakMsV0FBVyxDQUFDLElBQUksQ0FDZCxzRUFBc0UsQ0FDdkUsQ0FBQztRQUNGLE9BQU87WUFDTCxlQUFlLEVBQUUsRUFBRTtZQUNuQixhQUFhO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsd0VBQXdFO0lBQ3hFLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN0QixNQUFNLFNBQVMsR0FBd0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUVqRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksVUFBVSxFQUFFLENBQUM7UUFDNUQsTUFBTSxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELHFGQUFxRjtRQUNyRixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRS9ELG9FQUFvRTtRQUNwRSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsT0FBTyxHQUFHLHNCQUFzQixZQUFZLGtCQUFrQixDQUN6RixhQUFhLENBQ2QsaUJBQWlCLGtCQUFrQixDQUNsQyxZQUFZLENBQ2IsWUFBWSxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBRTFDLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLGlCQUFpQixFQUFFO2dCQUM5QyxPQUFPLEVBQUU7b0JBQ1AsY0FBYyxFQUFFLHlCQUF5QixJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFO2lCQUMzRDthQUNGLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLE1BQU0sU0FBUyxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDckUsV0FBVyxDQUFDLEtBQUssQ0FDZiw2REFBNkQsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsZUFBZSxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUN0SixDQUFDO2dCQUNGLFNBQVMsQ0FBQyx5Q0FBeUM7WUFDckQsQ0FBQztZQUVELGtEQUFrRDtZQUNsRCxNQUFNLFlBQVksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUVsRix5Q0FBeUM7WUFDekMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2dCQUM5RCxXQUFXLENBQUMsS0FBSyxDQUNmLG9EQUFvRCxXQUFXLDhCQUE4QixDQUFDLGVBQWUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDOUksQ0FBQztnQkFDRixTQUFTLENBQUMseUNBQXlDO1lBQ3JELENBQUM7WUFFRCxJQUFJLElBQVMsQ0FBQztZQUNkLElBQUksQ0FBQztnQkFDSCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsQyxDQUFDO1lBQUMsT0FBTyxVQUFlLEVBQUUsQ0FBQztnQkFDekIsV0FBVyxDQUFDLEtBQUssQ0FDZix3RUFBd0UsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxPQUFPLGVBQWUsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDaEosQ0FBQztnQkFDRixTQUFTLENBQUMseUNBQXlDO1lBQ3JELENBQUM7WUFFRCwyRkFBMkY7WUFDM0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsTUFBTSxJQUFJLEVBQUUsQ0FBQztZQUNwRCxNQUFNLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUVqRixXQUFXLENBQUMsSUFBSSxDQUNkLDhEQUE4RCxNQUFNLGlCQUFpQixVQUFVLENBQUMsTUFBTSxFQUFFLENBQ3pHLENBQUM7WUFFRix1REFBdUQ7WUFDdkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ1osV0FBVyxDQUFDLElBQUksQ0FDZCxrRUFBa0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FDckgsQ0FBQztZQUNKLENBQUM7WUFFRCx3Q0FBd0M7WUFDeEMsSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLElBQUksTUFBTSxLQUFLLFNBQVMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztnQkFDbEcsV0FBVyxDQUFDLElBQUksQ0FDZCxvQ0FBb0MsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLDJCQUEyQixDQUM3RixDQUFDO2dCQUVGLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEtBQWEsRUFBRSxFQUFFO29CQUM3RCxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7d0JBQzFCLFdBQVcsQ0FBQyxJQUFJLENBQ2QsdUNBQXVDLEtBQUssdUJBQXVCLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FDbEYsQ0FBQzt3QkFDRixPQUFPO29CQUNULENBQUM7b0JBRUQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQztvQkFDdEMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLE9BQU8sQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBRTVGLDZEQUE2RDtvQkFDN0QsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQ2hCLFdBQVcsQ0FBQyxJQUFJLENBQ2QsbURBQW1ELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQ3hHLENBQUM7b0JBQ0osQ0FBQztvQkFFRCxzRUFBc0U7b0JBQ3RFLDJHQUEyRztvQkFDM0csK0VBQStFO29CQUMvRSxJQUFJLGNBQWMsR0FBa0IsSUFBSSxDQUFDO29CQUV6QyxtREFBbUQ7b0JBQ25ELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUNoQixXQUFXLENBQUMsSUFBSSxDQUNkLG1EQUFtRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUN4RyxDQUFDO29CQUNKLENBQUM7b0JBRUQsZ0dBQWdHO29CQUNoRyxvRUFBb0U7b0JBQ3BFLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQzt3QkFDeEksY0FBYyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUNoRCxXQUFXLENBQUMsSUFBSSxDQUNkLHFFQUFxRSxjQUFjLHVDQUF1QyxDQUMzSCxDQUFDO29CQUNKLENBQUM7b0JBQ0QsMERBQTBEO3lCQUNyRCxJQUFJLE9BQU8sQ0FBQyxjQUFjLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxjQUFjLEtBQUssSUFBSSxFQUFFLENBQUM7d0JBQ2pGLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO3dCQUNoRCxXQUFXLENBQUMsSUFBSSxDQUNkLHFFQUFxRSxjQUFjLFNBQVMsQ0FDN0YsQ0FBQztvQkFDSixDQUFDO3lCQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLE9BQU8sQ0FBQyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7d0JBQ3BFLGNBQWMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUMxQyxXQUFXLENBQUMsSUFBSSxDQUNkLDREQUE0RCxjQUFjLFNBQVMsQ0FDcEYsQ0FBQztvQkFDSixDQUFDO3lCQUFNLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxNQUFNLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO3dCQUN2RixjQUFjLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7d0JBQ2pELFdBQVcsQ0FBQyxJQUFJLENBQ2Qsc0VBQXNFLGNBQWMsU0FBUyxDQUM5RixDQUFDO29CQUNKLENBQUM7b0JBRUQsaUVBQWlFO29CQUNqRSxJQUFJLGNBQWMsS0FBSyxJQUFJLEVBQUUsQ0FBQzt3QkFDNUIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQVEsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFpQixFQUFFOzRCQUNoRSxJQUFJLEtBQUssR0FBRyxDQUFDO2dDQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsNkJBQTZCOzRCQUN6RCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxRQUFRO2dDQUFFLE9BQU8sR0FBRyxDQUFDOzRCQUNyRSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxHQUFHLEtBQUssSUFBSTtnQ0FBRSxPQUFPLElBQUksQ0FBQzs0QkFFekQsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQ0FDdEIsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dDQUN2QixJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0NBQ3RILElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssR0FBRyxDQUFDO3dDQUFFLE9BQU8sS0FBSyxDQUFDO29DQUN6RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7d0NBQ2hELE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7d0NBQ3BELElBQUksTUFBTSxLQUFLLElBQUk7NENBQUUsT0FBTyxNQUFNLENBQUM7b0NBQ3JDLENBQUM7Z0NBQ0gsQ0FBQzs0QkFDSCxDQUFDOzRCQUNELE9BQU8sSUFBSSxDQUFDO3dCQUNkLENBQUMsQ0FBQzt3QkFFRixNQUFNLGlCQUFpQixHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUN0RCxJQUFJLGlCQUFpQixLQUFLLElBQUksRUFBRSxDQUFDOzRCQUMvQixjQUFjLEdBQUcsaUJBQWlCLENBQUM7NEJBQ25DLFdBQVcsQ0FBQyxJQUFJLENBQ2QscUVBQXFFLGNBQWMsU0FBUyxDQUM3RixDQUFDO3dCQUNKLENBQUM7NkJBQU0sQ0FBQzs0QkFDTix1Q0FBdUM7NEJBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDOzRCQUMvQyxXQUFXLENBQUMsS0FBSyxDQUNmLDZEQUE2RCxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQ3pJLENBQUM7d0JBQ0osQ0FBQztvQkFDSCxDQUFDO29CQUVELGdHQUFnRztvQkFDaEcsSUFBSSxDQUFDLGFBQWEsS0FBSyxJQUFJLElBQUksYUFBYSxLQUFLLFNBQVMsQ0FBQyxJQUFJLGNBQWMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksY0FBYyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUN2SSxNQUFNLFVBQVUsR0FBRyxjQUFjLEdBQUcsSUFBSSxDQUFDO3dCQUN6QyxTQUFTLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQzt3QkFDbkMsV0FBVyxDQUFDLElBQUksQ0FDZCx5Q0FBeUMsYUFBYSxPQUFPLE9BQU8sS0FBSyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLGNBQWMsVUFBVSxDQUMvSCxDQUFDO29CQUNKLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixXQUFXLENBQUMsSUFBSSxDQUNkLHNFQUFzRSxPQUFPLFlBQVksYUFBYSxvQkFBb0IsY0FBYyxhQUFhLGNBQWMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksY0FBYyxHQUFHLENBQUMsRUFBRSxDQUMvTixDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sV0FBVyxDQUFDLEtBQUssQ0FDZix1RUFBdUUsTUFBTSxlQUFlLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxvQkFBb0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQzdLLENBQUM7Z0JBQ0Ysb0RBQW9EO2dCQUNwRCxXQUFXLENBQUMsS0FBSyxDQUNmLGdEQUFnRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FDekYsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFVLEVBQUUsQ0FBQztZQUNwQixXQUFXLENBQUMsS0FBSyxDQUNmLDhEQUE4RCxDQUFDLEdBQUcsRUFDbEUsS0FBSyxFQUFFLE9BQU8sSUFBSSxLQUFLLENBQ3hCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixNQUFNLFFBQVEsR0FBRyw4Q0FBOEMsYUFBYSx5QkFBeUIsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsNEVBQTRFLENBQUM7UUFDM00sV0FBVyxDQUFDLEtBQUssQ0FBQyx5QkFBeUIsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsTUFBTSxnQkFBZ0IsR0FBc0IsS0FBSyxDQUFDLElBQUksQ0FDcEQsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUNwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLE9BQU87UUFDUCxRQUFRO0tBQ1QsQ0FBQyxDQUFDLENBQUM7SUFFSixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6RCxNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBRXpELFdBQVcsQ0FBQyxJQUFJLENBQ2QsK0JBQStCLGVBQWUsQ0FBQyxNQUFNLHNCQUFzQixlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDOUosQ0FBQztJQUVGLHVFQUF1RTtJQUN2RSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFNBQVMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkQsV0FBVyxDQUFDLElBQUksQ0FBQyxrR0FBa0csQ0FBQyxDQUFDO1FBQ3JILE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsT0FBTztZQUNMLGVBQWUsRUFBRSxDQUFDO29CQUNoQixPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztvQkFDekIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7aUJBQzNCLENBQUM7WUFDRixhQUFhO1NBQ2QsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPO1FBQ0wsZUFBZTtRQUNmLGFBQWE7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ1UsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLDBCQUFVLEVBQy9DLDRCQUE0QixFQUM1QixLQUFLLEVBQ0gsS0FBK0IsRUFDL0IsRUFBRSxTQUFTLEVBQUUsRUFDcUMsRUFBRTtJQUNwRCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxJQUFJLGtCQUFNLENBQUM7SUFFMUUsSUFBSSxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLDRCQUFZLENBQTRCLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxPQUFPLEtBQVUsRUFBRSxDQUFDO1FBQ3BCLEdBQUcsQ0FBQyxLQUFLLENBQ1AsMkRBQTJELEVBQzNELEtBQUssQ0FDTixDQUFDO1FBQ0YsTUFBTSxJQUFJLEtBQUssQ0FDYixvQ0FBb0MsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLEVBQUUsQ0FDN0QsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDLENBQ0YsQ0FBQyJ9
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTodayGoldRateStep = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const framework_1 = require("@medusajs/framework");
|
|
7
|
+
const erp_1 = require("../../../modules/erp");
|
|
8
|
+
const quality_master_1 = require("../../../modules/quality-master");
|
|
9
|
+
const build_redis_key_1 = require("../../../utils/build-redis-key");
|
|
10
|
+
exports.getTodayGoldRateStep = (0, workflows_sdk_1.createStep)("get-today-gold-rate-step", async (_, { container }) => {
|
|
11
|
+
const cacheService = container.resolve(utils_1.Modules.CACHE);
|
|
12
|
+
const erpService = container.resolve(erp_1.ERP_MODULE);
|
|
13
|
+
const qualityMasterService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
|
|
14
|
+
const cacheKey = (0, build_redis_key_1.buildRedisKey)("pos:gold-rate", {});
|
|
15
|
+
const cachedResult = await cacheService.get(cacheKey);
|
|
16
|
+
if (cachedResult) {
|
|
17
|
+
framework_1.logger.info("[POS-GOLD-RATE] : Returning cached result");
|
|
18
|
+
return new workflows_sdk_1.StepResponse(cachedResult);
|
|
19
|
+
}
|
|
20
|
+
framework_1.logger.info("[POS-GOLD-RATE] : Cache miss, fetching from ERP and quality master");
|
|
21
|
+
// Fetch all quality masters for all purities (14, 18, 22) to calculate rates correctly
|
|
22
|
+
let qly14, qly18, qly22;
|
|
23
|
+
try {
|
|
24
|
+
[qly14, qly18, qly22] = await Promise.all([
|
|
25
|
+
qualityMasterService.listQualityMasters({
|
|
26
|
+
qly_code: "14",
|
|
27
|
+
}).then((result) => result?.[0] || null),
|
|
28
|
+
qualityMasterService.listQualityMasters({
|
|
29
|
+
qly_code: "18",
|
|
30
|
+
}).then((result) => result?.[0] || null),
|
|
31
|
+
qualityMasterService.listQualityMasters({
|
|
32
|
+
qly_code: "22",
|
|
33
|
+
}).then((result) => result?.[0] || null),
|
|
34
|
+
]);
|
|
35
|
+
}
|
|
36
|
+
catch (queryError) {
|
|
37
|
+
framework_1.logger.error(`[POS-GOLD-RATE] : Error querying quality masters: ${queryError?.message || JSON.stringify(queryError)}`);
|
|
38
|
+
throw new Error(`Failed to fetch quality masters: ${queryError?.message || "Unknown error"}`);
|
|
39
|
+
}
|
|
40
|
+
if (!qly22?.qly_mfg_clarity ||
|
|
41
|
+
!qly18?.qly_mfg_clarity ||
|
|
42
|
+
!qly14?.qly_mfg_clarity) {
|
|
43
|
+
framework_1.logger.error("[POS-GOLD-RATE] : Quality masters for 14/18/22 karat not found or missing qly_mfg_clarity");
|
|
44
|
+
throw new Error("Quality masters for 14/18/22 karat not found or missing qly_mfg_clarity");
|
|
45
|
+
}
|
|
46
|
+
const goldRateData = (await erpService.getGoldRateData());
|
|
47
|
+
if (!goldRateData?.CurrentGoldRate ||
|
|
48
|
+
goldRateData.CurrentGoldRate.length === 0) {
|
|
49
|
+
framework_1.logger.error("[POS-GOLD-RATE] : No gold rate data available from ERP");
|
|
50
|
+
throw new Error("No gold rate data available from ERP");
|
|
51
|
+
}
|
|
52
|
+
const purity = ["14", "18", "22", "24"];
|
|
53
|
+
const qlyMap = {
|
|
54
|
+
"14": qly14,
|
|
55
|
+
"18": qly18,
|
|
56
|
+
"22": qly22,
|
|
57
|
+
"24": { qly_mfg_clarity: 100 }, // 24K is always 100% purity
|
|
58
|
+
};
|
|
59
|
+
const currentGoldData = goldRateData.CurrentGoldRate?.find((item) => item.RawName === "GOLD");
|
|
60
|
+
const goldRateList = purity
|
|
61
|
+
.map((karat) => {
|
|
62
|
+
const qly = qlyMap[karat];
|
|
63
|
+
if (!qly) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
rate: `${karat}K`,
|
|
68
|
+
amount: ((currentGoldData?.SaleRate || 0) * qly.qly_mfg_clarity) / 100,
|
|
69
|
+
};
|
|
70
|
+
})
|
|
71
|
+
.filter(Boolean);
|
|
72
|
+
const result = { currentGoldRateList: goldRateList };
|
|
73
|
+
await cacheService.set(cacheKey, result, build_redis_key_1.CACHE_VALIDATION_TIMES.GOLD_RATE);
|
|
74
|
+
framework_1.logger.info(`[POS-GOLD-RATE] : Successfully computed and cached gold rates - Current: ${goldRateList.length} rates`);
|
|
75
|
+
return new workflows_sdk_1.StepResponse(result);
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXRvZGF5LWdvbGQtcmF0ZS1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9vcmRlcnMvc3RlcHMvZ2V0LXRvZGF5LWdvbGQtcmF0ZS1zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUM3RSxxREFBK0U7QUFDL0UsbURBQTZDO0FBRTdDLDhDQUFrRDtBQUNsRCxvRUFBd0U7QUFFeEUsb0VBR3dDO0FBb0IzQixRQUFBLG9CQUFvQixHQUFHLElBQUEsMEJBQVUsRUFDNUMsMEJBQTBCLEVBQzFCLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3pCLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RELE1BQU0sVUFBVSxHQUFlLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0JBQVUsQ0FBQyxDQUFDO0lBQzdELE1BQU0sb0JBQW9CLEdBQXlCLFNBQVMsQ0FBQyxPQUFPLENBQ2xFLHNDQUFxQixDQUN0QixDQUFDO0lBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBQSwrQkFBYSxFQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVwRCxNQUFNLFlBQVksR0FBRyxNQUFNLFlBQVksQ0FBQyxHQUFHLENBQW1CLFFBQVEsQ0FBQyxDQUFDO0lBRXhFLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsa0JBQU0sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksNEJBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsa0JBQU0sQ0FBQyxJQUFJLENBQ1Qsb0VBQW9FLENBQ3JFLENBQUM7SUFFRix1RkFBdUY7SUFDdkYsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztJQUV4QixJQUFJLENBQUM7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
|
|
@@ -14,5 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.findNearestPincodesStep = exports.findNearestPincodes = void 0;
|
|
17
18
|
__exportStar(require("./sync-order-to-erp"), exports);
|
|
18
|
-
|
|
19
|
+
__exportStar(require("./sync-advance-payment-to-erp-step"), exports);
|
|
20
|
+
__exportStar(require("./get-today-gold-rate-step"), exports);
|
|
21
|
+
__exportStar(require("./sync-sale-return-to-erp-step"), exports);
|
|
22
|
+
__exportStar(require("./sync-old-gold-to-erp-step"), exports);
|
|
23
|
+
__exportStar(require("./sync-exchange-to-erp-step"), exports);
|
|
24
|
+
__exportStar(require("./sync-cancel-to-erp-step"), exports);
|
|
25
|
+
__exportStar(require("./sync-buyback-to-erp-step"), exports);
|
|
26
|
+
__exportStar(require("./find-nearest-pincodes-step"), exports);
|
|
27
|
+
// Explicit exports for findNearestPincodes
|
|
28
|
+
var find_nearest_pincodes_step_1 = require("./find-nearest-pincodes-step");
|
|
29
|
+
Object.defineProperty(exports, "findNearestPincodes", { enumerable: true, get: function () { return find_nearest_pincodes_step_1.findNearestPincodes; } });
|
|
30
|
+
Object.defineProperty(exports, "findNearestPincodesStep", { enumerable: true, get: function () { return find_nearest_pincodes_step_1.findNearestPincodesStep; } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy9zdGVwcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHNEQUFvQztBQUNwQyxxRUFBbUQ7QUFDbkQsNkRBQTJDO0FBQzNDLGlFQUErQztBQUMvQyw4REFBNEM7QUFDNUMsOERBQTRDO0FBQzVDLDREQUEwQztBQUMxQyw2REFBMkM7QUFDM0MsK0RBQTZDO0FBRTdDLDJDQUEyQztBQUMzQywyRUFNc0M7QUFMcEMsaUlBQUEsbUJBQW1CLE9BQUE7QUFDbkIscUlBQUEsdUJBQXVCLE9BQUEifQ==
|