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)
|
2023-12-20 21:56:52 +00:00
|
|
|
let priceAfterDiscounts = 0
|
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-12-20 21:56:52 +00:00
|
|
|
console.log('AAAAAAAAAAAAAAAAAAaa', cart)
|
|
|
|
cart.services.forEach(s => {
|
|
|
|
if (s.serviceKey === tariff.privileges[0].serviceKey) {
|
|
|
|
|
|
|
|
s.tariffs.forEach(t => {
|
|
|
|
if (t.id === tariff._id) {
|
|
|
|
t.privileges.forEach(p => priceAfterDiscounts+=p.price*findDiscountFactor(p.appliedPrivilegeDiscount))
|
|
|
|
}
|
|
|
|
})
|
|
|
|
priceAfterDiscounts *=findDiscountFactor(s.appliedServiceDiscount)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
priceAfterDiscounts*=findDiscountFactor(cart.appliedLoyaltyDiscount)
|
|
|
|
priceAfterDiscounts*=findDiscountFactor(cart.appliedCartPurchasesDiscount)
|
2023-12-18 01:57:46 +00:00
|
|
|
|
|
|
|
// cart.allAppliedDiscounts.forEach((discount) => {
|
|
|
|
// priceAfterDiscounts *= findDiscountFactor(discount)
|
|
|
|
// })
|
2023-12-20 21:56:52 +00:00
|
|
|
//priceAfterDiscounts = cart.priceAfterDiscounts
|
2023-11-05 23:33:40 +00:00
|
|
|
return { priceBeforeDiscounts, priceAfterDiscounts }
|
2023-06-16 20:09:56 +00:00
|
|
|
}
|