diff --git a/frontend/src/pages/Buchhaltung.tsx b/frontend/src/pages/Buchhaltung.tsx index 7fa36f3..cd97232 100644 --- a/frontend/src/pages/Buchhaltung.tsx +++ b/frontend/src/pages/Buchhaltung.tsx @@ -48,13 +48,10 @@ import { Edit, ExpandLess as ExpandLessIcon, ExpandMore as ExpandMoreIcon, - HowToReg, Lock, Save, SwapHoriz, PictureAsPdf as PdfIcon, - ThumbDown, - ThumbUp, } from '@mui/icons-material'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { useNavigate, useSearchParams } from 'react-router-dom'; @@ -96,6 +93,7 @@ function fmtEur(val: number) { } const dividerLeft = { borderLeft: '2px solid', borderColor: 'divider' } as const; +const dividerRight = { borderRight: '2px solid', borderColor: 'divider' } as const; function fmtDate(val: string) { return new Date(val).toLocaleDateString('de-DE'); @@ -656,7 +654,7 @@ function KontoRow({ konto, depth = 0, onNavigate }: { konto: KontoTreeNode; dept {isEinfach ? '' : fmtEur(konto.spent_anlagen)} {isEinfach ? '' : fmtEur(konto.spent_instandhaltung)} {fmtEur(totalSpent)} - {fmtEur(konto.einnahmen_betrag)} + {fmtEur(konto.einnahmen_betrag)} {konto.children.length > 0 && ( { e.stopPropagation(); setOpen(!open); }}> @@ -816,7 +814,7 @@ function UebersichtTab({ haushaltsjahre, selectedJahrId, onJahrChange }: { Ausgaben Anlagen Ausgaben Instandh. Ausgaben Gesamt - Einnahmen + Einnahmen @@ -861,7 +859,7 @@ function UebersichtTab({ haushaltsjahre, selectedJahrId, onJahrChange }: { {fmtEur(catSpentAnl)} {fmtEur(catSpentInst)} {fmtEur(catSpentGwg + catSpentAnl + catSpentInst)} - {fmtEur(catEinnahmen)} + {fmtEur(catEinnahmen)} ); @@ -883,7 +881,7 @@ function UebersichtTab({ haushaltsjahre, selectedJahrId, onJahrChange }: { {fmtEur(sumSpentAnlagen)} {fmtEur(sumSpentInst)} {fmtEur(sumSpentGesamt)} - {fmtEur(sumEinnahmen)} + {fmtEur(sumEinnahmen)} )} @@ -1171,24 +1169,6 @@ function TransaktionenTab({ haushaltsjahre, selectedJahrId, onJahrChange }: { onError: () => showError('Löschen fehlgeschlagen'), }); - const freigabeMut = useMutation({ - mutationFn: (id: number) => buchhaltungApi.requestFreigabe(id), - onSuccess: () => { qc.invalidateQueries({ queryKey: ['buchhaltung-transaktionen'] }); showSuccess('Freigabe angefragt'); }, - onError: () => showError('Freigabe konnte nicht angefragt werden'), - }); - - const approveMut = useMutation({ - mutationFn: (id: number) => buchhaltungApi.approveFreigabe(id), - onSuccess: () => { qc.invalidateQueries({ queryKey: ['buchhaltung-transaktionen'] }); qc.invalidateQueries({ queryKey: ['buchhaltung-stats'] }); showSuccess('Freigabe genehmigt'); }, - onError: () => showError('Genehmigung fehlgeschlagen'), - }); - - const rejectMut = useMutation({ - mutationFn: (id: number) => buchhaltungApi.rejectFreigabe(id), - onSuccess: () => { qc.invalidateQueries({ queryKey: ['buchhaltung-transaktionen'] }); showSuccess('Freigabe abgelehnt'); }, - onError: () => showError('Ablehnung fehlgeschlagen'), - }); - // ── Wiederkehrend mutations ── const canManage = hasPermission('buchhaltung:manage_accounts'); @@ -1263,7 +1243,7 @@ function TransaktionenTab({ haushaltsjahre, selectedJahrId, onJahrChange }: { const subTabTransaktionen = sortedTransaktionen.filter(t => { if (txSubTab === 0) return t.status === 'entwurf'; - if (txSubTab === 1) return t.status === 'gebucht' || t.status === 'freigegeben'; + if (txSubTab === 1) return t.status === 'gebucht'; return false; }); @@ -1391,30 +1371,15 @@ function TransaktionenTab({ haushaltsjahre, selectedJahrId, onJahrChange }: { {t.status === 'entwurf' && hasPermission('buchhaltung:edit') && ( - + - )} {t.status === 'gebucht' && hasPermission('buchhaltung:edit') && ( - - )} - {t.status === 'freigegeben' && hasPermission('buchhaltung:manage_accounts') && ( - <> - - - - )} - {(t.status === 'gebucht' || t.status === 'freigegeben') && hasPermission('buchhaltung:edit') && ( @@ -2140,20 +2105,20 @@ export default function Buchhaltung() { + Transaktionen Übersicht} /> - Transaktionen} /> - - = { export const TRANSAKTION_STATUS_LABELS: Record = { entwurf: 'Entwurf', gebucht: 'Gebucht', - freigegeben: 'Freigegeben', storniert: 'Storniert', }; export const TRANSAKTION_STATUS_COLORS: Record = { entwurf: 'default', gebucht: 'warning', - freigegeben: 'success', storniert: 'error', };