BM Software, Němčičky 84, 69107 Němčičky u Břeclavi
Vývoj,
výroba, prodej a montá docházkových a identifikačních systémů
Tel: 519 430 765, Mobil: 608 447 546, e-mail: bmsoft@seznam.cz, web: http://www.dochazka.eu
Docházka 3000 - WebAPI
Popis webového komunikačního rozhraní externích programů s docházkovým systémem Docházka 3000.
Jednotlivá volání z externího programu do docházky probíhají tak, e externí program vyvolá webovou adresu pomocí HTTP protokolu. Součástí této adresy jsou vstupní parametry pro docházku. Na základě těchto parametrů vygeneruje docházkový systém odpověď, kterou předá zpět do externího programu jako „webovou stránku“ v HTML kódu. Externí program se tedy z pohledu docházkového systému chová stejně jako běný webový prohlíeč. Tedy vyvolá určitou webovou adresu a docházky odpoví webovou stránkou, ze které si poté externí program „vyparsuje“ potřebná data odpovědi.
Touto metodou je moné přenáet data oběma směry – zápis z externího programu do docházky i čtení dat z docházky do externího programu.
Adresa docházky je při standardní instalaci a volání přímo na serveru tato: http://127.0.0.1/dochazka2001/
a za ní se doplňují podrobné parametry kadého příkazu. Je vak moné volat příkazy WebAPI rozhraní docházky i z jiného PC, ne je přímo docházkový server. Pak se ve výe uvedené adrese mění IP adresa, případně lze doplnit číslo portu (pokud neběí docházka na standardním 80) a pro přenos je nutné, aby komunikaci neblokoval případný firewall nainstalovaný na docházkovém serveru (povolit port docházky). Take například pokud voláte příkazy z jiného PC, docházka běí na serveru s IP 192.168.1.1 a je přesměrovaná na port 8080, bude adresa vypadat takto: http://192.168.1.1:8080/dochazka2001/
Přehled aktuálně dostupných funkcí rozhraní WebAPI spolu s jejich podrobným popisem:
Čtení seznamu zaměstnanců z docházky
Zápis nového zaměstnance do docházky
Mazání zaměstnance z docházky
Čtení seznamu oddělení z docházky
Zápis nového oddělení do docházky
Čtení seznamu svátků z docházky
Zápis nového svátku do docházky
Čtení seancí (příchodů a odchodů) zaměstnanců z docházky
Zápis seance do docházky (dvě varianty)
Čtení absencí zaměstnanců z docházky
Zápis absence do docházky
Čtení průchodů z docházky
Čtení kontrolního listu (výpisu docházky zaměstnance) z docházky
Čtení aktuálního stavu přítomných/nepřítomných pracovníků z docházky
Čtení aktuálního stavu přítomných/nepřítomných pracovníků z docházky v CSV formátu
Čtení stavu dovolených z docházky
Čtení kategorie (směny) zaměstnance z docházky
Čtení CSV exportu z docházky (např. pro mzdové systémy)
Čtení XML exportu z docházky
Čtení vypočtené odpracované doby zaměstnanců
Čtení uznané pracovní doby nebo přesčasu konkrétního pracovníka na konkrétní den
Čtení parametrů kategorie pracovní doby pro pracovníka a den
Čtení aktuálního datumu a času hlavního PC docházky
Zápis do evidence záloh databáze (např. pro nařízení GDPR)
Jak volat funkce WebAPI
Formát parametrů je uveden níe u podrobného popisu jednotlivých funkcí. Jejich volání je větinou realizováno z kompatibilních externích systémů nebo je pomocí programovacích jazyků naprogramováno při vývoji zákaznické aplikace. Ale funkce webapi můete vyuít i kdy nejste vývojáři. Například na Windows 10 lze funkce webapi docházky vyvolat i pomocí PowerShellu a uloit případný výstup do textového souboru pro dalí zpracování. Co lze navíc automatizovat třeba pomocí skriptů spoutěných z naplánovaných úloh.
K volání lze pouít metodu DownloadFile objektu System.Net.WebClient.
Zde je ukázka s příkladem, který do souboru c:\tmp\pritomni.txt uloí aktuální stav přítomnosti zaměstnanců na pracoviti vyuitím funkce WebAPI příkazu 12.
(new-object System.Net.WebClient).DownloadFile( 'http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=11' , 'C:\tmp\pritomni.txt' )
V PowerShellu je třeba příkaz napsat na jeden řádek. Na výe uvedeném příkladě je rozdělen , protoe se nevejde na ířku stránky A4. Ale při zápisu v počítači jej vlote do jediného řádku.
Parametr webové adresy http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=11 určuje příkaz a jeho parametry pro webapi (číslo firmy, číslo příkazu). Správné znění jednotlivých příkazů naleznete níe na dalích stranách tohoto návodu.
Parametr výstupního souboru C:\tmp\pritomni.txt určuje, kam bude uloen výstup příkazu. V tomto případě tedy na disk C:\ do sloky tmp a do souboru pritomni.txt.
Pokud
máte k dispozici PowerShell verze 3 (opět např. Windows 10), lze
pouít i příkaz Invoke-WebRequest
například s výstupem
opět přesměrovaným do souboru přes parametr –OutFile.
Ukázka pro stejný příkaz API:
Invoke-WebRequest -OutFile "C:\tmp\pritomni.txt http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=11"
U obou metod je důleité, aby byla správně zadaná jak webová adresa pro příkaz WebApi, tak také aby měl uivatel právo zápisu do výstupního souboru. Je tedy vhodné výstupní soubory vytvářet ve sloce, do které má uivatel, pod kterým příkaz PowerShellu spoutíte, právo zápisu. Například větinou neprojde zápis do souboru uloeném v hlavním adresáři (rootu) disku C:\ a systém vypíe chybové hláení typu Přístup k cestě ... odepřen.
Nezapomeňte, e výstupní soubory z volání funkcí webapi obsahují linuxové konce řádků. Take pokud si je prohlédnete například v NotePadu (program Poznámkový blok), nebude výstup pro člověka snadno čitelný. Ve WordPadu bude ve v pořádku, protoe ten provádí konverzi. Abyste výstupní soubor obdreli přímo s konci řádků upravenými pro Windows, je třeba soubor zkonvertovat například tímto příkazem PowerShellu:
(gc c:\tmp\pritomni.txt) | %{$_.split("`n")} | Out-File c:\tmp\pritomniOK.txt
Případně lze pouít i jednouí zápis: gc c:\tmp\pritomni.txt > c:\tmp\pritomniOK.txt
V souboru c:\tmp\pritomniOK.txt pak bude výstup s konci řádků vhodnými pro zpracování ve Windows.
Kdy funkce webapi voláte z Linuxu, lze pouít příkaz wget a navíc nemusíte konvertovat konce řádků. Např: wget -O /home/petr/pritomni.txt "http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=11"
Pokud máte starí verzi Windows a nejde pouít PowerShell, lze příkaz wget doinstalovat i do Windows.
Pro automatické spoutění příkazů WebAPI přes naplánované úlohy je třeba nejprve v powershellu zadat příkaz Set-ExecutionPolicy unrestricted
čím se povolí dávkové soubory powershellu ve Windows. Poté v jednoduchém textovém editoru vytvořit soubor (např. c:\skripty\skript.ps1) s obsahem příkazu. Nakonec vytvořit naplánovanou úlohu, která bude spoutět powershell s parametrem názvu vaeho souboru s příkazem webapi. Příkaz naplánované úlohy bude např.: powershell -File c:\skripty\skript.ps1
Na dalích stranách ji následuje podrobný popis jednotlivých funkcí aplikačního programového rozhraní WebAPI systému Docházka 3000:
Čtení seznamu zaměstnanců z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=1
Odpovědí je webová stránka obsahující data ve formátu CSV se záhlavím na prvním řádku. Oddělovačem poloek je středník a konce řádků jsou
Například:
index;jmeno;prijmeni;oddeleni;kategorie;karta;mistnost;telefon;aktivni;ldapname
1;Eva;Spálená;1;1;;102;404303;1;;
2;Jan;Albrecht;2;1;0000001200bd0769;;;1;;
3;Olin;Blanář;3;1;000008FB1783;;;1;;
4;René;Cígler;3;1;000000004;;;1;;
5;Karel;Donné;1;2;000000006;;;1;;
6;Jiří;Exner;3;1;;;;1;;
7;Hanna;Frantů;3;1;000F02A7FFBB;;;1;;
8;Soňa;áková;1;1;12345;;;1;sonina@firma.cz;
----------------------------------------------------------------------------------------------------------------------------------
Čtení seznamu oddělení z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=2
Odpovědí je webová stránka obsahující data ve formátu CSV se záhlavím na prvním řádku. Oddělovačem poloek je středník a konce řádků jsou
Například:
cislo;nazev
1;Vedení;
2;Výroba;
3;Doprava a sklad;
----------------------------------------------------------------------------------------------------------------------------------
Čtení seznamu svátků z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=3
Odpovědí je webová stránka obsahující data ve formátu CSV se záhlavím na prvním řádku. Oddělovačem poloek je středník a konce řádků jsou
Například:
den;mesic;rok;nazev
1;1;0;Nový rok;
9;4;2007;Velikonoční pondělí;
24;3;2008;Velikonoční pondělí;
13;4;2009;Velikonoční pondělí;
5;4;2010;Velikonoční pondělí;
1;5;0;Svátek práce;
8;5;0;Den osvobození;
28;9;0;Den České státnosti;
17;11;0;Den boje za svobodu a demokracii;
24;12;0;tědrý den;
----------------------------------------------------------------------------------------------------------------------------------
Čtení průchodů z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=4&datum=2013-05-24
Poloka datum udává den, na který chcete zjistit přehled průchodů ve formátu RRRR-MM-DD. Pro aktuální den stačí zadat hodnotu now místo konkrétního datumu.
Odpovědí je webová stránka obsahující data ve formátu CSV se záhlavím na prvním řádku. Oddělovačem poloek je středník a konce řádků jsou
Například:
datum;cas;index;udalost;stanoviste;data
2013-05-24;09:16:02;1;130;1;0|0;
2013-05-24;09:16:07;2;130;1;0|0;
2013-05-24;09:16:17;3;130;1;0|0;
2013-05-24;11:42:36;2015;130;-2;Kód 0,IP 200.1.1.7;
2013-05-24;14:24:09;3;131;1;0|0;
2013-05-24;15:36:16;1;131;1;0|0;
2013-05-24;15:24:21;2;131;1;0|0;
Poloka udalost má tyto významy:
11-otevření dveří 14-chyba, neoprávněn atd. 130-příchod
131-odchod 132-celodenní absence 127-objednání jídla
128-změna typu práce
Poloka data obsahuje doplňující informace, jako je kód přeruení či absence, typ práce či zakázky, číslo jídla, datum absence, IP adresa PC při čipování přes počítač atd.
----------------------------------------------------------------------------------------------------------------------------------
Zápis nového oddělení do docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/a_odd.php?t=3&firma=1&heslo=xcpeadps&stredisko=4
&nazev=jmeno%20strediska
Poloka středisko udává číslo nově zadávaného oddělení. Pokud ji oddělení s tímto číslem existuje, je přejmenováno na nový název.
Poloka nazev udává jméno nově zakládaného oddělení. Kódování – viz v příkladu mezera má ascii kód 0x20 v hexa vyjádření uvedeným za %
Odpovědí je webová stránka obsahující seznamu oddělení v plném html kódu. Nepředpokládá se dalí zpracování odpovědi externím programem.
----------------------------------------------------------------------------------------------------------------------------------
Zápis nového svátku do docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/a_svatky.php?t=3&firma=1&heslo=xcpeadps&den=1
&mesic=1&rok=0&popis=Nový%20rok
Poloky den , mesic a rok udávají datum nového svátku. Pokud je rok roven nule, jedná se o pravidelný svátek. Pokud ji na tento den svátek existuje, je přejmenován na nový popis.
Poloka popis udává jméno nově zakládaného svátku. Kódování – viz v příkladu mezera má ascii kód 0x20 v hexa vyjádření uvedeným za %
Odpovědí je webová stránka obsahující seznam svátků v plném html kódu. Nepředpokládá se dalí zpracování odpovědi externím programem.
----------------------------------------------------------------------------------------------------------------------------------
Zápis nové seance (příchodu/odchodu) do docházky zaměstnance: (varianta 1, on-line zápis)
Umoňuje vkládání příchodů, odchodů a přeruení do docházky konkrétního zaměstnance. Čas se pouije ten, který je aktuálně na serveru docházky – explicitní udávání datumu a času není povoleno. Seance se zapíe na okamik, kdy je operace vyvolaná. Toto omezení je záměrně a znemoňuje tak zneuívání funkcí WebAPI k falování docházky.
Adresa WebAPI:
http://127.0.0.1/dochazka2001/vypis.php?akce=1&firma=1&os_cis=5&indexza=5
&typ=1&kod=0
Poloky os_cis a indexza udávají číslo zaměstnance, kterému zapisujete seanci. Obě musí udávat stejné číslo.
Poloka typ nastavená na 1 zapisuje příchod. Při nastavení na hodnotu 2 se zapisuje odchod.
Poloka kod udává kód přeruení. Hodnota nula je klasický příchod/odchod. Dalí hodnoty 1 a 20 pak udávají konkrétní kód přeruení (krátkodobé absence) dle kategorie zaměstnance. Např. 1-dovolená, 2-nemoc,
3-sl.cesta atd.
Odpovědí je webová stránka obsahující kontrolní list (výpis) docházky pracovníka v plném html kódu. Nepředpokládá se dalí zpracování odpovědi externím programem.
Pokud pouíváte typy práce nebo zakázek, lze pomocí poloky typpr definovat i vkládaný typ práce. Např pro vloený typu práce 15 bude odkaz vypadat následovně:
http://127.0.0.1/dochazka2001/vypis.php?akce=1&firma=1&os_cis=5&indexza=5&typ=1&kod=0&typpr=15
Pro změnu práce v průběhu dne pak jetě nastavíte poloku typ na hodnotu 3. Take pro změnu práce z výe uvedené patnáctky na novou práci číslo 2 bude mít odkaz tento tvar:
http://127.0.0.1/dochazka2001/vypis.php?akce=1&firma=1&os_cis=5&indexza=5&typ=3&kod=0&typpr=2
----------------------------------------------------------------------------------------------------------------------------------
Zápis celodenní absence do docházky zaměstnance:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/vypis.php?akce=2&firma=1&os_cis=5&indexza=5
&datumod=14.7.2013&kod=1
Poloky os_cis a indexza udávají číslo zaměstnance, kterému zapisujete absenci. Obě musí udávat stejné číslo.
Poloka datumod udává den, na kdy se celodenní absence vkládá. Datum je ve formátu DD.MM.RRRR
Poloka kod udává číslo absence. Hodnota nula mae absenci na zadané datum. Hodnoty 1 a 20 udávají konkrétní kód absence dle kategorie zaměstnance. Např. 1-dovolená, 2-nemoc, 3-sl.cesta atd. Pokud ji na tento den byla dříve nějaká absence nahraná, přepíe se nově vkládaným kódem.
Odpovědí je webová stránka obsahující kontrolní list (výpis) docházky pracovníka v plném html kódu. Nepředpokládá se dalí zpracování odpovědi externím programem.
----------------------------------------------------------------------------------------------------------------------------------
Čtení kontrolního listu (výpisu) zaměstnance z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/vypis.php?firma=1&os_cis=5&indexza=5
&datumod=1.7.2013&datumdo=15.7.2013
Poloky os_cis a indexza udávají číslo zaměstnance, jeho výpis docházky se má načítat. Obě musí udávat stejné číslo.
Poloka datumod udává počáteční datum výpisu. Datum je ve formátu DD.MM.RRRR
Poloka datumdo udává koncové datum intervalu výpisu. Opět ve formátu DD.MM.RRRR
Nepovinný parametr &pisdov=1 zajistí i zobrazení tabulky stavu dovolené. Do verze 7.63 se zobrazuje jen pro výpisy za aktuální rok. Od verze 7.64 výe pak i ve zkráceném tvaru pro loňský a starí roky.
Odpovědí je webová stránka obsahující kontrolní list (výpis) docházky pracovníka v plném html kódu.
----------------------------------------------------------------------------------------------------------------------------------
Čtení aktuálního stavu přítomných/nepřítomných pracovníků z docházky:
Adresa WebAPI: (tato funkce zároveň vyvolá přenos dat z BM-Finger,
pokud ji uplynul interval pro přenosy)
http://127.0.0.1/dochazka2001/vypstavu.php?firma=1
Odpovědí je webová stránka obsahující aktuální přehled přítomnosti zaměstnanců v plném HTML kódu.
Pokud potřebujete výstupní data dále zpracovávat, pouijte funkci s CSV formátem, viz dále.
Dalí nepovinné parametry: #tabulka ... přeskočit úvodní tlačítka
&strucne=1 ... zobrazení stručného výpisu &refreshtime=10 ... počet vteřin automatického obnovení
&idzaomez=KladnéČíslo ... vypsat jen tohoto prac. &idzaomez=ZápornéČíslo ... vypsat jen zadané oddělení
&t=1 ... seřadit podle příjmení &t=4 ... seřadit podle stavu přítomnosti
&t=2 ... seřadit podle indexu &t=5 ... seřadit podle místnosti
&t=3
... seřadit podle č. oddělení &t=6 ... seřadit podle telefonu
Např. odkaz níe vypíe kadých 10 vteřin pracovníky z odd. 3 řazené podle stavu přítomnosti a přeskočí tlačítka
http://127.0.0.1/dochazka2001/vypstavu.php?firma=1&refreshtime=10&idzaomez=-3&t=4#tabulka
----------------------------------------------------------------------------------------------------------------------------------
Čtení stavu dovolených z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/editdov.php?firma=1&heslo=eddousrd57r
Odpovědí je webová stránka obsahující přehled převodů, nároků, čerpání a zůstatků dovolené pro jednotlivé zaměstnance v plném HTML kódu.
----------------------------------------------------------------------------------------------------------------------------------
Čtení kategorie (směny) zaměstnance z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=5&datum=2013-05-24
&indexza=1
Poloka datum udává den, na který chcete zjistit, jakou má pracovník kategorii (směnu). Pro aktuální den stačí zadat hodnotu now místo konkrétního datumu. Datum je ve formátu RRRR-MM-DD.
Poloka indexza udává číslo zaměstnance, jeho kategorie se bude zjiovat.
Odpovědí je webová stránka obsahující na prvním řádku číslo kategorie (směny) platné pro hledaného zaměstnance na zadané datum a na druhém řádku název této kategorie.
----------------------------------------------------------------------------------------------------------------------------------
Čtení seancí zaměstnanců (příchodů a odchodů) z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=6&datumod=2013-05-01
&indexza=1&datumdo=2013-05-24
Poloka datumod udává den, na který chcete načíst příchody a odchody. Pro aktuální den stačí zadat hodnotu now místo konkrétního datumu. Datum je ve formátu RRRR-MM-DD.
Poloka datumdo je nepovinná a udává den konce intervalu, do kterého chcete záznamy načítat. Pokud není uvedena, načte se pouze jeden den. Pro aktuální den stačí zadat hodnotu now místo konkrétního datumu. Datum opět ve formátu RRRR-MM-DD.
Poloka indexza je nepovinná a udává číslo zaměstnance, jeho příchody a odchody budou načteny. Pokud není uvedena, načtou se záznamy vech pracovníků.
Odpovědí je webová stránka obsahující data ve formátu CSV se záhlavím na prvním řádku. Oddělovačem poloek je středník a konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10). Například:
index;datum;cas prichodu;kod prichodu;cas odchodu;kod odchodu;typ prace
1;2012-05-02;07:55;0;16:25;0;0;
1;2012-05-03;08:11;0;16:41;0;0;
1;2012-05-04;08:00;0;16:30;0;0;
1;2012-05-07;07:38;0;16:08;0;0;
1;2012-05-09;07:43;0;16:13;0;0;
1;2012-05-10;08:20;0;16:50;0;0;
1;2012-05-11;08:06;0;16:36;0;0;
----------------------------------------------------------------------------------------------------------------------------------
Čtení absencí zaměstnanců z docházky:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=7&datumod=2012-06-01
&indexza=2&datumdo=2012-06-30
Poloka datumod udává den, na který chcete načíst absence. Pro aktuální den stačí zadat hodnotu now místo konkrétního datumu. Datum je ve formátu RRRR-MM-DD.
Poloka datumdo je nepovinná a udává den konce intervalu, do kterého chcete záznamy načítat. Pokud není uvedena, načte se pouze jeden den. Pro aktuální den stačí zadat hodnotu now místo konkrétního datumu. Datum opět ve formátu RRRR-MM-DD.
Poloka indexza je nepovinná a udává číslo zaměstnance, jeho absence budou načteny. Pokud není uvedena, načtou se záznamy vech pracovníků.
Odpovědí je webová stránka obsahující data ve formátu CSV se záhlavím na prvním řádku. Oddělovačem poloek je středník a konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10). Například:
index;datum;kod;typ prace
2;2012-06-19;1;0;
2;2012-06-20;1;0;
2;2012-06-21;4;0;
2;2012-06-22;4;0;
----------------------------------------------------------------------------------------------------------------------------------
Čtení vypočtené odpracované doby zaměstnanců:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=8&datumod=01.06.2012
&datumdo=30.6.2012&os_cis=2&jencista=1
Poloka datumod udává den, od kterého se vyhodnocuje. Pro aktuální den stačí zadat hodnotu now místo konkrétního datumu. Datum je ve formátu DD.MM.RRRR.
Poloka datumdo je nepovinná a udává den konce intervalu, do kterého chcete záznamy načítat. Pokud není uvedena, načte se pouze jeden den. Pro aktuální den stačí zadat hodnotu now místo konkrétního datumu. Datum opět ve formátu DD.MM.RRRR. Maximální délka období je nastavena v menu Firma / Editace údajů.
Poloka os_cis je nepovinná a udává číslo zaměstnance, jeho odpracovaná doba bude načtena. Pokud není uvedena, načtou se záznamy vech pracovníků.
Poloka jencista je nepovinná a pokud je nenulová, udává zda má být vyhodnocena jen doba přítomnosti na pracoviti. Pokud není uvedena nebo je nulová, budou do odpracované doby zahrnuty i uznávané absence.
Odpovědí je webová stránka obsahující data ve formátu CSV se záhlavím na prvním řádku. Oddělovačem poloek je středník a konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10). Například:
Index;Pracovnik;Datum;Kod;Odpracovano;Balanc;Pocet prestavek;Fond;Kategorie;Priplatky
2;Albrecht Jan;01.06.2012;0;0:0;-8:00;0;08:00;1;0
2;Albrecht Jan;04.06.2012;0;0:0;-8:00;0;08:00;1;0
2;Albrecht Jan;05.06.2012;0;0:0;-8:00;0;08:00;1;0
2;Albrecht Jan;06.06.2012;0;0:0;0:00;0;00:00;1;0
Od verze 7.64 je jetě zobrazen i údaj o délce uznávané pracovní doby – sloupce SmenaOd a SmenaDo
----------------------------------------------------------------------------------------------------------------------------------
Čtení CSV exportu z docházky:
Tato funkce umoňuje načtení podrobného exportu údajů z docházkového systému a lze jej vyuít například pro mzdové a dalí systémy, které potřebují ji zpracovaná data. Výstup obsahuje údaje shodné s údaji exportu sestav výsledovka, přehledka či výkaz. Tedy podrobné vyhodnocení docházky zaměstnanců jako je odpracovaná doba, doba absencí, přesčasy, noční a odpolední práce, příplatky, práce ve svátky atd. atd.
Na rozdíl od výe uvedených funkcí se tato skládá ze dvou kroků. V prvním volání se spustí výpočet dle zadaných parametrů a je třeba vyčkat, a se výpočet dokončí. A poté lze pomocí druhého volání načíst výsledné údaje. Druhé volání lze provést čtyřmi způsoby – dva různé formáty dat a dva různé soubory.
Adresa WebAPI pro sputění výpočtu:
http://127.0.0.1/dochazka2001/vysledovka.php?firma=1&jencista=1&celoden=1&mzdy=1
&vykaz=3&idzaend=0&akce=1&datumod=01.06.2012&datumdo=30.6.2012&os_cis=0
&nocasvod=22:00&nocasvdo=06:00&nocasvmin=30&odpolod=14:00&odpoldo=22:00
&odpolmin=30
Poloka datumod udává den, od kterého se vyhodnocuje. Datum je ve formátu DD.MM.RRRR.
Poloka datumdo udává den konce intervalu, do kterého chcete záznamy načítat – formát DD.MM.RRRR.
Poloka os_cis je nepovinná a udává číslo zaměstnance, jeho odpracovaná doba bude načtena. Pokud není uvedena, načtou se záznamy vech pracovníků.
Poloky nocasvod, nocasvdo a nocasvmin udávají interval pro vyhodnocení noční práce a její minimální délku.
Poloky odpolod, odpoldo a odpolmin udávají interval pro vyhodnocení odpolední práce a její minimální délku.
Odpovědí je webová stránka o průběhu výpočtu. Konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10).
Výpočet můe trvat i několik minut dle rychlosti serveru, mnoství zpracovávaných dat, délce období atd. Je třeba vyčkat, dokud se výpočet nedokončí – neukončí se načítání stránky. Na konci stránky je řádek s klasickým html zakončením - </BODY></HTML>.
A po dokončení výpočtu z prvního kroku je moné vyvolat druhé volání, kterým se načtou vypočtené údaje:
Adresa WebAPI pro načtení údajů (metoda 1):
http://127.0.0.1/dochazka2001/vysledovka2.csv
Odpovědí je CSV soubor obsahující vypočtená data ve formátu vět – kód mzdové sloky, pracovník, období, hodiny hh:mm:ss, hodiny jako desetinné číslo, dny, částka. Oddělovačem poloek je středník a konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10). Například:
102;1;2;01.06.2012;30.6.2012;201206;157:30:00;157,5;0;0;
103;1;2;01.06.2012;30.6.2012;201206;-157:30:00;-157,5;0;0;
107;1;2;01.06.2012;30.6.2012;201206;0:00:00;0;21;0;
154;1;2;01.06.2012;30.6.2012;201206;-157:30:00;-157,5;0;0;
102;2;2;01.06.2012;30.6.2012;201206;157:30:00;157,5;0;0;
103;2;2;01.06.2012;30.6.2012;201206;-157:30:00;-157,5;0;0;
107;2;2;01.06.2012;30.6.2012;201206;0:00:00;0;21;0;
154;2;2;01.06.2012;30.6.2012;201206;-157:30:00;-157,5;0;0;
102;7;1;01.06.2012;30.6.2012;201206;157:30:00;157,5;0;0;
Jedná se o univerzální datový soubor, který systém Docházka 3000 pouívá pro export do mzdových a dalích systémů. Podrobný popis formátu souboru, významu jednotlivých kódů mzdových sloek a dalích údajů naleznete v návodu export_mzdy.pdf od strany 8 dále, který je dostupný na instalačním CD docházky ve sloce Prirucky nebo na webu www.dochazka.eu v menu Podpora / Dokumentace / Export do mezd CSV
Výe uvedený import lze načíst také jako webovou stránku s hlavičkou.
Adresa WebAPI pro načtení údajů jako web stránku s hlavičkou (metoda 2):
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=9
Odpověď pak obsahuje data ve formátu CSV. Oddělovačem poloek je středník a konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10). Například:
Kod slozky;Index;Datum Od;Datum Do;Obdobi;Hodiny;Hodiny desetinne;Dny;Castka;
101;1;1;20.05.2013;26.05.2013;201305;17:30:00;17,5;0;0;
102;1;1;20.05.2013;26.05.2013;201305;37:30:00;37,5;0;0;
103;1;1;20.05.2013;26.05.2013;201305;6:40:00;6,66;0;0;
104;1;1;20.05.2013;26.05.2013;201305;7:00:00;7;0;0;
Dále lze načíst i soubor ve formátu „tabulky“, kdy kadý zaměstnanec má jeden řádek a na něm jsou vekeré údaje. Poté jetě následují dvě samostatné sekce podrobného denního vyhodnocení absencí – jedna sekce pro celodenní absence a druhá pro krátkodobé:
Adresa WebAPI pro načtení údajů (metoda 3):
http://127.0.0.1/dochazka2001/vysledovka.csv
Odpovědí je CSV soubor obsahující vypočtená data ve formátu „tabulky“. Oddělovačem poloek je středník a konce řádků jsou unixového typu (1
Období;20.05.2013;do;26.05.2013;
Index;Jméno;Odd;Odpracoval;Fond;Přesčas;Víkendy;Svátky;Noční;Prac.dní;Odprac.dní;Abs.1... 1;Pokusný Uivatel;1;17:30:00;37:30:00;6:40:00;7:00:00;00:00:00;1:30:00;5;4;8:00:00;1;...
Index;Absence;Od;Do;
1;1;22.05.2013;22.05.2013;
1;3;24.05.2013;24.05.2013;
Index;Absence;Datum;Doba;
1;3;20.05.2013;7:10:00;
1;6;21.05.2013;3:30:00;
Jedná se o univerzální datový soubor vysledovka.csv, který systém Docházka 3000 pouívá pro export do mzdových a dalích systémů. Podrobný popis formátu souboru naleznete v návodu export_mzdy.pdf (strana 1 a 7), který je dostupný na instalačním CD docházky ve sloce Prirucky nebo na webu www.dochazka.eu v menu Podpora / Dokumentace / Export do mezd CSV
Výe uvedený import lze načíst také jako webovou stránku:
Adresa WebAPI pro načtení údajů jako web stránku s hlavičkou (metoda 4):
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=10
Odpověď pak obsahuje data ve formátu CSV. Oddělovačem poloek je středník a konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10). Kódování
----------------------------------------------------------------------------------------------------------------------------------
Čtení XML exportu z docházky:
Tato funkce umoňuje získat stejná data jako funkce předchozí, ale ve formátu XML. Navíc obsahuje některé dalí údaje, jako je denní rozpis směn, fondů, odpracované doby atd.
Skládá se ze tří volání rozhraní WebAPI, která podobně jako u předchozí funkce musí následovat po sobě a to tak, e následné volání je nutné spustit a po skutečném dokončení výpočtů volání předchozího. První volání obsahuje parametry a spoutí výpočet. Druhé volání spoutí konverzi výsledků do XML a třetí volání teprve načítá výsledná data. První volání je úplně shodné s předchozí funkcí.
Adresa WebAPI pro sputění výpočtu:
http://127.0.0.1/dochazka2001/vysledovka.php?firma=1&jencista=1&celoden=1&mzdy=1
&vykaz=3&idzaend=0&akce=1&datumod=01.06.2012&datumdo=30.6.2012&os_cis=0
&nocasvod=22:00&nocasvdo=06:00&nocasvmin=30&odpolod=14:00&odpoldo=22:00
&odpolmin=30
Poloka datumod udává den, od kterého se vyhodnocuje. Datum je ve formátu DD.MM.RRRR.
Poloka datumdo udává den konce intervalu, do kterého chcete záznamy načítat – formát DD.MM.RRRR.
Poloka os_cis je nepovinná a udává číslo zaměstnance, jeho odpracovaná doba bude načtena. Pokud není uvedena, načtou se záznamy vech pracovníků.
Poloky nocasvod, nocasvdo a nocasvmin udávají interval pro vyhodnocení noční práce a její minimální délku.
Poloky odpolod, odpoldo a odpolmin udávají interval pro vyhodnocení odpolední práce a její minimální délku.
Odpovědí je webová stránka o průběhu výpočtu. Konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10).
Výpočet můe trvat i několik minut dle rychlosti serveru, mnoství zpracovávaných dat, délce období atd. Je třeba vyčkat, dokud se výpočet nedokončí – neukončí se načítání stránky. Na konci stránky je řádek s klasickým html zakončením - </BODY></HTML>.
A po dokončení výpočtu z prvního kroku je moné vyvolat druhé volání, kterým se spustí konverze do XML:
Adresa WebAPI pro sputění konverze:
http://127.0.0.1/dochazka2001/exportxml.php?firma=1&akce=1
Odpovědí je opět webová stránka o průběhu konverze. Je třeba vyčkat, dokud se konverze nedokončí – neukončí se načítání stránky. Na konci stránky je řádek s klasickým html zakončením - </BODY></HTML>.
A po dokončení konverze z druhého kroku je moné vyvolat třetí volání, kterým se načtou vypočtené údaje:
Adresa WebAPI pro načtení údajů:
http://127.0.0.1/dochazka2001/vysledovka.xml
Odpovědí je xml soubor obsahující vypočtená data. Konce řádků jsou unixového typu. Kódování je Windows-1250. Například:
<?xml version="1.0" encoding="windows-1250"?>
<dochazky_zamestnancu>
<dochazka_zamestnance>
<hlavicka>
<mesic>05</mesic>
<rok>2013</rok>
<osobni_cislo>1</osobni_cislo>
<jmeno>Eva</jmeno>
Jedná se o univerzální datový soubor vysledovka.xml, který systém Docházka 3000 pouívá pro export do mzdových a dalích systémů. Podrobný popis formátu souboru naleznete v návodu export_mzdy_xml.pdf, který je dostupný na instalačním CD docházky ve sloce Prirucky nebo na webu www.dochazka.eu v menu Podpora / Dokumentace / Export do mezd XML
----------------------------------------------------------------------------------------------------------------------------------
Čtení aktuálního stavu přítomných/nepřítomných pracovníků z docházky v CSV formátu:
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=11
Odpovědí je webová stránka obsahující data ve formátu CSV se záhlavím na prvním řádku. Oddělovačem poloek je středník a konce řádků jsou unixového typu (1 byte hex: 0x0a , dec:10). Například:
Index;Stav;
2;0;
34;1;
38;1;
1;0;
8;1;
40;0;
42;1;
43;1;
33;0;
Poloka Index udává osobní číslo zaměstnance a poloka Stav pak zda je v okamiku provedení příkazu přítomen (hodnota 1) nebo nepřítomen (hodnota 0).
----------------------------------------------------------------------------------------------------------------------------------
Čtení uznané pracovní doby konkrétního pracovníka na konkrétní den
Adresa WebAPI:
http://127.0.0.1/dochazka2001/jqnactiodprac.php?firma=1&discache=1&webapi=1
&datum=1.1.2015&indexza=5
Odpovědí je webová stránka obsahující jediný textový údaj na jediném řádku. Tento údaj je právě výe odpracované doby ve formátu hodiny:minuty Například:
8:07
Poloka indexza udává osobní číslo zaměstnance a poloka datum udává datum ve formátu den.měsíc.rok na který chcete zjistit výi uznané pracovní doby (včetně uznávaných absencí a podobně). Výsledný čas je vdy kladný. Pokud pracovník tento den nepracoval, vrátí program prázdný výstup (jen mezeru). Pokud potřebujete nulový čas vrátit ve formátu 0:00 , stačí na konec adresy doplnit parametr &zobraznuly=1
Dále tak vrátí prázdný výstup pokud uvedete neexistující číslo (index) zaměstnance nebo patné datum.
----------------------------------------------------------------------------------------------------------------------------------
Čtení přesčasu konkrétního pracovníka na konkrétní den
Adresa WebAPI:
http://127.0.0.1/dochazka2001/jqnactiodprac.php?firma=1&discache=1&webapi=1
&balanc=1&datum=1.1.2015&indexza=5
Tato funkce je téměř identická s předchozí, ale místo odpracované doby vrací výi přesčasu. Lze pouít i výe uvedený parametr pro zobrazení nul místo prázdného výstupu. Číslo můe být i záporné, pokud pracovník odpracoval kratí čas, ne udává jeho fond denní pracovní doby. Například:
-0:12
Obě výe uvedené funkce pro čtení uznané pracovní doby a pro čtení denního přesčasu konkrétního pracovníka na konkrétní datum nejsou z výkonnostních důvodů vhodné pro hromadné načítání těchto dat cyklickým voláním na delí období nebo pro více zaměstnanců. Hodí se spíe pro jednorázové zobrazení například jako výstup na docházkový terminál v okamiku, kdy si pracovník čipuje docházku a chcete mu zobrazit informaci o aktuálním stavu jeho uznané doby či přesčasu za dnení den.
Naopak pro zjitění dat kvůli sumárním sestavám je vhodnějí funkce Čtení vypočtené odpracované doby zaměstnanců, která umoní v jednom kroku načíst data za delí období a případně i více pracovníků.
----------------------------------------------------------------------------------------------------------------------------------
Zápis nového zaměstnance do docházky
Umoňuje vkládání nových zaměstnanců do databáze docházkového systému. Take pokud máte k dispozici volnou licenci pro přidání dalího pracovníka, lze tímto způsobem importovat do docházky zaměstnance z jiných systémů.
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=12&indexza=5&odd=1
&prijmeni=Kalivoda&jmeno=Adam
Poloka indexza je nepovinná a udává osobní číslo, pod kterým bude zaměstnanec do systému vloen. Pokud jí neuvedete, doplní program vhodné číslo sám. V případě, e zadáte ji existující číslo, bude vrácena chyba.
Poloka odd je nepovinná a udává číslo oddělení (střediska), do kterého bude zaměstnanec zařazen. Kdy nebude uvedeno, doplní program oddělení s nejniím existujícím číslem sám.
Poloky prijmeni a jmeno jsou opět nepovinné. Pokud nejsou
Odpovědí je webová stránka obsahující buď chybové hláení (Error – například při duplicitním indexu, překročené licenci na počet zaměstannců a podobně). Naopak v případě úspěného vloení nového pracovníka vypíe hláení OK a na druhém řádku osobní číslo, pod kterým byl vloen. Například:
OK
indexza=42
Kromě zde popsané monosti importovat zaměstnance do docházky přes rozhraní WebAPI je moné přímo v docházce v editaci údajů zaměstnanců provést import i z adresáře Active Directory protokolem LDAP. Tedy například z řadiče domény systému Windows server.
----------------------------------------------------------------------------------------------------------------------------------
Mazání zaměstnance z docházky
Umoňuje mazat zaměstnance z databáze docházkového systému. Ve skutečnosti jen přesune pracovníka do archivu, take v případě omylu je moné jej obnovit. Navíc lze funkci volat jen z hlavního PC docházky (zdroj localhost), take jí z bezpečnostních důvodů není moné volat vzdáleně z jiného PC v síti.
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=14&indexza=5
Poloka indexza je povinná a udává osobní číslo pracovníka, který bude vymazán (přesunut do archivu)
Odpovědí je webová stránka obsahující buď chybové hláení (Error – například nezadaný index). Naopak v případě úspěného vloení nového pracovníka vypíe hláení OK a na druhém řádku osobní číslo smazaného pracovníka. Například:
OK
indexza=5
----------------------------------------------------------------------------------------------------------------------------------
Čtení parametrů kategorie pracovní doby pro pracovníka a den
Načte základní nastavení kategorie pro konkrétního zaměstnance na zvolený den. V podstatě načte údaje kategorií z tabulky základních parametrů nastavení začátku a konce pohyblivé pracovní doby, denní fond a příznak uznávání přesčasu. Zohledňuje i plovoucí kategorie, osobní rozpisy, automatické kategorie a vyjímky docházky.
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=13&indexza=5
&datum=2.3.2015
Poloka indexza je povinná a udává osobní číslo zaměstnance
Poloka datum je nepovinná a je datum ve formátu DD.MM.RRRR, tedy den, na který chcete nastavení parametrů kategorie pracovní doby zjistit. Pokud datum neuvedete, pouije se aktuální den.
Odpovědí je webová stránka obsahující buď chybové hláení (Error – např. neexistující pracovník, patné číslo firmy, neexistující datum), nebo v případě úspěch hláení OK na prvním řádku a parametry pracovní doby na
řádku druhém. Například:
OK
5;06:00;20:00;07:30;1
První číslice (zde 5) udává číslo kategorie. Dále následuje čas začátek pohyblivé pracovní doby (ve formátu HH:MM), konec pohyblivé pracovní doby, denní fond a příznak uznávání přesčasu. Pohyblivá pracovní doba udává interval, kdy se přítomnost na pracoviti uznává jako odpracovaná doba. Denní fond udává, kolik hodin by měl pracovník tento den odpracovat. Příznak uznávání přesčasu říká, zda se případná práce navíc (delí ne fond) započítá do přesčasu. Pokud je nastaven na 1, tak se přesčas uzná. Pokud je příznak nulový, ádný přesčas se neuznává. Nezohledňují se případné svátky.
V případě, e má pracovník na zadaný den nastavenou vyjímku docházky, pak se místo čísla kategorie zobrazí písmeno V a ostatní údaje se načtou z nastavené vyjímky (např. V;04:00;12:00;05:15;0 )
Pokud má pracovník nastavenou automatickou kategorii, tak se provede přiřazení správné kategorie dle nastavených podmínek a její parametry se zobrazí v odpovědi. Pokud je ale zadáte datum v budoucnu (větí ne dnení), tak není moné správnou kategorii automaticky detekovat (není podle čeho jí určit, protoe na budoucí období jetě neexistuje docházka) a v odpovědi je jen číslice 0 bez dalích parametrů pracovní doby.
Tato funkce vrací jen úplně základní parametry popsané v předchozím odstavci. Samotná docházka pouívá pro výpočet odpracované doby celou řadu dalích parametrů, které mají na výpočet vliv. Jedná se například o zaokrouhlování, přestávky, nastavení minimálních a maximálních dob, absence, penalizace atd. atd.
----------------------------------------------------------------------------------------------------------------------------------
Čtení aktuálního datumu a času hlavního PC docházky
Načte z docházkového serveru jeho aktuální datum a čas. Funkci lze pouít k synchronizaci času externího systému s časovými údaji docházkového serveru.
Adresa WebAPI:
http://127.0.0.1/dochazka2001/casserveru.php
Odpovědí je textová informace o datumu a čase ve formátu DD.MM.RRRR HH:MM:SS Příklad:
21.12.2016 09:18:02
Tedy den.měsíc.rok hodina:minuta:sekunda
----------------------------------------------------------------------------------------------------------------------------------
Zápis do evidence záloh databáze:
Umoňuje zaevidovat zálohu databáze sputěnou externě mimo menu docházkového systému. Například při automatickém zálohování sputěném z naplánovaných úloh, nebo kdy pro docházku pouíváte jiný databázový server ne výchozí MySQL (např. PostgreSQL, MS SQL, Firebird). Tato funkce tedy umoní evidovat i tyto zálohy do modulu "Zaměstnanci / Nařízení GDPR / Evidence záloh DB".
Adresa WebAPI:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=15
Pokud nezadáte číslo firmy, zaeviduje se záloha pro firmu s nejniím ID číslem (např. 1). Odpovědí je textová informace o úspěnosti (OK) či chybě (Error).
Například:
OK
Pokud dojde k chybě, je uvedeno i číslo chyby a na druhém řádku stručný textový popis. Chyba Error 1 znamená, e firma buď nebyla zadaná, nebo v ní nejsou zadaní ádní zaměstnanci. Chyba Error 2 znamená, e firma s uvedeným číslem neexistuje.
----------------------------------------------------------------------------------------------------------------------------------
Zápis nové seance (příchodu/odchodu) do docházky zaměstnance: (varianta 2, off-line zápis)
Umoňuje vkládání příchodů, odchodů a přeruení do docházky konkrétního zaměstnance. Na rozdíl od první varianty se zde udává i datum a čas čipnutí, take lze zapisovat dávkově i starí čipnutí. Je pouze nutné zajistit, aby byla dodrena časová posloupnost. Pokud by byla nejprve zapsaná novějí čipnutí a a poté starí (nejprve odchod pak příchod), dolo by k chybě detekce typu operace.
Vzhledem k tomu, e zde hrozí monost zneuití webapi k falování docházky, je podpora tohoto způsobu zápisu standardně vypnutá. Pokud jí chcete zapnout, je třeba v programu v menu „Firma / Editace údajů“ přepnout poloku „Podpora docházkových terminálů...“ na volbu „Rozvod“ a nastavení uloit.
Toto volání simuluje funkci ovládacího programu řídící jednotky BM-RJ02 ke starým docházkovým systémům.
Adresa WebAPI:
http://127.0.0.1/dochazka2001/bmsync.php?firma=1&prikaz=2&indexza=5
&kod=0&typpr=0&misto=1&datum=2018-03-21%2009:53:08
Poloka indexza udává číslo zaměstnance, kterému zapisujete seanci (v programu označeno Index).
Poloka kod udává kód přeruení a typ příchod/odchod. Hodnota nula je klasický příchod/odchod. Dalí hodnoty 1 a 20 pak udávají konkrétní kód přeruení (krátkodobé absence) dle kategorie zaměstnance.
Např. 1-dovolená, 2-nemoc, 3-sl.cesta atd. Typ příchod/odchod je určen automaticky.
Hodnota 32 udává příchod a hodnota 64 udává odchod. K oběma lze přičíst číslo přeruení 1 a 20, take pak je určen jak typ příchod/odchod, tak kód přeruení. Například hodnota 67 udává odchod na sluební cestu (64+3)
Hodnota 255 udává změnu práce v průběhu dne (viz té poloka typpr)
Poloka typpr udává číslo typu práce nebo zakázky. Viz příručka v programu v menu Firma / Návody PDF odkaz Typy práce.
Poloka misto udává číslo stanovitě, na kterém bylo čipováno. Doporučená hodnota je 1, ale lze definovat číselník stanovi v menu Firma / Terminálový rozvod / Číselník stanovi a pak je vidět název v průchodech.
Poloka datum obsahuje datum a čas čipnutí ve formátu: RRRR-MM-DD%20HH:MM:SS
Tedy rok, měsíc a den oddělené pomlčka, poté oddělovač %20 oddělující část datumu a času, následně čas čipnutí ve formátu hodiny,minuty a vteřiny. Čísla musí mít doplněné počáteční nuly. Tedy například čipnutí dne 1.3.2018 v 11 hodin 5 minut a 7 vteřin musí být mít v poloce datum uvedeno 2018-03-01%2011:05:07
Odpovědí je webová stránka obsahující potvrzující informace o zpracování. První řádek je prázdný.
Například:
---OK-------------------
Novák Jan
--------------------------------------------------
OK firma=1 , udalost=130 , datum=2018-03-21 09:53:08 , sub=5 , mist=1 , citac=-108 , data=0 , zapis=2
První řádek je prázdný, dále následuje znak potvrzení přijetí poadavku serverem (--OK--), příjmení a jméno pracovníka a poslední řádek s příznaky zpracování. Zde je důleité hlavně úvodní OK v případě úspěného zápisu identifikace. Pokud je uvedeno ERR nebylo čipnutí zapsáno do docházky například z důvodu nenalezení pracovníka či duplicity identifikace (zpracuje se jen jedno čipnutí stejného zaměstnance ve stejné minutě). Ukázka chybové zprávy pro duplicitní čipnutí je níe:
---OK-------------------
Novák Jan
--------------------------------------------------
ERR udalost=131 , datum=2018-03-21 09:53:08 , sub=5 , mist=1 , citac=-60 , data=0 , zapis=0
Poloka udalost má následující hodnoty:
13 nebo 14 ... nerozpoznaný pracovník
130 ... čipnutí zapsáno jako příchod (při stavu OK)
131 ... čipnutí zapsáno jako odchod (při stavu OK)
128 ... čipnutí zapsáno jako změna práce (při stavu OK)
Pokud tedy ve volání nespecifikujete v poloce kod zda se jedná o příchod či odchod, poznáte podle návratového kódu v udalost jak systém identifikaci zapsal (automatické rozpoznání příchodu / odchodu).
Dalí poloky jsou datum a čas, sub je číslo pracovníka, mist kód stanovitě, citac a data pak interní údaje a poloka zapis potvrzuje správné zapsání podobně jako úvodní příznak (zapis=2 odpovídá OK a 0 odpovídá Err)
----------------------------------------------------------------------------------------------------------------------------------
Vyvolání přenosu dat z terminálů BM-Finger připojených do sítě LAN:
Tuto funkci pouijete, pokud chcete před načtením některých údajů či sestav zajistit, aby byla z terminálů staena případná čipnutí, která jetě nemusí být v databázi docházky.
Adresa WebAPI:
http://127.0.0.1/dochazka2001/ d3kfinger.php?firma=1&akce=1&netestuj=1
Odpovědí je webová stránka obsahující přenosový log soubor s informací o úspěnosti přenosu dat a níe druhá část s informacemi načtení staených čipnutí jednotlivý zaměstnancům.
Spoustim importni modul ...
Hotovo.
Zobrazení log souboru importu:
Zacatek prenosu - 8.3.2019 9:11:45
1 .. navazani komunikace OK – 192.168.1.201
1 .. nacteno 3 zaznamu - 192.168.1.201
1 .. mazani dat z terminalu - 192.168.1.201
Konec prenosu, celkem nacteno 3 zaznamu, Cas 9:11:46
Probíhá zpracování souboru d3kdata.bmf
1 ; 1 ; 1 ; 0 ; 2019- 2-28 17:34:22 ; 0 - OK (Prac. Benda Jaromír)
1 ; 1 ; 1 ; 0 ; 2019- 2-28 17:46:12 ; 0 - OK (Prac. Benda Jaromír)
1 ; 1 ; 1 ; 0 ; 2019- 3- 8 9: 9:32 ; 0 - OK (Prac. Benda Jaromír)
Zpracováno 3 záznamů
V části Zobrazeni log souboru importu lze u jednotlivých terminálů (úvodní číslo či koncová IP adresa) ověřit úspěnost spojení textem „navazani komunikace OK“. Pokud by se přenos nezdařil, například je terminál odpojený od LAN, zobrazí se toto chybové hláení:
1
.. Chyba navazani komunikace!! - 192.168.1.201
1 .. Overte
nastaveni site a IP adresu.
V části Probíhá zpracování souboru d3kdata.bmf lze u jednotlivých čipnutí zaměstnanců (osobní číslo, čili index, je druhé v pořadí – za prvním středníkem) ověřit úspěnost zapsání identifikace do databáze – OK (
Pokud se nepodaří pracovníka v DB dohledat, nezobrazí se jméno ale 0 – neznámý viz ukázka:
1 ; 911 ; 0 ; 0 ; 2019- 3- 8 9:24:21 ; 0 - OK (Prac. 0 - neznámý, )
----------------------------------------------------------------------------------------------------------------------------------
Generování vícedenních směn:
Jedná se o speciální funkci doplněnou ve verzi 7.90, která umoňuje v programu evidovat nepřetrité směny, které trvají více ne dva dny a pracovník při nich neodchází z pracovitě. Například lékař přijde v pátek na slubu do nemocnice a odchází a v pondělí, mezitím nečipuje. Docházka normálně podporuje pouze směny jednodenní (příchod i odchod jsou ve stejný den), nebo dvoudenní (příchod je jeden den a odchod následující den – např. noční). Delí prodlevu mezi příchodem a následným odchodem vyhodnotí jako zapomenuté čipnutí odchodu, tedy jako chybu čipování. Aby bylo moné spočítat delí ne dvoudenní směnu, musí se na dny uvnitř intervalu směny fiktivně vloit odchod a hned ve stejnou minutu příchod, co dělá právě tato funkce webapi. Je třeba jí spoutět např. z naplánovaných úloh přímo z hlavního PC docházky a to nejlépe po půlnoci (např. v čase 0:05). Postup sputění naleznete na druhé straně tohoto návodu a volaná adresa má tvar:
http://127.0.0.1/dochazka2001/webapi.php?firma=1&prikaz=18&jenodd=7&jenidza=5
&cas=23:00
Povinné parametry jsou pouze firma (udává číslo firmy) a prikaz (musí být 18).
Systém vyhledá vechny záznamy příchodů bez zadaného odchodu počínaje prvním dnem předchozího měsíce, které jsou u jednotlivých zaměstnanců čipnuté jako poslední (není u tohoto pracovníka jiný příchod či odchod s vyím datumem a časem) a ani není na pozdějí období (do akt. dne) nahraná celodenní absence. Pokud vyhovující záznam posledního příchodu najde a je starí ne včerejí, nahraje na následující dny (a do včerejka včetně) fiktivní čipnutí odchodu na čas 12:00 a hned ve stejnou minutu fiktivní čipnutí příchodu. Tím vlastně ukončí směnu z prvního dne počátku vícedenní směny a hned znovu začne novou směnu. Najednou se stejnému zaměstnanci vygeneruje maximálně 7 záznamů (směn). Jetě předtím ale program spustí na pozadí přenos dat ze vech zadaných terminálů BM-Finger a ověří, e se ze vech podařilo stáhnout data. Pokud některý nekomunikuje, vrátí funkce pouze hláení Chyba navazani komunikace a generování směn se neprovede, co vyloučí chybné generování pokud v některém terminálu čeká nezpracovaný příchod či odchod.
Nepovinný parametr jenodd udávající číslo oddělení umoní omezit generování směn jen pro pracovníky z konkrétního oddělení. Nepovinný parametr jenidza udávající osobní číslo pracovníka (v docházce označené jako index) moní omezit generování směn jen pro tohoto jediného zaměstnance. Pokud není zadaný ani jeden z omezujících parametrů, prochází se docházka vech zaměstnanců. Nepovinný parametr cas říká, na jaký čas se má fiktivní odchod a následný příchod vloit (rozsah 0:01 a 23:59 a pokud není parametr cas nastaven, nahraje se na 12:00).
Odpovědí je webová stránka obsahující seznam zaměstnanců a datumů, na které byla směna generovaná (vloený fiktivní odchod a příchod). Formát má obdobu csv souboru s hodnotami oddělenými středníkem a linuxovými konci řádků. Ukázka zobrazení odpovědi (formou zdrojového kódu v prohlíeči):
72;2019-03-6 12:00:00;
72;2019-03-7 12:00:00;
817;2019-03-4 12:00:00;
817;2019-03-5 12:00:00;
817;2019-03-6 12:00:00;
817;2019-03-7 12:00:00;
První číslo kadého řádku udává osobní číslo pracovníka (v docházce Index) a druhý pak datum a čas, na který byl fiktivní průběh směny generován (formát rok-měsíc-den hodina:minuta:00).
Tyto fiktivně generované odchody a příchody zajiující správné započítávání delí ne dvoudenní směny se v prohlíení docházky poznají tak, e na výpise je u nich uveden text Gen a v menu Zaměstnanci / Editace docházky / Historie oprav je uveden jako typ editace text Gen. vícedenní směny.
Upozornění: Automatické generování seancí touto funkcí WebAPI pro tyto vícedenní nepřetrité směny je moné pouít pouze v případě, kdy:
1) Nemáte v menu Firma / Editace údajů zapnutou poloku U terminálů automaticky nerozpoznávat odchod z noční – tato poloka nesmí být v nastavení firmy zapnutá, jinak by se správně nenuloil odchod čipnutý na terminálu v poslední den, kdy směna končí.
2) Je zajitěno, e vechny docházkové terminály BM-Finger komunikují s hlavním PC on-line po počítačové síti LAN. Pokud by některý terminál nebyl do LAN připojen a stahujete z něj data ručně přes USB flash disk, mohla by tato funkce vygenerovat směny i pro pracovníky, kteří vícedenní směnu nemají, ale jejich odchody jetě nebyly nahrané do PC – čekají v terminálu na ruční přenos dat flekou.
----------------------------------------------------------------------------------------------------------------------------------
Testovací prostředí pro externí dodavatele řeení (playground):
Na webové adrese http://www.dochazka.eu/host/test/ naleznete demo Docházky 3000, kde heslo do administrace je dochazka a toto demo vyuijí externí dodavatelé řeení pro testování, take nemusí úpravu svého programu ladit přímo s ostrou instalací docházky u zákazníka, ale ve si naprogramují a funkčnost ověří vůči táto volně dostupné demoverzi systému Docházka 3000. Poté při samotném nasazení u zákazníka stačí jen změnit úvodní adresu v parametru volaných funkcí webapi.
Zabezpečení přístupu k webapi:
Pokud vám nevyhovuje volný přístup k funkcím aplikačního rozhraní, je moné jej oetřit pomocí standardních metod pro kontrolu přístupu, které nabízí webový server Apache.
1. Nejprve je třeba v souboru „c:\apache\conf/httpd.conf“ vyhledat sekci začínající řádkem
<Directory "C:/apache/htdocs">
a v ní změnit poloku „AllowOverride None“ na „AllowOverride All“
Poté webový server restartujete buď přes sluby OS, nebo programem c:\apache\xampp-control.exe
2. Spustíte jednoduchý textový editor (nejlépe Poznámkový blok) a vytvoříte v něm nový soubor
c:\apache\htdocs\dochazka2001\.htaccess
který bude obsahovat řádky:
<Files webapi.php>
Satisfy any
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Files>
Tím se povolí přístup k volání souboru webapi.php jen přímo ze serveru.
Přidáním IP adresy lze povolit i jinou adresu či rozsah ip adres. Např. pro počítače vnitřní LAN: Allow from 192.168
Přidáním celé nové sekce Files s jiným jménem souboru lze řídit přístup i k jiným částem docházky.
Pokud
po této úpravě nebude docházka fungovat a prohlíeč bude zobrazovat
chybové hláení, např.
500 – Internal Server Error,
tak buď dolo k překlepu, nebo je třeba zvolit jiný způsob
zápisu dle verze webového severu. Viz podrobnějí chybové hláení v
chybovém log souboru webového serveru. Ve lze rychle vrátit do
původního funkčního stavu výmazem souboru
c:\apache\htdocs\dochazka2001\.htaccess
ifrovaný protokol HTTPS:
Pokud jste podle příručky sifrovane_spojeni_https.pdf nastavili podporu ifrovaného protokolu https a zároveň na firewallu zakázali port 80, místo něj povolili port 443 a funkce rozhraní WebAPI voláte z jíného PC v síti ne v rámci samotného docházkového serveru, je třeba u jednotlivých funkcí změnit adresu volacího příkazu tak, e místo neifrovaného protokolu http bude pouívat ifrovaný https. Například pro funkci „Čtení aktuálního datumu a času hlavního PC docházky“ bude adresa po této úpravě vypadat takto:
https://127.0.0.1/dochazka2001/casserveru.php
Rozdíl oproti původní je právě v tom písmenku „s“ v úvodu příkazu. Důleité je, e aplikace, ze které funkce WebAPI docházky voláte, musí umět ifrované spojení navázat. Pokud to neumí, nebude přenos fungovat a bude nutné ve firewallu na hlavním PC docházky port 80 opět povolit a adresu příkazu vrátit zpět tak, e bude pouívat neifrovaný protokol http.