export function toman(value: string | number | null | undefined) { const n = Number(value ?? 0); if (!Number.isFinite(n)) return '۰'; return `${new Intl.NumberFormat('fa-IR').format(Math.round(n))} تومان`; } /** ماندهٔ دریافتنی منهای ماندهٔ پرداختنی: بد قرمز، بس سبز، صفر خاکستری. */ export function partyNetPosition(receivable: number, payable: number) { const net = receivable - payable; if (net > 0) return { text: `بد ${toman(net)}`, type: 'danger' as const }; if (net < 0) return { text: `بس ${toman(-net)}`, type: 'success' as const }; return { text: `مانده ${toman(0)}`, type: 'secondary' as const }; }