( 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