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' && ( + + )}