Výpočty - definície výpočtov a postup výpočtov
Výpočty miezd sa realizujú na základe definovaných Výpočtových schém.

Výpočtovú schému je možné chápať ako predpis, podľa ktorého má prebiehať výpočet, tzn. celá schéma výpočtu časti agendy, a to nielen výpočet položiek mzdových listov (čiastkových i súhrnných) a priemerov, ale aj ročného zúčtovania alebo mzdovej uzávierky.
Výpočtových schém (definícií výpočtu) môže byť všeobecne mnoho.
Každá výpočtová schéma obsahuje zoznam počítaných položiek, ktoré sa podľa danej schémy majú počítať a pre každú počítanú položku obsahuje definíciu jej výpočtu.
Zjednodušený nákres výpočtovej schémy obsahujúci výpočtové vzorce pre 3 počítané položky, z ktorých do 2. vstupuje súčet (Sčítanec 1) z inej položky a do 3. vstupujú dva súčty z iných dvoch položiek
Predpis výpočtu počítanej položky môže byť realizovaný rôznym spôsobom, tzn. definícia výpočtu položky môže obsahovať:
- Súčet iných položiek - tzn. položka môže byť definovaná ako sčítaná, tzn. ako súčet z iných vybraných položiek. Pritom zahrnutie týchto vybraných položiek - sčítancov - do výsledného súčtu môže byť viazané na splnenie výrazu podmienky a výsledný súčet môže byť naviac korigovaný korekčným výrazom.
- Štandardná akcia - na výpočet položky môže byť viazaná niektorá zo štandardných akcií, ktoré sú k dispozícii, pričom môže byť vyvolaná buď pred výpočtom alebo až po výpočte položky (podľa toho, k akému účelu má byť použitá a čo má byť jej výsledkom).
- Výpočtový výraz - Ide o výraz zapísaný v požadovanej syntaxi, ktorý môže obsahovať odkazy na ľubovoľné iné položky, na globálne premenné, na špeciálne položky, na funkcie a môže obsahovať substitučné reťazce. Môže byť daný výrobcom alebo užívateľom, pričom v definícii výpočtu položky je možné nastaviť, či sa má použiť výraz daný výrobcom (štandardná definícia), alebo daný užívateľom (užívateľská definícia) alebo kombinácia oboch. Realizácia výrazu môže byť viazaná na splnenie podmienky, viď ďalej.
- Výraz pre podmienku - splnenie podmienky ovplyvňuje realizáciu výpočtového výrazu. Pre výraz zadaný ako podmienka platia podobné pravidlá ako pre výpočtový výraz.
- Kontrolný výraz - výraz pre kontrolu hodnoty položky. Pre výraz zadaný ako podmienka platia podobné pravidlá ako pre výpočtový výraz, okrem použitia substitučných reťazcov, viď ďalej.
Každú z uvedených častí je možné realizovať jednak samostatne, tak aj ľubovoľnou kombináciou všetkých. Teda je možné napr. definovať kontrolu hodnoty položky bez jej výpočtu a rovnako tak je možné, mať položku definovanú ako výpočtový výraz, do ktorého je zahrnutý výsledok súčtu iných položiek, ale napr. len za určité splnené podmienky a súčasne nejak skorigované, a súčasne výsledok nejakej štandardnej akcie.
Každá výpočtová schéma je jednoznačne identifikovaná a má evidovanú platnosť a stav v histórii (v čase). Definícia výpočtu položiek počítaných v rámci danej výpočtovej schémy sa môžu podľa potreby v čase priebežne meniť. Sleduje sa história týchto zmien v čase. Pri vlastnom výpočte sa použije vždy ta časť definície, ktorá je platná k dátumu resp. mzdovému obdobiu, za ktorý sa výpočet vykonáva.
Výpočtové schémy sa môžu aj prekrývať, čo sa týka definície počítaných položiek, tzn., že viac schém môže obsahovať definíciu výpočtu rovnakých položiek. Podľa akej definície sa nakoniec výpočet takej položky vykoná, závisí od toho, ktorá výpočtová schéma sa aktuálne použije, viď ďalej:
Ak ale k jednému druhu prac. pomeru, resp. ML priradíte naraz výpočtové schémy obsahujúce definíciu výpočtu rovnakej položky, použije sa len jedna z týchto definícii (keďže každá položka sa v rámci daného výpočtu vypočíta len raz, viď postupy výpočtu), pričom nie je možné v žiadnom prípade stanoviť, ktorá z nich to bude.

Súčtové položky sú také položky, ktorých hodnota sa vypočíta ako korigovaný súčet iných položiek mzdového listu.
Potom hovoríme o:
- Súčtovej položke (súčet) - ktorej hodnota vznikne ako súčet hodnôt iných (sčítaných) položiek
-
Sčítanej položke (sčítanec) - ktorej hodnota sa použije ako jeden zo sčítancov pri výpočte súčtovej položky
Sčítané položky nie sú vlastnenou kolekciou definícií výpočtu, ale sú to samostatné Business objekty. Dôvodom je to, aby bolo možné jednoducho zahrnúť užívateľskú položku do definície výpočtu originálnej položky bez toho, aby bolo nutné si zavádzať vlastnú užívateľskú definíciu výpočtu.
Sčítané položky sú uvedené ako definície súčtov patriace k danej súčtovej položke. Každá definícia súčtu definuje väzbu súčtu na sčítanec plus korekcia a podmienka. Tzn. definícia súčtu je potom identifikovaná:
- Výpočtovou schémou, do ktorej patrí súčtová položka a súčtovou položkou,
- Triedou Business objektu, ku ktorému patrí sčítaná položka a sčítanou položkou
Okrem toho definuje Výrazy, Podmienky, Korekcie. Vo výrazoch je možné používať substitučný reťazec %V%, ktorý je potom nahradený hodnotou položky.
Ak obsahuje korekčný výraz -1 * %V%, tak to znamená, že daná sčítaná položka - sčítanec, sa vynásobí (-1) a takto skorigovaná sa pričíta do súčtu, tzn., že sa od súčtovej položky vlastne odčíta.
Každá definícia súčtu obsahuje dátum platnosti (od).
Možnosti potlačenia započítania sčítancov do výsledného výpočtu súčtovej položky.
- potlačením sčítanca, keďže každú definíciu súčtu je možné potlačiť
- nastavením hodnoty "Bez súčtu" v položke Súčet v definícii výpočtu položky vo výpočtovej schéme
-
alebo neuvedením %V% pri výraze (pozor platí len pri neprázdnom výraze)! Tzn. pri prázdnom výraze sa %V% nemusí uvádzať a súčet sa načíta, alebo neuvedením %V% v prípade prázdneho výrazu sa súčet nepotlačí. Prázdnym výrazom sa rozumie i výraz obsahujúci len medzery. - Viď Tip pre vás v popise Poradie spracovania častí výpočtovej schémy.
Špeciálnym prípadom je potom možnosť nastaviť na výp. schéme Nezapočítavať čiastkové mzd. listy do súčtu - sčítanec sa tak nezapočíta, avšak je využitý iným spôsobom (napr. na rozúčtovanie) - používa sa napr. v prípade schém triedy Výpočet uzávierky. Viď napr. výpočet Položiek uzávierky.
Ďalej viď popis spomenutých položiek v definícii súčtu a Možnosti zmien výp. schém a definícií súčtov, histórie.

