add cart privilege applied discounts field
change allAppliedDiscounts cart field type to Set
This commit is contained in:
parent
761a2d7cea
commit
79adf3ca86
@ -7,6 +7,7 @@ export type PrivilegeCartData = {
|
||||
description: string;
|
||||
price: number;
|
||||
amount: number;
|
||||
appliedDiscounts: Set<Discount>;
|
||||
};
|
||||
|
||||
export type TariffCartData = {
|
||||
@ -27,5 +28,5 @@ export type CartData = {
|
||||
services: ServiceCartData[];
|
||||
priceBeforeDiscounts: number;
|
||||
priceAfterDiscounts: number;
|
||||
allAppliedDiscounts: Discount[];
|
||||
allAppliedDiscounts: Set<Discount>;
|
||||
};
|
||||
|
||||
@ -9,11 +9,10 @@ export function calcCart(tariffs: Tariff[], discounts: Discount[], purchasesAmou
|
||||
services: [],
|
||||
priceBeforeDiscounts: 0,
|
||||
priceAfterDiscounts: 0,
|
||||
allAppliedDiscounts: [],
|
||||
allAppliedDiscounts: new Set(),
|
||||
};
|
||||
const privilegeAmountById = new Map<string, number>();
|
||||
const servicePriceByKey = new Map<string, number>();
|
||||
const allAppliedDiscounts = new Set<Discount>();
|
||||
|
||||
tariffs.forEach(tariff => {
|
||||
if (tariff.privileges === undefined) return;
|
||||
@ -54,6 +53,7 @@ export function calcCart(tariffs: Tariff[], discounts: Discount[], purchasesAmou
|
||||
description: privilege.description,
|
||||
price: privilegePrice,
|
||||
amount: privilege.amount,
|
||||
appliedDiscounts: new Set(),
|
||||
};
|
||||
|
||||
privilegeAmountById.set(
|
||||
@ -76,11 +76,13 @@ export function calcCart(tariffs: Tariff[], discounts: Discount[], purchasesAmou
|
||||
|
||||
const nkoDiscount = findNkoDiscount(discounts);
|
||||
if (isUserNko && nkoDiscount) {
|
||||
cartData.allAppliedDiscounts = [nkoDiscount];
|
||||
cartData.allAppliedDiscounts.add(nkoDiscount);
|
||||
|
||||
cartData.services.forEach(service => {
|
||||
service.tariffs.forEach(tariff => {
|
||||
tariff.privileges.forEach(privilege => {
|
||||
privilege.appliedDiscounts.add(nkoDiscount);
|
||||
|
||||
const discountAmount = privilege.price * (1 - findDiscountFactor(nkoDiscount));
|
||||
|
||||
privilege.price -= discountAmount;
|
||||
@ -102,7 +104,8 @@ export function calcCart(tariffs: Tariff[], discounts: Discount[], purchasesAmou
|
||||
const discount = findPrivilegeDiscount(privilege.privilegeId, privilegeTotalAmount, discounts, userId);
|
||||
if (!discount) return;
|
||||
|
||||
allAppliedDiscounts.add(discount);
|
||||
cartData.allAppliedDiscounts.add(discount);
|
||||
privilege.appliedDiscounts.add(discount);
|
||||
|
||||
const discountAmount = privilege.price * (1 - findDiscountFactor(discount));
|
||||
|
||||
@ -128,7 +131,8 @@ export function calcCart(tariffs: Tariff[], discounts: Discount[], purchasesAmou
|
||||
const discount = findServiceDiscount(privilege.serviceKey, serviceTotalPrice, discounts, userId);
|
||||
if (!discount) return;
|
||||
|
||||
allAppliedDiscounts.add(discount);
|
||||
cartData.allAppliedDiscounts.add(discount);
|
||||
privilege.appliedDiscounts.add(discount);
|
||||
|
||||
const discountAmount = privilege.price * (1 - findDiscountFactor(discount));
|
||||
|
||||
@ -149,7 +153,8 @@ export function calcCart(tariffs: Tariff[], discounts: Discount[], purchasesAmou
|
||||
|
||||
service.tariffs.forEach(tariff => {
|
||||
tariff.privileges.forEach(privilege => {
|
||||
allAppliedDiscounts.add(cartDiscount);
|
||||
cartData.allAppliedDiscounts.add(cartDiscount);
|
||||
privilege.appliedDiscounts.add(cartDiscount);
|
||||
|
||||
const discountAmount = privilege.price * (1 - findDiscountFactor(cartDiscount));
|
||||
|
||||
@ -169,7 +174,8 @@ export function calcCart(tariffs: Tariff[], discounts: Discount[], purchasesAmou
|
||||
|
||||
service.tariffs.forEach(tariff => {
|
||||
tariff.privileges.forEach(privilege => {
|
||||
allAppliedDiscounts.add(loyalDiscount);
|
||||
cartData.allAppliedDiscounts.add(loyalDiscount);
|
||||
privilege.appliedDiscounts.add(loyalDiscount);
|
||||
|
||||
const discountAmount = privilege.price * (1 - findDiscountFactor(loyalDiscount));
|
||||
|
||||
@ -182,7 +188,5 @@ export function calcCart(tariffs: Tariff[], discounts: Discount[], purchasesAmou
|
||||
});
|
||||
}
|
||||
|
||||
cartData.allAppliedDiscounts = Array.from(allAppliedDiscounts);
|
||||
|
||||
return cartData;
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@frontend/kitui",
|
||||
"version": "1.0.76",
|
||||
"version": "1.0.77",
|
||||
"description": "test",
|
||||
"main": "./dist/index.js",
|
||||
"module": "./dist/index.js",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user