front-hub/src/utils/calcTariffPrices.ts
2023-09-16 15:24:19 +03:00

25 lines
783 B
TypeScript

import { Discount, Tariff, findDiscountFactor } from "@frontend/kitui";
import { calcCart } from "./calcCart/calcCart";
export function calcIndividualTariffPrices(
tariff: Tariff,
discounts: Discount[],
purchasesAmount: number,
currentTariffs: Tariff[]
): {
priceBeforeDiscounts: number;
priceAfterDiscounts: number;
} {
const priceBeforeDiscounts =
tariff.price || tariff.privileges.reduce((sum, privilege) => sum + privilege.amount * privilege.price, 0);
let priceAfterDiscounts = priceBeforeDiscounts;
const cart = calcCart([...currentTariffs, tariff], discounts, purchasesAmount);
cart.allAppliedDiscounts.forEach((discount) => {
priceAfterDiscounts *= findDiscountFactor(discount);
});
return { priceBeforeDiscounts, priceAfterDiscounts };
}