Výpočet výplat

Před spuštěním výpočtu výplat se ujistěte, zda máte spočítané průměry na náhrady, aktualizovaný pracovní kalendář a správně vedené karty pracovníků.

Veškeré mzdové výpočty pro daný měsíc se provedou po stisknutí tlačítka "Výpočet výplat".

Zpracování mezd zahrnuje tyto kroky:

Proběhne-li výpočet bez chyby a není-li u žádného pracovníka záporná výplata, jsou všechny zpracované údaje uložené v souboru "ListinXX.db", kde XX je měsíc zpracování. Probíhá-li výpočet opakovaně, upozorní počítač, že soubor "Listin.." již existuje a dotáže se, má-li být přepsán.

Pokud byla výsledkem výpočtů u některého pracovníka záporná výplata, soubor "Listin.." se nevytvoří. V takovém případě počítač upozorní na tuto skutečnost a dá možnost zobrazit si pracovníka se zápornou výplatou. Pro prohlížení těchto pracovníků stiskněte tlačítko "Prohlížet záporné výplaty".

Solidární daň

Měsíční hranice pro základ solidární daně jsou v programu pro daný rok nastaveny "natvrdo" (fce solid_zaklad). Pokud měsíční hrubá mzda překročí uvedenou hranici, z částky, o kterou se překročí limit se připočte solidární daň 7 %. Výsledek se zaokrouhlí na koruny nahoru.

Jak probíhá výpočet výplat (technické informace)

  1. Test na měsíc (mesic, roro) – přepočítat minulý měsíc ještě jde. Předchozí měsíce jsou jenom pokud nebyly uzavřeny, případně podle nastavení – ovšem jste zodpovědní za prováděné akce. Povolení přepočítat starší měsíce získáte v Nastavení mezd (Nastaveni.ini/System/VstupDoUzavrenychMesicu).
  2. Kontrola existence dat s hrubými mzdami pro daný měsíc (HrubeXX.db).
  3. Pokud již existují výplaty za daný měsíc, tak se vymažou (ListinXX.db).
  4. Založí se nová prázdná výplatní listina pro daný měsíc.
  5. Do pomocných tabulek se načtou pojišťovny (Form1.Listbox3, název a číslo).
  6. Zjištění, zda jsou povoleny záporné výplaty (ridici.db/modul 14/Text: je uvedeno v textu „---“).
  7. Spočítá fond pracovních dní pro daný měsíc z běžného kalendáře (pracovní den = pondělí až pátek) – proměnná dny_pracovní[1].
  8. Pokud existuje soubor se zápornými výplatami z předchozího zpracování, pak se zobrazí odpovídající tlačítko pro prohlížení tohoto souboru (Zaporna.db).
  9. Vlastní spuštění výpočtu po stisknutí tlačítka Zpracuj výplaty – viz. dále.
  10. Vynulování proměnných rekap[1..5]=0, blok[1..6, 1..2] =0.
  11. Pokud existuje soubor Zaporna.db, tak ho smaže.
  12. Vytvoří pomocný soubor pracovníků: Query1.os_karty.
  13. Otevře tabulky: Table2.blokXX.db a Table1.listinXX.db.
  14. V prvním kroku projíždí pracovníky, kteří se budou zdaňovat pod jiným číslem (krok_pro_dan=1) – údaje o dani se uloží do Listboxu2. Ve druhém kroku pracovníci, kteří se nebudou zdaňovat pod jiným číslem (běžní: krok_pro_dan=2) – daňové hodnoty se zvýší o případné hodnoty z Listboxu2. V obou krocích se provádějí následující procedury (podrobnosti popsány dále):
    • Když existuje blokXX.db, tak precti_blokovane_hodnoty.
    • zapis_socialni_davky (aby byly údaje o neodpracované době)
    • zapis_nahrady (tady jsou také údaje o neodpracované době)
    • zapis_hrube_mzdy (hrubá celkem)
    • zapis_naturalni_mzdu
    • zapis_ostatni_davky (příjem celkem)
    • zapis_soc_zdrav (základ zdravotního a sociálního pojištění)
    • zapis_dan (dílčí základ)
    • zapis_ostatni_srazky (odbory)
    • zapis_k_vyplate (záloha + k výplatě celkem + srážky celkem)
    • zapis_osobni_indikaci_pracovnika (jen když o něm byly nějaké údaje ve výplatách
  15. Zobrazí případné chybné kombinace pro zdanění (v Listbox2 je znak „@“).
  16. Pokud Listbox2 má položky, tak v ListinXX.db ponechá jen pracovníky se zápornou výplatou a přejmenuje soubor na Zaporna.db.
  17. Zobrazí rekapitulaci.

zapis_socialni_davky

  1. vynuluje proměnné davky=0, nemocenska=0, sum[1..5]=0
  2. z Hrube.db překopíruje všechny záznamy pracovníka pro modul=4 (sociální dávky)
    • pro každý záznam nasčítá davky a nemocenska z pole Kc_cel
  3. SQL dotazem na Hrube.db sečte pro modul=4:
    • dny neodpracované (SUM dny_neod do sum[2] )
    • hodiny neodpracované (SUM hod_neod do sum[4])

zapis_nahrady

  1. z HrubeXX.db překopíruje všechny záznamy pracovníka pro modul=5 (jiné dávky)
  2. pro každý záznam nasčítá davky z pole Kc_cel (připočte k hodnotě z procedury zapis_socialni_davky)
  3. SQL dotazem na Hrube.db sečte pro modul=5 (připočte k hodnotě z procedury zapis_socialni_davky):
    • dny neodpracované (SUM dny_neod do sum[2] )
    • hodiny neodpracované (SUM hod_neod do sum[4])

zapis_hrube_mzdy