From f27e3134ca6204f5cc58a8b470703fea5b7e66eb Mon Sep 17 00:00:00 2001 From: Matthias Hochmeister Date: Mon, 30 Mar 2026 14:37:04 +0200 Subject: [PATCH] fix(buchhaltung): respect budget_typ in konten manage table and pod detail subaccounts view --- frontend/src/pages/Buchhaltung.tsx | 15 ++++--- frontend/src/pages/BuchhaltungKontoDetail.tsx | 42 ++++++++++--------- 2 files changed, 32 insertions(+), 25 deletions(-) diff --git a/frontend/src/pages/Buchhaltung.tsx b/frontend/src/pages/Buchhaltung.tsx index 2b6ea04..e9dd1ca 100644 --- a/frontend/src/pages/Buchhaltung.tsx +++ b/frontend/src/pages/Buchhaltung.tsx @@ -487,8 +487,8 @@ function buildTree(flat: KontoTreeNode[]): KontoTreeNode[] { function KontoRow({ konto, depth = 0, onNavigate }: { konto: KontoTreeNode; depth?: number; onNavigate: (id: number) => void }) { const [open, setOpen] = useState(false); const isEinfach = (konto.budget_typ || 'detailliert') === 'einfach'; - const totalBudget = isEinfach ? Number(konto.budget_gesamt || 0) : konto.budget_gwg + konto.budget_anlagen + konto.budget_instandhaltung; - const totalSpent = konto.spent_gwg + konto.spent_anlagen + konto.spent_instandhaltung; + 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 utilization = totalBudget > 0 ? (totalSpent / totalBudget) * 100 : 0; return ( @@ -534,7 +534,10 @@ function KontoManageRow({ konto, depth = 0, onNavigate }: { onNavigate: (id: number) => void; }) { const [open, setOpen] = useState(false); - const totalBudget = Number(konto.budget_gwg) + Number(konto.budget_anlagen) + Number(konto.budget_instandhaltung); + const isEinfach = (konto.budget_typ || 'detailliert') === 'einfach'; + const totalBudget = isEinfach + ? Number(konto.budget_gesamt || 0) + : Number(konto.budget_gwg) + Number(konto.budget_anlagen) + Number(konto.budget_instandhaltung); return ( <> @@ -542,9 +545,9 @@ function KontoManageRow({ konto, depth = 0, onNavigate }: { {konto.kontonummer} — {konto.bezeichnung} - {fmtEur(konto.budget_gwg)} - {fmtEur(konto.budget_anlagen)} - {fmtEur(konto.budget_instandhaltung)} + {isEinfach ? '—' : fmtEur(konto.budget_gwg)} + {isEinfach ? '—' : fmtEur(konto.budget_anlagen)} + {isEinfach ? '—' : fmtEur(konto.budget_instandhaltung)} {fmtEur(totalBudget)} {konto.children.length > 0 && ( diff --git a/frontend/src/pages/BuchhaltungKontoDetail.tsx b/frontend/src/pages/BuchhaltungKontoDetail.tsx index e52f527..b942a21 100644 --- a/frontend/src/pages/BuchhaltungKontoDetail.tsx +++ b/frontend/src/pages/BuchhaltungKontoDetail.tsx @@ -124,29 +124,33 @@ export default function BuchhaltungKontoDetail() { Konto - Budget GWG - Budget Anlagen - Budget Instandh. + {!isEinfach && Budget GWG} + {!isEinfach && Budget Anlagen} + {!isEinfach && Budget Instandh.} Budget Gesamt - {children.map(child => ( - navigate(`/buchhaltung/konto/${child.id}`)} - > - {child.kontonummer} — {child.bezeichnung} - {fmtEur(Number(child.budget_gwg))} - {fmtEur(Number(child.budget_anlagen))} - {fmtEur(Number(child.budget_instandhaltung))} - - {fmtEur(Number(child.budget_gwg) + Number(child.budget_anlagen) + Number(child.budget_instandhaltung))} - - - ))} + {children.map(child => { + const childIsEinfach = (child.budget_typ || 'detailliert') === 'einfach'; + const childTotal = childIsEinfach + ? Number(child.budget_gesamt || 0) + : Number(child.budget_gwg) + Number(child.budget_anlagen) + Number(child.budget_instandhaltung); + return ( + navigate(`/buchhaltung/konto/${child.id}`)} + > + {child.kontonummer} — {child.bezeichnung} + {!isEinfach && {childIsEinfach ? '—' : fmtEur(Number(child.budget_gwg))}} + {!isEinfach && {childIsEinfach ? '—' : fmtEur(Number(child.budget_anlagen))}} + {!isEinfach && {childIsEinfach ? '—' : fmtEur(Number(child.budget_instandhaltung))}} + {fmtEur(childTotal)} + + ); + })}