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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/.medusa/server/src/api/erp/webhook/config.js +38 -28
  2. package/.medusa/server/src/jobs/process-erp-events.js +8 -50
  3. package/.medusa/server/src/modules/order-proceed-master/index.js +13 -0
  4. package/.medusa/server/src/modules/order-proceed-master/migrations/Migration20260327100226.js +31 -0
  5. package/.medusa/server/src/modules/order-proceed-master/models/order-proceed-master.js +38 -0
  6. package/.medusa/server/src/modules/order-proceed-master/service.js +11 -0
  7. package/.medusa/server/src/modules/receive-voucher-master/index.js +13 -0
  8. package/.medusa/server/src/modules/receive-voucher-master/migrations/Migration20260328053649.js +16 -0
  9. package/.medusa/server/src/modules/receive-voucher-master/models/receive-voucher-master.js +27 -0
  10. package/.medusa/server/src/modules/receive-voucher-master/service.js +10 -0
  11. package/.medusa/server/src/modules/sale-return-master/migrations/Migration20260327084135.js +14 -0
  12. package/.medusa/server/src/modules/sale-return-master/models/sale-return-master.js +3 -1
  13. package/.medusa/server/src/workflows/index.js +2 -1
  14. package/.medusa/server/src/workflows/inward-master/steps/index.js +1 -2
  15. package/.medusa/server/src/workflows/inward-master/workflows/index.js +1 -2
  16. package/.medusa/server/src/workflows/material-purchase-master/steps/create-material-purchase-master.js +41 -2
  17. package/.medusa/server/src/workflows/material-purchase-master/steps/delete-material-purchase-master.js +22 -1
  18. package/.medusa/server/src/workflows/material-purchase-master/steps/update-material-purchase-master.js +67 -19
  19. package/.medusa/server/src/workflows/order-master/steps/process-order-master-from-webhook.js +2 -2
  20. package/.medusa/server/src/workflows/order-proceed-master/index.js +6 -0
  21. package/.medusa/server/src/workflows/order-proceed-master/order-proceed-master-webhook.js +26 -0
  22. package/.medusa/server/src/workflows/order-proceed-master/steps/create-or-update-order-proceed-master.js +186 -0
  23. package/.medusa/server/src/workflows/order-proceed-master/steps/delete-order-proceed-master-by-erp-ids.js +28 -0
  24. package/.medusa/server/src/workflows/orders/steps/sync-old-gold-to-erp-step.js +2 -2
  25. package/.medusa/server/src/workflows/orders/steps/sync-order-to-erp.js +97 -40
  26. package/.medusa/server/src/workflows/orders/steps/sync-sale-return-to-erp-step.js +102 -2
  27. package/.medusa/server/src/workflows/orders/utils/order-helper.js +5 -5
  28. package/.medusa/server/src/workflows/party-style-master/steps/index.js +1 -2
  29. package/.medusa/server/src/workflows/party-style-master/workflows/index.js +1 -2
  30. package/.medusa/server/src/workflows/receive-voucher-master/index.js +24 -0
  31. package/.medusa/server/src/workflows/receive-voucher-master/steps/create-receive-voucher-master.js +125 -0
  32. package/.medusa/server/src/workflows/receive-voucher-master/steps/delete-receive-voucher-master.js +45 -0
  33. package/.medusa/server/src/workflows/receive-voucher-master/steps/fetch-receive-voucher-master.js +22 -0
  34. package/.medusa/server/src/workflows/receive-voucher-master/steps/update-receive-voucher-master.js +44 -0
  35. package/.medusa/server/src/workflows/sale-return-master/index.js +4 -22
  36. package/.medusa/server/src/workflows/sale-return-master/sale-return-master-webhook.js +28 -0
  37. package/.medusa/server/src/workflows/sale-return-master/steps/create-or-update-sale-return-master.js +109 -0
  38. package/.medusa/server/src/workflows/sale-return-master/steps/delete-sale-return-master-by-erp-ids.js +36 -0
  39. package/.medusa/server/src/workflows/sale-return-master/steps/process-sale-return-from-webhook.js +232 -0
  40. package/.medusa/server/src/workflows/style-master/steps/index.js +1 -2
  41. package/.medusa/server/src/workflows/style-master/workflows/index.js +1 -2
  42. package/package.json +1 -1
  43. package/.medusa/server/src/workflows/inward-master/steps/update-inward-price-only.js +0 -47
  44. package/.medusa/server/src/workflows/inward-master/workflows/update-inward-price-only.js +0 -99
  45. package/.medusa/server/src/workflows/party-style-master/steps/update-party-style-price-only.js +0 -111
  46. package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master-price-only.js +0 -90
  47. package/.medusa/server/src/workflows/style-master/steps/update-style-price-only.js +0 -105
  48. package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master-price-only.js +0 -104
