Stejně jako v aplikaci je možné u zaměstnanců rozdělit práci pro střediska i přes REST API. V tomto článku najdete adresy obou evidencí, jejich položky a ukázky importu i exportu.
Způsob volání
K dispozici jsou dvě evidence, obě přístupné metodami GET, POST a PUT:
Adresa | Účel |
| Pravidelná práce pro střediska — podíl směny v zadaném období |
| Práce pro střediska v konkrétním měsíci — počet hodin |
Kde {firma} je databázový identifikátor firmy. Kompletní popis obou evidencí naleznete na adresách /prace a /prace-mesic. Při získávání dat metodou GET jsou k dispozici podporované výstupní formáty XML, JSON a další.
Položky evidencí
Společné položky
osoba— identifikace osoby z personalistiky. Uvádět ji není nutné, automaticky se doplní ze zadaného pracovního poměru.pracPom— identifikace pracovního poměrustredisko— identifikace střediskazakazka— identifikace zakázkycinnost— identifikace činnostipoznam— poznámka
Pouze v evidenci prace
datumOdadatumDo— období, po které práce pro středisko platíprocento— část směny alokovaná na středisko, desetinné číslo v rozsahu 0 až 100
Pouze v evidenci prace-mesic
rokamesic— období, za které se hodiny vykazujíhodin— počet hodin odpracovaných pro středisko, desetinné číslo
Parametry
Pro stažení dat z evidencí lze využít standardní filtrování a úroveň detailu. Import dat je bez parametrů; při něm je možné využít externí identifikátory.
💡 Import si nejprve vyzkoušejte s parametrem ?dry-run=true. Požadavek se zvaliduje, ale do databáze se nic nezapíše.
Ukázka importu
V ukázce zaměstnanec v roce 2024 pracuje 30 % směn na konkrétní zakázce pro středisko C.
Nejprve je nutné identifikovat pracovní poměr, ke kterému se práce pro středisko váže — pomocí ID nebo externího identifikátoru. Seznam pracovních poměrů dané osoby získáte metodou GET:
GET https://demo.flexibee.eu/c/demo/pracovni-pomer/(osoba="code:U123021").xml?detail=custom:id,kod
Získané ID poté použijete při ukládání práce pro středisko:
POST https://demo.flexibee.eu/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>2024-01-01</datumOd>
<!-- Datum konce práce pro středisko -->
<datumDo>2024-12-31</datumDo>
<!-- % část směny alokovaná na středisko -->
<procento>30.0</procento>
<!-- Identifikace osoby z personalistiky, nepovinná -->
<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 v JSON:
{
"winstrom": {
"prace": {
"id": "ext:MZDSW:123",
"datumOd": "2024-01-01",
"datumDo": "2024-12-31",
"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 konkrétním měsíci. V ukázce zaměstnanec odpracoval v prosinci 2024 pro středisko C na konkrétní zakázce 22 hodin.
POST https://demo.flexibee.eu/c/demo/prace-mesic.xml
<winstrom version="1.0">
<prace-mesic>
<id>ext:MZDSW:123</id>
<rok>2024</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 v JSON:
{
"winstrom": {
"prace-mesic": {
"id": "ext:MZDSW:123",
"rok": "2024",
"mesic": "12",
"hodin": "22.0",
"osoba": "code:U123021",
"pracPom": "1",
"stredisko": "code:C",
"zakazka": "code:ZAKAZKA0821",
"cinnost": ""
}
}
}
Ukázka exportu
Data lze získat metodou GET s libovolným filtrem a úrovní detailu:
GET https://demo.flexibee.eu/c/demo/prace-mesic/(rok eq 2024).xml?detail=full
Výsledek volání:
<winstrom version="1.0">
<prace-mesic>
<id>ext:MZDSW:123</id>
<id>8</id>
<lastUpdate>2024-12-29T09:53:24.433+01:00</lastUpdate>
<rok>2024</rok>
<mesic>12</mesic>
<hodin>22.0</hodin>
<poznam/>
<osoba showAs="U123021: Jméno Zaměstnance">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/24">code:ZAKAZKA0821</zakazka>
<cinnost/>
</prace-mesic>
</winstrom>
Příklady nevalidních volání
Při úspěšném importu je vracen HTTP status 200 nebo 201 a standardní odpověď s výsledky. Při nevalidním volání je vracen status 400 a obsahem odpovědi je popis chyby.
1. Nevalidní pracovní poměr
<error for="pracPom" path="prace[temporary-id=null].pracPom" value="code:1-STANDARAD" code="PROP" messageCode="notObjectIdentifier">Zadaný text 'code:1-STANDARAD' musí identifikovat objekt [PraceStred -1]</error>
2. Překročen fond pracovní doby
<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
<error>Pole 'Měsíc' musí být vyplněno. [ext:MZDSW:123]</error>
4. Nekonzistentní určení pracovního poměru a osoby
<error>Definovaná osoba (U123021: Jméno Zaměstnance) se liší od osoby pracovního poměru (KN0329231: Jiné Jméno). [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í a další) budou položky dokladu rozděleny podle příslušných středisek.
Jak se střediska používají v aplikaci?
Vysvětlení najdete v článcích Střediska a jejich použití a Mzdy - práce pro střediska.
