fix: Ein Saldo-Abgleich, der nicht mehr gilt, sagt das jetzt
Der Abgleich wird einmal serverseitig gerechnet, beim Erzeugen der Vorschau. Wer danach eine Zeile von Hand umstellt, erreicht ihn nicht – das gruene "stimmt" blieb stehen, obwohl es sich auf eine andere Leserichtung bezog. Mit der neuen Sammelaktion "Richtung umdrehen" waere das leicht passiert: ein Klick, und die Bestaetigung darueber stimmt nicht mehr. Nachgerechnet wird nicht – das waere eine zweite Wahrheit neben der ersten. Stattdessen sagt der Hinweis, dass seine Aussage veraltet ist. Beim Einlesen kommt die Art aus dem Vorzeichen; jede Abweichung ist also nachweislich eine Handaenderung. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
2891270ac2
commit
35c5d2c84a
@@ -390,6 +390,18 @@ export default function Import() {
|
||||
|
||||
const includeCount = rows ? rows.filter((r) => r.include).length : 0;
|
||||
|
||||
// Der Saldo-Abgleich wird EINMAL serverseitig gerechnet, beim Erzeugen der
|
||||
// Vorschau. Eine von Hand geaenderte Richtung erreicht ihn nicht – das
|
||||
// gruene „stimmt" bliebe stehen, obwohl es nicht mehr gilt.
|
||||
//
|
||||
// Nachrechnen waere die zweite Wahrheit neben der ersten. Stattdessen sagen
|
||||
// wir, dass die Aussage veraltet ist: Beim Parsen kommt die Art aus dem
|
||||
// Vorzeichen, jede Abweichung ist also eine Handaenderung.
|
||||
const abgleichVeraltet = (rows || []).some(
|
||||
(r) => r.include && r.valid && r.type !== "transfer"
|
||||
&& Math.sign(r.amount_cents || 0) !== richtung(r),
|
||||
);
|
||||
|
||||
// Summe je Richtung ueber die Zeilen, die wirklich gebucht werden.
|
||||
//
|
||||
// Eine gespiegelte Datei sieht man daran auf einen Blick: Ein Kartenauszug
|
||||
@@ -935,10 +947,13 @@ export default function Import() {
|
||||
</div>
|
||||
)}
|
||||
{recon?.available && (
|
||||
<div className={`alert ${recon.ok ? "ok" : "error"}`} style={{ marginBottom: "var(--sp-3)" }}>
|
||||
<Icon name={recon.ok ? "check" : "alert"} size={16} />
|
||||
<div className={`alert ${abgleichVeraltet ? "" : recon.ok ? "ok" : "error"}`}
|
||||
style={{ marginBottom: "var(--sp-3)" }}>
|
||||
<Icon name={abgleichVeraltet ? "alert" : recon.ok ? "check" : "alert"} size={16} />
|
||||
<div>
|
||||
{recon.ok ? (
|
||||
{abgleichVeraltet ? (
|
||||
<span>{t("import.reconStale")}</span>
|
||||
) : recon.ok ? (
|
||||
<span>{t("import.reconOk", { n: recon.checked })}</span>
|
||||
) : (
|
||||
<>
|
||||
|
||||
Reference in New Issue
Block a user