Korekčný výraz môže byť ľubovoľný výraz, ktorý skoriguje výpočet sčítanej položky - sčítanca pred jej načítaním do súčtovej položky. Jednoduchým príkladom môže byť vynásobenie mínus jednou, tzn. vlastne "odčítanie" sčítanej položky od výsledného súčtu.
Korekčné výrazy však môžu byť omnoho zložitejšie a vlastnú hodnotu danej položky - sčítanca ani nemusí započítavať (ak korekčný výraz neobsahuje substitučný reťazec %V%. Toho sa s výhodou využíva vtedy, ak nie je k dispozícii položka, ktorá by priamo obsahovala potrebný údaj, ale potrebný údaj sa získa práve vyhodnotením korekčného výrazu.
Pri výpočte priemeru na nem. dávky je potrebné od menovateľa odčítať zameškané kalendárne dni nemoc. dávok, ale ešte za splnenia určitých podmienok. Nie je však k dispozícii položka, ktorá by priamo danú hodnotu obsahovala, preto je medzi sčítancami uvedená položka Nem. dávky - neprítomnosť (MLC:S_SickAbsences), a v jej korekcii je uvedený výraz, ktorý napočítanie zameškaných kalendárnych dní zaistí. Která položka je uvedena jako sčítanec, není v daný moment důležité, jelikož samotná hodnota položky Nem.dávky - nepřítomnost (MLD:S_SickAbsences) se vůbec do výsledku vyhodnocovaného korekčního výrazu nijak nepromítá, tudíž výsledný součet nijak neovlivní.
Toho istého by užívateľ dosiahol definíciou príslušného výrazu priamo v položke Výrazy výpočtovej schémy.
Korekčné výrazy môžu byť ďalej využité pre definície výpočtových schém triedy Výpočet uzávierky, keďže pre ne nie je možné výrazy používať, viď Výpočet uzávierky.

Určuje, za akej podmienky sa má výpočet realizovať. Podmienkou môže byť ľubovoľný výraz, ktorý je pri výpočte danej položky vyhodnotený a ak je splnený, tak je príslušný výpočtový výraz definovaný pre aktuálnu položku vyhodnotený.

Štandardné akcie sú pevne naprogramované akcie, ktoré riešia určitú časť výpočtu podstatnú pre výpočet miezd a vykonávajú sa v definovanom okamžiku. Sú pevne definované výrobcom a nie je možné ich užívateľsky meniť. Registrované sú v repository. Dôvodom je to, že ide o zložitý výpočtový algoritmus, ktorý nie je riešiteľný metódou výpočtových vzorcov, ako je tomu v prípade ostatných počítaných položiek.
Štandardné akcie sa môžu líšiť v rôznych lokalizáciách, podľa aktuálne platnej legislatívy.
- Registrácia v repository
- Realizácia viazaná na konkrétnu položku vo vzorci
Štandardné akcie je nutné vykonať na určitom mieste výpočtu, tzn. že realizácia takej akcie je viazaná na konkrétnu položku vo výpočtovej schéme. To je realizované tak, že výpočtové vzorce definujú položky mzdového listu, pri ktorých výpočte sa zodpovedajúce štandardné akcie volajú a vykonávajú, pričom je možné definovať, či sa má v danom mieste vykonať pred výpočtom alebo po výpočte príslušnej položky. Štandardná akcia môže byť ďalej volaná s rôznymi parametrami (viď ďalej), ktoré môžu presnejšie špecifikovať, čo presne má byť výsledkom jej výpočtu.
Príklady štandardných akcií:
- Náhrady mzdy - pre výpočet ostatných náhrad mzdy celkom
- Dovolenky - pre výpočet a uloženie zostatku dovolenky - rieši Business Object dovoleniek
- Príplatky - pre výpočet ostatných príplatkov - spúšťa sa pri položke Ostatné príplatky
- Výkony - pre výpočet údajov z výkonov (počty, sadzby, celkové sumy (sadzba*čas))
- Výpočet zrážok - pre výpočet a uloženie zrážok - rieši Business Object zrážok
- Suma v cudzej mene - pre výpočet Sumy v cudzej mene
- Náhrady výdajov - pre výpočet ostatných náhrad výdajov celkom
- Prenos do poistného pomeru SP/ZP - pre vygenerovanie záznamov do priebehov poistných pomerov SP a ZP
- Korekcia poistných pomerov SP/ZP
Sčíta údaje z výkonov k danému čiastkovému mzdovému listu podľa masky.
Spúšťa sa pred výpočtom položky, v ktorej definícii výpočtu sa volá. Do výpočtového vzorca danej položky je potrebné vložiť na vhodné miesto substitučný reťazec %A%, ktorý bude nahradený výsledkom tejto štandardnej akcie.
Parametre:
- MASK=<maska> - Štvorznaková maska pre výber výkonov podľa ich kódov.
(je možné použiť divoký znak "?" ako ľubovoľné písmeno). - RESULT=<sčítaný údaj> - <sčítaný údaj> môže nadobúdať hodnôt:
- COUNT (sčíta počty)
- CHARGE (sčíta sadzby)
- TOTAL (sčíta celkové sumy)
Štand.akcia Výkony vyvolaná s parametrami MASK=HC,HU a RESULT=COUNT vysčíta za počítané mzdové obdobie počet hodín zo zadaných výkonov s kódmi začínajúcimi na HC alebo HU. Tzn. vysčíta zo zadaných výkonov počet hodín odpracovaných v hodinovej alebo úkolovej mzde.
Vhodného použitia: Položka "Odpracované hodiny celkom", ďalej viď Výpočet odpracovanej doby - odpracované hodiny.
Viď aj Práca s výkonmi - podklad pre mzdy alebo rozúčtovanie miezd.
Sčíta ostatné príplatky zadané k danému mzdovému listu v subzáložke Príplatky a vráti ich súčet.
Spúšťa sa pred výpočtom položky, v ktorej definícii výpočtu sa volá. Do výpočtového vzorca danej položky je potrebné vložiť na vhodné miesto substitučný reťazec %A%, ktorý bude nahradený výsledkom tejto štandardnej akcie.
Vhodného použitia: Položka Ostatní příplatky (S_OtherCharges), dále viz Výpočet příplatků - Ostatní příplatky.
Sčíta ostatné náhrady zadané k danému mzdovému listu v subzáložke Náhrady a vráti ich súčet (podľa parametra sčíta buď celkovú sumu alebo základ poistného).
Spúšťa sa pred výpočtom položky, v ktorej definícii výpočtu sa volá. Do výpočtového vzorca danej položky je potrebné vložiť na vhodné miesto substitučný reťazec %A%, ktorý bude nahradený výsledkom tejto štandardnej akcie.
Parametre:
- RESULT=<sčítaný údaj> - <sčítaný údaj> môže nadobúdať hodnôt:
- AMOUNT (sčíta celkovú sumu)
- INSURANCE (sčíta základ poistného)
Vhodného použitia: Položka Ostatní náhrady (S_OtherCompensations) a položka Ostatní náhrady základ poj. (S_OtherCompInsBase), ďalej viď Náhrady - Ostatné náhrady.
Štand. akcia - Náhrady výdajov
Sčíta náhrady výdajov zadané k danému súhrnnému mzdovému listu v subzáložke Náhrady výdajov a vráti ich súčet (sčíta sumu).
Spúšťa sa pred výpočtom položky, v ktorej definícii výpočtu sa volá. Do výpočtového vzorca danej položky je potrebné vložiť na vhodné miesto substitučný reťazec %A%, ktorý bude nahradený výsledkom tejto štandardnej akcie.
Parametre: nemá
Vhodného použitia: Položka Ostatní náhrady výdajů (S_ExpenseCompTotal), dále viz Nedaněný příjem - Ostatní náhrady výdajů.
Ak zamestnanec čerpá v spracovávanom mzdovom období dovolenku alebo je mu nejaká dovolenka preplácaná, tak štandardná akcia vytvorí záznam čerpania dovolenky v agende dovoleniek v záložke Čerpanie príslušného nároku na dovolenku. Pritom platí nasledujúce:
Ak je v spracovávanom mzdovom liste zamestnanca zadaná položka Preferovaný druh dovolenky (MLC:HolidayType_ID) a ak má zamestnanec zadaný nejaký nárok na dovolenku daného druhu a ak je možné tento druh dovolenky v danom období čerpať, tak sa prednostne čerpá z tohto druhu dovolenky. Čerpať sa bude v dňoch alebo v hodinách podľa toho, či pri daných nárokoch Údaje o množstve dovolenky sú v dňoch alebo hodinách. Ak je počet dní resp. hodín čerpanej či preplácanej dovolenky väčší ako zostatok dovolenky preferovaného druhu alebo ak nie je možné z nej v danom období čerpať, tak sa čerpá postupne z ostatných druhov dovoleniek, na ktoré má zamestnanec nárok a z ktorých je možné v danom období čerpať, počínajúc druhom dovolenky, s najvyššou prioritou.
Ak nie je preferovaný druh dovolenky zadaný, vykoná sa čerpanie z jednotlivých druhov dovoleniek podľa ich priority postupne od najvyššej priority (najmenšie číslo v položke Priorita druhu dovolenky) k nižším. V akom období je možné nárok na dovolenku čerpať, je dané v položke Možno čerpať v dobe od-do).
Aktívne MO je august a zamestnanec má tri nároky na dovolenku (zatiaľ nič nečerpané), pričom zamestnancovi zadáme 7 dní dovolenky a preferovaný typ dovolenky DD:
a)
- RD - 20 dní, priorita 0, možno čerpat od 1. 1. do 31. 12.
- DD - 3 dny, priorita 10, možno čerpat od 1. 6. do 30. 6.
- DD2 - 2 dny, priorita 11, možno čerpat od 1. 1. do 31. 12.
⇒ Z DD nenačerpá nič, načerpá 7 dní z RD.
b)
- RD - 20 dní, priorita 0, možno čerpat od 1. 1. do 31. 12.
- DD - 3 dny, priorita 10, možno čerpat od 1. 6. do 31. 12.
- DD2 - 2 dny, priorita 11, možno čerpat od 1. 1. do 30. 6.
⇒ Z DD načerpá 3 dni, a zvyšné 4 dni z RD.
Ak sa nepodarí počet dní resp. hodín čerpanej a preplatenej dovolenky čerpať v plnom rozsahu, je užívateľ informovaný, či si pri súčasnom čerpaní a preplatení praje zostatok prečerpať. Zodpovedajúca chyba, ak sa nevyčerpal požadovaný počet, je po výpočte zobrazená v záložke Chybový protokol.
Štandardná akcia Dovolenky sa spúšťa po výpočte položky, v ktorej definícii výpočtu sa volá.
-
Príklad vhodného použitia: Výpočet položky Náhrada za dovolenku (MLC:S_HolidayCompTotal), popis výpočtu viď Náhrada za čerpanú dovolenku.
V prípade, že máte nepravidelnú prac. dobu (nepravidelné zmeny alebo zmeny inak dlhé ako 8 hodín), viď ďalej výklad pri výpočte Čerpaná dovolenka celkom (dni) (MLC:HolidayDrawDays).
Vykoná výpočet zrážok pre daného zamestnanca a aktuálne mzdové obdobie.
Spouští se před nebo po výpočtu položky, v jejíž definici výpočtu se volá, vhodnost použití závisí na parametru, s kterým se volá, tedy na tom, co se od dané funkce požaduje. Do výpočtového vzorca danej položky je potrebné vložiť na vhodné miesto substitučný reťazec %A%, ktorý bude nahradený výsledkom tejto štandardnej akcie.
Parametre:
- GENERATEDEFS - vygenerujú sa zrážky podľa definícii opakovaných zrážok.
- GENERATEDEBTS - vygenerujú sa zrážky na dĺžne sumy.
- EVALUATE - zadané a vygenerované zrážky sa vyhodnotia a vypočíta sa ich realizácia. Aktuálna položka, pri ktorej sa štandardná akcia volá, je zároveň celková suma, z ktorej odčíta realizácia zrážok. (Použiť po výpočte. Vhodná je položka "Čistá mzda".)
- GETAMOUNT - vráti súčet realizovaných zrážok. (Použiť pred výpočtom. Do vzorce vložit na vhodné místo substituční řetězec %A%.)
- ALL - vykoná všetky predchádzajúce akcie v uvedenom poradí.
-
CORRECTION - umožňuje zadať výraz pre výpočet sumy, ktorá bude použitá ako korekcia nezraziteľnej časti mzdy (resp. korekcie sumy, z ktorej sa bude môcť nakoniec zraziť, viď ďalej).
Požiadavky na zrážky sú totiž štandardne vyčíslené zo sumy bez akéhokoľvek zohľadňovania peňazí vyplatených zamestnancami vopred (napr. formou zálohy, straveniek a pod.). Teda sa môže stať, že keď od čistej mzdy odčítame vypočítané zrážky a prípadnú vopred vyplatenú zálohu, dostaneme záporný doplatok. Tento vzniknutý záporný doplatok je v poriadku a oprávnený, ak zamestnancovi bola vopred vyplatená záloha príliš vysoká na to, aby "zostalo" na zrážky, a mal by byť so zamestnancom štandardne vyrovnaný formou pohľadávky za zamestnancom. Ak by totiž išlo napr. o výživné, nebol by naopak korektný opačný postup, a to znížiť samotnú zrážku (len preto, že na ňu "nezvýšilo"), pretože vyživované dieťa "nemôže za to", že zamestnancovi bola vyplatená príliš vysoká záloha na mzdu.
Môže ísť o zrážku, kedy jej zníženie v danom mesiaci nebude na závadu, a mzdová účtovníčka jej dá prednosť pred vyrovnávaním pohľadávky za zamestnancom. Teda vlastne chce zohľadniť peniaze vyplatené vopred a vypočítať zrážku s ohľadom na ne tak, že výsledný doplatok nebude záporný.
Pre tento účel je k dispozícii práve parameter CORRECTION. Umožňuje zadať výraz pre výpočet sumy, o ktorú sa bude korigovať (znižovať) základ pre výsledné zrážanie, ak boli vopred vyplatené nejaké príjmy v takej výške, že by po zrazení z vypočítaného základu bez korekcie doplatok vychádzal záporný. Systém sa najprv pokúsi príslušnú korekčnú sumu (tzn. sumu, ktorá vznikne vyhodnotením výrazu v parametri CORRECTION) pokryť tou časťou mzdy, na ktorú má zamestnanec nárok i v prípade zrážok a dostane ju vyplatenú, či už formou doplatku alebo skoršej zálohy, straveniek a pod. (základná nezabaviteľná suma, tretia tretina čistej mzdy po odčítaní základnej nezabaviteľnej sumy, príp. i druhá tretina (podľa typu zrážky)). Následne sa ju snaží pokryť sumou mzdy, z ktorej je možné zrážať bez obmedzenia. Až keď sa ani potom nepodarí celú korekciu pokryť (keďže napr. mzdová účtovníčka vyplatila chybne veľkú zálohu zamestnancovi, ktorý má veľké povinné zrážky a malý príjem), tak začne program ukrajovať z ďalších tretín, vypočítaných pre zrážanie z čistej mzdy. Teda vlastne dochádza k "znižovaniu sumy", ktorú bude možné zraziť, prípadne k zníženiu výslednej zrážky, čím sa doplatok nedostane z titulu tejto zrážky a veľkej zálohy do mínusu.
V defaultne dodávaných dátach je k dispozícii položka Nezraziteľná suma - oprava (MLS:S_UndockableCorrection), ktorá je vo výpočtových schémach zohľadnená v parametri CORRECTION. Do nej zadá vopred vyplatenú zálohu, ktorá sa potom po výpočte zrážky zohľadní.
Parameter Correction objasníme na príkladoch:
Ide napr. o korekciu o vysokú vyplatenú zálohu, kedy požiadavky na zrážky sú vyčíslené zo sumy bez akéhokoľvek zohľadňovania peňazí už vyplatených vopred. Ak je však záloha uvedená v parametri Corection, tak vlastné vyčíslenie konečnej sumy na zrazenie (realizácia zrážok) už vyplatenú zálohu rešpektuje. Ak napr. zamestnancovi vyšla čistá mzda 1000, z ktorej ale dostal už vyplatenú zálohu 400, počítajú sa mu jeho zrážky z celých 1000 (zohľadnenie životného minima, prerozdelenie zvyšnej sumy podľa pravidiel výpočtu zrážok atď). Pri vlastnom zrážaní sa však zrazí len do výšky 600, aby celková mzda nevyšla nulová, a to i v prípade, že by suma na zrazenie vychádzala podľa čistej mzdy vyššia.
Zamestnanec nech má v roku 2007 čistú mesačnú mzdu 1000 EUR. Má zaplatiť neprednostnú zrážku v celkovej výške 2000 EUR. Zamestnanec má dve deti, ktoré vyživuje, jedno z detí nie je plnoleté.
Výpočet pro srážky za předpokladů následujících hodnot platných k 1. 1. 2007 (do 30. 6. platila pro srážení jiná pravidla a pevné částky):
ŽMJ = 4980 SKK
Nezraziteľná suma - povinný s dieťaťom (% ŽMJ) = 70%
Nezraziteľná suma - na vyživovanú osobu (%ŽMJ) = 25%
-----------------------------------------------------------
Základná suma, ktorá sa nesmie zraziť povinnému zamestnancovi je 3486 SKK (teda 70% zo 4980 zaokrúhlených dole) + 2 * 1245 (teda 2 * 25% zo 4980 zaokrúhlené dole) =5976 SKK.
Časť čistej mzdy po odčítaní základnej sumy = 10000 - 5976 = 4024 SKK
Suma, nad ktorou sa zvyšok čistej mzdy zrazí bez obmedzenia = 7470 SKK (150% životného minima)
Výpočet tretín:
402,4 je menšie ako 747 - teda sa rozdelí na tretiny tak, že číslo 402,4 musí byť troma deliteľné bezozvyšku - ak nie je, potom sa znižuje o celé eurá dolu - teda 402,4/3 = 134,1 EUR (zaokrúhlené na eurá dole), zaokrúhlenie sa pričíta k základnej nezraziteľnej sume. Pretože nejde o neprednostnú zrážku, môže sa zraziť len jedna tretina a zamestnancovi sa ponechajú obidve zvyšné tretiny. Teda nezraziteľná suma je 597,6 + 1(zaokrúhlenie) + (2 * 134,1) = 865,9 EUR. Teda ak zamestnanec má čistú mzdu 1000 EUR - zrážka bude max. vo výške 134,1 EUR.
Z vyššie uvedeného výkladu vyplýva, že Nezraziteľná suma - oprava (MLS:S_UndockableCorrection) ovplyvní vypočítanú zrážku len vtedy, ak je vyššia ako mzda vyplatená vopred (tzn. zálohy+stravenky,...) + záporný doplatok (ktorý by vyšiel pri nepoužití korekcie).
Oprávnenosť použitia parametra Correction je čisto na vašej zodpovednosti. Správne by bolo takému zamestnancovi zálohy vôbec nevyplácať a ak sa už stalo, tak zrážky nekorigovať (hlavne pri prednostných zrážkach!), ale situáciu "záporného" doplatku s ním vyrovnať formou pohľadávky za zamestnancom.
- NETINCOME - umožňuje zadať výraz pre výpočet sumy, ktorá bude použitá pre zrážanie zrážok, ktoré sa nekontrolujú
oproti nezraziteľnej sume, tzn. neporovnávajú s nezabaviteľným minimom (sporenie, výplaty miezd...), a na ktorých sa zamestnanec dohodne so svojím zamestnávateľom, a preto sa môžu strhávať i do nuly. Parameter teda určuje výraz, ktorého vyhodnotením sa získa čistá mzda. Táto (znížená o už zrazenú sumu na výživných, prednostných a neprednostných zrážkach) sa stane základnou pre zrážanie všeobecných zrážok a zrážok typu "výplata mzdy" (napr. Sporenie Externé alebo Sporenie Interné...), na ktorých sa zamestnanec dohodol so svojím zamestnávateľom, a preto sa môže strhávať v týchto prípadoch do nuly...
-
FULLINCOME - umožňuje zadať výraz pre výpočet sumy, ktorá bude použitá pre zrážanie zrážok, ktoré sa nekontrolujú oproti nezraziteľnej sume, tzn. neporovnávajú s nezabaviteľným minimom (sporenie, výplaty miezd...), a na ktorých sa zamestnanec dohodne so svojím zamestnávateľom, a preto sa môžu strhávať i do nuly. Parameter teda určuje výraz, ktorého vyhodnotením sa získa čistá mzda. Táto (znížená o už zrazenú sumu na výživných, prednostných a neprednostných zrážkach) sa stane základnou pre zrážanie všeobecných zrážok a zrážok typu "výplata mzdy" (napr. Sporenie Externé alebo Sporenie Interné...), na ktorých sa zamestnanec dohodol so svojím zamestnávateľom, a preto sa môže strhávať v týchto prípadoch do nuly...
-
INDIVIDUALUNDOCKABLE - umožňuje zadať výraz pre výpočet sumy individuálneho nezabaviteľného minima (napr. danej súdnym rozhodnutím), ktorá bude použitá pre výpočet zrážok zo mzdy v prípade, kedy povinný poberá mzdu od niekoľkých platiteľov. (Ak nariaďuje súd vykonávanie zrážok zo mzdy niekoľkým platiteľom mzdy, určí im jednotlivo, akú sumu základnej nezabaviteľnej sumy nemajú zrážať, popr. koľko majú na pohľadávku zrážať.) Takto zadané nezabaviteľné minimum obsahuje všetky nezabaviteľné sumy (náklady na bývanie, deti, manželky, ...) a "prebije" výpočet nezabaviteľnej sumy štandardným mechanizmom podľa textu vyššie.
Volání akce srážky s tímto parametrem, kdy se do parametru předává hodnota položky Indiv. nezabavitelné min. (PL:S_IndividualUndockable) ze zaměstnance: INDIVIDUALUNDOCKABLE = Employee_ID.S_IndividualUndockable.
Štand. akcia - Suma v cudzej mene
Vypočíta časť doplatku mzdy vyplacanú v cudzej mene. Použiť pred výpočtom, do vzorca vložiť na vhodné miesto substitučný reťazec "%A%" (bez úvodzoviek). Vhodné použitie: položka "Suma v cudzej mene".
Štand. akcia - Prenos do poistného pomeru
Spúšťa sa po výpočte položky, v ktorej definícii výpočtu sa volá.
Funkcia prerozdelí celočíselne hodnotu výrazu odovzdaného v parametri INSBASE medzi jednotlivé obdobia sociálneho poistenia, ktoré zasahujú do počítaného mzdového obdobia. Hodnota sa rozdelí v pomere počtu dní jednotlivých priebehov poistenia. Pri soc. poistení pritom ešte zohľadňuje, aké kódy priebehu sú nastavené v globálnej premennej S_SPInt - Kódy priebehov poistení pre vymeriavací základ. Funkcia ďalej napočíta neprítomnosti a nemocenské dávky, ktoré sú vylúčenou dobou k patričným intervalom priebehu sociálneho poistenia. Vylúčené doby vzniknuté ručne zadanými vojenskými cvičeniami (výraz v parametri MILITARYDAYS) sa podľa dátumu v parametri MILITARYFROM pričítajú k vylúčeným dobám v poistnom období zodpovedajúcom tomuto dátumu. Funkcia vytvorí príslušné záznamy v záložke Priebeh sociálneho poistenia resp. Priebeh zdravotného poistenia.
K vylúčenej dobe v prípade Ošetrovania člena rodiny viď poznámky pri výpočte položky Vylúčená doba (dni) (MLC:S_ExcludedDays).
Celočíselne znamená, že sa všetky diely zaokrúhlia aritmeticky a zaokrúhľovací rozdiel sa pripočíta k poslednému dielu.
Parametre:
- INSBASEOUT - udáva, ktorá položka sa má použiť pre naplnenie položky VZ pri vylúčenej dobe. Ten sa vypĺňa v dvoch prípadoch, viď popis Vylúčená doba a vymeriavací základ pre ELDP.
- INSBASE - udáva, ktorá položka je určená pre základ sociálneho poistenia resp. zdravotného poistenia, ktorý sa má príslušne prerozdeliť. Defaultne ide o položku Základ SP (MLC:S_SocialInsBaseCorrect) pre SP, viď Základy SP počítané na MLC resp. Základ ZP (MLC:S_HealthInsBaseCorrect) pre ZP, viď Základ ZP počítaný na MLC.
- MILITARYDAYS - udáva, ktorá položka je určená pre ručné zadanie kal. dní vojenského cvičenia (pre vojenské cvičenia zadávané ručne priamo do ML, nie do agendy neprítomností). Defaultne ide o položku Vojenské cvičenie (kal.dni) zadané (MLC:S_ArmyExerciseCal).
- MILITARYFROM - udáva, ktorá položka je určená pre zadanie dátumu počiatku vojenského cvičenia (pre vojenské cvičenia zadávané ručne priamo do ML, nie do agendy neprítomností). Defaultne ide o položku Vojenské cvičenie od (MLC:S_ArmyExerciseFrom).
- EXCLDAYSCORRECT
Štand. akcia - Korekcia poistných pomerov ZP/SP
Spúšťa sa po výpočte položky, v ktorej definícii výpočtu sa volá.
Funkcia zohľadní hodnoty vymeriavacích základov v jednotlivých obdobiach sociálneho a zdravotného poistenia v záložke Priebeh sociálneho poistenia resp. Priebeh zdravotného poistenia prenesených zo mzdových listov čiastkových a vhodne ich skoriguje tak, aby celkový vymeriavací základ za počítané obdobie zodpovedal hodnote vypočítanej v položke, z ktorej sa štandardná akcia volá. Tj. defaultně v položce Základ StP - celkem(MLS:S_RetInsBaseTotal) pro SP resp. ZP základ korigovaný (MLS:S_HealthInsBaseCorrect) pro ZP vypočtené na mzdovém listě souhrnném. Žiadne parametre táto akcia nemá.
Táto štandardná akcia bola zavedená až od v. 7.02 vrátane. Do tej doby ku korekcii vymeriavacích základov na zodpovedajúce maximá nedochádzalo. Pre automatickú korekciu skôr prenesených hodnôt použite funkciu Prepočet poistenia.

