Files
accounted/lib
Jakob WennbergandClaude Opus 4.8 4872c0f242 fix(reports): stable total order on SIE-export fetchAllRows paging (#793 hardening) (#824)
#820 fixed the primary #793 truncation (the nested embedded-resource select hit
PostgREST's row ceiling, exporting ~30 vouchers) by splitting entries and lines
into two fetchAllRows calls. But both queries paged without a stable TOTAL order:
the entries query ordered by voucher_number alone (not unique across voucher
series) and the lines query had no .order() at all. Per the fetch-all.ts
invariant, .range() paging without a unique total order can duplicate or skip
rows across the 1000-row boundary — so a year with >1000 entries/lines and
multiple series could still drop or double a voucher in the SIE file (BFL
completeness).

- Entries: order by voucher_series + voucher_number (unique per company+period).
- Lines: order by the line PK id.
- Both carry dedupeBy: r => r.id as defense-in-depth, mirroring the general
  ledger / trial balance fix in #811.
- Give the large-period test's line fixtures unique ids so the >1-page dedupe
  path is exercised realistically (all 5000 lines survive).

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-29 21:39:40 +02:00
..
2026-06-16 18:22:09 +02:00
2026-06-10 13:52:24 +02:00
2026-06-18 11:49:33 +02:00
2026-06-16 10:42:37 +02:00
2026-06-29 16:34:51 +02:00
2026-03-21 00:47:54 +01:00
2026-06-16 18:22:09 +02:00
2026-02-24 16:06:36 +01:00
2026-05-26 22:29:41 +02:00
2026-06-29 16:34:51 +02:00
2026-06-12 16:35:30 +02:00
2026-06-12 16:35:30 +02:00
2026-04-22 18:14:01 +02:00
2026-06-29 16:34:51 +02:00
2026-06-18 11:49:33 +02:00
2026-05-28 15:43:48 +02:00
2026-05-26 22:29:41 +02:00
2026-05-06 11:12:02 +02:00
2026-05-28 15:43:48 +02:00
2026-04-29 16:32:26 +02:00