Hersteller
Zweck
Hersteller (Manufacturer) sind Stammdaten, die Produkte (Product.manufacturerId) und Services (ServiceAssignment.parentType = 'Manufacturer') bereitstellen. Pro Hersteller pflegen Sie Kontakte, Bankverbindungen, Service-Verträge, Produktkatalog und Dokumente.
Voraussetzungen
Berechtigungen (CASL)
Frontend-Page-Guard:
| Action | Subject | Keycloak-Rolle |
|---|---|---|
view | FE_Manufacturer, Manufacturer | — |
Tab-Subjects:
| Tab | Sub-Pfad | Subject |
|---|---|---|
| Kontakte | /manufacturers/:id/contacts | Contact:view, ContactParent:view |
| Banken | /manufacturers/:id/banks | BankAssignment:view |
| Services | /manufacturers/:id/services | ServiceAssignment:view |
| Produkte | /manufacturers/:id/products | Product:view |
| Dokumente | /manufacturers/:id/documents | Document:view, DocumentParent:view |
Schritt-für-Schritt-Anleitung
- Hersteller (
/manufacturers) → + Neu. - Name vergeben.
- Tabs nutzen, um Kontakte, Banken, Service-Verträge etc. zu pflegen.
- Änderungen werden automatisch gespeichert.

Toolbar (Detail-Seite)
Schlanke Toolbar oben rechts:
| Icon | Aktion (aria-label) | CASL | Wirkung |
|---|---|---|---|
| ← | Zurückgehen | — | Zurück zur Liste. |
| 🏠 | Zur Startseite gehen | — | Springt auf das Dashboard / /. |
| ⏮/◀/▶/⏭ | Pagination | — | Navigation durch die gefilterte Liste — Massen-Bearbeitung ohne Liste-Sprung. |
Globale Floating-Drawer (links)
Wie auf jeder Detail-Seite verfuegbar — siehe Floating-Quickbar:
- KAL. (Mini-Kalender)
- ZEIT (Persoenliche Wochen-Arbeitszeit)
- ARBEIT (Eigene bevorstehende Aufträge)
UI-Elemente
Button: „+ Neu"
Listenseite. Erfordert create:Manufacturer.
Felder und Eingaben
| Feldname | Pflicht | Datentyp | Beschreibung | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|---|
manufacturerNo | automatisch | NumberCircleAssignment | Aus Nummernkreis. Disabled. | Identifiziert den Hersteller in Listen, Belegen, Verknuepfungen. | view:NumberCircleAssignment |
name | nein | String | Hersteller-Name. | Erscheint in Auswahl-Selects (Produkte, Services, Bestellbelege). Form speichert automatisch. | — |
Workflows und Zustaende
Kein Status-Feld. Soft-Delete via paranoid.
Wiederverwendbare Konzepte
- Polymorpher Parent-Pattern — Kontakte, Banken, Services, Dokumente jeweils über
parentType = 'Manufacturer'. - Bankkonten und Zuweisungen
- Berechtigungen verstehen (CASL)
Verknuepfungen zu anderen Modulen
- Produkte —
Product.manufacturerId. - Services —
ServiceAssignment.parentId/parentType. - Bestellbelege —
PurchaseDocument.supplierIdist meist mit dem Hersteller identisch oder verbunden. - Master-Sync — Hersteller-Stammdaten koennen aus dem zentralen Master geladen werden (siehe Setup-Wizard Schritt 7).
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
| Hersteller nicht in Produkt-Auswahl sichtbar | Manufacturer:view fehlt oder clientScope blockiert. |
| Service-Tab leer trotz vorhandener Service-Verträge | Filter ServiceAssignment.parentType = 'Manufacturer' prüfen. |
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/manufacturers | Liste | view Manufacturer |
GET | /api/manufacturers/:id | Detail | view Manufacturer |
POST | /api/manufacturers | Anlegen | create Manufacturer |
PUT | /api/manufacturers/:id | Ändern | update Manufacturer |
DELETE | /api/manufacturers/:id | Soft-Delete | delete Manufacturer |
Versionshinweise
- 2026-04-29: Initiale Veroeffentlichung mit FE-Tiefen-Standard.