Práce pro střediska - REST API

Jak využít API Flexi pro evidenci práce pro střediska zaměstnanců?

Ota Rádl avatar
Autor: Ota Rádl
Aktualizováno před více než týdnem

Stejně jako v aplikaci je možné u zaměstnanců rozdělit práci pro střediska. V této dokumentaci si popíšeme jak toto API použít.

Způsob volání

Lze využít HTTP metodu: POST, GET, PUT.

Endpoint pro pravidelnou práci za střediska je dostupný na adrese: /c/{firma}/prace.{pripona}, kde {firma} je databázový identifikátor firmy.

Endpoint pro práci za střediska v aktuálním měsíci je dostupný na adrese: /c/{firma}/prace-mesic.{pripona}, kde {firma} je databázový identifikátor firmy.

Kompletní popis evidencí naleznete zde:

Podporované výstupní formáty jsou při získávání dat metodou GET jsou XML, JSON a další.

Parametry

Pro stažení dat z evidencí je možný využít standardní API filtrování a úroveň detailu.

Import dat je bez parametrů. Pro import dat je možné využít externí identifikátory.

Ukázka importu

V ukázce si ukážeme práci pro středisko C, kdy zaměstnanec v roce 2023 pracuje 30 % směn na konkrétní zakázce.

Nejprve je nutné identifikovat pracovní poměr, ke kterému se práce pro středisko váže pomocí ID (či externího identifikátoru). Seznam pracovních poměr získáme pomocí GET pro danou osobu:

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

Získané ID poté můžeme použít při ukládání práce pro středisko:

POST https://demo.flexibee.eu:5434/c/demo/prace.xml

<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 pro .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"
}
}
}

Obdobně se importuje práce pro středisko v aktuální měsíci. V ukázce si ukážeme práci pro středisko C, kdy zaměstnanec pracoval v prosinci 2023 22 hodin na konkrétní zakázce.

POST https://demo.flexibee.eu:5434/c/demo/prace-mesic.xml

<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 pro .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ázka exportu

Případně lze data získat metodou GET:

GET https://demo.flexibee.eu:5434/c/demo/prace/(<filtr>).xml?detail=custom:osoba,pracPom,...


Výsledek volání:

<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>

Příklady nevalidních volání

GET https://demo.flexibee.eu:5434/c/demo/kontrolni-hlaseni.xml?obdobi=2023Q2

V případě úspěšného vykonání služby je vracen HTTP status 200 společně s tělem v požadovaném formátu XML či PDF.

V případě nevalidních volání je obsahem popis chyby.

1. Nevalidní pracovní poměr

POST https://demo.flexibee.eu:5434/c/demo/prace.xml

Výsledek je chyby je odpověď 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. Překročen fond pracovní doby

POST https://demo.flexibee.eu:5434/c/demo/prace.xml

Výsledek je chyby je odpověď 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. Chybějící povinné pole

POST https://demo.flexibee.eu:5434/c/demo/prace-mesic.xml

Výsledek je chyby je odpověď 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čení pracovního poměru a osoby

POST https://demo.flexibee.eu:5434/c/demo/prace-mesic.xml

Výsledek je chyby je odpověď 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 dohledatelné rozdělení dle prací pro střediska daného zaměstnance?

V jednotlivých závazcích či interních dokladech vygenerovaných z mezd (sociální pojištění, ..) budou položky dokladu rozděleny podle příslušných středisek.


Potřebujete poradit?

V případě dotazů k aplikaci nás kontaktujte na podporaflexi@abra.eu případně prostřednictvím chat okna v pravém dolním rohu.

Dostali jste odpověď na svou otázku?