Důležité upozornění!

Policie České republiky se zajímá o IP-adresy osob, které komentují tento blog. Ve vlastním zájmu zde proto nic nepopírejte, nezpochybňujte, neschvalujte, neospravedlňujte, nikoho a nic nehanobte, nepodporujte a nepropagujte, a pokud se přesto rozhodnete komentář přidat, pak se, prosím, ničemu nedivte.

Právnické výpočty

Dnes jsem dovedl své právnické výpočty v Djangu do podoby, kterou jsem si představoval. Není to žádný zázrak ani z hlediska grafiky, ani uživatelské přívětivosti (ve vztahu k uživatelům jsem ostatně vyznavačem drsné programátorské školy), ale funkčně by všech osm komponent mělo fungovat a poskytovat prakticky použitelné výsledky.

Po jednoduchých právnických kalkulačkách jsem se v Djangu pustil do větší akce a naprogramoval aplikaci pro kalkulaci jednoduché pohledávky. Zájemci si ji mohou vyzkoušet (a případně i po libosti používat) na adrese http://legal.pecina.cz. Dříve jsem pro vyzkoušení využíval účet uživatele guest, jehož databasové transakce se nezapisovaly, avšak to jsem shledal iregulárním a implementoval formulář pro zadání nového uživatele, po jehož vyplnění se vám, zvládnete-li odpověď na obtížnou otázku, jíž bude prověřeno, že nejste otravný spambot, vytvoří účet a database naplní užitečnými daty pro kalkulaci nákladů řízení.

Vzorovou pohledávku ve formátu XML pro použití s programem si můžete stáhnout zde; takto by měla vypadat její presentace v PDF.

Při příležitosti hrátek s úroky jsem seznal, že to, co zní právnickému uchu jednoduše, může být pro mathematika obtížným problémem. Jak známo, podle ustanovení § 2 nařízení č. 142/1994 Sb. činí výše poplatku z prodlení za každý den prodlení 2,5 promile dlužné částky, nejméně však 25 Kč za každý i započatý měsíc prodlení. Předpokládejme, že se nejedná o měsíc kalendářní, nýbrž o skutečný, průběžný měsíc, ve kterém trvá prodlení. Otázka však vzniká, co s částečnou splátkou dluhu v situaci, kdy přirostlo méně než 25 Kč poplatku. Můžeme započítat celých dvacet pět korun, dostaneme se ale do stavu, kdy nám dlužník právem vytkne, že jsme mu jistinu nesnížíli tak, jak bychom měli, s ohledem na poplatek z prodlení přirostlý ve zbytku měsíce.

Já vím, moje starosti a Rockefellerovy peníze, ale mathematik prostě nikdy nebude respektovat nedokonalost vnějšího světa: to je celoživotní úděl…

Připravuji ještě versi pro složenou pohledávku, kterou bude možné zpracovat pohledávku tvořenou několika různě úročenými složkami a vedle úroku dovolí zahrnout i jiné druhy příslušenství, např. náklady řízení, které se v případě prodlení obvykle neúročí (ač by samozřejmě měly, ale taková je praxe).

Ve snaze o uchopení právní mathematiky jsem po víceméně úspěšném zápasu se soudními poplatky, náklady řízení a lhůtami pokročil k dalšímu thematu, jež mne roky irituje: k určení, jaká doba uplynula mezi dvěma daty, což je podstatné zejména při určování výše úroků a poplatků z prodlení.

Doposud jsem tyto hodnoty počítal pomocí ad hoc spreadsheetu a pokud jsem potřeboval přepočítat sazbu ze dnů na roky, vydělil jsem výsledek 365,25. Jak jsem zjistil, právě tak se to nikdy nedělá.

Nejstarší methodu vymysleli, v době dávno před nástupem počítačů, bankéři. Ti vyšli z fikce, že rok má 12 měsíců po 30 dnech, takže celé roky započetli násobkem roční sazby, celé měsíce její dvanáctinou a zbývající dny jednou třistašedesátinou. Výpočet tudíž nevyžadoval zkoumat, kolik dnů uplynulo, prostě vzali obě data a k výsledku, který byl – vyjma nejkratších lhůt – velmi blízký reálnému poměru, dospěli dosazením do vzorce (zdroj):


Tato methoda má několik variant, které se liší tím, jak naložit se dny na konci měsíce: bez korekce by totiž některé intervaly mohly vyjít jako nulové – kupř. mezi 31. lednem a 1. únorem – a jiné, počínající na konci února, by byly počítány jako nepřiměřeně dlouhé.

