fix apply discounts functions

This commit is contained in:
nflnkr 2023-07-22 17:02:07 +03:00
parent 8433c7adcd
commit d5f35ed623
4 changed files with 24 additions and 4 deletions

@ -6,7 +6,10 @@ export function applyCartDiscount(
discounts: Discount[],
) {
const cartDiscount = findCartDiscount(cartData.priceAfterDiscounts, discounts);
if (cartDiscount) cartData.priceAfterDiscounts *= cartDiscount.factor;
if (cartDiscount.discount) {
cartData.priceAfterDiscounts *= cartDiscount.factor;
cartData.envolvedDiscounts.push(cartDiscount.discount);
}
}
export function findCartDiscount(

@ -7,7 +7,10 @@ export function applyLoyaltyDiscount(
purchasesAmount: number,
) {
const loyalDiscount = findLoyaltyDiscount(purchasesAmount, discounts);
if (loyalDiscount) cartData.priceAfterDiscounts *= loyalDiscount.factor;
if (loyalDiscount.discount) {
cartData.priceAfterDiscounts *= loyalDiscount.factor;
cartData.envolvedDiscounts.push(loyalDiscount.discount);
}
}
export function findLoyaltyDiscount(

@ -8,8 +8,15 @@ export function applyPrivilegeDiscounts(
cartData.services.forEach(service => {
service.privileges.forEach(privilege => {
const privilegeDiscount = findPrivilegeDiscount(privilege.privilegeId, privilege.price, discounts);
if (privilegeDiscount) privilege.price *= privilegeDiscount.factor;
if (privilegeDiscount.discount) {
privilege.price *= privilegeDiscount.factor;
cartData.envolvedDiscounts.push(privilegeDiscount.discount);
}
});
cartData.priceAfterDiscounts -= service.price;
service.price = service.privileges.reduce((sum, privilege) => privilege.price + sum, 0);
cartData.priceAfterDiscounts += service.price;
});
}

@ -8,8 +8,15 @@ export function applyServiceDiscounts(
cartData.services.forEach(service => {
service.privileges.forEach(privilege => {
const privilegeDiscount = findServiceDiscount(privilege.serviceKey, privilege.price, discounts);
if (privilegeDiscount) privilege.price *= privilegeDiscount.factor;
if (privilegeDiscount.discount) {
privilege.price *= privilegeDiscount.factor;
cartData.envolvedDiscounts.push(privilegeDiscount.discount);
}
});
cartData.priceAfterDiscounts -= service.price;
service.price = service.privileges.reduce((sum, privilege) => privilege.price + sum, 0);
cartData.priceAfterDiscounts += service.price;
});
}