Preskoči na glavno vsebino

Práca pre strediská - REST API

Ako využiť API Flexi na evidenciu práce pre strediská zamestnancov?

Avtor: Petr Pech

Rovnako ako v aplikácii je možné u zamestnancov rozdeliť prácu pre strediská. V tejto dokumentácii si opíšeme, ako toto API použiť.

Spôsob volania

Je možné využiť HTTP metódu: POST, GET, PUT.

Endpoint pre pravidelnú prácu za strediská je dostupný na adrese: /c/{firma}/prace.{pripona}, kde {firma} je databázový identifikátor firmy.

Endpoint pre prácu za strediská v aktuálnom mesiaci je dostupný na adrese: /c/{firma}/prace-mesic.{pripona}, kde {firma} je databázový identifikátor firmy.

Kompletný popis evidencií nájdete tu:

Podporované výstupné formáty pri získavaní dát metódou GETXML, JSON a ďalšie.

Parametre

Pre stiahnutie dát z evidencií je možné využiť štandardné API filtrovanie a úroveň detailu.

Import dát je bez parametrov. Pre import dát je možné využiť externé identifikátory.

Ukážka importu

V ukážke si ukážeme prácu pre stredisko C, keď zamestnanec v roku 2023 pracuje 30 % zmien na konkrétnej zákazke.

Najprv je potrebné identifikovať pracovný pomer, ku ktorému sa práca pre stredisko viaže pomocou ID (či externého identifikátora). Zoznam pracovných pomerov získame pomocou GET pre danú osobu:

https://demo.flexibee.eu:5434/c/demo/pracovni-pomer/(osoba="code:U123021").xml?detail=custom:id,kod

Získané ID potom môžeme použiť pri ukladaní práce pre stredisko:

<winstrom version="1.0">
<prace>
<!-- Externí identifikátor -->
<id>ext:MZDSW:123</id>
<!-- Datum začátku práce pro středisko -->
<datumOd>2023-01-01</datumOd>
<!-- Datum konce práce pro středisko -->
<datumDo>2023-12-31</datumDo>
<!-- % část směny alokovaná na středisko -->
<procento>30.0</procento>
<!-- Identifikace dané osoby z personalistky - identifikace osoby není nutná, automaticky se doplní ze zadaného pracovního poměru -->
<osoba>code:U123021</osoba>
<!-- Identifikace pracovního poměru pomocí ID -->
<pracPom>1</pracPom>
<!-- Identifikace střediska -->
<stredisko>code:C</stredisko>
<!-- Identifikace zakázky -->
<zakazka>code:ZAKAZKA0821</zakazka>
<!-- Identifikace činnosti -->
<cinnost>code:A123</cinnost>
</prace>
</winstrom>

Analogicky pre .json

{
"winstrom": {
"prace": {
"id": "ext:MZDSW:123",
"datumOd": "2023-12-01",
"datumDo": "2023-12-12",
"procento": "30.0",
"osoba": "code:U123021",
"pracPom": "1",
"stredisko": "code:C",
"zakazka": "code:ZAKAZKA0821",
"cinnost": "code:A123"
}
}
}

Obdobne sa importuje práca pre stredisko v aktuálnom mesiaci. V ukážke si ukážeme prácu pre stredisko C, keď zamestnanec pracoval v decembri 2023 22 hodín na konkrétnej zákazke.

<winstrom>
<prace-mesic>
<id>ext:MZDSW:123</id>
<rok>2023</rok>
<mesic>12</mesic>
<hodin>22.0</hodin>
<osoba>code:U123021</osoba>
<pracPom>1</pracPom>
<stredisko>code:C</stredisko>
<zakazka>code:ZAKAZKA0821</zakazka>
<cinnost/>
</prace-mesic>
</winstrom>

Analogicky pre .json

{
"winstrom": {
"prace-mesic": {
"id": "ext:MZDSW:123",
"rok": "2023",
"mesic": "12",
"hodin": "22.0",
"osoba": "code:U123021",
"pracPom": "1",
"stredisko": "code:C",
"zakazka": "code:ZAKAZKA0821",
"cinnost": ""
}
}
}

Ukážka exportu

Prípadne je možné dáta získať metódou GET:


Výsledok volania:

<winstrom>
<prace-mesic>
<id>ext:MZDSW:123</id>
<id>8</id>
<lastUpdate>2023-12-29T09:53:24.433+01:00</lastUpdate>
<rok>2023</rok>
<mesic>12</mesic>
<hodin>22.0</hodin>
<poznam/>
<osoba showAs="U123021: Pavel Procházka">5</osoba>
<pracPom showAs="1-STANDARD: Standardní pracovní poměr">code:1-STANDARD</pracPom>
<stredisko showAs="C: Centrála">code:C</stredisko>
<zakazka showAs="ZAKAZKA0821: Přeprava 08/23">code:ZAKAZKA0821</zakazka>
<cinnost/>
</prace-mesic>
</winstrom>

Príklady neplatných volaní

V prípade úspešného vykonania služby je vrátený HTTP status 200 spolu s telom v požadovanom formáte XML alebo PDF.

V prípade neplatných volaní je obsahom popis chyby.

1. Neplatný pracovný pomer

Výsledkom chyby je odpoveď HTTP Status 400 Bad request a popis chyby:

<error path="prace[temporary-id=null].pracPom" code="PROP" for="pracPom" value="code:1-STANDARAD">Zadaný text 'code:1-STANDARAD' musí identifikovat objekt [PraceStred -1]</error>

2. Prekročený fond pracovného času

Výsledkom chyby je odpoveď HTTP Status 400 Bad request a popis chyby:

 <error path="prace[temporary-id=null].procento" code="INVALID" for="procento">V některém období je rozděleno víc než sto procent fondu pracovní doby. [PraceStred -1]</error>

3. Chýbajúce povinné pole

Výsledkom chyby je odpoveď HTTP Status 400 Bad request a popis chyby:

 <error>Pole 'Měsíc' musí být vyplněno. [ext:MZDSW:123]</error>

3. Nekonzistentné určenie pracovného pomeru a osoby

Výsledkom chyby je odpoveď HTTP Status 400 Bad request a popis chyby:

<error>Definovaná osoba (U123021: Pavel Procházka) se liší od osoby pracovního poměru (KN0329231: Nováková Jana). [ext:MZDSW:AC]</error>

FAQ

Kde je dohľadateľné rozdelenie podľa prác pre strediská daného zamestnanca?

V jednotlivých záväzkoch či interných dokladoch vygenerovaných z miezd (sociálne poistenie, ..) budú položky dokladu rozdelené podľa príslušných stredísk.


Potrebujete poradiť?

V prípade otázok k aplikácii nás kontaktujte na podporaflexi@abra.eu prípadne prostredníctvom okna chatu v pravom dolnom rohu.

Ste s tem dobili odgovor na svoje vprašanje?