Jede bezahlte Bestellung bekommt eine rechtskonforme Rechnung als E-Rechnung; Stornos erzeugen eine Stornorechnung statt die Rechnung zu ändern.
Umgesetzt
Fortlaufende Rechnungsnummer RE-<Jahr>-<Nr> über Tabelle invoice_counters (e525db8, Migration 20260918010000_invoice_counter)
Ablage der PDFs unter INVOICE_DIR nach Jahr und Kunde, getrennt von den öffentlichen Uploads (70ede77, 6135c1f)
Umsatzsteuer je Produkt, je Kategorie oder als Rückfallwert, mehrere Sätze auf einer Rechnung (625b73a, 7c59283)
Gestaltete Rechnung mit USt-IdNr. und Gruppierung je Satz (77bdd99)
Hybride E-Rechnung ZUGFeRD/Factur-X EN 16931, PDF/A-3b mit eingebetteten Liberation-Schriften (508ff24, 4b15ca0, lib/einvoice/)
Stornorechnung ST-<Jahr>-<Nr> mit eigenem Nummernkreis, Rechnungskopie an eine Admin-Adresse (4d1bcbb, Migration 20261012010000_cancellation_invoices)
Befunde aus dem Sicherheitsreview behoben (4827c8f); produktiv seit 2026-10-12 (Build sha-4827c8f, heute in sha-0d254db enthalten)
Offen
Inhaber trägt unter Admin → Einstellungen → Firma „Rechnungskopie an“ ein (laut Memory vom 2026-10-12 leer)
Inhaber klärt den Steuersatz für Propolis (VAT_RATE_PERCENT_PROPOLIS, Vorgabe 19 %)
Für die Kategorie SONSTIGES fehlt im Cluster der Steuersatz, siehe #24
Grundlage
README, Abschnitt „Rechnungen“ mit Unterabschnitten. Übergabe an ERPNext siehe #19.
Status
Code: ja · Geprüft: ja (Unit-Tests invoice-*, cii, cancellation-invoice; XSD, Schematron und veraPDF laut README) · Gemergt: ja · Produktiv: ja (im Build sha-0d254db enthalten, laut Cluster-Abfrage 2026-10-16 live)
Stand: 2026-10-16 (Quelle: git origin/main 35e7c84, Cluster-Abfrage nur lesend am 2026-10-16, Session-Status, Memory)
## Ziel
Jede bezahlte Bestellung bekommt eine rechtskonforme Rechnung als E-Rechnung; Stornos erzeugen eine Stornorechnung statt die Rechnung zu ändern.
## Umgesetzt
- [x] Fortlaufende Rechnungsnummer `RE-<Jahr>-<Nr>` über Tabelle `invoice_counters` (`e525db8`, Migration `20260918010000_invoice_counter`)
- [x] Ablage der PDFs unter `INVOICE_DIR` nach Jahr und Kunde, getrennt von den öffentlichen Uploads (`70ede77`, `6135c1f`)
- [x] Umsatzsteuer je Produkt, je Kategorie oder als Rückfallwert, mehrere Sätze auf einer Rechnung (`625b73a`, `7c59283`)
- [x] Gestaltete Rechnung mit USt-IdNr. und Gruppierung je Satz (`77bdd99`)
- [x] Hybride E-Rechnung ZUGFeRD/Factur-X EN 16931, PDF/A-3b mit eingebetteten Liberation-Schriften (`508ff24`, `4b15ca0`, `lib/einvoice/`)
- [x] Stornorechnung `ST-<Jahr>-<Nr>` mit eigenem Nummernkreis, Rechnungskopie an eine Admin-Adresse (`4d1bcbb`, Migration `20261012010000_cancellation_invoices`)
- [x] Befunde aus dem Sicherheitsreview behoben (`4827c8f`); produktiv seit 2026-10-12 (Build sha-4827c8f, heute in sha-0d254db enthalten)
## Offen
- [ ] Inhaber trägt unter Admin → Einstellungen → Firma „Rechnungskopie an“ ein (laut Memory vom 2026-10-12 leer)
- [ ] Inhaber klärt den Steuersatz für Propolis (`VAT_RATE_PERCENT_PROPOLIS`, Vorgabe 19 %)
- [ ] Für die Kategorie SONSTIGES fehlt im Cluster der Steuersatz, siehe #24
## Grundlage
README, Abschnitt „Rechnungen“ mit Unterabschnitten. Übergabe an ERPNext siehe #19.
## Status
Code: ja · Geprüft: ja (Unit-Tests invoice-*, cii, cancellation-invoice; XSD, Schematron und veraPDF laut README) · Gemergt: ja · Produktiv: ja (im Build sha-0d254db enthalten, laut Cluster-Abfrage 2026-10-16 live)
Stand: 2026-10-16 (Quelle: git origin/main 35e7c84, Cluster-Abfrage nur lesend am 2026-10-16, Session-Status, Memory)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Ziel
Jede bezahlte Bestellung bekommt eine rechtskonforme Rechnung als E-Rechnung; Stornos erzeugen eine Stornorechnung statt die Rechnung zu ändern.
Umgesetzt
RE-<Jahr>-<Nr>über Tabelleinvoice_counters(e525db8, Migration20260918010000_invoice_counter)INVOICE_DIRnach Jahr und Kunde, getrennt von den öffentlichen Uploads (70ede77,6135c1f)625b73a,7c59283)77bdd99)508ff24,4b15ca0,lib/einvoice/)ST-<Jahr>-<Nr>mit eigenem Nummernkreis, Rechnungskopie an eine Admin-Adresse (4d1bcbb, Migration20261012010000_cancellation_invoices)4827c8f); produktiv seit 2026-10-12 (Build sha-4827c8f, heute in sha-0d254db enthalten)Offen
VAT_RATE_PERCENT_PROPOLIS, Vorgabe 19 %)Grundlage
README, Abschnitt „Rechnungen“ mit Unterabschnitten. Übergabe an ERPNext siehe #19.
Status
Code: ja · Geprüft: ja (Unit-Tests invoice-*, cii, cancellation-invoice; XSD, Schematron und veraPDF laut README) · Gemergt: ja · Produktiv: ja (im Build sha-0d254db enthalten, laut Cluster-Abfrage 2026-10-16 live)
Stand: 2026-10-16 (Quelle: git origin/main
35e7c84, Cluster-Abfrage nur lesend am 2026-10-16, Session-Status, Memory)