2023-11-05 23:33:40 +00:00
|
|
|
import { Discount, Tariff, findDiscountFactor } from "@frontend/kitui"
|
|
|
|
import { calcCart } from "./calcCart/calcCart"
|
2023-07-14 13:41:31 +00:00
|
|
|
|
|
|
|
export function calcIndividualTariffPrices(
|
2023-11-05 23:33:40 +00:00
|
|
|
tariff: Tariff,
|
|
|
|
discounts: Discount[],
|
|
|
|
purchasesAmount: number,
|
|
|
|
currentTariffs: Tariff[],
|
|
|
|
isUserNko?: boolean,
|
2023-07-14 13:41:31 +00:00
|
|
|
): {
|
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-07-11 01:33:36 +00:00
|
|
|
|
2023-11-05 23:33:40 +00:00
|
|
|
cart.allAppliedDiscounts.forEach((discount) => {
|
|
|
|
priceAfterDiscounts *= findDiscountFactor(discount)
|
|
|
|
})
|
2023-07-11 01:33:36 +00:00
|
|
|
|
2023-11-05 23:33:40 +00:00
|
|
|
return { priceBeforeDiscounts, priceAfterDiscounts }
|
2023-06-16 20:09:56 +00:00
|
|
|
}
|