@devx-commerce/plugin-gati 0.0.34-beta.7 → 0.0.34-beta.71

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 (369) 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/masters/utils.js +29 -1
  5. package/.medusa/server/src/api/admin/masters/validators.js +2 -2
  6. package/.medusa/server/src/api/admin/variant-options/recalculate/route.js +446 -0
  7. package/.medusa/server/src/api/admin/variant-options/sync/route.js +21 -5
  8. package/.medusa/server/src/api/erp/webhook/config.js +71 -5
  9. package/.medusa/server/src/api/erp/webhook/route.js +10 -137
  10. package/.medusa/server/src/api/erp/webhook/utils.js +8 -1
  11. package/.medusa/server/src/api/pos/customer-ledger/middleware.js +13 -0
  12. package/.medusa/server/src/api/pos/customer-ledger/route.js +50 -0
  13. package/.medusa/server/src/api/pos/generate-invoice/route.js +164 -0
  14. package/.medusa/server/src/api/pos/gold/calculate/route.js +104 -0
  15. package/.medusa/server/src/api/pos/gold/item-master-purity.js +46 -0
  16. package/.medusa/server/src/api/pos/gold/middleware.js +18 -0
  17. package/.medusa/server/src/api/pos/gold/route.js +83 -0
  18. package/.medusa/server/src/api/pos/gold-rate/route.js +37 -24
  19. package/.medusa/server/src/api/pos/middleware.js +13 -1
  20. package/.medusa/server/src/api/pos/old-gold-item/middleware.js +10 -0
  21. package/.medusa/server/src/api/pos/old-gold-item/route.js +52 -0
  22. package/.medusa/server/src/api/pos/platinumdata/middleware.js +13 -0
  23. package/.medusa/server/src/api/pos/platinumdata/route.js +41 -0
  24. package/.medusa/server/src/api/pos/silverdata/middleware.js +13 -0
  25. package/.medusa/server/src/api/pos/silverdata/route.js +41 -0
  26. package/.medusa/server/src/api/pos/wallet-balance/middleware.js +13 -0
  27. package/.medusa/server/src/api/pos/wallet-balance/route.js +68 -0
  28. package/.medusa/server/src/api/store/custom-price/validators.js +2 -2
  29. package/.medusa/server/src/api/store/customer-ledger/middleware.js +13 -0
  30. package/.medusa/server/src/api/store/customer-ledger/route.js +49 -0
  31. package/.medusa/server/src/api/store/gold-rate/validators.js +2 -2
  32. package/.medusa/server/src/api/store/middleware.js +5 -1
  33. package/.medusa/server/src/api/store/wallet-balance/middleware.js +13 -0
  34. package/.medusa/server/src/api/store/wallet-balance/route.js +67 -0
  35. package/.medusa/server/src/jobs/process-erp-events.js +128 -0
  36. package/.medusa/server/src/jobs/process-variant-option-sync.js +46 -29
  37. package/.medusa/server/src/jobs/sync-addless-detail.js +65 -0
  38. package/.medusa/server/src/jobs/sync-book-list-and-applicable-policy.js +94 -0
  39. package/.medusa/server/src/jobs/sync-customer-advance-payment-erp.js +105 -0
  40. package/.medusa/server/src/jobs/sync-customer-erp.js +119 -0
  41. package/.medusa/server/src/jobs/sync-item-master.js +26 -0
  42. package/.medusa/server/src/jobs/sync-labour-chart-master.js +26 -0
  43. package/.medusa/server/src/jobs/sync-order-erp.js +46 -20
  44. package/.medusa/server/src/jobs/sync-order-request-erp.js +61 -0
  45. package/.medusa/server/src/jobs/sync-payment-book-master.js +68 -0
  46. package/.medusa/server/src/jobs/sync-rate-chart-master.js +26 -0
  47. package/.medusa/server/src/jobs/sync-report-master.js +51 -0
  48. package/.medusa/server/src/jobs/sync-sale-return-policy-master.js +35 -0
  49. package/.medusa/server/src/jobs/sync-urd-purchase-erp.js +82 -0
  50. package/.medusa/server/src/lib/api-response.js +2 -1
  51. package/.medusa/server/src/links/jewel-trans-master.js +13 -0
  52. package/.medusa/server/src/links/order-master.js +13 -0
  53. package/.medusa/server/src/links/sale-master.js +13 -0
  54. package/.medusa/server/src/modules/addless-detail/index.js +13 -0
  55. package/.medusa/server/src/modules/addless-detail/migrations/Migration20260212101102.js +15 -0
  56. package/.medusa/server/src/modules/addless-detail/migrations/Migration20260213000000.js +47 -0
  57. package/.medusa/server/src/modules/addless-detail/migrations/Migration20260226053037.js +15 -0
  58. package/.medusa/server/src/modules/addless-detail/models/addless-master.js +17 -0
  59. package/.medusa/server/src/modules/addless-detail/service.js +10 -0
  60. package/.medusa/server/src/modules/applicable-sale-return-policy/index.js +13 -0
  61. package/.medusa/server/src/modules/applicable-sale-return-policy/migrations/Migration20260123083526.js +15 -0
  62. package/.medusa/server/src/modules/applicable-sale-return-policy/models/applicable-sale-return-policy.js +23 -0
  63. package/.medusa/server/src/modules/applicable-sale-return-policy/service.js +10 -0
  64. package/.medusa/server/src/modules/book-list/index.js +13 -0
  65. package/.medusa/server/src/modules/book-list/migrations/Migration20260123083525.js +15 -0
  66. package/.medusa/server/src/modules/book-list/migrations/Migration20260401051011.js +14 -0
  67. package/.medusa/server/src/modules/book-list/models/book-list.js +13 -0
  68. package/.medusa/server/src/modules/book-list/service.js +10 -0
  69. package/.medusa/server/src/modules/category-group-master/migrations/Migration20250729035221.js +2 -2
  70. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js +2 -2
  71. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js +2 -2
  72. package/.medusa/server/src/modules/category-master/migrations/Migration20250513122212.js +2 -2
  73. package/.medusa/server/src/modules/category-master/migrations/Migration20250519180539.js +2 -2
  74. package/.medusa/server/src/modules/category-master/migrations/Migration20250531004724.js +2 -2
  75. package/.medusa/server/src/modules/category-master/migrations/Migration20250729040659.js +2 -2
  76. package/.medusa/server/src/modules/category-master/migrations/Migration20251031061327.js +2 -2
  77. package/.medusa/server/src/modules/category-master/migrations/Migration20251104045755.js +2 -2
  78. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20250531022203.js +2 -2
  79. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js +2 -2
  80. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js +2 -2
  81. package/.medusa/server/src/modules/collection-master/migrations/Migration20250513122211.js +2 -2
  82. package/.medusa/server/src/modules/collection-master/migrations/Migration20250531025048.js +2 -2
  83. package/.medusa/server/src/modules/collection-master/migrations/Migration20251031060941.js +2 -2
  84. package/.medusa/server/src/modules/collection-master/migrations/Migration20251104050012.js +2 -2
  85. package/.medusa/server/src/modules/customer-receive-voucher/index.js +13 -0
  86. package/.medusa/server/src/modules/customer-receive-voucher/migrations/Migration20250115000000.js +51 -0
  87. package/.medusa/server/src/modules/customer-receive-voucher/migrations/Migration20260106050934.js +18 -0
  88. package/.medusa/server/src/modules/customer-receive-voucher/models/customer-receive-voucher.js +35 -0
  89. package/.medusa/server/src/modules/customer-receive-voucher/service.js +10 -0
  90. package/.medusa/server/src/modules/discount-master/migrations/Migration20250707232514.js +2 -2
  91. package/.medusa/server/src/modules/discount-master/migrations/Migration20250708051709.js +2 -2
  92. package/.medusa/server/src/modules/discount-master/migrations/Migration20250708051737.js +2 -2
  93. package/.medusa/server/src/modules/discount-master/migrations/Migration20251031061523.js +2 -2
  94. package/.medusa/server/src/modules/discount-master/migrations/Migration20251104050153.js +2 -2
  95. package/.medusa/server/src/modules/erp/migrations/Migration20250513121436.js +2 -2
  96. package/.medusa/server/src/modules/erp/service.js +601 -8
  97. package/.medusa/server/src/modules/erp-event/migrations/Migration20250908040911.js +2 -2
  98. package/.medusa/server/src/modules/erp-event/migrations/Migration20250922095956.js +2 -2
  99. package/.medusa/server/src/modules/erp-event/migrations/Migration20260529052734.js +14 -0
  100. package/.medusa/server/src/modules/erp-event/models/erp-event.js +6 -1
  101. package/.medusa/server/src/modules/extended-product/migrations/Migration20250620030100.js +2 -2
  102. package/.medusa/server/src/modules/extended-product/migrations/Migration20250716041546.js +2 -2
  103. package/.medusa/server/src/modules/extended-product/migrations/Migration20251103182726.js +2 -2
  104. package/.medusa/server/src/modules/extended-product/migrations/Migration20251119062526.js +2 -2
  105. package/.medusa/server/src/modules/extended-product/migrations/Migration20251202055742.js +2 -2
  106. package/.medusa/server/src/modules/extended-product/migrations/Migration20251202064200.js +2 -2
  107. package/.medusa/server/src/modules/extended-product/migrations/Migration20260323103543.js +14 -0
  108. package/.medusa/server/src/modules/extended-product/models/extended-product.js +2 -1
  109. package/.medusa/server/src/modules/extended-product/service.js +37 -1
  110. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030335.js +2 -2
  111. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030522.js +2 -2
  112. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250629220100.js +2 -2
  113. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250629223425.js +2 -2
  114. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250704064831.js +2 -2
  115. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250716121609.js +2 -2
  116. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250725104852.js +2 -2
  117. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250726232339.js +2 -2
  118. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250916065103.js +2 -2
  119. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251119063328.js +2 -2
  120. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120045708.js +2 -2
  121. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120051832.js +2 -2
  122. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120052514.js +2 -2
  123. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251202055952.js +2 -2
  124. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251210112341.js +18 -0
  125. package/.medusa/server/src/modules/extended-variant/migrations/Migration20260616000001.js +14 -0
  126. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +4 -2
  127. package/.medusa/server/src/modules/extended-variant/service.js +37 -1
  128. package/.medusa/server/src/modules/item-master/index.js +13 -0
  129. package/.medusa/server/src/modules/item-master/migrations/Migration20260212101055.js +15 -0
  130. package/.medusa/server/src/modules/item-master/models/item-master.js +20 -0
  131. package/.medusa/server/src/modules/item-master/service.js +10 -0
  132. package/.medusa/server/src/modules/item-size-master/migrations/Migration20251031111036.js +2 -2
  133. package/.medusa/server/src/modules/jewel-trans-master/index.js +13 -0
  134. package/.medusa/server/src/modules/jewel-trans-master/migrations/Migration20260226053036.js +57 -0
  135. package/.medusa/server/src/modules/jewel-trans-master/models/jewel-trans-master.js +151 -0
  136. package/.medusa/server/src/modules/jewel-trans-master/service.js +16 -0
  137. package/.medusa/server/src/modules/labour-chart-master/index.js +13 -0
  138. package/.medusa/server/src/modules/labour-chart-master/migrations/Migration20260101081502.js +15 -0
  139. package/.medusa/server/src/modules/labour-chart-master/models/labour-chart-master.js +16 -0
  140. package/.medusa/server/src/modules/labour-chart-master/service.js +10 -0
  141. package/.medusa/server/src/modules/material-purchase-master/index.js +13 -0
  142. package/.medusa/server/src/modules/material-purchase-master/migrations/Migration20260310090700.js +18 -0
  143. package/.medusa/server/src/modules/material-purchase-master/models/material-purchase-detail-line.js +24 -0
  144. package/.medusa/server/src/modules/material-purchase-master/models/material-purchase-master.js +21 -0
  145. package/.medusa/server/src/modules/material-purchase-master/service.js +12 -0
  146. package/.medusa/server/src/modules/order-master/index.js +13 -0
  147. package/.medusa/server/src/modules/order-master/migrations/Migration20260226053036.js +29 -0
  148. package/.medusa/server/src/modules/order-master/migrations/Migration20260303000001.js +30 -0
  149. package/.medusa/server/src/modules/order-master/migrations/Migration20260319094758.js +26 -0
  150. package/.medusa/server/src/modules/order-master/migrations/Migration20260320000001.js +19 -0
  151. package/.medusa/server/src/modules/order-master/models/order-master.js +112 -0
  152. package/.medusa/server/src/modules/order-master/service.js +13 -0
  153. package/.medusa/server/src/modules/order-proceed-master/index.js +13 -0
  154. package/.medusa/server/src/modules/order-proceed-master/migrations/Migration20260327100226.js +31 -0
  155. package/.medusa/server/src/modules/order-proceed-master/models/order-proceed-master.js +38 -0
  156. package/.medusa/server/src/modules/order-proceed-master/service.js +11 -0
  157. package/.medusa/server/src/modules/party-master/migrations/Migration20250604104235.js +2 -2
  158. package/.medusa/server/src/modules/party-master/migrations/Migration20250604115453.js +2 -2
  159. package/.medusa/server/src/modules/party-master/migrations/Migration20250604120348.js +2 -2
  160. package/.medusa/server/src/modules/party-master/migrations/Migration20250604120701.js +2 -2
  161. package/.medusa/server/src/modules/party-master/migrations/Migration20250608220924.js +2 -2
  162. package/.medusa/server/src/modules/party-master/migrations/Migration20250612225738.js +2 -2
  163. package/.medusa/server/src/modules/party-master/migrations/Migration20250612231031.js +2 -2
  164. package/.medusa/server/src/modules/party-master/migrations/Migration20250708123734.js +2 -2
  165. package/.medusa/server/src/modules/party-master/migrations/Migration20251031061657.js +2 -2
  166. package/.medusa/server/src/modules/party-master/migrations/Migration20251104050242.js +2 -2
  167. package/.medusa/server/src/modules/payment-book-master/index.js +13 -0
  168. package/.medusa/server/src/modules/payment-book-master/migrations/Migration20251203105358.js +15 -0
  169. package/.medusa/server/src/modules/payment-book-master/models/payment-book-master.js +12 -0
  170. package/.medusa/server/src/modules/payment-book-master/service.js +10 -0
  171. package/.medusa/server/src/modules/promocode-master/migrations/Migration20250819123821.js +2 -2
  172. package/.medusa/server/src/modules/promocode-master/migrations/Migration20250918095713.js +2 -2
  173. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251031061829.js +2 -2
  174. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251104050332.js +2 -2
  175. package/.medusa/server/src/modules/quality-master/migrations/Migration20251031095211.js +2 -2
  176. package/.medusa/server/src/modules/quality-master/migrations/Migration20251105045114.js +2 -2
  177. package/.medusa/server/src/modules/rate-chart-master/index.js +13 -0
  178. package/.medusa/server/src/modules/rate-chart-master/migrations/Migration20260101081500.js +15 -0
  179. package/.medusa/server/src/modules/rate-chart-master/models/rate-chart-master.js +13 -0
  180. package/.medusa/server/src/modules/rate-chart-master/service.js +10 -0
  181. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190057.js +2 -2
  182. package/.medusa/server/src/modules/raw-master/migrations/Migration20250509190322.js +2 -2
  183. package/.medusa/server/src/modules/raw-master/migrations/Migration20251031061912.js +2 -2
  184. package/.medusa/server/src/modules/receive-voucher-master/index.js +13 -0
  185. package/.medusa/server/src/modules/receive-voucher-master/migrations/Migration20260328053649.js +16 -0
  186. package/.medusa/server/src/modules/receive-voucher-master/models/receive-voucher-master.js +27 -0
  187. package/.medusa/server/src/modules/receive-voucher-master/service.js +10 -0
  188. package/.medusa/server/src/modules/report-master/index.js +13 -0
  189. package/.medusa/server/src/modules/report-master/migrations/Migration20260121060955.js +15 -0
  190. package/.medusa/server/src/modules/report-master/migrations/Migration20260121112624.js +15 -0
  191. package/.medusa/server/src/modules/report-master/models/report-master.js +12 -0
  192. package/.medusa/server/src/modules/report-master/service.js +10 -0
  193. package/.medusa/server/src/modules/sale-master/index.js +13 -0
  194. package/.medusa/server/src/modules/sale-master/migrations/Migration20260205092935.js +15 -0
  195. package/.medusa/server/src/modules/sale-master/migrations/Migration20260205100000.js +16 -0
  196. package/.medusa/server/src/modules/sale-master/models/sale-master.js +27 -0
  197. package/.medusa/server/src/modules/sale-master/service.js +10 -0
  198. package/.medusa/server/src/modules/sale-return-master/index.js +13 -0
  199. package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260205093034.js +15 -0
  200. package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260327084135.js +14 -0
  201. package/.medusa/server/src/modules/sale-return-master/models/sale-return-master.js +18 -0
  202. package/.medusa/server/src/modules/sale-return-master/service.js +10 -0
  203. package/.medusa/server/src/modules/sale-return-policy-master/index.js +13 -0
  204. package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260105061449.js +21 -0
  205. package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260129084920.js +14 -0
  206. package/.medusa/server/src/modules/sale-return-policy-master/migrations/Migration20260129085620.js +20 -0
  207. package/.medusa/server/src/modules/sale-return-policy-master/models/sale-return-policy-master.js +37 -0
  208. package/.medusa/server/src/modules/sale-return-policy-master/service.js +12 -0
  209. package/.medusa/server/src/modules/shape-master/migrations/Migration20250509174455.js +2 -2
  210. package/.medusa/server/src/modules/shape-master/migrations/Migration20251031062019.js +2 -2
  211. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20250713113247.js +2 -2
  212. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20250713121440.js +2 -2
  213. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251031062128.js +2 -2
  214. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251104050501.js +2 -2
  215. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251203083315.js +2 -2
  216. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250513115356.js +2 -2
  217. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250519180538.js +2 -2
  218. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250531010409.js +2 -2
  219. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730025135.js +2 -2
  220. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730025307.js +2 -2
  221. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20250730032130.js +2 -2
  222. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251031062303.js +2 -2
  223. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251104050743.js +2 -2
  224. package/.medusa/server/src/modules/tone-master/migrations/Migration20251031104320.js +2 -2
  225. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251101082220.js +2 -2
  226. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251103123857.js +2 -2
  227. package/.medusa/server/src/subscribers/cutomer-updated.js +3 -1
  228. package/.medusa/server/src/subscribers/erp-batch-processor.js +147 -0
  229. package/.medusa/server/src/subscribers/order-item-update.js +11 -0
  230. package/.medusa/server/src/subscribers/party-master.js +39 -35
  231. package/.medusa/server/src/subscribers/product-sync.js +1 -1
  232. package/.medusa/server/src/subscribers/product-variant-deleted.js +27 -0
  233. package/.medusa/server/src/subscribers/shipping-info-master.js +10 -4
  234. package/.medusa/server/src/utils/build-redis-key.js +3 -1
  235. package/.medusa/server/src/utils/state-helper.js +3 -2
  236. package/.medusa/server/src/workflows/addless-detail/index.js +11 -0
  237. package/.medusa/server/src/workflows/addless-detail/steps/create-or-update-addless-detail.js +36 -0
  238. package/.medusa/server/src/workflows/addless-detail/steps/fetch-addless-detail.js +73 -0
  239. package/.medusa/server/src/workflows/applicable-sale-return-policy/index.js +11 -0
  240. package/.medusa/server/src/workflows/applicable-sale-return-policy/steps/create-or-update-applicable-sale-return-policy.js +74 -0
  241. package/.medusa/server/src/workflows/applicable-sale-return-policy/steps/fetch-applicable-sale-return-policy.js +64 -0
  242. package/.medusa/server/src/workflows/book-list/index.js +11 -0
  243. package/.medusa/server/src/workflows/book-list/steps/create-or-update-book-list.js +59 -0
  244. package/.medusa/server/src/workflows/book-list/steps/fetch-book-list.js +64 -0
  245. package/.medusa/server/src/workflows/create-extended-product-from-product/index.js +9 -8
  246. package/.medusa/server/src/workflows/create-extended-variant-from-variant/index.js +9 -18
  247. package/.medusa/server/src/workflows/customer-advance-payment/index.js +18 -0
  248. package/.medusa/server/src/workflows/customer-advance-payment/steps/create-receive-voucher.js +71 -0
  249. package/.medusa/server/src/workflows/customer-advance-payment/steps/index.js +18 -0
  250. package/.medusa/server/src/workflows/customer-advance-payment/workflows/create-receive-voucher-workflow.js +11 -0
  251. package/.medusa/server/src/workflows/customer-advance-payment/workflows/index.js +18 -0
  252. package/.medusa/server/src/workflows/daily-rate/index.js +29 -0
  253. package/.medusa/server/src/workflows/daily-rate/perf.js +89 -0
  254. package/.medusa/server/src/workflows/daily-rate/steps/fetch-gold-rate-step.js +21 -0
  255. package/.medusa/server/src/workflows/daily-rate/steps/update-inward-metal-rates-step.js +154 -0
  256. package/.medusa/server/src/workflows/daily-rate/steps/update-party-style-metal-rates-step.js +224 -0
  257. package/.medusa/server/src/workflows/daily-rate/steps/update-style-master-metal-rates-step.js +180 -0
  258. package/.medusa/server/src/workflows/erp-batch-processing/index.js +19 -0
  259. package/.medusa/server/src/workflows/erp-batch-processing/steps/finalize-batch-processing.js +55 -0
  260. package/.medusa/server/src/workflows/erp-batch-processing/steps/index.js +20 -0
  261. package/.medusa/server/src/workflows/erp-batch-processing/steps/initialize-batch-processing.js +40 -0
  262. package/.medusa/server/src/workflows/erp-batch-processing/steps/start-batch-processing.js +22 -0
  263. package/.medusa/server/src/workflows/erp-batch-processing/workflows/erp-batch-processing.js +25 -0
  264. package/.medusa/server/src/workflows/erp-batch-processing/workflows/index.js +18 -0
  265. package/.medusa/server/src/workflows/erp-event/steps/update-erp-event.js +24 -7
  266. package/.medusa/server/src/workflows/erp-event/workflows/update-erp-event.js +1 -1
  267. package/.medusa/server/src/workflows/helpers/product-helper.js +212 -21
  268. package/.medusa/server/src/workflows/helpers/variant-helper.js +165 -162
  269. package/.medusa/server/src/workflows/hooks/product-updated.js +23 -15
  270. package/.medusa/server/src/workflows/hooks/variant-updated.js +24 -22
  271. package/.medusa/server/src/workflows/index.js +4 -1
  272. package/.medusa/server/src/workflows/inward-master/helper/index.js +23 -8
  273. package/.medusa/server/src/workflows/inward-master/steps/create-order-fulfillment-for-inward.js +73 -0
  274. package/.medusa/server/src/workflows/inward-master/steps/index.js +3 -1
  275. package/.medusa/server/src/workflows/inward-master/steps/notify-inward-skipped.js +37 -0
  276. package/.medusa/server/src/workflows/inward-master/workflows/create-inward.js +51 -43
  277. package/.medusa/server/src/workflows/inward-master/workflows/delete-inward.js +6 -9
  278. package/.medusa/server/src/workflows/inward-master/workflows/update-instock.js +2 -1
  279. package/.medusa/server/src/workflows/inward-master/workflows/update-inward.js +32 -7
  280. package/.medusa/server/src/workflows/item-master/index.js +11 -0
  281. package/.medusa/server/src/workflows/item-master/steps/create-or-update-item-master.js +50 -0
  282. package/.medusa/server/src/workflows/item-master/steps/fetch-item-master.js +29 -0
  283. package/.medusa/server/src/workflows/jewel-trans-master/index.js +18 -0
  284. package/.medusa/server/src/workflows/jewel-trans-master/steps/create-or-update-jewel-trans-master.js +370 -0
  285. package/.medusa/server/src/workflows/jewel-trans-master/steps/index.js +18 -0
  286. package/.medusa/server/src/workflows/labour-chart-master/index.js +11 -0
  287. package/.medusa/server/src/workflows/labour-chart-master/steps/create-or-update-labour-chart-master.js +38 -0
  288. package/.medusa/server/src/workflows/labour-chart-master/steps/fetch-labour-chart.js +31 -0
  289. package/.medusa/server/src/workflows/material-purchase-master/index.js +24 -0
  290. package/.medusa/server/src/workflows/material-purchase-master/steps/create-material-purchase-master.js +119 -0
  291. package/.medusa/server/src/workflows/material-purchase-master/steps/delete-material-purchase-master.js +102 -0
  292. package/.medusa/server/src/workflows/material-purchase-master/steps/fetch-material-purchase-master.js +60 -0
  293. package/.medusa/server/src/workflows/material-purchase-master/steps/update-material-purchase-master.js +149 -0
  294. package/.medusa/server/src/workflows/order-master/index.js +3 -0
  295. package/.medusa/server/src/workflows/order-master/order-master-webhook.js +24 -0
  296. package/.medusa/server/src/workflows/order-master/steps/create-or-update-order-master.js +275 -0
  297. package/.medusa/server/src/workflows/order-master/steps/delete-order-master-by-erp-ids.js +61 -0
  298. package/.medusa/server/src/workflows/order-master/steps/process-order-master-from-webhook.js +1024 -0
  299. package/.medusa/server/src/workflows/order-proceed-master/index.js +6 -0
  300. package/.medusa/server/src/workflows/order-proceed-master/order-proceed-master-webhook.js +26 -0
  301. package/.medusa/server/src/workflows/order-proceed-master/steps/create-or-update-order-proceed-master.js +186 -0
  302. package/.medusa/server/src/workflows/order-proceed-master/steps/delete-order-proceed-master-by-erp-ids.js +28 -0
  303. package/.medusa/server/src/workflows/orders/steps/find-nearest-pincodes-step.js +336 -0
  304. package/.medusa/server/src/workflows/orders/steps/get-today-gold-rate-step.js +77 -0
  305. package/.medusa/server/src/workflows/orders/steps/index.js +15 -1
  306. package/.medusa/server/src/workflows/orders/steps/revert-to-wallet-step.js +165 -0
  307. package/.medusa/server/src/workflows/orders/steps/sync-advance-payment-to-erp-step.js +185 -0
  308. package/.medusa/server/src/workflows/orders/steps/sync-buyback-to-erp-step.js +99 -0
  309. package/.medusa/server/src/workflows/orders/steps/sync-cancel-to-erp-step.js +120 -0
  310. package/.medusa/server/src/workflows/orders/steps/sync-exchange-to-erp-step.js +101 -0
  311. package/.medusa/server/src/workflows/orders/steps/sync-old-gold-to-erp-step.js +161 -0
  312. package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +743 -20
  313. package/.medusa/server/src/workflows/orders/steps/sync-sale-return-to-erp-step.js +277 -0
  314. package/.medusa/server/src/workflows/orders/steps/update-old-gold-sync-status-step.js +64 -0
  315. package/.medusa/server/src/workflows/orders/utils/order-helper.js +183 -38
  316. package/.medusa/server/src/workflows/orders/utils/order-request-helper.js +235 -0
  317. package/.medusa/server/src/workflows/orders/workflows/get-today-gold-rate.js +10 -0
  318. package/.medusa/server/src/workflows/orders/workflows/index.js +4 -1
  319. package/.medusa/server/src/workflows/orders/workflows/sync-advanve-payment-to-erp.js +21 -0
  320. package/.medusa/server/src/workflows/orders/workflows/sync-old-gold-to-erp.js +24 -0
  321. package/.medusa/server/src/workflows/orders/workflows/sync-order-to-erp.js +54 -5
  322. package/.medusa/server/src/workflows/orders/workflows/sync-sale-return-to-erp.js +11 -0
  323. package/.medusa/server/src/workflows/party-master/steps/create-customer-erp.js +53 -33
  324. package/.medusa/server/src/workflows/party-master/steps/create-user-erp.js +115 -0
  325. package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +2 -1
  326. package/.medusa/server/src/workflows/party-master/steps/index.js +2 -1
  327. package/.medusa/server/src/workflows/party-master/workflows/create-or-update-party-master.js +2 -2
  328. package/.medusa/server/src/workflows/party-master/workflows/create-user-erp.js +11 -0
  329. package/.medusa/server/src/workflows/party-master/workflows/index.js +2 -1
  330. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-deletion.js +16 -249
  331. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +103 -22
  332. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +49 -18
  333. package/.medusa/server/src/workflows/party-style-master/workflows/delete-party-style-master.js +4 -15
  334. package/.medusa/server/src/workflows/payment-book-master/index.js +11 -0
  335. package/.medusa/server/src/workflows/payment-book-master/steps/create-or-update-payment-book-master.js +37 -0
  336. package/.medusa/server/src/workflows/payment-book-master/steps/fetch-payment-book.js +64 -0
  337. package/.medusa/server/src/workflows/rate-chart-master/index.js +11 -0
  338. package/.medusa/server/src/workflows/rate-chart-master/steps/create-or-update-rate-chart-master.js +25 -0
  339. package/.medusa/server/src/workflows/rate-chart-master/steps/fetch-rate-chart.js +31 -0
  340. package/.medusa/server/src/workflows/receive-voucher-master/index.js +24 -0
  341. package/.medusa/server/src/workflows/receive-voucher-master/steps/create-receive-voucher-master.js +125 -0
  342. package/.medusa/server/src/workflows/receive-voucher-master/steps/delete-receive-voucher-master.js +45 -0
  343. package/.medusa/server/src/workflows/receive-voucher-master/steps/fetch-receive-voucher-master.js +22 -0
  344. package/.medusa/server/src/workflows/receive-voucher-master/steps/update-receive-voucher-master.js +44 -0
  345. package/.medusa/server/src/workflows/report-master/index.js +11 -0
  346. package/.medusa/server/src/workflows/report-master/steps/create-or-update-report-master.js +53 -0
  347. package/.medusa/server/src/workflows/report-master/steps/fetch-report.js +71 -0
  348. package/.medusa/server/src/workflows/sale-master/index.js +24 -0
  349. package/.medusa/server/src/workflows/sale-master/steps/create-sale-master.js +72 -0
  350. package/.medusa/server/src/workflows/sale-master/steps/delete-sale-master.js +59 -0
  351. package/.medusa/server/src/workflows/sale-master/steps/update-sale-master.js +95 -0
  352. package/.medusa/server/src/workflows/sale-return-master/index.js +6 -0
  353. package/.medusa/server/src/workflows/sale-return-master/sale-return-master-webhook.js +28 -0
  354. package/.medusa/server/src/workflows/sale-return-master/steps/create-or-update-sale-return-master.js +109 -0
  355. package/.medusa/server/src/workflows/sale-return-master/steps/create-sale-return-master.js +45 -0
  356. package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master-by-erp-ids.js +36 -0
  357. package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master.js +36 -0
  358. package/.medusa/server/src/workflows/sale-return-master/steps/process-sale-return-from-webhook.js +234 -0
  359. package/.medusa/server/src/workflows/sale-return-master/steps/update-sale-return-master.js +53 -0
  360. package/.medusa/server/src/workflows/sale-return-policy-master/index.js +11 -0
  361. package/.medusa/server/src/workflows/sale-return-policy-master/steps/create-or-update-sale-return-policy-master.js +91 -0
  362. package/.medusa/server/src/workflows/sale-return-policy-master/steps/fetch-sale-return-policy.js +31 -0
  363. package/.medusa/server/src/workflows/shipping-info-master/workflows/create-or-update-shipping-info.js +59 -0
  364. package/.medusa/server/src/workflows/shipping-info-master/workflows/index.js +2 -1
  365. package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master.js +116 -10
  366. package/.medusa/server/src/workflows/style-master/workflows/delete-style-master.js +9 -1
  367. package/.medusa/server/src/workflows/update-extended-product-from-product/index.js +6 -16
  368. package/.medusa/server/src/workflows/update-extended-variant-from-variant/workflows/update-extended-variant-status-from-variant.js +5 -17
  369. 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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
