fix someone

This commit is contained in:
zwgczx committed 2026-03-07 11:47:07 +08:00
1 parent c482faacbf
commit ad4e9cdee0
17 files changed
+1084 -311

No files matched your search

+38 -6
View File
@@ -43,28 +43,42 @@ export const getScaleBudgetFeeSplit = (params: {
benchmarkBudgetOptional: unknown
majorFactor: unknown
consultCategoryFactor: unknown
workStageFactor?: unknown
workRatio?: unknown
}): ScaleFeeSplitResult | null => {
const hasWorkStageFactor = Object.prototype.hasOwnProperty.call(params, 'workStageFactor')
const hasWorkRatio = Object.prototype.hasOwnProperty.call(params, 'workRatio')
const benchmarkBudgetBasic = toFiniteNumberOrNull(params.benchmarkBudgetBasic)
const benchmarkBudgetOptional = toFiniteNumberOrNull(params.benchmarkBudgetOptional)
const majorFactor = toFiniteNumberOrNull(params.majorFactor)
const consultCategoryFactor = toFiniteNumberOrNull(params.consultCategoryFactor)
const workStageFactor = hasWorkStageFactor ? toFiniteNumberOrNull(params.workStageFactor) : 1
const workRatio = hasWorkRatio ? toFiniteNumberOrNull(params.workRatio) : 100
if (
benchmarkBudgetBasic == null ||
benchmarkBudgetOptional == null ||
majorFactor == null ||
consultCategoryFactor == null
consultCategoryFactor == null ||
workStageFactor == null ||
workRatio == null
) {
return null
}
const basic = roundTo(toDecimal(benchmarkBudgetBasic).mul(majorFactor).mul(consultCategoryFactor), 2)
const optional = roundTo(toDecimal(benchmarkBudgetOptional).mul(majorFactor).mul(consultCategoryFactor), 2)
const multiplier = toDecimal(consultCategoryFactor)
.mul(majorFactor)
.mul(workStageFactor)
.mul(workRatio)
.div(100)
const roundedBenchmarkBudget = roundTo(addNumbers(benchmarkBudgetBasic, benchmarkBudgetOptional), 2)
const basic = roundTo(toDecimal(benchmarkBudgetBasic).mul(multiplier), 2)
const optional = roundTo(toDecimal(benchmarkBudgetOptional).mul(multiplier), 2)
return {
basic,
optional,
total: roundTo(addNumbers(basic, optional), 2),
total: roundTo(toDecimal(roundedBenchmarkBudget).mul(multiplier), 2),
basicFormula: '',
optionalFormula: ''
}
@@ -74,14 +88,32 @@ export const getScaleBudgetFee = (params: {
benchmarkBudget: unknown
majorFactor: unknown
consultCategoryFactor: unknown
workStageFactor?: unknown
workRatio?: unknown
}) => {
const hasWorkStageFactor = Object.prototype.hasOwnProperty.call(params, 'workStageFactor')
const hasWorkRatio = Object.prototype.hasOwnProperty.call(params, 'workRatio')
const benchmarkBudget = toFiniteNumberOrNull(params.benchmarkBudget)
const majorFactor = toFiniteNumberOrNull(params.majorFactor)
const consultCategoryFactor = toFiniteNumberOrNull(params.consultCategoryFactor)
const workStageFactor = hasWorkStageFactor ? toFiniteNumberOrNull(params.workStageFactor) : 1
const workRatio = hasWorkRatio ? toFiniteNumberOrNull(params.workRatio) : 100
if (benchmarkBudget == null || majorFactor == null || consultCategoryFactor == null) {
if (
benchmarkBudget == null ||
majorFactor == null ||
consultCategoryFactor == null ||
workStageFactor == null ||
workRatio == null
) {
return null
}
return roundTo(toDecimal(benchmarkBudget).mul(majorFactor).mul(consultCategoryFactor), 2)
const roundedBenchmarkBudget = roundTo(benchmarkBudget, 2)
const multiplier = toDecimal(consultCategoryFactor)
.mul(majorFactor)
.mul(workStageFactor)
.mul(workRatio)
.div(100)
return roundTo(toDecimal(roundedBenchmarkBudget).mul(multiplier), 2)
}