fix: "Nicht in Auswertungen einrechnen" galt fuer Sparen nicht
Wer den Haken an einer Kategorie setzt, sagt damit ausdruecklich: nicht ins Budget, nicht ins Dashboard, nicht in die Statistik. Die Sparen-Auswertung las ihn nicht – das Geld stand danach im Ringdiagramm, obwohl der Nutzer genau das abbestellt hatte. Beide Uebertrags-Wege halten sich jetzt daran, der am Stueck wie der aus zwei verknuepften Buchungen. Der Haken an der Kategorie gewinnt; ein Sparziel am Konto darf ihn nicht stillschweigend aushebeln. Und weil beides zusammen keinen Sinn ergibt, sagt es das Konto-Formular jetzt auch: Waehlt man dort eine Kategorie mit Haken, steht darunter, dass so nichts im Budget erscheinen wird. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e0688ab95e
commit
b69c383a72
@@ -171,6 +171,7 @@
|
||||
"savingsCategory": "Sparen gegen Kategorie",
|
||||
"savingsCategoryNone": "Kein Sparziel",
|
||||
"savingsCategoryHint": "Überweisungen auf dieses Konto zählen im Budget als Sparen gegen diese Kategorie – auch dann, wenn sie über die Bank als zwei verknüpfte Buchungen hereinkommen. Einzelne Buchungen lassen sich davon ausnehmen.",
|
||||
"savingsCategoryNeutral": "Diese Kategorie ist als „Nicht in Auswertungen einrechnen“ markiert. Der Haken an der Kategorie gewinnt: Solange er sitzt, taucht das Sparen weder im Budget noch im Dashboard auf.",
|
||||
"shortIdentWarning": "Kurze Erkennungstexte treffen leicht Fremdes: „Euro“ steckt auch in „Europa-Park“ oder „PayPal Europe“. Solche Buchungen werden dann fälschlich zu Überträgen. Nimm lieber etwas Eindeutiges wie die IBAN oder „Revolut**5064*“.",
|
||||
"moveUp": "Nach oben",
|
||||
"moveDown": "Nach unten",
|
||||
|
||||
@@ -171,6 +171,7 @@
|
||||
"savingsCategory": "Count savings towards",
|
||||
"savingsCategoryNone": "Not a savings account",
|
||||
"savingsCategoryHint": "Transfers into this account count as savings against this category in the budget – including those that arrive from the bank as two linked transactions. Individual transactions can be excluded.",
|
||||
"savingsCategoryNeutral": "This category is marked “exclude from reports”. The category's setting wins: while it is set, savings will not show up in the budget or the dashboard.",
|
||||
"shortIdentWarning": "Short match texts hit unrelated bookings: “Euro” also occurs in “Europa-Park” or “PayPal Europe”, turning those into transfers by mistake. Prefer something unique such as the IBAN.",
|
||||
"moveUp": "Move up",
|
||||
"moveDown": "Move down",
|
||||
|
||||
@@ -231,6 +231,16 @@ export default function Accounts() {
|
||||
api.listCategories().then(setGroups).catch(() => setGroups([]));
|
||||
}, []);
|
||||
const expenseGroups = useMemo(() => gruppenFuer(groups, "expense"), [groups]);
|
||||
// Eine Kategorie mit "Nicht in Auswertungen einrechnen" kann im Budget
|
||||
// nichts zeigen – der Haken an der Kategorie gewinnt. Das gehoert hierhin
|
||||
// gesagt und nicht erst gemerkt, wenn die Zahl fehlt.
|
||||
const sparzielNeutral = useMemo(() => {
|
||||
const id = Number(form?.savings_category_id);
|
||||
if (!id) return false;
|
||||
for (const g of groups)
|
||||
for (const c of g.categories || []) if (c.id === id) return !!c.excluded_from_stats;
|
||||
return false;
|
||||
}, [groups, form?.savings_category_id]);
|
||||
|
||||
function openNew() {
|
||||
setEditing(null);
|
||||
@@ -491,6 +501,9 @@ export default function Accounts() {
|
||||
/>
|
||||
</label>
|
||||
<p className="muted small">{t("accounts.savingsCategoryHint")}</p>
|
||||
{sparzielNeutral && (
|
||||
<p className="muted warn small">{t("accounts.savingsCategoryNeutral")}</p>
|
||||
)}
|
||||
|
||||
<label>
|
||||
<span>{t("accounts.icon")}</span>
|
||||
|
||||
Reference in New Issue
Block a user