@devx-commerce/plugin-gati 0.0.34-beta.3 → 0.0.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/development/erp-order-payload-example.js +76 -0
- package/.medusa/server/src/api/admin/middlewares.js +2 -6
- package/.medusa/server/src/api/erp/webhook/config.js +6 -32
- package/.medusa/server/src/api/middlewares.js +1 -3
- package/.medusa/server/src/api/store/middleware.js +1 -3
- package/.medusa/server/src/modules/erp/service.js +1 -59
- package/.medusa/server/src/modules/extended-product/models/extended-product.js +9 -89
- package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +12 -145
- package/.medusa/server/src/modules/raw-master/models/raw-master.js +1 -2
- package/.medusa/server/src/modules/shape-master/models/shape-master.js +1 -2
- package/.medusa/server/src/modules/shipping-info-master/models/shipping-info-master.js +2 -2
- package/.medusa/server/src/subscribers/cutomer-updated.js +2 -1
- package/.medusa/server/src/subscribers/party-master.js +2 -2
- package/.medusa/server/src/workflows/create-or-update-product-options/steps/create-update-product-options.js +2 -39
- package/.medusa/server/src/workflows/helpers/product-helper.js +111 -425
- package/.medusa/server/src/workflows/inward-master/helper/index.js +39 -88
- package/.medusa/server/src/workflows/party-master/steps/delete-party.js +7 -4
- package/.medusa/server/src/workflows/party-master/steps/fetch-party-master.js +2 -1
- package/.medusa/server/src/workflows/party-master/workflows/create-or-update-party-master.js +49 -1
- package/.medusa/server/src/workflows/party-master/workflows/index.js +1 -2
- package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-deletion.js +189 -307
- package/.medusa/server/src/workflows/party-style-master/workflows/create-or-update-party-style-master.js +4 -120
- package/.medusa/server/src/workflows/raw-master/steps/delete-raw.js +11 -9
- package/.medusa/server/src/workflows/shape-master/steps/delete-shape.js +9 -9
- package/package.json +1 -1
- package/.medusa/server/src/api/admin/masters/[master]/[id]/route.js +0 -121
- package/.medusa/server/src/api/admin/masters/[master]/route.js +0 -33
- package/.medusa/server/src/api/admin/masters/middlewares.js +0 -35
- package/.medusa/server/src/api/admin/masters/query-config.js +0 -14
- package/.medusa/server/src/api/admin/masters/search-middleware.js +0 -16
- package/.medusa/server/src/api/admin/masters/utils.js +0 -108
- package/.medusa/server/src/api/admin/masters/validators.js +0 -28
- package/.medusa/server/src/api/admin/variant-options/sync/route.js +0 -313
- package/.medusa/server/src/api/pos/gold-rate/middleware.js +0 -13
- package/.medusa/server/src/api/pos/gold-rate/route.js +0 -96
- package/.medusa/server/src/api/pos/middleware.js +0 -13
- package/.medusa/server/src/api/store/gold-rate/current/route.js +0 -70
- package/.medusa/server/src/api/store/gold-rate/historical/route.js +0 -108
- package/.medusa/server/src/api/store/gold-rate/middleware.js +0 -19
- package/.medusa/server/src/api/store/gold-rate/validators.js +0 -37
- package/.medusa/server/src/jobs/process-variant-option-sync.js +0 -521
- package/.medusa/server/src/modules/category-group-master/migrations/Migration20251031061116.js +0 -14
- package/.medusa/server/src/modules/category-group-master/migrations/Migration20251104045912.js +0 -14
- package/.medusa/server/src/modules/category-master/migrations/Migration20251031061327.js +0 -14
- package/.medusa/server/src/modules/category-master/migrations/Migration20251104045755.js +0 -14
- package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251031061432.js +0 -14
- package/.medusa/server/src/modules/collection-group-master/migrations/Migration20251104050102.js +0 -14
- package/.medusa/server/src/modules/collection-master/migrations/Migration20251031060941.js +0 -14
- package/.medusa/server/src/modules/collection-master/migrations/Migration20251104050012.js +0 -14
- package/.medusa/server/src/modules/discount-master/migrations/Migration20251031061523.js +0 -14
- package/.medusa/server/src/modules/discount-master/migrations/Migration20251104050153.js +0 -14
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251103182726.js +0 -14
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251119062526.js +0 -16
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251202055742.js +0 -14
- package/.medusa/server/src/modules/extended-product/migrations/Migration20251202064200.js +0 -16
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251119063328.js +0 -20
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120045708.js +0 -14
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120051832.js +0 -14
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251120052514.js +0 -14
- package/.medusa/server/src/modules/extended-variant/migrations/Migration20251202055952.js +0 -14
- package/.medusa/server/src/modules/item-size-master/index.js +0 -13
- package/.medusa/server/src/modules/item-size-master/migrations/Migration20251031111036.js +0 -17
- package/.medusa/server/src/modules/item-size-master/models/item-size-master.js +0 -14
- package/.medusa/server/src/modules/item-size-master/service.js +0 -10
- package/.medusa/server/src/modules/party-master/migrations/Migration20251031061657.js +0 -14
- package/.medusa/server/src/modules/party-master/migrations/Migration20251104050242.js +0 -14
- package/.medusa/server/src/modules/promocode-master/migrations/Migration20251031061829.js +0 -14
- package/.medusa/server/src/modules/promocode-master/migrations/Migration20251104050332.js +0 -14
- package/.medusa/server/src/modules/quality-master/index.js +0 -13
- package/.medusa/server/src/modules/quality-master/migrations/Migration20251031095211.js +0 -16
- package/.medusa/server/src/modules/quality-master/migrations/Migration20251105045114.js +0 -14
- package/.medusa/server/src/modules/quality-master/models/quality-master.js +0 -17
- package/.medusa/server/src/modules/quality-master/service.js +0 -10
- package/.medusa/server/src/modules/raw-master/migrations/Migration20251031061912.js +0 -14
- package/.medusa/server/src/modules/shape-master/migrations/Migration20251031062019.js +0 -14
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251031062128.js +0 -14
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251104050501.js +0 -14
- package/.medusa/server/src/modules/shipping-info-master/migrations/Migration20251203083315.js +0 -16
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251031062303.js +0 -14
- package/.medusa/server/src/modules/sub-category-master/migrations/Migration20251104050743.js +0 -14
- package/.medusa/server/src/modules/tone-master/index.js +0 -13
- package/.medusa/server/src/modules/tone-master/migrations/Migration20251031104320.js +0 -16
- package/.medusa/server/src/modules/tone-master/models/tone-master.js +0 -15
- package/.medusa/server/src/modules/tone-master/service.js +0 -10
- package/.medusa/server/src/modules/variant-option-sync-queue/index.js +0 -13
- package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251101082220.js +0 -19
- package/.medusa/server/src/modules/variant-option-sync-queue/migrations/Migration20251103123857.js +0 -16
- package/.medusa/server/src/modules/variant-option-sync-queue/models/variant-option-sync-queue.js +0 -23
- package/.medusa/server/src/modules/variant-option-sync-queue/service.js +0 -49
- package/.medusa/server/src/utils/build-redis-key.js +0 -30
- package/.medusa/server/src/workflows/helpers/update-variant-option-metadata.js +0 -105
- package/.medusa/server/src/workflows/helpers/variant-helper.js +0 -212
- package/.medusa/server/src/workflows/item-size-master/create-or-update-item-size-master.js +0 -51
- package/.medusa/server/src/workflows/item-size-master/index.js +0 -15
- package/.medusa/server/src/workflows/item-size-master/steps/create-item-size.js +0 -21
- package/.medusa/server/src/workflows/item-size-master/steps/delete-item-size.js +0 -23
- package/.medusa/server/src/workflows/item-size-master/steps/fetch-item-size-master.js +0 -55
- package/.medusa/server/src/workflows/item-size-master/steps/update-item-size.js +0 -36
- package/.medusa/server/src/workflows/party-master/workflows/delete-party-master.js +0 -60
- package/.medusa/server/src/workflows/party-style-master/steps/update-product-options-after-variant-update.js +0 -367
- package/.medusa/server/src/workflows/quality-master/create-or-update-quality-master.js +0 -58
- package/.medusa/server/src/workflows/quality-master/index.js +0 -30
- package/.medusa/server/src/workflows/quality-master/steps/create-quality.js +0 -22
- package/.medusa/server/src/workflows/quality-master/steps/delete-quality.js +0 -20
- package/.medusa/server/src/workflows/quality-master/steps/fetch-quality-master.js +0 -54
- package/.medusa/server/src/workflows/quality-master/steps/update-quality.js +0 -37
- package/.medusa/server/src/workflows/raw-master/create-or-update-raw-master.js +0 -58
- package/.medusa/server/src/workflows/shape-master/create-or-update-shape-master.js +0 -53
- package/.medusa/server/src/workflows/tone-master/create-or-update-tone-master.js +0 -52
- package/.medusa/server/src/workflows/tone-master/index.js +0 -30
- package/.medusa/server/src/workflows/tone-master/steps/create-tone.js +0 -22
- package/.medusa/server/src/workflows/tone-master/steps/delete-tone.js +0 -20
- package/.medusa/server/src/workflows/tone-master/steps/fetch-tone-master.js +0 -54
- package/.medusa/server/src/workflows/tone-master/steps/update-tone.js +0 -37
|
@@ -1,44 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeProductOptions = exports.createProductOptionsForPartyStyleId = exports.createProductOptionsStepFromData = exports.getPartyStyleExplorationLines = exports.getPartyStyleDetailLines = exports.getStyleCollectionLines = exports.getStyleExplorationLines = exports.getStyleDetailLines = exports.getExtendedVariantData = exports.getExtendedProductData = exports.getBaseMetalDetails = exports.calculateStyleCostsAndAmounts = exports.toKebabCase =
|
|
3
|
+
exports.mergeProductOptions = exports.createProductOptionsForPartyStyleId = exports.createProductOptionsStepFromData = exports.getPartyStyleExplorationLines = exports.getPartyStyleDetailLines = exports.getStyleCollectionLines = exports.getStyleExplorationLines = exports.getStyleDetailLines = exports.getExtendedVariantData = exports.getExtendedProductData = exports.getBaseMetalDetails = exports.calculateStyleCostsAndAmounts = exports.toKebabCase = void 0;
|
|
4
4
|
const common_1 = require("../types/common");
|
|
5
|
-
/**
|
|
6
|
-
* Calculate diamond discount value and type based on dis_markup_on flag
|
|
7
|
-
* If dis_markup_on is false -> use dis_markup_per (percentage) -> type "percentage"
|
|
8
|
-
* If dis_markup_on is true -> use dis_markup_amt (fixed amount in rupees) -> type "rupees"
|
|
9
|
-
*/
|
|
10
|
-
const calculateDiamondDiscount = (styleDetails) => {
|
|
11
|
-
const diamondDetails = styleDetails.find((detail) => detail.RawType === "Diamond");
|
|
12
|
-
let totalValue = 0;
|
|
13
|
-
let type = "rupees"; // Default to rupees
|
|
14
|
-
if (diamondDetails) {
|
|
15
|
-
if (diamondDetails.DisMarkupOn === false) {
|
|
16
|
-
// Use percentage-based discount
|
|
17
|
-
totalValue += diamondDetails.DisMarkupPer ?? 0;
|
|
18
|
-
type = "percentage";
|
|
19
|
-
}
|
|
20
|
-
else if (diamondDetails.DisMarkupOn === true) {
|
|
21
|
-
// Use fixed amount discount (rupees)
|
|
22
|
-
totalValue += diamondDetails.DisMarkupAmt ?? 0;
|
|
23
|
-
type = "rupees";
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
return { value: totalValue, type };
|
|
27
|
-
};
|
|
28
|
-
exports.calculateDiamondDiscount = calculateDiamondDiscount;
|
|
29
5
|
const toKebabCase = (strings) => {
|
|
30
|
-
|
|
6
|
+
return strings
|
|
31
7
|
.filter(Boolean)
|
|
32
|
-
.
|
|
8
|
+
.join("-")
|
|
33
9
|
.toLowerCase()
|
|
34
|
-
.
|
|
35
|
-
.replace(
|
|
36
|
-
.replace(/
|
|
37
|
-
.replace(/-+/g, "-") // collapse multi hyphens
|
|
38
|
-
.replace(/^-+|-+$/g, "") // remove start/end hyphens
|
|
39
|
-
)
|
|
40
|
-
.filter(Boolean); // remove empty strings after cleaning
|
|
41
|
-
return cleaned.join("-"); // join safe parts
|
|
10
|
+
.replace(/\s+/g, "-") // Replace spaces with hyphens
|
|
11
|
+
.replace(/[^a-z0-9-]/g, "")
|
|
12
|
+
.replace(/-{2,}/g, "-");
|
|
42
13
|
};
|
|
43
14
|
exports.toKebabCase = toKebabCase;
|
|
44
15
|
const calculateStyleCostsAndAmounts = (styleDetails) => {
|
|
@@ -66,23 +37,6 @@ const calculateStyleCostsAndAmounts = (styleDetails) => {
|
|
|
66
37
|
const cpfTotalAmount = styleDetails
|
|
67
38
|
.filter((detail) => detail.RawType === "Metal")
|
|
68
39
|
.reduce((acc, detail) => acc + detail.CPFAmt, 0);
|
|
69
|
-
// Calculate actual total amounts
|
|
70
|
-
const actualMetalTotalAmount = styleDetails
|
|
71
|
-
.filter((detail) => detail.RawType === "Metal")
|
|
72
|
-
.reduce((acc, detail) => acc + (detail.ActualAmount ?? 0), 0);
|
|
73
|
-
const actualDiamondTotalAmount = styleDetails
|
|
74
|
-
.filter((detail) => detail.RawType === "Diamond")
|
|
75
|
-
.reduce((acc, detail) => acc + (detail.ActualAmount ?? 0), 0);
|
|
76
|
-
const actualStoneTotalAmount = styleDetails
|
|
77
|
-
.filter((detail) => detail.RawType === "Stone" || detail.RawType === "Stone(Color Stone)")
|
|
78
|
-
.reduce((acc, detail) => acc + (detail.ActualAmount ?? 0), 0);
|
|
79
|
-
const actualCpfTotalAmount = styleDetails
|
|
80
|
-
.filter((detail) => detail.RawType === "Metal")
|
|
81
|
-
.reduce((acc, detail) => acc + (detail.OriginalCPFAmt ?? 0), 0);
|
|
82
|
-
const actualTotalAmount = actualMetalTotalAmount +
|
|
83
|
-
actualDiamondTotalAmount +
|
|
84
|
-
actualStoneTotalAmount +
|
|
85
|
-
actualCpfTotalAmount;
|
|
86
40
|
return {
|
|
87
41
|
metal_total_cost: metalTotalCost,
|
|
88
42
|
diamond_total_cost: diamondTotalCost,
|
|
@@ -92,11 +46,6 @@ const calculateStyleCostsAndAmounts = (styleDetails) => {
|
|
|
92
46
|
diamond_total_amount: diamondTotalAmount,
|
|
93
47
|
stone_total_amount: stoneTotalAmount,
|
|
94
48
|
cpf_total_amount: cpfTotalAmount,
|
|
95
|
-
actual_metal_total_amount: actualMetalTotalAmount,
|
|
96
|
-
actual_diamond_total_amount: actualDiamondTotalAmount,
|
|
97
|
-
actual_stone_total_amount: actualStoneTotalAmount,
|
|
98
|
-
actual_cpf_total_amount: actualCpfTotalAmount,
|
|
99
|
-
actual_total_amount: actualTotalAmount,
|
|
100
49
|
};
|
|
101
50
|
};
|
|
102
51
|
exports.calculateStyleCostsAndAmounts = calculateStyleCostsAndAmounts;
|
|
@@ -115,7 +64,6 @@ const getExtendedProductData = (styleData, baseMetalDetails, styleCalculations)
|
|
|
115
64
|
style_date: styleData.StyleDate,
|
|
116
65
|
style_code: styleData.StyleCode,
|
|
117
66
|
style_alias_no: styleData.StyleAliasNo,
|
|
118
|
-
parent_style_code: styleData.ParentStyleCode,
|
|
119
67
|
grp_group_no: styleData.GrpGroupNo,
|
|
120
68
|
category_group_name: styleData.CategoryGroupName,
|
|
121
69
|
category_group_code: styleData.CategoryGroupCode,
|
|
@@ -178,50 +126,6 @@ const getExtendedProductData = (styleData, baseMetalDetails, styleCalculations)
|
|
|
178
126
|
diamond_total_amount: styleCalculations.diamond_total_amount,
|
|
179
127
|
stone_total_amount: styleCalculations.stone_total_amount,
|
|
180
128
|
cpf_total_amount: styleCalculations.cpf_total_amount,
|
|
181
|
-
actual_metal_total_amount: styleCalculations.actual_metal_total_amount,
|
|
182
|
-
actual_diamond_total_amount: styleCalculations.actual_diamond_total_amount,
|
|
183
|
-
actual_stone_total_amount: styleCalculations.actual_stone_total_amount,
|
|
184
|
-
actual_cpf_total_amount: styleCalculations.actual_cpf_total_amount,
|
|
185
|
-
actual_total_amount: styleCalculations.actual_total_amount,
|
|
186
|
-
diamond_dis_markup_value: (0, exports.calculateDiamondDiscount)(styleData.StyleMstDetail)
|
|
187
|
-
.value,
|
|
188
|
-
diamond_dis_markup_type: (0, exports.calculateDiamondDiscount)(styleData.StyleMstDetail)
|
|
189
|
-
.type,
|
|
190
|
-
discount_markup_cost: styleData.DiscountMarkupCost || "",
|
|
191
|
-
making_cost_on: styleData.MakingCostOn || "",
|
|
192
|
-
metal_calculation_cost_on: styleData.MetalCalculationCostOn || "",
|
|
193
|
-
gold_loss_cost_formula: styleData.GoldLossCostFormula || "",
|
|
194
|
-
labour_cost_formula: styleData.LabourCostFormula || "",
|
|
195
|
-
cost_margin_per: styleData.CostMarginPer ?? undefined,
|
|
196
|
-
cost_margin_is_fix: styleData.CostMarginIsFix ?? undefined,
|
|
197
|
-
actual_cost_margin_amt: styleData.ActualCostMarginAmt ?? undefined,
|
|
198
|
-
cost_margin_amt: styleData.CostMarginAmt ?? undefined,
|
|
199
|
-
cost_discount_per: styleData.CostDiscountPer ?? undefined,
|
|
200
|
-
cost_discount_is_fix: styleData.CostDiscountIsFix ?? undefined,
|
|
201
|
-
actual_cost_discount_amt: styleData.ActualCostDiscountAmt ?? undefined,
|
|
202
|
-
cost_discount_amt: styleData.CostDiscountAmt ?? undefined,
|
|
203
|
-
actual_cost: styleData.ActualCost ?? undefined,
|
|
204
|
-
making_on: styleData.MakingOn || "",
|
|
205
|
-
metal_calculation_on: styleData.MetalCalculationOn || "",
|
|
206
|
-
gold_loss_formula: styleData.GoldLossFormula || "",
|
|
207
|
-
labour_formula: styleData.LabourFormula || "",
|
|
208
|
-
margin_per: styleData.MarginPer ?? undefined,
|
|
209
|
-
margin_is_fix: styleData.MarginIsFix ?? undefined,
|
|
210
|
-
actual_margin_amt: styleData.ActualMarginAmt ?? undefined,
|
|
211
|
-
margin_amt: styleData.MarginAmt ?? undefined,
|
|
212
|
-
discount_per: styleData.DiscountPer ?? undefined,
|
|
213
|
-
discount_is_fix: styleData.DiscountIsFix ?? undefined,
|
|
214
|
-
actual_discount_amt: styleData.ActualDiscountAmt ?? undefined,
|
|
215
|
-
discount_amt: styleData.DiscountAmt ?? undefined,
|
|
216
|
-
actual_mrp: styleData.ActualMRP ?? undefined,
|
|
217
|
-
stamping_instruction: styleData.StampingInstruction || "",
|
|
218
|
-
design_production_instruction: styleData.DesignProductionInstruction || "",
|
|
219
|
-
customer_production_instruction: styleData.CustomerProductionInstruction || "",
|
|
220
|
-
design_by: styleData.DesignBy || "",
|
|
221
|
-
re_order_qty: styleData.ReOrderQty ?? undefined,
|
|
222
|
-
master_qty: styleData.MasterQty ?? undefined,
|
|
223
|
-
hsn_id: styleData.HSNId?.toString() ?? undefined,
|
|
224
|
-
style_history: styleData.StyleHistory || "",
|
|
225
129
|
};
|
|
226
130
|
};
|
|
227
131
|
exports.getExtendedProductData = getExtendedProductData;
|
|
@@ -268,42 +172,8 @@ const getExtendedVariantData = (styleData, baseMetalDetails, styleCalculations,
|
|
|
268
172
|
currency: styleData.Currency || "INR",
|
|
269
173
|
rate_chart: styleData.RateChart || "",
|
|
270
174
|
discount_markup: styleData.DiscountMarkup || "",
|
|
271
|
-
discount_markup_cost: styleData.DiscountMarkupCost || "",
|
|
272
|
-
making_cost_on: styleData.MakingCostOn || "",
|
|
273
|
-
metal_calculation_cost_on: styleData.MetalCalculationCostOn || "",
|
|
274
|
-
gold_loss_cost_formula: styleData.GoldLossCostFormula || "",
|
|
275
|
-
labour_cost_formula: styleData.LabourCostFormula || "",
|
|
276
|
-
cost_margin_per: styleData.CostMarginPer ?? undefined,
|
|
277
|
-
cost_margin_is_fix: styleData.CostMarginIsFix ?? undefined,
|
|
278
|
-
actual_cost_margin_amt: styleData.ActualCostMarginAmt ?? undefined,
|
|
279
|
-
cost_margin_amt: styleData.CostMarginAmt ?? undefined,
|
|
280
|
-
cost_discount_per: styleData.CostDiscountPer ?? undefined,
|
|
281
|
-
cost_discount_is_fix: styleData.CostDiscountIsFix ?? undefined,
|
|
282
|
-
actual_cost_discount_amt: styleData.ActualCostDiscountAmt ?? undefined,
|
|
283
|
-
cost_discount_amt: styleData.CostDiscountAmt ?? undefined,
|
|
284
|
-
actual_cost: styleData.ActualCost ?? undefined,
|
|
285
175
|
cost: styleData.Cost || 0,
|
|
286
|
-
making_on: styleData.MakingOn || "",
|
|
287
|
-
metal_calculation_on: styleData.MetalCalculationOn || "",
|
|
288
|
-
gold_loss_formula: styleData.GoldLossFormula || "",
|
|
289
|
-
labour_formula: styleData.LabourFormula || "",
|
|
290
|
-
margin_per: styleData.MarginPer ?? undefined,
|
|
291
|
-
margin_is_fix: styleData.MarginIsFix ?? undefined,
|
|
292
|
-
actual_margin_amt: styleData.ActualMarginAmt ?? undefined,
|
|
293
|
-
margin_amt: styleData.MarginAmt ?? undefined,
|
|
294
|
-
discount_per: styleData.DiscountPer ?? undefined,
|
|
295
|
-
discount_is_fix: styleData.DiscountIsFix ?? undefined,
|
|
296
|
-
actual_discount_amt: styleData.ActualDiscountAmt ?? undefined,
|
|
297
|
-
discount_amt: styleData.DiscountAmt ?? undefined,
|
|
298
|
-
actual_mrp: styleData.ActualMRP ?? undefined,
|
|
299
176
|
mrp: styleData.Mrp || 0,
|
|
300
|
-
stamping_instruction: styleData.StampingInstruction || "",
|
|
301
|
-
design_production_instruction: styleData.DesignProductionInstruction || "",
|
|
302
|
-
customer_production_instruction: styleData.CustomerProductionInstruction || "",
|
|
303
|
-
design_by: styleData.DesignBy || "",
|
|
304
|
-
master_qty: styleData.MasterQty || undefined,
|
|
305
|
-
hsn_id: styleData.HSNId?.toString() || undefined,
|
|
306
|
-
style_history: styleData.StyleHistory || "",
|
|
307
177
|
hsn_code: styleData.HSN || "",
|
|
308
178
|
gross_weight: styleData.GrossWt || 0,
|
|
309
179
|
net_weight: styleData.NetWt || 0,
|
|
@@ -332,13 +202,6 @@ const getExtendedVariantData = (styleData, baseMetalDetails, styleCalculations,
|
|
|
332
202
|
diamond_total_amount: styleCalculations.diamond_total_amount,
|
|
333
203
|
stone_total_amount: styleCalculations.stone_total_amount,
|
|
334
204
|
cpf_total_amount: styleCalculations.cpf_total_amount,
|
|
335
|
-
actual_metal_total_amount: styleCalculations.actual_metal_total_amount,
|
|
336
|
-
actual_diamond_total_amount: styleCalculations.actual_diamond_total_amount,
|
|
337
|
-
actual_stone_total_amount: styleCalculations.actual_stone_total_amount,
|
|
338
|
-
actual_cpf_total_amount: styleCalculations.actual_cpf_total_amount,
|
|
339
|
-
actual_total_amount: styleCalculations.actual_total_amount,
|
|
340
|
-
diamond_dis_markup_value: (0, exports.calculateDiamondDiscount)(styleData.PartyStyleMstDetail).value,
|
|
341
|
-
diamond_dis_markup_type: (0, exports.calculateDiamondDiscount)(styleData.PartyStyleMstDetail).type,
|
|
342
205
|
sales_channels: [salesChannelId],
|
|
343
206
|
is_default: false,
|
|
344
207
|
};
|
|
@@ -346,7 +209,6 @@ const getExtendedVariantData = (styleData, baseMetalDetails, styleCalculations,
|
|
|
346
209
|
exports.getExtendedVariantData = getExtendedVariantData;
|
|
347
210
|
const getStyleDetailLines = (data) => {
|
|
348
211
|
return data.map((detail) => {
|
|
349
|
-
console.log(detail);
|
|
350
212
|
return {
|
|
351
213
|
style_id: detail.StyleId,
|
|
352
214
|
style_mst_detail_id: detail.StyleMstDetailId,
|
|
@@ -382,74 +244,32 @@ const getStyleDetailLines = (data) => {
|
|
|
382
244
|
stone_wt: detail.StoneWt || 0,
|
|
383
245
|
default_wt: detail.DefaultWt || 0,
|
|
384
246
|
raw_formula: detail.RawFormula || "",
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
original_cpf_cost_rate: detail.OriginalCPFCostRate ?? null,
|
|
412
|
-
actual_cpf_cost_amt: detail.ActualCPFCostAmt ?? null,
|
|
413
|
-
cpf_dis_markup_cost_per: detail.CPFDisMarkupCostPer ?? null,
|
|
414
|
-
cpf_cost_rate: detail.CPFCostRate ?? 0,
|
|
415
|
-
cpf_cost_is_fix: detail.CPFCostIsFix ?? false,
|
|
416
|
-
original_cpf_cost_amt: detail.OriginalCPFCostAmt ?? null,
|
|
417
|
-
cpf_amt_dis_markup_cost_per: detail.CPFAmtDisMarkupCostPer ?? null,
|
|
418
|
-
cpf_cost_amt: detail.CPFCostAmt ?? 0,
|
|
419
|
-
original_rate: detail.OriginalRate ?? null,
|
|
420
|
-
actual_amount: detail.ActualAmount ?? null,
|
|
421
|
-
dis_markup_on: detail.DisMarkupOn ?? null,
|
|
422
|
-
dis_markup_per: detail.DisMarkupPer ?? null,
|
|
423
|
-
rate: detail.Rate ?? 0,
|
|
424
|
-
amount: detail.Amount ?? 0,
|
|
425
|
-
dis_markup_amt: detail.DisMarkupAmt ?? null,
|
|
426
|
-
final_amt: detail.FinalAmt ?? null,
|
|
427
|
-
original_hand_rate: detail.OriginalHandRate ?? null,
|
|
428
|
-
actual_hand_amount: detail.ActualHandAmount ?? null,
|
|
429
|
-
hand_dis_markup_per: detail.HandDisMarkupPer ?? null,
|
|
430
|
-
hand_dis_markup_on: detail.HandDisMarkupOn ?? null,
|
|
431
|
-
hand_rate: detail.HandRate ?? 0,
|
|
432
|
-
hand_amount: detail.HandAmount ?? 0,
|
|
433
|
-
original_set_rate: detail.OriginalSetRate ?? null,
|
|
434
|
-
actual_set_amount: detail.ActualSetAmount ?? null,
|
|
435
|
-
set_dis_markup_per: detail.SetDisMarkupPer ?? null,
|
|
436
|
-
set_dis_markup_on: detail.SetDisMarkupOn ?? null,
|
|
437
|
-
set_rate: detail.SetRate ?? 0,
|
|
438
|
-
set_amount: detail.SetAmount ?? 0,
|
|
439
|
-
loss_per: detail.LossPer ?? 0,
|
|
440
|
-
loss_per_is_fix: detail.LossPerIsFix ?? false,
|
|
441
|
-
loss_weight: detail.LossWeight ?? 0,
|
|
442
|
-
actual_loss_amt: detail.ActualLossAmt ?? null,
|
|
443
|
-
metal_loss_per_calc_on: detail.MetalLossCalcOn ?? null,
|
|
444
|
-
loss_amt: detail.LossAmt ?? 0,
|
|
445
|
-
original_cpf_rate: detail.OriginalCPFRate ?? null,
|
|
446
|
-
actual_cpf_amt: detail.ActualCPFAmt ?? null,
|
|
447
|
-
cpf_dis_markup_per: detail.CPFDisMarkupPer ?? null,
|
|
448
|
-
cpf_rate: detail.CPFRate ?? 0,
|
|
449
|
-
cpf_is_fix: detail.CPFIsFix ?? false,
|
|
450
|
-
original_cpf_amt: detail.OriginalCPFAmt ?? null,
|
|
451
|
-
cpf_amt_dis_markup_per: detail.CPFAmtDisMarkupPer ?? null,
|
|
452
|
-
cpf_amt: detail.CPFAmt ?? 0,
|
|
247
|
+
cost_rate: detail.CostRate || 0,
|
|
248
|
+
cost_amount: detail.CostAmount || 0,
|
|
249
|
+
hand_cost_rate: detail.HandCostRate || 0,
|
|
250
|
+
hand_cost_amount: detail.HandCostAmount || 0,
|
|
251
|
+
set_cost_rate: detail.SetCostRate || 0,
|
|
252
|
+
set_cost_amount: detail.SetCostAmount || 0,
|
|
253
|
+
loss_cost_per: detail.LossCostPer || 0,
|
|
254
|
+
loss_cost_per_is_fix: detail.LossCostPerIsFix || false,
|
|
255
|
+
loss_cost_weight: detail.LossCostWeight || 0,
|
|
256
|
+
loss_cost_amt: detail.LossCostAmt || 0,
|
|
257
|
+
cpf_cost_rate: detail.CPFCostRate || 0,
|
|
258
|
+
cpf_cost_is_fix: detail.CPFCostIsFix || false,
|
|
259
|
+
cpf_cost_amt: detail.CPFCostAmt || 0,
|
|
260
|
+
rate: detail.Rate || 0,
|
|
261
|
+
amount: detail.Amount || 0,
|
|
262
|
+
hand_rate: detail.HandRate || 0,
|
|
263
|
+
hand_amount: detail.HandAmount || 0,
|
|
264
|
+
set_rate: detail.SetRate || 0,
|
|
265
|
+
set_amount: detail.SetAmount || 0,
|
|
266
|
+
loss_per: detail.LossPer || 0,
|
|
267
|
+
loss_per_is_fix: detail.LossPerIsFix || false,
|
|
268
|
+
loss_weight: detail.LossWeight || 0,
|
|
269
|
+
loss_amt: detail.LossAmt || 0,
|
|
270
|
+
cpf_rate: detail.CPFRate || 0,
|
|
271
|
+
cpf_is_fix: detail.CPFIsFix || false,
|
|
272
|
+
cpf_amt: detail.CPFAmt || 0,
|
|
453
273
|
};
|
|
454
274
|
});
|
|
455
275
|
};
|
|
@@ -516,74 +336,32 @@ const getPartyStyleDetailLines = (data) => {
|
|
|
516
336
|
stone_wt: detail.StoneWt || 0,
|
|
517
337
|
default_wt: detail.DefaultWt || 0,
|
|
518
338
|
raw_formula: detail.RawFormula || "",
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
original_cpf_cost_rate: detail.OriginalCPFCostRate ?? null,
|
|
546
|
-
actual_cpf_cost_amt: detail.ActualCPFCostAmt ?? null,
|
|
547
|
-
cpf_dis_markup_cost_per: detail.CPFDisMarkupCostPer ?? null,
|
|
548
|
-
cpf_cost_rate: detail.CPFCostRate ?? 0,
|
|
549
|
-
cpf_cost_is_fix: detail.CPFCostIsFix ?? false,
|
|
550
|
-
original_cpf_cost_amt: detail.OriginalCPFCostAmt ?? null,
|
|
551
|
-
cpf_amt_dis_markup_cost_per: detail.CPFAmtDisMarkupCostPer ?? null,
|
|
552
|
-
cpf_cost_amt: detail.CPFCostAmt ?? 0,
|
|
553
|
-
original_rate: detail.OriginalRate ?? null,
|
|
554
|
-
actual_amount: detail.ActualAmount ?? null,
|
|
555
|
-
dis_markup_on: detail.DisMarkupOn ?? null,
|
|
556
|
-
dis_markup_per: detail.DisMarkupPer ?? null,
|
|
557
|
-
rate: detail.Rate ?? 0,
|
|
558
|
-
amount: detail.Amount ?? 0,
|
|
559
|
-
dis_markup_amt: detail.DisMarkupAmt ?? null,
|
|
560
|
-
final_amt: detail.FinalAmt ?? null,
|
|
561
|
-
original_hand_rate: detail.OriginalHandRate ?? null,
|
|
562
|
-
actual_hand_amount: detail.ActualHandAmount ?? null,
|
|
563
|
-
hand_dis_markup_per: detail.HandDisMarkupPer ?? null,
|
|
564
|
-
hand_dis_markup_on: detail.HandDisMarkupOn ?? null,
|
|
565
|
-
hand_rate: detail.HandRate ?? 0,
|
|
566
|
-
hand_amount: detail.HandAmount ?? 0,
|
|
567
|
-
original_set_rate: detail.OriginalSetRate ?? null,
|
|
568
|
-
actual_set_amount: detail.ActualSetAmount ?? null,
|
|
569
|
-
set_dis_markup_per: detail.SetDisMarkupPer ?? null,
|
|
570
|
-
set_dis_markup_on: detail.SetDisMarkupOn ?? null,
|
|
571
|
-
set_rate: detail.SetRate ?? 0,
|
|
572
|
-
set_amount: detail.SetAmount ?? 0,
|
|
573
|
-
loss_per: detail.LossPer ?? 0,
|
|
574
|
-
loss_per_is_fix: detail.LossPerIsFix ?? false,
|
|
575
|
-
loss_weight: detail.LossWeight ?? 0,
|
|
576
|
-
actual_loss_amt: detail.ActualLossAmt ?? null,
|
|
577
|
-
metal_loss_per_calc_on: detail.MetalLossCalcOn ?? null,
|
|
578
|
-
loss_amt: detail.LossAmt ?? 0,
|
|
579
|
-
original_cpf_rate: detail.OriginalCPFRate ?? null,
|
|
580
|
-
actual_cpf_amt: detail.ActualCPFAmt ?? null,
|
|
581
|
-
cpf_dis_markup_per: detail.CPFDisMarkupPer ?? null,
|
|
582
|
-
cpf_rate: detail.CPFRate ?? 0,
|
|
583
|
-
cpf_is_fix: detail.CPFIsFix ?? false,
|
|
584
|
-
original_cpf_amt: detail.OriginalCPFAmt ?? null,
|
|
585
|
-
cpf_amt_dis_markup_per: detail.CPFAmtDisMarkupPer ?? null,
|
|
586
|
-
cpf_amt: detail.CPFAmt ?? 0,
|
|
339
|
+
cost_rate: detail.CostRate || 0,
|
|
340
|
+
cost_amount: detail.CostAmount || 0,
|
|
341
|
+
hand_cost_rate: detail.HandCostRate || 0,
|
|
342
|
+
hand_cost_amount: detail.HandCostAmount || 0,
|
|
343
|
+
set_cost_rate: detail.SetCostRate || 0,
|
|
344
|
+
set_cost_amount: detail.SetCostAmount || 0,
|
|
345
|
+
loss_cost_per: detail.LossCostPer || 0,
|
|
346
|
+
loss_cost_per_is_fix: detail.LossCostPerIsFix || false,
|
|
347
|
+
loss_cost_weight: detail.LossCostWeight || 0,
|
|
348
|
+
loss_cost_amt: detail.LossCostAmt || 0,
|
|
349
|
+
cpf_cost_rate: detail.CPFCostRate || 0,
|
|
350
|
+
cpf_cost_is_fix: detail.CPFCostIsFix || false,
|
|
351
|
+
cpf_cost_amt: detail.CPFCostAmt || 0,
|
|
352
|
+
rate: detail.Rate || 0,
|
|
353
|
+
amount: detail.Amount || 0,
|
|
354
|
+
hand_rate: detail.HandRate || 0,
|
|
355
|
+
hand_amount: detail.HandAmount || 0,
|
|
356
|
+
set_rate: detail.SetRate || 0,
|
|
357
|
+
set_amount: detail.SetAmount || 0,
|
|
358
|
+
loss_per: detail.LossPer || 0,
|
|
359
|
+
loss_per_is_fix: detail.LossPerIsFix || false,
|
|
360
|
+
loss_weight: detail.LossWeight || 0,
|
|
361
|
+
loss_amt: detail.LossAmt || 0,
|
|
362
|
+
cpf_rate: detail.CPFRate || 0,
|
|
363
|
+
cpf_is_fix: detail.CPFIsFix || false,
|
|
364
|
+
cpf_amt: detail.CPFAmt || 0,
|
|
587
365
|
};
|
|
588
366
|
});
|
|
589
367
|
};
|
|
@@ -600,7 +378,7 @@ const getPartyStyleExplorationLines = (data) => {
|
|
|
600
378
|
});
|
|
601
379
|
};
|
|
602
380
|
exports.getPartyStyleExplorationLines = getPartyStyleExplorationLines;
|
|
603
|
-
const createProductOptionsStepFromData =
|
|
381
|
+
const createProductOptionsStepFromData = (partyStyles) => {
|
|
604
382
|
// Group all styles by StyleId
|
|
605
383
|
const stylesByStyleId = new Map();
|
|
606
384
|
partyStyles?.forEach((style) => {
|
|
@@ -618,8 +396,6 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
|
|
|
618
396
|
metalColors: new Set(),
|
|
619
397
|
diamondQualities: new Set(),
|
|
620
398
|
sizes: new Set(),
|
|
621
|
-
shapes: new Set(),
|
|
622
|
-
carat: new Set(),
|
|
623
399
|
};
|
|
624
400
|
// Track if all styles in the group have each option type
|
|
625
401
|
const optionAvailability = {
|
|
@@ -627,7 +403,6 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
|
|
|
627
403
|
metalColors: true,
|
|
628
404
|
diamondQualities: true,
|
|
629
405
|
sizes: true,
|
|
630
|
-
shapes: true,
|
|
631
406
|
};
|
|
632
407
|
// First, check option availability across all styles in this group
|
|
633
408
|
styles.forEach((style) => {
|
|
@@ -639,7 +414,6 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
|
|
|
639
414
|
let hasMetals = false;
|
|
640
415
|
let hasMetalColors = false;
|
|
641
416
|
let hasDiamondQualities = false;
|
|
642
|
-
let hasShapes = false;
|
|
643
417
|
style.PartyStyleMstDetail.forEach((detail) => {
|
|
644
418
|
if (detail.RawType === "Metal" && detail.IsBase) {
|
|
645
419
|
hasMetals = true;
|
|
@@ -647,9 +421,6 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
|
|
|
647
421
|
}
|
|
648
422
|
if (detail.RawType === "Diamond") {
|
|
649
423
|
hasDiamondQualities = true;
|
|
650
|
-
if (detail.IsBase) {
|
|
651
|
-
hasShapes = true;
|
|
652
|
-
}
|
|
653
424
|
}
|
|
654
425
|
});
|
|
655
426
|
if (!hasMetals)
|
|
@@ -658,45 +429,37 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
|
|
|
658
429
|
optionAvailability.metalColors = false;
|
|
659
430
|
if (!hasDiamondQualities)
|
|
660
431
|
optionAvailability.diamondQualities = false;
|
|
661
|
-
if (!hasShapes)
|
|
662
|
-
optionAvailability.shapes = false;
|
|
663
432
|
});
|
|
664
433
|
// Now gather values only for available options
|
|
665
434
|
styles.forEach((style) => {
|
|
666
435
|
// Only collect size data if all items have it
|
|
667
436
|
if (optionAvailability.sizes && style.ItemSize) {
|
|
668
|
-
options.sizes.add(
|
|
437
|
+
options.sizes.add(String(style.ItemSize));
|
|
669
438
|
}
|
|
670
|
-
const isSolitaireStyle = style.StockType === "LG SOLITAIRE" || style.StockType === "SOLITAIRE";
|
|
671
439
|
// Process other options
|
|
672
440
|
style.PartyStyleMstDetail.forEach((detail) => {
|
|
673
441
|
if (optionAvailability.metals &&
|
|
674
442
|
detail.RawType === "Metal" &&
|
|
675
443
|
detail.IsBase) {
|
|
676
|
-
options.metals.add(`${
|
|
444
|
+
options.metals.add(`${detail.QlyCode}KT ${detail.RawCode}`);
|
|
677
445
|
// Map ToneCode to color name if metal colors are available
|
|
678
446
|
if (optionAvailability.metalColors) {
|
|
679
|
-
if (
|
|
680
|
-
options.metalColors.add(
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
else if (detail.ToneCode === "BU")
|
|
696
|
-
options.metalColors.add("BLUE");
|
|
697
|
-
else if (detail.ToneCode === "BL")
|
|
698
|
-
options.metalColors.add("BLACK");
|
|
699
|
-
}
|
|
447
|
+
if (detail.ToneCode === "R")
|
|
448
|
+
options.metalColors.add("Rose");
|
|
449
|
+
else if (detail.ToneCode === "Y")
|
|
450
|
+
options.metalColors.add("Yellow");
|
|
451
|
+
else if (detail.ToneCode === "W")
|
|
452
|
+
options.metalColors.add("White");
|
|
453
|
+
else if (detail.ToneCode === "YRW")
|
|
454
|
+
options.metalColors.add("YELLOW/ROSE/WHITE");
|
|
455
|
+
else if (detail.ToneCode === "YW")
|
|
456
|
+
options.metalColors.add("YELLOW/WHITE");
|
|
457
|
+
else if (detail.ToneCode === "RW")
|
|
458
|
+
options.metalColors.add("ROSE/WHITE");
|
|
459
|
+
else if (detail.ToneCode === "BU")
|
|
460
|
+
options.metalColors.add("BLUE");
|
|
461
|
+
else if (detail.ToneCode === "BL")
|
|
462
|
+
options.metalColors.add("BLACK");
|
|
700
463
|
}
|
|
701
464
|
}
|
|
702
465
|
if (optionAvailability.diamondQualities &&
|
|
@@ -704,18 +467,7 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
|
|
|
704
467
|
detail.ToneCode &&
|
|
705
468
|
detail.QlyCode &&
|
|
706
469
|
detail.IsBase) {
|
|
707
|
-
options.diamondQualities.add(`${
|
|
708
|
-
}
|
|
709
|
-
if (optionAvailability.shapes &&
|
|
710
|
-
isSolitaireStyle &&
|
|
711
|
-
detail.RawType === "Diamond" &&
|
|
712
|
-
detail.RawCode === "LGS" &&
|
|
713
|
-
detail.IsBase) {
|
|
714
|
-
const shapeTitle = shapeMasterMap.get(detail.ShapeCode) || detail.ShapeCode;
|
|
715
|
-
if (shapeTitle) {
|
|
716
|
-
options.shapes.add(shapeTitle);
|
|
717
|
-
}
|
|
718
|
-
options.carat.add(String(detail.Weight || 0));
|
|
470
|
+
options.diamondQualities.add(`${detail.ToneCode}/${detail.QlyCode}`);
|
|
719
471
|
}
|
|
720
472
|
});
|
|
721
473
|
});
|
|
@@ -739,98 +491,51 @@ const createProductOptionsStepFromData = async (partyStyles, { rawMasterMap, qua
|
|
|
739
491
|
if (optionAvailability.sizes && options.sizes.size > 0) {
|
|
740
492
|
optionsArray.push({ title: "Size", values: Array.from(options.sizes) });
|
|
741
493
|
}
|
|
742
|
-
if (optionAvailability.shapes && options.shapes.size > 0) {
|
|
743
|
-
optionsArray.push({ title: "Shape", values: Array.from(options.shapes) });
|
|
744
|
-
}
|
|
745
|
-
// Add Carat only for solitaire groups when we collected values
|
|
746
|
-
if (options.carat.size > 0) {
|
|
747
|
-
optionsArray.push({ title: "Carat", values: Array.from(options.carat) });
|
|
748
|
-
}
|
|
749
|
-
// Sort values alphabetically within each option and sort option titles
|
|
750
|
-
const sortedOptions = optionsArray
|
|
751
|
-
.map((opt) => ({
|
|
752
|
-
title: opt.title,
|
|
753
|
-
values: opt.values.slice().sort((a, b) => a.localeCompare(b)),
|
|
754
|
-
}))
|
|
755
|
-
.sort((a, b) => a.title.localeCompare(b.title));
|
|
756
494
|
return {
|
|
757
495
|
styleId,
|
|
758
|
-
options:
|
|
496
|
+
options: optionsArray,
|
|
759
497
|
};
|
|
760
498
|
});
|
|
761
499
|
};
|
|
762
500
|
exports.createProductOptionsStepFromData = createProductOptionsStepFromData;
|
|
763
|
-
const createProductOptionsForPartyStyleId = (partyStyle, existingProduct
|
|
501
|
+
const createProductOptionsForPartyStyleId = (partyStyle, existingProduct) => {
|
|
764
502
|
const options = {
|
|
765
503
|
metals: new Set(),
|
|
766
504
|
metalColors: new Set(),
|
|
767
505
|
diamondQualities: new Set(),
|
|
768
506
|
sizes: new Set(),
|
|
769
|
-
shapes: new Set(),
|
|
770
|
-
carat: new Set(),
|
|
771
507
|
};
|
|
772
508
|
// Size
|
|
773
|
-
if (partyStyle.ItemSize)
|
|
774
|
-
|
|
775
|
-
String(partyStyle.ItemSize);
|
|
776
|
-
options.sizes.add(sizeTitle);
|
|
777
|
-
}
|
|
509
|
+
if (partyStyle.ItemSize)
|
|
510
|
+
options.sizes.add(String(partyStyle.ItemSize));
|
|
778
511
|
// Track if this style has each option type
|
|
779
512
|
let hasMetalOption = false;
|
|
780
513
|
let hasDiamondOption = false;
|
|
781
|
-
let hasShapeOption = false;
|
|
782
|
-
// Detect solitaire for this party style
|
|
783
|
-
const isSolitaireStyle = partyStyle.StockType === "LG SOLITAIRE" ||
|
|
784
|
-
partyStyle.StockType === "SOLITAIRE";
|
|
785
514
|
partyStyle.PartyStyleMstDetail.forEach((detail) => {
|
|
786
515
|
if (detail.RawType === "Metal" && detail.IsBase) {
|
|
787
516
|
hasMetalOption = true;
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
if (
|
|
793
|
-
options.metalColors.add(
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
else if (detail.ToneCode === "RW")
|
|
807
|
-
options.metalColors.add("ROSE/WHITE");
|
|
808
|
-
else if (detail.ToneCode === "BU")
|
|
809
|
-
options.metalColors.add("BLUE");
|
|
810
|
-
else if (detail.ToneCode === "BL")
|
|
811
|
-
options.metalColors.add("BLACK");
|
|
812
|
-
}
|
|
517
|
+
options.metals.add(`${detail.QlyCode}KT ${detail.RawCode}`);
|
|
518
|
+
// Map ToneCode to color name
|
|
519
|
+
if (detail.ToneCode === "R")
|
|
520
|
+
options.metalColors.add("Rose");
|
|
521
|
+
else if (detail.ToneCode === "Y")
|
|
522
|
+
options.metalColors.add("Yellow");
|
|
523
|
+
else if (detail.ToneCode === "W")
|
|
524
|
+
options.metalColors.add("White");
|
|
525
|
+
else if (detail.ToneCode === "YRW")
|
|
526
|
+
options.metalColors.add("YELLOW/ROSE/WHITE");
|
|
527
|
+
else if (detail.ToneCode === "YW")
|
|
528
|
+
options.metalColors.add("YELLOW/WHITE");
|
|
529
|
+
else if (detail.ToneCode === "RW")
|
|
530
|
+
options.metalColors.add("ROSE/WHITE");
|
|
531
|
+
else if (detail.ToneCode === "BU")
|
|
532
|
+
options.metalColors.add("BLUE");
|
|
533
|
+
else if (detail.ToneCode === "BL")
|
|
534
|
+
options.metalColors.add("BLACK");
|
|
813
535
|
}
|
|
814
|
-
if (detail.RawType === "Diamond" &&
|
|
815
|
-
detail.ToneCode &&
|
|
816
|
-
detail.QlyCode &&
|
|
817
|
-
detail.IsBase) {
|
|
536
|
+
if (detail.RawType === "Diamond" && detail.ToneCode && detail.QlyCode && detail.IsBase) {
|
|
818
537
|
hasDiamondOption = true;
|
|
819
|
-
|
|
820
|
-
const qualityTitle = masterMaps.qualityMasterMap.get(detail.QlyCode) || detail.QlyCode;
|
|
821
|
-
options.diamondQualities.add(`${toneTitle} ${qualityTitle}`);
|
|
822
|
-
}
|
|
823
|
-
// Handle solitaire shapes and carat
|
|
824
|
-
if (isSolitaireStyle &&
|
|
825
|
-
detail.RawType === "Diamond" &&
|
|
826
|
-
detail.RawCode === "LGS" &&
|
|
827
|
-
detail.IsBase) {
|
|
828
|
-
hasShapeOption = true;
|
|
829
|
-
const shapeTitle = masterMaps.shapeMasterMap?.get(detail.ShapeCode) || detail.ShapeCode;
|
|
830
|
-
if (shapeTitle) {
|
|
831
|
-
options.shapes.add(shapeTitle);
|
|
832
|
-
}
|
|
833
|
-
options.carat.add(String(detail.Weight || 0));
|
|
538
|
+
options.diamondQualities.add(`${detail.ToneCode}/${detail.QlyCode}`);
|
|
834
539
|
}
|
|
835
540
|
});
|
|
836
541
|
// Prepare result object with only options that exist
|
|
@@ -839,42 +544,24 @@ const createProductOptionsForPartyStyleId = (partyStyle, existingProduct, master
|
|
|
839
544
|
if (hasMetalOption &&
|
|
840
545
|
options.metals.size > 0 &&
|
|
841
546
|
existingProduct.options.find((option) => option.title === "Metal")) {
|
|
842
|
-
result["Metal"] = Array.from(options.metals)
|
|
547
|
+
result["Metal"] = Array.from(options.metals)[0];
|
|
843
548
|
}
|
|
844
549
|
if (hasMetalOption &&
|
|
845
550
|
options.metalColors.size > 0 &&
|
|
846
551
|
existingProduct.options.find((option) => option.title === "Metal Color")) {
|
|
847
|
-
result["Metal Color"] = Array.from(options.metalColors)
|
|
552
|
+
result["Metal Color"] = Array.from(options.metalColors)[0];
|
|
848
553
|
}
|
|
849
554
|
if (hasDiamondOption &&
|
|
850
555
|
options.diamondQualities.size > 0 &&
|
|
851
556
|
existingProduct.options.find((option) => option.title === "Diamond Quality")) {
|
|
852
|
-
result["Diamond Quality"] = Array.from(options.diamondQualities)
|
|
557
|
+
result["Diamond Quality"] = Array.from(options.diamondQualities)[0];
|
|
853
558
|
}
|
|
854
559
|
if (partyStyle.ItemSize &&
|
|
855
560
|
options.sizes.size > 0 &&
|
|
856
561
|
existingProduct.options.find((option) => option.title === "Size")) {
|
|
857
|
-
result["Size"] = Array.from(options.sizes)
|
|
858
|
-
}
|
|
859
|
-
if (isSolitaireStyle &&
|
|
860
|
-
hasShapeOption &&
|
|
861
|
-
options.shapes.size > 0 &&
|
|
862
|
-
existingProduct.options.find((option) => option.title === "Shape")) {
|
|
863
|
-
result["Shape"] = Array.from(options.shapes).sort((a, b) => a.localeCompare(b))[0];
|
|
864
|
-
}
|
|
865
|
-
// Add Carat only if solitaire and product has Carat option
|
|
866
|
-
if (isSolitaireStyle &&
|
|
867
|
-
options.carat.size > 0 &&
|
|
868
|
-
existingProduct.options.find((option) => option.title === "Carat")) {
|
|
869
|
-
result["Carat"] = Array.from(options.carat).sort((a, b) => a.localeCompare(b))[0];
|
|
870
|
-
}
|
|
871
|
-
// Sort result keys alphabetically for consistent ordering
|
|
872
|
-
const sortedResult = {};
|
|
873
|
-
const sortedKeys = Object.keys(result).sort((a, b) => a.localeCompare(b));
|
|
874
|
-
for (const key of sortedKeys) {
|
|
875
|
-
sortedResult[key] = result[key];
|
|
562
|
+
result["Size"] = Array.from(options.sizes)[0];
|
|
876
563
|
}
|
|
877
|
-
return
|
|
564
|
+
return result;
|
|
878
565
|
};
|
|
879
566
|
exports.createProductOptionsForPartyStyleId = createProductOptionsForPartyStyleId;
|
|
880
567
|
const mergeProductOptions = (currentOptions, filteredOptions) => {
|
|
@@ -896,15 +583,14 @@ const mergeProductOptions = (currentOptions, filteredOptions) => {
|
|
|
896
583
|
filteredOpt.values.forEach((value) => existingValues.add(value));
|
|
897
584
|
allOptions.set(filteredOpt.title, existingValues);
|
|
898
585
|
}
|
|
899
|
-
// Convert back to the required format
|
|
586
|
+
// Convert back to the required format
|
|
900
587
|
for (const [title, values] of allOptions.entries()) {
|
|
901
588
|
mergedOptions.push({
|
|
902
589
|
title,
|
|
903
|
-
values: Array.from(values)
|
|
590
|
+
values: Array.from(values),
|
|
904
591
|
});
|
|
905
592
|
}
|
|
906
|
-
|
|
907
|
-
return mergedOptions.sort((a, b) => a.title.localeCompare(b.title));
|
|
593
|
+
return mergedOptions;
|
|
908
594
|
};
|
|
909
595
|
exports.mergeProductOptions = mergeProductOptions;
|
|
910
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hlbHBlcnMvcHJvZHVjdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsNENBQStDO0FBRS9DOzs7O0dBSUc7QUFDSSxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLFlBQTRELEVBQzNCLEVBQUU7SUFDbkMsTUFBTSxjQUFjLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FDdEMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUN6QyxDQUFDO0lBRUYsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLElBQUksSUFBSSxHQUFHLFFBQVEsQ0FBQyxDQUFDLG9CQUFvQjtJQUV6QyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBQ25CLElBQUksY0FBYyxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxnQ0FBZ0M7WUFDaEMsVUFBVSxJQUFJLGNBQWMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksR0FBRyxZQUFZLENBQUM7UUFDdEIsQ0FBQzthQUFNLElBQUksY0FBYyxDQUFDLFdBQVcsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMvQyxxQ0FBcUM7WUFDckMsVUFBVSxJQUFJLGNBQWMsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksR0FBRyxRQUFRLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUNyQyxDQUFDLENBQUM7QUF2QlcsUUFBQSx3QkFBd0IsNEJBdUJuQztBQUVLLE1BQU0sV0FBVyxHQUFHLENBQUMsT0FBaUIsRUFBVSxFQUFFO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLE9BQU87U0FDcEIsTUFBTSxDQUFDLE9BQU8sQ0FB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
|
|
596
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL2hlbHBlcnMvcHJvZHVjdC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZUEsNENBQStDO0FBRXhDLE1BQU0sV0FBVyxHQUFHLENBQUMsT0FBaUIsRUFBVSxFQUFFO0lBQ3ZELE9BQU8sT0FBTztTQUNYLE1BQU0sQ0FBQyxPQUFPLENBQUM7U0FDZixJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ1QsV0FBVyxFQUFFO1NBQ2IsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyw4QkFBOEI7U0FDbkQsT0FBTyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUM7U0FDMUIsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFSVyxRQUFBLFdBQVcsZUFRdEI7QUFFSyxNQUFNLDZCQUE2QixHQUFHLENBQzNDLFlBQTRELEVBQ3pDLEVBQUU7SUFDckIsTUFBTSxjQUFjLEdBQUcsWUFBWTtTQUNoQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELE1BQU0sZ0JBQWdCLEdBQUcsWUFBWTtTQUNsQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDO1NBQ2hELE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRXZELE1BQU0sY0FBYyxHQUFH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
|