front-hub/src/utils/calcTariffPrices.ts

41 lines
1.4 KiB
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)
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) {
2023-12-20 23:06:04 +00:00
let processed = false
2023-12-20 21:56:52 +00:00
s.tariffs.forEach(t => {
2023-12-20 23:06:04 +00:00
if (t.id === tariff._id && !processed) {
processed = true
2023-12-20 21:56:52 +00:00
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
}