@devx-commerce/plugin-gati 0.0.34-beta.12 → 0.0.34-beta.16

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 (63) hide show
  1. package/.medusa/server/development/erp-order-payload-example.js +76 -0
  2. package/.medusa/server/src/api/admin/variant-options/sync/route.js +9 -5
  3. package/.medusa/server/src/api/erp/webhook/route.js +10 -137
  4. package/.medusa/server/src/api/pos/gold-rate/route.js +9 -15
  5. package/.medusa/server/src/jobs/process-erp-events.js +205 -0
  6. package/.medusa/server/src/jobs/process-variant-option-sync.js +17 -9
  7. package/.medusa/server/src/jobs/sync-order-erp.js +2 -2
  8. package/.medusa/server/src/modules/erp/service.js +4 -118
  9. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +2 -2
  10. package/.medusa/server/src/workflows/helpers/product-helper.js +33 -17
  11. package/.medusa/server/src/workflows/orders/steps/index.js +1 -3
  12. package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +9 -245
  13. package/.medusa/server/src/workflows/orders/utils/order-helper.js +28 -112
  14. package/.medusa/server/src/workflows/orders/workflows/index.js +1 -2
  15. package/.medusa/server/src/workflows/orders/workflows/sync-order-to-erp.js +4 -28
  16. package/.medusa/server/src/workflows/party-master/steps/create-customer-erp.js +2 -2
  17. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +17 -9
  18. package/package.json +1 -1
  19. package/.medusa/server/src/jobs/sync-labour-chart-master.js +0 -20
  20. package/.medusa/server/src/jobs/sync-payment-book-master.js +0 -63
  21. package/.medusa/server/src/jobs/sync-rate-chart-master.js +0 -20
  22. package/.medusa/server/src/links/jewel-trans-master.js +0 -13
  23. package/.medusa/server/src/links/order-master.js +0 -13
  24. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251210112341.js +0 -18
  25. package/.medusa/server/src/modules/jewel-trans-master/index.js +0 -13
  26. package/.medusa/server/src/modules/jewel-trans-master/migrations/Migration20260101104355.js +0 -51
  27. package/.medusa/server/src/modules/jewel-trans-master/models/jewel-trans-master.js +0 -151
  28. package/.medusa/server/src/modules/jewel-trans-master/service.js +0 -16
  29. package/.medusa/server/src/modules/labour-chart-master/index.js +0 -13
  30. package/.medusa/server/src/modules/labour-chart-master/migrations/Migration20260101081502.js +0 -15
  31. package/.medusa/server/src/modules/labour-chart-master/models/labour-chart-master.js +0 -16
  32. package/.medusa/server/src/modules/labour-chart-master/service.js +0 -10
  33. package/.medusa/server/src/modules/order-master/index.js +0 -13
  34. package/.medusa/server/src/modules/order-master/migrations/Migration20251204071941.js +0 -27
  35. package/.medusa/server/src/modules/order-master/models/order-master.js +0 -97
  36. package/.medusa/server/src/modules/order-master/service.js +0 -12
  37. package/.medusa/server/src/modules/payment-book-master/index.js +0 -13
  38. package/.medusa/server/src/modules/payment-book-master/migrations/Migration20251203105358.js +0 -15
  39. package/.medusa/server/src/modules/payment-book-master/models/payment-book-master.js +0 -12
  40. package/.medusa/server/src/modules/payment-book-master/service.js +0 -10
  41. package/.medusa/server/src/modules/rate-chart-master/index.js +0 -13
  42. package/.medusa/server/src/modules/rate-chart-master/migrations/Migration20260101081500.js +0 -15
  43. package/.medusa/server/src/modules/rate-chart-master/models/rate-chart-master.js +0 -13
  44. package/.medusa/server/src/modules/rate-chart-master/service.js +0 -10
  45. package/.medusa/server/src/subscribers/order-item-update.js +0 -11
  46. package/.medusa/server/src/workflows/jewel-trans-master/index.js +0 -18
  47. package/.medusa/server/src/workflows/jewel-trans-master/steps/create-or-update-jewel-trans-master.js +0 -370
  48. package/.medusa/server/src/workflows/jewel-trans-master/steps/index.js +0 -18
  49. package/.medusa/server/src/workflows/labour-chart-master/index.js +0 -11
  50. package/.medusa/server/src/workflows/labour-chart-master/steps/create-or-update-labour-chart-master.js +0 -38
  51. package/.medusa/server/src/workflows/labour-chart-master/steps/fetch-labour-chart.js +0 -31
  52. package/.medusa/server/src/workflows/order-master/index.js +0 -3
  53. package/.medusa/server/src/workflows/order-master/steps/create-or-update-order-master.js +0 -239
  54. package/.medusa/server/src/workflows/orders/steps/get-today-gold-rate-step.js +0 -77
  55. package/.medusa/server/src/workflows/orders/steps/sync-advance-payment-to-erp-step.js +0 -171
  56. package/.medusa/server/src/workflows/orders/workflows/get-today-gold-rate.js +0 -10
  57. package/.medusa/server/src/workflows/orders/workflows/sync-advanve-payment-to-erp.js +0 -21
  58. package/.medusa/server/src/workflows/payment-book-master/index.js +0 -11
  59. package/.medusa/server/src/workflows/payment-book-master/steps/create-or-update-payment-book-master.js +0 -31
  60. package/.medusa/server/src/workflows/payment-book-master/steps/fetch-payment-book.js +0 -64
  61. package/.medusa/server/src/workflows/rate-chart-master/index.js +0 -11
  62. package/.medusa/server/src/workflows/rate-chart-master/steps/create-or-update-rate-chart-master.js +0 -27
  63. package/.medusa/server/src/workflows/rate-chart-master/steps/fetch-rate-chart.js +0 -31
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const orderPayload = {
4
+ OrderId: 0,
5
+ BranchNo: "0004000711",
6
+ BranchName: "Timeless Jewels",
7
+ OrderPrefix: "",
8
+ OrderNo: "",
9
+ OrderDate: "2025-06-21T00:00:00",
10
+ CustomerId: "0001000056",
11
+ Customer: "",
12
+ PoNo: "ID1111",
13
+ PoDate: "2025-06-21T00:00:00",
14
+ SalesPerson: "",
15
+ WorkOrderNo: "",
16
+ Remarks: "",
17
+ PromocodeSeriesId: 0,
18
+ Promocode: "",
19
+ PromocodePercentage: 0,
20
+ PromocodeAmount: 0,
21
+ OrderDetail: [
22
+ {
23
+ OrderId: 0,
24
+ OrderItemId: 0,
25
+ SrNo: 1,
26
+ StyleId: 33067,
27
+ StyleCode: "DR00962",
28
+ PartyStyleId: 5445,
29
+ PartyStyleCode: "DR00260",
30
+ JewelId: 0,
31
+ JewelCode: "",
32
+ ItemSize: "5",
33
+ OrderQty: 1.0,
34
+ OrderItemPcs: 1,
35
+ Metal: "",
36
+ Tone: "",
37
+ ItemPoNo: "",
38
+ ItemRefNo: "",
39
+ Priority: "N",
40
+ StockType: "LG DIAMOND",
41
+ MakeType: "A",
42
+ CustomerProductionInstruction: "",
43
+ SpecialRemarks: "",
44
+ DesignProductionInstruction: "",
45
+ StampInstruction: "",
46
+ Expecteddeliverydate: "2025-06-25T00:00:00",
47
+ MRP: 36063.0,
48
+ },
49
+ ],
50
+ PaymentOption: [
51
+ {
52
+ OrderId: 0,
53
+ BookName: "UPI TimeLess - P",
54
+ Amount: 37144.89,
55
+ },
56
+ ],
57
+ };
58
+ console.log(JSON.stringify(orderPayload, null, 2));
59
+ // You can use this payload with the ErpService.createOrder method.
60
+ // Example:
61
+ // import ErpService from './src/modules/erp/service';
62
+ // const erpService = new ErpService(
63
+ // {},
64
+ // {
65
+ // authToken: "D7F0A5C3-E229-4BBF-AA62-5D8B858EB887",
66
+ // baseUrl: "http://103.98.6.30:90/api/Svaraa",
67
+ // }
68
+ // );
69
+ // erpService.createOrder(orderPayload)
70
+ // .then(result => {
71
+ // console.log('Order created successfully:', result);
72
+ // })
73
+ // .catch(error => {
74
+ // console.error('Error creating order:', error);
75
+ // });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJwLW9yZGVyLXBheWxvYWQtZXhhbXBsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2RldmVsb3BtZW50L2VycC1vcmRlci1wYXlsb2FkLWV4YW1wbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxNQUFNLFlBQVksR0FBaUI7SUFDakMsT0FBTyxFQUFFLENBQUM7SUFDVixRQUFRLEVBQUUsWUFBWTtJQUN0QixVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsT0FBTyxFQUFFLEVBQUU7SUFDWCxTQUFTLEVBQUUscUJBQXFCO0lBQ2hDLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFFBQVEsRUFBRSxFQUFFO0lBQ1osSUFBSSxFQUFFLFFBQVE7SUFDZCxNQUFNLEVBQUUscUJBQXFCO0lBQzdCLFdBQVcsRUFBRSxFQUFFO0lBQ2YsV0FBVyxFQUFFLEVBQUU7SUFDZixPQUFPLEVBQUUsRUFBRTtJQUNYLGlCQUFpQixFQUFFLENBQUM7SUFDcEIsU0FBUyxFQUFFLEVBQUU7SUFDYixtQkFBbUIsRUFBRSxDQUFDO0lBQ3RCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLFdBQVcsRUFBRTtRQUNYO1lBQ0UsT0FBTyxFQUFFLENBQUM7WUFDVixXQUFXLEVBQUUsQ0FBQztZQUNkLElBQUksRUFBRSxDQUFDO1lBQ1AsT0FBTyxFQUFFLEtBQUs7WUFDZCxTQUFTLEVBQUUsU0FBUztZQUNwQixZQUFZLEVBQUUsSUFBSTtZQUNsQixjQUFjLEVBQUUsU0FBUztZQUN6QixPQUFPLEVBQUUsQ0FBQztZQUNWLFNBQVMsRUFBRSxFQUFFO1lBQ2IsUUFBUSxFQUFFLEdBQUc7WUFDYixRQUFRLEVBQUUsR0FBRztZQUNiLFlBQVksRUFBRSxDQUFDO1lBQ2YsS0FBSyxFQUFFLEVBQUU7WUFDVCxJQUFJLEVBQUUsRUFBRTtZQUNSLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixRQUFRLEVBQUUsR0FBRztZQUNiLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLFFBQVEsRUFBRSxHQUFHO1lBQ2IsNkJBQTZCLEVBQUUsRUFBRTtZQUNqQyxjQUFjLEVBQUUsRUFBRTtZQUNsQiwyQkFBMkIsRUFBRSxFQUFFO1lBQy9CLGdCQUFnQixFQUFFLEVBQUU7WUFDcEIsb0JBQW9CLEVBQUUscUJBQXFCO1lBQzNDLEdBQUcsRUFBRSxPQUFPO1NBQ2I7S0FDRjtJQUNELGFBQWEsRUFBRTtRQUNiO1lBQ0UsT0FBTyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLE1BQU0sRUFBRSxRQUFRO1NBQ2pCO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUVuRCxtRUFBbUU7QUFDbkUsV0FBVztBQUVYLHNEQUFzRDtBQUV0RCxxQ0FBcUM7QUFDckMsUUFBUTtBQUNSLE1BQU07QUFDTix5REFBeUQ7QUFDekQsbURBQW1EO0FBQ25ELE1BQU07QUFDTixLQUFLO0FBRUwsdUNBQXVDO0FBQ3ZDLHNCQUFzQjtBQUN0QiwwREFBMEQ7QUFDMUQsT0FBTztBQUNQLHNCQUFzQjtBQUN0QixxREFBcUQ7QUFDckQsUUFBUSJ9
@@ -152,6 +152,12 @@ const POST = async (req, res) => {
152
152
  let hasMetalOption = false;
153
153
  let hasDiamondOption = false;
154
154
  if (extendedVariant.party_style_details) {
155
+ // First, find diamond details for processing
156
+ const diamondDetails = extendedVariant.party_style_details.filter((detail) => detail.raw_type === "Diamond" &&
157
+ detail.tone_code &&
158
+ detail.qly_code);
159
+ const baseDiamondDetail = diamondDetails.find((detail) => detail.is_base);
160
+ const diamondDetailToUse = baseDiamondDetail || diamondDetails[0];
155
161
  for (const detail of extendedVariant.party_style_details) {
156
162
  // Metal options
157
163
  if (detail.raw_type === "Metal" && detail.is_base) {
@@ -206,10 +212,8 @@ const POST = async (req, res) => {
206
212
  }
207
213
  }
208
214
  // Diamond Quality
209
- if (detail.raw_type === "Diamond" &&
210
- detail.tone_code &&
211
- detail.qly_code &&
212
- detail.is_base) {
215
+ if (diamondDetailToUse &&
216
+ detail === diamondDetailToUse) {
213
217
  hasDiamondOption = true;
214
218
  const toneTitle = (masterMaps.toneMasterMap.get(detail.tone_code) ||
215
219
  detail.tone_code).trim();
@@ -310,4 +314,4 @@ const POST = async (req, res) => {
310
314
  }
311
315
  };
312
316
  exports.POST = POST;
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3ZhcmlhbnQtb3B0aW9ucy9zeW5jL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFzRTtBQUN0RSw0REFHcUM7QUFFckMsK0RBTXNDO0FBRS9CLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRW5FLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUdqRixDQUFDO0lBRUYsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxrQ0FBbUIsRUFDakIseUNBQXlDLEVBQ3pDLHlCQUFVLENBQUMsV0FBVyxFQUN0Qix3QkFBUyxDQUFDLGdCQUFnQixDQUMzQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsa0NBQWtDO1FBQ2xDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQy9DLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDO1NBQ3BDLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdC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
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3ZhcmlhbnQtb3B0aW9ucy9zeW5jL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFzRTtBQUN0RSw0REFHcUM7QUFFckMsK0RBTXNDO0FBRS9CLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRW5FLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUdqRixDQUFDO0lBRUYsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sSUFBQSw4QkFBZSxFQUNwQixHQUFHLEVBQ0gsSUFBQSxrQ0FBbUIsRUFDakIseUNBQXlDLEVBQ3pDLHlCQUFVLENBQUMsV0FBVyxFQUN0Qix3QkFBUyxDQUFDLGdCQUFnQixDQUMzQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsa0NBQWtDO1FBQ2xDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQy9DLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDO1NBQ3BDLENBQUMsQ0FBQztRQUVILE1BQU0sRUFBRSxJQUFJLEVBQUUsZ0JBQWdC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
@@ -2,69 +2,12 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POST = POST;
4
4
  const framework_1 = require("@medusajs/framework");
5
- const bulk_jobs_task_trigger_1 = require("../../../workflows/bulk-jobs-task-trigger");
6
5
  const workflows_1 = require("../../../workflows/erp-event/workflows");
7
- const update_erp_event_1 = require("../../../workflows/erp-event/workflows/update-erp-event");
8
6
  const config_1 = require("./config");
9
7
  const utils_1 = require("./utils");
10
- // ECS task configuration for different data types
11
- const ECS_TASK_CONFIG = {
12
- StyleMst: {
13
- taskType: "erp-webhook-batch-processing",
14
- batchSize: 200,
15
- enabled: true,
16
- },
17
- PartyStyleMst: {
18
- taskType: "erp-webhook-batch-processing",
19
- batchSize: 200,
20
- enabled: true,
21
- },
22
- Inward: {
23
- taskType: "erp-webhook-batch-processing",
24
- batchSize: 200,
25
- enabled: true,
26
- },
27
- };
28
8
  /**
29
- * Triggers ECS task for StyleMst and PartyStyleMst
30
- */
31
- async function triggerEcsTask(scope, datafor, operation, data, erpEventId) {
32
- const taskConfig = ECS_TASK_CONFIG[datafor];
33
- framework_1.logger.info(`🚀 Triggering ECS task for ${datafor} with ${data.length} items`);
34
- try {
35
- const { result } = await (0, bulk_jobs_task_trigger_1.bulkJobsTaskTriggerWorkflow)(scope).run({
36
- input: {
37
- taskType: taskConfig.taskType,
38
- parameters: {
39
- batchSize: taskConfig.batchSize,
40
- erpEventId, // Pass the ERP event ID
41
- },
42
- },
43
- });
44
- framework_1.logger.info(`✅ ECS task triggered successfully for ${datafor}: ${JSON.stringify(result)}`);
45
- }
46
- catch (error) {
47
- framework_1.logger.error(`❌ Failed to trigger ECS task for ${datafor}:`, error);
48
- throw error; // Throw error since this is the main processing path
49
- }
50
- }
51
- /**
52
- * Processes the webhook request by executing the appropriate workflow
53
- */
54
- async function processWebhookRequest(scope, datafor, operation, data, eventId) {
55
- const workflowConfig = config_1.MASTER_WORKFLOW_CONFIG[datafor];
56
- if (!workflowConfig) {
57
- console.error(`Unsupported datafor type: ${datafor}`);
58
- }
59
- const workflowHandler = workflowConfig[operation];
60
- if (!workflowHandler) {
61
- throw new Error(`Unsupported operation: ${operation} for ${datafor}`);
62
- }
63
- const input = { datafor, operation, data, eventId };
64
- await workflowHandler(scope, input);
65
- }
66
- /**
67
- * Handles the webhook request
9
+ * Handles the webhook request by queuing it in the erp_event table
10
+ * Processing is handled by a cron job that processes events in order
68
11
  */
69
12
  async function POST(req, res) {
70
13
  try {
@@ -75,39 +18,9 @@ async function POST(req, res) {
75
18
  }
76
19
  const { datafor, operation, data } = req.body;
77
20
  // Log the received data
78
- framework_1.logger.info(`Received webhook: ${operation} for ${datafor} with ${data.length} items`);
79
- // Check if there's already a pending event for the same datafor and operation
80
- const query = req.scope.resolve("query");
81
- const existingPendingEvents = await query.graph({
82
- entity: "erp_event",
83
- fields: ["id", "status", "created_at"],
84
- filters: {
85
- datafor,
86
- operation,
87
- status: "pending",
88
- },
89
- pagination: {
90
- take: 1,
91
- order: { created_at: "desc" },
92
- },
93
- });
94
- if (existingPendingEvents.data.length > 0) {
95
- const existingEvent = existingPendingEvents.data[0];
96
- framework_1.logger.warn(`⚠️ Duplicate processing detected! Found existing pending event ${existingEvent.id} for ${datafor} ${operation}. Adding new request in queue.`);
97
- // const erpEvent = await createErpEventWorkflow(req.scope).run({
98
- // input: {
99
- // datafor,
100
- // operation,
101
- // data,
102
- // status: "pending",
103
- // sync_completed_at: null,
104
- // },
105
- // });
106
- (0, utils_1.sendErrorResponse)(res, 409, `Processing already in progress for ${datafor} ${operation}. Event ID: ${existingEvent.id}.`);
107
- return;
108
- }
21
+ framework_1.logger.info(`Received webhook: ${operation} for ${datafor} with ${data.length} items - queuing for processing`);
109
22
  const workflowConfig = config_1.MASTER_WORKFLOW_CONFIG[datafor];
110
- // If unsupported type, record event as completed and return success immediately
23
+ // If unsupported type, record event as completed immediately
111
24
  if (!workflowConfig) {
112
25
  const completedEvent = await (0, workflows_1.createErpEventWorkflow)(req.scope).run({
113
26
  input: {
@@ -118,14 +31,14 @@ async function POST(req, res) {
118
31
  sync_completed_at: new Date(),
119
32
  },
120
33
  });
121
- (0, utils_1.sendSuccessResponse)(res, `Successfully processed ${operation} for ${datafor}`, {
34
+ (0, utils_1.sendSuccessResponse)(res, `Successfully queued ${operation} for ${datafor}`, {
122
35
  processingMode: "skipped",
123
36
  itemCount: data.length,
124
37
  erpEventId: completedEvent.result.id,
125
38
  });
126
39
  return;
127
40
  }
128
- // Always log ERP event first
41
+ // Create ERP event with pending status - will be processed by cron job
129
42
  const erpEvent = await (0, workflows_1.createErpEventWorkflow)(req.scope).run({
130
43
  input: {
131
44
  datafor,
@@ -135,57 +48,17 @@ async function POST(req, res) {
135
48
  sync_completed_at: null,
136
49
  },
137
50
  });
138
- // Check if this is a data type that should use ECS processing
139
- const shouldUseEcsProcessing = [
140
- "StyleMst",
141
- "PartyStyleMst",
142
- "Inward",
143
- ].includes(datafor);
144
- if (shouldUseEcsProcessing && data.length > 100) {
145
- // Update ERP event status to in-progress
146
- await (0, update_erp_event_1.updateErpEventWorkflow)(req.scope).run({
147
- input: {
148
- id: erpEvent.result.id,
149
- status: "in-progress",
150
- sync_completed_at: null,
151
- },
152
- });
153
- // Trigger ECS task for StyleMst and PartyStyleMst
154
- framework_1.logger.info(`📋 Using ECS processing for ${datafor}`);
155
- await triggerEcsTask(req.scope, datafor, operation, data, erpEvent.result.id);
156
- }
157
- else {
158
- framework_1.logger.info(`⚡ Using regular workflow processing for ${datafor}`);
159
- // Update ERP event status to in-progress
160
- await (0, update_erp_event_1.updateErpEventWorkflow)(req.scope).run({
161
- input: {
162
- id: erpEvent.result.id,
163
- status: "in-progress",
164
- sync_completed_at: null,
165
- },
166
- });
167
- // Use regular workflow processing for other data types
168
- await processWebhookRequest(req.scope, datafor, operation, data, erpEvent.result.id);
169
- // Update ERP event status to completed
170
- await (0, update_erp_event_1.updateErpEventWorkflow)(req.scope).run({
171
- input: {
172
- id: erpEvent.result.id,
173
- status: "completed",
174
- sync_completed_at: new Date(),
175
- },
176
- });
177
- }
178
- (0, utils_1.sendSuccessResponse)(res, `Successfully processed ${operation} for ${datafor}`, {
179
- processingMode: shouldUseEcsProcessing && data.length > 100 ? "ecs" : "workflow",
51
+ (0, utils_1.sendSuccessResponse)(res, `Successfully queued ${operation} for ${datafor}`, {
52
+ processingMode: "queued",
180
53
  itemCount: data.length,
181
54
  erpEventId: erpEvent.result.id,
182
55
  });
183
56
  }
184
57
  catch (error) {
185
- framework_1.logger.error("Error processing webhook:", error);
58
+ framework_1.logger.error("Error queuing webhook:", error);
186
59
  // Provide more specific error messages
187
60
  const errorMessage = error instanceof Error ? error.message : "Internal server error";
188
61
  (0, utils_1.sendErrorResponse)(res, 500, errorMessage);
189
62
  }
190
63
  }
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VycC93ZWJob29rL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBb0dBLG9CQTJLQztBQS9RRCxtREFBNkM7QUFHN0Msc0ZBQXdGO0FBQ3hGLHNFQUFnRjtBQUNoRiw4RkFBaUc7QUFFakcscUNBQXlFO0FBQ3pFLG1DQUlpQjtBQUVqQixrREFBa0Q7QUFDbEQsTUFBTSxlQUFlLEdBQUc7SUFDdEIsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLDhCQUE4QjtRQUN4QyxTQUFTLEVBQUUsR0FBRztRQUNkLE9BQU8sRUFBRSxJQUFJO0tBQ2Q7SUFDRCxhQUFhLEVBQUU7UUFDYixRQUFRLEVBQUUsOEJBQThCO1FBQ3hDLFNBQVMsRUFBRSxHQUFHO1FBQ2QsT0FBTyxFQUFFLElBQUk7S0FDZDtJQUNELE1BQU0sRUFBRTtRQUNOLFFBQVEsRUFBRSw4QkFBOEI7UUFDeEMsU0FBUyxFQUFFLEdBQUc7UUFDZCxPQUFPLEVBQUUsSUFBSTtLQUNkO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ0gsS0FBSyxVQUFVLGNBQWMsQ0FDM0IsS0FBVSxFQUNWLE9BQW1CLEVBQ25CLFNBQW9CLEVBQ3BCLElBQWMsRUFDZCxVQUFrQjtJQUVsQixNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsT0FBdUMsQ0FBQyxDQUFDO0lBRTVFLGtCQUFNLENBQUMsSUFBSSxDQUNULDhCQUE4QixPQUFPLFNBQVMsSUFBSSxDQUFDLE1BQU0sUUFBUSxDQUNsRSxDQUFDO0lBRUYsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSxvREFBMkIsRUFBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDOUQsS0FBSyxFQUFFO2dCQUNMLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtnQkFDN0IsVUFBVSxFQUFFO29CQUNWLFNBQVMsRUFBRSxV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
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VycC93ZWJob29rL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0JBLG9CQTZFQztBQTdGRCxtREFBNkM7QUFHN0Msc0VBQWdGO0FBRWhGLHFDQUFrRDtBQUNsRCxtQ0FJaUI7QUFFakI7OztHQUdHO0FBQ0ksS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxJQUFBLDhCQUFzQixFQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUEseUJBQWlCLEVBQ2YsR0FBRyxFQUNILEdBQUcsRUFDSCw2RkFBNkYsQ0FDOUYsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQXNCLENBQUM7UUFFaEUsd0JBQXdCO1FBQ3hCLGtCQUFNLENBQUMsSUFBSSxDQUNULHFCQUFxQixTQUFTLFFBQVEsT0FBTyxTQUFTLElBQUksQ0FBQyxNQUFNLGlDQUFpQyxDQUNuRyxDQUFDO1FBRUYsTUFBTSxjQUFjLEdBQUcsK0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsNkRBQTZEO1FBQzdELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEsa0NBQXNCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDakUsS0FBSyxFQUFFO29CQUNMLE9BQU87b0JBQ1AsU0FBUztvQkFDVCxJQUFJO29CQUNKLE1BQU0sRUFBRSxXQUFXO29CQUNuQixpQkFBaUIsRUFBRSxJQUFJLElBQUksRUFBRTtpQkFDOUI7YUFDRixDQUFDLENBQUM7WUFFSCxJQUFBLDJCQUFtQixFQUNqQixHQUFHLEVBQ0gsdUJBQXVCLFNBQVMsUUFBUSxPQUFPLEVBQUUsRUFDakQ7Z0JBQ0UsY0FBYyxFQUFFLFNBQVM7Z0JBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDdEIsVUFBVSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTthQUNyQyxDQUNGLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELHVFQUF1RTtRQUN2RSxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsa0NBQXNCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUMzRCxLQUFLLEVBQUU7Z0JBQ0wsT0FBTztnQkFDUCxTQUFTO2dCQUNULElBQUk7Z0JBQ0osTUFBTSxFQUFFLFNBQVM7Z0JBQ2pCLGlCQUFpQixFQUFFLElBQUk7YUFDeEI7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFBLDJCQUFtQixFQUNqQixHQUFHLEVBQ0gsdUJBQXVCLFNBQVMsUUFBUSxPQUFPLEVBQUUsRUFDakQ7WUFDRSxjQUFjLEVBQUUsUUFBUTtZQUN4QixTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDdEIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtTQUMvQixDQUNGLENBQUM7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLGtCQUFNLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTlDLHVDQUF1QztRQUN2QyxNQUFNLFlBQVksR0FDaEIsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUM7UUFFbkUsSUFBQSx5QkFBaUIsRUFBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVDLENBQUM7QUFDSCxDQUFDIn0=
@@ -6,19 +6,18 @@ const build_redis_key_1 = require("../../../utils/build-redis-key");
6
6
  const api_response_1 = require("../../../lib/api-response");
7
7
  const erp_1 = require("../../../modules/erp");
8
8
  const GET = async (req, res) => {
9
- const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
10
9
  try {
11
- logger.info("[POS-GOLD-RATE] : Fetching gold rate data");
10
+ const grams = 1;
12
11
  const cacheService = req.scope.resolve(utils_1.Modules.CACHE);
13
12
  const erpService = req.scope.resolve(erp_1.ERP_MODULE);
13
+ const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
14
14
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
15
- const cacheKey = (0, build_redis_key_1.buildRedisKey)("pos:gold-rate", {});
15
+ const cacheKey = (0, build_redis_key_1.buildRedisKey)("gold-rate-pos", { grams });
16
16
  const cachedResult = await cacheService.get(cacheKey);
17
17
  if (cachedResult) {
18
- logger.info("[POS-GOLD-RATE] : Returning cached result");
19
- return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(cachedResult, "Gold rate fetched successfully"));
18
+ logger.info(`[HISTORICAL-GOLD-RATE] : Returning cached result for grams: ${grams}`);
19
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(cachedResult, "Historical gold rate fetched successfully"));
20
20
  }
21
- logger.info("[POS-GOLD-RATE] : Cache miss, fetching from ERP and quality master");
22
21
  const [quality14Result, quality18Result, quality22Result] = await Promise.all([
23
22
  query.graph({
24
23
  entity: "quality_master",
@@ -51,14 +50,12 @@ const GET = async (req, res) => {
51
50
  if (!qly22?.qly_mfg_clarity ||
52
51
  !qly18?.qly_mfg_clarity ||
53
52
  !qly14?.qly_mfg_clarity) {
54
- logger.error("[POS-GOLD-RATE] : Quality masters for 14/18/22 karat not found or missing qly_mfg_clarity");
55
53
  return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("Quality masters for 14/18/22 karat not found or missing qly_mfg_clarity", api_response_1.HttpStatus.NOT_FOUND, api_response_1.ErrorCode.NOT_FOUND));
56
54
  }
57
55
  const goldRateData = (await erpService.getGoldRateData());
58
56
  if (!goldRateData?.CurrentGoldRate ||
59
57
  goldRateData.CurrentGoldRate.length === 0) {
60
- logger.error("[POS-GOLD-RATE] : No gold rate data available from ERP");
61
- return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("No gold rate data available from ERP", api_response_1.HttpStatus.INTERNAL_SERVER_ERROR, api_response_1.ErrorCode.INTERNAL_ERROR));
58
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)("No historical gold rate data available from ERP", api_response_1.HttpStatus.INTERNAL_SERVER_ERROR, api_response_1.ErrorCode.INTERNAL_ERROR));
62
59
  }
63
60
  const purity = ["14", "18", "22", "24"];
64
61
  const qlyMap = {
@@ -88,15 +85,12 @@ const GET = async (req, res) => {
88
85
  oldGoldRateList: oldGoldRateList,
89
86
  };
90
87
  await cacheService.set(cacheKey, result, build_redis_key_1.CACHE_VALIDATION_TIMES.GOLD_RATE);
91
- logger.info(`[POS-GOLD-RATE] : Successfully computed and cached gold rates - Current: ${goldRateList.length} rates, Old: ${oldGoldRateList.length} rates`);
92
- return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result, "Gold rate fetched successfully"));
88
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)(result, "Historical gold rate fetched successfully"));
93
89
  }
94
90
  catch (error) {
95
- const errorMessage = error instanceof Error ? error.message : "Unknown error";
96
- const errorStack = error instanceof Error ? error.stack : undefined;
97
- logger.error(`[POS-GOLD-RATE] : Error fetching gold rate - ${errorMessage}${errorStack ? `\nStack: ${errorStack}` : ""}`);
91
+ console.error("Error fetching historical gold rate:", error);
98
92
  return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createErrorResponse)(error instanceof Error ? error.message : "Internal server error", api_response_1.HttpStatus.INTERNAL_SERVER_ERROR, api_response_1.ErrorCode.INTERNAL_ERROR));
99
93
  }
100
94
  };
101
95
  exports.GET = GET;
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3Bvcy9nb2xkLXJhdGUvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQStFO0FBQy9FLG9FQUd3QztBQUN4Qyw0REFNbUM7QUFFbkMsOENBQWdEO0FBMEJ6QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRSxJQUFJLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFFekQsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RELE1BQU0sVUFBVSxHQUFlLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGdCQUFVLENBQUMsQ0FBQztRQUM3RCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxNQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFhLEVBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXBELE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FDekMsUUFBUSxDQUNULENBQUM7UUFFRixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkNBQTJDLENBQUMsQ0FBQztZQUN6RCxPQUFPLElBQUEsOEJBQWUsRUFDcEIsR0FBRyxFQUNILElBQUEsb0NBQXFCLEVBQ25CLFlBQVksRUFDWixnQ0FBZ0MsQ0FDakMsQ0FDRixDQUFDO1FBQ0osQ0FBQztRQUVE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
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3Bvcy9nb2xkLXJhdGUvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQStFO0FBQy9FLG9FQUd3QztBQUN4Qyw0REFNbUM7QUFFbkMsOENBQWdEO0FBMEJ6QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWtCLEVBQ2xCLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQUE7UUFDZixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsTUFBTSxVQUFVLEdBQWUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZ0JBQVUsQ0FBQyxDQUFDO1FBQzdELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25FLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sUUFBUSxHQUFHLElBQUEsK0JBQWEsRUFBQyxlQUFlLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBRTNELE1BQU0sWUFBWSxHQUFHLE1BQU0sWUFBWSxDQUFDLEdBQUcsQ0FDekMsUUFBUSxDQUNULENBQUM7UUFFRixJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsK0RBQStELEtBQUssRUFBRSxDQUN2RSxDQUFDO1lBQ0YsT0FBTyxJQUFBLDhCQUFlLEVBQ3BCLEdBQUcsRUFDSCxJQUFBLG9DQUFxQixFQUNuQixZQUFZLEVBQ1osMkNBQTJDLENBQzVDLENBQ0YsQ0FBQztRQUNKLENB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