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') && (
-
+
- } disabled={!t.konto_id} onClick={() => buchenMut.mutate(t.id)}>
+ } disabled={kontenFlat.length === 0 || bankkonten.length === 0 || !t.konto_id} onClick={() => buchenMut.mutate(t.id)}>
Buchen
)}
{t.status === 'gebucht' && hasPermission('buchhaltung:edit') && (
- } onClick={() => freigabeMut.mutate(t.id)}>
- Freigabe
-
- )}
- {t.status === 'freigegeben' && hasPermission('buchhaltung:manage_accounts') && (
- <>
- } onClick={() => approveMut.mutate(t.id)}>
- Genehmigen
-
- } onClick={() => rejectMut.mutate(t.id)}>
- Ablehnen
-
- >
- )}
- {(t.status === 'gebucht' || t.status === 'freigegeben') && hasPermission('buchhaltung:edit') && (
} onClick={() => stornoMut.mutate(t.id)}>
Stornieren
@@ -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',
};