feat: add account hierarchy, budget types (GWG/Anlagen/Instandhaltung), and Buchhaltung UI overhaul with collapsible tree, pending badge, and konto detail page

This commit is contained in:
Matthias Hochmeister
2026-03-30 09:49:28 +02:00
parent bc39963746
commit 0c5432b50e
9 changed files with 673 additions and 116 deletions

View File

@@ -3,7 +3,7 @@ import type {
Haushaltsjahr, HaushaltsjahrFormData,
Bankkonto, BankkontoFormData,
Konto, KontoFormData, KontoBudgetInfo,
KontoTyp,
KontoTyp, KontoTreeNode, KontoDetailResponse,
Transaktion, TransaktionFormData, TransaktionFilters,
Beleg,
BuchhaltungStats,
@@ -74,12 +74,25 @@ export const buchhaltungApi = {
const r = await api.get(`/api/buchhaltung/konten/${id}/budget`);
return r.data.data;
},
getKontenTree: async (haushaltsjahrId: number): Promise<KontoTreeNode[]> => {
const r = await api.get(`/api/buchhaltung/konten/tree?haushaltsjahr_id=${haushaltsjahrId}`);
return r.data;
},
getKontoDetail: async (id: number): Promise<KontoDetailResponse> => {
const r = await api.get(`/api/buchhaltung/konten/${id}/detail`);
return r.data;
},
// ── Stats ────────────────────────────────────────────────────────────────────
getStats: async (haushaltsjahrId: number): Promise<BuchhaltungStats> => {
const r = await api.get(`/api/buchhaltung/stats?haushaltsjahr_id=${haushaltsjahrId}`);
return r.data.data;
},
getPendingCount: async (haushaltsjahrId?: number): Promise<number> => {
const params = haushaltsjahrId ? `?haushaltsjahr_id=${haushaltsjahrId}` : '';
const r = await api.get(`/api/buchhaltung/stats/pending${params}`);
return r.data.count;
},
// ── Transaktionen ─────────────────────────────────────────────────────────────
getTransaktionen: async (filters?: TransaktionFilters): Promise<Transaktion[]> => {