fix: neutrale Kategorien gelten für Ausgabe UND Einnahme

Kategorien erben ihre Art von der Gruppe, und die ist entweder Ausgabe oder
Einnahme. Für einen Kontoübertrag passt beides nicht: Auf dem einen Konto geht
Geld raus, auf dem anderen kommt es rein – man musste also zwei Kategorien in
zwei Gruppen anlegen.

Als „nicht in Auswertungen einrechnen" markierte Kategorien werden jetzt in
beiden Richtungen angeboten (Buchungsformular und Import-Prüfansicht), und ihre
Schlagwörter greifen unabhängig vom Vorzeichen. Eine Kategorie „Kontoübertrag"
in einer Ausgabe-Gruppe genügt damit für beide Seiten.

Test für beide Richtungen; 94 grün.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Guido
2026-08-21 14:09:54 +02:00
co-authored by Claude Opus 4.8
parent 7674e47f43
commit af865a5c7b
5 changed files with 69 additions and 9 deletions
+3 -2
View File
@@ -7,6 +7,7 @@ import { useToast } from "../toast";
import Icon from "../components/Icon";
import CategorySelect from "../components/CategorySelect";
import DataTable from "../components/DataTable";
import { gruppenFuer } from "../kategorien";
import { formatMoney } from "../format";
// Eine Uhrzeit im Wert ist unkritisch – parse_date im Backend schneidet sie ab.
@@ -217,8 +218,8 @@ export default function Import() {
}));
}, [raw]);
const expenseGroups = useMemo(() => groups.filter((g) => g.kind === "expense"), [groups]);
const incomeGroups = useMemo(() => groups.filter((g) => g.kind === "income"), [groups]);
const expenseGroups = useMemo(() => gruppenFuer(groups, "expense"), [groups]);
const incomeGroups = useMemo(() => gruppenFuer(groups, "income"), [groups]);
const includeCount = rows ? rows.filter((r) => r.include).length : 0;