diff --git a/frontend/src/pages/ReportsPage.tsx b/frontend/src/pages/ReportsPage.tsx
index 0c07628..5206e8a 100644
--- a/frontend/src/pages/ReportsPage.tsx
+++ b/frontend/src/pages/ReportsPage.tsx
@@ -200,6 +200,24 @@ export function ReportsPage() {
a.download = `${type}_${dateFrom}_${dateTo}.${format}`; a.click()
}
+ const downloadDatev = async () => {
+ if (isManager && !filterUser) { setError('DATEV-Monatsblatt: bitte oben einen einzelnen Mitarbeiter auswählen.'); return }
+ const uid = filterUser || user?.id
+ if (!uid) { setError('Bitte einen Mitarbeiter auswählen.'); return }
+ const d = new Date(dateFrom)
+ const year = d.getFullYear()
+ const month = d.getMonth() + 1
+ const token = localStorage.getItem('access_token')
+ const res = await fetch(
+ `/api/v1/reports/datev-monthly/export?user_id=${uid}&year=${year}&month=${month}`,
+ { headers: { Authorization: `Bearer ${token}` } }
+ )
+ if (!res.ok) { setError('DATEV-Export fehlgeschlagen'); return }
+ const blob = await res.blob()
+ const a = document.createElement('a'); a.href = URL.createObjectURL(blob)
+ a.download = `datev_stundenaufzeichnung_${year}_${String(month).padStart(2, '0')}.pdf`; a.click()
+ }
+
const setQuick = (from: string, to: string) => { setDateFrom(from); setDateTo(to) }
const hasResult = !!(timeReport || absenceReport || overtimeReport || sickStats || payrollReport)
@@ -317,6 +335,13 @@ export function ReportsPage() {
>)}
+ {type === 'time' && (
+
+ )}