fix(types,utils,promotion): Move from total to original_total to resolve edge case for adjustments calculation (#13106)
* Move from total to original_total to resolve edge case in adjustment calculation * Added changeset * Added test case for correction --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
This commit is contained in:
@@ -53,8 +53,8 @@ function getLineItemSubtotal(lineItem) {
|
||||
return MathBN.div(lineItem.subtotal, lineItem.quantity)
|
||||
}
|
||||
|
||||
function getLineItemTotal(lineItem) {
|
||||
return MathBN.div(lineItem.total, lineItem.quantity)
|
||||
function getLineItemOriginalTotal(lineItem) {
|
||||
return MathBN.div(lineItem.original_total, lineItem.quantity)
|
||||
}
|
||||
|
||||
export function calculateAdjustmentAmountFromPromotion(
|
||||
@@ -95,7 +95,7 @@ export function calculateAdjustmentAmountFromPromotion(
|
||||
|
||||
const lineItemAmount = MathBN.mult(
|
||||
promotion.is_tax_inclusive
|
||||
? getLineItemTotal(lineItem)
|
||||
? getLineItemOriginalTotal(lineItem)
|
||||
: getLineItemSubtotal(lineItem),
|
||||
quantity
|
||||
)
|
||||
@@ -134,11 +134,11 @@ export function calculateAdjustmentAmountFromPromotion(
|
||||
*/
|
||||
|
||||
const remainingItemAmount = MathBN.sub(
|
||||
promotion.is_tax_inclusive ? lineItem.total : lineItem.subtotal,
|
||||
promotion.is_tax_inclusive ? lineItem.original_total : lineItem.subtotal,
|
||||
promotion.applied_value
|
||||
)
|
||||
const itemAmount = MathBN.div(
|
||||
promotion.is_tax_inclusive ? lineItem.total : lineItem.subtotal,
|
||||
promotion.is_tax_inclusive ? lineItem.original_total : lineItem.subtotal,
|
||||
lineItem.quantity
|
||||
)
|
||||
const maximumPromotionAmount = MathBN.mult(
|
||||
|
||||
Reference in New Issue
Block a user