@devx-commerce/plugin-gati 0.0.32 → 0.0.34-beta.0

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 (103) hide show
  1. package/.medusa/server/src/api/admin/masters/[master]/[id]/route.js +121 -0
  2. package/.medusa/server/src/api/admin/masters/[master]/route.js +33 -0
  3. package/.medusa/server/src/api/admin/masters/middlewares.js +35 -0
  4. package/.medusa/server/src/api/admin/masters/query-config.js +14 -0
  5. package/.medusa/server/src/api/admin/masters/search-middleware.js +16 -0
  6. package/.medusa/server/src/api/admin/masters/utils.js +108 -0
  7. package/.medusa/server/src/api/admin/masters/validators.js +28 -0
  8. package/.medusa/server/src/api/admin/middlewares.js +6 -2
  9. package/.medusa/server/src/api/admin/variant-options/sync/route.js +313 -0
  10. package/.medusa/server/src/api/erp/webhook/config.js +32 -6
  11. package/.medusa/server/src/api/store/gold-rate/current/route.js +70 -0
  12. package/.medusa/server/src/api/store/gold-rate/historical/route.js +108 -0
  13. package/.medusa/server/src/api/store/gold-rate/middleware.js +19 -0
  14. package/.medusa/server/src/api/store/gold-rate/validators.js +37 -0
  15. package/.medusa/server/src/api/store/middleware.js +3 -1
  16. package/.medusa/server/src/jobs/process-variant-option-sync.js +521 -0
  17. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js +14 -0
  18. package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js +14 -0
  19. package/.medusa/server/src/modules/category-master/migrations/Migration20251031061327.js +14 -0
  20. package/.medusa/server/src/modules/category-master/migrations/Migration20251104045755.js +14 -0
  21. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js +14 -0
  22. package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js +14 -0
  23. package/.medusa/server/src/modules/collection-master/migrations/Migration20251031060941.js +14 -0
  24. package/.medusa/server/src/modules/collection-master/migrations/Migration20251104050012.js +14 -0
  25. package/.medusa/server/src/modules/discount-master/migrations/Migration20251031061523.js +14 -0
  26. package/.medusa/server/src/modules/discount-master/migrations/Migration20251104050153.js +14 -0
  27. package/.medusa/server/src/modules/erp/service.js +14 -1
  28. package/.medusa/server/src/modules/extended-product/migrations/Migration20251103182726.js +14 -0
  29. package/.medusa/server/src/modules/extended-product/migrations/Migration20251119062526.js +16 -0
  30. package/.medusa/server/src/modules/extended-product/models/extended-product.js +88 -9
  31. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251119063328.js +20 -0
  32. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120045708.js +14 -0
  33. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120051832.js +14 -0
  34. package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120052514.js +14 -0
  35. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +144 -12
  36. package/.medusa/server/src/modules/item-size-master/index.js +13 -0
  37. package/.medusa/server/src/modules/item-size-master/migrations/Migration20251031111036.js +17 -0
  38. package/.medusa/server/src/modules/item-size-master/models/item-size-master.js +14 -0
  39. package/.medusa/server/src/modules/item-size-master/service.js +10 -0
  40. package/.medusa/server/src/modules/party-master/migrations/Migration20251031061657.js +14 -0
  41. package/.medusa/server/src/modules/party-master/migrations/Migration20251104050242.js +14 -0
  42. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251031061829.js +14 -0
  43. package/.medusa/server/src/modules/promocode-master/migrations/Migration20251104050332.js +14 -0
  44. package/.medusa/server/src/modules/quality-master/index.js +13 -0
  45. package/.medusa/server/src/modules/quality-master/migrations/Migration20251031095211.js +16 -0
  46. package/.medusa/server/src/modules/quality-master/migrations/Migration20251105045114.js +14 -0
  47. package/.medusa/server/src/modules/quality-master/models/quality-master.js +17 -0
  48. package/.medusa/server/src/modules/quality-master/service.js +10 -0
  49. package/.medusa/server/src/modules/raw-master/migrations/Migration20251031061912.js +14 -0
  50. package/.medusa/server/src/modules/raw-master/models/raw-master.js +2 -1
  51. package/.medusa/server/src/modules/shape-master/migrations/Migration20251031062019.js +14 -0
  52. package/.medusa/server/src/modules/shape-master/models/shape-master.js +2 -1
  53. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251031062128.js +14 -0
  54. package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251104050501.js +14 -0
  55. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251031062303.js +14 -0
  56. package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251104050743.js +14 -0
  57. package/.medusa/server/src/modules/tone-master/index.js +13 -0
  58. package/.medusa/server/src/modules/tone-master/migrations/Migration20251031104320.js +16 -0
  59. package/.medusa/server/src/modules/tone-master/models/tone-master.js +15 -0
  60. package/.medusa/server/src/modules/tone-master/service.js +10 -0
  61. package/.medusa/server/src/modules/variant-option-sync-queue/index.js +13 -0
  62. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251101082220.js +19 -0
  63. package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251103123857.js +16 -0
  64. package/.medusa/server/src/modules/variant-option-sync-queue/models/variant-option-sync-queue.js +23 -0
  65. package/.medusa/server/src/modules/variant-option-sync-queue/service.js +49 -0
  66. package/.medusa/server/src/subscribers/party-master.js +12 -7
  67. package/.medusa/server/src/utils/build-redis-key.js +30 -0
  68. package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +39 -2
  69. package/.medusa/server/src/workflows/helpers/product-helper.js +409 -106
  70. package/.medusa/server/src/workflows/helpers/update-variant-option-metadata.js +105 -0
  71. package/.medusa/server/src/workflows/helpers/variant-helper.js +212 -0
  72. package/.medusa/server/src/workflows/inward-master/helper/index.js +88 -39
  73. package/.medusa/server/src/workflows/item-size-master/create-or-update-item-size-master.js +51 -0
  74. package/.medusa/server/src/workflows/item-size-master/index.js +15 -0
  75. package/.medusa/server/src/workflows/item-size-master/steps/create-item-size.js +21 -0
  76. package/.medusa/server/src/workflows/item-size-master/steps/delete-item-size.js +23 -0
  77. package/.medusa/server/src/workflows/item-size-master/steps/fetch-item-size-master.js +55 -0
  78. package/.medusa/server/src/workflows/item-size-master/steps/update-item-size.js +36 -0
  79. package/.medusa/server/src/workflows/party-master/steps/delete-party.js +4 -7
  80. package/.medusa/server/src/workflows/party-master/workflows/create-or-update-party-master.js +1 -49
  81. package/.medusa/server/src/workflows/party-master/workflows/delete-party-master.js +60 -0
  82. package/.medusa/server/src/workflows/party-master/workflows/index.js +2 -1
  83. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-deletion.js +307 -189
  84. package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +367 -0
  85. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +120 -4
  86. package/.medusa/server/src/workflows/quality-master/create-or-update-quality-master.js +58 -0
  87. package/.medusa/server/src/workflows/quality-master/index.js +30 -0
  88. package/.medusa/server/src/workflows/quality-master/steps/create-quality.js +22 -0
  89. package/.medusa/server/src/workflows/quality-master/steps/delete-quality.js +20 -0
  90. package/.medusa/server/src/workflows/quality-master/steps/fetch-quality-master.js +54 -0
  91. package/.medusa/server/src/workflows/quality-master/steps/update-quality.js +37 -0
  92. package/.medusa/server/src/workflows/raw-master/create-or-update-raw-master.js +58 -0
  93. package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +9 -11
  94. package/.medusa/server/src/workflows/shape-master/create-or-update-shape-master.js +53 -0
  95. package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +9 -9
  96. package/.medusa/server/src/workflows/tone-master/create-or-update-tone-master.js +52 -0
  97. package/.medusa/server/src/workflows/tone-master/index.js +30 -0
  98. package/.medusa/server/src/workflows/tone-master/steps/create-tone.js +22 -0
  99. package/.medusa/server/src/workflows/tone-master/steps/delete-tone.js +20 -0
  100. package/.medusa/server/src/workflows/tone-master/steps/fetch-tone-master.js +54 -0
  101. package/.medusa/server/src/workflows/tone-master/steps/update-tone.js +37 -0
  102. package/package.json +1 -1
  103. package/.medusa/server/development/erp-order-payload-example.js +0 -76
