/** * Aufbau der Rechnungsnummer. * * § 14 Abs. 4 Nr. 4 UStG verlangt eine FORTLAUFENDE Nummer, die der * Rechnungsaussteller einmalig vergibt. Vorher stand hier eine Zufallszahl: * eindeutig ja, fortlaufend nein — bei einer Betriebspruefung liesse sich * damit nicht zeigen, dass keine Rechnung fehlt. * * Die laufende Nummer selbst kommt aus der Tabelle invoice_counters, deren * Zeilensperre beim Hochzaehlen sicherstellt, dass keine Nummer zweimal * vergeben wird (siehe prisma/schema.prisma). */ /** * Mindestbreite der laufenden Nummer. Vier Stellen halten die Nummern gleich * lang und damit sortierbar; gibt es in einem Jahr mehr als 9999 Rechnungen, * waechst die Nummer einfach mit, statt abgeschnitten zu werden. */ const SEQUENCE_DIGITS = 4; /** Bildet "RE-2026-0001" aus Jahr und laufender Nummer. */ export function formatInvoiceNumber(year: number, sequence: number): string { return `RE-${year}-${String(sequence).padStart(SEQUENCE_DIGITS, "0")}`; }