Skip to content

Dovolená

Tento popis vysvětluje, jak systém ve skutečnosti počítá nárok na dovolenou v hodinách pro pracovníky na DPP a DPČ.

Používá se metodika platná od 1. 1. 2024 podle aktuálního českého zákoníku práce, ale výpočet vychází z reálných dat uložených v systému.

Kde je uložený roční nárok na dovolenou

Roční nárok na dovolenou se primárně bere z tabulky povolených typů práce:

  • wa_allowed_work_type_tab

Klíčem je:

  • department_id
  • work_type

Prakticky tedy nejde o nárok uložený jen "u zákazníka", ale přesněji u kombinace:

  • pracoviště / oddělení
  • typ práce

Pokud pro danou kombinaci není hodnota vyplněná, použije se nárok uložený přímo na pracovní smlouvě:

  • employment_tab.holiday_year_claim

Při založení smlouvy se tato hodnota obvykle předvyplní takto:

  1. z wa_allowed_work_type_tab podle department_id + work_type
  2. pokud tam není, z agreement_type.default_holiday_year_claim
  3. pokud není ani tam, použije se 0

Jaké hodiny se do výpočtu berou

Do výpočtu vstupují skutečně odpracované a započitatelné hodiny za daný rok.

Používají se jen směny a podklady, které jsou ve správném stavu, například:

  • schválené,
  • uzamčené,
  • dokončené.

Do výpočtu se započítávají i hodiny odpracované ve státní svátek, pokud jinak splňují podmínky pro započtení do nároku na dovolenou.

Jak systém pracuje s různými nároky během roku

Pokud pracovník během roku odpracuje hodiny na více kombinacích:

  • různé pracoviště,
  • různé typy práce,

a tyto kombinace mají různé roční nároky na dovolenou, systém si je rozdělí automaticky podle skutečně odpracovaných hodin.

Pro každou kombinaci si vezme:

  • počet započitatelných hodin,
  • odpovídající holiday_year_claim

a z toho spočítá vážený průměr.

To znamená, že systém interně dělá logiku podobnou "4 týdny / 5 týdnů / 6 týdnů", ale ne podle ručně připravených vstupních polí. Vytváří si ji sám z reálných dat o směnách a z nastavení holiday_year_claim u konkrétní práce.

Kdy nárok vůbec vznikne

Nejprve se ověřuje, jestli pracovník splnil minimální rozsah práce pro vznik nároku.

Tato hranice není v kódu natvrdo jako pevné číslo, ale bere se z parametru:

  • HOLIDAY_NON_WA_MIN_HOURS_WORKED

pro daný rok a zemi.

V běžném českém nastavení to odpovídá zákonné hranici pro vznik nároku.

Jak se počítá výsledný nárok

Výpočet probíhá zjednodušeně takto:

  1. sečtou se všechny započitatelné hodiny za rok,
  2. zjistí se počet celých odpracovaných týdnů,
  3. spočítá se vážený průměr ročního nároku podle skutečně odpracovaných hodin na jednotlivých typech práce,
  4. z toho se vypočítá poměrná část dovolené,
  5. výsledek se zaokrouhlí nahoru na celé hodiny.

Co je "celý odpracovaný týden"

Systém pracuje s týdenním fondem hodin:

  • weekly_hour_fund = daily_hour_fund * 5

U dohod to v praxi často odpovídá hodnotě:

  • 20 hodin týdně

ale skutečně se bere hodnota nastavená pro daný typ smlouvy.

Počet celých odpracovaných týdnů se určí tak, že se celkové započitatelné hodiny vydělí týdenním fondem a výsledek se zaokrouhlí dolů.

Vážený průměr nároku

Systém si pro jednotlivé kombinace:

  • pracoviště + typ práce

spočítá:

  • odpracované hodiny,
  • odpovídající roční nárok na dovolenou

a z toho vytvoří vážený průměr.

Prakticky tedy platí:

  • více hodin na práci s vyšším nárokem zvýší výsledný nárok,
  • více hodin na práci s nižším nárokem ho sníží.

Finální vzorec

Zjednodušeně se používá tento postup:

  • hours_worked_sum = součet započitatelných hodin
  • holiday_year_claim_avg = vážený průměr ročního nároku
  • weekly_hour_fund = týdenní fond hodin

Potom:

  • holiday_claim = ceil(floor(hours_worked_sum / weekly_hour_fund) / 52 * weekly_hour_fund * holiday_year_claim_avg)

Výsledek se vždy zaokrouhluje:

  • nahoru na celé hodiny

Praktický význam

Pokud tedy pracovník během roku:

  • pracuje na různých pracovištích,
  • nebo na různých typech práce,
  • a tyto práce mají různý holiday_year_claim,

systém nepočítá nárok jednou pevnou sazbou.

Místo toho vezme skutečné hodiny z jednotlivých kombinací a spočítá z nich vážený průměr.

Jednoduchý příklad

Pokud by pracovník odpracoval:

  • část hodin na práci s ročním nárokem odpovídajícím 4 týdnům,
  • část hodin na práci s ročním nárokem odpovídajícím 5 týdnům,

výsledný nárok nebude čistě podle 4 nebo 5 týdnů, ale jako vážený průměr podle skutečně odpracovaných hodin v těchto režimech.

Právě proto může u dvou pracovníků se stejným celkovým počtem hodin vyjít jiný nárok, pokud pracovali na různých typech práce nebo pracovištích s odlišným nastavením dovolené.

Dokumentace personálního systému Stafio