@@ -10,6 +10,7 @@ const create_or_update_product_options_1 = __importDefault(require("../../create
10
10
  const product_helper_1 = require("../../helpers/product-helper");
11
11
  const common_1 = require("../../types/common");
12
12
  const steps_1 = require("../steps");
13
+ const update_product_options_after_variant_update_1 = require("../steps/update-product-options-after-variant-update");
13
14
  /**
14
15
  * Main workflow for handling PartyStyleMst operations
15
16
  * 1. Fetches PartyStyle data from ERP
@@ -73,6 +74,26 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
73
74
  style_id: styleIds,
74
75
  },
75
76
  }).config({ name: "existing-variants-with-style-id" });
77
+ const { data: rawMasterArr } = (0, core_flows_1.useQueryGraphStep)({
78
+ entity: "raw_master",
79
+ fields: ["id", "title", "raw_code"],
80
+ }).config({ name: "raw-master-add" });
81
+ const { data: qualityMasterArr } = (0, core_flows_1.useQueryGraphStep)({
82
+ entity: "quality_master",
83
+ fields: ["id", "title", "qly_code"],
84
+ }).config({ name: "quality-master-add" });
85
+ const { data: toneMasterArr } = (0, core_flows_1.useQueryGraphStep)({
86
+ entity: "tone_master",
87
+ fields: ["id", "title", "tone_code"],
88
+ }).config({ name: "tone-master-add" });
89
+ const { data: itemSizeMasterArr } = (0, core_flows_1.useQueryGraphStep)({
90
+ entity: "item_size_master",
91
+ fields: ["id", "title", "item_size_code"],
92
+ }).config({ name: "item-size-master-add" });
93
+ const { data: shapeMasterArr } = (0, core_flows_1.useQueryGraphStep)({
94
+ entity: "shape_master",
95
+ fields: ["id", "title", "shape_code"],
96
+ }).config({ name: "shape-master-add" });
76
97
  (0, workflows_sdk_1.when)(input, (input) => {
77
98
  return input?.operation === "add";
78
99
  }).then(() => {
@@ -90,7 +111,29 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
90
111
  salesChannels,
91
112
  existingExtendedVariants,
92
113
  existingExtendedVariantsForProducts,
114
+ rawMasterArr,
115
+ qualityMasterArr,
116
+ toneMasterArr,
117
+ itemSizeMasterArr,
118
+ shapeMasterArr,
93
119
  }, (data) => {
120
+ const rawMasterMap = new Map();
121
+ data.rawMasterArr?.forEach((x) => rawMasterMap.set(x.raw_code, x.title));
122
+ const qualityMasterMap = new Map();
123
+ data.qualityMasterArr?.forEach((x) => qualityMasterMap.set(x.qly_code, x.title));
124
+ const toneMasterMap = new Map();
125
+ data.toneMasterArr?.forEach((x) => toneMasterMap.set(x.tone_code, x.title));
126
+ const itemSizeMasterMap = new Map();
127
+ data.itemSizeMasterArr?.forEach((x) => itemSizeMasterMap.set(x.item_size_code, x.title));
128
+ const shapeMasterMap = new Map();
129
+ data.shapeMasterArr?.forEach((x) => shapeMasterMap.set(x.shape_code, x.title));
130
+ const masterMaps = {
131
+ rawMasterMap,
132
+ qualityMasterMap,
133
+ toneMasterMap,
134
+ itemSizeMasterMap,
135
+ shapeMasterMap,
136
+ };
94
137
  const variantsToCreate = [];
95
138
  const productsToUpdate = [];
96
139
  const existingProductIds = data.existingProducts
@@ -151,7 +194,7 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
151
194
  if (!styleData?.StyleId)
152
195
  return;
153
196
  const existingProduct = data.existingProducts?.find((p) => p?.external_id === String(styleData.StyleId));
154
- const { metal_total_cost, diamond_total_cost, stone_total_cost, cpf_total_cost, metal_total_amount, diamond_total_amount, stone_total_amount, cpf_total_amount, } = (0, product_helper_1.calculateStyleCostsAndAmounts)(styleData.PartyStyleMstDetail || []);
197
+ const { metal_total_cost, diamond_total_cost, stone_total_cost, cpf_total_cost, metal_total_amount, diamond_total_amount, stone_total_amount, cpf_total_amount, actual_metal_total_amount, actual_diamond_total_amount, actual_stone_total_amount, actual_cpf_total_amount, actual_total_amount, } = (0, product_helper_1.calculateStyleCostsAndAmounts)(styleData.PartyStyleMstDetail || []);
155
198
  const productAvailabilityInOnline = styleData.PartyStyleMstExploration?.find((exploration) => exploration?.ExplorationCode?.toLowerCase() ===
156
199
  "web indicator")?.ExplorationValue?.toLowerCase() === "true";
157
200
  const onlineSalesChannelId = data.salesChannels?.find((channel) => channel?.name?.toLowerCase() === "online")?.id || "";
@@ -173,6 +216,11 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
173
216
  diamond_total_amount,
174
217
  stone_total_amount,
175
218
  cpf_total_amount,
219
+ actual_metal_total_amount,
220
+ actual_diamond_total_amount,
221
+ actual_stone_total_amount,
222
+ actual_cpf_total_amount,
223
+ actual_total_amount,
176
224
  }, productAvailabilityInOnline
177
225
  ? onlineSalesChannelId
178
226
  : offlineSalesChannelId);
@@ -204,7 +252,7 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
204
252
  productData.gender_data.add((0, common_1.genderMapper)(styleData.Gender));
205
253
  }
206
254
  // Create variant
207
- const productOptions = (0, product_helper_1.createProductOptionsForPartyStyleId)(styleData, data.productOptionsAllData?.find((option) => option?.id === existingProduct.id));
255
+ const productOptions = (0, product_helper_1.createProductOptionsForPartyStyleId)(styleData, data.productOptionsAllData?.find((option) => option?.id === existingProduct.id), masterMaps);
208
256
  const title = styleData.PartyStyleMstExploration?.find((exploration) => exploration?.ExplorationName?.toLowerCase() === "product name")?.ExplorationValue;
209
257
  const variant = {
210
258
  product_id: existingProduct.id,
@@ -304,16 +352,65 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
304
352
  ...variantsToCreate,
305
353
  },
306
354
  });
355
+ const productIds = (0, workflows_sdk_1.transform)({
356
+ existingProducts,
357
+ }, (data) => {
358
+ return data.existingProducts.map((p) => p.id);
359
+ });
360
+ // for each product get all options from variants and update the product options
361
+ (0, update_product_options_after_variant_update_1.updateProductOptionsAfterVariantUpdateStep)({
362
+ productIds: productIds
363
+ }).config({ name: "update-product-options-after-variant-update-add" });
307
364
  });
308
365
  (0, workflows_sdk_1.when)(input, (input) => {
309
366
  return input?.operation === "update";
310
367
  }).then(() => {
368
+ // Ensure product options are up-to-date before assigning option values to variants
369
+ const productOptionsAllData = create_or_update_product_options_1.default
370
+ .runAsStep({
371
+ input: {
372
+ existingProducts,
373
+ partyStyleData,
374
+ },
375
+ })
376
+ .config({ name: "update-party-style-master-product-options-all-data" });
377
+ // Persist updated product options before assigning them to variants
378
+ core_flows_1.updateProductsWorkflow
379
+ .runAsStep({
380
+ input: {
381
+ products: productOptionsAllData,
382
+ },
383
+ })
384
+ .config({ name: "update-party-style-master-update-products-options" });
311
385
  const { variantsToUpdate } = (0, workflows_sdk_1.transform)({
312
386
  partyStyleData,
313
387
  existingProducts,
388
+ productOptionsAllData,
314
389
  salesChannels,
315
390
  existingExtendedVariants,
391
+ rawMasterArr,
392
+ qualityMasterArr,
393
+ toneMasterArr,
394
+ itemSizeMasterArr,
395
+ shapeMasterArr,
316
396
  }, (data) => {
397
+ const rawMasterMap = new Map();
398
+ data.rawMasterArr?.forEach((x) => rawMasterMap.set(x.raw_code, x.title));
399
+ const qualityMasterMap = new Map();
400
+ data.qualityMasterArr?.forEach((x) => qualityMasterMap.set(x.qly_code, x.title));
401
+ const toneMasterMap = new Map();
402
+ data.toneMasterArr?.forEach((x) => toneMasterMap.set(x.tone_code, x.title));
403
+ const itemSizeMasterMap = new Map();
404
+ data.itemSizeMasterArr?.forEach((x) => itemSizeMasterMap.set(x.item_size_code, x.title));
405
+ const shapeMasterMap = new Map();
406
+ data.shapeMasterArr?.forEach((x) => shapeMasterMap.set(x.shape_code, x.title));
407
+ const masterMaps = {
408
+ rawMasterMap,
409
+ qualityMasterMap,
410
+ toneMasterMap,
411
+ itemSizeMasterMap,
412
+ shapeMasterMap,
413
+ };
317
414
  const variantsToUpdate = [];
318
415
  const existingProductIds = data.existingProducts
319
416
  ?.map((product) => product?.external_id)
@@ -331,7 +428,7 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
331
428
  const existingProduct = data.existingProducts?.find((p) => p?.external_id === String(styleData.StyleId));
332
429
  if (!existingProduct)
333
430
  return;
334
- const { metal_total_cost, diamond_total_cost, stone_total_cost, cpf_total_cost, metal_total_amount, diamond_total_amount, stone_total_amount, cpf_total_amount, } = (0, product_helper_1.calculateStyleCostsAndAmounts)(styleData.PartyStyleMstDetail || []);
431
+ const { metal_total_cost, diamond_total_cost, stone_total_cost, cpf_total_cost, metal_total_amount, diamond_total_amount, stone_total_amount, cpf_total_amount, actual_metal_total_amount, actual_diamond_total_amount, actual_stone_total_amount, actual_cpf_total_amount, actual_total_amount, } = (0, product_helper_1.calculateStyleCostsAndAmounts)(styleData.PartyStyleMstDetail || []);
335
432
  const productAvailabilityInOnline = styleData.PartyStyleMstExploration?.find((exploration) => exploration?.ExplorationCode?.toLowerCase() ===
336
433
  "web indicator")?.ExplorationValue?.toLowerCase() === "true";
337
434
  const onlineSalesChannelId = data.salesChannels?.find((channel) => channel?.name?.toLowerCase() === "online")?.id || "";
@@ -346,12 +443,19 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
346
443
  diamond_total_amount,
347
444
  stone_total_amount,
348
445
  cpf_total_amount,
446
+ actual_metal_total_amount,
447
+ actual_diamond_total_amount,
448
+ actual_stone_total_amount,
449
+ actual_cpf_total_amount,
450
+ actual_total_amount,
349
451
  }, productAvailabilityInOnline
350
452
  ? onlineSalesChannelId
351
453
  : offlineSalesChannelId);
352
454
  const styleDetails = (0, product_helper_1.getPartyStyleDetailLines)(styleData?.PartyStyleMstDetail || []);
353
455
  const explorationDetails = (0, product_helper_1.getPartyStyleExplorationLines)(styleData?.PartyStyleMstExploration || []);
354
456
  const title = styleData.PartyStyleMstExploration?.find((exploration) => exploration?.ExplorationName?.toLowerCase() === "product name")?.ExplorationValue;
457
+ // Update variant options using master maps (similar to create flow)
458
+ const productOptions = (0, product_helper_1.createProductOptionsForPartyStyleId)(styleData, data.productOptionsAllData?.find((option) => option?.id === existingProduct.id), masterMaps);
355
459
  const variant = {
356
460
  id: data.existingExtendedVariants?.find((variant) => variant?.party_style_id === styleData.PartyStyleId)?.mapping_id,
357
461
  metadata: {
@@ -372,6 +476,9 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
372
476
  currency_code: "inr",
373
477
  },
374
478
  ],
479
+ options: {
480
+ ...productOptions,
481
+ },
375
482
  };
376
483
  variantsToUpdate.push({
377
484
  variant: variant,
@@ -400,9 +507,18 @@ exports.createOrUpdatePartyStyleMasterWorkflow = (0, workflows_sdk_1.createWorkf
400
507
  ...variantsToUpdate,
401
508
  },
402
509
  });
510
+ const productIds = (0, workflows_sdk_1.transform)({
511
+ existingProducts,
512
+ }, (data) => {
513
+ return data.existingProducts.map((p) => p.id);
514
+ });
515
+ // for each product get all options from variants and update the product options
516
+ (0, update_product_options_after_variant_update_1.updateProductOptionsAfterVariantUpdateStep)({
517
+ productIds: productIds
518
+ });
403
519
  });
404
520
  return new workflows_sdk_1.WorkflowResponse({
405
521
  success: true,
406
522
  });
407
523
  });
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1wYXJ0eS1zdHlsZS1tYXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BhcnR5LXN0eWxlLW1hc3Rlci93b3JrZmxvd3MvY3JlYXRlLW9yLXVwZGF0ZS1wYXJ0eS1zdHlsZS1tYXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EscUVBSzJDO0FBQzNDLDREQUtxQztBQUdyQyw4R0FBMEY7QUFDMUYsaUVBT3NDO0FBRXRDLCtDQUFrRDtBQUNsRCxvQ0FBK0M7QUFFL0M7Ozs7O0dBS0c7QUFDVSxRQUFBLHNDQUFzQyxHQUFHLElBQUEsOEJBQWMsRUFDbEUscUNBQXFDLEVBQ3JDLENBQUMsS0FBeUIsRUFBRSxFQUFFO0lBQzVCLDJDQUEyQztJQUMzQyxNQUFNLGNBQWMsR0FBRyxJQUFBLDJCQUFtQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWxELE1BQU0sa0JBQWtCLEdBQUcsSUFBQSx5QkFBUyxFQUNsQztRQUNFLGNBQWM7S0FDZixFQUNELENBQUMsSUFBSSxFQUFFLEVBQUU7UUFDUCxPQUFPO1lBQ0wsR0FBRyxJQUFJLEdBQUcsQ0FDUixJQUFJLENBQUMsY0FBYztnQkFDakIsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO2lCQUN4QyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUN6QjtTQUNGLENBQUM7SUFDSixDQUFDLENBQ0YsQ0FBQztJQUVGLE1BQU0sYUFBYSxHQUFHLElBQUEseUJBQVMsRUFDN0I7UUFDRSxjQUFjO0tBQ2YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lB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
524
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1wYXJ0eS1zdHlsZS1tYXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3BhcnR5LXN0eWxlLW1hc3Rlci93b3JrZmxvd3MvY3JlYXRlLW9yLXVwZGF0ZS1wYXJ0eS1zdHlsZS1tYXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EscUVBSzJDO0FBQzNDLDREQUtxQztBQUdyQyw4R0FBMEY7QUFDMUYsaUVBT3NDO0FBRXRDLCtDQUFrRDtBQUNsRCxvQ0FBK0M7QUFDL0Msc0hBQWtIO0FBRWxIOzs7OztHQUtHO0FBQ1UsUUFBQSxzQ0FBc0MsR0FBRyxJQUFBLDhCQUFjLEVBQ2xFLHFDQUFxQyxFQUNyQyxDQUFDLEtBQXlCLEVBQUUsRUFBRTtJQUM1QiwyQ0FBMkM7SUFDM0MsTUFBTSxjQUFjLEdBQUcsSUFBQSwyQkFBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVsRCxNQUFNLGtCQUFrQixHQUFHLElBQUEseUJBQVMsRUFDbEM7UUFDRSxjQUFjO0tBQ2YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTztZQUNMLEdBQUcsSUFBSSxHQUFHLENBQ1IsSUFBSSxDQUFDLGNBQWM7Z0JBQ2pCLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztpQkFDeEMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FDekI7U0FDRixDQUFDO0lBQ0osQ0FBQyxDQUNGLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxJQUFBLHlCQUFTLEVBQzdCO1FBQ0UsY0FBYztLQUNmLEVBQ0QsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNQLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZ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
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createOrUpdateQualityMasterWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const fetch_quality_master_1 = require("./steps/fetch-quality-master");
6
+ const workflows_sdk_2 = require("@medusajs/framework/workflows-sdk");
7
+ const quality_master_1 = require("../../modules/quality-master");
8
+ const createOrUpdateQualityStep = (0, workflows_sdk_2.createStep)("create-or-update-quality", async (input, { container }) => {
9
+ const service = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
10
+ if (!input?.length) {
11
+ return new workflows_sdk_2.StepResponse([], []);
12
+ }
13
+ const qlyNos = input.map((i) => i.QlyNo);
14
+ const prev = await service.listQualityMasters({ qly_no: qlyNos });
15
+ const toUpdate = [];
16
+ const toCreate = [];
17
+ for (const item of input) {
18
+ const match = prev.find((p) => p.qly_no === item.QlyNo);
19
+ const mapped = {
20
+ title: match?.title ? match.title : item.QlyName,
21
+ qly_no: item.QlyNo,
22
+ qly_for: item.QlyFor,
23
+ qly_code: item.QlyCode,
24
+ qly_name: item.QlyName,
25
+ qly_alias_name: item.QlyAliasName,
26
+ is_block_for_use: !!item.IsBlockForUse,
27
+ qly_clarity: item.QlyClarity,
28
+ qly_mfg_clarity: item.QlyMfgClarity,
29
+ };
30
+ if (match) {
31
+ toUpdate.push({ id: match.id, ...mapped });
32
+ }
33
+ else {
34
+ toCreate.push(mapped);
35
+ }
36
+ }
37
+ const results = [];
38
+ if (toUpdate.length) {
39
+ const updated = await service.updateQualityMasters(toUpdate);
40
+ results.push(...(Array.isArray(updated) ? updated : [updated]));
41
+ }
42
+ if (toCreate.length) {
43
+ const created = await service.createQualityMasters(toCreate);
44
+ results.push(...(Array.isArray(created) ? created : [created]));
45
+ }
46
+ return new workflows_sdk_2.StepResponse(results, prev);
47
+ }, async (prev, { container }) => {
48
+ if (!prev?.length)
49
+ return;
50
+ const service = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
51
+ await service.updateQualityMasters(prev);
52
+ });
53
+ exports.createOrUpdateQualityMasterWorkflow = (0, workflows_sdk_1.createWorkflow)("create-or-update-quality-master", (input) => {
54
+ const data = (0, fetch_quality_master_1.fetchQualityData)(input);
55
+ const result = createOrUpdateQualityStep(data);
56
+ return new workflows_sdk_1.WorkflowResponse(result);
57
+ });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1xdWFsaXR5LW1hc3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcXVhbGl0eS1tYXN0ZXIvY3JlYXRlLW9yLXVwZGF0ZS1xdWFsaXR5LW1hc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBcUY7QUFFckYsdUVBQWdFO0FBQ2hFLHFFQUE2RTtBQUM3RSxpRUFBcUU7QUFjckUsTUFBTSx5QkFBeUIsR0FBRyxJQUFBLDBCQUFVLEVBQzFDLDBCQUEwQixFQUMxQixLQUFLLEVBQUUsS0FBdUIsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDL0MsTUFBTSxPQUFPLEdBQXlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXFCLENBQUMsQ0FBQztJQUUvRSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ25CLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBUyxDQUFDLENBQUM7SUFFekUsTUFBTSxRQUFRLEdBQUcsRUFBVyxDQUFDO0lBQzdCLE1BQU0sUUFBUSxHQUFHLEVBQVcsQ0FBQztJQUM3QixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELE1B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
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.qualityMasterWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const create_quality_1 = require("./steps/create-quality");
6
+ const delete_quality_1 = require("./steps/delete-quality");
7
+ const fetch_quality_master_1 = require("./steps/fetch-quality-master");
8
+ const update_quality_1 = require("./steps/update-quality");
9
+ exports.qualityMasterWorkflow = (0, workflows_sdk_1.createWorkflow)("quality-master", (input) => {
10
+ const qualityData = (0, fetch_quality_master_1.fetchQualityData)(input);
11
+ (0, workflows_sdk_1.when)("create-quality", input, (input) => {
12
+ return input.operation === "add";
13
+ }).then(() => {
14
+ const quality = (0, create_quality_1.createQualityStep)(qualityData);
15
+ return new workflows_sdk_1.WorkflowResponse(quality);
16
+ });
17
+ (0, workflows_sdk_1.when)("update-quality", input, (input) => {
18
+ return input.operation === "update";
19
+ }).then(() => {
20
+ const quality = (0, update_quality_1.updateQualityStep)(qualityData);
21
+ return new workflows_sdk_1.WorkflowResponse(quality);
22
+ });
23
+ (0, workflows_sdk_1.when)("delete-quality", input, (input) => {
24
+ return input.operation === "delete";
25
+ }).then(() => {
26
+ const quality = (0, delete_quality_1.deleteQualityStep)(qualityData);
27
+ return new workflows_sdk_1.WorkflowResponse(quality);
28
+ });
29
+ });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3F1YWxpdHktbWFzdGVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUkyQztBQUczQywyREFBMkQ7QUFDM0QsMkRBQTJEO0FBQzNELHVFQUFnRTtBQUNoRSwyREFBMkQ7QUFFOUMsUUFBQSxxQkFBcUIsR0FBRyxJQUFBLDhCQUFjLEVBQ2pELGdCQUFnQixFQUNoQixDQUFDLEtBQWtCLEVBQUUsRUFBRTtJQUNyQixNQUFNLFdBQVcsR0FBRyxJQUFBLHVDQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVDLElBQUEsb0JBQUksRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDO0lBQ25DLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxNQUFNLE9BQU8sR0FBRyxJQUFBLGtDQUFpQixFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRS9DLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxNQUFNLE9BQU8sR0FBRyxJQUFBLGtDQUFpQixFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRS9DLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztJQUVILElBQUEsb0JBQUksRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUN0QyxPQUFPLEtBQUssQ0FBQyxTQUFTLEtBQUssUUFBUSxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7UUFDWCxNQUFNLE9BQU8sR0FBRyxJQUFBLGtDQUFpQixFQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRS9DLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createQualityStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const quality_master_1 = require("../../../modules/quality-master");
6
+ exports.createQualityStep = (0, workflows_sdk_1.createStep)("create-quality-step", async (input, { container }) => {
7
+ const qualityMasterModuleService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
8
+ const quality = await qualityMasterModuleService.createQualityMasters(input.map((item) => ({
9
+ title: item.QlyName,
10
+ qly_no: item.QlyNo,
11
+ qly_for: item.QlyFor,
12
+ qly_code: item.QlyCode,
13
+ qly_name: item.QlyName,
14
+ qly_alias_name: item.QlyAliasName,
15
+ is_block_for_use: !!item.IsBlockForUse,
16
+ })));
17
+ return new workflows_sdk_1.StepResponse(quality, quality.map((item) => item.id));
18
+ }, async (ids, { container }) => {
19
+ const qualityMasterModuleService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
20
+ await qualityMasterModuleService.deleteQualityMasters(ids);
21
+ });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXF1YWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3F1YWxpdHktbWFzdGVyL3N0ZXBzL2NyZWF0ZS1xdWFsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUM3RSxvRUFBd0U7QUFZM0QsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLDBCQUFVLEVBQ3pDLHFCQUFxQixFQUNyQixLQUFLLEVBQUUsS0FBK0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdkQsTUFBTSwwQkFBMEIsR0FDOUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBcUIsQ0FBQyxDQUFDO0lBRTNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sMEJBQTBCLENBQUMsb0JBQW9CLENBQ25FLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ25CLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSztRQUNsQixPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPO1FBQ3RCLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTztRQUN0QixjQUFjLEVBQUUsSUFBSSxDQUFDLFlBQVk7UUFDakMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhO0tBQ3ZDLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFFRixPQUFPLElBQUksNEJBQVksQ0FDckIsT0FBTyxFQUNQLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDL0IsQ0FBQztBQUNKLENBQUMsRUFDRCxLQUFLLEVBQUUsR0FBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNyQyxNQUFNLDBCQUEwQixHQUM5QixTQUFTLENBQUMsT0FBTyxDQUFDLHNDQUFxQixDQUFDLENBQUM7SUFFM0MsTUFBTSwwQkFBMEIsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3RCxDQUFDLENBQ0YsQ0FBQyJ9
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteQualityStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const quality_master_1 = require("../../../modules/quality-master");
6
+ exports.deleteQualityStep = (0, workflows_sdk_1.createStep)("delete-quality-step", async (input, { container }) => {
7
+ const qualityMasterModuleService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
8
+ const qualityNos = input.map((item) => item.QlyNo);
9
+ const prev = await qualityMasterModuleService.listQualityMasters({
10
+ qly_no: qualityNos,
11
+ });
12
+ const deleted = await qualityMasterModuleService.softDeleteQualityMasters(prev.map((item) => item.id));
13
+ return new workflows_sdk_1.StepResponse(deleted, prev);
14
+ }, async (prevData, { container }) => {
15
+ if (!prevData)
16
+ return;
17
+ const qualityMasterModuleService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
18
+ await qualityMasterModuleService.createQualityMasters(prevData);
19
+ });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZXRlLXF1YWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3F1YWxpdHktbWFzdGVyL3N0ZXBzL2RlbGV0ZS1xdWFsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxvRUFBd0U7QUFZM0QsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLDBCQUFVLEVBQ3pDLHFCQUFxQixFQUNyQixLQUFLLEVBQUUsS0FBK0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdkQsTUFBTSwwQkFBMEIsR0FDOUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQ0FBcUIsQ0FBQyxDQUFDO0lBRTNDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVuRCxNQUFNLElBQUksR0FBRyxNQUFNLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDO1FBQy9ELE1BQU0sRUFBRSxVQUFVO0tBQ25CLENBQUMsQ0FBQztJQUVILE1BQU0sT0FBTyxHQUFHLE1BQU0sMEJBQTBCLENBQUMsd0JBQXdCLENBQ3ZFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FDNUIsQ0FBQztJQUVGLE9BQU8sSUFBSSw0QkFBWSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN6QyxDQUFDLEVBQ0QsS0FBSyxFQUFFLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDaEMsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPO0lBQ3RCLE1BQU0sMEJBQTBCLEdBQzlCLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0NBQXFCLENBQUMsQ0FBQztJQUUzQyxNQUFNLDBCQUEwQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2xFLENBQUMsQ0FDRixDQUFDIn0=
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchQualityData = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const BATCH_SIZE = 50;
6
+ const MAX_RETRIES = 3;
7
+ const RETRY_DELAY = 1000;
8
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
9
+ const processBatch = async (erpService, datafor, batch, retryCount = 0) => {
10
+ try {
11
+ const results = await Promise.all(batch.map(async (transactionId) => {
12
+ try {
13
+ return await erpService.getMasterData(datafor, transactionId);
14
+ }
15
+ catch (error) {
16
+ console.error(`Error fetching data for ID ${transactionId}:`, error);
17
+ return null;
18
+ }
19
+ }));
20
+ const successfulResults = results.filter((result) => result !== null);
21
+ if (results.length !== successfulResults.length && retryCount < MAX_RETRIES) {
22
+ const failedIds = batch.filter((_, index) => results[index] === null);
23
+ await sleep(RETRY_DELAY);
24
+ const retryResults = await processBatch(erpService, datafor, failedIds, retryCount + 1);
25
+ return [...successfulResults, ...retryResults];
26
+ }
27
+ return successfulResults.filter(Boolean);
28
+ }
29
+ catch (error) {
30
+ console.error("Batch processing error:", error);
31
+ if (retryCount < MAX_RETRIES) {
32
+ await sleep(RETRY_DELAY);
33
+ return processBatch(erpService, datafor, batch, retryCount + 1);
34
+ }
35
+ throw error;
36
+ }
37
+ };
38
+ exports.fetchQualityData = (0, workflows_sdk_1.createStep)("fetch-quality-data", async (input, { container }) => {
39
+ const erpService = container.resolve("erp");
40
+ const { datafor, data } = input;
41
+ const batches = [];
42
+ for (let i = 0; i < data.length; i += BATCH_SIZE) {
43
+ batches.push(data.slice(i, i + BATCH_SIZE));
44
+ }
45
+ const allResults = [];
46
+ for (let i = 0; i < batches.length; i++) {
47
+ const batchResults = await processBatch(erpService, datafor, batches[i]);
48
+ allResults.push(...batchResults);
49
+ }
50
+ return new workflows_sdk_1.StepResponse(allResults.flatMap((innerArray) => innerArray));
51
+ }, async () => {
52
+ // noop
53
+ });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmV0Y2gtcXVhbGl0eS1tYXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3F1YWxpdHktbWFzdGVyL3N0ZXBzL2ZldGNoLXF1YWxpdHktbWFzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUk3RSxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDO0FBQ3RCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQztBQUV6QixNQUFNLEtBQUssR0FBRyxDQUFDLEVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUVoRixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQ3hCLFVBQTRCLEVBQzVCLE9BQWUsRUFDZixLQUFlLEVBQ2YsVUFBVSxHQUFHLENBQUMsRUFDRSxFQUFFO0lBQ2xCLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxDQUFDO2dCQUNILE9BQU8sTUFBTSxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztZQUNoRSxDQUFDO1lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztnQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDhCQUE4QixhQUFhLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDckUsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztRQUVGLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFF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
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateQualityStep = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const quality_master_1 = require("../../../modules/quality-master");
6
+ exports.updateQualityStep = (0, workflows_sdk_1.createStep)("update-quality-step", async (input, { container }) => {
7
+ const qualityMasterModuleService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
8
+ const qualityNos = input.map((item) => item.QlyNo);
9
+ const prev = await qualityMasterModuleService.listQualityMasters({
10
+ qly_no: qualityNos,
11
+ });
12
+ const toUpdate = input
13
+ .map((item) => {
14
+ const prevItem = prev.find((p) => p.qly_no === item.QlyNo);
15
+ if (prevItem) {
16
+ return {
17
+ id: prevItem.id,
18
+ qly_no: item.QlyNo,
19
+ qly_for: item.QlyFor,
20
+ qly_code: item.QlyCode,
21
+ qly_name: item.QlyName,
22
+ qly_alias_name: item.QlyAliasName,
23
+ is_block_for_use: item.IsBlockForUse,
24
+ };
25
+ }
26
+ return null;
27
+ })
28
+ .filter(Boolean);
29
+ const updated = await qualityMasterModuleService.updateQualityMasters(toUpdate);
30
+ return new workflows_sdk_1.StepResponse(updated, prev);
31
+ }, async (prevData, { container }) => {
32
+ if (!prevData)
33
+ return;
34
+ const qualityMasterModuleService = container.resolve(quality_master_1.QUALITY_MASTER_MODULE);
35
+ await qualityMasterModuleService.updateQualityMasters(prevData);
36
+ });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXF1YWxpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3F1YWxpdHktbWFzdGVyL3N0ZXBzL3VwZGF0ZS1xdWFsaXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUE2RTtBQUU3RSxvRUFBd0U7QUFhM0QsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLDBCQUFVLEVBQ3pDLHFCQUFxQixFQUNyQixLQUFLLEVBQUUsS0FBK0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDdkQsTUFBTSwwQkFBMEIsR0FBeUIsU0FBUyxDQUFDLE9BQU8sQ0FDeEUsc0NBQXFCLENBQ3RCLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbkQsTUFBTSxJQUFJLEdBQUcsTUFBTSwwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQztRQUMvRCxNQUFNLEVBQUUsVUFBVTtLQUNuQixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxLQUFLO1NBQ25CLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNiLE9BQU87Z0JBQ0wsRUFBRSxFQUFFLFFBQVEsQ0FBQyxFQUFFO2dCQUNmLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSztnQkFDbEIsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNO2dCQUNwQixRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3RCLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDdEIsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZO2dCQUNqQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsYUFBYTthQUNyQyxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FRZCxDQUFDO0lBRUosTUFBTSxPQUFPLEdBQUcsTUFBTSwwQkFBMEIsQ0FBQyxvQkFBb0IsQ0FDbkUsUUFBUSxDQUNULENBQUM7SUFFRixPQUFPLElBQUksNEJBQVksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDekMsQ0FBQyxFQUNELEtBQUssRUFBRSxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ2hDLElBQUksQ0FBQyxRQUFRO1FBQUUsT0FBTztJQUN0QixNQUFNLDBCQUEwQixHQUF5QixTQUFTLENBQUMsT0FBTyxDQUN4RSxzQ0FBcUIsQ0FDdEIsQ0FBQztJQUVGLE1BQU0sMEJBQTBCLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbEUsQ0FBQyxDQUNGLENBQUMifQ==
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createOrUpdateRawMasterWorkflow = void 0;
4
+ const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
+ const fetch_raw_master_1 = require("./steps/fetch-raw-master");
6
+ const raw_master_1 = require("../../modules/raw-master");
7
+ const createOrUpdateRawStep = (0, workflows_sdk_1.createStep)("create-or-update-raw", async (input, { container }) => {
8
+ const service = container.resolve(raw_master_1.RAW_MASTER_MODULE);
9
+ if (!input?.length)
10
+ return new workflows_sdk_1.StepResponse([], []);
11
+ const rawNos = input.map((i) => i.RawNo);
12
+ const prev = await service.listRawMasters({ raw_no: rawNos });
13
+ const toUpdate = [];
14
+ const toCreate = [];
15
+ for (const item of input) {
16
+ const match = prev.find((p) => p.raw_no === item.RawNo);
17
+ const mapped = {
18
+ title: match?.title ? match.title : item.RawName,
19
+ raw_no: item.RawNo,
20
+ raw_code: item.RawCode,
21
+ raw_name: item.RawName,
22
+ raw_alias_name: item.RawAlias,
23
+ raw_mit_no: item.RawMitNo,
24
+ raw_mit_name: item.RawMitName,
25
+ material_group_id: item.MaterialGroupId,
26
+ material_group: item.MaterialGroup,
27
+ material_group_name: item.MaterialGroupName,
28
+ };
29
+ if (match)
30
+ toUpdate.push({
31
+ id: match.id,
32
+ ...mapped,
33
+ });
34
+ else
35
+ toCreate.push(mapped);
36
+ }
37
+ const results = [];
38
+ if (toUpdate.length) {
39
+ const updated = await service.updateRawMasters(toUpdate);
40
+ results.push(...(Array.isArray(updated) ? updated : [updated]));
41
+ }
42
+ if (toCreate.length) {
43
+ const created = await service.createRawMasters(toCreate);
44
+ results.push(...(Array.isArray(created) ? created : [created]));
45
+ }
46
+ return new workflows_sdk_1.StepResponse(results, prev);
47
+ }, async (prev, { container }) => {
48
+ if (!prev?.length)
49
+ return;
50
+ const service = container.resolve(raw_master_1.RAW_MASTER_MODULE);
51
+ await service.updateRawMasters(prev);
52
+ });
53
+ exports.createOrUpdateRawMasterWorkflow = (0, workflows_sdk_1.createWorkflow)("create-or-update-raw-master", (input) => {
54
+ const data = (0, fetch_raw_master_1.fetchRawData)(input);
55
+ const result = createOrUpdateRawStep(data);
56
+ return new workflows_sdk_1.WorkflowResponse(result);
57
+ });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1yYXctbWFzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9yYXctbWFzdGVyL2NyZWF0ZS1vci11cGRhdGUtcmF3LW1hc3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBK0c7QUFFL0csK0RBQXdEO0FBQ3hELHlEQUE2RDtBQWU3RCxNQUFNLHFCQUFxQixHQUFHLElBQUEsMEJBQVUsRUFDdEMsc0JBQXNCLEVBQ3RCLEtBQUssRUFBRSxLQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUMzQyxNQUFNLE9BQU8sR0FBcUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyw4QkFBaUIsQ0FBQyxDQUFDO0lBQ3ZFLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTTtRQUFFLE9BQU8sSUFBSSw0QkFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVwRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsTUFBTSxJQUFJLEdBQUcsTUFBTSxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFOUQsTUFBTSxRQUFRLEdBQVUsRUFBRSxDQUFDO0lBQzNCLE1BQU0sUUFBUSxHQUFVLEVBQUUsQ0FBQztJQUMzQixLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELE1BQU0sTUFBTSxHQUFHO1lBQ2IsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMs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