feat: Überstunden-Kappung + Jahresverfall pro Firma konfigurierbar

Backend:
- Company: overtime_cap_hours, overtime_expiry_enabled/month/day,
  overtime_max_carryover_hours
- OvertimeBalance: last_expiry_applied_at
- Migration 0031: neue Spalten in companies + overtime_balances
- _recalculate_overtime_balance: Kappung direkt nach Berechnung
- apply_overtime_expiry_if_needed(): lazy Verfall beim Balance-Abruf
- GET /absences/overtime-balance: prüft + wendet Verfall automatisch an
- POST /absences/overtime-balance/apply-expiry: manueller Trigger (Admin)

Frontend:
- CompanySettingsPage: neuer Block 'Überstunden-Konto'
  - Toggle Kappungsgrenze + Stunden-Input
  - Toggle Jahresverfall + Stichtag (Tag/Monat) + max. Übertrag
  - 'Verfall anwenden'-Button für Admins

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 22:48:30 +02:00
parent 23b45881a1
commit 23ba7f1762
8 changed files with 364 additions and 1 deletions
+67
View File
@@ -1491,3 +1491,70 @@ Keine Commits in dieser Session.
- frontend/src/types/hoursPayout.ts | 26 ++
---
## 2026-05-25 22:21 22:22 (1m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- 549783a feat: Stunden-Auszahlungen in /mobile Profil-Screen
### Geänderte Dateien
- DEVLOG.md | 21 ++++++
- frontend/src/pages/mobile/MobileProfileScreen.tsx | 87 ++++++++++++++++++++++-
---
## 2026-05-25 22:25 22:29 (3m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
- 23b4588 fix: Überstunden tages-weise berechnen statt Gesamtzeitraum
### Geänderte Dateien
- backend/app/services/report_service.py | 19 ++++++++++++++++---
---
## 2026-05-25 22:32 22:33 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- backend/app/services/report_service.py | 19 ++++++++++++++++---
---
## 2026-05-25 22:37 22:39 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- backend/app/services/report_service.py | 19 ++++++++++++++++---
---
## 2026-05-25 22:39 22:40 (0m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- backend/app/services/report_service.py | 19 ++++++++++++++++---
---
## 2026-05-25 22:44 22:47 (2m)
**Beschreibung:** Claude Code Session
**Projekt:** timemaster
### Commits
Keine Commits in dieser Session.
### Geänderte Dateien
- backend/app/services/report_service.py | 19 ++++++++++++++++---
---