优化
This commit is contained in:
1 parent
3950057707
commit
a10359f7e0
19 files changed
+349
-299
No files matched your search
@@ -0,0 +1,27 @@
|
||||
import { getBasicFeeFromScale } from '@/sql'
|
||||
import { addNumbers, roundTo, toDecimal } from '@/lib/decimal'
|
||||
import { toFiniteNumberOrNull } from '@/lib/number'
|
||||
|
||||
type ScaleMode = 'cost' | 'area'
|
||||
|
||||
export const getBenchmarkBudgetByScale = (value: unknown, mode: ScaleMode) => {
|
||||
const scaleValue = toFiniteNumberOrNull(value)
|
||||
const result = getBasicFeeFromScale(scaleValue, mode)
|
||||
return result ? roundTo(addNumbers(result.basic, result.optional), 2) : null
|
||||
}
|
||||
|
||||
export const getScaleBudgetFee = (params: {
|
||||
benchmarkBudget: unknown
|
||||
majorFactor: unknown
|
||||
consultCategoryFactor: unknown
|
||||
}) => {
|
||||
const benchmarkBudget = toFiniteNumberOrNull(params.benchmarkBudget)
|
||||
const majorFactor = toFiniteNumberOrNull(params.majorFactor)
|
||||
const consultCategoryFactor = toFiniteNumberOrNull(params.consultCategoryFactor)
|
||||
|
||||
if (benchmarkBudget == null || majorFactor == null || consultCategoryFactor == null) {
|
||||
return null
|
||||
}
|
||||
|
||||
return roundTo(toDecimal(benchmarkBudget).mul(majorFactor).mul(consultCategoryFactor), 2)
|
||||
}
|
||||
Reference in new issue
Block a user