feat(buchhaltung): add categories, recurring tx scheduling, sub-pot budget validation, and UX polish

This commit is contained in:
Matthias Hochmeister
2026-03-30 12:56:33 +02:00
parent 86cb175aeb
commit 13aa4be599
9 changed files with 674 additions and 149 deletions

View File

@@ -48,6 +48,13 @@ export const INTERVALL_LABELS: Record<WiederkehrendIntervall, string> = {
};
// Entities
export interface Kategorie {
id: number;
haushaltsjahr_id: number;
bezeichnung: string;
sortierung: number;
}
export interface KontoTyp {
id: number;
bezeichnung: string;
@@ -87,6 +94,7 @@ export interface Konto {
kontonummer: number;
bezeichnung: string;
parent_id: number | null;
kategorie_id: number | null;
budget_gwg: number;
budget_anlagen: number;
budget_instandhaltung: number;
@@ -106,6 +114,7 @@ export interface KontoTreeNode extends Konto {
spent_anlagen: number;
spent_instandhaltung: number;
einnahmen_betrag: number;
kategorie_bezeichnung?: string;
children: KontoTreeNode[];
}
@@ -177,6 +186,8 @@ export interface WiederkehrendBuchung {
empfaenger_auftraggeber: string | null;
intervall: WiederkehrendIntervall;
naechste_ausfuehrung: string;
ausfuehrungstag: 'erster' | 'mitte' | 'letzter';
ausfuehrungs_monat: number | null;
aktiv: boolean;
erstellt_von: string | null;
erstellt_am: string;
@@ -225,6 +236,7 @@ export interface KontoFormData {
budget_anlagen: number;
budget_instandhaltung: number;
parent_id?: number | null;
kategorie_id?: number | null;
notizen?: string;
}
@@ -264,6 +276,8 @@ export interface WiederkehrendFormData {
empfaenger_auftraggeber?: string;
intervall: WiederkehrendIntervall;
naechste_ausfuehrung: string;
ausfuehrungstag?: 'erster' | 'mitte' | 'letzter';
ausfuehrungs_monat?: number;
aktiv?: boolean;
}