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 možné 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 každého příkazu. Je však možné 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). Takže 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ětšinou 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 uložit případný výstup do textového souboru pro další zpracování. Což lze navíc automatizovat třeba pomocí skriptů spouště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 pracovišti využití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 , protože se nevejde na šířku stránky A4. Ale při zápisu v počítači jej vložte 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 uložen výstup příkazu. V tomto případě tedy na disk C:\ do složky 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ůležité, aby byla správně zadaná jak webová adresa pro příkaz WebApi, tak také aby měl uživatel právo zápisu do výstupního souboru. Je tedy vhodné výstupní soubory vytvářet ve složce, do které má uživatel, pod kterým příkaz PowerShellu spouštíte, právo zápisu. Například většinou neprojde zápis do souboru uložené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ů. Takže pokud si je prohlédnete například v NotePadu (program Poznámkový blok), nebude výstup pro člověka snadno čitelný. Ve WordPadu bude vše v pořádku, protože ten provádí konverzi. Abyste výstupní soubor obdrželi 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é spouště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 spouštět powershell s parametrem názvu vašeho 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 položek 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 položek 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 položek 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


Položka 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 položek 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;


Položka 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


Položka data obsahuje doplňující informace, jako je kód přerušení č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


Položka 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.


Položka 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



Položky 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.


Položka 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řerušení do docházky konkrétního zaměstnance. Čas se použije ten, který je aktuálně na serveru docházky – explicitní udávání datumu a času není povoleno. Seance se zapíše na okamžik, kdy je operace vyvolaná. Toto omezení je záměrně a znemožňuje tak zneužívání funkcí WebAPI k falšová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



Položky os_cis a indexza udávají číslo zaměstnance, kterému zapisujete seanci. Obě musí udávat stejné číslo.


Položka typ nastavená na 1 zapisuje příchod. Při nastavení na hodnotu 2 se zapisuje odchod.


