Hauptmenue: Gutschriften/Lieferscheine-Gesamtuebersicht (portal-scoped)
Neuer Menuepunkt 'Gutschriften' -> Seite /credit-notes mit Tabelle aller Belege (Beleg-Nr, Art, Kunde, Vertrag, Betrag, Datum, PDF), Suche + Pagination. Neuer Endpoint GET /credit-notes (NICHT staff-only wie die uebrigen Credit-Note-Endpoints): Staff sieht alle Belege aller Kunden, Portal- Kunden nur eigene + vertretene (Vollmacht via hasAuthorization). customerIds kommt aus dem JWT, nicht aus Query/Body -> nicht manipulierbar. Fuer Portal wird receiptPath aus der Response entfernt (Belege bleiben staff-only). Route requirePermission contracts:read. Verifiziert: Staff -> alle Belege; Portal-scoped -> nur eigene, korrekt zugeordnet. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,16 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
|
||||
## ✅ Erledigt
|
||||
|
||||
- [x] **📋 Hauptmenü: Gutschriften/Lieferscheine-Gesamtübersicht** (2026-08-12)
|
||||
- Neuer Menüpunkt „Gutschriften" (Sidebar, `show: contracts:read`) → Seite
|
||||
`/credit-notes` mit Tabelle aller Belege (Beleg-Nr., Art, Kunde, Vertrag,
|
||||
Betrag, Datum, PDF), Suche + Pagination.
|
||||
- **Scoping:** neuer Endpoint `GET /credit-notes` (NICHT staff-only wie die
|
||||
übrigen Credit-Note-Endpoints): Staff sieht **alle** Belege aller Kunden,
|
||||
Portal-Kunden **nur eigene + vertretene** (Vollmacht via `hasAuthorization`).
|
||||
`customerIds` kommt aus dem JWT (nicht aus Query/Body → nicht manipulierbar).
|
||||
Für Portal wird `receiptPath` aus der Response entfernt (Belege bleiben
|
||||
staff-only). Verifiziert (Staff alle, Portal nur eigene).
|
||||
- [x] **🚫 Gutschrift nur mit Empfängeradresse (Rechnung > Liefer)** (2026-08-12)
|
||||
- Beim Klick auf „Gutschrift anlegen" wird geprüft, ob der Vertrag eine
|
||||
Empfängeradresse hat: **Rechnungsadresse hat Vorrang, sonst Lieferadresse**.
|
||||
|
||||
Reference in New Issue
Block a user