_Practice

(   Mode : Integer;
    [ ... ] ) : xxx

Tato funkce vrací údaje spojené s výpočtem zápočtů a platových postupů. Mění funkci podle konstanty 'Mode '.

Mode Další parametry Popis
PRACT_ZAPOCET_K_DATU     dtMinulyZapocet : Date;
    dMinulyZapocet  : Real;
    dtNovyZapocet   : Date) : Real

Od zápočtu 'dMinulyZapocet' ve formátu R.DDD vztažený k datu 'dtMinulyZapocet' spočítá a vrací zápočet k datu 'dtNovyZapocet' opět ve formátu R.DDD.

PRACT_POSL_PL_POSTUP     nPlatTabId       : Longint;
    dtZapocet        : Date;
    dZapocet         : Real;
dim dtPlPostupDate   : Date;
dim dPlPostupZapocet : Real;
dim nPlPostupStupen  : Integer) : 0

Počítá předchozí platový postup od zápočtu 'dZapocet' ve formátu R.DDD vztažený k datu 'dtZapocet'. Ident použité platové tabulky přichází v parametru 'nPlatTabId'.

Datum předchozího platového postupu přichází v parametru 'dtPlPostupDate', zápočet k tomuto datu ve formátu R.DDD (DDD = 000 nebo -364) se vrací v parametru 'dPlPostupZapocet' a platový stupeň v parametru 'nPlPostupStupen'.

PRACT_DALSI_PL_POSTUP     nPlatTabId       : Longint;
    dtZapocet        : Date;
    dZapocet         : Real;
dim dtPlPostupDate   : Date;
dim dPlPostupZapocet : Real;
dim nPlPostupStupen  : Integer) : 0

Počítá následující platový postup od zápočtu 'dZapocet' ve formátu R.DDD vztažený k datu 'dtZapocet'. Ident použité platové tabulky přichází v parametru 'nPlatTabId'.

Datum následujícího platového postupu se vrací v parametru 'dtPlPostupDate', zápočet k tomuto datu ve formátu R.DDD (DDD = 000) se vrací v parametru 'dPlPostupZapocet' a platový stupeň v parametru 'nPlPostupStupen'.

Jestliže bude vstupní zápočet záporný, bude platový postup stanoven na den, kdy začne platit stupeň číslo 2!

Příklady:
Z=2.001, D=16.06.2009 => Z=4.001, D=16.06.2011, S=4
Z=-1.364, D=16.06.2009 => Z=1.001, D=16.06.2012, S=2
Z=0.002, D=16.06.2009 => Z=1.001, D=15.06.2010, S=2

PRACT_ODECTI_ROKY_DNY     nRoky   : Integer;
    nDny    : Integer;
    dtDatum : Date) : Date

Od data 'dtDatum' odečte roky 'nRoky', dny 'nDny' a tento datum vrací.

Příklady:
20.02.2008 - 1.000 => 21.02.2007
20.02.2008 - 1.001 => 20.02.2007

PRACT_DEJ_ROKY_DNY_Z_PRAXE     dZapocet : Real;
dim nRoky    : Integer;
dim nDny     : Integer) : 0

Vrací roky 'nRoky' a dny 'nDny' z praxe 'dZapocet', která je ve formátu R.DDD.

Příklady:
5.025 => R=5, D=25
5.367 => R=5, D=367

PRACT_DEJ_PRAXI_Z_ROKU_DNU     nRoky : Integer;
    nDny  : Integer) : Real

Vrací praxi ve tvaru R.DDD z roků a dnů 'nRoky' a 'nDny'.

Příklady:
R=5, D=1 => 5.000
R=5, D=368 => 5.368

PRACT_DEJ_R_S_PLPOST_Z_PRAXE     nPlatTabId      : Longint;
    dZapocet        : Real;
dim nPlPostupRoky   : Integer;
dim nPlPostupStupen : Integer) : 0

Podle praxe 'dZapocet' (ve tvaru R.DDD) hledá a vrací roky platového postupu 'nPlPostupRoky' a příslušný platový stupeň 'nPlPostupStupen'.

Hledá pomocí platové tabulky, jejíž ident příchází jako parametr 'nPlatTabId'.

Příklad:
Z=5.100 => R=4, St=4

PRACT_DEJ_DALSI_R_S_PLPOST_ZE_ST     nPlatTabId      : Longint;
    nStupen         : Integer;
dim nPlPostupRoky   : Integer;
dim nPlPostupStupen : Integer) : 0

Podle platového stupně 'nStupen' hledá následující předepsaný počet let pro platový postup 'nPlPostupRoky' a příslušný platový stupeň 'nPlPostupStupen' (což bude nStupen + 1).

