更新结算价
This commit is contained in:
@@ -1446,6 +1446,8 @@ export interface InputAddItemCustomSettlementDetail {
|
|||||||
original_price: number;
|
original_price: number;
|
||||||
/** 结算金额 */
|
/** 结算金额 */
|
||||||
settlement_price: number;
|
settlement_price: number;
|
||||||
|
/** 折扣率 */
|
||||||
|
discount_ratio?: number | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ interface AddonItem {
|
|||||||
combinationItemCode?: number | null;
|
combinationItemCode?: number | null;
|
||||||
isEnjoyDiscount?: number | null;
|
isEnjoyDiscount?: number | null;
|
||||||
discount_name?: string | null;
|
discount_name?: string | null;
|
||||||
|
discount_ratio?: number | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface ExamAddonPanelProps {
|
interface ExamAddonPanelProps {
|
||||||
@@ -305,6 +306,7 @@ export const ExamAddonPanel = ({ client, onGoToSign }: ExamAddonPanelProps) => {
|
|||||||
combinationItemCode: item.combination_item_code ?? null,
|
combinationItemCode: item.combination_item_code ?? null,
|
||||||
isEnjoyDiscount: item.is_enjoy_discount ?? null,
|
isEnjoyDiscount: item.is_enjoy_discount ?? null,
|
||||||
discount_name: item.discount_rate ?? null,
|
discount_name: item.discount_rate ?? null,
|
||||||
|
discount_ratio: item.discount_ratio ?? null,
|
||||||
tags: [],
|
tags: [],
|
||||||
paid: false,
|
paid: false,
|
||||||
}));
|
}));
|
||||||
@@ -642,31 +644,35 @@ export const ExamAddonPanel = ({ client, onGoToSign }: ExamAddonPanelProps) => {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
const originalPrice = parseFloat(item.originalPrice || '0');
|
const originalPrice = parseFloat(item.originalPrice || '0');
|
||||||
let settlementPrice = originalPrice;
|
|
||||||
|
|
||||||
if (customSettlementType === 1) {
|
// if (customSettlementType === 1) {
|
||||||
// 按比例折扣
|
// // 按比例折扣
|
||||||
settlementPrice = originalPrice * (discountRatioValue / 100);
|
// settlementPrice = originalPrice * (discountRatioValue / 100);
|
||||||
} else {
|
// } else {
|
||||||
// 自定义结算价
|
// // 自定义结算价
|
||||||
settlementPrice = (customFinalPrice ?? 0) / selectedItems.length; // 平均分配
|
// settlementPrice = (customFinalPrice ?? 0) / selectedItems.length; // 平均分配
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
const discount_ratio = (() => {
|
||||||
|
const r = item.discount_ratio;
|
||||||
|
if (r == null || typeof r !== 'number') return 0;
|
||||||
|
return r > 1 ? r : Math.round(r * 100);
|
||||||
|
})();
|
||||||
|
|
||||||
return {
|
return {
|
||||||
combination_item_code: String(combinationItemCode),
|
combination_item_code: String(combinationItemCode),
|
||||||
combination_item_name: item.name,
|
combination_item_name: item.name,
|
||||||
original_price: originalPrice,
|
original_price: originalPrice,
|
||||||
settlement_price: settlementPrice,
|
settlement_price: originalPrice * (discount_ratio / 100),
|
||||||
|
discount_ratio: discount_ratio,
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
.filter((item): item is { combination_item_code: string; combination_item_name: string; original_price: number; settlement_price: number } => item !== null);
|
.filter((item): item is { combination_item_code: string; combination_item_name: string; original_price: number; settlement_price: number; discount_ratio: number } => item !== null);
|
||||||
|
|
||||||
const original_settlement_price = selectedItems.reduce((sum, item) => {
|
const original_settlement_price = listAddItemDetail.reduce((sum, item) => sum + item.original_price, 0);
|
||||||
return sum + parseFloat(item.currentPrice || item.originalPrice || '0');
|
|
||||||
}, 0);
|
|
||||||
|
|
||||||
const final_settlement_price = customSettlementType === 1
|
const final_settlement_price = customSettlementType === 1
|
||||||
? original_settlement_price * (discountRatioValue / 100)
|
? totalCurrent * ((customDiscountRatio ?? 0) / 100)
|
||||||
: (customFinalPrice ?? 0);
|
: (customFinalPrice ?? 0);
|
||||||
|
|
||||||
const apply_user = localStorage.getItem('operatorName');
|
const apply_user = localStorage.getItem('operatorName');
|
||||||
|
|||||||
Reference in New Issue
Block a user