diff --git a/backend/src/services/buchhaltung.service.ts b/backend/src/services/buchhaltung.service.ts
index 6981463..503bc60 100644
--- a/backend/src/services/buchhaltung.service.ts
+++ b/backend/src/services/buchhaltung.service.ts
@@ -496,10 +496,11 @@ async function getKontenTree(haushaltsjahrId: number) {
kt.bezeichnung as konto_typ_bezeichnung, kt.art as konto_typ_art,
pk.bezeichnung AS parent_bezeichnung,
k.kategorie_id, kat.bezeichnung AS kategorie_bezeichnung,
- COALESCE(SUM(CASE WHEN t.typ='ausgabe' AND t.ausgaben_typ='gwg' AND t.status='gebucht' THEN t.betrag ELSE 0 END), 0) AS spent_gwg,
- COALESCE(SUM(CASE WHEN t.typ='ausgabe' AND t.ausgaben_typ='anlagen' AND t.status='gebucht' THEN t.betrag ELSE 0 END), 0) AS spent_anlagen,
- COALESCE(SUM(CASE WHEN t.typ='ausgabe' AND t.ausgaben_typ='instandhaltung' AND t.status='gebucht' THEN t.betrag ELSE 0 END), 0) AS spent_instandhaltung,
- COALESCE(SUM(CASE WHEN t.typ='einnahme' AND t.status='gebucht' THEN t.betrag ELSE 0 END), 0) AS einnahmen_betrag
+ COALESCE(SUM(CASE WHEN t.typ='ausgabe' AND t.ausgaben_typ='gwg' AND t.status IN ('gebucht','freigegeben') THEN t.betrag ELSE 0 END), 0) AS spent_gwg,
+ COALESCE(SUM(CASE WHEN t.typ='ausgabe' AND t.ausgaben_typ='anlagen' AND t.status IN ('gebucht','freigegeben') THEN t.betrag ELSE 0 END), 0) AS spent_anlagen,
+ COALESCE(SUM(CASE WHEN t.typ='ausgabe' AND t.ausgaben_typ='instandhaltung' AND t.status IN ('gebucht','freigegeben') THEN t.betrag ELSE 0 END), 0) AS spent_instandhaltung,
+ COALESCE(SUM(CASE WHEN t.typ='ausgabe' AND t.status IN ('gebucht','freigegeben') THEN t.betrag ELSE 0 END), 0) AS spent_gesamt,
+ COALESCE(SUM(CASE WHEN t.typ='einnahme' AND t.status IN ('gebucht','freigegeben') THEN t.betrag ELSE 0 END), 0) AS einnahmen_betrag
FROM buchhaltung_konten k
LEFT JOIN buchhaltung_konto_typen kt ON k.konto_typ_id = kt.id
LEFT JOIN buchhaltung_konten pk ON pk.id = k.parent_id
diff --git a/frontend/src/pages/Buchhaltung.tsx b/frontend/src/pages/Buchhaltung.tsx
index c0ba18d..fda6c80 100644
--- a/frontend/src/pages/Buchhaltung.tsx
+++ b/frontend/src/pages/Buchhaltung.tsx
@@ -513,7 +513,7 @@ function KontoRow({ konto, depth = 0, onNavigate }: { konto: KontoTreeNode; dept
const [open, setOpen] = useState(false);
const isEinfach = (konto.budget_typ || 'detailliert') === 'einfach';
const totalBudget = isEinfach ? Number(konto.budget_gesamt || 0) : Number(konto.budget_gwg || 0) + Number(konto.budget_anlagen || 0) + Number(konto.budget_instandhaltung || 0);
- const totalSpent = Number(konto.spent_gwg || 0) + Number(konto.spent_anlagen || 0) + Number(konto.spent_instandhaltung || 0);
+ const totalSpent = Number(konto.spent_gesamt || 0);
return (
<>
@@ -618,7 +618,7 @@ function UebersichtTab({ haushaltsjahre, selectedJahrId, onJahrChange }: {
const sumSpentGwg = treeData.reduce((s, k) => s + Number(k.spent_gwg || 0), 0);
const sumSpentAnlagen = treeData.reduce((s, k) => s + Number(k.spent_anlagen || 0), 0);
const sumSpentInst = treeData.reduce((s, k) => s + Number(k.spent_instandhaltung || 0), 0);
- const sumSpentGesamt = sumSpentGwg + sumSpentAnlagen + sumSpentInst;
+ const sumSpentGesamt = treeData.reduce((s, k) => s + Number(k.spent_gesamt || 0), 0);
const sumEinnahmen = treeData.reduce((s, k) => s + Number(k.einnahmen_betrag || 0), 0);
const totalEinnahmen = sumEinnahmen;
@@ -724,6 +724,7 @@ function UebersichtTab({ haushaltsjahre, selectedJahrId, onJahrChange }: {
const catSpentGwg = items.reduce((s, k) => s + Number(k.spent_gwg || 0), 0);
const catSpentAnl = items.reduce((s, k) => s + Number(k.spent_anlagen || 0), 0);
const catSpentInst = items.reduce((s, k) => s + Number(k.spent_instandhaltung || 0), 0);
+ const catSpentGesamt = items.reduce((s, k) => s + Number(k.spent_gesamt || 0), 0);
const catEinnahmen = items.reduce((s, k) => s + Number(k.einnahmen_betrag || 0), 0);
rows.push(
@@ -735,7 +736,7 @@ function UebersichtTab({ haushaltsjahre, selectedJahrId, onJahrChange }: {
{fmtEur(catSpentGwg)}
{fmtEur(catSpentAnl)}
{fmtEur(catSpentInst)}
- {fmtEur(catSpentGwg + catSpentAnl + catSpentInst)}
+ {fmtEur(catSpentGesamt)}
{fmtEur(catEinnahmen)}
@@ -1024,13 +1025,13 @@ function TransaktionenTab({ haushaltsjahre, selectedJahrId, onJahrChange }: {
const buchenMut = useMutation({
mutationFn: (id: number) => buchhaltungApi.buchenTransaktion(id),
- onSuccess: () => { qc.invalidateQueries({ queryKey: ['buchhaltung-transaktionen'] }); qc.invalidateQueries({ queryKey: ['buchhaltung-stats'] }); showSuccess('Transaktion gebucht'); },
+ onSuccess: () => { qc.invalidateQueries({ queryKey: ['buchhaltung-transaktionen'] }); qc.invalidateQueries({ queryKey: ['buchhaltung-stats'] }); qc.invalidateQueries({ queryKey: ['kontenTree'] }); showSuccess('Transaktion gebucht'); },
onError: () => showError('Buchung fehlgeschlagen'),
});
const stornoMut = useMutation({
mutationFn: (id: number) => buchhaltungApi.stornoTransaktion(id),
- onSuccess: () => { qc.invalidateQueries({ queryKey: ['buchhaltung-transaktionen'] }); qc.invalidateQueries({ queryKey: ['buchhaltung-stats'] }); setTxSubTab(0); showSuccess('Transaktion storniert'); },
+ onSuccess: () => { qc.invalidateQueries({ queryKey: ['buchhaltung-transaktionen'] }); qc.invalidateQueries({ queryKey: ['buchhaltung-stats'] }); qc.invalidateQueries({ queryKey: ['kontenTree'] }); setTxSubTab(0); showSuccess('Transaktion storniert'); },
onError: () => showError('Storno fehlgeschlagen'),
});
@@ -1981,20 +1982,20 @@ export default function Buchhaltung() {
-
+
-
-