@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.
- package/.medusa/server/src/api/erp/webhook/config.js +38 -28
- package/.medusa/server/src/jobs/process-erp-events.js +8 -50
- package/.medusa/server/src/modules/order-proceed-master/index.js +13 -0
- package/.medusa/server/src/modules/order-proceed-master/migrations/Migration20260327100226.js +31 -0
- package/.medusa/server/src/modules/order-proceed-master/models/order-proceed-master.js +38 -0
- package/.medusa/server/src/modules/order-proceed-master/service.js +11 -0
- package/.medusa/server/src/modules/receive-voucher-master/index.js +13 -0
- package/.medusa/server/src/modules/receive-voucher-master/migrations/Migration20260328053649.js +16 -0
- package/.medusa/server/src/modules/receive-voucher-master/models/receive-voucher-master.js +27 -0
- package/.medusa/server/src/modules/receive-voucher-master/service.js +10 -0
- package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260327084135.js +14 -0
- package/.medusa/server/src/modules/sale-return-master/models/sale-return-master.js +3 -1
- package/.medusa/server/src/workflows/index.js +2 -1
- package/.medusa/server/src/workflows/inward-master/steps/index.js +1 -2
- package/.medusa/server/src/workflows/inward-master/workflows/index.js +1 -2
- package/.medusa/server/src/workflows/material-purchase-master/steps/create-material-purchase-master.js +41 -2
- package/.medusa/server/src/workflows/material-purchase-master/steps/delete-material-purchase-master.js +22 -1
- package/.medusa/server/src/workflows/material-purchase-master/steps/update-material-purchase-master.js +67 -19
- package/.medusa/server/src/workflows/order-master/steps/process-order-master-from-webhook.js +2 -2
- package/.medusa/server/src/workflows/order-proceed-master/index.js +6 -0
- package/.medusa/server/src/workflows/order-proceed-master/order-proceed-master-webhook.js +26 -0
- package/.medusa/server/src/workflows/order-proceed-master/steps/create-or-update-order-proceed-master.js +186 -0
- package/.medusa/server/src/workflows/order-proceed-master/steps/delete-order-proceed-master-by-erp-ids.js +28 -0
- package/.medusa/server/src/workflows/orders/steps/sync-old-gold-to-erp-step.js +2 -2
- package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +97 -40
- package/.medusa/server/src/workflows/orders/steps/sync-sale-return-to-erp-step.js +102 -2
- package/.medusa/server/src/workflows/orders/utils/order-helper.js +5 -5
- package/.medusa/server/src/workflows/party-style-master/steps/index.js +1 -2
- package/.medusa/server/src/workflows/party-style-master/workflows/index.js +1 -2
- package/.medusa/server/src/workflows/receive-voucher-master/index.js +24 -0
- package/.medusa/server/src/workflows/receive-voucher-master/steps/create-receive-voucher-master.js +125 -0
- package/.medusa/server/src/workflows/receive-voucher-master/steps/delete-receive-voucher-master.js +45 -0
- package/.medusa/server/src/workflows/receive-voucher-master/steps/fetch-receive-voucher-master.js +22 -0
- package/.medusa/server/src/workflows/receive-voucher-master/steps/update-receive-voucher-master.js +44 -0
- package/.medusa/server/src/workflows/sale-return-master/index.js +4 -22
- package/.medusa/server/src/workflows/sale-return-master/sale-return-master-webhook.js +28 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/create-or-update-sale-return-master.js +109 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master-by-erp-ids.js +36 -0
- package/.medusa/server/src/workflows/sale-return-master/steps/process-sale-return-from-webhook.js +232 -0
- package/.medusa/server/src/workflows/style-master/steps/index.js +1 -2
- package/.medusa/server/src/workflows/style-master/workflows/index.js +1 -2
- package/package.json +1 -1
- package/.medusa/server/src/workflows/inward-master/steps/update-inward-price-only.js +0 -47
- package/.medusa/server/src/workflows/inward-master/workflows/update-inward-price-only.js +0 -99
- package/.medusa/server/src/workflows/party-style-master/steps/update-party-style-price-only.js +0 -111
- package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master-price-only.js +0 -90
- package/.medusa/server/src/workflows/style-master/steps/update-style-price-only.js +0 -105
- 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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
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.
|
|
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: {
|
|
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.
|
|
336
|
+
delete updatedCartMeta.jewel_id;
|
|
319
337
|
updatedCartMeta.converted_to_mto = true;
|
|
320
338
|
await cartService.updateLineItems([
|
|
321
|
-
{
|
|
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.
|
|
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
|
|
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
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
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
|
|
550
|
-
|
|
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
|
-
...
|
|
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
|
|
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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
|