/Supervizor

Vizualizace výdajů státní správy

Primary LanguagePHPGNU General Public License v3.0GPL-3.0

Supervizor

Supervizor je aplikace na vizualizaci výdajů státní správy, kterou vytvořili pracovníci Ministerstva financí České republiky. Uvítáme další použití i úpravy/opravy zdrojového kódu, proto ho dáváme k dispozici pod licencí GNU GPL v3

Header

Obsah repozitáře

//mysql - soubory pro tvorbu databázové struktury

//www - zdrojové kódy aplikace
//www/app - jádro aplikace
//www/app/api
//www/app/import - třída FakturyImport a Mappingové soubory pro import
//www/app/lib - PHP knihovny
//www/app/tmp - dočasné soubory
//www/config - statická nastavení aplikace
//www/include - šablony pro generování výstupu
//www/static - statické veřejné soubory

Nastavení

  • nastavení vizualizace se provádí v souborech ve složce //www/config
  • šablona nastavení je ve složce //www/config-vzor
  • nastavení importu a napojení jednotlivých polí je popsán v sekci Mapping

Základní nastavení - //www/config/constants.php

  • zde se nastavují základní parametry, jako jsou hesla a cesty k vizualizaci
  • v drtivé většině případů by mělo stačit nastavení hesla do databáze a hesla importu

Profily - //www/config/profiles.json

  • Pro uložení více organizací a let jsou zvoleny identifikátory profil a dataset
  • Tyto údaje se nastavují v souboru //www/config/profiles.json ve formátu JSON
  • Soubor obsahuje JSON objekt kde jednotlivé názvy vlastností jsou identifikátory profilů a obsahem jsou objekty reprezentující profily
  • Objekt profilu má následující vlastnosti:
    • (string) title - název datasetu k zobrazení
    • (object) datasets - objekt kde jednotlivé názvy vlastností jsou identifikátory datasetů (unikátrní v rámci profilu) a obsahemn jsou objekty reprezentující datasety
    • (string) entity - Název subjektu, který se zobrazuje jako odběratel
    • (string) entity_desc - Kontaktní údaje subjektu které se zobrazují jako odběratel (lze použít \n pro nový řádek)
  • Objekt datasetu má následující vlastnosti
    • (string) title - název datasetu k zobrazení
    • (string) endpoint - url adresa odkazující na metadata datové sady katalogu (použito pro Mapping)
    • (string) database - název databáze pro uložení dat
    • (string) mapping - identifikátor Mappingu
    • (string) source_name - název datového zdroje k zobrazení
    • (string) source_url - url datového zdroje jako odkaz pro uživatele

##Import

  • Součátní aplikace je automatický mechanismus na import faktur z CSV souborů.
  • Proces, jakým probíhá napojení jednotlivých polí je popsán v sekci Mapping

Mapping

  • Vytvořením Mappingu pro váš formát faktur definujete napojení polí faktury v CSV zdroji na pole v databázi Supervizoru
  • Který Mapping se použije se nastaví v souboru profiles.json
  • Mapping je PHP soubor ve složce //www/app/import s názvem FakturyMapping_XXXX.php, kde XXXX je identifikátor Mappingu
  • Soubor obsahuje třídu FakturyMapping_XXXX (stejný identifikátor), která implementuje rozhraní IFakturyMapping
  • Třída FakturyMapping_XXXX:
    • metoda getTimestamp() - vrátí datum a čas poslední aktualizace dat na datovém zdroji ve formátu UNIX time
    • metoda setSource( (string) $source ) - nastaví zdroj dat; jako parametr dostane údaj endpoint z objektu datasetu v profiles.json
    • metoda import( FakturyImport $fi ) - provede import zápis do databáze provádí pomocí metod insertRow() a insertRows() dodaného objektu třídy FakturyImport
  • Třída FakturyImport:
    • metoda insertRow( (array) $row )
      • metoda kterou se vloží jedna faktura do databáze
      • parametrem je pole, kde klíče jsou názvy položek databáze
      • array( pole1 => hodnota1, pole2 => hodnota2, ...)
    • metoda insertRows( (array) $rows )
    • metoda kterou se vloží více faktur do databáze v rámci jedné žádosti
    • parametrem je pole polí, kde klíče jsou názvy položek databáze
    • array(0 => array( pole1 => hodnota1, pole2 => hodnota2, ...))

Uživatelské rozhraní importu

  • uživatelské rozhraní se nachází na adrese /...cesta k supervizoru.../import
  • jako heslo se používá heslo jehož otisk je uložen v //www/config/constants.php v hodnotě IMPORT_PASSWORD_MD5
  • zbytek je návodný