feat: implement invoice formatting and document loading hooks

This commit is contained in:
2026-10-21 12:55:29 +05:30
parent 5f8bc70174
commit e4061fa94c
3 changed files with 364 additions and 0 deletions
@@ -0,0 +1,19 @@
// 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()}`