Výpočtový výraz je vzorec, podľa ktorého sa má daná položka počítať.

Definíciou kontrolného výrazu je možné do výpočtu miezd zaradiť vykonanie kontrol, či sú splnené nejaké požadované podmienky (napr. hodnoty vypočítanej položky sú v požadovaných medziach a pod.). Ak nie je kontrolný výraz vyhodnotený ako splnený, tak program pri výpočte položky, ktorej definícia kontrolný výraz obsahuje, nahlási chybu pri výpočte. Závažnost chyby je dána v definici vzorce pro danou položku v daném Výpočtovém schématu v položce Typ chyby , text chyby v položce Zpráva. Ďalej viď popis položky Závažnosť chyby v záložke Chybový protokol, kde sú takéto chyby po výpočte zobrazené.
- Príklady použitia:
- Kontrola pri výpočte Hrubej mzdy (MLC:GrossWageTotal), či je nezáporná. V opačnom prípade je kritická chyba.
- Kontrola pri výpočte Doplatku (MLS:S_WageRest), či je nezáporný. V opačnom prípade je kritická chyba.
- Kontrola při výpočtu celkového Odpracovaného času (hod) (MLD:TotalWorkTime), zda v případě, že jde o Nepravidelnou výpomoc, je celkový počet hodin méně než limit povolený na rok udaný v globální proměnné S_DPPHod, dále viz též popis dané glob. proměnné). V opačnom prípade informatívna chyba.
- Kontrola pri výpočte Hodín nadčas celkom (MLC:S_OverTimeTotal), či je celkový počet hodín nadčas menej ako povolený limit za rok udaný v globálnej premennej S_MaxPresc, ďalej viď tiež popis danej glob. premennej). V opačnom prípade informatívna chyba.
- Kontrola pri výpočte Odpracované hodiny celkom (MLC:S_WorkHoursTotal), či nie je nastavený súčasne prenos hodín z prac. kalendára a automatický výpočet nadčasových hodín, keďže by išlo o nezmyselnú kombináciu. V opačnom prípade informatívna chyba.
- Kontrola při výpočtu Časové mzdy (MLD:S_TimeWage), zda celkový Odpracovaný čas(hod) (MLD:TotalWorkTime) je větší nebo roven rozdílu fondu pracovní doby a celkové nepřítomnosti. V opačnom prípade informatívna chyba.
- Kontrola při výpočtu Jednotkové mzdy (MLD:WageForUnit), zda je zadána položka Mzda - částka v prac. poměrech (PL:WageAmount). V opačnom prípade informatívna chyba.
- Kontrola pri výpočte Neprítomnosti (MLC:TotalAbsence), či nie je vyšší ako spočítaný fond prac. doby. V opačnom prípade informatívna chyba.
- Kontrola při výpočtu PHM za soukromé cesty - srážka (MLD:S_POL_DockTotal), je-li nenulová, zda je také zadáno procento ze vstupní ceny auta v položce % ze vstupní ceny auta Služ. auto 1% ceny (PL:DutyCar)
- Kontrola pri výpočte Návšteva lekára - nepreplácaná MLC:S_MedicianUnpaid), či je celkový počet hodín menej ako povolený limit na rok, ktorý je možné preplatiť, udaný v globálnej premennej S_LekarLim. V opačnom prípade informatívna chyba.
- Kontrola pri výpočte Doprovod čl. rodiny k lekárovi - nepreplácaný MLC:S_MedicianUnpaid), či je celkový počet hodín menej ako povolený limit na rok, ktorý je možné preplatiť, udaný v globálnej premennej S_DopLekLim. V opačnom prípade informatívna chyba.
- Kontrola pri výpočte Doprovod postihnutého k lekárovi - nepreplácaný MLC:S_MedicianUnpaid), či je celkový počet hodín menej ako povolený limit na rok, ktorý je možné preplatiť, udaný v globálnej premennej S_DopLekLimP. V opačnom prípade informatívna chyba.
- A pod.
Na jednu položku počítaného objektu (MLC, MLS, ...) môže vzniknúť len jedna chyba. Ak už je nad položkou uplatňovaná nejaká validácia, napr. napevno z programu, nie je možné ju kombinovať s kontrolnou hláškou definovanou pri výpočte. V takom prípade je potrebné zaviesť napr. pomocnú položku a požadovanú kontrolu volať v jej výpočte.
Na položke Čistá mzda implementovaná z programu validačná kontrola pre prípad, že "niektoré zrážky nemohli byť úplne realizované". Ak by bolo potrebné volať nejakú kontrolu týkajúcu sa výpočtu zrážok, nie je už možné použiť Čistú mzdu, ale inú položku (viď napr. Náklady na bývanie).

