front-hub/src/utils/calcTariffPrices.ts

25 lines
808 B
TypeScript
Raw Normal View History

2023-08-11 09:38:05 +00:00
import { Discount, Tariff, findDiscountFactor } from "@frontend/kitui";
import { calcCart } from "./calcCart/calcCart";
2023-07-25 22:31:04 +00:00
export function calcIndividualTariffPrices(
tariff: Tariff,
discounts: Discount[],
purchasesAmount: number,
2023-08-11 09:38:05 +00:00
currentTariffs: Tariff[],
): {
2023-08-11 09:38:05 +00:00
priceBeforeDiscounts: number;
priceAfterDiscounts: number;
2023-06-16 20:09:56 +00:00
} {
2023-08-11 09:38:05 +00:00
const priceBeforeDiscounts = tariff.price || tariff.privilegies.reduce((sum, privilege) => sum + privilege.amount * privilege.price, 0);
let priceAfterDiscounts = priceBeforeDiscounts;
2023-06-16 20:09:56 +00:00
2023-08-11 09:38:05 +00:00
const cart = calcCart([...currentTariffs, tariff], discounts, purchasesAmount);
2023-08-11 09:38:05 +00:00
cart.allAppliedDiscounts.forEach(discount => {
priceAfterDiscounts *= findDiscountFactor(discount);
});
2023-08-11 09:38:05 +00:00
return { priceBeforeDiscounts, priceAfterDiscounts };
2023-06-16 20:09:56 +00:00
}