_CASetPartItemAt

(    HndlBatch	    : Longint;
     ItemIdx        : Integer;
     Idx            : Integer;
     Castka         : Real;
     Castka_SP      : Real;
     Castka_ZP      : Real;
     RProc          : Real) : Byte

Ukládá vypočtené hodnoty jedné části mzdové položky při výpočtu rozdělení mzdových nákladů v rámci zpracování dávky HndlBatch.

HndlBatch Číslo (handle) zpracovávané dávky.
Zpracování dávky startuje funkcí _CABatchBegin.
ItemIdx Index zpracovávané mzdové položky. Získal se v cyklu pomocí funkce _CAGetItemAt.
Idx Index části mzdové položky ItemIdx v dávce HndlBatch. Rozsah je: 0..počet zpracovávaných částí - 1.
Počet zpracovávaných položek vrací funkce _CABatchBegin.
Castka Vypočítaná částka.
Castka_SP Vypočítaná částka sociálního pojištění.
Castka_ZP Vypočítaná částka zdravotního pojištění.
RProc Procento použité pro vypočtení parametru Castka z výchozí 100% hodnoty položky. Je to pouze informativní hodnota.

Jestliže dávka HndlBatch neexistuje nebo neexistuje položka ItemIdx, nebo je index Idx mimo rozsah, vrací funkce false.

Podívejte se na: Rozdělení nákladů

Příklad:

procedure RozdeleniNakladuJedneMzdy
    dim hBatch      : Longint;
    dim CntItems    : Integer;
    dim RVZSP       : Real;
    dim RVZZP       : Real;
    dim Err         : Byte;
	
    Err := false;

    RVZSP := M[ixmSocVymZakl] / M[ixmSocPojVZALL];
    RVZZP := M[ixmZdrVymZakl] / M[ixmZdrPojVZALL];

    { Spustí proces rozdělení }	
    hBatch := _CABatchBegin(O[dbIdent], _SysMonth, _ActMonth, _SysYear, false, CntItems);
    _CASetItemInfo(hBatch, RVZSP, RVZZP, M[ixmSocPojFirm], M[ixmZdrPojFirm], ixmSocPojFirm, ixmZdrPojFirm, 
            O[ixNaklStr], O[ixProjekt], O[ixZdroj], O[ixZakazka]);
    { Projdeme jednotlivé položky, kterých se rozdělení týká }
    for BatchIdxPol := 0 to CntItems-1 do	
        if(_CAGetItemAt(hBatch, BatchIdxPol, PolIdx, CntParts))then
            Err := ZpracujPolozku(hBatch, PolIdx, CntParts, RVZSP, RVZZP);
            exitif(Err)then endexit
        endif
    end
    if(CntItems > 0 and Err = false)then
        _CABatchCommit(hBatch);
    else
        _CABatchRollback(hBatch);
    endif		
endproc

function ZpracujPolozku(    hBatch  : Longint;
                            PolIdx  : Integer;
                            Pocet   : Integer;
                            RVZSP   : Real;
                            RVZZP   : Real)
	
    dim Idx         : Integer;
    dim AlgType     : Integer;
    dim AlgValue    : Integer;
    dim DoSocPoj    : Byte;
    dim DoZdrPoj    : Byte;
    dim Castka      : Real;
    dim Castka_SP   : Real;
    dim Castka_ZP   : Real;
    dim StrId       : Longint;
    dim PrjId       : Longint;
    dim ZdrId       : Longint;
    dim ZakId       : Longint;
	
    dim OrigZaklad  : Longint;
    dim Zaklad      : Longint;
    dim RProc       : Real;
    dim Rezie       : Byte;
    dim RezieSP     : Byte;
    dim RezieZP     : Byte;
    dim PlatiOd     : Date;
    dim PlatiDo     : Date;
	
    dim Err         : Byte;
	
    Err := false;
	
    OrigZaklad := M[PolIdx];	
    Zaklad := OrigZaklad; 
    for Idx := 0 to Pocet-1 do	
        if(_CAGetPartItemAt(hBatch, PolIdx, Idx, AlgType, AlgValue, DoSocPoj, DoZdrPoj, Castka, Castka_SP, Castka_ZP, RProc,
            PlatiOd, PlatiDo, StrId, PrjId, ZdrId, ZakId, Rezie, RezieSP, RezieZP))then
            { Výpočet }
            ...
            _CASetPartItemAt(hBatch, PolIdx, Idx, Castka, Castka_SP, Castka_ZP, RProc);
        endif
    end
    return Err;
 endfunc