fix(attendance): binding payroll-recap formulas, back-computed against a real payslip
Formulas per the owner's verified spec (Dominik Vesecký 5/2026, exact to
a tenth of an hour — built-in acceptance dataset pins every line):
- fond = (Po-Pá dny mimo svátek) × 8 [was: incl. holidays]
- odpracováno = (dny se záznamem Práce mimo svátek) × 8, paušálně
[was: actual worked hours minus holiday work]
- přesčas = max(0, (worked_total + dovolená) − fond)
[was: worked only, holiday-including fond]
- vč. svátků = odpracováno + přesčas [was: worked_total]
- svátek/dovolená/so-ne/noc unchanged (already verified correct)
Expected 5/2026: fond 152 · odpracováno 144 · svátek 8 · dovolená 24 ·
přesčas 17,25→17,3 · vč. 161,25→161,3 · So/Ne 57,25 · noc 36,75 (the
payslip's 31 was the accountant's own error — she missed the 31.5.→1.6.
overnight shift; the spec mandates 36,75).
Two-shift days count once toward odpracováno; 'holiday' placeholder
records stay evidence-only; holiday table remains year-parametric
(fixed dates + computed Easter).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>