2024-03-19 15:30:11 +00:00
|
|
|
import { Discount } from "../../model";
|
2023-07-13 13:45:38 +00:00
|
|
|
|
|
|
|
|
|
|
|
export function findCartDiscount(
|
|
|
|
cartPurchasesAmount: number,
|
|
|
|
discounts: Discount[],
|
2023-08-12 16:17:29 +00:00
|
|
|
): Discount | null {
|
2023-07-13 13:45:38 +00:00
|
|
|
const applicableDiscounts = discounts.filter(discount => {
|
|
|
|
return (
|
|
|
|
discount.Layer === 3 &&
|
2024-03-19 15:30:11 +00:00
|
|
|
cartPurchasesAmount >= Number(discount.Condition.CartPurchasesAmount)
|
2023-07-13 13:45:38 +00:00
|
|
|
);
|
|
|
|
});
|
|
|
|
|
2023-08-12 16:17:29 +00:00
|
|
|
if (!applicableDiscounts.length) return null;
|
2023-07-13 13:45:38 +00:00
|
|
|
|
|
|
|
const maxValueDiscount = applicableDiscounts.reduce((prev, current) => {
|
2024-03-19 15:30:11 +00:00
|
|
|
return Number(current.Condition.CartPurchasesAmount) > Number(prev.Condition.CartPurchasesAmount) ? current : prev;
|
2023-07-13 13:45:38 +00:00
|
|
|
});
|
|
|
|
|
2023-08-12 16:17:29 +00:00
|
|
|
return maxValueDiscount;
|
2023-07-13 13:45:38 +00:00
|
|
|
}
|