Rekapitulace (accountant notes, confirmed by owner 2026-07):
- Odpracováno = all worked hours EXCEPT hours worked on holidays
(was floor(worked/8)×8 — a 3h day printed as 0h)
- Vč. svátků a přesčasů = ALL worked hours; line2 − line1 = Svátek
(was worked + vacation − 8h×worked-holidays — could print less than
actually worked, and vacation inflated it)
- Přesčas = max(0, worked − fond), month-level, never negative
(was the sub-8h remainder + vacation — printed 3h overtime for a
3h month, 8h overtime for pure vacation, and −6h when a holiday
was worked)
- Svátek = hours actually WORKED on holiday dates
(was 8h per UNworked holiday — opposite meaning)
- So/Ne, Práce v noci, Dovolená, Fond unchanged (verified correct)
Single shared computeMzdaSummary now feeds BOTH the print and the
admin screen (they had drifted: capped vs uncapped holiday adjustment).
Print day table: one row PER RECORD — days with two shifts (real in
prod data) silently dropped all but the last record from the table
while the totals counted them all.
+7 spec tests (accountant's own examples); print snapshot updated to
the new spec values.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>