( Mesic : Integer;
Rok : Integer;
dim Jmeno : String;
dim Prijmeni : String;
dim CisloZam : String;
dim RodneCislo : String;
dim DatumNarozeni : Date;
dim MistoNarozeni : String;
dim PohlaviId : Longint;
dim Poznamka : String;
dim SeznamPP : File;
dim Strediska : File) : Integer
Funkce zobrazí dialog zaměstnance:

Jestliže úvazek existuje, vyplňte dim parametry. Jestliže dojde ke změně, bude v těchto parametrech změna vrácena. Do globální proměnné "#_HPDiaHeader_UvazekId" lze uložit ident PP, který má být zaostřen. Ze stejné globální proměnné lze číst ident zaostřeného PP po ukončení dialogu.
| Parametr | Popis |
| Mesic/Rok | Období. Pro toto období budou zobrazeny pracovní poměry v dialogu 'Osoba - zaměstnanec'. |
| Jmeno | Jméno zaměstnance (25). |
| Prijmeni | Příjmení zaměstnance (36). |
| CisloZam | Číslo zaměstnance (15). |
| RodneCislo | Rodné číslo (11). |
| DatumNarozeni | Datum narození zaměstnance. |
| MistoNarozeni | Místo narození zaměstnance (50). |
| PohlaviId | Pohlaví - relace do tabulky množin (ident věty množiny). |
| Poznamka | Obecná poznámka (250). |
| SeznamPP |
Seznam PP ve formě proudu. Změny se vrací také v tomto formátu. U nového PP bude Ident PP záporný! U nově zadávaných PP bude osobní číslo generováno, jestliže to systém požaduje (viz _GetNewPersNumber).
|
|
Strediska MaskaStredisek |
Na tomto místě lze jako parametr použít pouze jednu z možností: Strediska MaskaStredisek
|
Podívejte se na: Procedury a funkce - Zaměstnanec
Příklad:
procedure Test_HPDiaHeader_Uprava
dim Rok : Word;
dim Mes : Word;
dim ZamId : Longint;
dim FUvazkyId : File;
dim SeznamPP : File;
dim IdxId, IdxDet : Integer;
dim PuvodniZamId : Longint;
dim UvazekId : Longint;
Rok := _SysYear;
Mes := _ActMonth;
HPGet(hpgZamId_z_UvazekId, O[dbIdent], ZamId);
SRewrite(FUvazkyId, "", true);
SRewrite(SeznamPP, "", true);
{ Získáme informace o všech PP }
HPGet(hpgSeznamUvazku, ZamId, Mes, Rok, 0, FUvazkyId);
IdxDet := 1;
PuvodniZamId := O[dbIdent];
StepIdx(dbtO, dbIdent);
if(_SFirst(FUvazkyId, IdxId))then
repeat
UvazekId := _SGet(FUvazkyId, IdxId);
if(_FindRecId(dbtO, UvazekId))then
{ Mod úvazku 0=původní,1=nový }
SPut(SeznamPP, IdxDet + 0000, 0);
{ Ident úvazku }
SPut(SeznamPP, IdxDet + 1000, UvazekId);
{ Osobní číslo }
SPut(SeznamPP, IdxDet + 2000, O[oOsCis]);
{ Datum nástupu }
SPut(SeznamPP, IdxDet + 3000, O[310]);
{ Ident střediska }
SPut(SeznamPP, IdxDet + 4000, O[oStr]);
{ Ident: Množina (typ pracovního poměru) }
SPut(SeznamPP, IdxDet + 5000, O[299]);
{ Práva úvazku }
SPut(SeznamPP, IdxDet + 6000, O[dbAttr]);
endif
_Inc(IdxDet);
until _SNext(FUvazkyId, IdxId)=false;
endif
{ Najdeme původní PP }
_FindRecId(dbtO, PuvodniZamId);
dim sUid : String[50];
dim sGUID : String[50];
dim sJmeno : String[50];
dim sPrijm : String[50];
dim sCisZam : String[50];
dim sRC : String[50];
dim dDatNar : Date;
dim sMistoNar : String[50];
dim nPohlId : Longint;
dim sPozn : String[50];
dim bStav : Byte;
dim nModPP : Integer;
dim sOsCislo : String[50];
dim dDatNast : Date;
dim nStredId : Longint;
dim nTypPP : Longint;
dim nSkupiny : Longint;
{ Nahraj data zaměstnance }
HPGet(hpgZamData, ZamId, sUid, sGUID, sJmeno, sPrijm, sCisZam, sRC, dDatNar, sMistoNar, nPohlId, sPozn, bStav);
if(bStav)then
{ Zaměstnanec existuje - zaostříme PP }
SetGVal("#_HPDiaHeader_UvazekId", O[dbIdent]);
if(_HPDiaHeader(Mes, Rok, sJmeno, sPrijm, sCisZam, sRC, dDatNar, sMistoNar, nPohlId, sPozn,
SeznamPP, mskVyplMisto) = cmOK)then
{ V dialogu zaměstnance stiskl uživatel [OK] }
if(_HPAction(hpaUlozZam, ZamId, sJmeno, sPrijm, sCisZam, sRC, dDatNar, sMistoNar, nPohlId, sPozn))then
{ Základní data zaměstnance jsou v pořádku uložena, projdeme změny PP }
IdxDet := 1;
while(_SGetTyp(SeznamPP, IdxDet + 1000) <> 0)do
nModPP := _SGet(SeznamPP, IdxDet + 0000); { Mod úvazku 0=původní,1=nový,2=upravený }
UvazekId := _SGet(SeznamPP, IdxDet + 1000);
sOsCislo := _SGet(SeznamPP, IdxDet + 2000);
dDatNast := _SGet(SeznamPP, IdxDet + 3000);
nStredId := _SGet(SeznamPP, IdxDet + 4000);
nTypPP := _SGet(SeznamPP, IdxDet + 5000);
nSkupiny := _SGet(SeznamPP, IdxDet + 6000);
if(nModPP = 1)then
{ Nový PP }
else
if(nModPP = 2)then
{ Úprava PP }
endif
endif
_Inc(IdxDet);
endwhile
endif
endif
endif
endproc { Test_HPDiaHeader_Uprava }
procedure Test_HPDiaHeader_Novy
dim Rok : Word;
dim Mes : Word;
dim ZamId : Longint;
dim SeznamPP : File;
dim IdxId, IdxDet : Integer;
dim UvazekId : Longint;
Rok := _SysYear;
Mes := _ActMonth;
SRewrite(SeznamPP, "", true);
dim sUid : String[50];
dim sGUID : String[50];
dim sJmeno : String[50];
dim sPrijm : String[50];
dim sCisZam : String[50];
dim sRC : String[50];
dim dDatNar : Date;
dim sMistoNar : String[50];
dim nPohlId : Longint;
dim sPozn : String[50];
dim bStav : Byte;
dim nModPP : Integer;
dim sOsCislo : String[50];
dim dDatNast : Date;
dim nStredId : Longint;
dim nTypPP : Longint;
dim nSkupiny : Longint;
sUid := _NewGuid;
sGUID := _NewSysGuid;
sJmeno := "";
sPrijm := "";
sCisZam := "";
sRC := "";
dDatNar := _Date(0,0,0);
sMistoNar := "";
nPohlId := 0;
sPozn := "";
SetGVal("#_HPDiaHeader_UvazekId", 0);
if(_HPDiaHeader(Mes, Rok, sJmeno, sPrijm, sCisZam, sRC, dDatNar, sMistoNar, nPohlId, sPozn,
SeznamPP, 1) = cmOK)then
{ V dialogu zaměstnance stiskl uživatel [OK] }
if(_HPAction(hpaPridejZam, ZamId, sUid, sGUID, sJmeno, sPrijm, sCisZam, sRC, dDatNar, sMistoNar, nPohlId, sPozn, SeznamPP))then
{ Základní data zaměstnance jsou v pořádku uložena, projdeme změny PP }
IdxDet := 1;
while(_SGetTyp(SeznamPP, IdxDet + 1000) <> 0)do
nModPP := _SGet(SeznamPP, IdxDet + 0000); { Mod úvazku 0=původní,1=nový,2=upravený }
UvazekId := _SGet(SeznamPP, IdxDet + 1000);
sOsCislo := _SGet(SeznamPP, IdxDet + 2000);
dDatNast := _SGet(SeznamPP, IdxDet + 3000);
nStredId := _SGet(SeznamPP, IdxDet + 4000);
nTypPP := _SGet(SeznamPP, IdxDet + 5000);
nSkupiny := _SGet(SeznamPP, IdxDet + 6000);
if(nModPP = 1)then
{ Nový PP }
if(_FindRecId(dbtO, UvazekId))then
SetRights(nSkupiny);
O[oOsCis] := sOsCislo;
HstSetItem(dbtO, 310, dDatNast, _Date(1,Mes,Rok), _Date(1,Mes,Rok));
O[oStr] := nStredId;
HstSetItem(dbtO, 299, nTypPP, _Date(1,Mes,Rok), _Date(1,Mes,Rok));
endif
endif
_Inc(IdxDet);
endwhile
endif
endif
endproc { Test_HPDiaHeader_Novy }