front-hub/src/utils/calcTariffPrices.ts

26 lines
797 B
TypeScript
Raw Normal View History

2023-11-05 23:33:40 +00:00
import { Discount, Tariff, findDiscountFactor } from "@frontend/kitui"
import { calcCart } from "./calcCart/calcCart"
export function calcIndividualTariffPrices(
2023-11-05 23:33:40 +00:00
tariff: Tariff,
discounts: Discount[],
purchasesAmount: number,
currentTariffs: Tariff[],
isUserNko?: boolean,
): {
2023-09-16 12:24:19 +00:00
priceBeforeDiscounts: number;
priceAfterDiscounts: number;
2023-06-16 20:09:56 +00:00
} {
2023-11-05 23:33:40 +00:00
const priceBeforeDiscounts =
tariff.price || tariff.privileges.reduce((sum, privilege) => sum + privilege.amount * privilege.price, 0)
let priceAfterDiscounts = priceBeforeDiscounts
2023-06-16 20:09:56 +00:00
2023-11-05 23:33:40 +00:00
const cart = calcCart([...currentTariffs, tariff], discounts, purchasesAmount, isUserNko)
2023-11-05 23:33:40 +00:00
cart.allAppliedDiscounts.forEach((discount) => {
priceAfterDiscounts *= findDiscountFactor(discount)
})
2023-11-05 23:33:40 +00:00
return { priceBeforeDiscounts, priceAfterDiscounts }
2023-06-16 20:09:56 +00:00
}