Initial commit: shared invoice/correction-invoice PDF generation

Consolidates code previously hand-duplicated between the einfach-produktiv
frontend and payload backend repos into one canonical implementation,
consumed as a git dependency by both instead of being kept in sync by eye.

While merging the two correction-invoice copies, found and fixed three
real drifts between them:
- variantName was silently dropped in the backend's emailed Stornorechnung/
  Gutschrift, but present in the frontend's re-download copy
- the backend's correction-invoice footer wasn't position:fixed, unlike
  the original invoice and the frontend's copy
- the backend used a numeric date format (03.07.2025) while the original
  invoice and the frontend's copy both used a spelled-out month (03. Juli
  2025) — a re-download didn't visually match what was emailed

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Marco
2026-07-23 08:33:12 +00:00
commit 9336cfd0ba
13 changed files with 4180 additions and 0 deletions
+16
View File
@@ -0,0 +1,16 @@
export { computeTaxBreakdown, type TaxBreakdownLine, type TaxBreakdownGroup } from "./taxBreakdown";
export { formatPrice, formatDate } from "./formatters";
export type { InvoiceSeller } from "./seller";
export {
InvoiceDocument,
renderInvoicePdf,
SAMPLE_INVOICE_ORDER,
type InvoiceItem,
type InvoiceOrder,
} from "./invoicePdf";
export {
renderCorrectionInvoicePdf,
type CorrectionInvoiceKind,
type CorrectionInvoiceItem,
type CorrectionInvoiceOrder,
} from "./correctionInvoicePdf";