39 lines
829 B
TypeScript
39 lines
829 B
TypeScript
/** پارس مقدار هزینه خرید/فروش (نقدی یا درصدی) قبل از ارسال به API */
|
||||
|
|
export function parseCashFeeValue(value: unknown): number {
|
|||
|
|
if (value === undefined || value === null) {
|
|||
|
|
return 0
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const raw = String(value).trim().replaceAll(',', '')
|
|||
|
|
if (raw === '') {
|
|||
|
|
return 0
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
const num = Number(raw)
|
|||
|
|
return Number.isFinite(num) ? num : 0
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export function normalizeCashFeeFlags(value: unknown): boolean {
|
|||
|
|
if (value === true || value === 1 || value === '1' || value === 'true') {
|
|||
|
|
return true
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return false
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
export function formatAdminCashFeeLabel(
|
|||
|
|
value: number | null | undefined,
|
|||
|
|
isPercent?: boolean | null,
|
|||
|
|
) {
|
|||
|
|
const raw = Number(value ?? 0)
|
|||
|
|
if (!raw) {
|
|||
|
|
return '۰'
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (isPercent) {
|
|||
|
|
return `${raw}%`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return String(raw)
|
|||
|
|
}
|