fix(buchhaltung): format transaction IDs as YYYY/NR and deduplicate dashboard widgets

This commit is contained in:
Matthias Hochmeister
2026-04-14 15:00:38 +02:00
parent a94d486a42
commit e6b6639fe9
4 changed files with 15 additions and 4 deletions

View File

@@ -1219,7 +1219,7 @@ function TransaktionenTab({ haushaltsjahre, selectedJahrId, onJahrChange }: {
)}
{subTabTransaktionen.map((t: Transaktion) => (
<TableRow key={t.id} hover>
<TableCell>{t.laufende_nummer ?? `E${t.id}`}</TableCell>
<TableCell>{t.laufende_nummer != null ? `${t.haushaltsjahr_jahr}/${t.laufende_nummer}` : `E${t.id}`}</TableCell>
<TableCell>{fmtDate(t.datum)}</TableCell>
<TableCell>
<Chip

View File

@@ -198,7 +198,7 @@ function Dashboard() {
const allKeys = DEFAULT_ORDER[group];
const ordered = saved.filter((k: string) => allKeys.includes(k) && !customGroupKeys.has(k));
const remaining = allKeys.filter((k) => !allSavedKeys.has(k));
merged[group] = [...ordered, ...remaining];
merged[group] = [...new Set([...ordered, ...remaining])];
}
}
// Include custom groups from preferences
@@ -206,7 +206,7 @@ function Dashboard() {
for (const cg of preferences.customGroups as { name: string; title: string }[]) {
if (!merged[cg.name]) merged[cg.name] = [];
if (preferences.widgetOrder[cg.name]) {
merged[cg.name] = preferences.widgetOrder[cg.name] as string[];
merged[cg.name] = [...new Set(preferences.widgetOrder[cg.name] as string[])];
}
}
}

View File

@@ -133,6 +133,7 @@ export interface Transaktion {
konto_id: number | null;
bankkonto_id: number | null;
laufende_nummer: number | null;
haushaltsjahr_jahr?: number;
typ: TransaktionTyp;
betrag: number;
datum: string;