Repository navigation
Description
Feature Request: Soll-/Ist-Stundenvergleich nach Arbeitsvertrag in der Arbeitszeiten-Übersicht
Is your feature request related to a problem? Please describe.
In der aktuellen Arbeitszeiten-Auflistung werden lediglich die erfassten Ist-Zeiten der Mitarbeiter angezeigt. Um festzustellen, ob ein Mitarbeiter im ausgewählten Zeitraum Überstunden aufgebaut hat oder im Minusstunden-Bereich liegt, muss die vertraglich vereinbarte Sollarbeitszeit bisher manuell nachgeschlagen und gegengerechnet werden. Das erschwert die Monats- und Periodenprüfung erheblich.
Describe the solution you'd like
Die Tabelle/Auflistung unter dem Menüpunkt „Arbeitszeiten“ soll direkt mit den Vertragsdaten verknüpft werden und einen automatischen Soll-/Ist-Vergleich für den gewählten Filterzeitraum darstellen:
1. Einbindung der Vertragsstunden (Soll)
- Automatische Berechnung der vertraglichen Sollstunden für den gewählten Betrachtungszeitraum (z. B. Woche, Monat oder benutzerdefinierte Zeitspanne) basierend auf dem hinterlegten Arbeitsvertrag bzw. Arbeitszeitmodell des Mitarbeiters.
- Berücksichtigung von Feiertagen und genehmigten Abwesenheiten (z. B. Urlaub, Krankheit) bei der Soll-Berechnung.
2. Visuelle Gegenüberstellung (Soll vs. Ist)
- Direkte Gegenüberstellung der tatsächlich erfassten Netto-Arbeitszeit (Ist) und der vertraglich geforderten Zeit (Soll) pro Mitarbeiter.
- Eine separate Differenzspalte (z. B.
+/- DifferenzoderSaldo), die auf einen Blick zeigt, ob zu viel (+Überstunden) oder zu wenig (-Minusstunden) gearbeitet wurde.
3. Visuelles Feedback / Indikatoren
- Farbliche Hervorhebung der Differenz zur schnellen Erfassung (z. B. grün bei positivem Saldo/im Rahmen, rot/orange bei Minusstunden bzw. deutlicher Überstundenüberschreitung).
Feature Request: Target vs. Actual Hours Comparison based on Employment Contract in "Arbeitszeiten" (Working Hours)
Is your feature request related to a problem? Please describe.
The current working hours overview only displays the logged actual hours for each employee. To determine whether an employee has accrued overtime or has a deficit in a given period, managers/HR have to manually look up contractual target hours and calculate the balance by hand. This makes monthly and periodic reviews inefficient.
Describe the solution you'd like
The table/list under the "Arbeitszeiten" (Working Hours) menu should directly integrate contractual hours to provide an automated Target vs. Actual comparison for the selected timeframe:
1. Integration of Contractual Target Hours
- Automatically calculate target hours for the selected timeframe (e.g., current week, month, or custom date range) based on the employee's assigned contract / work schedule model.
- Factor in public holidays and approved absences (vacation, sick leave) when calculating expected target hours.
2. Target vs. Actual Display
- Show the logged actual hours side-by-side with the expected contractual target hours per employee.
- Add a dedicated variance column (e.g.,
+/- Balance/Difference) clearly indicating overtime (+) or deficit (-).
3. Visual Indicators
- Provide clear visual cues/color coding for the balance (e.g., green for positive/balanced, red/amber for deficits or excessive overtime thresholds) for quick visual scanning.
Activity
patrickschiller commentedon Nov 7, 2026
Umgesetzt in PR #49: #49
Head
3a2361d0d2d25f23ce030ce751cf67873aedbf8f· Branchfeat/45-contract-period-comparison.Kumulativ / abhängig: #42 (PR #46) → #41 (PR #47) → #43 (PR #48) → #45 (PR #49). PR-Ziel ist
mainfür alle bestehenden CI-Gates. Keine der PRs wurde gemergt; kein Release, Tag, Versionsbump oder Deployment.Ergebnis
Belegte automatisierte Gates
pnpm verify:api, Diff-ChecksAlle fünf GitHub-Checks auf
3a2361d0d2d25f23ce030ce751cf67873aedbf8ferfolgreich:Deutsche Nachtestanleitung: docs/ISSUE_FIXES_MANUAL_TEST.de.md – separater lokaler Stack/Port, HR-Vertragspflege, unbekannte Historie, nachrechenbare Soll/Ist-Zahlen, Rollen-/Negativfälle und tatsächliche Prüfevidenz. Manueller Docker-/Browserdurchlauf nicht als durchgeführt behauptet.
Paket #45 ist zur unabhängigen Abnahme bereit. #44 wurde nicht begonnen.