Slúži na vysvetlenie alebo k poznámkam k výpočtovým výrazom, podmienkam, kontrolným výrazom alebo skriptom (zvlášť pre štandardné a užívateľské definície).

Špeciálne položky sú také položky, ktoré sa natvrdo používajú v niektorých metódach, ich zoznam je registrovaný v repository. Prevodná tabuľka definuje umiestnenie špeciálnych položiek v konkrétnych položkách mzdového listu alebo iných agend.
- Špeciálne položky
- Registrácia v repository
- Väzba na definované položky
Špeciálna položka - položka, ktorá má zvláštny význam, pracuje sa s ňou mimo agendy ML.

Keďže ako bolo povedané vyššie, výpočtová schéma môže byť kombinovaná z rôznych častí, je potrebné zaistiť, aby čiastkové výsledky jednotlivých častí boli zahrnuté do ďalšej časti výpočtu v rámci danej výp. schémy. Na to slúžia tzv. substitučné reťazce, ktoré je potrebné umiestniť na vhodné miesto výp. schémy a ktoré následne budú nahradené konkrétnou veličinou:
- %A% - reťazec bude nahradený výsledkom, ktorý vráti volaná štandardná akcia
- %V% - reťazec bude nahradený výsledkom, ktorý je spočítaný v predchádzajúcej čiastkovej časti danej výpočtovej schémy (napr. ktorý vráti súčet, ak výpočet obsahuje súčet iných položiek)
Ako postupne prebiehajú jednotlivé časti výpočtu a ako sa pri nich substitučné reťazce plnia čiastkovými výsledkami, viď tabuľka Poradie výpočtu vo výpočtovej schéme.
Objasníme na príklade:
Položka Hodiny z výkonov (MLC: S_OperHoursTotal) je vo výp. schéme definovaná s volanou štandardnou akciou Výkony a s výpočtovým vzorcom %A% + S_OperDaysTotal * CalendarDuty / 5. Tzn., že sa najprv vysčítajú štandardnou akciou zo všetkých príslušných výkonov príslušnej hodiny a ich počet sa uloží do %A%. Následne sa vyhodnotí výraz, tzn. k hodinám vysčítaným štandardnou akciou z výkonov sa pripočíta niečo ďalšie. Ak by vo vzorci nebol subst. reťazec %A%, tak by sa síce v rámci výpočtu hodiny z výkonov sčítali, ale do výslednej počítanej položky by sa nepremietli.

V rámci výpočtových vzorcov je použitých mnoho dodávaných funkcií. Každá funkcia má svoj význam, vracia určitú hodnotu, môže byť volaná s rôznymi parametrami a pod. Syntax a popis aktuálne dostupných funkcií nájdete priamo v programe v rámci Editora výrazov, v častiach Funkcia a Popis funkcie (viď hlavne funkcie Mzdové). Tu spomenieme len význam niektorých často používaných funkcií a uvedieme príklad použitia:

Syntax: WageAbsence(<Str1>:String, <Num2>:Numeric, <Num3>:Numeric, <Num4>:Numeric, <Num5>:Numeric, [<Var6>:Variable]):Numeric
Popis: Pre zadaný pracovný pomer <Str1> sčíta od dátumu <Num2> do dátumu <Num3> zo zadaných neprítomností typu <Num4>:
- 0 - dovolenka
- 1 - platené voľno
- 2 - vojenské cvičenie
- 3 - neplatené voľno
- 4 - neospravedlnená absencia
- 5 - dlhodobá neprítomnosť
hodnotu podľa parametra <Num5>:
- 1 - počet zameškaných zmien
- 2 - počet zameškaných hodín
- 3 - počet zameškaných kalendárnych dní (tu berie do úvahy len tie neprítomnosti, ktoré majú začiarknutú položku Počítať kalendárne dni (ak nie je ďalším parametrom dané inak)).
- 4 - počet pracovných hodín počas sviatkov (tzn. koľko prac. hodín z danej neprítomnosti spadalo na sviatok namiesto prac. zmeny)
V prípade, že je parameter <Num4> = 1 - platené voľno, tak nepovinný parameter [<Var6>] určuje typ plateného voľna, ktorý má funkcie sčítať:
- 0 - návšteva lekára
- 1 - doprovod k lekárovi
- 2 - doprovod postihnutého k lekárovi
- 3 - svadba
- 4 - narodenie dieťaťa
- 5 - pohreb
- 6 - sťahovanie
- 7 - hľadanie zamestania
- 8 - ostatné
- 9 - návšteva lekára z dôvodu tehotenstva
V prípade, že je parameter <Num4> = 5 - dlhodobá neprítomnosť, tak nepovinný parameter [<Var6>] určuje typ dlhodobej neprítomnosti, ktorý má funkcie sčítať:
- 0 - neuvedené
- 1 - rodičovská dovolenka
- 2 - neplatené voľno
- 3 - vojenská služba
- 4 - civilná služba
Posledný nepovinný parameter [<Num7>] umožňuje potlačiť zohľadňovanie príznaku Počítať kalendárne dni na neprítomnostiach.
Funkcia WageAbsence na získanie počtu kalendárnych dní vojenského cvičenia:
WageAbsence(WorkingRelation_ID.ID, WageListFrom, WageListTo, 2, 3)
Je-li volána s parametrem Num4=3, pak nebere v potaz první den nepřítomnosti, je-li v něm nepřítomnost pouze částečná, viz popis výpočtu položky Příklad u výpočtu položky Neplacené volno (kal. dny).

