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 { produce } from "immer"
|
||||||
import { create } from "zustand"
|
import { create } from "zustand"
|
||||||
import { devtools, persist } from "zustand/middleware"
|
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 { findNkoDiscount, calcCart } from "@root/utils/calcCart/calcCart"
|
||||||
import { useCartStore } from "./cart"
|
import { useCartStore } from "./cart"
|
||||||
|
|
||||||
@ -24,6 +24,28 @@ const initialState: CustomTariffsStore = {
|
|||||||
summaryPriceAfterDiscountsMap: {},
|
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(
|
function findServiceDiscount(
|
||||||
serviceKey: string,
|
serviceKey: string,
|
||||||
currentPrice: number,
|
currentPrice: number,
|
||||||
@ -168,16 +190,19 @@ export const setCustomTariffsUserValue = (
|
|||||||
} else {
|
} else {
|
||||||
state.privilegeByService[serviceKey].forEach(privilege => {
|
state.privilegeByService[serviceKey].forEach(privilege => {
|
||||||
const amount = state.userValuesMap[serviceKey]?.[privilege._id] ?? 0
|
const amount = state.userValuesMap[serviceKey]?.[privilege._id] ?? 0
|
||||||
|
console.log(amount, serviceKey, privilege._id)
|
||||||
priceWithoutDiscounts += privilege.price * amount
|
priceWithoutDiscounts += privilege.price * amount
|
||||||
|
|
||||||
const discount = cart.allAppliedDiscounts?.find(e => e.Condition.Product === privilege.privilegeId)
|
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)
|
//const discount = findPrivilegeDiscount(privilege.privilegeId, amount, discounts)
|
||||||
priceAfterDiscounts += privilege.price * amount * findDiscountFactor(discount)
|
priceAfterDiscounts += privilege.price * amount * findDiscountFactor(discount)
|
||||||
})
|
})
|
||||||
|
console.log(priceAfterDiscounts)
|
||||||
|
|
||||||
const serviceDiscount = findServiceDiscount(serviceKey, priceAfterDiscounts, discounts)
|
const serviceDiscount = cart.allAppliedDiscounts?.find(e => e.Condition.Group === serviceKey)
|
||||||
console.log(serviceDiscount, serviceKey, priceAfterDiscounts, discounts)
|
|
||||||
priceAfterDiscounts *= findDiscountFactor(serviceDiscount)
|
priceAfterDiscounts *= findDiscountFactor(serviceDiscount)
|
||||||
|
console.log(serviceDiscount, serviceKey, priceAfterDiscounts, discounts)
|
||||||
|
|
||||||
const cartDiscount = findCartDiscount(currentCartTotal+priceAfterDiscounts, discounts)
|
const cartDiscount = findCartDiscount(currentCartTotal+priceAfterDiscounts, discounts)
|
||||||
priceAfterDiscounts *= findDiscountFactor(cartDiscount)
|
priceAfterDiscounts *= findDiscountFactor(cartDiscount)
|
||||||
|
Loading…
Reference in New Issue
Block a user