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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +71 -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,277 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncSaleReturnToErpStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const order_request_helper_1 = require("../utils/order-request-helper");
7
+ const sale_master_1 = require("../../../modules/sale-master");
8
+ const sale_return_master_1 = require("../../../modules/sale-return-master");
9
+ const framework_1 = require("@medusajs/framework");
10
+ /**
11
+ * Step to sync sale return data to GATI ERP.
12
+ * On success, creates/updates sale_master from ERP response and links it to the order (same as order_master).
13
+ */
14
+ exports.syncSaleReturnToErpStep = (0, workflows_sdk_1.createStep)("sync-sale-return-to-erp", async (input, { container }) => {
15
+ const { order_id, request_id, request_items, customer_note } = input;
16
+ try {
17
+ const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
18
+ // Phase 10: Early exit check - prevent duplicate syncs
19
+ try {
20
+ const { data: orderRequests } = await query.graph({
21
+ entity: "order_requests",
22
+ fields: ["*"],
23
+ filters: { id: request_id },
24
+ });
25
+ const orderRequest = orderRequests?.[0];
26
+ if (orderRequest?.metadata?.sync_status === "synced" ||
27
+ orderRequest?.metadata?.external_id) {
28
+ framework_1.logger.info(`[SyncSaleReturn] Skipping request ${request_id} — already synced`);
29
+ return new workflows_sdk_1.StepResponse({
30
+ request_id,
31
+ order_id,
32
+ erp_response: null,
33
+ sale_return_data: null,
34
+ synced: false,
35
+ error: "Request already synced",
36
+ });
37
+ }
38
+ }
39
+ catch (checkError) {
40
+ framework_1.logger.warn(`[SyncSaleReturn] Failed to check sync status: ${checkError?.message}`);
41
+ // Continue with sync attempt anyway
42
+ }
43
+ const { data: orderData } = await query.graph({
44
+ entity: "order",
45
+ fields: [
46
+ "*",
47
+ "customer.*",
48
+ "customer.extended_customer.*",
49
+ "items.*",
50
+ "items.variant.*",
51
+ "items.variant.extended_variant.*",
52
+ "shipping_address.*",
53
+ "shipping_address.metadata.*",
54
+ "metadata",
55
+ ],
56
+ filters: { id: order_id },
57
+ });
58
+ const order = orderData?.[0];
59
+ if (!order) {
60
+ throw new Error(`Order not found: ${order_id}`);
61
+ }
62
+ const customer = order.customer;
63
+ let partyMaster = null;
64
+ try {
65
+ const { data: partyData } = await query.graph({
66
+ entity: "party_master",
67
+ fields: ["*"],
68
+ filters: {
69
+ party_no: customer?.extended_customer?.external_id || "",
70
+ },
71
+ });
72
+ partyMaster = partyData?.[0];
73
+ }
74
+ catch {
75
+ console.log("[syncSaleReturnToErpStep] Party master not found, using customer data");
76
+ }
77
+ const enrichedItems = request_items.map((item) => {
78
+ const lineItem = order.items?.find((oi) => oi.id === item.line_item_id);
79
+ return { ...item, line_item: lineItem };
80
+ });
81
+ const saleReturnData = await (0, order_request_helper_1.buildSaleReturnData)(order, customer, partyMaster, enrichedItems, customer_note || "", container, "return");
82
+ console.log("[ERP SYNC] return payload:", JSON.stringify(saleReturnData, null, 2));
83
+ let erpResponse = null;
84
+ try {
85
+ const erpService = container.resolve("erp");
86
+ const inputFrom = order?.metadata?.cart_order_type === "pos" ? "POS" : "WEBSITE";
87
+ erpResponse = await erpService.createSaleReturn(saleReturnData, inputFrom);
88
+ console.log("[ERP SYNC] return response:", JSON.stringify(erpResponse, null, 2));
89
+ }
90
+ catch (erpError) {
91
+ console.error("[syncSaleReturnToErpStep] ERP sync failed:", erpError.message);
92
+ erpResponse = {
93
+ status: false,
94
+ message: `ERP sync failed: ${erpError.message}`,
95
+ data: null,
96
+ };
97
+ }
98
+ // On success: create/update sale_master from ERP response and link to order
99
+ // Also create sale_return_master from webhook step and update order_request metadata
100
+ if (erpResponse?.status === true && erpResponse?.data) {
101
+ const data = erpResponse.data;
102
+ const saleMasterService = container.resolve(sale_master_1.SALE_MASTER_MODULE);
103
+ const existing = await saleMasterService.listSaleMasters({
104
+ jewel_trans_id: data.JewelTransId,
105
+ });
106
+ const existingList = Array.isArray(existing)
107
+ ? existing
108
+ : (existing?.data ?? []);
109
+ const saleMasterPayload = {
110
+ jewel_trans_id: data.JewelTransId,
111
+ jewel_trans_prefix: data.JewelTransPrefix ?? null,
112
+ jewel_trans_no: data.JewelTransNo ?? null,
113
+ jewel_trans_date: data.JewelTransDate
114
+ ? new Date(data.JewelTransDate)
115
+ : null,
116
+ party_no: data.PartyNo ?? null,
117
+ firm_name: data.FirmName ?? null,
118
+ sales_person: data.SalesPerson ?? null,
119
+ branch_no: data.BranchNo ?? null,
120
+ branch_name: data.BranchName ?? null,
121
+ gross_amount: data.GrossAmount ?? null,
122
+ total_addless_amount: data.TotalAddlessAmount ?? null,
123
+ amount: data.Amount ?? null,
124
+ remarks: data.Remarks ?? null,
125
+ shipping_id: data.ShippingId ?? null,
126
+ metadata: { JewelTransInward: data.JewelTransInward },
127
+ };
128
+ let master;
129
+ if (existingList.length > 0) {
130
+ await saleMasterService.updateSaleMasters({
131
+ id: existingList[0].id,
132
+ ...saleMasterPayload,
133
+ });
134
+ master = existingList[0];
135
+ }
136
+ else {
137
+ const created = await saleMasterService.createSaleMasters(saleMasterPayload);
138
+ master = Array.isArray(created)
139
+ ? created[0]
140
+ : (created?.data?.[0] ?? created);
141
+ }
142
+ if (master?.id) {
143
+ const link = container.resolve("link");
144
+ try {
145
+ await link.create({
146
+ [sale_master_1.SALE_MASTER_MODULE]: { sale_master_id: master.id },
147
+ [utils_1.Modules.ORDER]: { order_id },
148
+ });
149
+ console.log("[ERP SYNC] Linked sale_master", master.id, "to order", order_id);
150
+ }
151
+ catch (linkError) {
152
+ if (linkError?.message?.includes("Cannot create multiple links") ||
153
+ linkError?.message?.includes("already exists") ||
154
+ linkError?.code === "23505" ||
155
+ linkError?.name === "UniqueConstraintViolationError") {
156
+ console.log("[ERP SYNC] Link already exists sale_master", master.id, "to order", order_id);
157
+ }
158
+ else {
159
+ throw linkError;
160
+ }
161
+ }
162
+ }
163
+ // Phase 3: Create/update sale_return_master from ERP response
164
+ // Link it to order_request via order_request_id field
165
+ try {
166
+ if (data.JewelTransId) {
167
+ const saleReturnService = container.resolve(sale_return_master_1.SALE_RETURN_MASTER_MODULE);
168
+ const erpService = container.resolve("erp");
169
+ // Fetch full sale return data from ERP
170
+ const saleReturnData = await erpService.getMasterData("sale_return", String(data.JewelTransId));
171
+ if (saleReturnData) {
172
+ const { SaleReturn: saleReturnRecords } = saleReturnData;
173
+ if (Array.isArray(saleReturnRecords) &&
174
+ saleReturnRecords.length > 0) {
175
+ for (const saleReturn of saleReturnRecords) {
176
+ const existing = await saleReturnService.listSaleReturnMasters({
177
+ sale_return_id: Number(saleReturn.JewelTransId),
178
+ });
179
+ // Build addless_detail from response (tax/discount breakdown)
180
+ const addlessDetail = saleReturn.AddlessDetail?.length
181
+ ? saleReturn.AddlessDetail.map((item) => ({
182
+ prompt: item.Prompt,
183
+ addless_per: item.AddLessPer || null,
184
+ addless_amount: item.AddLessAmount,
185
+ }))
186
+ : null;
187
+ const addlessDetailWithSummary = addlessDetail
188
+ ? {
189
+ items: addlessDetail,
190
+ gross_amount: saleReturn.GrossAmount,
191
+ total_addless_amount: saleReturn.TotalAddlessAmount,
192
+ final_amount: saleReturn.Amount,
193
+ }
194
+ : {
195
+ gross_amount: saleReturn.GrossAmount,
196
+ total_addless_amount: saleReturn.TotalAddlessAmount,
197
+ final_amount: saleReturn.Amount,
198
+ };
199
+ const saleReturnPayload = {
200
+ sale_return_id: saleReturn.JewelTransId,
201
+ return_no: saleReturn.JewelTransNo,
202
+ return_date: saleReturn.JewelTransDate,
203
+ party_no: saleReturn.PartyNo,
204
+ branch_no: saleReturn.BranchNo,
205
+ status: saleReturn.Status || null,
206
+ total_amount: saleReturn.Amount,
207
+ remarks: saleReturn.Remarks || null,
208
+ addless_detail: addlessDetailWithSummary,
209
+ order_request_id: request_id,
210
+ metadata: {
211
+ erp_prefix: saleReturn.JewelTransPrefix,
212
+ erp_jewel_trans_id: saleReturn.JewelTransId,
213
+ sales_person: saleReturn.SalesPerson,
214
+ firm_name: saleReturn.FirmName,
215
+ },
216
+ };
217
+ if (existing?.length > 0) {
218
+ await saleReturnService.updateSaleReturnMasters({
219
+ id: existing[0].id,
220
+ ...saleReturnPayload,
221
+ });
222
+ framework_1.logger.info(`[ERP SYNC] Updated sale_return_master ${existing[0].id} for JewelTransId ${data.JewelTransId}`);
223
+ }
224
+ else {
225
+ await saleReturnService.createSaleReturnMasters(saleReturnPayload);
226
+ framework_1.logger.info(`[ERP SYNC] Created sale_return_master for JewelTransId ${data.JewelTransId}`);
227
+ }
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+ catch (saleReturnError) {
234
+ framework_1.logger.warn(`[ERP SYNC] Failed to create/update sale_return_master: ${saleReturnError?.message}`);
235
+ // Don't fail the entire step - this is supplementary processing
236
+ }
237
+ // Mark order_request as synced to prevent cron re-processing before ERP webhook fires
238
+ try {
239
+ const orderRequestService = container.resolve("order_requests");
240
+ if (typeof orderRequestService?.updateOrderRequest === "function") {
241
+ await orderRequestService.updateOrderRequest(request_id, {
242
+ metadata: {
243
+ sync_status: "synced",
244
+ external_id: String(data.JewelTransId),
245
+ },
246
+ });
247
+ framework_1.logger.info(`[ERP SYNC] Marked order_request ${request_id} as synced`);
248
+ }
249
+ }
250
+ catch (markErr) {
251
+ framework_1.logger.warn(`[ERP SYNC] Could not mark order_request as synced: ${markErr?.message}`);
252
+ }
253
+ }
254
+ return new workflows_sdk_1.StepResponse({
255
+ request_id,
256
+ order_id,
257
+ erp_response: erpResponse,
258
+ sale_return_data: saleReturnData,
259
+ synced: erpResponse?.status === true,
260
+ error: erpResponse?.status !== true
261
+ ? erpResponse?.message || "ERP sync failed"
262
+ : undefined,
263
+ });
264
+ }
265
+ catch (error) {
266
+ console.error("[syncSaleReturnToErpStep] Error:", error);
267
+ return new workflows_sdk_1.StepResponse({
268
+ request_id,
269
+ order_id,
270
+ erp_response: null,
271
+ sale_return_data: null,
272
+ synced: false,
273
+ error: error?.message ?? String(error),
274
+ });
275
+ }
276
+ });
277
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1zYWxlLXJldHVybi10by1lcnAtc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb3JkZXJzL3N0ZXBzL3N5bmMtc2FsZS1yZXR1cm4tdG8tZXJwLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUErRTtBQUMvRSx3RUFHdUM7QUFFdkMsOERBQWtFO0FBQ2xFLDRFQUFnRjtBQUVoRixtREFBNkM7QUFtQjdDOzs7R0FHRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsSUFBQSwwQkFBVSxFQUMvQyx5QkFBeUIsRUFDekIsS0FBSyxFQUNILEtBQStCLEVBQy9CLEVBQUUsU0FBUyxFQUFFLEVBQ3FDLEVBQUU7SUFDcEQsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVyRSxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpFLHVEQUF1RDtRQUN2RCxJQUFJLENBQUM7WUFDSCxNQUFNLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDaEQsTUFBTSxFQUFFLGdCQUFnQjtnQkFDeEIsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO2dCQUNiLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxZQUFZLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFDRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFdBQVcsS0FBSyxRQUFRO2dCQUNoRCxZQUFZLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFDbkMsQ0FBQztnQkFDRCxrQkFBTSxDQUFDLElBQUks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
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateOldGoldSyncStatusStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ exports.updateOldGoldSyncStatusStep = (0, workflows_sdk_1.createStep)("update-old-gold-sync-status", async (input, { container }) => {
7
+ const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
8
+ if (!input.old_gold_id) {
9
+ logger.warn("[updateOldGoldSyncStatus] No old_gold_id provided, skipping");
10
+ return new workflows_sdk_1.StepResponse({ updated: false }, null);
11
+ }
12
+ try {
13
+ const oldGoldService = container.resolve("old_gold");
14
+ const prevRecords = await oldGoldService.listOldGoldEntries({
15
+ id: input.old_gold_id,
16
+ });
17
+ if (!prevRecords?.length) {
18
+ logger.warn(`[updateOldGoldSyncStatus] OldGoldEntry ${input.old_gold_id} not found`);
19
+ return new workflows_sdk_1.StepResponse({ updated: false }, null);
20
+ }
21
+ const prev = prevRecords[0];
22
+ const synced = input.synced !== false && input.material_trans_id != null;
23
+ const updateEntry = {
24
+ id: input.old_gold_id,
25
+ sync_erp: synced,
26
+ };
27
+ if (synced) {
28
+ updateEntry.external_id = String(input.material_trans_id);
29
+ updateEntry.sync_erp_error = null;
30
+ }
31
+ else {
32
+ updateEntry.sync_erp_error = input.sync_erp_error ?? null;
33
+ }
34
+ await oldGoldService.updateOldGoldEntries([updateEntry]);
35
+ logger.info(`[updateOldGoldSyncStatus] OldGoldEntry ${input.old_gold_id} sync_erp=${synced}, external_id=${input.material_trans_id ?? "—"}, error=${input.sync_erp_error ?? "—"}`);
36
+ return new workflows_sdk_1.StepResponse({ updated: true }, {
37
+ id: input.old_gold_id,
38
+ prev_sync_erp: prev.sync_erp ?? false,
39
+ prev_external_id: prev.external_id ?? null,
40
+ });
41
+ }
42
+ catch (err) {
43
+ logger.error(`[updateOldGoldSyncStatus] Failed to update OldGoldEntry ${input.old_gold_id}: ${err?.message}`);
44
+ return new workflows_sdk_1.StepResponse({ updated: false }, null);
45
+ }
46
+ }, async (prevState, { container }) => {
47
+ if (!prevState)
48
+ return;
49
+ const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
50
+ try {
51
+ const oldGoldService = container.resolve("old_gold");
52
+ await oldGoldService.updateOldGoldEntries([
53
+ {
54
+ id: prevState.id,
55
+ sync_erp: prevState.prev_sync_erp,
56
+ external_id: prevState.prev_external_id,
57
+ },
58
+ ]);
59
+ }
60
+ catch (err) {
61
+ logger.error(`[updateOldGoldSyncStatus] Compensation failed: ${err?.message}`);
62
+ }
63
+ });
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW9sZC1nb2xkLXN5bmMtc3RhdHVzLXN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy9zdGVwcy91cGRhdGUtb2xkLWdvbGQtc3luYy1zdGF0dXMtc3RlcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFDN0UscURBQXNFO0FBZXpELFFBQUEsMkJBQTJCLEdBQUcsSUFBQSwwQkFBVSxFQUNuRCw2QkFBNkIsRUFDN0IsS0FBSyxFQUNILEtBQW1DLEVBQ25DLEVBQUUsU0FBUyxFQUFFLEVBQ2tELEVBQUU7SUFDakUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsNkRBQTZELENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQVEsQ0FBQztRQUU1RCxNQUFNLFdBQVcsR0FBRyxNQUFNLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQztZQUMxRCxFQUFFLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDdEIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxLQUFLLENBQUMsV0FBVyxZQUFZLENBQUMsQ0FBQztZQUNyRixPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNw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
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.applyOrderItemPriceChange = applyOrderItemPriceChange;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ /**
6
+ * Applies one or more order line-item unit_price changes as a SINGLE confirmed
7
+ * order change. Shared by every price-change source (inward update, daily
8
+ * gold-rate job, on-demand gold-rate persist).
9
+ *
10
+ * Unlike a bare updateOrderLineItems/updateOrderItem write, the order-change
11
+ * confirm flow:
12
+ * - bumps order.version exactly once (so the update shows as one new version
13
+ * in history, no matter how many items changed),
14
+ * - upserts the new-version order_item rows (the "detail" getOrderDetail-
15
+ * Workflow reads), so the displayed unit_price and recomputed totals reflect
16
+ * the change,
17
+ * - recomputes and persists order.summary,
18
+ * - records the change (with our rich diff in metadata) for the history UI.
19
+ *
20
+ * There is no Medusa guard blocking this on completed/fulfilled orders. It will
21
+ * throw if the order already has an active (pending/requested) change, so call
22
+ * sites should wrap this in try/catch and treat failures as non-fatal. On any
23
+ * failure mid-flight it declines the change it created, so a failed reprice
24
+ * never leaves a dangling active change that would block the order.
25
+ *
26
+ * `orderService` is the resolved Order Module service (Modules.ORDER).
27
+ */
28
+ async function applyOrderItemPriceChange(orderService, input) {
29
+ if (!input.items?.length)
30
+ return;
31
+ const orderChange = await orderService.createOrderChange({
32
+ order_id: input.order_id,
33
+ change_type: "update_order",
34
+ description: input.description ?? "Gold rate update",
35
+ created_by: "system",
36
+ metadata: input.history_metadata ?? {},
37
+ });
38
+ // createOrderChange → confirmOrderChange is NOT atomic: createOrderChange
39
+ // immediately persists a PENDING change (and bumps order.version). Medusa
40
+ // allows only ONE active (pending/requested) change per order, so if either
41
+ // step below throws, the dangling PENDING change permanently blocks EVERY
42
+ // future order change on this order — repricing AND fulfillment alike. The
43
+ // call sites here swallow the throw as non-fatal, which would otherwise brick
44
+ // the order silently. Decline the change on failure so it can never linger.
45
+ try {
46
+ // One ITEM_UPDATE action per repriced item, all under the same order change.
47
+ // The action MUST be the ChangeActionType enum value ("ITEM_UPDATE"). The
48
+ // order module looks up its action handler by exact string
49
+ // (typeDefinition[action.action]) and throws "Action type ... is not
50
+ // defined" otherwise — which confirmOrderChange surfaces, causing this whole
51
+ // change to be declined and the reprice to silently never apply.
52
+ await orderService.addOrderAction(input.items.map((it) => ({
53
+ order_change_id: orderChange.id,
54
+ action: utils_1.ChangeActionType.ITEM_UPDATE,
55
+ details: {
56
+ reference_id: it.item_id,
57
+ quantity: it.quantity,
58
+ unit_price: it.new_unit_price,
59
+ },
60
+ })));
61
+ await orderService.confirmOrderChange({
62
+ id: orderChange.id,
63
+ confirmed_by: "system",
64
+ });
65
+ }
66
+ catch (err) {
67
+ // Best-effort rollback: declining moves it out of the active
68
+ // (pending/requested) set so it stops blocking the order. Keep the original
69
+ // error as the thrown one even if cleanup also fails.
70
+ try {
71
+ await orderService.declineOrderChange(orderChange.id);
72
+ }
73
+ catch {
74
+ // swallow cleanup failure; rethrow the real error below
75
+ }
76
+ throw err;
77
+ }
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbHktb3JkZXItaXRlbS1wcmljZS1jaGFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy91dGlscy9hcHBseS1vcmRlci1pdGVtLXByaWNlLWNoYW5nZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1EQSw4REF1REM7QUExR0QscURBQTZEO0FBNEI3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQUNJLEtBQUssVUFBVSx5QkFBeUIsQ0FDN0MsWUFBaUIsRUFDakIsS0FBZ0M7SUFFaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUFFLE9BQU87SUFFakMsTUFBTSxXQUFXLEdBQUcsTUFBTSxZQUFZLENBQUMsaUJBQWlCLENBQUM7UUFDdkQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1FBQ3hCLFdBQVcsRUFBRSxjQUFjO1FBQzNCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLGtCQUFrQjtRQUNwRCxVQUFVLEVBQUUsUUFBUTtRQUNwQixRQUFRLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixJQUFJLEVBQUU7S0FDdkMsQ0FBQyxDQUFDO0lBRUgsMEVBQTBFO0lBQzFFLDBFQUEwRTtJQUMxRSw0RUFBNEU7SUFDNUUsMEVBQTBFO0lBQzFFLDJFQUEyRTtJQUMzRSw4RUFBOEU7SUFDOUUsNEVBQTRFO0lBQzVFLElBQUksQ0FBQztRQUNILDZFQUE2RTtRQUM3RSwwRUFBMEU7UUFDMUUsMkRBQTJEO1FBQzNELHFFQUFxRTtRQUNyRSw2RUFBNkU7UUFDN0UsaUVBQWlFO1FBQ2pFLE1BQU0sWUFBWSxDQUFDLGNBQWMsQ0FDL0IsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdkIsZUFBZSxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQy9CLE1BQU0sRUFBRSx3QkFBZ0IsQ0FBQyxXQUFXO1lBQ3BDLE9BQU8sRUFBRTtnQkFDUCxZQUFZLEVBQUUsRUFBRSxDQUFDLE9BQU87Z0JBQ3hCLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUTtnQkFDckIsVUFBVSxFQUFFLEVBQUUsQ0FBQyxjQUFjO2FBQzlCO1NBQ0YsQ0FBQyxDQUFDLENBQ0osQ0FBQztRQUVGLE1BQU0sWUFBWSxDQUFDLGtCQUFrQixDQUFDO1lBQ3BDLEVBQUUsRUFBRSxXQUFXLENBQUMsRUFBRTtZQUNsQixZQUFZLEVBQUUsUUFBUTtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLDZEQUE2RDtRQUM3RCw0RUFBNEU7UUFDNUUsc0RBQXNEO1FBQ3RELElBQUksQ0FBQztZQUNILE1BQU0sWUFBWSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1Asd0RBQXdEO1FBQzFELENBQUM7UUFDRCxNQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7QUFDSCxDQUFDIn0=