* fix(import): let a skattekontoutdrag that does not sum through a confirm gate
The skattekonto file parser refused any statement where ingående saldo plus
händelser did not equal utgående saldo with a bare 400 and no figures. A
real export hit it on 2026-08-18 and the user had no way forward, and the
logs carried nothing to diagnose it with. Nothing is booked at import and
the dedup contract makes a later complete re-import safe, so refusing the
file only blocked the rows that WERE readable.
- Parser: report events_sum / sum_difference / unreadable_amount_rows
instead of just a boolean; reduce several marker pairs to the earliest
opening and latest closing (per-year sections, newest-first files); read
a marker saldo from a trailing running-saldo column when the belopp cell
is empty; accept U+2212 and dash lookalikes as minus and a leading plus.
- Route: no longer 400s on sum_valid=false; logs the figures (amounts and
counts, never row text) so the next report is diagnosable. Zero readable
rows still refuses. SKATTEKONTO_FILE_SUM_MISMATCH removed (unused).
- Preview: an "Utdraget summerar inte" card with ingående, händelser,
ingående+händelser, utgående and differens plus a confirm checkbox that
gates the import button, mirroring the orgnr-mismatch gate. A one-line
note explains that nothing is booked at import and that events already
carrying a 1630 verifikat are offered as a link, not a second booking.
Verified end to end in the sandbox: gate renders, import proceeds after
confirmation, rows land on /skattekonto with Matcha/Bokför.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(import): round the derived händelser total and fall back to the date cell for an invalid marker date
Review nits on #1675.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Jakob Wennberg <311770904+jakobwennberg-oss@users.noreply.github.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>