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