Hledá pomocí platové tabulky, jejíž ident příchází jako parametr 'nPlatTabId'.

Příklad:
St=4 => R=6, St=5

PRACT_POSUN_PRAXI_NA_R_001 dim dZapocet  : Real;
dim dtZapocet : Date) : 0

Upraví praxi 'dZapocet' a její datum 'dtZapocet' tak, že je posune nahoru na hodnotu R.000 (bývalo R.001!!).

Příklad:
Z=1.364, D=28.2.2012 => Z=2.000, D=29.2.2012

PRACT_SPOCTI_PRAXI_MEZI_DATY     dtDateOd : Date;
    dtDateDo : Date;
    nKraceni : Integer;
dim dTrvani  : Real;
dim dZapocet : Real) : 0

Spočítá trvání 'dTrvani' a zkrácený zápočet 'dZapocet' mezi daty 'dtDateOd' a 'dtDateDo'. Zápočet se krátí podle parametru 'nKraceni', což je výčet:

  • PRACT_KRAC_0 = 0
  • PRACT_KRAC_1_1 = 1/1
  • PRACT_KRAC_1_2 = 1/2
  • PRACT_KRAC_1_3 = 1/3
  • PRACT_KRAC_2_3 = 2/3
  • PRACT_KRAC_4_5 = 4/5

Příklad:
Od=28.2.2012, Do=28.2.2013,
K=PRACT_KRAC_1_2 => T=1.001, Z=0.184

PRACT_SPOCTI_PRAXI_MEZI_DATY_EX     dtDateOd : Date;
    dtDateDo : Date;
    nCit     : Integer;
    nJme     : Integer;
dim dTrvani  : Real;
dim dZapocet : Real) : 0

Spočítá trvání 'dTrvani' a zkrácený zápočet 'dZapocet' mezi daty 'dtDateOd' a 'dtDateDo'. Zápočet se krátí podle poměru nCit/nJme.

Příklad:
Od=28.2.2012, Do=28.2.2013,
nCit=1, nJme=2 => T=1.001, Z=0.184

PRACT_PRICTI_PRAXI     dZapocet  : Real;
    dZapocet1 : Real) : Real

Sečte zápočty 'dZapocet' a 'dZapocet1' a výsledek vrací.

Příklad:
Z=1.100, Z1=2.300 => 4.035

PRACT_DEJ_PLAT_TABULKY dim F : File) : Integer

V proudu 'F' vrací seznam jmen a identů platových tabulek vhodný pro výběry. Proud musí být otevřen.

Proud je organizován takto:

  • 1..1000 jména tabulek
  • 1001..x identy tabulek

Jménu na indexu 1 odpovídá ident na indexu 1001.

Funkce vrací počet platových tabulek v seznamu.

PRACT_DEJ_OPRAVU_PRAXE     nZamId          : Longint;
    nDosVzdId       : Longint;
    nTrida          : Integer;
dim dOpravaZadana   : Real;
dim bOpravaRucne    : Byte;
dim dOpravaSpoctena : Real) : Byte

Vrací informaci o opravě praxe pro zaměstnance s identem nZamId. Parametr nDosVzdId je identem do číselníku dosaženého vzdělání. Parametr nTrida je aktuální platová třída zaměstnance.

Vracené parametry:

  • dOpravaZadana
    Aktuálně zadaná oprava
  • bOpravaRucne
    Oprava je zadána ručně
  • dOpravaSpoctena
    Spočtená oprava na základě vzdělání a platové třídy.

Funkce vrací true jestliže platí výraz:

bOpravaRucne = true or dOpravaZadana = dOpravaSpoctena

PRACT_DEJ_NESTANOVUJ_PL_POSTUP     nZamId : Longint) : Byte Vrací informaci o tom, jestli má zaměstnanec zablokováno stanovování platových postupů.

Podívejte se na: Procedury a funkce - Ostatní

Příklad 1:

procedure TestPractice
    dim dtPlPostupDate, dtZapocet : Date;
    dim dPlPostupZapocet, dZapocet, dTrvani : Real;
    dim nPlPostupStupen	: Integer
    dim nRoky, nDny, nStupen : Integer;

    { Počítá zápočet k datu od zápočtu a jeho dne }
    Trace("PRACT_ZAPOCET_K_DATU = ", _Practice(PRACT_ZAPOCET_K_DATU, _Date(28, 2,2012), 2.001, _Date(29, 2,2012)):6:3);

    { Počítá předchozí platový postup od data a zápočtu }
    _Practice(PRACT_POSL_PL_POSTUP, P[26], _Date(28, 2,2012), 2.000, dtPlPostupDate, dPlPostupZapocet, nPlPostupStupen);
    Trace("PRACT_POSL_PL_POSTUP = ", "dtPlPostupDate:",dtPlPostupDate, "  dPlPostupZapocet:",dPlPostupZapocet:6:3, "  nPlPostupStupen:", nPlPostupStupen);

    { Počítá následný platový postup od data a zápočtu }
    _Practice(PRACT_DALSI_PL_POSTUP, P[26], _Date(28, 2,2012), 2.001, 3, dtPlPostupDate, dPlPostupZapocet, nPlPostupStupen);
    Trace("PRACT_DALSI_PL_POSTUP = ", "dtPlPostupDate:",dtPlPostupDate, "  dPlPostupZapocet:",dPlPostupZapocet:6:3, "  nPlPostupStupen:", nPlPostupStupen);

    { Upraví praxi a její datum tak, že je posune nahoru na R.000 }
    dZapocet := 1.365;
    dtZapocet := _Date(28,2,2012);
    _Practice(PRACT_POSUN_PRAXI_NA_R_001, dZapocet, dtZapocet);
    Trace("PRACT_POSUN_PRAXI_NA_R_001 = ", "Zápočet:", dZapocet:5:3, " Zápočet datum:", dtZapocet);	

    { Podle platového stupně hledá následující předepsaný počet let pro platový postup }
    _Practice(PRACT_DEJ_DALSI_R_S_PLPOST_ZE_ST, P[26], 4, nRoky, nStupen);
    Trace("PRACT_DEJ_DALSI_R_S_PLPOST_ZE_ST = ", "Roky:", nRoky, " Stupen:", nStupen);	

    { Podle praxe hledá roky platového postupu a příslušný platový stupeň }
    _Practice(PRACT_DEJ_R_S_PLPOST_Z_PRAXE, P[26], 5.100, nRoky, nStupen);
    Trace("PRACT_DEJ_R_S_PLPOST_Z_PRAXE = ", "Roky:", nRoky, " Stupen:", nStupen);	

    { Vrací praxi ve tvaru R.DDD z roků a dnů }
    Trace("PRACT_DEJ_PRAXI_Z_ROKU_DNU = ", _Practice(PRACT_DEJ_PRAXI_Z_ROKU_DNU, 4, 254):5:3);

    { Vrací roky a dny z praxe (R.DDD) }
    _Practice(PRACT_DEJ_ROKY_DNY_Z_PRAXE, 4.254, nRoky, nDny);
    Trace("PRACT_DEJ_ROKY_DNY_Z_PRAXE = ", "Roky:", nRoky, " Dny:", nDny);	

    { Od data odečte roky, dny a tento datum vrací }
    Trace("PRACT_ODECTI_ROKY_DNY = ", _Practice(PRACT_ODECTI_ROKY_DNY, 1, 1, _Date(29, 2,2012)))

    { Počítá předchozí platový postup od data a zápočtu }
    Trace(_Practice(PRACT_PRICTI_PRAXI, 1.100, 2.300):6:3);

    { Počítá předchozí platový postup od data a zápočtu }
    _Practice(PRACT_SPOCTI_PRAXI_MEZI_DATY, _Date(28, 2,2012), _Date(28, 2,2013), PRACT_KRAC_1_2, dTrvani, dZapocet);
    Trace("PRACT_SPOCTI_PRAXI_MEZI_DATY = ", "dTrvani:",dTrvani:6:3, "  dZapocet:",dZapocet:6:3);
    	
endproc { TestPractice }

Příklad 2:

procedure DejPlatoveTabulky
    dim F : File;
    dim Idx : Longint;
    SRewrite(F, "", true);
    _Practice(PRACT_DEJ_PLAT_TABULKY, F);
    if(_SFirst(F, Idx))then
        repeat
            Trace(_SGet(F, Idx),"    ",_SGet(F, Idx+1000));
        until _SNext(F, Idx) = false or Idx >= 1000;
    endif
endproc { DejPlatoveTabulky }

Příklad 3:

procedure DejOpravuPraxe
    dim DosVzdId        : Longint;
    dim Trida           : Integer;
    dim OpravaZadana    : Real;
    dim OpravaRucne     : Byte;
    dim OpravaSpoctena  : Real;
    dim Result          : Byte;

    DosVzdId    := P[12];
    Trida       := 8;

    Result := _Practice(PRACT_DEJ_OPRAVU_PRAXE, O[dbIdent], DosVzdId, Trida, OpravaZadana, OpravaRucne, OpravaSpoctena);
    Trace("OpravaZadana:",OpravaZadana:6:3, "  OpravaSpoctena:",OpravaSpoctena:6:3, "  OpravaRucne:", OpravaRucne, "  Result:", Result);
endproc { DejOpravuPraxe }