Počítače umožnily zjistit přesný počet dnů, což dovolilo pracovat s krátkými intervaly stejně jako s dlouhými, ale vznikl problém, čím výsledný počet dní vydělit. Nejpřesnější je započítat dny v nepřestupném roce jako 1/365 sazby a v přestupném jako 1/366, ale existují i jednodušší možnosti, např. existenci přestupných let pominout a dělit 365.

Methody mají různá pojmenování, nejčastější je konvence s lomítkem: před ním je uvažovaný počet dnů v měsíci, za ním v roce. Kde se počítá se skutečným počtem dnů, uvede se místo čísla ACT (z actual = skutečný). Nejpřesnější je tedy methoda ACT/ACT, nejstarší 30/360.

Zde je výsledek.

Tak mě definitivně omrzelo počítání lhůt na prstech, eventuálně myší na kalendáři v Gnome Shellu, a napsal jsem si na to webovou aplikaci v Djangu.

Původně jsem ji mínil učinit relativně obecnou, použitelnou i pro velmi staré lhůty, ale pak jsem zjistil, že je příliš pracné dopočítávat všechny pracovní soboty – a navíc OSŘ faktum volných sobot reflektoval až v 80. letech, a to ještě principiálně vadně (lhůta končící v pracovní sobotu skončila až následující pracovní den, avšak lhůta, která by skončila v pátek před pracovní sobotou, jenž byl státním svátkem, skončila v pracovní sobotu). Proto jsem s lítostí omezil platnost aplikace na období od 1. 1. 1991.

Přesto jsem se při své rešerši dozvěděl ze svátkového práva několik zajímavých věcí, např. že před (definitivním) převzetím moci komunisty v r. 1948 existovalo osm pevných a tři pohyblivé státní a církevní svátky spojené s volným dnem. Komunisté jejich počet nejprve zredukovali na sedm (šest pevných a jeden pohyblivý) a během normalisace další (28. říjen) zrušili. Relativně štědří jsou postkomunisté: ti se postupně propracovali k dnešnímu stavu dvanácti pevných a jednoho pohyblivého svátku. K prvorepublikovému stavu, kdy existovalo sedmnáct volných svátečních dnů, nám ale přesto kus cesty zbývá.

Po počátečním pokusu se soudními poplatky jsem se v Djangu pustil do ambiciosnějšího informačně-justičního projektu, webové kalkulačky nákladů řízení. Na kalkulaci je obvykle nejsložitější vypočítat náhradu za použití motorového vozidla (čímž netvrdím, že místní právní předpisy činí zbytek snadným!). Moje kalkulačka využívá Google Maps API pro vyhledávání zeměpisných poloh, vzdáleností a dob cesty, a to, co normálně trvá 15–30 minut, je s její pomoc hotovo za pár desítek sekund, včetně elegantního výstupu v PDF z ReportLabu.

Beta-testovat lze na adrese http://knr.pecina.cz, pokud se přihlásíte jako guest (s heslem guest), budete mít přístup ke všem funkcím, avšak s tím, že změny v databasích se neuloží, tudíž nebudete moci editovat seznamy předvoleb, ale každá kalkulace musí být generována ad hoc (hotové seznamy používat můžete).

Momentálně ještě zápolím s kompatibilitou s prohlížeči, jinak by vše mělo fungovat a budu proto vděčen za případné bug reporty.

Aktualisováno.
Vzhledem k nečekanému zájmu o aplikaci jsem se rozhodl převést ji do zostřeného beta-provozu; kdo si napíše na Tato e-mailová adresa je chráněna před spamboty. Pro její zobrazení musíte mít povolen Javascript., obdrží bezplatně účet.

Každý účet má samostatné a navzájem nezávislé tabulky předvoleb. Ty jsou po zřízení účtu naplněny údaji pro všechny soudy v České republice a předpisy o cenách pohonných hmot od r. 2005, dále si s nimi uživatel dělá, co chce, může je rozšiřovat o vlastní údaje, eventuálně zcela smazat. Zvažoval jsem, zda by neměl existovat jakýsi korpus standardních předvoleb, společný všem uživatelům a centrálně spravovaný, ke kterému by každý doplňoval vlastní položky, ale nepovažuji to za příliš praktické, vyplnit si jednou za rok novou vyhlášku by měli zvládnout i uživatelé z řad informaticky méně gramotných právníků.

Za zpětnou vazbu, zejména kritickou, budu vděčen.

Aktualisováno.
K betaversi aplikace patří i betaverse návodu. Zde je: