@devx-commerce/plugin-gati 0.0.34-beta.50 → 0.0.34-beta.52

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 (48) hide show
  1. package/.medusa/server/src/api/erp/webhook/config.js +38 -28
  2. package/.medusa/server/src/jobs/process-erp-events.js +8 -50
  3. package/.medusa/server/src/modules/order-proceed-master/index.js +13 -0
  4. package/.medusa/server/src/modules/order-proceed-master/migrations/Migration20260327100226.js +31 -0
  5. package/.medusa/server/src/modules/order-proceed-master/models/order-proceed-master.js +38 -0
  6. package/.medusa/server/src/modules/order-proceed-master/service.js +11 -0
  7. package/.medusa/server/src/modules/receive-voucher-master/index.js +13 -0
  8. package/.medusa/server/src/modules/receive-voucher-master/migrations/Migration20260328053649.js +16 -0
  9. package/.medusa/server/src/modules/receive-voucher-master/models/receive-voucher-master.js +27 -0
  10. package/.medusa/server/src/modules/receive-voucher-master/service.js +10 -0
  11. package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260327084135.js +14 -0
  12. package/.medusa/server/src/modules/sale-return-master/models/sale-return-master.js +3 -1
  13. package/.medusa/server/src/workflows/index.js +2 -1
  14. package/.medusa/server/src/workflows/inward-master/steps/index.js +1 -2
  15. package/.medusa/server/src/workflows/inward-master/workflows/index.js +1 -2
  16. package/.medusa/server/src/workflows/material-purchase-master/steps/create-material-purchase-master.js +41 -2
  17. package/.medusa/server/src/workflows/material-purchase-master/steps/delete-material-purchase-master.js +22 -1
  18. package/.medusa/server/src/workflows/material-purchase-master/steps/update-material-purchase-master.js +67 -19
  19. package/.medusa/server/src/workflows/order-master/steps/process-order-master-from-webhook.js +2 -2
  20. package/.medusa/server/src/workflows/order-proceed-master/index.js +6 -0
  21. package/.medusa/server/src/workflows/order-proceed-master/order-proceed-master-webhook.js +26 -0
  22. package/.medusa/server/src/workflows/order-proceed-master/steps/create-or-update-order-proceed-master.js +186 -0
  23. package/.medusa/server/src/workflows/order-proceed-master/steps/delete-order-proceed-master-by-erp-ids.js +28 -0
  24. package/.medusa/server/src/workflows/orders/steps/sync-old-gold-to-erp-step.js +2 -2
  25. package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +97 -40
  26. package/.medusa/server/src/workflows/orders/steps/sync-sale-return-to-erp-step.js +102 -2
  27. package/.medusa/server/src/workflows/orders/utils/order-helper.js +5 -5
  28. package/.medusa/server/src/workflows/party-style-master/steps/index.js +1 -2
  29. package/.medusa/server/src/workflows/party-style-master/workflows/index.js +1 -2
  30. package/.medusa/server/src/workflows/receive-voucher-master/index.js +24 -0
  31. package/.medusa/server/src/workflows/receive-voucher-master/steps/create-receive-voucher-master.js +125 -0
  32. package/.medusa/server/src/workflows/receive-voucher-master/steps/delete-receive-voucher-master.js +45 -0
  33. package/.medusa/server/src/workflows/receive-voucher-master/steps/fetch-receive-voucher-master.js +22 -0
  34. package/.medusa/server/src/workflows/receive-voucher-master/steps/update-receive-voucher-master.js +44 -0
  35. package/.medusa/server/src/workflows/sale-return-master/index.js +4 -22
  36. package/.medusa/server/src/workflows/sale-return-master/sale-return-master-webhook.js +28 -0
  37. package/.medusa/server/src/workflows/sale-return-master/steps/create-or-update-sale-return-master.js +109 -0
  38. package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master-by-erp-ids.js +36 -0
  39. package/.medusa/server/src/workflows/sale-return-master/steps/process-sale-return-from-webhook.js +232 -0
  40. package/.medusa/server/src/workflows/style-master/steps/index.js +1 -2
  41. package/.medusa/server/src/workflows/style-master/workflows/index.js +1 -2
  42. package/package.json +1 -1
  43. package/.medusa/server/src/workflows/inward-master/steps/update-inward-price-only.js +0 -47
  44. package/.medusa/server/src/workflows/inward-master/workflows/update-inward-price-only.js +0 -99
  45. package/.medusa/server/src/workflows/party-style-master/steps/update-party-style-price-only.js +0 -111
  46. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master-price-only.js +0 -90
  47. package/.medusa/server/src/workflows/style-master/steps/update-style-price-only.js +0 -105
  48. package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master-price-only.js +0 -104
