fix edits for borsemes
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import type { Order } from '@/model/order'
|
||||
import { usePrice } from '@core/utils/usePrice'
|
||||
import { getMainMetal } from '@/utils/metalLabels'
|
||||
|
||||
export type OrderServiceFeeDisplay = {
|
||||
value: string
|
||||
/** از ریال / از مس / از طلا … */
|
||||
source: string
|
||||
}
|
||||
|
||||
/**
|
||||
* نمایش کارمزد سفارش با منبع کسر (fee_asset).
|
||||
* gold → از کیف فلز (گرم + معادل ریالی)
|
||||
* rial / خالی → از ریال
|
||||
*/
|
||||
export function formatOrderServiceFee(order?: Pick<
|
||||
Order,
|
||||
'fee_asset' | 'service_charge' | 'service_charge_price' | 'order_metal_label' | 'amount_unit'
|
||||
> | null): OrderServiceFeeDisplay {
|
||||
const grams = Number(order?.service_charge ?? 0)
|
||||
const rial = Number(order?.service_charge_price ?? 0)
|
||||
|
||||
if ((!Number.isFinite(grams) || grams <= 0) && (!Number.isFinite(rial) || rial <= 0)) {
|
||||
return { value: '۰', source: '' }
|
||||
}
|
||||
|
||||
const fromMetal = String(order?.fee_asset ?? '').toLowerCase() === 'gold'
|
||||
if (fromMetal) {
|
||||
const metalName = (order?.order_metal_label || getMainMetal() || 'فلز').trim()
|
||||
const unit = (order?.amount_unit || 'گرم').trim() || 'گرم'
|
||||
const gramText = Number(grams || 0).toLocaleString('fa-IR', { maximumFractionDigits: 4 })
|
||||
const rialText = usePrice(rial || 0, true, 'ریال')
|
||||
return {
|
||||
value: `${gramText} ${unit} ≈ ${rialText}`,
|
||||
source: `از ${metalName}`,
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
value: usePrice(rial || 0, true, 'ریال'),
|
||||
source: 'از ریال',
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user