U každé položky oddělení O, P nebo M, lze zadat 64 bitovou masku směrů (Mask) a číslo skupiny (GroupItem). Směry a skupiny jsou ukládány do tabulky XITEM_MASK pro každý rok a každou položku .
Směrů a skupin používají makro procedury a funkce pracující s položkami: _Sum, ClrWage, AddWage, SubWage, _WageCache.
Směry a skupiny lze zadat pomocí makrofunkce SetItem(7,10). Jestliže věta v tabulce XITEM_MASK pro ukládaný rok nebude existovat, bude automaticky založena.
Směry a skupiny lze číst makrofunkcí GetInfoItem(7,10). Test na existenci věty pro aktuálně nastavený rok lze makrofunkcí GetInfoItem(57).
Masky a skupiny potřebné pro položkovy z oddělení O,P a M jsou uloženy v databázi. Každá položka má větu masek a skupin pro každý rok uloženu samostatně. V případě, kdy je proveden dotaz na masku nebo skupinu (třeba makrofunkcí _Sum) je postup tento:
Použitelné konstanty směrů (Mask):
smeRunAlg3 | $00000001 | Po opravě spusť mzd.přepočet |
smeCopyItemsZam | $00000040 | Kopírovat při kopírování zaměstnance |
smeCopyItmZamAll | $00000080 | Kopíruje kompletní historii položky |
smeNoSjPolItem | $00001000 | Nesjednocovat se systémem |
smePripHstPrep | $00002000 | Připraví pro hist.přepočet mezd |
smeNulujMinMes | $00004000 | Smaž při mazání přepočtu do minula |
smeSmazOdch | $00008000 | Vymaž při ukončení PP |
smeExIm | $00200000 | Sjednocování údajů o zaměstnancích |
smeImpPeodesy | $01000000 | Peodesy |
smeRunAlg3 | $00000001 | Po opravě spusť mzd.přepočet |
smeMoveToM | $00000002 | Přenášet do mezd |
smeMoveToKrDoch | $00000004 | Při přenosu do mezd krátit o docházku |
smeMoveToKrUvaz | $00000008 | Při přenosu do mezd krátit o úvazek |
smePamDoPravPrum | $00000010 | Kč do pravděpod. průměru na dovolenou |
smePamDoPravPND | $00000020 | Kč do pravděpodobného průměru na ND |
smeCopyItemsZam | $00000040 | Kopírovat při kopírování zaměstnance |
smeCopyItmZamAll | $00000080 | Kopíruje kompletní historii položky |
smeNoSjPolItem | $00001000 | Nesjednocovat se systémem |
smePripHstPrep | $00002000 | Připraví pro hist.přepočet mezd |
smeNulujMinMes | $00004000 | Smaž při mazání přepočtu do minula |
smeSmazOdch | $00008000 | Vymaž při ukončení PP |
smeExIm | $00200000 | Sjednocování údajů o zaměstnancích |
smeImpPeodesy | $01000000 | Peodesy |
smePrDovHod | $00000001 | Hodiny do průměru na dovolenou |
smePrDov | $00000002 | Kč do průměru na dovolenou |
smePrNemDny | $00000004 | Dny do průměru na nemoc |
smePrNem | $00000008 | Kč do průměru na nemoc |
smeNahrDobDny | $00000010 | Dny náhradní doby |
smeNahrDob | $00000020 | Kč náhradní doby |
smeZaklDan | $00000040 | Základ pro daň |
smeZaklSocPoj | $00000080 | Základ pro sociální pojištění |
smeZaklZdrPoj | $00000100 | Základ pro zdravotní pojištění |
smeOsvobOdDan | $00000200 | Osvobozeno od daně |
smeKDodaneni | $00000400 | K dodanění |
smePorVzSocZdr | $00000800 | Celkem příjem pro porovnání VZ |
smeNoSjPolItem | $00001000 | Nesjednocovat se systémem |
smeZahrExpert | $00002000 | Daň - zahraniční expert. |
smeNuluj | $00004000 | Nuluj před přepočtem |
smeHrubaProDan | $00008000 | Do hrubé mzdy pro porovnání daně |
smeCompPol | $00010000 | Hist.porovnání pol.pro výpis |
smeRecommendedFill | $00010000 | Doporučeno vyplnit - upozornění |
smeOdbory | $00020000 | Odborový příspěvek |
smeRequiredFill | $00020000 | Povinně vyplnit - chyba |
smeZakZakPl | $00040000 | Zakázky: základní plat |
smeZakOstDoPoj | $00080000 | Zakázky: ostatní do pojištění |
smeZakOstNePoj | $00100000 | Zakázky: ostatní bez pojištění |
smeExIm | $00200000 | Sjednocování údajů o zaměstnancích |
smeZaklSrDI | $00400000 | Do základu pro srážkovou daň I. |
smeZaklSrDII | $00800000 | Do základu pro srážkovou daň II. |
smeZaklSrDIII | $01000000 | Do základu pro srážkovou daň III. |
smeZokNa1KcUp | $02000000 | Zaokrouhlovat na celé Kč nahoru |
smeNeDoZarucMzd | $04000000 | Vyloučit z výpočtu dohodnuté čisté |
smeHandChange | $08000000 | Dovolit ruční opravu položky |
smeDolniOprava | $10000000 | Položky v opravné větě 'dolní' |
smeArcibPrDot | $20000000 | Položky Průměry dotované |
smeArcibZdrDot | $40000000 | Položky Zdravotní dotované |
smeArcibSocDot | $80000000 | Položky Sociální dotované |
smeDoRozdNakladu | $00000001 | Rozdělení nákladů - položky, které lze rozdělit |
smeDoRNRezie | $00000002 | Rozdělení nákladů - všechny režijní položky i nerozdělované |
smeDoRNSumWage | $00000004 | Rozdělení nákladů - kopírované ze sumární věty do základní v případě přepočtu z minula |
Jestliže bude některý z parametrů GroupItem nebo Mask roven nule, nebude brán v úvahu.
Berou se v úvahu položky, která vyhoví podmínce:
(Mask=0 or (PolSmer land Mask <> 0)) and (GroupItem=0 or PolGroupItem = GroupItem)
Příklad:
dim Suma : Real; Suma := _Sum(dbtM, 0, $00000001);
Sečte všechny položky, které mají ve směrech aktuálně nastaveného období nastaven první bit (hodnota $00000001). Skupina nebude brána v úvahu, protože je 0.