Gutschrift: betragsloser Sachwert bekommt keine Gutschriftsnummer

Ein betragsloser Sachwert ist eher ein Lieferschein als eine Gutschrift
-> er soll KEINE Gutschriftsnummer aus dem Nummernkreis verbrauchen.

- Schema: CreditNote.number nullbar (Migration MODIFY ... NULL, UNIQUE
  bleibt - MySQL erlaubt mehrere NULLs).
- createCreditNote: betragsloser Sachwert -> number=null, assignNextNumber
  wird NICHT aufgerufen (Zaehler unangetastet).
- updateCreditNote: Uebergaenge - wird betragslos -> Nummer entfernen;
  bekommt nachtraeglich Betrag & hatte keine -> jetzt Nummer vergeben.
- PDF/Liste/Modal/Audit: Fallback 'Sachwert-Uebergabe'/'Beleg #id' wenn
  keine Nummer; PDF-Titel 'Sachwert-Uebergabe', kein ZUGFeRD (schon vorher).

Verifiziert: Sachwert 0 -> number null + Zaehler bleibt; Geld -> Nummer
+ Zaehler +1; Sachwert nachtraeglich mit Betrag -> Nummer vergeben.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-09 17:40:15 +02:00
co-authored by Claude Opus 4.8
parent 6f95005530
commit 15ac003dad
8 changed files with 52 additions and 18 deletions
+7
View File
@@ -110,6 +110,13 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
kein Betrag (Hinweis); Liste zeigt „Sachwert ohne Betrag (keine Rechnung)".
- Verifiziert (Sachwert 0 → kein factur-x.xml; Geld 0 → 400; Sachwert 200 →
ZUGFeRD).
- **Keine Gutschriftsnummer für betragslose Sachwerte:** `number` ist jetzt
nullbar (Migration `MODIFY … NULL`, UNIQUE bleibt); ein betragsloser
Sachwert (Lieferschein) bekommt **keine** Nummer und verbraucht den
Nummernkreis-Zähler **nicht**. Update-Übergänge: wird betragslos → Nummer
entfernt; bekommt nachträglich einen Betrag → jetzt Nummer vergeben. PDF/
Liste/Audit zeigen dann „Sachwert-Übergabe"/„Beleg #id". Verifiziert
(Zähler bleibt bei Sachwert 0 stehen, springt nur bei echten Gutschriften).
- [x] **🔗 Bug: Folgevertrag aus deaktiviertem Vertrag + Kundendaten-Modal** (2026-08-07)
- **Folgevertrag-Bug:** Backend legt den Folgevertrag korrekt mit