Založení mzdové složky přes API

Jak přes API založit údaje ohledně docházky, jako jsou odpracované hodiny, nepřítomnost a podobně?

Petr Pech avatar
Autor: Petr Pech
Aktualizováno před více než týdnem

Předtím, než se pustíme přímo do založení mzdové složky s konkrétními údaji ohledně odpracované doby apod., je nejprve nutno založit osobu, příp. mzdové složky stálé.

Na úplný úvod je vždy zapotřebí, aby existovala osoba (resp. zaměstnanec), ke kterému budou dané mzdové složky náležet. V příkladech XML souborů můžete dohledat ukázkové XML pro založení osoby. Je samozřejmě možné založit osobu i přímo v aplikaci.

K dané osobě je zapotřebí přiřadit tzv. stále mzdové složky. Více informací naleznete opět v dokumentaci k personalistice (tedy k osobě - zaměstnanci).

Pakliže máme nastaveno výše zmíněné, můžeme přejít k samotnému procesu, tedy přenosu docházky do ABRA Flexi.

Nejprve je nutné z Flexi získat ID mzdových složek, které budeme aktualizovat. Je totiž zapotřebí aktualizovat konkrétní mzdové složky v daných měsících, které jsou připravené na základě založení stálé mzdové složky.

ID příslušné mzdové složky získáme metodou GET na URL adresu typu:

/mzdova-slozka/(cisMzdSloz = 'code:HODINOVÁ MZDA' and rok = 2022 and mesic = 1).xml?detail=custom:id,osoba(osbCis,jmeno,prijmeni,titul),hodiny,zmenaCasu,zmenaCastMzd,castkaHod,castMzd&includes=/mzdova-slozka/osoba&limit=0

Filtrací dle příkladu výše, tedy na rok a měsíc, získáme všechny mzdové složky, které odpovídají hodinové mzdě v daném období. Lze samozřejmě využít libovolnou úroveň detailu.

Z číselníku mzdových složek lze vybrat samozřejmě i jiná složka, než hodinová mzda.

Může se jednat o nepřítomnost, URL adresa by poté pro získání vypadala např. takto:

/nepritomnost/(cisMzdSloz = 'code:NEMOC' and (platiOd >= '2022-01-01' and platiOd <= '2022-01-31' or platiDo >= '2022-01-01' and platiDo <= '2022-01-31')).xml?detail=full

Získané XML mzdové složky dle prvního příkladu tedy může vypadat například takto:

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<mzdova-slozka>
<id>9258</id>
<osoba>
<osoba-hlavicka>
<id>4</id>
<osbCis>432423423</osbCis>
<jmeno>Karel</jmeno>
<prijmeni>Novák</prijmeni>
<titul>Ing.</titul>
</osoba-hlavicka>
</osoba>
<hodiny>0.0</hodiny>
<zmenaCasu>false</zmenaCasu>
<zmenaCastMzd>false</zmenaCastMzd>
<castkaHod>0.0</castkaHod>
<castMzd>0.0</castMzd>
</mzdova-slozka>
</winstrom>

Do něj je nyní zapotřebí doplnit příslušnou hodnotu, na našem příkladu budeme doplňovat odpracované hodiny. Analogický postup lze uplatnit i u doplnění dnů - samozřejmě v závislosti na logice dané mzdové složky z číselníku mzdových složek.

Část XML souboru ohledně osoby můžeme při importu zpět v tomto případě vynechat, změnu chceme provést pouze u hodin.

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<mzdova-slozka>
<id>9258</id>
<hodiny>100.0</hodiny>
<zmenaCasu>false</zmenaCasu>
<zmenaCastMzd>false</zmenaCastMzd>
<castkaHod>0.0</castkaHod>
<castMzd>0.0</castMzd>
</mzdova-slozka>
</winstrom>

Dané XML zašlete metodou POST/PUT na endpoint /mzdova-slozka. Pokud je import úspěšný, vrátí API následující informaci a mzdová složka bude aktualizována.

<?xml version="1.0" encoding="utf-8"?>
<winstrom version="1.0">
<success>true</success>
<stats>
<created>0</created>
<updated>1</updated>
<deleted>0</deleted>
<skipped>0</skipped>
<failed>0</failed>
</stats>
<results>
<result>
<id>9258</id>
<request-id>9258</request-id>
<ref>/c/testovaci_2/mzdova-slozka/9258.xml</ref>
</result>
</results>
</winstrom>
Dostali jste odpověď na svou otázku?