Syntax: WageAbsenceDaysByDates(<Str1>:String, <Var2>:Variable, <Var3>:Variable, [<Num41,Num42,Num43, ...>:Numeric], [<Bool5>:Boolean]:Numeric
Popis: Pre zadaný pracovný pomer <Str1> a obdobie dané dátumami <Var2> a <Var3> sčíta zo zadaných neprítomností typu [<Num41,Num42,Num43, ...>] počet kalendárnych dní (berie do úvahy len neprítomnosti, ktoré majú začiarknutú položku Počítať kalendárne dni). Typy neprítomnosti:
- 0 - dovolenka
- 1 - platené voľno
- 2 - vojenské cvičenie
- 3 - neplatené voľno
- 4 - neospravedlnená absencia
- 5 - dlhodobá neprítomnosť
Nepovinný parameter [<Bool5>] určuje, či sa má počet kalendárnych dní krátiť v prípade, že v prvom dni neprítomnosti bola odpracovaná časť zmeny:
- True - krátiť
- False - nekrátiť (defaultná hodnota)
Funkcia WageAbsenceDaysByDates pre získanie počtu kal. dní voj. cvičenia, neplateného voľna a absencie z neprítomností ale len od dátumu získania nároku na dôchodok do dátumu konca mzdového listu: WageAbsenceDaysByDates(WorkingRelation_ID.ID, Employee_ID.RetirementFrom, WageListTo, 2, 3,4)

Syntax: WageAverageNetWage(<Str1>:String, <Str2>:String, [<Num3>:Numeric]):Numeric
Popis: Pre zamestnanca <Str1> a dátum <Str2> vracia údaj [<Num3>]. Vrátené číslo závisí od [<Num3>], ktoré môže nadobúdať hodnoty:
- 0 - priemerná čistá mesačná mzda
- 1 - hrubá mzda celkom
- nevyplnené - priemerná čistá mesačná mzda
Funkcia WageAverageNetWage pre získanie priemerného čistého zárobku pri zamestnancovi s ukončeným Prac. pomerom volaná v tlačovej zostave Zápočtového listu: WageAverageNetWage(MAIN.Employee_ID.ID,if(NxDateToFloat(MAIN.DateOfEnd$DATE)<>0, MAIN.DateOfEnd$DATE,WagePeriodDate(WagePeriodActual,1)))

Syntax: WageCalendarCount(<Str1>:String, <Var2>:Variable, <Var3>:Variable, <Num4>:Numeric, [<Bool5>:Boolean], [<Str6>:String]):Numeric
Popis: Zo zmenového kalendára <Str1> sčíta pre obdobie od dátumu <Var2> do dátumu <Var3> údaj <Num4>. Parametre <Var2> a <Var3> môžu byť nahradené ID mzdových období, prípadne <Var3> môže byť nahradený prázdnym reťazcom. Parameter <Bool5> určuje, či sa vrátená hodnota korigovať o neprítomnosti a doby choroby (True/False = Áno/Nie). V tomto prípade sa musí v <Str6> uviesť ID pracovného pomeru. Vrátené číslo závisí od <Num4>, ktoré môže nadobúdať hodnoty:
- 0 - počet pracovných dní
- 1 - počet pracovných hodín
- 2 - počet pracovných hodín v noci
- 3 - počet pracovných hodín v škodlivom prostredí
- 4 - počet hodín náhrady za sviatok
- 5 - počet pracovných hodín v sobotu a nedeľu
- 6 - počet pracovných hodín počas sviatkov (pre príplatok za prácu počas sviatkov)
- 7 - počet sviatkov (dni)
- 8 - fyzický počet pracovných hodín v sledovanom období (nezahrnú sa napr. hodiny zmeny posledný deň po polnoci)
- 9 - fyzický počet hodín neodpracovaných sviatkov v sledovanom období (nezahrnú sa napr. hodiny sviatku, ktorý je namiesto zmeny posledný deň po polnoci)
- 10 - fyzický počet pracovných hodín zmien začínajúcich v sledovanom období (nezahrnú sa napr. hodiny zmeny posledný deň po polnoci)
- 11 - fyzický počet hodín neodpracovaných sviatkov namiesto zmien začínajúcich v sledovanom období (nezahrnú sa napr. hodiny sviatku, ktorý je namiesto zmeny posledný deň po polnoci)
- 12 - počet pracovných hodín v sobotu
- 13 - počet pracovných hodín v nedeľu
WageCalendarCount(WorkingRelation_ID.ShiftCalendar_ID.ID, WageListRealFrom, WageListTo, 2, True, WorkingRelation_ID.ID) - Spočíta počet hodín v noci korigovaný o choroby a neprítomnosti.

Syntax: WageConstant(<Str1>:String, <Var2>:Variable, [<Bool3>:Boolean]):Variable
Popis: Vráti hodnotu globálnej premennej <Str1> platnou v <Var2>. <Var2> môže byť buďto dátum alebo OID mzdového obdobia. [<Bool3>] určuje, či hodnota globálnej premennej bude vrátená v tvare, v akom je uložená v tabuľke (False), alebo či bude vrátená v tvaru, v akom ju zadal užívateľ (True).
Funkcia WageConstant pre získanie hodnoty globálnej premennej platnej pre mzdové obdobie v tomto prípade hodnoty príplatku za prácu v noci:
WageConstant('S_PriNocMz', WagePeriod_ID.ID)
Pozor! Pre použitie tejto funkcie platí: Ak sa volá funkcia WageConstant s nulovým dátumom, tak sa vypíše hodnota premennej k počiatku aktuálneho obdobia. Volať funkciu s nulovým dátumom je pochopiteľne nezmyselné, avšak môže s najväčšou pravdepodobnosťou ísť o volanie, kedy je ako druhý parameter odovzdávané pomocou funkcie WageViewedDate daátum, ku ktorému sú údaje zobrazované, ktorý ale nie je v daný okamih nastavený. Preto v agendách, kde nie je možné nastaviť zobrazované mzdové obdobie, by nikdy nemala byť použitá funkcia WageViewedDate. Objasníme na príklade:
Tlačíme report za obdobie 2008/01, WageViewedDate nie je nastavené, aktívne mzdové obdobie je 2009/08. V ten okamih by sa v takej agende tlačili hodnoty globálnych premenných platné k aktívnemu mzdovému obdobiu (2009/08), namiesto hodnôt platných v období tlačenom (2008/01).

Syntax:WageDocksSum(<Str1>:String, <Str2>:String, <Num3>:Numeric, [<Str4>:String], [<Str5>:String]):Numeric
Popis:Pre ID obdobie <Str1> a pre ID zamestnanca <Str2> vracia zrazenú sumu danú základným typom zrážky <Num3>, kódom zrážky [<Str4>] a a ostatnými parametrami [<Str5>]
Typ zrážky môže nadobúdať hodnoty:
- 1 - Všetky typy
- 0 - Výživné
- 1 - Prednostné
- 2 - Neprednostné
- 3 - Všeobecné
- 4 - Výplata mzdy
Kód zrážky je nepovinný. Ostatné parametre zrážky [<Str5>] sa zadávajú do reťazca a oddeľujú sa čiarkou. Vyberajú sa len zrážky, ktoré zodpovedajú nastaveným hodnotám:
- 1 - interná zrážka - Áno
- 2 - interná zrážka - Nie
- 3 - vyrovnávať dlžnú sumu - Áno
- 4 - vyrovnávať dlžnú sumu - Nie
- 5 - porovnávať s nezabaviteľným minimom - Áno
- 6 - porovnávať s nezabaviteľným minimom - Nie
- 7 - je možné zraziť len časť - Áno
- 8 - je možné zraziť len časť - Nie
- 9 - generovaný dlh - Áno
- 10 - generovaný dlh - Nie
- 11 - dlh z minulých období - Áno
- 12 - dlh z minulých období - Nie
- Písmeno - len zrážky so zadanou tlačovou skupinou
Ostatné parametre zrážky sú nepovinné.
WageDocksSum(MAIN.WagePeriod_ID.ID, MAIN.Employee_ID.ID, -1, '', '1,5') - funkcia vráti súčet všetkých interných zrážok s porovnávaním s nezabaviteľným minimom.

Syntax: WageExcludedDays(<Str1>:String, <Str2>:String, [<Num31,Num32,Num33, ...>:Numeric]):Numeric
Popis: Spočíta počet dní neprítomností typu "vylúčená doba" pre pracovný pomer <Str1> za mzdové obdobie <Str2>. Sčíta len pre zadané typy vylúčenej doby:
- 0 - neuvedené
- 1 - materská dovolenka
- 2 - neplatené voľno
- 3 - vojenská služba
- 4 - civilná služba
WageExcludedDays(WorkingRelation_ID.ID, WagePeriod_ID.ID, 3,4) vráti počet dní vylúčenej doby typu vojenská služba a civilná služba.

Syntax: WageGetRewardAmount(<Str1>:String, <Num2>:Numeric, <Num3>:Numeric, <Str4>:String, <Var5>:Variable, <Num6>:Numeric):Numeric
Popis: Pre pracovný pomer <Str1> zistí celkovú sumu odmien za dlhšie obdobie pripadajúce na časové rozmedzie od <Num1> do <Num2> vrátane prípadnej korekcie podľa odpracovanej doby (ak je nastavené). Ďalší Parameter <Str4> je meno položky, z ktorej sa zistí celk. suma odmeny. Parameter <Str5> môže byť číslo vyjadrujúce počet období, za ktoré je odmena poskytovaná alebo názov položky, v ktorej je tento údaj uložený. Posledný parameter <Num6> určuje, či ide o výpočet priemeru pre nem. dávky (0) alebo pre dovolenku (1).
Funkcia WageGetRewardAmount pre získanie sumy príslušného dielu všeobecných dlhodobých odmien pripadajúcej na počítané obdobie pre výpočet priemeru na nem. dávky:
WageGetRewardAmount(WorkingRelation_ID.ID, CalcFrom$DATE, CalcTo$DATE, "S_RewardLongTermTotal", "RewardPeriodLength", 1)
Funkcia WageGetRewardAmount pre získanie sumy príslušného dielu zo 14. platu (za 12 mesiacov) pripadajúcej na počítané obdobie pre výpočet priemeru na nem. dávky:
WageGetRewardAmount(WorkingRelation_ID.ID, CalcFrom$DATE, CalcTo$DATE, "S_Fourteen", 12, 1)

Syntax: WageIsHealthIns(<Str1>:String, <Var2>:Variable, <Var3>:Variable):Boolean
Popis: Zistí z kolekcie priebehov zdravotného poistenia, či v rozmedzí dátumov <Var2> a <Var3> existuje poistný vzťah k pracovnému pomeru zadanému v parametri <Str1>.

Syntax: WageIsSocialIns(<Str1>:String, <Var2>:Variable, <Var3>:Variable):Boolean
Popis: Zistí z kolekcie priebehov soc. poistenia, či v rozmedzí dátumov <Var2> a <Var3> existuje poistný vzťah k pracovnému pomeru zadanému v parametri <Str1>.

Syntax: WageListPartialSumBack(<Str1>:String, <Str2>:String, <Str3>:String, <Num4>:Numeric):Numeric
Popis: Vysčíta hodnoty zadanej položky <Str3> za zadaný pracovný pomer <Str1> z čiastkových mzdových listov zadaných <Num4> období dozadu od zadaného obdobia <Str2>. Ak sa v parametri <Str1> uvedie len prázdny reťazec, súčet prebehne za všetky pracovné pomery, ku ktorým v sledovanom období existujú mzdové listy.
WageListPartialSumBack(WorkingRelation_ID.ID, WagePeriod_ID.ID, "RewardYearTotal", 12) - vysčíta položku ročnej odmeny za prechádzajúcich 12 období vrátane.

Syntax: WageListCommonSumBack(<Str1>:String, <Str2>:String, <Str3>:String, <Num4>:Numeric):Numeric
Popis: Vysčíta hodnoty zadanej položky <Str3> za zadaného zamestnanca <Str1> zo súhrnných mzdových listov zadaných <Num4> období dozadu od zadaného obdobia <Str2>. Ak sa v parametri <Str1> uvedie len prázdny reťazec, súčet prebehne za všetkých zamestnancov, ku ktorým v sledovanom období existujú mzdové listy.
WageListCommonSumBack(Employee_ID.ID, WagePeriod_ID.ID, "SocialInsBase", 12) - vysčíta základ sociálneho poistenia za predchádzajúcich 12 období vrátane.

Syntax: WageListPartialSumForEmployee(<Str1>:String, <Str2>:String, <Var3>:Variable, [<Num41,Num42,Num43, ...>:Numeric]):Numeric
Popis: Vysčíta hodnoty zadanej položky <Str1> za zadaného zamestnanca <Str2> zo všetkých čiastkových mzdových listov za mzdové obdobie (v prípade zadania ID mzd. obdobia) alebo rok (numerické označenie roka) <Var3>. Nepovinné parametre [<Num41,Num42,Num43, ...>] obmedzia výber mzdových listov podľa druhu činnosti na pracovných pomeroch.
WageListPartialSumForEmployee('TotalWorkTime', Employee_ID.ID, WagePeriod_ID.ID,0,1,2) vysčíta odpracované hodiny z MLC pre PP s druhom činnosti 0,1 alebo 2 (HPP a VPP).

Syntax: WageSickBenefitSum(<Str1>:String, <Str2>:String, <Num3>:Numeric, [<Num41,Num42,Num43, ...>:Numeric], [<Str5>:String]):Numeric
Popis: K pracovnému pomeru <Str1> za mzdové obdobie <Str2> vráti súčet údajov <Num3> nemocenských dávok:
- 0 - Preplatená dávka - tzn. z riadkov ND pre dané mzd. obdobie vysčíta sumy na preplatenie z položky Suma
- 1 - Počet zameškaných kalendárnych dní - tzn. z riadkov ND vysčíta kalendářne dni z položiek Ospravedlnený od-do za dané mzd. obdobie
- 2 - Zameškané hodiny - spočíta prac. hodiny zameškané vďaka nemocenským
- 3 - Počet preplatených kalendárnych dní v rámci pracovného pomeru - tzn. z riadkov ND vysčíta kalendárne dni z položiek Preplatené od-do, ale len spadajúce do daného mzdového obdobia, viď príklad ďalej
- 4 - Počet preplatených kalendárnych dní mimo pracovný pomer (v ochrannej lehote) - tzn. obdoba predchádzajúceho, len sa týka ND k ML v ochrannej lehote
- 5 - Počet dní vylúčenej doby v rámci pracovného pomeru - tzn. spočíta počet preplatených kalendárnych dní bez zahrnutia 1. dňa ND, ak bol tento čiastočne odpracovaný (teda v ňom nastal nejaký príjem a nespadá do vylúčenej doby)
- 6 - Počet dní vylúčenej doby mimo pracovný pomer (v ochrannej lehote) - tzn. obdoba parametra 6, len sa týka ND k ML v ochrannej lehote
- 7 - Počet preplatených kal. dní fyzicky preplatených v období <Str2> (preplatené dni viažuce sa k riadkom ND za obdobie <Str2>) - tzn. z riadkov ND pre dané mzd. obdobie vysčíta kalendárne dni z položiek Preplatené od-do, presne tak, ako sú zadané, tzn. nijak tento počet neobmedzuje za mzd. obdobie (na rozdiel od parametra 3).
- 8 - Zameškané hodiny mimo pracovný pomer - tzn. obdoba parametra 2, len sa týka chorôb v ochrannej lehote. Slúži na korekciu automaticky počítanej doby (zameškané hodiny zadané na nem. dávke po ukončení PP sa nemôžu zohľadňovať ako ospravedlnená absencia).
- 9 - Počet zameškaných kalendárnych dní skrátený v prípade, že v prvom dni bola odpracovaná časť zmeny.
- 10 - Počet preplatených kal. dní spadajúcich do obdobia bez ohľadu na to, kedy k preplateniu došlo, v rámci pracovného pomeru
- 11 - Počet preplatených kal. dní spadajúcich do obdobia bez ohľadu na to, kedy k preplateniu došlo, mimo pracovný pomer (v ochrannej lehote)
- 12 - Počet kalendárnych dní kryjúcich sa s poistným pomerom na soc. poistení (len pre lokalizáciu pre SR)
- 13 - Počet zameškaných hodín počas sviatkov
- 14 - Počet dní nad rámec preplatiteľných dní
- 15 - Počet kalendárnych dní po skončení pracovného pomeru
- 16 - Suma dobrovoľného navýšenia náhrady pri PN
- 17 - Počet preplatených pracovných dní
- 18 - Počet preplatených pracovných hodín
Pri výpočte dní, hodín a vylúčených dôb z nemocenských dávok funkcie zohľadňuje i prípadnú históriu zmien v prac. kalendári zadanom na prac. pomere a použije vždy ten adekvátny.
K rozdielu medzi parametrom 3 a 7: Majme nemocenskú dávku od 13.01. do 25.02., preplatenú nasledovne:
Riadok ND za mzd.obdobie | Ospravedlnený od | Preplatené od | ||
---|---|---|---|---|
Od | Do | Od | Do | |
2005/01 | 13.01. | 31.01. | - | - |
2005/02 | 01.02. | 25.02. | 13.01. | 10.02. |
2005/03 | - | - | 11.02. | 25.02. |
Potom funkcia vyvolaná za február s parametrom 3 vráti 25 dní (za riadok 2005/02 je to 10 dní a za riadok 2005/03 je to 15 dní). Funkcia vyvolaná za február s parametrom 7 vráti 29 dní (tzn. v mesiaci február bolo preplatených 19 dní za január+10 dní za február).
Nepovinný parameter [<Num41,Num42,Num43, ...>] (a ďalší) obmedzuje súčet len podľa vybraného základneho typu dávok:
- 0 - Choroba
- 1 - Materská dovolenka
- 2 - OČR
- 3 - Vyrovnávací príspevok v tehotenstve
- 4 - Jednorazová suma
- 5 - Oprava
Posledný nepovinný parameter [<Str5>] obmedzuje súčet s ohľadom na vylúčenú dobu:
- "X" - Bez ohľadu
- "N" - Nevylúčené doby
- "E" - Vylúčené doby
Funkcia WageSickBenefitSum pre získanie Počtu hodín neprítomnosti zo zadaných nemocenských dávok pre daný pracovný pomer a mzdové obdobie:
WageSickBenefitSum(WorkingRelation_ID.ID, WagePeriod_ID.ID, 2)
Funkcia pre získanie Sumy preplatenej dávky za typ "choroba" pre daný pracovný pomer a mzdové obdobie:
WageSickBenefitSum(WorkingRelation_ID.ID, WagePeriod_ID.ID, 0, 0)
Funkcia pre získanie Počtu preplatených kalendárnych dní nemocenských dávok za typ "choroba", "materská dovolenka" a "OČR" pre daný pracovný pomer a mzdové obdobie:
WageSickBenefitSum(WorkingRelation_ID.ID, WagePeriod_ID.ID, 3, 0, 1, 2)
Funkcia vracia údaje bez započítania riadkov vymazaných v uzavretom období (preškrtnutých), viď Nastavenie špeciálneho režimu opráv spätne (tzv. "spiatočky" do miezd).

Syntax: WageSickBenefitCountRespectValueOfField(<Str1>:String, <Str2>:String, <Str3>:String, <Var4>:Variable, [<Var5>:Variable], [<Var6>:Variable]):Numeric
Popis: K pracovnému pomeru <Str1> vráti počet nemocenských dávok preplácaných v mzdovom období <Str2>. Započítané sú len tie nemocenské dávky, pre ktoré platí, že položka <Str3> mzdového listu nadobúdala v mzdovom období, v ktorom daná nem. dávka vznikla, hodnoty <Var4>. Nepovinný parameter <Var5> slúži pre vstup defaultnej hodnoty, s ktorou sa porovnáva v prípade, že mzdový list pre dané mzdové obdobie nebol nájdený alebo ide o pomocný (importovaný) ML. Nepovinný parameter <Var6> slúži pre vstup defaultnej hodnoty, s ktorou sa porovnáva v prípade, že mzdový list je z aktívneho mzdového obdobia (keďže v tom prípade počíta ML "sám sebe", nemôže byť vyvolaná pomocou predchádzajúceho parametra <Str3>).
Funkcia WageSickBenefitCountRespectValueOfField(WorkingRelation_ID.ID, WagePeriod_ID.ID, 'S_IsSocialInsurance',2, 2) vráti počet nemocenských dávok pre daný pracovný pomer, ktoré majú riadok pre dané mzdové obdobie s nejakou sumou na preplatenie a pre ktoré súčasne platí, že v dobe vzniku danej dávky, mala položka S_IsSocialInsurance hodnotu 2, tzn. zamestnanec bol účastníkom soc. poistenia. Ak je v danom období nájdený len pomocný (importovaný) ML, tak sa použije defaultná hodnota 2, tzn. dávka sa započíta.
Funkcia sa používa pre zistenie, či existuje aspoň jedna nem. dávka, z ktorej by sa v danom období mala preniesť suma k preplateniu do ML, viď výpočet Nemocenské dávky a náhrady - celkom EUR (MLC:S_SickBenefits).

Syntax: WageSumCountOffs(<Str1>:String, <Var2>:Variable, [<Num3>:Numeric], [<Bool4>:Boolean]):Numeric
Popis: Sčíta odpočty (všetky alebo typu [<Num3>]) zo základu dane zamestnanca <Str1> za obdobie <Var2> (alebo platné k dátumu <Var2>). Parameter [<Bool4>] nastavený na True zaistí súčet ročných hodnôt odpočtov, inak funkcia sčíta odpočty zo základu dane pre mesačnú zálohu. Aké sumy to budú pri odpočtoch definovaných odkazom do globálnych premenných, závisí od aktuálnej hodnoty príslušnej globálnej premennej (napr. S_OdpStud) v danom mzdovom období. Typ odpočtu:
- 0 - nezdaniteľné minimum
- 1 - na deti
- 2 - na manželku / manžela
- 3 - na študenta
- 4 - na invaliditu
- 5 - na držiteľa ZTP-P
- 6 - ostatné
- 7 - na deti ZTP-P
- 8 - na manželku / manžela ZTP-P
- 9 - na odborový príspevok
Funkcia WageSumCountOff pre získanie súčtu ostatných odpočtov zo základu dane pre výpočet mesačnej zálohy na daň:
WageSumCountOff(Employee_ID.ID, WagePeriod_ID.ID, 6)

Syntax: WageSumTaxAdvantages(<Str1>:String, <Var2>:Variable, [<Num3>:Numeric], [<Bool4>:Boolean]):Numeric
Popis: Sčíta daňové bonusy (všetky alebo typu [<Num3>]) z dane zamestnanca <Str1> za obdobie <Var2> (alebo platné k dátumu <Var2>). Parameter [<Bool4>] nastavený na True zaistí súčet ročných hodnôt, inak funkcia sčíta hodnoty mesačné. Aké sumy to budú pri daň. bonusoch definovaných odkazom do globálnych premenných, závisí od aktuálnej hodnoty príslušnej globálnej premennej v danom mzdovom období. Typ daňového bonusu:
- 0 - na poplatníka
- 1 - na deti
- 2 - na manželku/manžela
- 3 - na študenta
- 4 - na invaliditu
- 5 - na držiteľa ZTP-P
- 6 - ostatné
- 7 - na dieťa v domácnosti - ZTP-P
- 8 - na manželku/manžela v domácnosti ZTP-P
- 9 - na odborový príspevok
Podľa aktuálnej legislatívy nie sú k dispozícii všetky vyššie uvedené typy bonusov, avšak možnosti sú tu pre úplnosť zavedené a pripravené pre prípadné budúce využitie.
WageSumTaxAdvantages(Employee_ID.ID, WagePeriod_ID.ID) - sčíta zadané daňové bonusy platné v počítanom období pre výpočet bonusu k vyplateniu v danom mesiaci.

Syntax:WageTrueDateOfPayDay(<Str1>:String, <Num2>:Numeric):Numeric
Popis: Pro mzdové období <Str1> vrátí datum dle pravidelné výplaty zohledněné pro případ, že datum v globální proměnné S_DenD připadne v daném měsíci na víkend. Parameter <Num2> posúva dátum o zadaný počet mesiacov dopredu alebo dozadu.
WageTrueDateOfPayDay(MAIN.WagePeriod_ID,1)

Syntax: WageIrrCalculateVirtualBase(<Num1>:Numeric, <Num2>:Numeric, <Num3>:Numeric, <Str4>:String, <Str5>:String, <Str6>:String, <Str7>:String, <Num8>:Numeric, <Num9>:Numeric, <Num10>:Numeric):Boolean
Popis: Vykoná výpočet základu soc.poistenia v minulých mesiacoch pre nepravidelné príjmy.
- Rozpustenie základu poistenia <Num2> vyplývajúceho z príjmov na prac.pomere <Str5> v mzd.období <Str4> do minulých <Num2> mzdových období.
- <Str6>, <Str7> sú názvy užívateľských položiek základu poistenia a maximálneho kráteného povoleného základu poistenia.
- <Num8> koniec dátumového intervalu, do ktorého sa má základ <Num2> rozpočítať.
- <Num9>, <Num10> spôsob zaokrúhlenia základu poistenia.
WageIrrCalculateVirtualBase(0, S_SocialInsBaseCorrect, S_MonthToRecalculateCount, WagePeriod_ID.ID,
WorkingRelation_ID.ID, 'S_RetInsBaseTotal', 'S_RetInsBaseMaxSubTotal',
{Dokedy počítať - buď dátum konca WR alebo do minulého mesiaca)}
if(NxDateToFloat(WorkingRelation_ID.DateOfEnd$DATE) <> 0,
NxMin(NxDateToFloat(WorkingRelation_ID.DateOfEnd$DATE), WagePeriodDate(WagePeriod_ID.ID, 1, 0)) {ošetruje stav, kedy na nepravidelnom príjme je zadané ukončenie PP do budúcna a počíta sa WLP ešte v dobe platnosti WR},
WagePeriodDate(WagePeriod_ID.ID, 1, 0) {Koniec predchádzajúceho obdobia}
), 3, 0.01
)