@@ -1,90 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createOrUpdatePartyStyleMasterPriceOnlyWorkflow = void 0;
4
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const core_flows_1 = require("@medusajs/medusa/core-flows");
6
- const product_helper_1 = require("../../helpers/product-helper");
7
- const steps_1 = require("../steps");
8
- const update_party_style_price_only_1 = require("../steps/update-party-style-price-only");
9
- /**
10
- * Price-only workflow for PartyStyleMst updates when DailyRate is detected
11
- * This workflow:
12
- * 1. Fetches party style data from ERP
13
- * 2. Updates only price fields in extended variants (Mrp, cost fields)
14
- * 3. Updates party style detail line prices
15
- * 4. Does NOT update Medusa variant title, SKU, options, or explorations
16
- *
17
- * @param input - Contains operation type, data IDs, and priceOnly flag
18
- */
19
- exports.createOrUpdatePartyStyleMasterPriceOnlyWorkflow = (0, workflows_sdk_1.createWorkflow)("create-or-update-party-style-master-price-only", (input) => {
20
- // Step 1: Fetch party style data from ERP system
21
- const partyStyleData = (0, steps_1.fetchPartyStyleData)(input);
22
- const partyStyleIds = (0, workflows_sdk_1.transform)({
23
- partyStyleData,
24
- }, (data) => {
25
- return data.partyStyleData?.map((product) => product?.PartyStyleId);
26
- });
27
- // Step 2: Query existing extended variants for price updates
28
- const { data: existingExtendedVariants } = (0, core_flows_1.useQueryGraphStep)({
29
- entity: "extended_variant",
30
- fields: ["*"],
31
- filters: {
32
- party_style_id: partyStyleIds,
33
- },
34
- }).config({ name: "existing-extended-variants-price-only" });
35
- (0, workflows_sdk_1.when)(input, (input) => {
36
- return input.operation === "update";
37
- }).then(() => {
38
- const priceOnlyUpdateData = (0, workflows_sdk_1.transform)({
39
- partyStyleData,
40
- existingExtendedVariants,
41
- }, (data) => {
42
- const updates = [];
43
- data.partyStyleData.forEach((partyStyleData) => {
44
- // Find existing extended variant
45
- const existingExtendedVariant = data.existingExtendedVariants.find((ev) => ev.party_style_id === partyStyleData?.PartyStyleId);
46
- if (!existingExtendedVariant) {
47
- return; // Skip if extended variant doesn't exist (price-only means it should already exist)
48
- }
49
- // Calculate price data
50
- 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)(partyStyleData.PartyStyleMstDetail || []);
51
- // Get extended variant data (includes price fields)
52
- const extendedVariantData = (0, product_helper_1.getExtendedVariantData)(partyStyleData, {
53
- baseMetal: "",
54
- baseMetalPurity: "",
55
- baseMetalColor: "",
56
- }, {
57
- metal_total_cost,
58
- diamond_total_cost,
59
- stone_total_cost,
60
- cpf_total_cost,
61
- metal_total_amount,
62
- diamond_total_amount,
63
- stone_total_amount,
64
- cpf_total_amount,
65
- actual_metal_total_amount,
66
- actual_diamond_total_amount,
67
- actual_stone_total_amount,
68
- actual_cpf_total_amount,
69
- actual_total_amount,
70
- }, existingExtendedVariant.sales_channel_id || "");
71
- // Get party style detail lines (contains detail-level price fields)
72
- const styleDetails = (0, product_helper_1.getPartyStyleDetailLines)(partyStyleData?.PartyStyleMstDetail || []);
73
- updates.push({
74
- extendedVariantId: existingExtendedVariant.id,
75
- extendedVariantData,
76
- styleDetails,
77
- });
78
- });
79
- return updates;
80
- });
81
- // Execute the price-only update step
82
- (0, update_party_style_price_only_1.updatePartyStylePriceOnly)({
83
- updates: priceOnlyUpdateData,
84
- });
85
- });
86
- return new workflows_sdk_1.WorkflowResponse({
87
- success: true,
88
- });
89
- });
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1wYXJ0eS1zdHlsZS1tYXN0ZXItcHJpY2Utb25seS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcGFydHktc3R5bGUtbWFzdGVyL3dvcmtmbG93cy9jcmVhdGUtb3ItdXBkYXRlLXBhcnR5LXN0eWxlLW1hc3Rlci1wcmljZS1vbmx5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUsyQztBQUMzQyw0REFBZ0U7QUFHaEUsaUVBSXNDO0FBRXRDLG9DQUErQztBQUMvQywwRkFBbUY7QUFFbkY7Ozs7Ozs7OztHQVNHO0FBQ1UsUUFBQSwrQ0FBK0MsR0FBRyxJQUFBLDhCQUFjLEVBQzNFLGdEQUFnRCxFQUNoRCxDQUFDLEtBQXlCLEVBQUUsRUFBRTtJQUM1QixpREFBaUQ7SUFDakQsTUFBTSxjQUFjLEdBQUcsSUFBQSwyQkFBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUVsRCxNQUFNLGFBQWEsR0FBRyxJQUFBLHlCQUFTLEVBQzdCO1FBQ0UsY0FBYztLQUNmLEVBQ0QsQ0FBQyxJQUFJLEVBQUUsRUFBRTtRQUNQLE9BQU8sSUFBSSxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RSxDQUFDLENBQ0YsQ0FBQztJQUVGLDZEQUE2RDtJQUM3RCxNQUFNLEVBQUUsSUFBSSxFQUFFLHdCQUF3QixFQUFFLEdBQUcsSUFBQSw4QkFBaUIsRUFBQztRQUMzRCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQztRQUNiLE9BQU8sRUFBRTtZQUNQLGNBQWMsRUFBRSxhQUFhO1NBQzlCO0tBQ0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSx1Q0FBdUMsRUFBRSxDQUFDLENBQUM7SUFFN0QsSUFBQSxvQkFBSSxFQUFD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
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updateStylePriceOnly = void 0;
4
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const extended_product_1 = require("../../../modules/extended-product");
6
- /**
7
- * Step to update extended product price fields only
8
- * Does not touch Medusa product, variants, titles, categories, collections, or explorations
9
- * Only updates:
10
- * - Extended product price/cost/margin/discount/amount fields
11
- * - Style detail lines with updated price calculations
12
- *
13
- * @param input - Array of price-only updates
14
- * @param container - Dependency injection container
15
- */
16
- exports.updateStylePriceOnly = (0, workflows_sdk_1.createStep)("update-style-price-only", async (input, { container }) => {
17
- const extendedProductService = container.resolve(extended_product_1.EXTENDED_PRODUCT_MODULE);
18
- const logger = container.resolve("logger");
19
- if (!input.updates || input.updates.length === 0) {
20
- logger.info("No price-only updates to process");
21
- return new workflows_sdk_1.StepResponse({ success: true, updatedCount: 0 });
22
- }
23
- let updatedCount = 0;
24
- for (const update of input.updates) {
25
- try {
26
- // Update extended product with price fields only
27
- await extendedProductService.updateExtendedProducts({
28
- id: update.extendedProductId,
29
- // Price and cost fields
30
- cost: update.extendedProductData.cost,
31
- actual_cost: update.extendedProductData.actual_cost,
32
- mrp: update.extendedProductData.mrp,
33
- actual_mrp: update.extendedProductData.actual_mrp,
34
- // Cost calculations
35
- metal_total_cost: update.extendedProductData.metal_total_cost,
36
- diamond_total_cost: update.extendedProductData.diamond_total_cost,
37
- stone_total_cost: update.extendedProductData.stone_total_cost,
38
- cpf_total_cost: update.extendedProductData.cpf_total_cost,
39
- // Amount calculations
40
- metal_total_amount: update.extendedProductData.metal_total_amount,
41
- diamond_total_amount: update.extendedProductData.diamond_total_amount,
42
- stone_total_amount: update.extendedProductData.stone_total_amount,
43
- cpf_total_amount: update.extendedProductData.cpf_total_amount,
44
- // Rate chart and discount markup
45
- rate_chart: update.extendedProductData.rate_chart,
46
- discount_markup: update.extendedProductData.discount_markup,
47
- discount_markup_cost: update.extendedProductData.discount_markup_cost,
48
- // Making and metal calculation formulas
49
- making_cost_on: update.extendedProductData.making_cost_on,
50
- metal_calculation_cost_on: update.extendedProductData.metal_calculation_cost_on,
51
- gold_loss_cost_formula: update.extendedProductData.gold_loss_cost_formula,
52
- labour_cost_formula: update.extendedProductData.labour_cost_formula,
53
- // Margin and discount cost fields
54
- cost_margin_per: update.extendedProductData.cost_margin_per,
55
- cost_margin_is_fix: update.extendedProductData.cost_margin_is_fix,
56
- actual_cost_margin_amt: update.extendedProductData.actual_cost_margin_amt,
57
- cost_margin_amt: update.extendedProductData.cost_margin_amt,
58
- cost_discount_per: update.extendedProductData.cost_discount_per,
59
- cost_discount_is_fix: update.extendedProductData.cost_discount_is_fix,
60
- actual_cost_discount_amt: update.extendedProductData.actual_cost_discount_amt,
61
- cost_discount_amt: update.extendedProductData.cost_discount_amt,
62
- // Making and metal calculation formulas (sale)
63
- making_on: update.extendedProductData.making_on,
64
- metal_calculation_on: update.extendedProductData.metal_calculation_on,
65
- gold_loss_formula: update.extendedProductData.gold_loss_formula,
66
- labour_formula: update.extendedProductData.labour_formula,
67
- // Margin and discount sale fields
68
- margin_per: update.extendedProductData.margin_per,
69
- margin_is_fix: update.extendedProductData.margin_is_fix,
70
- actual_margin_amt: update.extendedProductData.actual_margin_amt,
71
- margin_amt: update.extendedProductData.margin_amt,
72
- discount_per: update.extendedProductData.discount_per,
73
- discount_is_fix: update.extendedProductData.discount_is_fix,
74
- actual_discount_amt: update.extendedProductData.actual_discount_amt,
75
- discount_amt: update.extendedProductData.discount_amt,
76
- });
77
- // Delete and recreate style detail lines with updated prices
78
- if (update.styleDetails && update.styleDetails.length > 0) {
79
- // Get existing detail line IDs to delete
80
- const existingDetails = await extendedProductService.listStyleDetailsLines({
81
- style_id: update.extendedProductData.style_id,
82
- });
83
- if (existingDetails.length > 0) {
84
- await extendedProductService.deleteStyleDetailsLines(existingDetails.map((d) => d.id));
85
- }
86
- // Create new style details with updated prices
87
- await extendedProductService.createStyleDetailsLines(update.styleDetails);
88
- }
89
- updatedCount++;
90
- logger.info(`✅ Price-only update completed for product ${update.productId}`);
91
- }
92
- catch (error) {
93
- logger.error(`❌ Failed to update price-only for product ${update.productId}:`, error);
94
- throw error;
95
- }
96
- }
97
- return new workflows_sdk_1.StepResponse({
98
- success: true,
99
- updatedCount,
100
- });
101
- }, async (result, { container }) => {
102
- const logger = container.resolve("logger");
103
- logger.error("Compensation: Failed to update price-only data");
104
- });
105
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXN0eWxlLXByaWNlLW9ubHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3N0eWxlLW1hc3Rlci9zdGVwcy91cGRhdGUtc3R5bGUtcHJpY2Utb25seS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFBNkU7QUFHN0Usd0VBQTRFO0FBUzVFOzs7Ozs7Ozs7R0FTRztBQUNVLFFBQUEsb0JBQW9CLEdBQUcsSUFBQSwwQkFBVSxFQUM1Qyx5QkFBeUIsRUFDekIsS0FBSyxFQUFFLEtBQXFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQzdELE1BQU0sc0JBQXNCLEdBQzFCLFNBQVMsQ0FBQyxPQUFPLENBQUMsMENBQXVCLENBQUMsQ0FBQztJQUM3QyxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRTNDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksNEJBQVksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztJQUVyQixLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUM7WUFDSCxpREFBaUQ7WUFDakQsTUFBTSxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQztnQkFDbEQsRUFBRSxFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7Z0JBQzVCLHdCQUF3QjtnQkFDeEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJO2dCQUNy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
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createOrUpdateStyleMasterPriceOnlyWorkflow = void 0;
4
- const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
5
- const core_flows_1 = require("@medusajs/medusa/core-flows");
6
- const product_helper_1 = require("../../helpers/product-helper");
7
- const fetch_styles_1 = require("../steps/fetch-styles");
8
- const update_style_price_only_1 = require("../steps/update-style-price-only");
9
- /**
10
- * Price-only workflow for StyleMst updates when DailyRate is detected
11
- * This workflow:
12
- * 1. Fetches style data from ERP
13
- * 2. Updates only price fields in extended product data
14
- * 3. Updates style detail line prices
15
- * 4. Does NOT update Medusa product, variants, categories, collections, or explorations
16
- *
17
- * @param input - Contains operation type, data IDs, and priceOnly flag
18
- */
19
- exports.createOrUpdateStyleMasterPriceOnlyWorkflow = (0, workflows_sdk_1.createWorkflow)("create-or-update-style-master-price-only", (input) => {
20
- // Step 1: Fetch style data from ERP system
21
- const styleData = (0, fetch_styles_1.fetchStyleData)(input);
22
- // Get base metal details
23
- const externalIdsFilters = (0, workflows_sdk_1.transform)({
24
- styleData,
25
- }, (data) => {
26
- return data.styleData.map((product) => `${product.StyleId}`);
27
- });
28
- // Step 2: Query existing products for updates
29
- // @ts-ignore
30
- const { data: existingProducts } = (0, core_flows_1.useQueryGraphStep)({
31
- entity: "product",
32
- fields: ["id", "external_id"],
33
- filters: {
34
- // @ts-ignore
35
- external_id: externalIdsFilters,
36
- },
37
- }).config({ name: "existing-products" });
38
- // Step 3: Query existing extended products to update price fields
39
- const { data: existingExtendedProducts } = (0, core_flows_1.useQueryGraphStep)({
40
- entity: "extended_product",
41
- fields: ["*"],
42
- filters: {
43
- // @ts-ignore
44
- external_id: externalIdsFilters,
45
- },
46
- }).config({ name: "existing-extended-products" });
47
- (0, workflows_sdk_1.when)(input, (input) => {
48
- return input.operation === "update";
49
- }).then(() => {
50
- const priceOnlyUpdateData = (0, workflows_sdk_1.transform)({
51
- styleData,
52
- existingProducts,
53
- existingExtendedProducts,
54
- }, (data) => {
55
- const updates = [];
56
- data.styleData.forEach((styleData) => {
57
- // Find existing product
58
- const existingProduct = data.existingProducts.find((p) => p.external_id === `${styleData.StyleId}`);
59
- if (!existingProduct) {
60
- return; // Skip if product doesn't exist (price-only means it should already exist)
61
- }
62
- // Find existing extended product
63
- const existingExtendedProduct = data.existingExtendedProducts.find((ep) => ep.external_id === `${styleData.StyleId}`);
64
- if (!existingExtendedProduct) {
65
- return; // Skip if extended product doesn't exist
66
- }
67
- // Calculate price data
68
- 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.StyleMstDetail);
69
- // Get extended product data (includes price fields)
70
- const extendedProductData = (0, product_helper_1.getExtendedProductData)(styleData, {
71
- baseMetal: styleData.StyleMstDetail?.find((i) => i.RawType === "Metal" && i.IsBase)?.RawCode || "",
72
- baseMetalPurity: "",
73
- baseMetalColor: "",
74
- }, {
75
- metal_total_cost,
76
- diamond_total_cost,
77
- stone_total_cost,
78
- cpf_total_cost,
79
- metal_total_amount,
80
- diamond_total_amount,
81
- stone_total_amount,
82
- cpf_total_amount,
83
- });
84
- // Get style detail lines (contains detail-level price fields)
85
- const styleDetails = (0, product_helper_1.getStyleDetailLines)(styleData?.StyleMstDetail || []);
86
- updates.push({
87
- extendedProductId: existingExtendedProduct.id,
88
- productId: existingProduct.id,
89
- extendedProductData,
90
- styleDetails,
91
- });
92
- });
93
- return updates;
94
- });
95
- // Execute the price-only update step
96
- (0, update_style_price_only_1.updateStylePriceOnly)({
97
- updates: priceOnlyUpdateData,
98
- });
99
- });
100
- return new workflows_sdk_1.WorkflowResponse({
101
- success: true,
102
- });
103
- });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1zdHlsZS1tYXN0ZXItcHJpY2Utb25seS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3R5bGUtbWFzdGVyL3dvcmtmbG93cy9jcmVhdGUtb3ItdXBkYXRlLXN0eWxlLW1hc3Rlci1wcmljZS1vbmx5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUsyQztBQUMzQyw0REFBZ0U7QUFHaEUsaUVBSXNDO0FBRXRDLHdEQUF1RDtBQUN2RCw4RUFBd0U7QUFFeEU7Ozs7Ozs7OztHQVNHO0FBQ1UsUUFBQSwwQ0FBMEMsR0FBRyxJQUFBLDhCQUFjLEVBQ3RFLDBDQUEwQyxFQUMxQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtJQUN2QiwyQ0FBMkM7SUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBQSw2QkFBYyxFQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhDLHlCQUF5QjtJQUN6QixNQUFNLGtCQUFrQixHQUFHLElBQUEseUJBQVMsRUFDbEM7UUFDRSxTQUFTO0tBQ1YsRUFDRCxDQUFDLElBQUksRUFBRSxFQUFFO1FBQ1AsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQ0YsQ0FBQztJQUVGLDhDQUE4QztJQUM5QyxhQUFhO0lBQ2IsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLElBQUEsOEJBQWlCLEVBQUM7UUFDbkQsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQztRQUM3QixPQUFPLEVBQUU7WUFDUCxhQUFhO1lBQ2IsV0FBVyxFQUFFLGtCQUFrQjtTQUNoQztLQUNGLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsbUJBQW1C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