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-12-18 01:57:46 +00:00
|
|
|
|
|
|
|
priceAfterDiscounts*=findDiscountFactor(cart.appliedLoyaltyDiscount)
|
|
|
|
priceAfterDiscounts*=findDiscountFactor(cart.appliedCartPurchasesDiscount)
|
|
|
|
cart.services.forEach(s => {
|
|
|
|
if (s.serviceKey === tariff.privileges[0].serviceKey) {
|
2023-07-11 01:33:36 +00:00
|
|
|
|
2023-12-18 01:57:46 +00:00
|
|
|
priceAfterDiscounts *=findDiscountFactor(s.appliedServiceDiscount)
|
|
|
|
// s.tariffs.forEach(t => {
|
|
|
|
// if (t.id === tariff._id) {
|
|
|
|
// const apl = t.privileges.reduce((a,n) => a+n.price*findDiscountFactor(n.appliedPrivilegeDiscount),0)
|
|
|
|
// const sum = t.privileges.reduce((a,n)=>a+n.price,0)
|
|
|
|
// console.log(sum,apl)
|
|
|
|
// if (sum-apl)
|
|
|
|
// priceAfterDiscounts*= (sum-apl)/sum
|
|
|
|
// }
|
|
|
|
// })
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
// 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
|
|
|
}
|