@8medusa/utils 2.10.14 → 2.10.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -38,19 +38,38 @@ function getLineItemTotals(item, context) {
|
|
|
38
38
|
const isTaxInclusive = item.is_tax_inclusive ?? context.includeTax;
|
|
39
39
|
const sumTax = math_1.MathBN.sum(...((item.tax_lines ?? []).map((taxLine) => taxLine.rate) ?? []));
|
|
40
40
|
const sumTaxRate = math_1.MathBN.div(sumTax, 100);
|
|
41
|
-
const totalItemPrice = math_1.MathBN.mult(item.unit_price, item.quantity);
|
|
42
41
|
/*
|
|
42
|
+
Calculate unit subtotal first
|
|
43
43
|
If the price is inclusive of tax, we need to remove the taxed amount from the subtotal
|
|
44
44
|
Original Price = Total Price / (1 + Tax Rate)
|
|
45
45
|
*/
|
|
46
|
-
const
|
|
47
|
-
? math_1.MathBN.div(
|
|
48
|
-
:
|
|
46
|
+
const unitSubtotal = isTaxInclusive
|
|
47
|
+
? math_1.MathBN.div(item.unit_price, math_1.MathBN.add(1, sumTaxRate))
|
|
48
|
+
: item.unit_price;
|
|
49
49
|
const { adjustmentsTotal: discountsTotal, adjustmentsSubtotal: discountsSubtotal, adjustmentsTaxTotal: discountTaxTotal, } = (0, adjustment_1.calculateAdjustmentTotal)({
|
|
50
50
|
adjustments: item.adjustments || [],
|
|
51
51
|
includesTax: isTaxInclusive,
|
|
52
52
|
taxRate: sumTaxRate,
|
|
53
53
|
});
|
|
54
|
+
const unitDiscount = math_1.MathBN.eq(item.quantity, 0)
|
|
55
|
+
? 0
|
|
56
|
+
: math_1.MathBN.div(discountsSubtotal, item.quantity);
|
|
57
|
+
const unitPriceAfterDiscount = math_1.MathBN.sub(unitSubtotal, unitDiscount);
|
|
58
|
+
const unitTax = (0, tax_1.calculateTaxTotal)({
|
|
59
|
+
taxLines: item.tax_lines || [],
|
|
60
|
+
taxableAmount: unitPriceAfterDiscount,
|
|
61
|
+
setTotalField: "total",
|
|
62
|
+
});
|
|
63
|
+
// Step 4: Add tax to get gross unit price and round per item
|
|
64
|
+
const unitTotalBeforeRounding = math_1.MathBN.add(unitPriceAfterDiscount, unitTax);
|
|
65
|
+
const unitTotal = math_1.MathBN.round(unitTotalBeforeRounding, 2);
|
|
66
|
+
// Step 5: Multiply rounded unit total by quantity
|
|
67
|
+
const subtotal = math_1.MathBN.mult(unitSubtotal, item.quantity);
|
|
68
|
+
const total = math_1.MathBN.mult(unitTotal, item.quantity);
|
|
69
|
+
// Calculate original total using the same EU-standard method as total
|
|
70
|
+
const unitOriginalTotal = math_1.MathBN.round(unitTotalBeforeRounding, 2);
|
|
71
|
+
const originalTotal = math_1.MathBN.mult(unitOriginalTotal, item.quantity);
|
|
72
|
+
// Calculate tax totals for reporting
|
|
54
73
|
const taxTotal = (0, tax_1.calculateTaxTotal)({
|
|
55
74
|
taxLines: item.tax_lines || [],
|
|
56
75
|
taxableAmount: math_1.MathBN.sub(subtotal, discountsSubtotal),
|
|
@@ -65,8 +84,8 @@ function getLineItemTotals(item, context) {
|
|
|
65
84
|
quantity: item.quantity,
|
|
66
85
|
unit_price: item.unit_price,
|
|
67
86
|
subtotal: new big_number_1.BigNumber(subtotal),
|
|
68
|
-
total: new big_number_1.BigNumber(
|
|
69
|
-
original_total: new big_number_1.BigNumber(
|
|
87
|
+
total: new big_number_1.BigNumber(total),
|
|
88
|
+
original_total: new big_number_1.BigNumber(originalTotal),
|
|
70
89
|
discount_total: new big_number_1.BigNumber(discountsTotal),
|
|
71
90
|
discount_subtotal: new big_number_1.BigNumber(discountsSubtotal),
|
|
72
91
|
discount_tax_total: new big_number_1.BigNumber(discountTaxTotal),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/totals/line-item/index.ts"],"names":[],"mappings":";;AAyDA,gDAgBC;AAxED,yCAA6D;AAC7D,8CAAwD;AACxD,8CAAyC;AACzC,kCAAgC;AAChC,gCAA0C;AAoD1C,SAAgB,kBAAkB,CAChC,KAA0B,EAC1B,OAAkC;IAElC,MAAM,WAAW,GAAG,EAAE,CAAA;IAEtB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,KAAK,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE;YACtD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,gBAAgB;YACvD,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;SACjD,CAAC,CAAA;QACF,KAAK,EAAE,CAAA;IACT,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,kBAAkB,CACzB,IAAuB,EACvB,cAA8B,EAC9B,MAA0B,EAC1B,OAAkC;IAElC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAO,CAAA;IAC/B,MAAM,qBAAqB,GAAG,aAAM,CAAC,GAAG,CACtC,UAAU,CAAC,yBAAyB,IAAI,CAAC,EACzC,UAAU,CAAC,wBAAwB,IAAI,CAAC,EACxC,UAAU,CAAC,yBAAyB,IAAI,CAAC,CAC1C,CAAA;IACD,MAAM,eAAe,GAAG,aAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,CAAA;IACxE,MAAM,eAAe,GAAG,aAAM,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEjE,MAAM,kBAAkB,GAAG,aAAM,CAAC,GAAG,CACnC,aAAM,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,UAAU,CAAC,EAC7C,aAAM,CAAC,IAAI,CAAC,eAAe,EAAE,eAAe,CAAC,CAC9C,CAAA;IAED,MAAM,QAAQ,GAAG,IAAA,uBAAiB,EAAC;QACjC,QAAQ,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE;QAC9B,aAAa,EAAE,kBAAkB;KAClC,CAAC,CAAA;IACF,MAAM,eAAe,GAAG,aAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;IAEhE,MAAM,CAAC,yBAAyB,GAAG,IAAI,sBAAS,CAC9C,aAAM,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,aAAM,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CACjD,CAAA;IACD,MAAM,CAAC,gBAAgB,GAAG,IAAI,sBAAS,CAAC,eAAe,CAAC,CAAA;AAC1D,CAAC;AAED,SAAS,iBAAiB,CACxB,IAAuB,EACvB,OAAkC;IAElC,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,IAAI,OAAO,CAAC,UAAU,CAAA;IAClE,MAAM,MAAM,GAAG,aAAM,CAAC,GAAG,CACvB,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CACjE,CAAA;IAED,MAAM,UAAU,GAAG,aAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/totals/line-item/index.ts"],"names":[],"mappings":"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"}
|