20 lines
766 B
TypeScript
20 lines
766 B
TypeScript
// Shared number/date formatting for printed invoices.
|
|
|
|
/** `Rs. 12,450.00` — thousands separator, exactly 2 decimals. */
|
|
export const fmtMoney = (n: number) =>
|
|
`Rs. ${n.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`
|
|
|
|
/** Quantity: up to 3 decimals, trailing zeros dropped. */
|
|
export const fmtQty = (n: number) => n.toLocaleString('en-US', { maximumFractionDigits: 3 })
|
|
|
|
/** `dd/MM/yyyy` */
|
|
export function fmtDate(v: string | null | undefined) {
|
|
if (!v) return '—'
|
|
const d = new Date(v)
|
|
const dd = String(d.getDate()).padStart(2, '0')
|
|
const mm = String(d.getMonth() + 1).padStart(2, '0')
|
|
return `${dd}/${mm}/${d.getFullYear()}`
|
|
}
|
|
|
|
export const invoiceNo = (id: string) => `INV-${id.substring(0, 8).toUpperCase()}`
|