@@ -1,28 +1,28 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildOrderData = void 0;
4
- const buildOrderData = (order, customer, party_master, promocode_data) => {
5
- const orderDetails = order.items.map((item) => {
3
+ exports.buildSaleData = exports.buildOrderData = void 0;
4
+ const buildOrderData = (order, customer, party_master, promocode_data, payment_option, branch_data) => {
5
+ const orderDetails = order.items.map((item, index) => {
6
6
  return {
7
7
  OrderId: 0,
8
8
  OrderItemId: 0,
9
- SrNo: 1,
9
+ SrNo: index + 1,
10
10
  StyleId: item.variant.extended_variant.style_id,
11
11
  StyleCode: item.variant.extended_variant.style_code,
12
12
  PartyStyleId: item.variant.extended_variant.party_style_id,
13
13
  PartyStyleCode: item.variant.extended_variant.party_style_code,
14
- JewelId: 0,
15
- JewelCode: "",
14
+ JewelId: item.metadata?.jewel_id || 0,
15
+ JewelCode: item.variant_barcode || "",
16
16
  ItemSize: item.variant.extended_variant.item_size,
17
17
  OrderQty: item.quantity,
18
18
  OrderItemPcs: 1,
19
- Metal: "",
19
+ Metal: `${item.variant.extended_variant.metal || ""}${item.variant.extended_variant.metal_purity || ""}${item.variant.extended_variant.metal_color}`, // use tone here instead of Tone field because ERP software configuration for svaraa. G9 => G9R
20
20
  Tone: "",
21
- ItemPoNo: "",
21
+ ItemPoNo: item.id || "",
22
22
  ItemRefNo: "",
23
23
  Priority: "N",
24
- StockType: "LG DIAMOND",
25
- MakeType: "A",
24
+ StockType: item.variant.extended_variant.stock_type || "LG DIAMOND",
25
+ MakeType: item.variant.extended_variant.make_type || "A",
26
26
  CustomerProductionInstruction: "",
27
27
  SpecialRemarks: "",
28
28
  DesignProductionInstruction: "",
@@ -31,31 +31,33 @@ const buildOrderData = (order, customer, party_master, promocode_data) => {
31
31
  MRP: item.unit_price,
32
32
  };
33
33
  });
34
- const totalAmount = orderDetails.reduce((acc, item) => acc + item.MRP * item.OrderQty, 0);
35
- const totalAmountWithTax = totalAmount * 1.03;
36
- let paymentBookName = "";
37
- // if (party_master.branch_no === "0001000046") {
38
- // paymentBookName = "UPI Shiv Adi - P";
39
- // } else if (party_master.branch_no === "0006000131") {
40
- // paymentBookName = "UPI MP - P";
41
- // } else if (party_master.branch_no === "0005000797") {
42
- // paymentBookName = "UPI Exhibition - P";
43
- // } else if (party_master.branch_no === "0004000711") {
44
- // paymentBookName = "UPI TimeLess - P";
45
- // }
46
- console.log("order?.metadata?.self_branch_erp_shipping_id", order?.metadata?.self_branch_erp_shipping_id);
47
- const orderData = {
34
+ const totalOrderAmount = orderDetails.reduce((acc, item) => acc + item.MRP * item.OrderQty, 0);
35
+ const totalAmountWithTax = totalOrderAmount * 1.03 - (order?.discount_subtotal || 0);
36
+ const totalAmount = order?.total || totalAmountWithTax || 0;
37
+ const formatValue = (v) => {
38
+ if (typeof v === "object" && v !== null) {
39
+ return Object.entries(v)
40
+ .map(([ik, iv]) => `${ik}=${String(iv)}`)
41
+ .join(" | ");
42
+ }
43
+ return String(v);
44
+ };
45
+ return {
48
46
  OrderId: 0,
49
- BranchNo: "",
50
- BranchName: "",
47
+ BranchNo: order?.metadata?.cart_type === "POS_CART"
48
+ ? (branch_data?.branch_no ?? "")
49
+ : "",
50
+ BranchName: order?.metadata?.cart_type === "POS_CART"
51
+ ? (branch_data?.branch_name ?? "")
52
+ : "self",
51
53
  OrderPrefix: "",
52
54
  OrderNo: "",
53
55
  OrderDate: order.created_at,
54
- CustomerId: party_master.party_no || customer.extended_customer.external_id,
55
- Customer: customer.first_name + " " + customer.last_name,
56
+ CustomerId: party_master?.party_no || customer.extended_customer.external_id,
57
+ Customer: party_master?.firm_name || customer.first_name + " " + customer.last_name,
56
58
  PoNo: order.id,
57
59
  PoDate: order.created_at,
58
- SalesPerson: "",
60
+ SalesPerson: order?.metadata?.sales_person_name || "",
59
61
  WorkOrderNo: "",
60
62
  Remarks: "",
61
63
  PromocodeSeriesId: promocode_data?.promocode_series_id || 0,
@@ -63,16 +65,159 @@ const buildOrderData = (order, customer, party_master, promocode_data) => {
63
65
  PromocodePercentage: promocode_data?.promocode_percentage || 0,
64
66
  PromocodeAmount: promocode_data?.promocode_amount || 0,
65
67
  OrderDetail: orderDetails,
66
- ShippingId: order?.metadata?.self_branch_erp_shipping_id || "",
67
- PaymentOption: [
68
- {
69
- OrderId: 0,
70
- BookName: "Razorpay Receipt - Self/Shiv.Adi.",
71
- Amount: totalAmountWithTax,
72
- },
68
+ // ShippingId: "",
69
+ ShippingId: order?.shipping_address.metadata?.party_shipping_id || "",
70
+ PaymentOption: payment_option?.length > 0 ? payment_option : [],
71
+ AddlessDetail: [
72
+ ...(order.metadata?.store_discount?.amount != null &&
73
+ order.metadata?.store_discount?.amount !== 0
74
+ ? [
75
+ {
76
+ OrderId: 0,
77
+ Id: 0,
78
+ Prompt: "DIS",
79
+ AddlessPer: 0.0,
80
+ AddLessAmount: order.metadata?.store_discount?.amount || 0,
81
+ },
82
+ ]
83
+ : []),
84
+ ...(order.metadata?.discount?.amount != null &&
85
+ order.metadata?.discount?.amount !== 0
86
+ ? [
87
+ {
88
+ OrderId: 0,
89
+ Id: 0,
90
+ Prompt: "PROMOCODE",
91
+ AddlessPer: 0.0,
92
+ AddLessAmount: order.metadata?.discount?.amount || 0,
93
+ },
94
+ ]
95
+ : []),
96
+ ...(order.metadata?.rounded_discount?.amount != null &&
97
+ order.metadata?.rounded_discount?.amount !== 0
98
+ ? [
99
+ {
100
+ OrderId: 0,
101
+ Id: 0,
102
+ Prompt: "ROUNDING",
103
+ AddlessPer: 0.0,
104
+ AddLessAmount: order.metadata?.rounded_discount?.amount || 0,
105
+ },
106
+ ]
107
+ : []),
73
108
  ],
74
109
  };
75
- return orderData;
76
110
  };
77
111
  exports.buildOrderData = buildOrderData;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9vcmRlcnMvdXRpbHMvb3JkZXItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLE1BQU0sY0FBYyxHQUFHLENBQzVCLEtBQVUsRUFDVixRQUFhLEVBQ2IsWUFBaUIsRUFDakIsY0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7UUFDakQsT0FBTztZQUNMLE9BQU8sRUFBRSxDQUFDO1lBQ1YsV0FBVyxFQUFFLENBQUM7WUFDZCxJQUFJLEVBQUUsQ0FBQztZQUNQLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFFBQVE7WUFDL0MsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtZQUNuRCxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjO1lBQzFELGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQjtZQUM5RCxPQUFPLEVBQUUsQ0FBQztZQUNWLFNBQVMsRUFBRSxFQUFFO1lBQ2IsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUztZQUNqRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsWUFBWSxFQUFFLENBQUM7WUFDZixLQUFLLEVBQUUsRUFBRTtZQUNULElBQUksRUFBRSxFQUFFO1lBQ1IsUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsRUFBRTtZQUNiLFFBQVEsRUFBRSxHQUFHO1lBQ2IsU0FBUyxFQUFFLFlBQVk7WUFDdkIsUUFBUSxFQUFFLEdBQUc7WUFDYiw2QkFBNkIsRUFBRSxFQUFFO1lBQ2pDLGNBQWMsRUFBRSxFQUFFO1lBQ2xCLDJCQUEyQixFQUFFLEVBQUU7WUFDL0IsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixvQkFBb0IsRUFBRSxFQUFFO1lBQ3hCLEdBQUcsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUNyQixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUNyQyxDQUFDLEdBQVcsRUFBRSxJQUFTLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQzFELENBQUMsQ0FDRixDQUFDO0lBQ0YsTUFBTSxrQkFBa0IsR0FBRyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBRTlDLElBQUksZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUV6QixpREFBaUQ7SUFDakQsMENBQTBDO0lBQzFDLHdEQUF3RDtJQUN4RCxvQ0FBb0M7SUFDcEMsd0RBQXdEO0lBQ3hELDRDQUE0QztJQUM1Qyx3REFBd0Q7SUFDeEQsMENBQTBDO0lBQzFDLElBQUk7SUFFSixPQUFPLENBQUMsR0FBRyxDQUNULDhDQUE4QyxFQUM5QyxLQUFLLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixDQUM3QyxDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUc7UUFDaEIsT0FBTyxFQUFFLENBQUM7UUFDVixRQUFRLEVBQUUsRUFBRTtRQUNaLFVBQVUsRUFBRSxFQUFFO1FBQ2QsV0FBVyxFQUFFLEVBQUU7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLFNBQVMsRUFBRSxLQUFLLENBQUMsVUFBVTtRQUMzQixVQUFVLEVBQUUsWUFBWSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsaUJBQWlCLENBQUMsV0FBVztRQUMzRSxRQUFRLEVBQUUsUUFBUSxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLFNBQVM7UUFDeEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ2QsTUFBTSxFQUFFLEtBQUssQ0FBQyxVQUFVO1FBQ3hCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsV0FBVyxFQUFFLEVBQUU7UUFDZixPQUFPLEVBQUUsRUFBRTtRQUNYLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsSUFBSSxDQUFDO1FBQzNELFNBQVMsRUFBRSxjQUFjLEVBQUUsU0FBUyxJQUFJLEVBQUU7UUFDMUMsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixJQUFJLENBQUM7UUFDOUQsZUFBZSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsSUFBSSxDQUFDO1FBQ3RELFdBQVcsRUFBRSxZQUFZO1FBQ3pCLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixJQUFJLEVBQUU7UUFDOUQsYUFBYSxFQUFFO1lBQ2I7Z0JBQ0UsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsUUFBUSxFQUFFLG1DQUFtQztnQkFDN0MsTUFBTSxFQUFFLGtCQUFrQjthQUMzQjtTQUNGO0tBQ0YsQ0FBQztJQUNGLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQXZGVyxRQUFBLGNBQWMsa0JBdUZ6QiJ9
112
+ const buildSaleData = (order, customer, party_master, promocode_data, payment_option, branch_data) => {
113
+ const totalOrderAmount = order.items.reduce((acc, item) => acc + item.unit_price * item.quantity, 0);
114
+ const totalAmountWithTax = totalOrderAmount * 1.03 - (order?.discount_subtotal || 0);
115
+ const grossAmount = order?.total || totalAmountWithTax || 0;
116
+ const totalAmount = grossAmount - (promocode_data?.promocode_amount || 0);
117
+ const jewelTransInward = order.items.map((item) => {
118
+ return {
119
+ JewelTransId: 0,
120
+ JewelId: item.metadata?.jewel_id || 0,
121
+ JewelCode: item.variant_barcode || "",
122
+ StyleId: item.variant.extended_variant.style_id || 0,
123
+ MrpAmt: item.unit_price || 0,
124
+ RateChart: item.variant.extended_variant.rate_chart || "SVARAA ECOM",
125
+ LabourChart: "NetWt",
126
+ JewelTransInwardDetail: [],
127
+ JewelTransXtraCharges: [],
128
+ JewelTransInwardExploration: [],
129
+ };
130
+ });
131
+ const otherFields = { ...order.metadata };
132
+ delete otherFields?.customer;
133
+ delete otherFields?.goldDate;
134
+ delete otherFields?.goldRate;
135
+ delete otherFields?.cart_type;
136
+ delete otherFields?.jewel_items;
137
+ delete otherFields?.payment_mode;
138
+ delete otherFields?.payment_type;
139
+ delete otherFields?.cart_order_type;
140
+ delete otherFields?.store_id;
141
+ delete otherFields?.code;
142
+ delete otherFields?.sales_person_name;
143
+ delete otherFields?.Sales_person_id;
144
+ delete otherFields?.fixed_price;
145
+ const formatValue = (v) => {
146
+ if (typeof v === "object" && v !== null) {
147
+ return Object.entries(v)
148
+ .map(([ik, iv]) => `${ik}=${String(iv)}`)
149
+ .join(" | ");
150
+ }
151
+ return String(v);
152
+ };
153
+ const remarks = Object.entries(otherFields)
154
+ .map(([k, v]) => `${k}: ${formatValue(v)}`)
155
+ .join(", ");
156
+ return {
157
+ JewelTransId: 0,
158
+ JewelTransPrefix: "",
159
+ JewelTransNo: "",
160
+ JewelTransDate: order.created_at,
161
+ PartyNo: party_master?.party_no || customer.extended_customer.external_id,
162
+ FirmName: party_master?.firm_name || customer.first_name + " " + customer.last_name,
163
+ SalesPerson: order?.metadata?.sales_person_name || "",
164
+ BranchNo: order?.metadata?.cart_type === "POS_CART"
165
+ ? (branch_data?.branch_no ?? "")
166
+ : "",
167
+ BranchName: order?.metadata?.cart_type === "POS_CART"
168
+ ? (branch_data?.branch_name ?? "")
169
+ : "self",
170
+ GrossAmount: grossAmount,
171
+ TotalAddlessAmount: order?.discount_subtotal,
172
+ Amount: totalAmount,
173
+ Remarks: remarks || "",
174
+ PromocodeSeriesId: promocode_data?.promocode_series_id || 0,
175
+ Promocode: promocode_data?.promocode || "",
176
+ PromocodePercentage: promocode_data?.promocode_percentage || 0,
177
+ PromocodeAmount: promocode_data?.promocode_amount || 0,
178
+ ShippingId: order?.shipping_address.metadata?.party_shipping_id || 0,
179
+ JewelTransInward: jewelTransInward,
180
+ PaymentOption: payment_option?.length > 0 ? payment_option : [],
181
+ GiftcodeDetail: [],
182
+ AddlessDetail: [
183
+ ...(order.metadata?.store_discount?.amount != null &&
184
+ order.metadata?.store_discount?.amount !== 0
185
+ ? [
186
+ {
187
+ OrderId: 0,
188
+ Id: 0,
189
+ Prompt: "DIS",
190
+ AddlessPer: 0.0,
191
+ AddLessAmount: order.metadata?.store_discount?.amount || 0,
192
+ },
193
+ ]
194
+ : []),
195
+ ...(order.metadata?.discount?.amount != null &&
196
+ order.metadata?.discount?.amount !== 0
197
+ ? [
198
+ {
199
+ OrderId: 0,
200
+ Id: 0,
201
+ Prompt: "PROMOCODE",
202
+ AddlessPer: 0.0,
203
+ AddLessAmount: order.metadata?.discount?.amount || 0,
204
+ },
205
+ ]
206
+ : []),
207
+ ...(order.metadata?.rounded_discount?.amount != null &&
208
+ order.metadata?.rounded_discount?.amount !== 0
209
+ ? [
210
+ {
211
+ OrderId: 0,
212
+ Id: 0,
213
+ Prompt: "ROUNDING",
214
+ AddlessPer: 0.0,
215
+ AddLessAmount: order.metadata?.rounded_discount?.amount,
216
+ },
217
+ ]
218
+ : []),
219
+ ],
220
+ };
221
+ };
222
+ exports.buildSaleData = buildSaleData;
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9vcmRlcnMvdXRpbHMvb3JkZXItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFPLE1BQU0sY0FBYyxHQUFHLENBQzVCLEtBQVUsRUFDVixRQUFhLEVBQ2IsWUFBaUIsRUFDakIsY0FBbUIsRUFDbkIsY0FBcUIsRUFDckIsV0FBZ0IsRUFDaEIsRUFBRTtJQUNGLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ3hELE9BQU87WUFDTCxPQUFPLEVBQUUsQ0FBQztZQUNWLFdBQVcsRUFBRSxDQUFDO1lBQ2QsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDO1lBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsUUFBUTtZQUMvQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO1lBQ25ELFlBQVksRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLGNBQWM7WUFDMUQsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCO1lBQzlELE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsSUFBSSxDQUFDO1lBQ3JDLFNBQVMsRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLEVBQUU7WUFDckMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsU0FBUztZQUNqRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsWUFBWSxFQUFFLENBQUM7WUFDZixLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxFQUFFLEdBQUcsSUFB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