Prenos dochádzky z primaERP

Ako preniesť dochádzku z primaERP do Flexi

Lenka Haringerová avatar
Written by Lenka Haringerová
Updated over a week ago

Vykazujete v ABRA Flexi veľký počet zamestnancov s nepravidelnými pracovnými podmienkami a hodinovou mzdou? Chcete sa vyhnúť ručnému zadávaniu odpracovaných hodín pri výpočte miezd? Nechajte svojich zamestnancov zaznamenávať pracovný čas do systému evidencie pracovného času a automaticky nahrávať údaje do systému ABRA Flexi. Na evidenciu pracovného času môžete napríklad použiť praktickú cloudovú aplikáciu ABRA primaERP.

Prínosy evidencie dochádzky v systéme ABRA primaERP budú prezentované na stránke modulu Dochádzka. Ako preniesť výsledné čísla do systému ABRA Flexi pomocou rozhrania REST API, si ukážeme na nasledujúcich riadkoch.

Získanie potrebných zložiek miezd zo systému ABRA Flexi

Najprv je potrebné načítať zložky miezd, ktoré budete meniť, zo systému Flexi. Je to preto, lebo na ich spätné vypísanie potrebujete ID, ktoré im priradila služba Flexi. Celú úlohu možno zjednodušiť pridaním potrebného čísla k údajom z Flexi a odoslaním údajov späť.

Z výplatnej pásky v systéme Flexi načítajte potrebné mzdové súbory. Pomocou jednoduchého filtrovania získate údaje, ktoré potrebujete. Budete musieť načítať zložky pre konkrétny rok a mesiac a tiež iba zložku HODINOVÁ MZDA. Takže dotaz na rozhranie Flexi API by vyzeral napríklad takto:

GET /mzda-složka/(cisMzdFolder = 'kód:HODINOVÁ MZDA' a rok = 2017 a mesiac = 1).json?detail=custom:id,osoba(osbCis,meno,priezvisko,titul),hodiny,changeTime,changeCastWage,castHod,castMzd&includes=/mzdova-složka/osoba&limit=0

Tento dotaz vráti všetky zložky typu HODINOVÁ MZDA za január 2017. Výsledok bude obsahovať všetky polia, ktoré potrebujete na zmenu týchto priečinkov bez sankcií.

Výsledok vrátený zo systému Flexi bude vyzerať takto:

null

Čítanie údajov z primaEPR

Ak máte všetky údaje, ktoré potrebujete, zo systému Flexi, môžete ich načítať z dochádzkového systému. Ukážeme si načítanie údajov z programu primaERP, ktorý má rozhranie API, ale nie je to úplne nevyhnutné. V tomto kroku môžete napríklad načítať aj tabuľku Excel s dochádzkou. Dôležité je len to, aby ste mohli identifikovať zamestnanca a vedieť, koľko hodín odpracoval.

Teda v rozhraní primaERP API musíte vykonať požiadavku na adresu URL

GET https://kbel.api.primaerp.com/v1/time/timerecords/summary.json?summary=user/position;sum(duration)&$filter=start ge datetime'2017-05-01T00:00:00.000Z' and stop en datetime'2017-06-01T00:00:00.000Z'&token=9c11cea8-c3b3-4232-bfb-f8acefce2f5a

Dáta získate napríklad v tomto formáte:

[ {"key": "A02200", "summaries":[ {"name": "sum(duration)", "value": "232777000" } ]} ]

Dotaz používa sumarizáciu na vlastnosť trvania (trvanie úlohy). Pozícia zamestnanca sa používa ako identifikátor, ktorý sa používa na osobné číslo, ktoré sa potom môže použiť na spárovanie údajov z primaERP s údajmi z Flexi. Ďalej v dotaze použijete filtrovanie podľa časového obdobia. Tým sa odfiltrujú len úlohy, ktoré sa začali a skončili v sledovanom období.

Údaje vrátené systémom primaERP teda obsahujú osobné číslo zo systému Flexi ako kľúč a súčet trvania každej úlohy. Tento súčet predstavuje celkový čas v milisekundách. Hodiny, ktoré potrebujeme zapísať do zložky HODINOVÁ MZDA, teda získame podľa vzorca

.

hodiny = trvanie / 1000 / 60

V našom príklade je to 64,66 hodiny. Samozrejme, že môžete a pravdepodobne aj budete zaokrúhľovať. To však závisí od každého používateľa. Flexi vám umožní zadať do priečinka číslo na dve desatinné miesta.

Spracovanie údajov a ich zápis späť do systému ABRA Flexi

Teraz musíte spracovať načítané údaje a zapísať ich späť do systému Flexi. Prejdeme teda jednotlivé zložky miezd načítané z Flexi a postupne do nich pridáme údaje z primaERP.

Každý súbor výplatnej pásky obsahuje jedinečný identifikátor, ktorým je osobné číslo zamestnanca. Toto číslo použijete na vyhľadanie správneho súčtu v údajoch primaERP. Keď ho nájdete, prepočítajte milisekundy na hodiny a zadajte ho do poľa hodín. Do poľa castMzd zadáte súčin odpracovaných hodín a hodnoty poľa castHours, ktoré obsahuje hodinovú mzdu zamestnanca. Nakoniec musíte do polí changeClock a changeCastMzd zadať true namiesto false, aby systém Flexi nemenil zadané hodnoty na základe časového fondu.

Dáta sú pripravené a môžete ich odoslať späť do systému Flexi. Čitateľom našich príspevkov je to už celkom známe. Pre istotu uvádzame, že adresa URL, na ktorú budeme zapisovať údaje, je

PUT /payroll-file.json

Na záver niekoľko slov

Ak má vaša spoločnosť aspoň niekoľko hodinových zamestnancov, odporúčame vytvoriť nejaký podobný nástroj. Nezáleží na tom, či sa údaje získavajú zo systému primaERP alebo z iného systému na evidenciu pracovného času. Samozrejme, je možné použiť aj jednoduchú tabuľku Excel. Pokiaľ obsahuje stĺpce pre osobné číslo a odpracovaný čas, malo by to stačiť.

Ak vytvoríte takýto mostík, mzdová účtovníčka vám bude po každej výplate určite niekoľko dní ďakovať. Pretože kto by chcel stále dokola zadávať odpracované hodiny pre každého zamestnanca.

Did this answer your question?