Lieferanten
Zweck
Der Lieferantenstamm haelt alle Geschaeftspartner, die SpeamCore mit Material oder Leistungen beliefern. Pro Lieferant fuehren Sie Discount-Konditionen, Bankverbindungen, gefuehrte Produkte und offene Posten.
Voraussetzungen
Berechtigungen (CASL)
Frontend-Page-Guard:
| Action | Subject | Keycloak-Rolle |
|---|---|---|
view | FE_Supplier | — |
view | Supplier | APP_SPEAMCORE_VIEW_SUPPLIER |
Tab-Subjects:
| Tab | Subject |
|---|---|
| Kontakte | Contact:view |
| Bankkonten | BankAssignment:view |
| Produkte | ProductSupplier:view |
| Offene Posten | OpenItem:view |
| Dokumente | Document:view |
API-Datenzugriff:
| Action | Subject | Endpoint | Keycloak-Rolle |
|---|---|---|---|
view | Supplier | GET /api/suppliers, GET /api/suppliers/:id | APP_SPEAMCORE_VIEW_SUPPLIER |
create | Supplier | POST /api/suppliers | APP_SPEAMCORE_CREATE_SUPPLIER |
update | Supplier | PATCH /api/suppliers/:id | APP_SPEAMCORE_UPDATE_SUPPLIER |
delete | Supplier | DELETE /api/suppliers/:id | APP_SPEAMCORE_DELETE_SUPPLIER |
Schritt-für-Schritt-Anleitung
Lieferant anlegen
- Lieferanten (
/suppliers) → + Neu. namesetzen.- Optional
discountunddiscountType(percentage/fixed). - Speichern.
supplierNowird automatisch aus dem Nummernkreis vergeben.
Discount ändern
Discount und DiscountType sind voneinander abhaengig:
- Wechsel des
discountTypesetztdiscountzurück (Validierung inbeforeUpdate). percentage: max. 100 %.fixed: absoluter Betrag in Mandanten-Waehrung.

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:Supplier.
Felder und Eingaben
| Feldname | Pflicht | Datentyp | Wirkung beim Ausfuellen | Voraussetzung |
|---|---|---|---|---|
supplierNo | automatisch | NumberCircleAssignment | Identifiziert den Lieferanten in Bestellbelegen, OP-Listen und Reports. Wird beim Anlegen aus dem Nummernkreis gesetzt. | Nummernkreis konfiguriert. view:NumberCircleAssignment. |
name | nein | String | Firmenname; Anzeige in Auswahl-Selects und auf Bestellbelegen. | — |
discountType | nein | Auswahl | percentage (Prozent-Rabatt) oder fixed (absoluter Betrag). Wechsel des Typs setzt discount im beforeUpdate-Hook auf null zurück. | — |
discount | nein | Float | Wert je nach discountType. Wird auf Beleg-Positionen automatisch angewandt, sofern keine produktspezifische Sonderkondition greift. | percentage: max. 100. discountType muss vorher gesetzt sein. |
defaultExpenseAccountId | nein | UUID (Konto) | Standard-Aufwandskonto des Lieferanten. Wird beim Erzeugen einer Eingangsrechnung als Aufwandskonto vorbelegt (lernt sich beim Buchen). Ist es ein als §13b markiertes Konto (reverseChargeType), greift automatisch die Reverse-Charge-Buchung. | view:Account. |
Workflows und Zustaende
Lieferanten haben kein Status-Feld — Aktivität über paranoid Soft-Delete.
Wiederverwendbare Konzepte
- Polymorpher Parent-Pattern —
BankAssignment.parentType = 'Supplier',ContactParent.parentType = 'Supplier'. - Berechtigungen verstehen (CASL)
Verknuepfungen zu anderen Modulen
- Bankverbindungen —
BankAssignment.parentType = 'Supplier'. - Kontakte —
ContactParent.parentType = 'Supplier'. - Produkte —
ProductSupplier(N:M zwischenProductundSupplier). - Bestellbelege —
PurchaseDocument.supplierId. - OP-Liste —
OpenItemaus Buchhaltung.
Häufige Fehler und Lösungen
| Fehler | Lösung |
|---|---|
discount wird beim Speichern auf 0 zurückgesetzt | discountType wurde gewechselt — Validierung leert discount. Erst discountType festlegen, dann discount. |
| Lieferant erscheint nicht in Bestellbelegen | clientScope blockiert Zugriff für den Mandanten. Mit Admin prüfen. |
API/Schnittstellen
| Methode | Endpoint | Zweck | CASL |
|---|---|---|---|
GET | /api/suppliers | Liste | view Supplier |
GET | /api/suppliers/:id | Detail | view Supplier |
POST | /api/suppliers | Anlegen | create Supplier |
PATCH | /api/suppliers/:id | Ändern | update Supplier |
DELETE | /api/suppliers/:id | Soft-Delete | delete Supplier |
Versionshinweise
- 2026-06-11: Feld
defaultExpenseAccountId(Standard-Aufwandskonto, Vorbelegung bei Eingangsrechnungen, §13b-Anbindung) ergänzt. Verifiziert ansupplier.model.ts. - 2026-04-29: Initiale Veroeffentlichung.