Dashboard-Badges (Geburtstage, Jubiläen, Celebrations)
Zweck
Das Dashboard-Badges-Modul liefert auf einer Aggregations-API die Liste der heutigen / kommenden Geburtstage und Jubiläums-Tage (Betriebszugehörigkeit) im Mandant — mit:
- Tier-System für unterschiedliche Bedeutung (z. B. 25-Jahre-Jubiläum > 5-Jahre)
- Key-Facts pro Jubilar (gerundete Workorder-Anzahl + Gesamt-Arbeitsstunden) für schöne Anzeige
- 45/50-Jahre-Thresholds als Sonderfall
- Consent-Toggles im Mitarbeiter-Form — jeder MA entscheidet, ob Geburtstag/Jubiläum geteilt wird
Das Modul ist read-only und liefert die Daten an die Dashboard-Tiles. Konfiguration der Anzeige erfolgt im Dashboard selbst (siehe Dashboards).
Voraussetzungen
Berechtigungen (CASL)
Frontend-Page-Guard: view:FE_Dashboard
API-Datenzugriff: view:DashboardBadge für die Aggregations-API. Die zurückgelieferten Daten enthalten nur Mitarbeiter mit aktivem Consent.
API-Endpoint
| Methode | Endpoint | Zweck |
|---|---|---|
GET | /api/dashboard-badges/me | Liefert Badges für die heutige + kommende Tage (typisch 30 Tage Vorschau) |
Die Endpoint-Antwort ist tenant-gescoped — pro Mandant nur die eigenen Mitarbeiter.
Consent-System
Pro Mitarbeiter im Stammdaten-Form steuerbar:
| Feld | Default | Wirkung wenn true |
|---|---|---|
shareBirthday | false | Geburtstag erscheint im Dashboard-Badge des Mandanten |
shareJubilee | false | Betriebszugehörigkeits-Jubiläum erscheint im Dashboard |
Wichtig: Beide Flags sind opt-in — Mitarbeiter müssen explizit zustimmen. Standardmäßig sind keine Daten sichtbar (DSGVO-konformer Default).
Jubiläum-Tier-System
Die Engine erkennt Jubiläen pro Mitarbeiter und klassifiziert nach Tier:
| Jahre Betriebszugehörigkeit | Tier | Visuelle Wirkung |
|---|---|---|
| 5 | bronze | klein |
| 10 | silber | mittel |
| 15 | silber-plus | mittel |
| 25 | gold | groß |
| 40 | platin | sehr groß |
| 45 / 50 | diamant | maximale Hervorhebung |
Key-Facts (gerundete Schmuck-Werte)
Bei Jubilaren liefert die Engine gerundete Performance-Kennzahlen, damit das Dashboard schöne Aussagen treffen kann:
| Kennzahl | Rundung | Beispiel |
|---|---|---|
Workorder-Anzahl (workorderCount) | 10/50/100/1000 je nach Größe | „über 1.250 Arbeitsaufträge bearbeitet" |
Gesamt-Arbeitsstunden (totalWorkHours) | 10/50/100/1000 je nach Größe | „ca. 8.500 Stunden für unser Team" |
Die Rundungs-Logik (roundToCelebrationNumber in dashboardBadges.service.ts):
- < 100 → nächste 10er-Stelle
- < 1000 → nächste 50er
- < 10000 → nächste 100er
- ≥ 10000 → nächste 1000er
Fehler-Toleranz: Wenn die Aggregation für einen Wert fehlschlägt (z. B. wegen großer Datenmengen), wird das Feld weggelassen — die Anzeige zeigt dann nur das Jubiläum ohne Fact, keinen Fehler.
Verknüpfungen
- Employee — Quelle für Geburtsdatum, Eintrittsdatum, Consent-Flags
- Workorder + EmployeeTimeTracking — Datenquelle für Key-Facts
- ComplianceCheck —
jubileeNoticetriggert parallel den Acknowledge-Workflow für die HR-Leitung
Versionshinweise
- 2026-05 (Welle 101): Initiale Doku basiert auf Service
dashboardBadges.service.ts(502 Zeilen) + RouterdashboardBadges.router.ts. Neu eingeführt mitfeat(dashboard): jubiläums-key-factsundfeat(dashboard): festliche celebration-cards mit tier-system.