Stav addinu: v běžném provozu
Počet uživatelů (úřadů): 10+
ZPMV
Zdravotní pojišťovna ministerstva vnitra ČR je zdravotní pojišťovna, a byla založena ke dni 1. 10. 1992 rozhodnutím Ministerstva práce a sociálních věcí České republiky. Aktuálně se jedná se o druhou největší zdravotní pojišťovnu v České republice. Pojišťovna má přiřazen kód 211.
Tento addin vyhledává zvolené subjekty v databázi pojišťovny a získává z ní informace.
Subjekt
Subjekt je daná osoba vyskytující se v databázi zdravotní pojišťovny ministerstva vnitra ČR.
Stavy subjektu
Subjekty mohou mít stav podle toho jak je úspěšná komunikace se serverem. A to mohou být následující:
Empty – žádný stav
NegativeError – nevyplněné potřebné údaje v dané fázi
Error – nastala obecná chyba
Received – Obdržena odpověď z úřadu
Done – všechny odpovědi jsou naimportováni
Druhá fáze
Druhá fáze je u tohoto addinu sloučena s třetí fází. Addin načte všechny HS, které jsou připraveny na druhou fázi ze zadaného adresáře. Poté odešle jednotlivé HS na ZPMV.
Vstupní parametry
Přihlašovací jméno
Úřad IČO – kdo se do dané služby přihlašuje
Přihlašovací heslo
Adresa služby – nachází se na https://eforms.zpmvcr.cz/eServicesNES
Oprávněni dotazu – podle § 33, § 34 a § 262a, odst. 3 zák. č. 120/2001 Sb., exekučního řádu ve znění pozdějších předpisů a dle § 139 o.s.ř.
Po přihlášení se na základě hromadné součinnosti spustí proces ProcessLustrationSubject hlášením„Zpracovavám subjekt {subject.Subject}“. Lustrace probíhá na základě rodného čísla, které je převáděno do číselného formátu. Pokud nastane situace subject.BirthNumber = null, systém zobrazí „Subjekt nemá uvedeno rodné číslo. Nemůžeme lustrovat na ZPMV“ a provede return. Jinak se provede zápis následujících hodnot
rozhodneDatum = DateTime.Now,
cisloPojistence = rc,
jmeno = subject.Name,
prijmeni = subject.Surname,
identCislo = subject.CaseID.ToString(),
a přidá daný subjekt do fronty. Addin totiž neodesílá jednotlivé subjekty, ale odesílá až „balík“ subjektů na ZPMV, pokud je subjektů více.
Další proces v pořadí je ProcessLustrationDone, který zajišťuje činnost odeslání požadavku, ale také kontroluje seznam čekajících subjektů. Jestliže service.subjectsList.Count() = 0 tedy není žádný subjekt k odeslání provede „Není žádny subjekt na odesláni“, „Ukončuji adin.“ Pokud tedy jsou nějaké subjekty v seznamu vypíše addin „Jsou zpracováni všechny subjekty“, „Posílam request…“ a provede lustraci na straně pojišťovny.
Po přijetí odpovědi povede uložení „Ukládám odpověď na disk“ a soubor XML projde serializecí, aby mohla být data zpracována addinem. Identifikace subjektu a jeho přiřazení umožňují položky „{subject.Name}_{subject.Surname}.xml“ z XML a taktéž „{subject.Name}_{subject.Surname}.html“ z HTML souborů. Na chybu upozorní addin „Nastala chyba pri spracovaní subjektu s RC {FO.Cpoj}“, nebo může nastat obecná chyba a u této chyby „Nastala chyba pri spracování odpovedi.“ zůstane addin v druhé fázi a nastaví výsledek na Error.
Čtvrtá fáze
Tato fáze provádí zpracování odpovědi z ZPMV a úpravu dle potřeb serveru Evolio. Když nastane stav Done, addin automaticky ukončí činnost.
Importér
Importér zajišťuje hlavní činnost při čtení přijatých dokumentů a následného zpacování. Nejdříve importér provede načtení XML souboru, aby mohl výsledek lustrace přiřadit k určitému subjektu, neboť bylo na ZPMV odesláno více subjektů určených k lustraci najednou. To se provádí pomocí řádku „{ subject.Name}_{ subject.Surname}.xml“ v XML odpovědi.
Pokud chybí soubor XML zobrazí se „Nenašla sa xml odpověd“, „Lustrace nemůže pokračovat.“,stav se změní na Error a vytvoří se chybový úkon „Úkol pro při chybě“.
Deserializaci souboru značí „Zpracovávam XML soubor“. Stejně tak i zde může dojít k chybě v případě že response = null tak odpoví addin „Nepovedla se deserializace xml odpovědi“, k čemuž mohlo dojít buď chybnou deserializací nebo zpracováním souboru. Stav se změní na Error a vytvoří se chybový úkon „Úkol pro při chybě“.
V případě že vše proběhlo v pořádku importér prochází odpověď u daného subjektu a hledá jako první Info !string.IsNullOrEmpty(response.Info) && response.Info.Contains(„povinný není k rozhodnému datu pojištěncem ZP MV ČR“), obsahuje-li odpověď toto, pak lustrace končí a zobrazí „211 – Povinný není pojištěncem ZP MV ČR“ lustrace skončí na výsledku Error a stavu Done. Následuje vyhledávání Typu, když prijem.Typ =“povinný je zaměstnanec“ tak lustrovaný subjekt je zaměstnanec, jinak se uloží JinýPříjem. Import u zaměstnance a jiného příjmu probíhá odlišně.
Import zaměstnance
U zaměstnance dochází ke kontrole zaměstnavatele dle PSČ a IČO. Pokud není nalezen dochází k založení zaměstnavatele s informacemi IČO, Jméno, Typ Firmy a Zadal, vyhledání informací o typu firmy probíhá pomocí ARESu dle nastavení. Následuje vložení adresy: Ulice, Město, PSČ, ZdrojZjištění zadáno,Popis a Zadal.Jestliže v databázi byl úspěšně zaměstnavatel uložen, pracuje se s ním dále jako by byl již předtím v databázi. Když nedojde k vytvoření zaměstnavatele, Addin zobrazí chybu „Nepodařilo se vytvořit Zaměstnavatele“ a ukončí lustraci chybou.
Dále u zaměstnavatele se kontroluje validace majetkových hodnot ve sloupcích mhIDVlastnik, mhprIDPlatcePrijmu mhprPlatny, mhprPopis, v případě že jsou platná je výsledek Beze změny, jinak musí být vytvořena nová majetková hodnota s upravenými vlastnostmi:
mhIDVlastnik
mhprIDPlatcePrijmu
mhprPlatny
mhprPopis
mhprZamestnanyOd
mhTyp=„MZDA_PLAT“
mhprTyp = „NEPREDNOSTNI“
mhprZadano
mhprZadal
a výsledkem je Nová. Poté dochází k poslední lustraci, kvůli více záznamům zaměstnavatele v databázi. Data nejsou k dispozici a lustrace končí, jinak se přiřadí majetková hodnota prvnímu zaměstnavateli a k výsledku se přidá text „Na základě IČO z odpovědi bylo nalezeno vícero subjektů v Evolio Serveru!“ a poté taktéž import zaměstnance skončí.
Import JinýPříjem
U JinýPříjem je import jednodušší, probíhá pouze jeden rozhodovací proces. A to zda je majetková hodnota v databázi validní dle záznamů mhIDVlastnik, mhprIDPlatcePrijmu, mhprPlatny a mhprPopis. Pokud je validní, výsledkem lustrace je stav Beze změny a ukončení. Naopak když hodnoty validní nejsou, provede se zápis nových majetkových hodnot do databáze
mhIDVlastnik
mhprIDPlatcePrijmu
mhprPlatny
mhprPopis
mhprZamestnanyOd
mhTyp– Když se jedná o důchod pak zápis hodnoty „DUCHOD“ jinak „JINY_PRIJEM“
mhprTyp = „NEPREDNOSTNI“
mhprZadano
mhprZadal
po úspěšném zápisu hodnot se změní stav na Nový a import JinýPříjem je tímto ukončen.
Po provedení jednoho z importů následuje poslední činnost importéru a taktéž čtvrté fáze. Tím je sloučení úkonů, to zajišťuje položka joinActs. Po spuštění, provede sloučení textů všech příjmů a vytvoří pouze jeden výsledek. Pokud je vypnutá, pro každý příjem vytvoří samostatný výsledek lustrace. Následuje změna stavu lustrovaného subjektu na Done a ukončení všech procesů addinu, neboť již nemá pokračování.