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:
- Sumarizují se údaje z hrubých mezd.
- Dosadí se stálé měsíční platy včetně osobního ohodnocení, krácené podle neodpracované doby - při krácení se bere v úvahu i začátek a konec pracovního poměru v organizaci.
- Provede se výpočet odvodů za sociální pojištění, zdravotní pojištění a daň.
- Z fixních položek se dosadí údaje o dávkách a srážkách.
- Zapíší se údaje pr osobní identifikaci pracovníka.
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)
- 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).
- Kontrola existence dat s hrubými mzdami pro daný měsíc (HrubeXX.db).
- Pokud již existují výplaty za daný měsíc, tak se vymažou (ListinXX.db).
- Založí se nová prázdná výplatní listina pro daný měsíc.
- Do pomocných tabulek se načtou pojišťovny (Form1.Listbox3, název a číslo).
- Zjištění, zda jsou povoleny záporné výplaty (ridici.db/modul 14/Text: je uvedeno v textu „---“).
- 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].
- 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).
- Vlastní spuštění výpočtu po stisknutí tlačítka Zpracuj výplaty – viz. dále.
- Vynulování proměnných rekap[1..5]=0, blok[1..6, 1..2] =0.
- Pokud existuje soubor Zaporna.db, tak ho smaže.
- Vytvoří pomocný soubor pracovníků: Query1.os_karty.
- Otevře tabulky: Table2.blokXX.db a Table1.listinXX.db.
- 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
- Zobrazí případné chybné kombinace pro zdanění (v Listbox2 je znak „@“).
- 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.
- Zobrazí rekapitulaci.
zapis_socialni_davky
- vynuluje proměnné davky=0, nemocenska=0, sum[1..5]=0
- 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
- 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
- z HrubeXX.db překopíruje všechny záznamy pracovníka pro modul=5 (jiné dávky)
- pro každý záznam nasčítá davky z pole Kc_cel (připočte k hodnotě z procedury zapis_socialni_davky)
- 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])