feat: Stunden-Auszahlung Feature (/hr/payouts)

- Backend: Model HoursPayout, Schema, Router GET/POST/DELETE
- GET /hr/payouts: HR/Admin sehen alle, Employee/Manager nur eigene
- POST /hr/payouts: reduziert OvertimeBalance.taken_hours sofort
- DELETE /hr/payouts/{id}: storniert und bucht Stunden zurück
- AuditLog-Einträge bei Anlegen und Stornieren
- Migration 0030: hours_payouts Tabelle
- Frontend: /hr/payouts Seite (lila, 💸) mit Filter, Tabelle, Modal
- Modal zeigt verfügbares Überstundenguthaben + Warnung bei Überziehung
- Navigation: Stunden-Auszahlung (HR/COMPANY_ADMIN/SUPER_ADMIN)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 22:17:52 +02:00
parent e83a3fbbdd
commit a63b0e835f
11 changed files with 956 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
export interface HoursPayoutCreate {
user_id: string
hours: number
period_year?: number | null
period_month?: number | null
note?: string | null
}
export interface HoursPayoutOut {
id: string
company_id: string
user_id: string
user_name: string
hours: number
period_year: number | null
period_month: number | null
note: string | null
created_by: string
created_by_name: string
created_at: string
}
export interface HoursPayoutListResponse {
payouts: HoursPayoutOut[]
total_count: number
}