Syntax: WageIrrAgrCalculateVirtualBase(<Num1>:Numeric, <Num2>:Numeric, <Str3>:String, <Str4>:String, <Str5>:String, <Str6>:String, <Str7>:String, <Str8>:String, <Str9>:String, <Num10>:Numeric, <Num11>:Numeric, <Num12>:Numeric, <Num13>:Numeric):Boolean
Popis: Výpočet základu soc.poistenia v minulých mesiacoch pre nepravidelné príjmy v prípade pracovného pomeru "dohoda".
- Rozpustenie základu poistenia <Num1> vyplývajúceho z príjmov na prac.pomere <Str4> v mzd.období <Str3> do minulých <Num2> mzdových období.
- <Str5>, <Str6>, <Str7> sú názvy užívateľských položiek základu poistenia a maximálneho kráteného povoleného základu poistenia.
- <Str8>, <Str9> názvy gl.premenných pre limit, po ktorého prekonaní platí zamestnanec - brigádnik dôchodkové poistenie a poistenie do rezervného fondu
- <Num10>, <Num11> dátumový interval, do ktorého sa má základ <Num2> rozpočítať.
- <Num12>, <Num13> spôsob zaokrúhlenia základu poistenia.
if(WageIrrAgrCalculateVirtualBase(NxValueGet('AmountToSplit'), S_MonthToRecalculateCount, WagePeriod_ID.ID,
WorkingRelation_ID.ID, 'S_RetInsBaseTotal', 'S_RetInsBaseMaxSubTotal', 'S_RetInsBaseMaxSubTotalCorr',
'S_DPDoBPŠSš', 'S_DPDoBPŠVš',
NxValueGet('DateSplitFrom'), NxDateToFloat(WageListFrom) - 1, 3, 0.01
), 0, 0)

Syntax: WageIrrCalculateVirtualIns(<Num1>:Numeric, <Str2>:String, <Str3>:String, <Str4>:String, <Str5>:String, <Str6>:String, <Num7>:Numeric, <Num8>:Numeric):Boolean
Popis: Vykoná výpočet sociálneho poistenia v minulých mesiacoch pre nepravidelné príjmy.

Výpočtové schémy ďalej podporujú skripty, ktoré je možné k danej schéme pripojiť na subzáložke Skripty danej schémy. Skripty sa vykonávajú pred výpočtom objektu (a po výpočte), ku ktorému je schéma priradená. Viď tiež tabuľka Poradie výpočtu vo výpočtovej schéme.
Filozofia skriptov je podobná ako v prípade výrazov pre výpočet položiek výp. schémy. Tzn. skript platí k zadanému dátumu, má systémovú a užívateľskú časť a je možné potlačiť vykonávanie užívateľskej alebo systémovej časti. Pri obnove dát dochádza pri skriptoch k podobným kontrolám ako v prípade výrazov pre výpočet položiek - tzn. pripojenie užívateľských častí k novým systémovým skriptom podobne ako pri výrazoch (viď Update výpočtových schém s užívateľsky pridanými záznamami v histórii).
Pri výpočte objektu sa postupuje nasledovne:
- zistí výpočtové schémy priradené k objektu (napr. k MLC)
- vykonanie skriptov "pred" vopred zistenými schémami
- vykonanie výpočtu položiek schémy podľa Poradia spracovania častí výpočtovej schémy
- vykonanie skriptov "po" vopred zistených schémach
V SK lokalizaci na výp. schématu pro výpočet pojištění na MLD pro nulování pomocných položek, které se využívají při výpočtu soc. pojištění pro zjišťování, o jaký MLD v pořadí (v případě, že zaměstnanec má více prac. poměrů), se jedná.

Ako bolo povedané vyššie v popise skriptov, najprv sa vykonajú skripty pripojené k schéme, až následne začne prebiehať výpočet jednotlivých položiek, a to podľa toho, aké časti definície obsahuje v poradí uvedenom ďalej.
Pri spracovaní výpočtovej schémy v rámci výpočtu miezd sa následne jednotlivé časti výpočtovej schémy (ich význam viď vyššie), vyhodnocujú v nasledujúcom poradí, pričom výsledok vyhodnotenia je následne obsiahnutý v premennej V resp. A a ak sa ďalšia časť výp. schémy má odkazovať na predchádzajúci, je potrebné, aby sa odkazovala na príslušný substitučný reťazec:
Vyhodnocovaná časť výp. schémy | Popis |
---|---|
Vyhodnotenie podmienky (štandardnej, užívateľskej). Najprv sa vyhodnotí systémová časť. Potom sa vykoná vyhodnotenie užívateľskej časti. V užívateľskej časti môže byť použitý výsledok vyhodnotenia systémovej časti ako %C%. Takže užívateľská môže systémovú časť potlačiť (prebiť). Spracovanie pokračuje len vtedy:
Užívateľskej definície podmienky, ktorá vykoná inverziu výsledku systémovej časti: if(not %C%, True, False) |
%A%=0, %V%=0 |
Štandardná akcia. Ak je použitá, tak výsledok nech sa rovná a. | %A%=a |
Súčet položiek. Ak je použitý, tak výsledok nech sa rovná b. | %V%=b |
Vyhodnotenie výrazu štandardného. Výsledok nech sa rovná c. Súčet versus výraz: Ak je výraz prázdny, tak nemusí obsahovať %V% a výsledok sa rovná predchádzajúcemu súčtu položiek (%V% teda nie je potrebné do prázdneho výrazu uvádzať). Ak by ale výraz bol neprázdny, tak musí obsahovať %V%, aby sa do neho pričítal i súčet položiek. To je možné s výhodou využiť i opačne: ak je položka definovaná z historických dôvodov ako súčtová položka, avšak aktuálne už tomu tak byť nemá a jej definícia je daná inak len samotným výrazom, potom stačí, aby výraz neobsahoval substituční reťazec %V% - tak sa sčítanec do výsledku nijak nepremietne. Viď napr. výpočet Poistné SP, a to položky Poistné SP zamestnanec celkom (za všetky PP) (MLS:SocialInsEmployee). Ide o jednu z Možností potlačenia započítania sčítancov do výsledného výpočtu súčtovej položky. Ak je ale potrebné, aby výraz aj naďalej obsahoval %V% (keďže je nutné zohľadniť súčet ďalších iných sčítancov), tak je potrebné nezahrnutie už neaktuálneho sčítanca vyriešiť iným spôsobom - viď ďalšie Možnosti potlačenia započítania sčítancov do výsledného výpočtu súčtovej položky. |
%V%=c |
Vyhodnotenie výrazu užívateľského. Výsledok nech sa rovná d. | %V%=d |
Vyhodnotenie kontroly (štandardnej, užívateľskej). Tu platí rovnaký postup ako pri vyhodnocovaní systémovej a užívateľskej podmienky, viď vyššie. Objasníme na príklade: V definícii položky WageForUnit (Jedn. mzda) nech je systémový kontrolný výraz WorkingRelation_ID.WageAmount>0 a ak nie je výraz splnený, zobrazuje sa užívateľovi správa, že nie je zadaná jednotková mzda. Nech túto správu nechceme zobrazovať pre spoločníkov, tzn. ak je typ aktivity = 7 (spoločníci a komanditisti). Potom si do užívateľskej časti kontroly zadáme if(((not %C%)and(WorkingRelation_ID.typeOfActivity=7)), True, False). Ak nie je jedn. mzda zadaná, ale typ aktivity je 7, je užívateľský kontrolný výraz splnený a teda sa žiadna kontrolná správa nezobrazí. |