@@ -18,18 +18,12 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
18
18
  fields: ["*", "extended_customer.*"],
19
19
  filters: { id: order.customer_id || "" },
20
20
  });
21
- // let filter:any = {}
22
- // if(order?.metadata?.cart_type ==="POS_CART"){
23
- // filter.party_no = customer.extended_customer?.external_id
24
- // } else {
25
- // filter.branch_name= "self"
26
- // }
27
21
  const branch_no = order?.metadata?.branch_no || "";
28
22
  const { data: partyData } = await query.graph({
29
23
  entity: "party_master",
30
24
  fields: ["*"],
31
25
  filters: {
32
- owner_mobile: customer.phone?.replace("+91", ""),
26
+ owner_mobile: customer.phone?.replace("+91", "") || "",
33
27
  is_main_client: true,
34
28
  },
35
29
  });
@@ -205,7 +199,7 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
205
199
  if (conflictingJewelCode) {
206
200
  console.log("[SYNC ORDER TO ERP] Conflicting jewel_code:", conflictingJewelCode);
207
201
  // Find the item with this jewel_code
208
- const conflictingItem = (order.items || []).find((item) => item.metadata?.jewel_items?.jewel_code === conflictingJewelCode);
202
+ const conflictingItem = (order.items || []).find((item) => item?.variant_barcode === conflictingJewelCode);
209
203
  if (conflictingItem) {
210
204
  const styleCode = conflictingItem.variant?.extended_variant
211
205
  ?.style_code;
@@ -231,30 +225,27 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
231
225
  const orderService = container.resolve(utils_1.Modules.ORDER);
232
226
  const cartService = container.resolve(utils_1.Modules.CART);
233
227
  if (alternativeInward) {
234
- // Found alternative - update metadata and retry
228
+ // Found alternative - update variant_barcode and metadata, then retry
235
229
  console.log("[SYNC ORDER TO ERP] Found alternative jewel_code:", alternativeInward.jewel_code);
236
- const updatedJewelItems = {
237
- ...(conflictingItem.metadata?.jewel_items || {}),
238
- jewel_code: alternativeInward.jewel_code,
239
- jewel_id: alternativeInward.jewel_id,
240
- };
241
- // Update order item metadata
230
+ // Update order item with new variant_barcode and jewel_id
242
231
  await orderService.updateOrderLineItems([
243
232
  {
244
233
  selector: { id: conflictingItem.id },
245
234
  data: {
235
+ variant_barcode: alternativeInward.jewel_code,
246
236
  metadata: {
247
237
  ...(conflictingItem.metadata || {}),
248
- jewel_items: updatedJewelItems,
238
+ jewel_id: alternativeInward.jewel_id,
249
239
  previous_jewel_code: conflictingJewelCode,
250
240
  },
251
241
  },
252
242
  },
253
243
  ]);
254
244
  // Update in-memory order for payload rebuild
245
+ conflictingItem.variant_barcode = alternativeInward.jewel_code;
255
246
  conflictingItem.metadata = {
256
247
  ...(conflictingItem.metadata || {}),
257
- jewel_items: updatedJewelItems,
248
+ jewel_id: alternativeInward.jewel_id,
258
249
  };
259
250
  // Update cart item if exists
260
251
  const cartId = order.metadata?.cart_id;
@@ -268,9 +259,10 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
268
259
  await cartService.updateLineItems([
269
260
  {
270
261
  id: cartItem.id,
262
+ variant_barcode: alternativeInward.jewel_code,
271
263
  metadata: {
272
264
  ...(cartItem.metadata || {}),
273
- jewel_items: updatedJewelItems,
265
+ jewel_id: alternativeInward.jewel_id,
274
266
  previous_jewel_code: conflictingJewelCode,
275
267
  },
276
268
  },
@@ -292,19 +284,45 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
292
284
  else {
293
285
  // No alternative - convert to make_to_order
294
286
  console.log("[SYNC ORDER TO ERP] No alternative jewel_code found, converting to make_to_order");
295
- // Update order item - remove jewel_items completely
287
+ // Reset inward_master for conflicting jewel code
288
+ if (conflictingJewelCode) {
289
+ try {
290
+ const { data: inwardRecords } = await query.graph({
291
+ entity: "inward_master",
292
+ fields: ["id"],
293
+ filters: { jewel_code: conflictingJewelCode },
294
+ });
295
+ if (inwardRecords?.length) {
296
+ await container.resolve("extended_variant").updateInwardMasters(inwardRecords.map((r) => ({
297
+ id: r.id,
298
+ is_inward_marked: false,
299
+ inward_order_id: null,
300
+ inward_marked_at: null,
301
+ })));
302
+ console.log(`[SYNC ORDER TO ERP] Released inward reservation for conflicting jewel_code: ${conflictingJewelCode}`);
303
+ }
304
+ }
305
+ catch (inwardErr) {
306
+ console.error(`[SYNC ORDER TO ERP] Failed to reset inward for conflicting jewel_code:`, inwardErr);
307
+ }
308
+ }
309
+ // Update order item - remove variant_barcode and metadata.jewel_id
296
310
  const updatedItemMetadata = { ...(conflictingItem.metadata || {}) };
297
- delete updatedItemMetadata.jewel_items;
311
+ delete updatedItemMetadata.jewel_id;
298
312
  updatedItemMetadata.converted_to_mto = true;
299
313
  updatedItemMetadata.conversion_timestamp = new Date().toISOString();
300
314
  await orderService.updateOrderLineItems([
301
315
  {
302
316
  selector: { id: conflictingItem.id },
303
- data: { metadata: updatedItemMetadata },
317
+ data: {
318
+ variant_barcode: undefined,
319
+ metadata: updatedItemMetadata,
320
+ },
304
321
  },
305
322
  ]);
306
323
  // Update in-memory order
307
324
  conflictingItem.metadata = updatedItemMetadata;
325
+ conflictingItem.variant_barcode = null;
308
326
  // Update cart if exists
309
327
  const cartId = order.metadata?.cart_id;
310
328
  if (cartId && typeof cartId === "string") {
@@ -315,10 +333,14 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
315
333
  const cartItem = cart?.items?.find((item) => item.variant_id === conflictingItem.variant_id);
316
334
  if (cartItem) {
317
335
  const updatedCartMeta = { ...(cartItem.metadata || {}) };
318
- delete updatedCartMeta.jewel_items;
336
+ delete updatedCartMeta.jewel_id;
319
337
  updatedCartMeta.converted_to_mto = true;
320
338
  await cartService.updateLineItems([
321
- { id: cartItem.id, metadata: updatedCartMeta },
339
+ {
340
+ id: cartItem.id,
341
+ variant_barcode: undefined,
342
+ metadata: updatedCartMeta,
343
+ },
322
344
  ]);
323
345
  }
324
346
  // Update cart order type
@@ -419,7 +441,7 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
419
441
  order?.metadata?.cart_type === "POS_CART" &&
420
442
  order.metadata.cart_order_type === "ready_to_sell") {
421
443
  // Check if all items with jewel_code exist in inward_master with matching branch_no
422
- const itemsWithJewelCode = (order.items || []).filter((item) => item.metadata?.jewel_items?.jewel_code);
444
+ const itemsWithJewelCode = (order.items || []).filter((item) => item.variant_barcode);
423
445
  let allItemsMatch = true;
424
446
  if (itemsWithJewelCode.length > 0) {
425
447
  const branchNo = branch_data?.branch_no;
@@ -430,7 +452,7 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
430
452
  else {
431
453
  // Check each item with jewel_code in inward_master
432
454
  const inwardChecks = await Promise.all(itemsWithJewelCode.map(async (item) => {
433
- const jewelCode = item.metadata?.jewel_items?.jewel_code;
455
+ const jewelCode = item?.variant_barcode;
434
456
  if (!jewelCode)
435
457
  return true;
436
458
  const { data: [inwardMaster], } = await query.graph({
@@ -486,7 +508,6 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
486
508
  console.log("salePayload", JSON.stringify(salePayload, null, 2));
487
509
  saleResponse = await erpModuleService.createSale(salePayload, order?.metadata?.cart_type === "POS_CART" ? "POS" : "WEBSITE");
488
510
  console.log("saleResponse", JSON.stringify(saleResponse, null, 2));
489
- // Check if sale creation failed and send Slack notification
490
511
  if (saleResponse?.status === false) {
491
512
  try {
492
513
  const notificationService = container.resolve(utils_1.Modules.NOTIFICATION);
@@ -514,16 +535,14 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
514
535
  catch (slackError) {
515
536
  console.error("Failed to send Slack notification:", slackError);
516
537
  }
517
- // Sale failed but order succeeded — convert to make_to_order,
518
- // strip jewel_items from all order items, and release inward reservations
519
- console.log("[SYNC ORDER TO ERP] Sale failed — converting order to make_to_order and releasing inward reservations");
520
538
  try {
521
539
  const orderService = container.resolve(utils_1.Modules.ORDER);
522
540
  const inwardMasterService = container.resolve("extended_variant");
523
- // Strip jewel_items from every order item that has them
524
- const itemsWithJewelItems = (order.items || []).filter((item) => item.metadata?.jewel_items);
525
- for (const item of itemsWithJewelItems) {
526
- const jewelCode = item.metadata?.jewel_items?.jewel_code;
541
+ const cartService = container.resolve(utils_1.Modules.CART);
542
+ // Get items with variant_barcode (ready_to_sell items with jewel code)
543
+ const itemsWithJewelCode = (order.items || []).filter((item) => item.variant_barcode);
544
+ for (const item of itemsWithJewelCode) {
545
+ const jewelCode = item?.variant_barcode;
527
546
  // Reset inward_master reservation fields
528
547
  if (jewelCode) {
529
548
  try {
@@ -546,15 +565,16 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
546
565
  console.error(`[SYNC ORDER TO ERP] Failed to reset inward for jewel_code ${jewelCode}:`, inwardErr);
547
566
  }
548
567
  }
549
- // Remove jewel_items from order item metadata
550
- // Set jewel_items to null explicitly — Medusa merges metadata so delete alone won't remove it
568
+ // Remove variant_barcode and metadata.jewel_id from order item
569
+ const updatedMetadata = { ...(item.metadata || {}) };
570
+ delete updatedMetadata.jewel_id;
551
571
  await orderService.updateOrderLineItems([
552
572
  {
553
573
  selector: { id: item.id },
554
574
  data: {
575
+ variant_barcode: undefined,
555
576
  metadata: {
556
- ...(item.metadata || {}),
557
- jewel_items: null,
577
+ ...updatedMetadata,
558
578
  converted_to_mto: true,
559
579
  mto_conversion_reason: "sale_creation_failed",
560
580
  },
@@ -562,6 +582,45 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
562
582
  },
563
583
  ]);
564
584
  }
585
+ // Update cart items if exists
586
+ const cartId = order.metadata?.cart_id;
587
+ if (cartId && typeof cartId === "string") {
588
+ try {
589
+ const cart = await cartService.retrieveCart(cartId, {
590
+ relations: ["items"],
591
+ });
592
+ for (const item of itemsWithJewelCode) {
593
+ const cartItem = cart?.items?.find((ci) => ci.variant_id === item.variant_id);
594
+ if (cartItem) {
595
+ const updatedCartMetadata = { ...(cartItem.metadata || {}) };
596
+ delete updatedCartMetadata.jewel_id;
597
+ await cartService.updateLineItems([
598
+ {
599
+ id: cartItem.id,
600
+ variant_barcode: undefined,
601
+ metadata: {
602
+ ...updatedCartMetadata,
603
+ converted_to_mto: true,
604
+ },
605
+ },
606
+ ]);
607
+ }
608
+ }
609
+ // Update cart order type
610
+ await cartService.updateCarts([
611
+ {
612
+ id: cartId,
613
+ metadata: {
614
+ ...(cart?.metadata || {}),
615
+ cart_order_type: "make_to_order",
616
+ },
617
+ },
618
+ ]);
619
+ }
620
+ catch (cartErr) {
621
+ console.error("[SYNC ORDER TO ERP] Cart update error:", cartErr);
622
+ }
623
+ }
565
624
  // Convert order to make_to_order
566
625
  await orderService.updateOrders([
567
626
  {
@@ -569,8 +628,6 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
569
628
  metadata: {
570
629
  ...(order.metadata || {}),
571
630
  cart_order_type: "make_to_order",
572
- original_order_type: order.metadata?.cart_order_type,
573
- mto_conversion_reason: "sale_creation_failed",
574
631
  },
575
632
  },
576
633
  ]);
@@ -662,4 +719,4 @@ exports.syncOrderToErpStep = (0, workflows_sdk_1.createStep)("sync-order-to-erp"
662
719
  : null,
663
720
  });
664
721
  });
665
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1vcmRlci10by1lcnAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy9zdGVwcy9zeW5jLW9yZGVyLXRvLWVycC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBK0U7QUFDL0UscUVBQTZFO0FBRTdFLHdEQUFzRTtBQUV0RSxtREFBNkM7QUFJaEMsUUFBQSxrQkFBa0IsR0FBRyxJQUFBLDBCQUFVLEVBQzFDLG1CQUFtQixFQUNuQixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDNUMsdUZBQXVGO0lBQ3ZGLElBQ0UsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEtBQUssS0FBSztRQUNqQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsS0FBSyxJQUFJLEVBQ2xDLENBQUM7UUFDRCxrQkFBTSxDQUFDLElBQUksQ0FDVCw4QkFBOEIsS0FBSyxDQUFDLEVBQUUsa0NBQWtDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxHQUFHLENBQzFJLENBQUM7UUFDRixPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUNqQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7UUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FB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
722
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1vcmRlci10by1lcnAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL29yZGVycy9zdGVwcy9zeW5jLW9yZGVyLXRvLWVycC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBK0U7QUFDL0UscUVBQTZFO0FBRTdFLHdEQUFzRTtBQUV0RSxtREFBNkM7QUFJaEMsUUFBQSxrQkFBa0IsR0FBRyxJQUFBLDBCQUFVLEVBQzFDLG1CQUFtQixFQUNuQixLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQWEsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDNUMsdUZBQXVGO0lBQ3ZGLElBQ0UsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEtBQUssS0FBSztRQUNqQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsS0FBSyxJQUFJLEVBQ2xDLENBQUM7UUFDRCxrQkFBTSxDQUFDLElBQUksQ0FDVCw4QkFBOEIsS0FBSyxDQUFDLEVBQUUsa0NBQWtDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxHQUFHLENBQzFJLENBQUM7UUFDRixPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsTUFBTSxFQUNKLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUNqQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNwQixNQUFNLEVBQUUsVUFBVTtRQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7UUFDcEMsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FB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
@@ -5,6 +5,8 @@ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
5
  const utils_1 = require("@medusajs/framework/utils");
6
6
  const order_request_helper_1 = require("../utils/order-request-helper");
7
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");
8
10
  /**
9
11
  * Step to sync sale return data to GATI ERP.
10
12
  * On success, creates/updates sale_master from ERP response and links it to the order (same as order_master).
@@ -13,6 +15,30 @@ exports.syncSaleReturnToErpStep = (0, workflows_sdk_1.createStep)("sync-sale-ret
13
15
  const { order_id, request_id, request_items, customer_note } = input;
14
16
  try {
15
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_request",
22
+ fields: ["*"],
23
+ filters: { id: request_id },
24
+ });
25
+ const orderRequest = orderRequests?.[0];
26
+ if (orderRequest?.metadata?.sync_status === "synced" || orderRequest?.metadata?.external_id) {
27
+ framework_1.logger.info(`[SyncSaleReturn] Skipping request ${request_id} — already synced`);
28
+ return new workflows_sdk_1.StepResponse({
29
+ request_id,
30
+ order_id,
31
+ erp_response: null,
32
+ sale_return_data: null,
33
+ synced: false,
34
+ error: "Request already synced",
35
+ });
36
+ }
37
+ }
38
+ catch (checkError) {
39
+ framework_1.logger.warn(`[SyncSaleReturn] Failed to check sync status: ${checkError?.message}`);
40
+ // Continue with sync attempt anyway
41
+ }
16
42
  const { data: orderData } = await query.graph({
17
43
  entity: "order",
18
44
  fields: [
@@ -68,7 +94,8 @@ exports.syncSaleReturnToErpStep = (0, workflows_sdk_1.createStep)("sync-sale-ret
68
94
  data: null,
69
95
  };
70
96
  }
71
- // On success: create/update sale_master from ERP response and link to order (same as order_master)
97
+ // On success: create/update sale_master from ERP response and link to order
98
+ // Also create sale_return_master from webhook step and update order_request metadata
72
99
  if (erpResponse?.status === true && erpResponse?.data) {
73
100
  const data = erpResponse.data;
74
101
  const saleMasterService = container.resolve(sale_master_1.SALE_MASTER_MODULE);
@@ -123,6 +150,79 @@ exports.syncSaleReturnToErpStep = (0, workflows_sdk_1.createStep)("sync-sale-ret
123
150
  }
124
151
  }
125
152
  }
153
+ // Phase 3: Create/update sale_return_master from ERP response
154
+ // Link it to order_request via order_request_id field
155
+ try {
156
+ if (data.JewelTransId) {
157
+ const saleReturnService = container.resolve(sale_return_master_1.SALE_RETURN_MASTER_MODULE);
158
+ const erpService = container.resolve("erp");
159
+ // Fetch full sale return data from ERP
160
+ const saleReturnData = await erpService.getMasterData("sale_return", String(data.JewelTransId));
161
+ if (saleReturnData) {
162
+ const { SaleReturn: saleReturnRecords } = saleReturnData;
163
+ if (Array.isArray(saleReturnRecords) && saleReturnRecords.length > 0) {
164
+ for (const saleReturn of saleReturnRecords) {
165
+ const existing = await saleReturnService.listSaleReturnMasters({
166
+ sale_return_id: Number(saleReturn.JewelTransId),
167
+ });
168
+ // Build addless_detail from response (tax/discount breakdown)
169
+ const addlessDetail = saleReturn.AddlessDetail?.length
170
+ ? saleReturn.AddlessDetail.map((item) => ({
171
+ prompt: item.Prompt,
172
+ addless_per: item.AddLessPer || null,
173
+ addless_amount: item.AddLessAmount,
174
+ }))
175
+ : null;
176
+ const addlessDetailWithSummary = addlessDetail
177
+ ? {
178
+ items: addlessDetail,
179
+ gross_amount: saleReturn.GrossAmount,
180
+ total_addless_amount: saleReturn.TotalAddlessAmount,
181
+ final_amount: saleReturn.Amount,
182
+ }
183
+ : {
184
+ gross_amount: saleReturn.GrossAmount,
185
+ total_addless_amount: saleReturn.TotalAddlessAmount,
186
+ final_amount: saleReturn.Amount,
187
+ };
188
+ const saleReturnPayload = {
189
+ sale_return_id: saleReturn.JewelTransId,
190
+ return_no: saleReturn.JewelTransNo,
191
+ return_date: saleReturn.JewelTransDate,
192
+ party_no: saleReturn.PartyNo,
193
+ branch_no: saleReturn.BranchNo,
194
+ status: saleReturn.Status || null,
195
+ total_amount: saleReturn.Amount,
196
+ remarks: saleReturn.Remarks || null,
197
+ addless_detail: addlessDetailWithSummary,
198
+ order_request_id: request_id,
199
+ metadata: {
200
+ erp_prefix: saleReturn.JewelTransPrefix,
201
+ erp_jewel_trans_id: saleReturn.JewelTransId,
202
+ sales_person: saleReturn.SalesPerson,
203
+ firm_name: saleReturn.FirmName,
204
+ },
205
+ };
206
+ if (existing?.length > 0) {
207
+ await saleReturnService.updateSaleReturnMasters({
208
+ id: existing[0].id,
209
+ ...saleReturnPayload,
210
+ });
211
+ framework_1.logger.info(`[ERP SYNC] Updated sale_return_master ${existing[0].id} for JewelTransId ${data.JewelTransId}`);
212
+ }
213
+ else {
214
+ await saleReturnService.createSaleReturnMasters(saleReturnPayload);
215
+ framework_1.logger.info(`[ERP SYNC] Created sale_return_master for JewelTransId ${data.JewelTransId}`);
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ catch (saleReturnError) {
223
+ framework_1.logger.warn(`[ERP SYNC] Failed to create/update sale_return_master: ${saleReturnError?.message}`);
224
+ // Don't fail the entire step - this is supplementary processing
225
+ }
126
226
  }
127
227
  return new workflows_sdk_1.StepResponse({
128
228
  request_id,
@@ -145,4 +245,4 @@ exports.syncSaleReturnToErpStep = (0, workflows_sdk_1.createStep)("sync-sale-ret
145
245
  });
146
246
  }
147
247
  });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1zYWxlLXJldHVybi10by1lcnAtc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb3JkZXJzL3N0ZXBzL3N5bmMtc2FsZS1yZXR1cm4tdG8tZXJwLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUErRTtBQUMvRSx3RUFBb0Y7QUFFcEYsOERBQWtFO0FBbUJsRTs7O0dBR0c7QUFDVSxRQUFBLHVCQUF1QixHQUFHLElBQUEsMEJBQVUsRUFDL0MseUJBQXlCLEVBQ3pCLEtBQUssRUFBRSxLQUErQixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQW9ELEVBQUU7SUFDekcsTUFBTSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUVyRSxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzVDLE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFO2dCQUNOLEdBQUc7Z0JBQ0gsWUFBWTtnQkFDWiw4QkFBOEI7Z0JBQzlCLFNBQVM7Z0JBQ1QsaUJBQWlCO2dCQUNqQixrQ0FBa0M7Z0JBQ2xDLG9CQUFvQjtnQkFDcEIsNkJBQTZCO2dCQUM3QixVQUFVO2FBQ1g7WUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO1NBQzFCLENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxHQUFHLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLFFBQVEs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
248
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luYy1zYWxlLXJldHVybi10by1lcnAtc3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvb3JkZXJzL3N0ZXBzL3N5bmMtc2FsZS1yZXR1cm4tdG8tZXJwLXN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUVBQTZFO0FBQzdFLHFEQUErRTtBQUMvRSx3RUFBb0Y7QUFFcEYsOERBQWtFO0FBQ2xFLDRFQUFnRjtBQUVoRixtREFBNkM7QUFtQjdDOzs7R0FHRztBQUNVLFFBQUEsdUJBQXVCLEdBQUcsSUFBQSwwQkFBVSxFQUMvQyx5QkFBeUIsRUFDekIsS0FBSyxFQUFFLEtBQStCLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBb0QsRUFBRTtJQUN6RyxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXJFLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFakUsdURBQXVEO1FBQ3ZELElBQUksQ0FBQztZQUNILE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNoRCxNQUFNLEVBQUUsZUFBZTtnQkFDdkIsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDO2dCQUNiLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxZQUFZLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsSUFBSSxZQUFZLEVBQUUsUUFBUSxFQUFFLFdBQVcsS0FBSyxRQUFRLElBQUksWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDNUYsa0JBQU0sQ0FBQyxJQUFJLENBQUMs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