Dohoda o provedení práce - Okamžité vytvoření DPP pro SSPŠ
Jednoduchý terminálový program a knihovna pro tvorbu výkazů práce.
Vytvořená dohoda je totožná a kompatibilní s DPP užívanými na Smíchovské střední průmyslové škole.
Použití
Program vytvoří PDF na základě poskytnuté TOML konfigurace z stdin (Možno přesměrovat obsah souboru viz. níže) a uloží ho do aktuální složky.
Název výsledného souboru je kombinace prefixu DPP_ a přijmení zaměstnance (Pokud je uvedeno).
dohoda_ssps < konfigurace.tomlS přepínačem -- podporuje program vypsání PDF souboru do stdout, tento výstup je tedy možné přesměrovat do libovolného souboru.
dohoda_ssps -- < konfigurace.toml > ../mojedohoda.pdfVypsání nápovědy
dohoda_ssps -hDohodaProvedeniPrace (https://github.com/EETagent/DohodaProvedeniPrace)
Použití programu: ./dohoda_ssps [-hnstf] < soubor
-h Vypsání této nápovědy
-n Seřazení položek od nejnovější
-s Seřazení položek od nejstarší
-t Vypsat počet odpracovaných hodin
-p Vypsat celkovou částku za odpracované hodiny
-w Živé sledování změn v souboru - watch
-f Cesta k souboru
-- Vypsat PDF do stdout (Musí být na konci příkazu)
PŘÍKLADY:
./dohoda_ssps < vykaz.toml
./dohoda_ssps -s < vykaz.toml
./dohoda_ssps -- < vykaz.toml > dohoda.pdf
./dohoda_ssps -n -f /home/thinkpad/vykaz.toml -- > dohoda.pdf
Ukázkový TOML
[dohoda]
nazev = "Program na tovrbu výkazů pro dohody o provedení práce"
kde = "V Liberci"
zastupce_email = "aramis.tochjan@ssps.cz"
[zamestnanec]
jmeno = "Franta Novák"
email = "franta.novak@ssps.cz"
rodne_cislo = ""
banka = ""
misto_narozeni = "Praha"
adresa = "Novákových 123/2, Praha"
pojistovna = "VZP - xxxxx"
[[prace]]
datum = "14.8"
cinnost = "Hodně jsem pracoval"
hodiny = "4"
poznamka = ""
[[prace]]
datum = "15.8"
cinnost = "Další práce"
hodiny = "2"
poznamka = ""
[[prace]]
datum = "16.8"
cinnost = "Třetí položka už"
hodiny = "9"
poznamka = ""
[[prace]]
datum = "17.8"
cinnost = "Poslední testovací blok"
hodiny = "2"
poznamka = ""Další příklady v toml/
Kompilace
K sestavení projektu jsou potřeba následující závislosti:
- C11 kompilátor (gcc / clang)
- cmake
- ninja nebo make
Stažení projektu:
git clone https://github.com/EETagent/DohodaProvedeniPrace.gitSestavení aplikace:
mkdir build && cd build
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
ninjaTesty
Součástí projektu jsou i zabudované testy:
PDF_TEST-> Zda je výstup PDF totožný k jeho TOML konfiguraciPDF_VELKE_TEST-> Zda je výstup PDF totožný k jeho TOML konfiguraci větší než 15 položekPDF_RAZENI_TEST-> Zda jsou položky v PDF správě seřazeny, jinak stejný jako PDF_SAME_HASH_TESTPDF_VELIKOST_TEST-> Zda je výsledné PDF menší než 1 MB
ninja testGrafické rozhraní
Alternativa k terminálovému programu. GUI napsané v nejnovějším přenosném frameworku GTK4.
Zatím není propojenou s knihovnou, jinak je UI plně funkční, vytváří TOML konfiguraci, která je posléze vypsána do STDOUT.
TODO
- Řazení podle data
- Optimalizace kódu a dokumentace
- Výpis počtu odpracovaných hodin
- Dynamický počet maximálních možných položek
- UTF-8 ready omezení délky textu
- Vícestránkový dokument
- CGI interface a webový frontend

