fix: cudtom tariffs wasn't use calcCart discounts
This commit is contained in:
parent
d577453e5e
commit
13aa89591d
@ -5,7 +5,7 @@ import { ServiceKeyToPrivilegesMap } from "@root/model/privilege"
|
||||
import { produce } from "immer"
|
||||
import { create } from "zustand"
|
||||
import { devtools, persist } from "zustand/middleware"
|
||||
import { Discount, PrivilegeWithAmount/* , findCartDiscount */, findDiscountFactor, findLoyaltyDiscount/* , findPrivilegeDiscount *//* , findServiceDiscount */} from "@frontend/kitui"
|
||||
import { Discount, PrivilegeWithAmount/* , findCartDiscount */, findDiscountFactor/* , findLoyaltyDiscount *//* , findPrivilegeDiscount *//* , findServiceDiscount */} from "@frontend/kitui"
|
||||
import { findNkoDiscount, calcCart } from "@root/utils/calcCart/calcCart"
|
||||
import { useCartStore } from "./cart"
|
||||
|
||||
@ -24,6 +24,28 @@ const initialState: CustomTariffsStore = {
|
||||
summaryPriceAfterDiscountsMap: {},
|
||||
}
|
||||
|
||||
function findLoyaltyDiscount(
|
||||
purchasesAmount: number,
|
||||
discounts: Discount[],
|
||||
): Discount | null {
|
||||
const applicableDiscounts = discounts.filter(discount => {
|
||||
return (
|
||||
discount.Layer === 4 &&
|
||||
discount.Condition.UserType !== "nko" &&
|
||||
purchasesAmount >= Number(discount.Condition.PurchasesAmount)
|
||||
);
|
||||
});
|
||||
|
||||
if (!applicableDiscounts.length) return null;
|
||||
|
||||
const maxValueDiscount = applicableDiscounts.reduce((prev, current) => {
|
||||
return Number(current.Condition.PurchasesAmount) > Number(prev.Condition.PurchasesAmount) ? current : prev;
|
||||
});
|
||||
|
||||
return maxValueDiscount;
|
||||
}
|
||||
|
||||
|
||||
function findServiceDiscount(
|
||||
serviceKey: string,
|
||||
currentPrice: number,
|
||||
@ -168,16 +190,19 @@ export const setCustomTariffsUserValue = (
|
||||
} else {
|
||||
state.privilegeByService[serviceKey].forEach(privilege => {
|
||||
const amount = state.userValuesMap[serviceKey]?.[privilege._id] ?? 0
|
||||
console.log(amount, serviceKey, privilege._id)
|
||||
priceWithoutDiscounts += privilege.price * amount
|
||||
|
||||
const discount = cart.allAppliedDiscounts?.find(e => e.Condition.Product === privilege.privilegeId)
|
||||
console.log(discount, privilege.price*amount, findDiscountFactor(discount))
|
||||
//const discount = findPrivilegeDiscount(privilege.privilegeId, amount, discounts)
|
||||
priceAfterDiscounts += privilege.price * amount * findDiscountFactor(discount)
|
||||
})
|
||||
console.log(priceAfterDiscounts)
|
||||
|
||||
const serviceDiscount = findServiceDiscount(serviceKey, priceAfterDiscounts, discounts)
|
||||
console.log(serviceDiscount, serviceKey, priceAfterDiscounts, discounts)
|
||||
const serviceDiscount = cart.allAppliedDiscounts?.find(e => e.Condition.Group === serviceKey)
|
||||
priceAfterDiscounts *= findDiscountFactor(serviceDiscount)
|
||||
console.log(serviceDiscount, serviceKey, priceAfterDiscounts, discounts)
|
||||
|
||||
const cartDiscount = findCartDiscount(currentCartTotal+priceAfterDiscounts, discounts)
|
||||
priceAfterDiscounts *= findDiscountFactor(cartDiscount)
|
||||
|
Loading…
Reference in New Issue
Block a user