Výpočet prebieha postupne podľa definícií obsiahnutých vo výpočtovej schéme (resp. vo výpočtových schémach) aktuálne priradených k počítanému záznamu:
- V prípade výpočtu miezd (MLC a MLS) pre dané mzdové obdobie ide o výp. schémy, ktoré sú pre počítané mzdové obdobie aktuálne priradené v záložke Výpočtové schémy počítaného MLC a v záložke Výpočtové schémy zodpovedajúceho MLS (pričom do spomenutých subzáložiek mzdových listov sú výpočtové schémy predvypĺňané, viď Predvypĺňanie a použitie výp.schém k ML, ale môžu byť zadávané i ručne).
- V prípade výpočtu priemeru ide o Výp. schému aktuálne priradenú v položke Výp. schéma daného záznamu priemeru (pričom pri automatickom výpočte je výpočtová schéma k priemerom predvypĺňaná, viď Predvypĺňanie a použitie výp.schém k priemerom, ale môže byť zadávaná i ručne).
- V prípade výpočtu RZÚ ide o Výp. schémy aktuálne priradené k druhu prac. pomeru, resp. jedného z druhov súbežných prac. pomerov, podľa stanovených pravidiel, viď Použitie výp.schém k RZÚ.
- V prípade výpočtu uzávierky ide o Výp. schémy aktuálne zadané v položke Výp. schéma v definíciách uzávierky (zadávajú sa ručne, viď Použitie výp.schém k uzávierke).
- V prípade výpočtu RZZP ide o Výp. schémy aktuálne zadané v položke Výpočtová schéma pre výpočet detailného riadka RZZP, viď Použitie výp.schém k RZZP.
Ak ide o prípad, kedy je možné mať priradených výp. schém viac, nijak nezáleží na poradí výp.schém. Rovnako tak nezáleží na poradí definícií vo výpočtových schémach (poradí počítaných položiek).
Ak prebehne výpočet položky, je táto interne označená ako vypočítaná. Postupne sa prechádzajú definície výpočtu dané v priradených výpočtových schémach jedna za druhou a ak sa narazí na položku, ktorá ešte nebola počítaná, tak sa táto vypočíta. (Tzn. vyhodnotia sa prípadné výrazy pre podmienku výpočtového vzorca, prípadný súčet zo sčítaných položiek, vyhodnotia sa výpočtové výrazy, vykonajú sa volané štandardné akcie, vykoná sa príslušné zaokrúhlenie a vyhodnotí sa kontrolný výraz, viď vyššie Poradie spracovania častí výpočtovej schémy.) Ak sa pri výpočte položky narazí na potrebu mať k dispozícii inú položku, ktorá tiež ešte nemá interný príznak vypočítateľnosti, tak sa musí spočítať najprv táto. Tzn. "kalkulátor" sa pokúsi v priradených výpočtových schémach nájsť definíciu výpočtu pre danú položku a podľa nej potom požadovanú položku vypočíta a označí interným príznakom vypočítateľnosti. Ak definíciu výpočtu nenájde (ide o zadávanú položku či omylom chýba výpočt. schéma pre jej výpočet), tak vráti aktuálnu hodnotu danej položky a položku tiež označí príznakom vypočítateľnosti.
Ak ide o situáciu, kedy položka má byť počítaná, ale výpočt. schéma nie je nájdená, tak vrátená hodnota položky bude nejaká jej defaultná hodnota (napr. nula a pod.).
Potom sa dokončí výpočet pôvodnej položky.
Schému výpočtu naznačíme pre mzdové listy:
Každá položka sa v rámci daného výpočtu počíta len raz, tzn. ak už má príznak vypočítateľnosti, tak už sa druhýkrát počítať nebude, aj keby definícia jej výpočtu bola v priradených výpočtových schémach obsiahnutá viackrát.
Ak sa pri výpočte narazí na nejakú chybu, je zobrazené informatívne hlásenie, pričom užívateľ môže zvoliť, či pokračovať vo výpočte či výpočet prerušiť. Chyby sú následne zobrazené v chybovom protokole. Tu si ich užívateľ môže prehliadnuť a uvážiť, či je potrebné jej príčiny opraviť a výpočet zopakovať. Chyba pri výpočte mzdových listov môže podľa svojich závažností spôsobiť, že príslušný mzdový list nezíska príznak správnosti výpočtu (v takom prípade je nutné príčinu chyby odstrániť vždy a výpočet zopakovať). Môže ísť jednak o chyby dané chybou vo výpočtových vzorcoch alebo nejakým chýbajúcim údajom (napr. chýba vypočítaný priemer na náhrady), či nemožnosťou vykonať nejakú akciu (napr. nie je možné vykonať zadané čerpanie dovolenky, keďže by došlo k prečerpaniu, nie je možné generovať priemery, keďže nie je definované mzdové obdobie a pod.).
Vynulovanie hodnôt niektorých skôr vypočítaných položiek ML pred výpočtom:
Ak je výpočet spustený opakovane, tak sa pôvodné vypočítané položky znova prepočítajú, čím sa zaktualizujú podľa aktuálnych podmienok platných pri novom výpočte. Opakovaný výpočet však môže byť spustený za radikálne iných podmienok ako výpočet predchádzajúci (napr. užívateľ zmenil prirodzené výpočtové schémy či vylúčil mzdový list z výpočtu miezd, viď ďalej Kedy sa ML neprepočítava vôbec alebo čiastočne). Aby v takých situáciách nedochádzalo k tomu, že v niektorých položkách zostanú nezaktualizované hodnoty z predchádzajúceho výpočtu (napr. preto, že pri opakovanom výpočte nie je priradená výpočtová schéma pre výpočet danej položky a teda sa daná položka neprepočíta (nemá podľa čoho)), tak pre výpočet položiek mzdových listov (MLC i MLS) platí:
- Pred spustením vlastného výpočtu sa niektoré skôr vypočítané položky vynulujú. Vynulují i v případě, že je výpočet mzdy blokován a dále nepokračuje.
Ktorých položiek sa vynulovanie týka: Nulujú sa položky MLC a MLS, ktoré sú typu číslo a celé číslo a sú počítané, tzn. nie sú editovateľné, určené pre zadanie hodnôt užívateľom (nie je účelom mazať pred výpočtom položky, do ktorých si užívateľ už mohol zadať svoje hodnoty). Toto pravidlo sa týka všetkých definovateľných položiek (užívateľských i systémových) a niekoľkých vybraných pevných (na MLS napr. Hrubá mzda celkom(MLS:GrossWageTotal), SP poistné zamestnanec(MLS:S_SocialInsEmployee), ZP poistné zamestnanec(MLS:HealthInsBaseEmployee) a pod.). Nenulujú sa hodnoty položiek, ktoré majú príznak, že sú editovateľné (ani keby na ne existoval nejaký výpočet).

V niektorých prípadoch sa mzdový list zámerne neprepočítava vôbec alebo sa prepočíta len čiastočne. Kedy sa ML neprepočíta vôbec alebo len čiastočne:
- Je-li výpočet mzdy zablokován - tj. je-li daný prac. poměr sice platný, ale je vyjmut z počítání mezd - a to buď úplně odtržením položky Počítat mzdu v prac. poměrech, nebo jen dočasně zadáním dlouhodobé nepřítomnosti s nastavenou položkou Nepočítat mzdu.
Spomenuté položky nie sú nijak zahrnuté vo výpočtových schémach, ale výpočet blokujú nasledovne:
Ak zamestnanec nemá ani jeden deň, pre ktorý by sa mu mala mzda počítať a ani nemá na dané obdobie zadanú žiadnu nemocenskú dávku (tzn. nemá žiadnu nem. dávku s riadkom typu 1, 2 alebo 4 v počítanom mzdovom období) ani nemá do daného MO prenesené ročné zúčtovanie, mzda sa nepočíta. Tzn. po vyvolaní výpočtu miezd sa výpočet miezd podľa výpočtových schém nespustí (bez ohľadu na to, či sú k ML aktuálne priradené nejaké výpočtové schémy), len dôjde k vynulovaniu položiek z prípadného predchádzajúceho výpočtu.
Ak ale pre takého zamestnanca v danom období existuje nem. dávka alebo ročné zúčtovanie, výpočet mzdy podľa výpočtových schém sa spustí (aby bolo možné ND resp. RÚZ do ML zohľadniť). Spustený výpočet sa potom realizuje už štandardne podľa všetkých aktuálne priradených Výpočtových schém.
Ak by ste mali v ML chybne zadané údaje (napr. zadaný odpracovaný čas, aj keď je po celý mesiac dlhodobá neprítomnosť), nemôžete očakávať zmysluplné výsledky!
Objasníme na príklade:
Zamestnanec má hlavný PP, aktívne mzdové obdobie nech je október. Zaměstnanec odjede 1. března na 3 měsíce do zahraničí s tím, že čerpá dlouhodobé neplacené volno. Má teda zadanú dlhodobú neprítomnosť, ktorá ho vyníma z počítania miezd. Ak nad jeho ML za marec spustíme výpočet miezd, výpočet sa nezaháji a ML sa automaticky nastaví do stavu Vypočítaný správne. Pokud by zaměstnanci do měsíce března zasahovala např. nějaká nem. dávka (která nastala např. v únoru, ale je třeba ji ještě proplatit apod., tj. např. nemoc za 24. - 26. 2., u níž je v řádcích řádek za období 9/2004 typu jen Omluvené dny a dále řádek za období 10/2004 typu Jen proplacení), či měl do března přeneseno roční zúčtování za předchozí rok, výpočet se provede (pochopitelně se zohledněním příslušné dlouhodobé nepřítomnosti, viz použitá výpočtová schémata).
Ak máte zamestnanca dlhodobo vylúčeného z výpočtu miezd (napr. z dôvodu rodičovskej dovolenky), ale potrebujete mu vyplatiť nejakú odmenu a pod., potom je na daný mesiac potrebné na danej neprítomnosti dočasne zrušiť vylúčenie z výpočtu miezd. V opačnom prípade sa mu samozrejme zadaná odmena nijako nezapočíta.
- Je-li daný prac. poměr již ukončen, ale existuje RZÚ - výpočet mzdy dle výpočtových schémat se spustí (aby bylo možno RZÚ do ML zohlednit), ale ML pro tento účet založené by měly mít přiřazená jen výpočtová schémata pro ochrannou lhůtu resp. RZÚ zadaná pro tento účel v agendě Nastavenie parametrov miezd.
Spustený výpočet sa potom realizuje už štandardne podľa všetkých aktuálne priradených Výpočtových schém.
Ak by ste mali v ML chybne priradené aj iné Výpočtové schémy a chybne zadané údaje (napr. zadané zložky mzdy, aj keď je prac. ukončený), nemôžete očakávať zmysluplné výsledky!
O tom, že mzdový list nebyl přepočten vůbec nebo byl přepočten jen částečně ve výše uvedených případech, se ohlásí v průběhu výpočtu Informativní sdělení do záložky Chybový protokol, a pokud necháte výpočet dokončit jak pro dílčí, tak souhrnný ML, pak mzdový list dílčí i souhrnný označí rovnou jako spočtený, tj. nastaví se položka Vypočten správně.

