Gutschrift: separater Lieferschein-Nummernkreis (GoBD, luecken-frei)
Pentester R142: Uebergang Geld->betragsloser Sachwert setzte die schon vergebene Gutschriftsnummer auf null -> Luecke in der GS-Serie. Loesung: betragsloser Sachwert = Lieferschein mit eigener Lieferscheinnummer aus separatem Nummernkreis. - Schema: CreditNote.deliveryNoteNumber (nullbar, unique) + neues Model DeliveryNoteNumberRange (Default-Praefix 'LS-') + Migration. - deliveryNoteNumberRange.service (mirror, eigener Zaehler, FOR UPDATE). - Nummern lazy pro Serie, NIE freigeben: Uebergaenge behalten die jeweils vergebene Nummer der anderen Serie reserviert -> kein Doppelverbrauch, keine Luecke. effectiveNumber() liefert je nach Typ die passende (LS/GS) fuer Anzeige/PDF/Audit. - Endpunkte GET/PUT /credit-notes/delivery-note-number-range; Settings- Seite verwaltet jetzt beide Nummernkreise. PDF-Titel 'Sachwert- Uebergabe', Dateiname lieferschein-... - Frontend: Typ + displayNumber in Liste/Modal. Verifiziert: Sachwert 0 -> LS-Nr, GS-Zaehler unberuehrt; Geld -> GS-Nr; Uebergaenge behalten beide Nummern (kein Neuverbrauch, keine Luecke). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,23 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
|
||||
## ✅ Erledigt
|
||||
|
||||
- [x] **📦 Lieferschein-Nummernkreis für betragslose Sachwerte (GoBD)** (2026-08-12)
|
||||
- Pentester-Hinweis R142: Beim Übergang Geld→betragsloser Sachwert wurde die
|
||||
schon vergebene Gutschriftsnummer auf null gesetzt → **Lücke** in der GS-Serie.
|
||||
- Lösung (User): betragsloser Sachwert = **Lieferschein** mit **eigener
|
||||
Lieferscheinnummer** aus **separatem Nummernkreis** (`DeliveryNoteNumberRange`,
|
||||
Default-Präfix „LS-"). `CreditNote.deliveryNoteNumber` (nullbar, unique) +
|
||||
Migration.
|
||||
- **Gap-frei:** Nummern werden lazy pro Serie vergeben und **nie wieder
|
||||
freigegeben**. Übergänge (Geld↔betragsloser Sachwert) behalten die jeweils
|
||||
schon vergebene Nummer der anderen Serie reserviert am Beleg → kein
|
||||
Doppelverbrauch, keine Lücke. Angezeigt/erzeugt wird via `effectiveNumber`
|
||||
je nach aktuellem Typ die passende (LS bzw. GS).
|
||||
- Settings-Seite verwaltet jetzt **beide** Nummernkreise (Gutschrift +
|
||||
Lieferschein); neue Endpunkte `GET/PUT /credit-notes/delivery-note-number-
|
||||
range`. PDF-Titel „Sachwert-Übergabe", Dateiname `lieferschein-…`.
|
||||
- Verifiziert: Sachwert 0 → LS-Nr, GS-Zähler unberührt; Geld → GS-Nr;
|
||||
Übergänge behalten Nummern (kein Neuverbrauch).
|
||||
- [x] **🔐 Portal-Passwort: Reveal/Send prüft Konsistenz (kein „falsches" PW)** (2026-08-11)
|
||||
- Pentester-Hinweis: Bei einem Kunden waren bcrypt-Hash (Login) und
|
||||
verschlüsseltes Reveal-Feld out-of-sync → Support hätte ein Passwort
|
||||
|
||||
Reference in New Issue
Block a user