feat: Gegenseite eines Übertrags braucht keine eigene Transfer-Regel
Bisher musste die Regel auf BEIDEN Auszügen ein fremdes Gegenkonto liefern. Beim Empfangs-Auszug zeigt sie aber auf das Konto, das gerade importiert wird – damit blieb die Zeile ohne Gegenkonto und wurde still als Einnahme gebucht. - Gegenbuchungen werden über die Konto-Seite bestehender Transfers gesucht, nicht über das Konto-Paar. Der Empfangs-Auszug braucht damit keine Regel mehr; eine Regel auf der abgehenden Seite genügt für beide Dateien. - Trifft eine Transfer-Regel, ohne dass ein Gegenkonto feststeht, wird die Zeile nicht mehr als Einnahme/Ausgabe gebucht, sondern in der Prüfansicht mit „Gegenkonto wählen" markiert – sonst zählt die Bewegung je nach Import- Reihenfolge doppelt. - Tests für beide Reihenfolgen; 86 grün. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -334,7 +334,8 @@
|
||||
"reconOk": "Saldo-Abgleich stimmt: alle {{n}} Schritte passen zur Kontostand-Spalte der Datei.",
|
||||
"reconDiff": "Saldo-Abgleich weicht ab. Laut Datei: {{file}} · errechnet: {{app}} · Differenz: {{diff}}.",
|
||||
"reconFirst": "Erste Abweichung am {{date}} bei „{{payee}}“: Bank {{expected}}, erkannt {{actual}}.",
|
||||
"reconOpening": "Anfangssaldo laut Datei: {{value}} (trage ihn beim Konto ein, damit der Stand stimmt)."
|
||||
"reconOpening": "Anfangssaldo laut Datei: {{value}} (trage ihn beim Konto ein, damit der Stand stimmt).",
|
||||
"needsTarget": "Gegenkonto wählen"
|
||||
},
|
||||
"password": {
|
||||
"show": "Passwort anzeigen",
|
||||
|
||||
@@ -334,7 +334,8 @@
|
||||
"reconOk": "Balance check passes: all {{n}} steps match the file's balance column.",
|
||||
"reconDiff": "Balance check failed. Per file: {{file}} · computed: {{app}} · difference: {{diff}}.",
|
||||
"reconFirst": "First mismatch on {{date}} at “{{payee}}”: bank {{expected}}, detected {{actual}}.",
|
||||
"reconOpening": "Opening balance per file: {{value}} (enter it on the account so the balance matches)."
|
||||
"reconOpening": "Opening balance per file: {{value}} (enter it on the account so the balance matches).",
|
||||
"needsTarget": "pick account"
|
||||
},
|
||||
"password": {
|
||||
"show": "Show password",
|
||||
|
||||
@@ -257,6 +257,7 @@ export default function Import() {
|
||||
{r.payee || r.purpose || ""}
|
||||
{r.is_duplicate && <span className="badge" style={{ marginLeft: 6 }}>{t("import.duplicate")}</span>}
|
||||
{r.is_counterpart && <span className="badge" style={{ marginLeft: 6 }}>{t("import.counterpart")}</span>}
|
||||
{r.needs_target && <span className="badge" style={{ marginLeft: 6 }}>{t("import.needsTarget")}</span>}
|
||||
{r.skip_reason === "state" && (
|
||||
<span className="badge" style={{ marginLeft: 6 }}>{r.state || t("import.skipState")}</span>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user