front-hub/src/utils/calcTariffPrices.ts

44 lines
1.5 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)
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
2023-12-20 17:33:57 +00:00
// priceAfterDiscounts*=findDiscountFactor(cart.appliedLoyaltyDiscount)
// priceAfterDiscounts*=findDiscountFactor(cart.appliedCartPurchasesDiscount)
// cart.services.forEach(s => {
// if (s.serviceKey === tariff.privileges[0].serviceKey) {
//
// priceAfterDiscounts *=findDiscountFactor(s.appliedServiceDiscount)
2023-12-18 01:57:46 +00:00
// 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
// }
// })
2023-12-20 17:33:57 +00:00
// }
// })
2023-12-18 01:57:46 +00:00
// cart.allAppliedDiscounts.forEach((discount) => {
// priceAfterDiscounts *= findDiscountFactor(discount)
// })
2023-12-20 17:33:57 +00:00
priceAfterDiscounts = cart.priceAfterDiscounts
2023-11-05 23:33:40 +00:00
return { priceBeforeDiscounts, priceAfterDiscounts }
2023-06-16 20:09:56 +00:00
}