@devx-commerce/plugin-gati 0.0.34-beta.8 → 0.0.34-beta.81

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.
Files changed (380) hide show
  1. package/.medusa/server/src/admin/index.js +3 -1
  2. package/.medusa/server/src/admin/index.mjs +3 -1
  3. package/.medusa/server/src/api/admin/erp-event/query-config.js +8 -1
  4. package/.medusa/server/src/api/admin/generate-invoice/route.js +158 -0
  5. package/.medusa/server/src/api/admin/masters/utils.js +29 -1
  6. package/.medusa/server/src/api/admin/masters/validators.js +2 -2
  7. package/.medusa/server/src/api/admin/variant-options/recalculate/route.js +446 -0
  8. package/.medusa/server/src/api/admin/variant-options/sync/route.js +21 -5
  9. package/.medusa/server/src/api/erp/webhook/config.js +73 -5
  10. package/.medusa/server/src/api/erp/webhook/route.js +10 -137
  11. package/.medusa/server/src/api/erp/webhook/utils.js +8 -1
  12. package/.medusa/server/src/api/pos/customer-ledger/middleware.js +13 -0
  13. package/.medusa/server/src/api/pos/customer-ledger/route.js +50 -0
  14. package/.medusa/server/src/api/pos/generate-invoice/route.js +164 -0
  15. package/.medusa/server/src/api/pos/gold/calculate/route.js +104 -0
  16. package/.medusa/server/src/api/pos/gold/item-master-purity.js +46 -0
  17. package/.medusa/server/src/api/pos/gold/middleware.js +18 -0
  18. package/.medusa/server/src/api/pos/gold/route.js +83 -0
  19. package/.medusa/server/src/api/pos/gold-rate/route.js +37 -24
  20. package/.medusa/server/src/api/pos/middleware.js +13 -1
  21. package/.medusa/server/src/api/pos/old-gold-item/middleware.js +10 -0
  22. package/.medusa/server/src/api/pos/old-gold-item/route.js +52 -0
  23. package/.medusa/server/src/api/pos/platinumdata/middleware.js +13 -0
  24. package/.medusa/server/src/api/pos/platinumdata/route.js +41 -0
  25. package/.medusa/server/src/api/pos/silverdata/middleware.js +13 -0
  26. package/.medusa/server/src/api/pos/silverdata/route.js +41 -0
  27. package/.medusa/server/src/api/pos/wallet-balance/middleware.js +13 -0
  28. package/.medusa/server/src/api/pos/wallet-balance/route.js +68 -0
  29. package/.medusa/server/src/api/store/custom-price/validators.js +2 -2
  30. package/.medusa/server/src/api/store/customer-ledger/middleware.js +13 -0
  31. package/.medusa/server/src/api/store/customer-ledger/route.js +49 -0
  32. package/.medusa/server/src/api/store/gold-rate/validators.js +2 -2
  33. package/.medusa/server/src/api/store/middleware.js +5 -1
  34. package/.medusa/server/src/api/store/wallet-balance/middleware.js +13 -0
  35. package/.medusa/server/src/api/store/wallet-balance/route.js +67 -0
  36. package/.medusa/server/src/jobs/process-erp-events.js +128 -0
  37. package/.medusa/server/src/jobs/process-variant-option-sync.js +46 -29
  38. package/.medusa/server/src/jobs/sync-addless-detail.js +68 -0
  39. package/.medusa/server/src/jobs/sync-book-list-and-applicable-policy.js +97 -0
  40. package/.medusa/server/src/jobs/sync-customer-advance-payment-erp.js +105 -0
  41. package/.medusa/server/src/jobs/sync-customer-erp.js +128 -0
  42. package/.medusa/server/src/jobs/sync-item-master.js +29 -0
  43. package/.medusa/server/src/jobs/sync-labour-chart-master.js +29 -0
  44. package/.medusa/server/src/jobs/sync-order-erp.js +46 -20
  45. package/.medusa/server/src/jobs/sync-order-request-erp.js +64 -0
  46. package/.medusa/server/src/jobs/sync-payment-book-master.js +78 -0
  47. package/.medusa/server/src/jobs/sync-rate-chart-master.js +29 -0
  48. package/.medusa/server/src/jobs/sync-report-master.js +54 -0
  49. package/.medusa/server/src/jobs/sync-sale-return-policy-master.js +38 -0
  50. package/.medusa/server/src/jobs/sync-urd-purchase-erp.js +84 -0
  51. package/.medusa/server/src/lib/api-response.js +2 -1
  52. package/.medusa/server/src/links/jewel-trans-master.js +13 -0
  53. package/.medusa/server/src/links/order-master.js +13 -0
  54. package/.medusa/server/src/links/sale-master.js +13 -0
  55. package/.medusa/server/src/modules/addless-detail/index.js +13 -0
  56. package/.medusa/server/src/modules/addless-detail/migrations/Migration20260212101102.js +15 -0
  57. package/.medusa/server/src/modules/addless-detail/migrations/Migration20260213000000.js +47 -0
  58. package/.medusa/server/src/modules/addless-detail/migrations/Migration20260226053037.js +15 -0
  59. package/.medusa/server/src/modules/addless-detail/models/addless-master.js +17 -0
  60. package/.medusa/server/src/modules/addless-detail/service.js +10 -0
  61. package/.medusa/server/src/modules/applicable-sale-return-policy/index.js +13 -0
  62. package/.medusa/server/src/modules/applicable-sale-return-policy/migrations/Migration20260123083526.js +15 -0
  63. package/.medusa/server/src/modules/applicable-sale-return-policy/models/applicable-sale-return-policy.js +23 -0
  64. package/.medusa/server/src/modules/applicable-sale-return-policy/service.js +10 -0
  65. package/.medusa/server/src/modules/book-list/index.js +13 -0
  66. package/.medusa/server/src/modules/book-list/migrations/Migration20260123083525.js +15 -0
  67. package/.medusa/server/src/modules/book-list/migrations/Migration20260401051011.js +14 -0
  68. package/.medusa/server/src/modules/book-list/models/book-list.js +13 -0
  69. package/.medusa/server/src/modules/book-list/service.js +10 -0
  70. package/.medusa/server/src/modules/category-group-master/migrations/Migration20250729035221.js +2 -2
  71. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js +2 -2
  72. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js +2 -2
  73. package/.medusa/server/src/modules/category-master/migrations/Migration20250513122212.js +2 -2
  74. package/.medusa/server/src/modules/category-master/migrations/Migration20250519180539.js +2 -2
  75. package/.medusa/server/src/modules/category-master/migrations/Migration20250531004724.js +2 -2
  76. package/.medusa/server/src/modules/category-master/migrations/Migration20250729040659.js +2 -2
  77. package/.medusa/server/src/modules/category-master/migrations/Migration20251031061327.js +2 -2
  78. package/.medusa/server/src/modules/category-master/migrations/Migration20251104045755.js +2 -2
  79. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20250531022203.js +2 -2
  80. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js +2 -2
  81. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js +2 -2
  82. package/.medusa/server/src/modules/collection-master/migrations/Migration20250513122211.js +2 -2
  83. package/.medusa/server/src/modules/collection-master/migrations/Migration20250531025048.js +2 -2
  84. package/.medusa/server/src/modules/collection-master/migrations/Migration20251031060941.js +2 -2
  85. package/.medusa/server/src/modules/collection-master/migrations/Migration20251104050012.js +2 -2
  86. package/.medusa/server/src/modules/customer-receive-voucher/index.js +13 -0
  87. package/.medusa/server/src/modules/customer-receive-voucher/migrations/Migration20250115000000.js +51 -0
  88. package/.medusa/server/src/modules/customer-receive-voucher/migrations/Migration20260106050934.js +18 -0
  89. package/.medusa/server/src/modules/customer-receive-voucher/models/customer-receive-voucher.js +35 -0
  90. package/.medusa/server/src/modules/customer-receive-voucher/service.js +10 -0
  91. package/.medusa/server/src/modules/discount-master/migrations/Migration20250707232514.js +2 -2
  92. package/.medusa/server/src/modules/discount-master/migrations/Migration20250708051709.js +2 -2
  93. package/.medusa/server/src/modules/discount-master/migrations/Migration20250708051737.js +2 -2
  94. package/.medusa/server/src/modules/discount-master/migrations/Migration20251031061523.js +2 -2
  95. package/.medusa/server/src/modules/discount-master/migrations/Migration20251104050153.js +2 -2
  96. package/.medusa/server/src/modules/erp/migrations/Migration20250513121436.js +2 -2
  97. package/.medusa/server/src/modules/erp/service.js +611 -8
  98. package/.medusa/server/src/modules/erp-event/migrations/Migration20250908040911.js +2 -2
  99. package/.medusa/server/src/modules/erp-event/migrations/Migration20250922095956.js +2 -2
  100. package/.medusa/server/src/modules/erp-event/migrations/Migration20260529052734.js +14 -0
  101. package/.medusa/server/src/modules/erp-event/models/erp-event.js +6 -1
  102. package/.medusa/server/src/modules/extended-product/migrations/Migration20250620030100.js +2 -2
  103. package/.medusa/server/src/modules/extended-product/migrations/Migration20250716041546.js +2 -2
  104. package/.medusa/server/src/modules/extended-product/migrations/Migration20251103182726.js +2 -2
  105. package/.medusa/server/src/modules/extended-product/migrations/Migration20251119062526.js +2 -2
  106. package/.medusa/server/src/modules/extended-product/migrations/Migration20251202055742.js +2 -2
  107. package/.medusa/server/src/modules/extended-product/migrations/Migration20251202064200.js +2 -2
  108. package/.medusa/server/src/modules/extended-product/migrations/Migration20260323103543.js +14 -0
  109. package/.medusa/server/src/modules/extended-product/models/extended-product.js +2 -1
  110. package/.medusa/server/src/modules/extended-product/service.js +37 -1
  111. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030335.js +2 -2
  112. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030522.js +2 -2
  113. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250629220100.js +2 -2
  114. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250629223425.js +2 -2
  115. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250704064831.js +2 -2
  116. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250716121609.js +2 -2
  117. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250725104852.js +2 -2
  118. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250726232339.js +2 -2
  119. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250916065103.js +2 -2
  120. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251119063328.js +2 -2
  121. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120045708.js +2 -2
  122. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120051832.js +2 -2
  123. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120052514.js +2 -2
  124. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251202055952.js +2 -2
  125. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251210112341.js +18 -0
  126. package/.medusa/server/src/modules/extended-variant/migrations/Migration20260616000001.js +14 -0
  127. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +4 -2
  128. package/.medusa/server/src/modules/extended-variant/service.js +37 -1
  129. package/.medusa/server/src/modules/item-master/index.js +13 -0
  130. package/.medusa/server/src/modules/item-master/migrations/Migration20260212101055.js +15 -0
  131. package/.medusa/server/src/modules/item-master/models/item-master.js +20 -0
  132. package/.medusa/server/src/modules/item-master/service.js +10 -0
  133. package/.medusa/server/src/modules/item-size-master/migrations/Migration20251031111036.js +2 -2
  134. package/.medusa/server/src/modules/jewel-trans-master/index.js +13 -0
  135. package/.medusa/server/src/modules/jewel-trans-master/migrations/Migration20260226053036.js +57 -0
  136. package/.medusa/server/src/modules/jewel-trans-master/models/jewel-trans-master.js +151 -0
  137. package/.medusa/server/src/modules/jewel-trans-master/service.js +16 -0
  138. package/.medusa/server/src/modules/labour-chart-master/index.js +13 -0
  139. package/.medusa/server/src/modules/labour-chart-master/migrations/Migration20260101081502.js +15 -0
  140. package/.medusa/server/src/modules/labour-chart-master/models/labour-chart-master.js +16 -0
  141. package/.medusa/server/src/modules/labour-chart-master/service.js +10 -0
  142. package/.medusa/server/src/modules/material-purchase-master/index.js +13 -0
  143. package/.medusa/server/src/modules/material-purchase-master/migrations/Migration20260310090700.js +18 -0
  144. package/.medusa/server/src/modules/material-purchase-master/models/material-purchase-detail-line.js +24 -0
  145. package/.medusa/server/src/modules/material-purchase-master/models/material-purchase-master.js +21 -0
  146. package/.medusa/server/src/modules/material-purchase-master/service.js +12 -0
  147. package/.medusa/server/src/modules/order-master/index.js +13 -0
  148. package/.medusa/server/src/modules/order-master/migrations/Migration20260226053036.js +29 -0
  149. package/.medusa/server/src/modules/order-master/migrations/Migration20260303000001.js +30 -0
  150. package/.medusa/server/src/modules/order-master/migrations/Migration20260319094758.js +26 -0
  151. package/.medusa/server/src/modules/order-master/migrations/Migration20260320000001.js +19 -0
  152. package/.medusa/server/src/modules/order-master/models/order-master.js +112 -0
  153. package/.medusa/server/src/modules/order-master/service.js +13 -0
  154. package/.medusa/server/src/modules/order-proceed-master/index.js +13 -0
  155. package/.medusa/server/src/modules/order-proceed-master/migrations/Migration20260327100226.js +31 -0
  156. package/.medusa/server/src/modules/order-proceed-master/models/order-proceed-master.js +38 -0
  157. package/.medusa/server/src/modules/order-proceed-master/service.js +11 -0
  158. package/.medusa/server/src/modules/party-master/migrations/Migration20250604104235.js +2 -2
  159. package/.medusa/server/src/modules/party-master/migrations/Migration20250604115453.js +2 -2
  160. package/.medusa/server/src/modules/party-master/migrations/Migration20250604120348.js +2 -2
  161. package/.medusa/server/src/modules/party-master/migrations/Migration20250604120701.js +2 -2
  162. package/.medusa/server/src/modules/party-master/migrations/Migration20250608220924.js +2 -2
  163. package/.medusa/server/src/modules/party-master/migrations/Migration20250612225738.js +2 -2
  164. package/.medusa/server/src/modules/party-master/migrations/Migration20250612231031.js +2 -2
  165. package/.medusa/server/src/modules/party-master/migrations/Migration20250708123734.js +2 -2
  166. package/.medusa/server/src/modules/party-master/migrations/Migration20251031061657.js +2 -2
  167. package/.medusa/server/src/modules/party-master/migrations/Migration20251104050242.js +2 -2
  168. package/.medusa/server/src/modules/payment-book-master/index.js +13 -0
  169. package/.medusa/server/src/modules/payment-book-master/migrations/Migration20251203105358.js +15 -0
  170. package/.medusa/server/src/modules/payment-book-master/models/payment-book-master.js +12 -0
  171. package/.medusa/server/src/modules/payment-book-master/service.js +10 -0
  172. package/.medusa/server/src/modules/promocode-master/migrations/Migration20250819123821.js +2 -2
  173. package/.medusa/server/src/modules/promocode-master/migrations/Migration20250918095713.js +2 -2
  174. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251031061829.js +2 -2
  175. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251104050332.js +2 -2
  176. package/.medusa/server/src/modules/quality-master/migrations/Migration20251031095211.js +2 -2
  177. package/.medusa/server/src/modules/quality-master/migrations/Migration20251105045114.js +2 -2
  178. package/.medusa/server/src/modules/rate-chart-master/index.js +13 -0
  179. package/.medusa/server/src/modules/rate-chart-master/migrations/Migration20260101081500.js +15 -0
  180. package/.medusa/server/src/modules/rate-chart-master/models/rate-chart-master.js +13 -0
  181. package/.medusa/server/src/modules/rate-chart-master/service.js +10 -0
  182. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190057.js +2 -2
  183. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190322.js +2 -2
  184. package/.medusa/server/src/modules/raw-master/migrations/Migration20251031061912.js +2 -2
  185. package/.medusa/server/src/modules/receive-voucher-master/index.js +13 -0
  186. package/.medusa/server/src/modules/receive-voucher-master/migrations/Migration20260328053649.js +16 -0
  187. package/.medusa/server/src/modules/receive-voucher-master/models/receive-voucher-master.js +27 -0
  188. package/.medusa/server/src/modules/receive-voucher-master/service.js +10 -0
  189. package/.medusa/server/src/modules/report-master/index.js +13 -0
  190. package/.medusa/server/src/modules/report-master/migrations/Migration20260121060955.js +15 -0
  191. package/.medusa/server/src/modules/report-master/migrations/Migration20260121112624.js +15 -0
  192. package/.medusa/server/src/modules/report-master/models/report-master.js +12 -0
  193. package/.medusa/server/src/modules/report-master/service.js +10 -0
  194. package/.medusa/server/src/modules/sale-master/index.js +13 -0
  195. package/.medusa/server/src/modules/sale-master/migrations/Migration20260205092935.js +15 -0
  196. package/.medusa/server/src/modules/sale-master/migrations/Migration20260205100000.js +16 -0
  197. package/.medusa/server/src/modules/sale-master/models/sale-master.js +27 -0
  198. package/.medusa/server/src/modules/sale-master/service.js +10 -0
  199. package/.medusa/server/src/modules/sale-return-master/index.js +13 -0
  200. package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260205093034.js +15 -0
  201. package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260327084135.js +14 -0
  202. package/.medusa/server/src/modules/sale-return-master/models/sale-return-master.js +18 -0
  203. package/.medusa/server/src/modules/sale-return-master/service.js +10 -0
  204. package/.medusa/server/src/modules/sale-return-policy-master/index.js +13 -0
  205. package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260105061449.js +21 -0
  206. package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260129084920.js +14 -0
  207. package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260129085620.js +20 -0
  208. package/.medusa/server/src/modules/sale-return-policy-master/models/sale-return-policy-master.js +37 -0
  209. package/.medusa/server/src/modules/sale-return-policy-master/service.js +12 -0
  210. package/.medusa/server/src/modules/shape-master/migrations/Migration20250509174455.js +2 -2
  211. package/.medusa/server/src/modules/shape-master/migrations/Migration20251031062019.js +2 -2
  212. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20250713113247.js +2 -2
  213. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20250713121440.js +2 -2
  214. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251031062128.js +2 -2
  215. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251104050501.js +2 -2
  216. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251203083315.js +2 -2
  217. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250513115356.js +2 -2
  218. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250519180538.js +2 -2
  219. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250531010409.js +2 -2
  220. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730025135.js +2 -2
  221. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730025307.js +2 -2
  222. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730032130.js +2 -2
  223. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251031062303.js +2 -2
  224. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251104050743.js +2 -2
  225. package/.medusa/server/src/modules/tone-master/migrations/Migration20251031104320.js +2 -2
  226. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251101082220.js +2 -2
  227. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251103123857.js +2 -2
  228. package/.medusa/server/src/subscribers/cutomer-updated.js +3 -1
  229. package/.medusa/server/src/subscribers/erp-batch-processor.js +147 -0
  230. package/.medusa/server/src/subscribers/order-item-update.js +11 -0
  231. package/.medusa/server/src/subscribers/party-master.js +39 -35
  232. package/.medusa/server/src/subscribers/product-sync.js +1 -1
  233. package/.medusa/server/src/subscribers/product-variant-deleted.js +27 -0
  234. package/.medusa/server/src/subscribers/shipping-info-master.js +10 -4
  235. package/.medusa/server/src/utils/build-redis-key.js +3 -1
  236. package/.medusa/server/src/utils/erp-health.js +24 -0
  237. package/.medusa/server/src/utils/state-helper.js +3 -2
  238. package/.medusa/server/src/workflows/addless-detail/index.js +11 -0
  239. package/.medusa/server/src/workflows/addless-detail/steps/create-or-update-addless-detail.js +36 -0
  240. package/.medusa/server/src/workflows/addless-detail/steps/fetch-addless-detail.js +73 -0
  241. package/.medusa/server/src/workflows/applicable-sale-return-policy/index.js +11 -0
  242. package/.medusa/server/src/workflows/applicable-sale-return-policy/steps/create-or-update-applicable-sale-return-policy.js +74 -0
  243. package/.medusa/server/src/workflows/applicable-sale-return-policy/steps/fetch-applicable-sale-return-policy.js +64 -0
  244. package/.medusa/server/src/workflows/book-list/index.js +11 -0
  245. package/.medusa/server/src/workflows/book-list/steps/create-or-update-book-list.js +59 -0
  246. package/.medusa/server/src/workflows/book-list/steps/fetch-book-list.js +64 -0
  247. package/.medusa/server/src/workflows/create-extended-product-from-product/index.js +9 -8
  248. package/.medusa/server/src/workflows/create-extended-variant-from-variant/index.js +9 -18
  249. package/.medusa/server/src/workflows/customer-advance-payment/index.js +18 -0
  250. package/.medusa/server/src/workflows/customer-advance-payment/steps/create-receive-voucher.js +71 -0
  251. package/.medusa/server/src/workflows/customer-advance-payment/steps/index.js +18 -0
  252. package/.medusa/server/src/workflows/customer-advance-payment/workflows/create-receive-voucher-workflow.js +11 -0
  253. package/.medusa/server/src/workflows/customer-advance-payment/workflows/index.js +18 -0
  254. package/.medusa/server/src/workflows/daily-rate/index.js +37 -0
  255. package/.medusa/server/src/workflows/daily-rate/perf.js +89 -0
  256. package/.medusa/server/src/workflows/daily-rate/steps/fetch-gold-rate-step.js +29 -0
  257. package/.medusa/server/src/workflows/daily-rate/steps/update-inward-metal-rates-step.js +154 -0
  258. package/.medusa/server/src/workflows/daily-rate/steps/update-party-style-metal-rates-step.js +224 -0
  259. package/.medusa/server/src/workflows/daily-rate/steps/update-style-master-metal-rates-step.js +180 -0
  260. package/.medusa/server/src/workflows/daily-rate/steps/update-unfix-order-items-on-gold-rate.js +308 -0
  261. package/.medusa/server/src/workflows/erp-batch-processing/index.js +19 -0
  262. package/.medusa/server/src/workflows/erp-batch-processing/steps/finalize-batch-processing.js +55 -0
  263. package/.medusa/server/src/workflows/erp-batch-processing/steps/index.js +20 -0
  264. package/.medusa/server/src/workflows/erp-batch-processing/steps/initialize-batch-processing.js +40 -0
  265. package/.medusa/server/src/workflows/erp-batch-processing/steps/start-batch-processing.js +22 -0
  266. package/.medusa/server/src/workflows/erp-batch-processing/workflows/erp-batch-processing.js +25 -0
  267. package/.medusa/server/src/workflows/erp-batch-processing/workflows/index.js +18 -0
  268. package/.medusa/server/src/workflows/erp-event/steps/update-erp-event.js +24 -7
  269. package/.medusa/server/src/workflows/erp-event/workflows/update-erp-event.js +1 -1
  270. package/.medusa/server/src/workflows/helpers/product-helper.js +212 -21
  271. package/.medusa/server/src/workflows/helpers/variant-helper.js +165 -162
  272. package/.medusa/server/src/workflows/hooks/product-updated.js +23 -15
  273. package/.medusa/server/src/workflows/hooks/variant-updated.js +24 -22
  274. package/.medusa/server/src/workflows/index.js +4 -1
  275. package/.medusa/server/src/workflows/inward-master/helper/index.js +28 -13
  276. package/.medusa/server/src/workflows/inward-master/steps/create-inward-exploration-lines.js +1 -2
  277. package/.medusa/server/src/workflows/inward-master/steps/create-inward-extra-charges-lines.js +1 -2
  278. package/.medusa/server/src/workflows/inward-master/steps/create-order-fulfillment-for-inward.js +196 -0
  279. package/.medusa/server/src/workflows/inward-master/steps/fetch-inward-master.js +17 -25
  280. package/.medusa/server/src/workflows/inward-master/steps/index.js +3 -1
  281. package/.medusa/server/src/workflows/inward-master/steps/notify-inward-skipped.js +38 -0
  282. package/.medusa/server/src/workflows/inward-master/steps/update-order-item-from-inward.js +259 -0
  283. package/.medusa/server/src/workflows/inward-master/workflows/create-inward.js +89 -75
  284. package/.medusa/server/src/workflows/inward-master/workflows/delete-inward.js +6 -9
  285. package/.medusa/server/src/workflows/inward-master/workflows/update-instock.js +2 -1
  286. package/.medusa/server/src/workflows/inward-master/workflows/update-inward.js +49 -7
  287. package/.medusa/server/src/workflows/item-master/index.js +11 -0
  288. package/.medusa/server/src/workflows/item-master/steps/create-or-update-item-master.js +50 -0
  289. package/.medusa/server/src/workflows/item-master/steps/fetch-item-master.js +29 -0
  290. package/.medusa/server/src/workflows/jewel-trans-master/index.js +18 -0
  291. package/.medusa/server/src/workflows/jewel-trans-master/steps/create-or-update-jewel-trans-master.js +370 -0
  292. package/.medusa/server/src/workflows/jewel-trans-master/steps/index.js +18 -0
  293. package/.medusa/server/src/workflows/labour-chart-master/index.js +11 -0
  294. package/.medusa/server/src/workflows/labour-chart-master/steps/create-or-update-labour-chart-master.js +38 -0
  295. package/.medusa/server/src/workflows/labour-chart-master/steps/fetch-labour-chart.js +31 -0
  296. package/.medusa/server/src/workflows/material-purchase-master/index.js +24 -0
  297. package/.medusa/server/src/workflows/material-purchase-master/steps/create-material-purchase-master.js +119 -0
  298. package/.medusa/server/src/workflows/material-purchase-master/steps/delete-material-purchase-master.js +102 -0
  299. package/.medusa/server/src/workflows/material-purchase-master/steps/fetch-material-purchase-master.js +60 -0
  300. package/.medusa/server/src/workflows/material-purchase-master/steps/update-material-purchase-master.js +149 -0
  301. package/.medusa/server/src/workflows/order-master/index.js +3 -0
  302. package/.medusa/server/src/workflows/order-master/order-master-webhook.js +24 -0
  303. package/.medusa/server/src/workflows/order-master/steps/create-or-update-order-master.js +275 -0
  304. package/.medusa/server/src/workflows/order-master/steps/delete-order-master-by-erp-ids.js +61 -0
  305. package/.medusa/server/src/workflows/order-master/steps/process-order-master-from-webhook.js +1038 -0
  306. package/.medusa/server/src/workflows/order-proceed-master/index.js +6 -0
  307. package/.medusa/server/src/workflows/order-proceed-master/order-proceed-master-webhook.js +26 -0
  308. package/.medusa/server/src/workflows/order-proceed-master/steps/create-or-update-order-proceed-master.js +186 -0
  309. package/.medusa/server/src/workflows/order-proceed-master/steps/delete-order-proceed-master-by-erp-ids.js +28 -0
  310. package/.medusa/server/src/workflows/orders/steps/create-sale-for-order-step.js +218 -0
  311. package/.medusa/server/src/workflows/orders/steps/find-nearest-pincodes-step.js +336 -0
  312. package/.medusa/server/src/workflows/orders/steps/get-today-gold-rate-step.js +83 -0
  313. package/.medusa/server/src/workflows/orders/steps/index.js +16 -1
  314. package/.medusa/server/src/workflows/orders/steps/revert-to-wallet-step.js +165 -0
  315. package/.medusa/server/src/workflows/orders/steps/sync-advance-payment-to-erp-step.js +191 -0
  316. package/.medusa/server/src/workflows/orders/steps/sync-buyback-to-erp-step.js +99 -0
  317. package/.medusa/server/src/workflows/orders/steps/sync-cancel-to-erp-step.js +120 -0
  318. package/.medusa/server/src/workflows/orders/steps/sync-exchange-to-erp-step.js +101 -0
  319. package/.medusa/server/src/workflows/orders/steps/sync-old-gold-to-erp-step.js +161 -0
  320. package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +756 -20
  321. package/.medusa/server/src/workflows/orders/steps/sync-sale-return-to-erp-step.js +277 -0
  322. package/.medusa/server/src/workflows/orders/steps/update-old-gold-sync-status-step.js +64 -0
  323. package/.medusa/server/src/workflows/orders/utils/apply-order-item-price-change.js +79 -0
  324. package/.medusa/server/src/workflows/orders/utils/order-helper.js +182 -37
  325. package/.medusa/server/src/workflows/orders/utils/order-request-helper.js +235 -0
  326. package/.medusa/server/src/workflows/orders/workflows/create-sale-for-order.js +10 -0
  327. package/.medusa/server/src/workflows/orders/workflows/get-today-gold-rate.js +10 -0
  328. package/.medusa/server/src/workflows/orders/workflows/index.js +4 -1
  329. package/.medusa/server/src/workflows/orders/workflows/sync-advanve-payment-to-erp.js +21 -0
  330. package/.medusa/server/src/workflows/orders/workflows/sync-old-gold-to-erp.js +24 -0
  331. package/.medusa/server/src/workflows/orders/workflows/sync-order-to-erp.js +54 -5
  332. package/.medusa/server/src/workflows/orders/workflows/sync-sale-return-to-erp.js +11 -0
  333. package/.medusa/server/src/workflows/party-master/steps/create-customer-erp.js +66 -33
  334. package/.medusa/server/src/workflows/party-master/steps/create-user-erp.js +115 -0
  335. package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +2 -1
  336. package/.medusa/server/src/workflows/party-master/steps/index.js +2 -1
  337. package/.medusa/server/src/workflows/party-master/workflows/create-or-update-party-master.js +2 -2
  338. package/.medusa/server/src/workflows/party-master/workflows/create-user-erp.js +11 -0
  339. package/.medusa/server/src/workflows/party-master/workflows/index.js +2 -1
  340. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-deletion.js +16 -249
  341. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +103 -22
  342. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +49 -18
  343. package/.medusa/server/src/workflows/party-style-master/workflows/delete-party-style-master.js +4 -15
  344. package/.medusa/server/src/workflows/payment-book-master/index.js +11 -0
  345. package/.medusa/server/src/workflows/payment-book-master/steps/create-or-update-payment-book-master.js +37 -0
  346. package/.medusa/server/src/workflows/payment-book-master/steps/fetch-payment-book.js +64 -0
  347. package/.medusa/server/src/workflows/rate-chart-master/index.js +11 -0
  348. package/.medusa/server/src/workflows/rate-chart-master/steps/create-or-update-rate-chart-master.js +25 -0
  349. package/.medusa/server/src/workflows/rate-chart-master/steps/fetch-rate-chart.js +31 -0
  350. package/.medusa/server/src/workflows/receive-voucher-master/index.js +24 -0
  351. package/.medusa/server/src/workflows/receive-voucher-master/steps/create-receive-voucher-master.js +125 -0
  352. package/.medusa/server/src/workflows/receive-voucher-master/steps/delete-receive-voucher-master.js +45 -0
  353. package/.medusa/server/src/workflows/receive-voucher-master/steps/fetch-receive-voucher-master.js +22 -0
  354. package/.medusa/server/src/workflows/receive-voucher-master/steps/update-receive-voucher-master.js +44 -0
  355. package/.medusa/server/src/workflows/report-master/index.js +11 -0
  356. package/.medusa/server/src/workflows/report-master/steps/create-or-update-report-master.js +53 -0
  357. package/.medusa/server/src/workflows/report-master/steps/fetch-report.js +71 -0
  358. package/.medusa/server/src/workflows/sale-master/index.js +35 -0
  359. package/.medusa/server/src/workflows/sale-master/steps/create-sale-master.js +72 -0
  360. package/.medusa/server/src/workflows/sale-master/steps/delete-sale-master.js +59 -0
  361. package/.medusa/server/src/workflows/sale-master/steps/sync-extended-order-from-sale.js +40 -0
  362. package/.medusa/server/src/workflows/sale-master/steps/update-sale-master.js +95 -0
  363. package/.medusa/server/src/workflows/sale-return-master/index.js +6 -0
  364. package/.medusa/server/src/workflows/sale-return-master/sale-return-master-webhook.js +28 -0
  365. package/.medusa/server/src/workflows/sale-return-master/steps/create-or-update-sale-return-master.js +109 -0
  366. package/.medusa/server/src/workflows/sale-return-master/steps/create-sale-return-master.js +45 -0
  367. package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master-by-erp-ids.js +36 -0
  368. package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master.js +36 -0
  369. package/.medusa/server/src/workflows/sale-return-master/steps/process-sale-return-from-webhook.js +234 -0
  370. package/.medusa/server/src/workflows/sale-return-master/steps/update-sale-return-master.js +53 -0
  371. package/.medusa/server/src/workflows/sale-return-policy-master/index.js +11 -0
  372. package/.medusa/server/src/workflows/sale-return-policy-master/steps/create-or-update-sale-return-policy-master.js +91 -0
  373. package/.medusa/server/src/workflows/sale-return-policy-master/steps/fetch-sale-return-policy.js +31 -0
  374. package/.medusa/server/src/workflows/shipping-info-master/workflows/create-or-update-shipping-info.js +59 -0
  375. package/.medusa/server/src/workflows/shipping-info-master/workflows/index.js +2 -1
  376. package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master.js +116 -10
  377. package/.medusa/server/src/workflows/style-master/workflows/delete-style-master.js +9 -1
  378. package/.medusa/server/src/workflows/update-extended-product-from-product/index.js +6 -16
  379. package/.medusa/server/src/workflows/update-extended-variant-from-variant/workflows/update-extended-variant-status-from-variant.js +5 -17
  380. package/package.json +18 -33
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchGoldRateStep = exports.fetchGoldRateStepId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const erp_1 = require("../../../modules/erp");
7
+ const build_redis_key_1 = require("../../../utils/build-redis-key");
8
+ exports.fetchGoldRateStepId = "fetch-gold-rate-step";
9
+ exports.fetchGoldRateStep = (0, workflows_sdk_1.createStep)(exports.fetchGoldRateStepId, async (_input, { container }) => {
10
+ const erpService = container.resolve(erp_1.ERP_MODULE);
11
+ const goldRateData = (await erpService.getGoldRateData());
12
+ if (!goldRateData?.CurrentGoldRate?.length) {
13
+ throw new Error("No gold rate data available from ERP");
14
+ }
15
+ const baseGold = goldRateData.CurrentGoldRate.find((g) => g.RawName === "GOLD");
16
+ if (!baseGold) {
17
+ throw new Error("Base gold rate (GOLD) not found in ERP response");
18
+ }
19
+ // Invalidate the cached gold rate so subsequent steps (e.g.
20
+ // updateUnfixOrderItemsOnGoldRateStep) fetch the newly arrived rate
21
+ // instead of the stale value which would produce a zero diff.
22
+ const cacheService = container.resolve(utils_1.Modules.CACHE);
23
+ const cacheKey = (0, build_redis_key_1.buildRedisKey)("pos:gold-rate", {});
24
+ await cacheService.invalidate(cacheKey);
25
+ return new workflows_sdk_1.StepResponse({
26
+ gold24kSaleRate: baseGold.SaleRate,
27
+ });
28
+ });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtZ29sZC1yYXRlLXN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2RhaWx5LXJhdGUvc3RlcHMvZmV0Y2gtZ29sZC1yYXRlLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUFvRDtBQUNwRCw4Q0FBa0Q7QUFFbEQsb0VBQStEO0FBTWxELFFBQUEsbUJBQW1CLEdBQUcsc0JBQXNCLENBQUM7QUFFN0MsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLDBCQUFVLEVBQ3pDLDJCQUFtQixFQUNuQixLQUFLLEVBQUUsTUFBWSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNwQyxNQUFNLFVBQVUsR0FBZSxTQUFTLENBQUMsT0FBTyxDQUFDLGdCQUFVLENBQUMsQ0FBQztJQUU3RCxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQU0sVUFBVSxDQUFDLGVBQWUsRUFBRSxDQU92RCxDQUFDO0lBRUYsSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FDaEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssTUFBTSxDQUM1QixDQUFDO0lBRUYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsb0VBQW9FO0lBQ3BFLDhEQUE4RDtJQUM5RCxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxNQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFhLEVBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELE1BQU0sWUFBWSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUV4QyxPQUFPLElBQUksNEJBQVksQ0FBMEI7UUFDL0MsZUFBZSxFQUFFLFFBQVEsQ0FBQyxRQUFRO0tBQ25DLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,154 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateInwardMetalRatesStep = exports.updateInwardMetalRatesStepId = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const quality_master_1 = require("../../../modules/quality-master");
6
+ const extended_variant_1 = require("../../../modules/extended-variant");
7
+ const perf_1 = require("../perf");
8
+ function computeMetalRates(line, qualityMap, gold24kSaleRate) {
9
+ const clarity = qualityMap.get(line.qly_code);
10
+ if (clarity == null) {
11
+ return null;
12
+ }
13
+ const rate = Math.round((gold24kSaleRate * clarity) / 100);
14
+ const amount = Math.round(line.weight * rate);
15
+ return { rate, amount };
16
+ }
17
+ exports.updateInwardMetalRatesStepId = "update-inward-metal-rates-step";
18
+ exports.updateInwardMetalRatesStep = (0, workflows_sdk_1.createStep)(exports.updateInwardMetalRatesStepId, async (input, { container }) => {
19
+ const { gold24kSaleRate } = input;
20
+ const logger = container.resolve("logger");
21
+ const startTime = new Date();
22
+ logger.info(`[DailyRate] Inward update started at ${startTime.toISOString()}`);
23
+ const qualityService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
24
+ const evService = container.resolve(extended_variant_1.EXTENDED_VARIANT_MODULE);
25
+ // Build quality map: qly_code → qly_clarity
26
+ const allQualities = await qualityService.listQualityMasters({}, { select: ["qly_code", "qly_clarity"] });
27
+ const qualityMap = new Map();
28
+ for (const q of allQualities) {
29
+ if (q.qly_clarity != null) {
30
+ qualityMap.set(q.qly_code, q.qly_clarity);
31
+ }
32
+ }
33
+ // Accumulator: jewel_id → aggregated deltas
34
+ const jewelsAccumulator = new Map();
35
+ logger.info(`[DailyRate] Inward update — batchSize=${perf_1.BATCH_SIZE}`);
36
+ const perf = (0, perf_1.createPerfSampler)();
37
+ const batchMetrics = [];
38
+ const lineSnapshots = [];
39
+ let offset = 0;
40
+ let batchIndex = 0;
41
+ while (true) {
42
+ const lines = await evService.listInwardDetailsLines({ raw_type: "Metal" }, {
43
+ take: perf_1.BATCH_SIZE,
44
+ skip: offset,
45
+ order: { id: "ASC" },
46
+ select: [
47
+ "id",
48
+ "jewel_id",
49
+ "weight",
50
+ "qly_code",
51
+ "original_rate",
52
+ "rate",
53
+ "actual_amount",
54
+ "amount",
55
+ "final_amt",
56
+ ],
57
+ });
58
+ if (!lines.length)
59
+ break;
60
+ const lineUpdates = [];
61
+ for (const line of lines) {
62
+ lineSnapshots.push({
63
+ id: line.id,
64
+ original_rate: line.original_rate,
65
+ rate: line.rate,
66
+ actual_amount: line.actual_amount,
67
+ amount: line.amount,
68
+ final_amt: line.final_amt,
69
+ });
70
+ const computed = computeMetalRates(line, qualityMap, gold24kSaleRate);
71
+ if (!computed)
72
+ continue;
73
+ const { rate, amount } = computed;
74
+ const oldAmount = line.amount ?? 0;
75
+ lineUpdates.push({
76
+ id: line.id,
77
+ original_rate: rate,
78
+ rate,
79
+ actual_amount: amount,
80
+ amount,
81
+ final_amt: amount,
82
+ });
83
+ const jewelId = line.jewel_id;
84
+ const acc = jewelsAccumulator.get(jewelId) ?? { mrpDelta: 0 };
85
+ acc.mrpDelta += amount - oldAmount;
86
+ jewelsAccumulator.set(jewelId, acc);
87
+ }
88
+ if (lineUpdates.length) {
89
+ await evService.bulkUpdateByIds("inward_details_line", lineUpdates);
90
+ }
91
+ await new Promise((resolve) => setImmediate(resolve));
92
+ batchMetrics.push(await perf.sampleBatch(batchIndex++, lines.length, lineUpdates.length));
93
+ logger.info(`[DailyRate][Inward] batch offset=${offset} lines=${lines.length} lines_updated=${lineUpdates.length}`);
94
+ if (lines.length < perf_1.BATCH_SIZE)
95
+ break;
96
+ offset += perf_1.BATCH_SIZE;
97
+ }
98
+ if (!jewelsAccumulator.size) {
99
+ return new workflows_sdk_1.StepResponse({ lines: lineSnapshots, inwards: [] }, { lines: lineSnapshots, inwards: [] });
100
+ }
101
+ // Load affected inward_masters
102
+ const affectedJewelIds = Array.from(jewelsAccumulator.keys());
103
+ const inwards = await evService.listInwardMasters({ jewel_id: affectedJewelIds }, { select: ["id", "jewel_id", "mrp", "actual_mrp"] });
104
+ const inwardSnapshots = inwards.map((inv) => ({
105
+ id: inv.id,
106
+ mrp: inv.mrp,
107
+ actual_mrp: inv.actual_mrp,
108
+ }));
109
+ const inwardUpdates = [];
110
+ for (const inv of inwards) {
111
+ const acc = jewelsAccumulator.get(inv.jewel_id);
112
+ if (!acc)
113
+ continue;
114
+ inwardUpdates.push({
115
+ id: inv.id,
116
+ mrp: (inv.mrp ?? 0) + acc.mrpDelta,
117
+ actual_mrp: (inv.actual_mrp ?? 0) + acc.mrpDelta,
118
+ });
119
+ }
120
+ if (inwardUpdates.length) {
121
+ await evService.bulkUpdateByIds("inward_master", inwardUpdates);
122
+ }
123
+ const endTime = new Date();
124
+ const durationMs = endTime.getTime() - startTime.getTime();
125
+ logger.info(`[DailyRate] Inward update completed at ${endTime.toISOString()} (duration: ${durationMs}ms)`);
126
+ perf.summary("Inward", batchMetrics, durationMs, logger);
127
+ const compensationData = {
128
+ lines: lineSnapshots,
129
+ inwards: inwardSnapshots,
130
+ };
131
+ return new workflows_sdk_1.StepResponse(compensationData, compensationData);
132
+ }, async (compensationData, { container }) => {
133
+ if (!compensationData)
134
+ return;
135
+ const evService = container.resolve(extended_variant_1.EXTENDED_VARIANT_MODULE);
136
+ if (compensationData.lines.length) {
137
+ await evService.bulkUpdateByIds("inward_details_line", compensationData.lines.map((l) => ({
138
+ id: l.id,
139
+ original_rate: l.original_rate,
140
+ rate: l.rate,
141
+ actual_amount: l.actual_amount,
142
+ amount: l.amount,
143
+ final_amt: l.final_amt,
144
+ })));
145
+ }
146
+ if (compensationData.inwards.length) {
147
+ await evService.bulkUpdateByIds("inward_master", compensationData.inwards.map((inv) => ({
148
+ id: inv.id,
149
+ mrp: inv.mrp,
150
+ actual_mrp: inv.actual_mrp,
151
+ })));
152
+ }
153
+ });
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWlud2FyZC1tZXRhbC1yYXRlcy1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9kYWlseS1yYXRlL3N0ZXBzL3VwZGF0ZS1pbndhcmQtbWV0YWwtcmF0ZXMtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFDN0Usb0VBQXdFO0FBRXhFLHdFQUE0RTtBQUc1RSxrQ0FBc0U7QUFzQnRFLFNBQVMsaUJBQWlCLENBQ3hCLElBQTBDLEVBQzFDLFVBQStCLEVBQy9CLGVBQXVCO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBRTlDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDMUIsQ0FBQztBQUVZLFFBQUEsNEJBQTRCLEdBQUcsZ0NBQWdDLENBQUM7QUFFaEUsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLDBCQUFVLEVBQ2xELG9DQUE0QixFQUM1QixLQUFLLEVBQUUsS0FBOEIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdEQsTUFBTSxFQUFFLGVBQWUsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVsQyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDN0IsTUFBTSxDQUFDLElBQUksQ0FDVCx3Q0FBd0MsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQ2xFLENBQUM7SUFFRixNQUFNLGNBQWMsR0FBeUIsU0FBUyxDQUFDLE9BQU8sQ0FDNUQsc0NBQXFCLENBQ3RCLENBQUM7SUFDRixNQUFNLFNBQVMsR0FBMkIsU0FBUyxDQUFDLE9BQU8sQ0FDekQsMENBQXVCLENBQ3hCLENBQUM7SUFFRiw0Q0FBNEM7SUFDNUMsTUFBTSxZQUFZLEdBQUcsTUFBTSxjQUFjLENBQUMsa0JBQWtCLENBQzFELEVBQUUsRUFDRixFQUFFLE1BQU0sRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsRUFBRSxDQUN4QyxDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDN0MsS0FBSyxNQUFNLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLENBQUM7WUFDMUIsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO0lBRWxFLE1BQU0sQ0FBQyxJQUFJLENBQUMseUNBQXlDLGlCQUFVLEVBQUUsQ0FBQyxDQUFDO0lBRW5FLE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQWlCLEdBQUUsQ0FBQztJQUNqQyxNQUFNLFlBQVksR0FBbUIsRUFBRSxDQUFDO0lBRXhDLE1BQU0sYUFBYSxHQUFtQixFQUFFLENBQUM7SUFDekMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBRW5CLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDWixNQUFNLEtBQUssR0FBRyxNQUFNLFNBQVMsQ0FBQyxzQkFBc0IsQ0FDbEQsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQ3JCO1lBQ0UsSUFBSSxFQUFFLGlCQUFVO1lBQ2hCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRTtZQUNwQixNQUFNLEVBQUU7Z0JBQ04sSUFBSTtnQkFDSixVQUFVO2dCQUNWLFFBQVE7Z0JBQ1IsVUFBVTtnQkFDVixlQUFlO2dCQUNmLE1BQU07Z0JBQ04sZUFBZTtnQkFDZixRQUFRO2dCQUNSLFdBQVc7YUFDWjtTQUNGLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUFFLE1BQU07UUFFekIsTUFBTSxXQUFXLEdBT1osRUFBRSxDQUFDO1FBRVIsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN6QixhQUFhLENBQUMsSUFBSSxDQUFDO2dCQUNqQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO2dCQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07Z0JBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzthQUMxQixDQUFDLENBQUM7WUFFSCxNQUFNLFFBQVEsR0FBRyxpQkFBaUIsQ0FDaEMsSUFBVyxFQUNYLFVBQVUsRUFDVixlQUFlLENBQ2hCLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUTtnQkFBRSxTQUFTO1lBRXhCLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1lBRW5DLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO2dCQUNYLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixJQUFJO2dCQUNKLGFBQWEsRUFBRSxNQUFNO2dCQUNyQixNQUFNO2dCQUNOLFNBQVMsRUFBRSxNQUFNO2FBQ2xCLENBQUMsQ0FBQztZQUVILE1BQU0sT0FBTyxHQUFZLElBQVksQ0FBQyxRQUFRLENBQUM7WUFDL0MsTUFBTSxHQUFHLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzlELEdBQUcsQ0FBQyxRQUFRLElBQUksTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUNuQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLENBQUM7UUFFRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixNQUFNLFNBQVMsQ0FBQyxlQUFlLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELE1BQU0sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRTVELFlBQVksQ0FBQyxJQUFJLENBQ2YsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUN2RSxDQUFDO1FBRUYsTUFBTSxDQUFDLElBQUksQ0FDVCxvQ0FBb0MsTUFBTSxVQUFVLEtBQUssQ0FBQyxNQUFNLGtCQUFrQixXQUFXLENBQUMsTUFBTSxFQUFFLENBQ3ZHLENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsaUJBQVU7WUFBRSxNQUFNO1FBQ3JDLE1BQU0sSUFBSSxpQkFBVSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLDRCQUFZLENBQ3JCLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQ3JDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQ3RDLENBQUM7SUFDSixDQUFDO0lBRUQsK0JBQStCO0lBQy9CLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzlELE1BQU0sT0FBTyxHQUFHLE1BQU0sU0FBUyxDQUFDLGlCQUFpQixDQUMvQyxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxFQUM5QixFQUFFLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQ3BELENBQUM7SUFFRixNQUFNLGVBQWUsR0FBcUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUU7UUFDVixHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUc7UUFDWixVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVU7S0FDM0IsQ0FBQyxDQUFDLENBQUM7SUFFSixNQUFNLGFBQWEsR0FJZCxFQUFFLENBQUM7SUFFUixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQWdCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxHQUFHO1lBQUUsU0FBUztRQUVuQixhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ2pCLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNWLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVE7WUFDbEMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBUTtTQUNqRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsTUFBTSxTQUFTLENBQUMsZUFBZSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUMzQixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNELE1BQU0sQ0FBQyxJQUFJLENBQ1QsMENBQTBDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsZUFBZSxVQUFVLEtBQUssQ0FDOUYsQ0FBQztJQUNGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFekQsTUFBTSxnQkFBZ0IsR0FBcUI7UUFDekMsS0FBSyxFQUFFLGFBQWE7UUFDcEIsT0FBTyxFQUFFLGVBQWU7S0FDekIsQ0FBQztJQUVGLE9BQU8sSUFBSSw0QkFBWSxDQUNyQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLENBQ2pCLENBQUM7QUFDSixDQUFDLEVBQ0QsS0FBSyxFQUFFLGdCQUE4QyxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN0RSxJQUFJLENBQUMsZ0JBQWdCO1FBQUUsT0FBTztJQUU5QixNQUFNLFNBQVMsR0FBMkIsU0FBUyxDQUFDLE9BQU8sQ0FDekQsMENBQXVCLENBQ3hCLENBQUM7SUFFRixJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNsQyxNQUFNLFNBQVMsQ0FBQyxlQUFlLENBQzdCLHFCQUFxQixFQUNyQixnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNSLGFBQWEsRUFBRSxDQUFDLENBQUMsYUFBYTtZQUM5QixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7WUFDWixhQUFhLEVBQUUsQ0FBQyxDQUFDLGFBQWE7WUFDOUIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO1lBQ2hCLFNBQVMsRUFBRSxDQUFDLENBQUMsU0FBUztTQUN2QixDQUFDLENBQUMsQ0FDSixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BDLE1BQU0sU0FBUyxDQUFDLGVBQWUsQ0FDN0IsZUFBZSxFQUNmLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDckMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ1YsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHO1lBQ1osVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO1NBQzNCLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,224 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.updatePartyStyleMetalRatesStep = exports.updatePartyStyleMetalRatesStepId = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
9
+ const utils_1 = require("@medusajs/framework/utils");
10
+ const quality_master_1 = require("../../../modules/quality-master");
11
+ const extended_variant_1 = require("../../../modules/extended-variant");
12
+ const perf_1 = require("../perf");
13
+ function computeMetalRates(line, qualityMap, gold24kSaleRate) {
14
+ const clarity = qualityMap.get(line.qly_code);
15
+ if (clarity == null) {
16
+ return null;
17
+ }
18
+ const rate = new bignumber_js_1.default(gold24kSaleRate)
19
+ .multipliedBy(clarity)
20
+ .dividedBy(100)
21
+ .integerValue(bignumber_js_1.default.ROUND_HALF_UP)
22
+ .toNumber();
23
+ const amount = new bignumber_js_1.default(line.weight)
24
+ .multipliedBy(rate)
25
+ .integerValue(bignumber_js_1.default.ROUND_HALF_UP)
26
+ .toNumber();
27
+ return { rate, amount };
28
+ }
29
+ async function syncMedusaPrices(mappingIds, mrpByMappingId, remoteQuery, pricingService) {
30
+ if (!mappingIds.length)
31
+ return;
32
+ const { data: variantsWithPriceSets } = await remoteQuery.graph({
33
+ entity: "product_variant",
34
+ fields: ["id", "price_set.id"],
35
+ filters: { id: mappingIds },
36
+ });
37
+ const priceSetsToUpdate = variantsWithPriceSets
38
+ .filter((v) => v.price_set?.id)
39
+ .map((v) => ({
40
+ id: v.price_set.id,
41
+ prices: [{ amount: mrpByMappingId.get(v.id), currency_code: "inr" }],
42
+ }));
43
+ if (priceSetsToUpdate.length) {
44
+ await pricingService.upsertPriceSets(priceSetsToUpdate);
45
+ }
46
+ }
47
+ exports.updatePartyStyleMetalRatesStepId = "update-party-style-metal-rates-step";
48
+ exports.updatePartyStyleMetalRatesStep = (0, workflows_sdk_1.createStep)(exports.updatePartyStyleMetalRatesStepId, async (input, { container }) => {
49
+ const { gold24kSaleRate } = input;
50
+ const logger = container.resolve("logger");
51
+ const startTime = new Date();
52
+ logger.info(`[DailyRate] Party style update started at ${startTime.toISOString()}`);
53
+ const qualityService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
54
+ const evService = container.resolve(extended_variant_1.EXTENDED_VARIANT_MODULE);
55
+ const remoteQuery = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
56
+ const pricingService = container.resolve(utils_1.Modules.PRICING);
57
+ // Build quality map: qly_code → qly_clarity
58
+ const allQualities = await qualityService.listQualityMasters({}, { select: ["qly_code", "qly_clarity"] });
59
+ const qualityMap = new Map();
60
+ for (const q of allQualities) {
61
+ if (q.qly_clarity != null) {
62
+ qualityMap.set(q.qly_code, q.qly_clarity);
63
+ }
64
+ }
65
+ logger.info(`[DailyRate] Party style update — batchSize=${perf_1.BATCH_SIZE}`);
66
+ const perf = (0, perf_1.createPerfSampler)();
67
+ const batchMetrics = [];
68
+ const lineSnapshots = [];
69
+ const variantSnapshots = [];
70
+ let offset = 0;
71
+ let batchIndex = 0;
72
+ while (true) {
73
+ // Only process mapped, non-deleted extended_variants
74
+ const variants = await evService.listExtendedVariants({ mapping_id: { $ne: null }, deleted_at: null }, {
75
+ take: perf_1.BATCH_SIZE,
76
+ skip: offset,
77
+ order: { id: "ASC" },
78
+ select: [
79
+ "id",
80
+ "party_style_id",
81
+ "mapping_id",
82
+ "mrp",
83
+ "actual_mrp",
84
+ "metal_total_amount",
85
+ "actual_metal_total_amount",
86
+ "actual_total_amount",
87
+ ],
88
+ });
89
+ if (!variants.length)
90
+ break;
91
+ for (const v of variants) {
92
+ variantSnapshots.push({
93
+ id: v.id,
94
+ mrp: v.mrp,
95
+ actual_mrp: v.actual_mrp,
96
+ metal_total_amount: v.metal_total_amount,
97
+ actual_total_amount: v.actual_total_amount,
98
+ mapping_id: v.mapping_id,
99
+ });
100
+ }
101
+ const partyStyleIds = variants.map((v) => v.party_style_id);
102
+ // Get all metal lines for these party styles
103
+ const lines = await evService.listPartyStyleDetailsLines({ party_style_id: partyStyleIds, raw_type: "Metal" }, {
104
+ select: [
105
+ "id",
106
+ "party_style_id",
107
+ "weight",
108
+ "qly_code",
109
+ "original_rate",
110
+ "rate",
111
+ "actual_amount",
112
+ "amount",
113
+ "final_amt",
114
+ ],
115
+ });
116
+ const lineUpdates = [];
117
+ const styleAccumulator = new Map();
118
+ for (const line of lines) {
119
+ lineSnapshots.push({
120
+ id: line.id,
121
+ original_rate: line.original_rate,
122
+ rate: line.rate,
123
+ actual_amount: line.actual_amount,
124
+ amount: line.amount,
125
+ final_amt: line.final_amt,
126
+ });
127
+ const computed = computeMetalRates(line, qualityMap, gold24kSaleRate);
128
+ if (!computed)
129
+ continue;
130
+ const { rate, amount } = computed;
131
+ const oldAmount = line.amount ?? 0;
132
+ lineUpdates.push({
133
+ id: line.id,
134
+ original_rate: rate,
135
+ rate,
136
+ actual_amount: amount,
137
+ amount,
138
+ final_amt: amount,
139
+ });
140
+ const partyStyleId = line.party_style_id;
141
+ const acc = styleAccumulator.get(partyStyleId) ?? {
142
+ newMetalTotal: 0,
143
+ mrpDelta: 0,
144
+ };
145
+ acc.newMetalTotal += amount;
146
+ acc.mrpDelta += amount - oldAmount;
147
+ styleAccumulator.set(partyStyleId, acc);
148
+ }
149
+ if (lineUpdates.length) {
150
+ await evService.bulkUpdateByIds("party_style_details_line", lineUpdates);
151
+ }
152
+ // Update extended_variants and sync Medusa prices for this batch
153
+ const variantUpdates = [];
154
+ for (const v of variants) {
155
+ const acc = styleAccumulator.get(v.party_style_id);
156
+ if (!acc)
157
+ continue;
158
+ const nextMrp = (v.mrp ?? 0) + acc.mrpDelta;
159
+ variantUpdates.push({
160
+ id: v.id,
161
+ mapping_id: v.mapping_id,
162
+ metal_total_amount: acc.newMetalTotal,
163
+ actual_metal_total_amount: acc.newMetalTotal,
164
+ mrp: nextMrp,
165
+ actual_mrp: (v.actual_mrp ?? v.mrp ?? 0) + acc.mrpDelta,
166
+ actual_total_amount: (v.actual_total_amount ?? v.mrp ?? 0) + acc.mrpDelta,
167
+ });
168
+ }
169
+ if (variantUpdates.length) {
170
+ await evService.bulkUpdateByIds("extended_variant", variantUpdates.map(({ mapping_id: _m, ...fields }) => fields));
171
+ // Update Medusa price sets directly — bypasses updateProductVariantsWorkflow
172
+ // to avoid emitting product-variant.updated per variant and workflow overhead.
173
+ const mrpByMappingId = new Map(variantUpdates.map((u) => [u.mapping_id, u.mrp]));
174
+ await syncMedusaPrices(variantUpdates.map((u) => u.mapping_id), mrpByMappingId, remoteQuery, pricingService);
175
+ }
176
+ await new Promise((resolve) => setImmediate(resolve));
177
+ batchMetrics.push(await perf.sampleBatch(batchIndex++, variants.length, lineUpdates.length));
178
+ logger.info(`[DailyRate][PartyStyle] batch offset=${offset} variants=${variants.length} lines_updated=${lineUpdates.length} prices_synced=${variantUpdates.length}`);
179
+ if (variants.length < perf_1.BATCH_SIZE)
180
+ break;
181
+ offset += perf_1.BATCH_SIZE;
182
+ }
183
+ const endTime = new Date();
184
+ const durationMs = endTime.getTime() - startTime.getTime();
185
+ logger.info(`[DailyRate] Party style update completed at ${endTime.toISOString()} (duration: ${durationMs}ms)`);
186
+ perf.summary("PartyStyle", batchMetrics, durationMs, logger);
187
+ const compensationData = {
188
+ lines: lineSnapshots,
189
+ variants: variantSnapshots,
190
+ };
191
+ return new workflows_sdk_1.StepResponse(compensationData, compensationData);
192
+ }, async (compensationData, { container }) => {
193
+ if (!compensationData)
194
+ return;
195
+ const evService = container.resolve(extended_variant_1.EXTENDED_VARIANT_MODULE);
196
+ const remoteQuery = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
197
+ const pricingService = container.resolve(utils_1.Modules.PRICING);
198
+ if (compensationData.lines.length) {
199
+ await evService.bulkUpdateByIds("party_style_details_line", compensationData.lines.map((l) => ({
200
+ id: l.id,
201
+ original_rate: l.original_rate,
202
+ rate: l.rate,
203
+ actual_amount: l.actual_amount,
204
+ amount: l.amount,
205
+ final_amt: l.final_amt,
206
+ })));
207
+ }
208
+ if (compensationData.variants.length) {
209
+ await evService.bulkUpdateByIds("extended_variant", compensationData.variants.map((v) => ({
210
+ id: v.id,
211
+ mrp: v.mrp,
212
+ actual_mrp: v.actual_mrp,
213
+ metal_total_amount: v.metal_total_amount,
214
+ actual_metal_total_amount: v.metal_total_amount,
215
+ actual_total_amount: v.actual_total_amount,
216
+ })));
217
+ const variantsWithMapping = compensationData.variants.filter((v) => v.mapping_id);
218
+ if (variantsWithMapping.length) {
219
+ const mrpByMappingId = new Map(variantsWithMapping.map((v) => [v.mapping_id, v.mrp]));
220
+ await syncMedusaPrices(variantsWithMapping.map((v) => v.mapping_id), mrpByMappingId, remoteQuery, pricingService);
221
+ }
222
+ }
223
+ });
224
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXBhcnR5LXN0eWxlLW1ldGFsLXJhdGVzLXN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2RhaWx5LXJhdGUvc3RlcHMvdXBkYXRlLXBhcnR5LXN0eWxlLW1ldGFsLXJhdGVzLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLHFFQUE2RTtBQUM3RSxxREFBK0U7QUFFL0Usb0VBQXdFO0FBRXhFLHdFQUE0RTtBQUc1RSxrQ0FBc0U7QUF5QnRFLFNBQVMsaUJBQWlCLENBQ3hCLElBQTBDLEVBQzFDLFVBQStCLEVBQy9CLGVBQXVCO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLElBQUksc0JBQVMsQ0FBQyxlQUFlLENBQUM7U0FDeEMsWUFBWSxDQUFDLE9BQU8sQ0FBQztTQUNyQixTQUFTLENBQUMsR0FBRyxDQUFDO1NBQ2QsWUFBWSxDQUFDLHNCQUFTLENBQUMsYUFBYSxDQUFDO1NBQ3JDLFFBQVEsRUFBRSxDQUFDO0lBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxzQkFBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDdEMsWUFBWSxDQUFDLElBQUksQ0FBQztTQUNsQixZQUFZLENBQUMsc0JBQVMsQ0FBQyxhQUFhLENBQUM7U0FDckMsUUFBUSxFQUFFLENBQUM7SUFFZCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzFCLENBQUM7QUFFRCxLQUFLLFVBQVUsZ0JBQWdCLENBQzdCLFVBQW9CLEVBQ3BCLGNBQW1DLEVBQ25DLFdBQWdCLEVBQ2hCLGNBQXFDO0lBRXJDLElBQUks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
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.updateStyleMasterMetalRatesStep = exports.updateStyleMasterMetalRatesStepId = void 0;
7
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
9
+ const quality_master_1 = require("../../../modules/quality-master");
10
+ const extended_product_1 = require("../../../modules/extended-product");
11
+ const perf_1 = require("../perf");
12
+ function computeMetalRates(line, qualityMap, gold24kSaleRate) {
13
+ const clarity = qualityMap.get(line.qly_code);
14
+ if (clarity == null) {
15
+ return null;
16
+ }
17
+ const rate = new bignumber_js_1.default(gold24kSaleRate)
18
+ .multipliedBy(clarity)
19
+ .dividedBy(100)
20
+ .integerValue(bignumber_js_1.default.ROUND_HALF_UP)
21
+ .toNumber();
22
+ const amount = new bignumber_js_1.default(line.weight)
23
+ .multipliedBy(rate)
24
+ .integerValue(bignumber_js_1.default.ROUND_HALF_UP)
25
+ .toNumber();
26
+ return { rate, amount };
27
+ }
28
+ exports.updateStyleMasterMetalRatesStepId = "update-style-master-metal-rates-step";
29
+ exports.updateStyleMasterMetalRatesStep = (0, workflows_sdk_1.createStep)(exports.updateStyleMasterMetalRatesStepId, async (input, { container }) => {
30
+ const { gold24kSaleRate } = input;
31
+ const logger = container.resolve("logger");
32
+ const startTime = new Date();
33
+ logger.info(`[DailyRate] Style master update started at ${startTime.toISOString()}`);
34
+ const qualityService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
35
+ const epService = container.resolve(extended_product_1.EXTENDED_PRODUCT_MODULE);
36
+ // Build quality map: qly_code → qly_clarity
37
+ const allQualities = await qualityService.listQualityMasters({}, { select: ["qly_code", "qly_clarity"] });
38
+ const qualityMap = new Map();
39
+ for (const q of allQualities) {
40
+ if (q.qly_clarity != null) {
41
+ qualityMap.set(q.qly_code, q.qly_clarity);
42
+ }
43
+ }
44
+ // Accumulator: style_id → aggregated values
45
+ const styleAccumulator = new Map();
46
+ logger.info(`[DailyRate] Style master update — batchSize=${perf_1.BATCH_SIZE}`);
47
+ const perf = (0, perf_1.createPerfSampler)();
48
+ const batchMetrics = [];
49
+ const lineSnapshots = [];
50
+ let offset = 0;
51
+ let batchIndex = 0;
52
+ while (true) {
53
+ const lines = await epService.listStyleDetailsLines({ raw_type: "Metal" }, {
54
+ take: perf_1.BATCH_SIZE,
55
+ skip: offset,
56
+ order: { id: "ASC" },
57
+ select: [
58
+ "id",
59
+ "style_id",
60
+ "weight",
61
+ "qly_code",
62
+ "original_rate",
63
+ "rate",
64
+ "actual_amount",
65
+ "amount",
66
+ "final_amt",
67
+ ],
68
+ });
69
+ if (!lines.length)
70
+ break;
71
+ const lineUpdates = [];
72
+ for (const line of lines) {
73
+ lineSnapshots.push({
74
+ id: line.id,
75
+ original_rate: line.original_rate,
76
+ rate: line.rate,
77
+ actual_amount: line.actual_amount,
78
+ amount: line.amount,
79
+ final_amt: line.final_amt,
80
+ });
81
+ const computed = computeMetalRates(line, qualityMap, gold24kSaleRate);
82
+ if (!computed)
83
+ continue;
84
+ const { rate, amount } = computed;
85
+ const oldAmount = line.amount ?? 0;
86
+ lineUpdates.push({
87
+ id: line.id,
88
+ original_rate: rate,
89
+ rate,
90
+ actual_amount: amount,
91
+ amount,
92
+ final_amt: amount,
93
+ });
94
+ const styleId = line.style_id;
95
+ const acc = styleAccumulator.get(styleId) ?? {
96
+ newMetalTotal: 0,
97
+ mrpDelta: 0,
98
+ };
99
+ acc.newMetalTotal += amount;
100
+ acc.mrpDelta += amount - oldAmount;
101
+ styleAccumulator.set(styleId, acc);
102
+ }
103
+ if (lineUpdates.length) {
104
+ await epService.bulkUpdateByIds("style_details_line", lineUpdates);
105
+ }
106
+ await new Promise((resolve) => setImmediate(resolve));
107
+ batchMetrics.push(await perf.sampleBatch(batchIndex++, lines.length, lineUpdates.length));
108
+ logger.info(`[DailyRate][StyleMaster] batch offset=${offset} lines=${lines.length} lines_updated=${lineUpdates.length}`);
109
+ if (lines.length < perf_1.BATCH_SIZE)
110
+ break;
111
+ offset += perf_1.BATCH_SIZE;
112
+ }
113
+ if (!styleAccumulator.size) {
114
+ return new workflows_sdk_1.StepResponse({ lines: lineSnapshots, products: [] }, { lines: lineSnapshots, products: [] });
115
+ }
116
+ // Load affected extended_products
117
+ const affectedStyleIds = Array.from(styleAccumulator.keys());
118
+ const products = await epService.listExtendedProducts({ style_id: affectedStyleIds }, {
119
+ select: [
120
+ "id",
121
+ "style_id",
122
+ "mrp",
123
+ "actual_mrp",
124
+ "metal_total_amount",
125
+ ],
126
+ });
127
+ const productSnapshots = products.map((p) => ({
128
+ id: p.id,
129
+ mrp: p.mrp,
130
+ actual_mrp: p.actual_mrp,
131
+ metal_total_amount: p.metal_total_amount,
132
+ }));
133
+ const productUpdates = [];
134
+ for (const p of products) {
135
+ const acc = styleAccumulator.get(p.style_id);
136
+ if (!acc)
137
+ continue;
138
+ productUpdates.push({
139
+ id: p.id,
140
+ metal_total_amount: acc.newMetalTotal,
141
+ mrp: (p.mrp ?? 0) + acc.mrpDelta,
142
+ actual_mrp: (p.actual_mrp ?? 0) + acc.mrpDelta,
143
+ });
144
+ }
145
+ if (productUpdates.length) {
146
+ await epService.bulkUpdateByIds("extended_product", productUpdates);
147
+ }
148
+ const endTime = new Date();
149
+ const durationMs = endTime.getTime() - startTime.getTime();
150
+ logger.info(`[DailyRate] Style master update completed at ${endTime.toISOString()} (duration: ${durationMs}ms)`);
151
+ perf.summary("StyleMaster", batchMetrics, durationMs, logger);
152
+ const compensationData = {
153
+ lines: lineSnapshots,
154
+ products: productSnapshots,
155
+ };
156
+ return new workflows_sdk_1.StepResponse(compensationData, compensationData);
157
+ }, async (compensationData, { container }) => {
158
+ if (!compensationData)
159
+ return;
160
+ const epService = container.resolve(extended_product_1.EXTENDED_PRODUCT_MODULE);
161
+ if (compensationData.lines.length) {
162
+ await epService.bulkUpdateByIds("style_details_line", compensationData.lines.map((l) => ({
163
+ id: l.id,
164
+ original_rate: l.original_rate,
165
+ rate: l.rate,
166
+ actual_amount: l.actual_amount,
167
+ amount: l.amount,
168
+ final_amt: l.final_amt,
169
+ })));
170
+ }
171
+ if (compensationData.products.length) {
172
+ await epService.bulkUpdateByIds("extended_product", compensationData.products.map((p) => ({
173
+ id: p.id,
174
+ mrp: p.mrp,
175
+ actual_mrp: p.actual_mrp,
176
+ metal_total_amount: p.metal_total_amount,
177
+ })));
178
+ }
179
+ });
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXN0eWxlLW1hc3Rlci1tZXRhbC1yYXRlcy1zdGVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9kYWlseS1yYXRlL3N0ZXBzL3VwZGF0ZS1zdHlsZS1tYXN0ZXItbWV0YWwtcmF0ZXMtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxnRUFBcUM7QUFDckMscUVBQTZFO0FBQzdFLG9FQUF3RTtBQUV4RSx3RUFBNEU7QUFHNUUsa0NBQXNFO0FBdUJ0RSxTQUFTLGlCQUFpQixDQUN4QixJQUEwQyxFQUMxQyxVQUErQixFQUMvQixlQUF1QjtJQUV2QixNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxJQUFJLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLHNCQUFTLENBQUMsZUFBZSxDQUFDO1NBQ3hDLFlBQVksQ0FBQyxPQUFPLENBQUM7U0FDckIsU0FBUyxDQUFDLEdBQUcsQ0FBQztTQUNkLFlBQVksQ0FBQyxzQkFBUyxDQUFDLGFBQWEsQ0FBQztTQUNyQyxRQUFRLEVBQUUsQ0FBQztJQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksc0JBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3RDLFlBQVksQ0FBQyxJQUFJLENBQUM7U0FDbEIsWUFBWSxDQUFDLHNCQUFTLENBQUMsYUFBYSxDQUFDO1NBQ3JDLFFBQVEsRUFBRSxDQUFDO0lBRWQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMxQixDQUFDO0FBRVksUUFBQSxpQ0FBaUMsR0FDNUMsc0NBQXNDLENBQUM7QUFFNUIsUUFBQSwrQkFBK0IsR0FBRyxJQUFBLDBCQUFVLEVBQ3ZELHlDQUFpQyxFQUNqQyxLQUFL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