Spôsoby výpočtu sa môžu v čase meniť (napr. z dôvodov legislatívnych zmien a pod.). Podobne sa môžu v čase meniť aj hodnoty niektorých ďalších záznamov, na ktoré sa výpočet odkazuje, napr. globálnych premenných a pod. Preto je potrebné v niektorých agendách sledovať dátum, odkedy - dokedy dané definície platia. Tam, kde je potrebné zachovať i pôvodné hodnoty, sa sleduje i história v čase. Pri výpočte spracovávaného mzdového obdobia je potom zaistené, aby sa použili definície a hodnoty platné k počítanému mzdovému obdobiu. Aby sa o legislatívne úpravy nemusel starať užívateľ, sú dodávané predpisy výpočtu, globálne premenné atď. dodávané ako systémové a podliehajú update, viď tiež Defaultné dáta a update mzdových agend. Aby však mohli podliehať update, platí pre také záznamy obmedzenie, čo sa týka mazania a užívateľských zmien.
V ďalšom texte spomenieme možnosti zmien v niektorých agendách a objasníme, ktoré hodnoty potom budú použité pri výpočte:

Pravidlá pre pridanie a mazanie výp. schém a počítaných položiek v nich
Mazanie výp. schém - systémové výp. schémy nie je možné vymazať ani skryť. Ďalej nie je možné vymazať výp. schému, ak aspoň jedna jeho položka má platnosť v už uzavretých mzdových obdobiach. Ďalej nie je možné mazať výp. schému, ktorá obsahuje položky definované ako súčtové, ku ktorým existujú nejaké sčítance v záložke Súčty.
Pridanie počítaných položiek - Či je k dispozícii možnosť pre pridanie počítaných položiek (funkcia Pridať v navigátore v záložke Položky) do výpočtovej schémy, je dané vlastnosťami výpočtovej schémy a riadi sa nasledujúcimi pravidlami:
Ide o systémovú definíciu výpočtovej schémy a bežného užívateľa?
- ÁNO - Nie je možné pridať novú počítanú položku, je povolená len čiastočná editácia dodávaných položiek, viď ďalej.
- NIE - Je možné pridať novú počítanú položku, ale nie s platnosťou spätne do už uzavretých období.
Mazanie počítaných položiek - mazať celú položku z výp. schémy nie je možné, mazať je možné len jej definície výpočtu v čase na záložke História položky, ale s ohľadom na systémovosť definície, viď ďalej. Či je táto možnosť mazanie k dispozícii (je k dispozícii funkcia Vymazať v záložke História položky), sa riadi nasledujúcimi pravidlami:
Ide o systémovú definíciu výpočtovej schémy a bežného užívateľa?
- ÁNO - Nie je možné vymazať žiadnu definíciu výpočtu počítanej položky bez ohľadu na jej platnosť, je povolená len čiastočná editácia dodávaných položiek, viď ďalej.
- NIE - Nie je možné vymazať definície výpočtu počítanej položky platnej v už uzavretých obdobiach.
Mazanie položky priamo na záložke Položky nie je , keďže by nebolo vecne zrejmé, či si užívateľ praje zmazať celú históriu položky (vr. všetkých jej definícií výpočtov v čase) či len jednu konkrétnu aktualizáciu.
Pravidlá pre editáciu počítaných položiek vo výpočtovej schéme
Podľa vlastností výpočtovej schémy a počítaných položiek nie sú niektoré atribúty definície položky k dispozícii na editáciu a sú k dispozícii pre čítanie:
Ide o situáciu, kedy definícia výpočtu položky platí v už uzavretom období (tzn. kontrola podľa časovej platnosti definície výpočtu jednej položky)?
-
ÁNO - Žiadne atribúty v definícii položky na záložke nie sú k dispozícii na editáciu a sú len na čítanie. Je možné len pridať nový záznam do histórie, tzn. do záložky História položky, samozrejme editovať pri ňom je možné len niečo a nie je možné ho zadávať spätne. Tzn. nový záznam do histórie takej položky musí mať platnosť najskôr od prvého dňa otvoreného mzdového obdobia. V prípade systémových definícií je pri ňom okrem dátumu platnosti povolená len editácia užívateľských vzorcov a ich použitie. V prípade nesystémových je pri ňom povolená editácia všetkých atribútov okrem názvu položky.
- NIE - viď ďalej:
Ide o systémovú definíciu výpočtovej schémy a bežného užívateľa?
- ÁNO - Je povolená len editácia užívateľských vzorcov a ich použitie.
- NIE - viď ďalej:
Ide o novo zaradenú položku do definície?
- ÁNO - Je povolená editácia všetkých atribútov, na záložke História len nie je k dispozícii na editáciu položka Názov položky.
- NIE - Je povolená editácia všetkých atribútov okrem Názvu položky a počiatku platnosti položky.
Teda nesystémovú definíciu (novú resp. platnú najskôr od prvého dňa otvoreného mzdového obdobia) je možné editovať i mazať takpovediac ľubovoľne. Prístupný je i systémový (štandardný) výraz, keďže update do nesystémovej definície nijak nezasahuje, teda nijak nehrozí, že by jej systémový (štandardný) výraz zmenil. Novú definíciu ale nie je možné zadať s platnosťou spätne v už uzavretých mzdových obdobiach, tzn. dátum "Platí od" nemôže spadať do už uzavretého obdobia.
Pravidlá pre editáciu definícií súčtov
Ide o situáciu, kedy definícia súčtu platí v už uzavretom období (tzn. kontrola podľa časovej platnosti definície súčtu)?
- ÁNO - Všetky atribúty položky nie sú k dispozícii na editáciu a sú len na čítanie. Definíciu teda nie je možné opravovať ani vymazať. Takú definíciu je možné len kopírovať, dátum platnosti sa nastaví prvý voľný.
- NIE - viď ďalej:
Ide o systémovú definíciu súčtu, ktorá je nová (počiatok platnosti je otvorený), a bežného užívateľa?
- ÁNO - Je povolená len editácia užívateľských vzorcov a ich použitie. Systémovú definíciu nie je možné zmazať.
- NIE - Je povolená editácia všetkých atribútov.
Teda nesystémovú definíciu (novú resp. platnú najskôr od prvého dňa otvoreného mzdového obdobia) je možné editovať i mazať ľubovoľne. Prístupný je i systémový (štandardný) výraz, keďže update do nesystémovej definície nijak nezasahuje, teda nijak nehrozí, že by jej systémový (štandardný) výraz zmenil. Nie je možné ju zadať s platnosťou spätne v už uzavretých mzdových obdobiach, tzn. dátum "Platí od" nemôže spadať do už uzavretého obdobia.
Ako zaistiť zmeny definícií výpočtov sčítancov v čase, viď o.i. popis položky Platí od v definícii súčtu.

Ako bolo uvedené v predchádzajúcom texte, za určitých okolností nie je možné definície výpočtu položiek vo výpočtových schémach upravovať (ani užívateľské výrazy) a je možné jedine pridávať do histórie. Ak teda užívateľ chce upraviť dodávaný výpočet, pridá si do histórie položky nový záznam s platnosťou najskôr od prvého dňa otvoreného mzdového obdobia. Ako bolo spomenuté v popise záložky História, pri novom zázname sú položky predvyplnené podľa predchádzajúcej platnej definície, pričom väčšina z nich nemusí byť s ohľadom na systémovosť definície atď.) k dispozícii k editácii (viď vyššie).
Pri vytváraní zmien vo výpočtových schémach (užívateľské vytváranie nových záznamov v histórii), sa teda skopíruje systémová časť definície (výraz, podmienka, vysvetlenie, kontrolný výraz), ktorá je teda neskôr platná od nejakého novšieho dátumu. Aby sa aj do týchto záznamov adekvátne premietla prípadná úprava, ktorú potom výrobca vykoná do ďalšej verzie v tejto systémovej časti definície platnej od dátumu skoršieho, pri procese obnovy zálohy v rámci update platí nasledujúce: Po obnovení výpočtových schém sa prejdú užívateľom zadané záznamy v histórii jednotlivých položiek výpočtových schém. Systémové časti každého takého záznamu sa prepíšu hodnotami z najbližšieho staršieho systémového záznamu. O vykonaných zmenách sa vytvorí záznam do servisnej knižky. Teda ak sa narazí na nesystémovú históriu, ktorej systémová časť (výraz, podmienka, vysvetlenie, kontrolný výraz, skript) po update na ďalšiu verziu neodpovedá prvej najbližšej staršej systémovej schéme, tak sa automaticky opraví na aktuálne dodávané znenie.

Globálne premenné obsahujú hodnoty, ktoré podliehajú legislatívnym zmenám. Dodávané globálne premenné sú definované ako systémové, ktoré majú systémové hodnoty, ktoré nie je možné užívateľsky meniť. Výrobcom sú aktualizované prostredníctvom update. Niektoré systémové globálne premenné však obsahujú hodnotu, ktorá nie je pevne daná zo zákona a ktorú si užívateľ môže potrebovať nastaviť inak.
V takom prípade si užívateľ môže:
- buď zaviesť svoju globálnu premennú s odlišnou skratkou a túto vo výp. schémach a špeciálnych položkách zapojiť namiesto dodávanej
- alebo do systémovej globálnej premennej si pridať svoju vlastnú užívateľskú hodnotu platnú od nejakého dátumu. Ak je toto možné spätne už neprístupných mzdových období, záleží od nastavenia príznaku Je možné meniť hodnoty v uzavretých obdobiach. Tzn. ak si užívateľ chce zmeniť systémovú hodnotu (dodávanú) systémovej premennej, musí si pridať ďalší riadok s novou hodnotou. Túto hodnotu môže zadať s rovnakým dátumom ako je zadané pri systémovej hodnote.
Potom pre editáciu a použitie hodnoty pre výpočet a pre update platí:
- V editácii sa zobrazuje, či je hodnota systémová alebo nie.
- Ak k rovnakému dátumu existujú dve hodnoty, tak má prednosť užívateľská.
- Nie je možné zadať viac užívateľských hodnôt danej premennej rovnakým dátumom.
- V zvláštnej tabuľke sa pamätajú horné a dolné obmedzenia hodnôt dodávaných globálnych premenných, pričom pri zadaní užívateľskej hodnoty mimo medze, je užívateľ upozornený.
Pre update platí:
- Update užívateľskú hodnotu nepremaže, len pridá príp. ďalšiu dodávanú hodnotu.
- Ak je užívateľská hodnota mimo medze, tak je užívateľ varovaný zápisom vygenerovaným pri update do servisnej knižky.
Inými slovami: užívateľ nemôže zmeniť dodávanú hodnotu, ale môže si pridať vlastnú. Užívateľská hodnota je rešpektovaná, ak je platná rovnako či neskôr ako hodnota dodávaná. Objasníme na príkladoch:
Systémová hodnota platí od januára, užívateľská nech platí:
- od predchádzajúceho decembra - v januári i februári sa použije systémová, keďže je aktuálnejšia (tzn. užívateľská je prebitá novšou systémovou premennou)
- tiež od januára - v januári a februári sa použije užívateľská (platí rovnako alebo neskôr ako systémová)
- od februára - v januári sa použije systémová, vo februári sa použije užívateľská (dtto)

Výpočty sa ďalej odkazujú na daňové tabuľky.
Pre daňové tabuľky nie je dané obdobie, odkedy dokedy platí, ale len počiatok platnosti. Daňová tabuľka platí do tej doby, pokým nie je definovaná následná s neskorším začiatkom platnosti.
Systémové daň. tabuľky nie je možné meniť, ale môže existovať súbežne systémová a užívateľská tabuľka pre rovnaký dátum platnosti.
Systém pri výpočte miezd podľa defaultných výpočtových vzorcov či pri výpočte ročného zúčtovania vyčísli pre danú mzdu zodpovedajúcu daň, a to z daňovej tabuľky zodpovedajúceho typu platnej k počiatočnému dátumu mzdového obdobia, pre ktoré sa daň vyčísluje, resp. k dátumu ročného zúčtovania. Ak by k danému dátumu nebola k dispozícii žiadna platná tabuľka, výpočtový vzorec vráti nulu. Ak k danému dátumu existuje platná systémová i užívateľská daň. tabuľka daného typu, tak užívateľská tabuľka bude použitá prednostne.