Položka kod udává kód přerušení. Hodnota nula je klasický příchod/odchod. Další hodnoty 1 až 20 pak udávají konkrétní kód přerušení (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í položky typpr definovat i vkládaný typ práce. Např pro vložený 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 ještě nastavíte položku typ na hodnotu 3. Takže 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


Položky os_cis a indexza udávají číslo zaměstnance, kterému zapisujete absenci. Obě musí udávat stejné číslo.


Položka datumod udává den, na kdy se celodenní absence vkládá. Datum je ve formátu DD.MM.RRRR


Položka kod udává číslo absence. Hodnota nula maže 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


Položky os_cis a indexza udávají číslo zaměstnance, jehož výpis docházky se má načítat. Obě musí udávat stejné číslo.

Položka datumod udává počáteční datum výpisu. Datum je ve formátu DD.MM.RRRR

Položka 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, použijte 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 každý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


Položka 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.


Položka indexza udává číslo zaměstnance, jehož kategorie se bude zjišovat.


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


Položka 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.


Položka 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.


Položka 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 všech 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 položek 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


Položka 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.


Položka 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.


Položka indexza je nepovinná a udává číslo zaměstnance, jehož absence budou načteny. Pokud není uvedena, načtou se záznamy všech 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 položek 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


Položka 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.


Položka 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ů.


Položka os_cis je nepovinná a udává číslo zaměstnance, jehož odpracovaná doba bude načtena. Pokud není uvedena, načtou se záznamy všech pracovníků.


Položka jencista je nepovinná a pokud je nenulová, udává zda má být vyhodnocena jen doba přítomnosti na pracovišti. 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 položek 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 ještě 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 spuště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

Položka datumod udává den, od kterého se vyhodnocuje. Datum je ve formátu DD.MM.RRRR.


Položka datumdo udává den konce intervalu, do kterého chcete záznamy načítat – formát DD.MM.RRRR.


Položka os_cis je nepovinná a udává číslo zaměstnance, jehož odpracovaná doba bude načtena. Pokud není uvedena, načtou se záznamy všech pracovníků.


Položky nocasvod, nocasvdo a nocasvmin udávají interval pro vyhodnocení noční práce a její minimální délku.


Položky 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, množství 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 možné 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é složky, pracovník, období, hodiny hh:mm:ss, hodiny jako desetinné číslo, dny, částka. Oddělovačem položek 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 složek 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 složce 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 položek 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 každý zaměstnanec má jeden řádek a na něm jsou veškeré údaje. Poté ještě 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 položek 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ý Uživatel;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 složce 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 položek 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 spouští výpočet. Druhé volání spouští 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 spuště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

Položka datumod udává den, od kterého se vyhodnocuje. Datum je ve formátu DD.MM.RRRR.

Položka datumdo udává den konce intervalu, do kterého chcete záznamy načítat – formát DD.MM.RRRR.

Položka os_cis je nepovinná a udává číslo zaměstnance, jehož odpracovaná doba bude načtena. Pokud není uvedena, načtou se záznamy všech pracovníků.

Položky nocasvod, nocasvdo a nocasvmin udávají interval pro vyhodnocení noční práce a její minimální délku.

Položky 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, množství 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 možné vyvolat druhé volání, kterým se spustí konverze do XML:


Adresa WebAPI pro spuště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 možné 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 složce 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 položek 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;

Položka Index udává osobní číslo zaměstnance a položka Stav pak zda je v okamžiku 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

Položka indexza udává osobní číslo zaměstnance a položka 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 vždy 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 okamžiku, 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 dnešní den.

Naopak pro zjištění dat kvůli sumárním sestavám je vhodnější funkce Čtení vypočtené odpracované doby zaměstnanců, která umožní 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. Takže 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

Položka indexza je nepovinná a udává osobní číslo, pod kterým bude zaměstnanec do systému vložen. Pokud jí neuvedete, doplní program vhodné číslo sám. V případě, že zadáte již existující číslo, bude vrácena chyba.

Položka 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.

Položky 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 vložení nového pracovníka vypíše hlášení OK a na druhém řádku osobní číslo, pod kterým byl vložen. Například:


OK

indexza=42


Kromě zde popsané možnosti importovat zaměstnance do docházky přes rozhraní WebAPI je možné 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, takže v případě omylu je možné jej obnovit. Navíc lze funkci volat jen z hlavního PC docházky (zdroj localhost), takže jí z bezpečnostních důvodů není možné 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

Položka 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 vložení 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


Položka indexza je povinná a udává osobní číslo zaměstnance

Položka 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, použije 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 pracovišti 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ž dnešní), tak není možné správnou kategorii automaticky detekovat (není podle čeho jí určit, protože na budoucí období ještě 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 spuštěnou externě mimo menu docházkového systému. Například při automatickém zálohování spuště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 umožní 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řerušení do docházky konkrétního zaměstnance. Na rozdíl od první varianty se zde udává i datum a čas čipnutí, takže lze zapisovat dávkově i starší čipnutí. Je pouze nutné zajistit, aby byla dodržena časová posloupnost. Pokud by byla nejprve zapsaná novější čipnutí a až poté starší (nejprve odchod pak příchod), došlo by k chybě detekce typu operace.

Vzhledem k tomu, že zde hrozí možnost zneužití webapi k falšová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 položku „Podpora docházkových terminálů...“ na volbu „Rozvod“ a nastavení uložit.

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



Položka indexza udává číslo zaměstnance, kterému zapisujete seanci (v programu označeno Index).


Položka kod udává kód přerušení 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řerušení (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řerušení 1 až 20, takže pak je určen jak typ příchod/odchod, tak kód přerušení. Například hodnota 67 udává odchod na služební cestu (64+3)

Hodnota 255 udává změnu práce v průběhu dne (viz též položka typpr)


Položka 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.


Položka misto udává číslo stanoviště, 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.


Položka 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 položce 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í požadavku serverem (--OK--), příjmení a jméno pracovníka a poslední řádek s příznaky zpracování. Zde je důležité 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


Položka 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 položce 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ší položky jsou datum a čas, sub je číslo pracovníka, mist kód stanoviště, citac a data pak interní údaje a položka 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 použijete, pokud chcete před načtením některých údajů či sestav zajistit, aby byla z terminálů stažena případná čipnutí, která ještě 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í stažený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řetržité směny, které trvají více než dva dny a pracovník při nich neodchází z pracoviště. Například lékař přijde v pátek na službu 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 možné spočítat delší než dvoudenní směnu, musí se na dny uvnitř intervalu směny fiktivně vložit odchod a hned ve stejnou minutu příchod, což dělá právě tato funkce webapi. Je třeba jí spouště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 spuště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á všechny 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čerejška 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). Ještě předtím ale program spustí na pozadí přenos dat ze všech zadaných terminálů BM-Finger a ověří, že se ze všech 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í umožní 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) možní 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 všech zaměstnanců. Nepovinný parametr cas říká, na jaký čas se má fiktivní odchod a následný příchod vložit (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á (vložený 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 každé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 zajišují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řetržité směny je možné použít pouze v případě, kdy:

1) Nemáte v menu Firma / Editace údajů zapnutou položku U terminálů automaticky nerozpoznávat odchod z noční – tato položka nesmí být v nastavení firmy zapnutá, jinak by se správně nenuložil odchod čipnutý na terminálu v poslední den, kdy směna končí.

2) Je zajištěno, že všechny 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 ještě nebyly nahrané do PC – čekají v terminálu na ruční přenos dat fleškou.


----------------------------------------------------------------------------------------------------------------------------------




Testovací prostředí pro externí dodavatele řešení (playground):


Na webové adrese http://www.dochazka.eu/host/test/ naleznete demo Docházky 3000, kde heslo do administrace je dochazka a toto demo využijí externí dodavatelé řešení pro testování, takže nemusí úpravu svého programu ladit přímo s ostrou instalací docházky u zákazníka, ale vše 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 možné jej ošetř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 položku „AllowOverride None“ na „AllowOverride All“

Poté webový server restartujete buď přes služby 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ď došlo 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. Vše 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 nešifrované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ůležité 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 nešifrovaný protokol http.