Zum Hauptinhalt springen

Mitarbeiter — Fahrzeuge (Sub-Route)

Zweck

Sub-Route /employees/:id/vehicles listet alle Fahrzeug-Zuweisungen des Mitarbeiters — typisch Firmenwagen mit Zeitraum (startDate/endDate) und Status. Bezieht sich auf den globalen Fahrzeug-Stamm.

Voraussetzungen

- Berechtigung `view:Employee` und `view:EmployeeVehicleAssignment`. - Für Zuweisung: `create:EmployeeVehicleAssignment` und `view:Vehicle`.

Berechtigungen (CASL)

ActionSubjectWirkungKeycloak-Rolle
viewFE_Employee, EmployeeDetail aufrufbar
view/create/deleteEmployeeVehicleAssignmentZuweisung pflegenAPP_SPEAMCORE_VIEW/CREATE/DELETE_EMPLOYEE_VEHICLE_ASSIGNMENT
viewVehicleFahrzeug-AuswahlAPP_SPEAMCORE_VIEW_VEHICLE

Schritt-für-Schritt-Anleitung

  1. Mitarbeiter (/employees/:id) → Tab Fahrzeuge.
  2. + Zuweisung wählt ein Fahrzeug, setzt startDate (und ggf. endDate).
  3. Bei Beendigung der Zuweisung endDate setzen — Fahrzeug ist danach wieder verfuegbar.

Fahrzeug-Liste mit Spalten Kennzeichen, Name, Hersteller, Fahrzeugzuweisung, Aktueller KM-Stand und Status — Beispiele Mercedes Sprinter (Anna Berger) und VW Transporter (Thomas Richter, 45.230 / 120.000 km, 37,7 %) (Test-Daten).

<KIHinweis titel="Die Angabe „45.230 / 120.000 km (37,7 %)" = Leasing-Laufleistung"> Bei Leasing-Fahrzeugen zeigt die KM-Stand-Spalte zusätzlich den Verbrauch der vertraglich vereinbarten Kilometer: aktueller Kilometerstand ÷ contractMileageAllowance (vertragliche Gesamt-Laufleistung). Das ist kein Wartungsintervall, sondern die Leasing-Auslastung — wichtig, um Mehr-/Minderkilometer (contractOvermileagePrice) frühzeitig zu erkennen. Bei Eigentumsfahrzeugen entfällt der Prozentwert.

Anlege-Pattern (Code-Lookup-basiert)

Beim Klick auf den + Hinzufügen-Button erscheint kein Modal mit Eingabemaske, sondern ein Auswahl-Workflow (customAddButton-Pattern):

  1. Modal mit Suche im Stamm der zu verknüpfenden Entität (z. B. Rolle, Fahrzeug, Kurs).
  2. Anwender wählt einen oder mehrere Einträge.
  3. Pro Auswahl wird ein Assignment-Datensatz erzeugt, der die N:M-Verknüpfung Mitarbeiter ↔ Stamm hält — nicht der Stamm selbst.
  4. Klick auf eine Zeile führt zum Detail des Assignment (Pflege z. B. von Gültigkeitszeitraum, prozentuale Aufteilung).
**Stamm vs Assignment:** Das Löschen einer Verknüpfung (Assignment) entfernt nur die Beziehung zum Mitarbeiter, **nicht** den Stamm. Stamm-Änderungen wirken auf alle Mitarbeiter mit aktiver Verknüpfung — Anpassung etwa der Rolle hat sofort Auswirkung auf alle Mitarbeiter mit dieser Rolle.

Wiederverwendbare Konzepte

Verknuepfungen zu anderen Modulen

API/Schnittstellen

MethodeEndpointZweckCASL
GET/api/employee-vehicle-assignments?filter[employeeId]Listeview EmployeeVehicleAssignment
POST/api/employee-vehicle-assignmentsZuweisencreate EmployeeVehicleAssignment
DELETE/api/employee-vehicle-assignments/:idAufhebendelete EmployeeVehicleAssignment

Versionshinweise

  • 2026-04-30: Initiale Veroeffentlichung.