Dev Diary Enigma Spedice BezpečnostEnigmaPrototypSpedice

Spedice od verze 1.0.8.7.9: od plánování přeprav k propojené fakturaci a skladování

Od srpna do 15. října 2026 prošla Spedice výrazným rozvojem. Změny se zaměřily na každodenní práci s přepravami, kalkulaci nákladů, přepravní dokumenty i návaznost na sklad a fakturaci. Ve vývojové řadě 1.0.8.7.9, která podle aktuálního přehledu dosáhla verze 1.0.8.7.9.215, přibyly nové možnosti i řada úprav vycházejících z praktického používání.

Zpracování přepravy zahrnuje mnohem víc než zadání místa nakládky a vykládky. Je potřeba propojit zákazníka, dopravce, trasu, cenu, dokumenty a následné vyúčtování. Právě návaznost těchto kroků byla hlavním tématem rozvoje Spedice v uplynulých dvou měsících.

Pohodlnější práce s přepravními případy

Významnou změnou prošla editace přepravních případů a jednotlivých zásilek. Sjednocené úpravy přímo v detailu případu usnadňují průběžné doplňování údajů. Zlepšilo se také filtrování a práce s různými režimy případů.

Součástí úprav je ochrana dokončených záznamů. Uzavřené případy se zamykají proti dalším změnám a zpřesnila se pravidla pro práci s archivovanými případy. Rozpracované přepravy tak lze průběžně upravovat, zatímco dokončené zakázky mají jasně vymezený režim.

Pozornost dostaly také adresáře firem a kontaktní údaje. Úpravy se týkaly zakládání zákazníků a dopravců, ukládání adres i kontaktů na vykládce.

Trasy, GPS a průběžná kalkulace nákladů

Plánování přeprav rozšířila možnost zadávat vlastní GPS polohy. To je užitečné například u areálů nebo míst předání, kde samotná poštovní adresa nestačí. Vylepšení se dotkla také převodu adres na souřadnice a uchování zadaných míst.

Na práci s trasou navázala kalkulace přepravy. Přibylo nastavení spotřeby podle typu vozidla, automatické přepočítávání nákladů trasy a automatické ukládání kalkulace. Při změně údajů tak výpočet lépe navazuje na aktuální podobu přepravy.

Geografické vyhledávání a měsíční finanční přehledy zároveň rozšířily možnosti, jak se na zakázky dívat podle místa i ekonomických výsledků.

Přepravní dokumenty a CMR

Další oblastí rozvoje byly dokumenty doprovázející přepravu. Spedice získala rozšířené zpracování CMR a podporu překládaných přepravních dokumentů.

Úpravami prošly také PDF objednávky přepravy. Zlepšilo se jejich rozvržení, zobrazení referencí, zachování proporcí firemního loga i samotný náhled. Tyto detaily pomáhají při přípravě dokumentů, které následně dostává zákazník nebo dopravce.

Práce s dokumenty se současně sjednotila s ostatními částmi aplikace, včetně formulářů, příloh a dialogových oken.

Těsnější propojení přeprav s fakturací

Velká část změn směřovala k návaznosti mezi přepravou a jejím vyúčtováním. Rozvíjely se fakturační fronty, historie dokladů i vazby mezi případem a fakturami. V detailu případu přibyl také přehled vyrovnání dodavatelských faktur.

Zpřesnilo se zpracování DPH, měn a položek logistických faktur. Úpravy zachovávají pořadí položek i víceřádkové popisy a zlepšují jejich prezentaci na dokladu. Přibyla také možnost zahrnout související zásilky s nulovou cenou a převzít pro ně odpovídající měnu.

Praktickou změnou je zachování zásilky ve frontě k fakturaci, pokud byla z faktury odebrána. Snižuje se tím riziko, že při úpravě dokladu vypadne z dalšího zpracování.

V profilu firmy je dostupná historie vystavených faktur. Partnerské faktury lze filtrovat a exportovat včetně součtů. Práci s doklady dále doplnily denní kurzy ČNB, přehlednější zobrazení přepočtu do korun a náhled PDF v dialogovém okně.

Návaznost na skladové operace

Spedice se v tomto období rozvíjela také ve spojení se skladem. Přibyla skladová fronta navázaná na logistiku, rozšířila se práce se skladovými zákazníky a dokumenty CMR.

Pro vyúčtování skladování vznikla měsíční evidence s podporou verzovaných sazeb. Jednotlivé řádky lze upravovat přímo v přehledu. Evidence skladování tak získala vlastní podklady pro následné účtování.

Pro provozy, které kombinují přepravu se skladovými službami, jde o důležité propojení souvisejících činností.

Přehlednější prostředí pro každodenní práci

Vedle nových funkcí prošlo proměnou i uživatelské prostředí. Tabulky, formuláře, ovládací tlačítka a upozornění se sjednotily napříč aplikací. Úpravy se dotkly světlého vzhledu, mobilního zobrazení i navigace.

Technický základ rozhraní přešel na Bootstrap 5 a společné komponenty. Z pohledu uživatele se tato práce projevuje především konzistentnějším ovládáním jednotlivých obrazovek. Další změny se zaměřily na načítání částí aplikace a stabilitu jejího spuštění.

Rozvoj doplnily také úpravy aktualizačního mechanismu, včetně navazování přerušeného stahování a zachování soukromého úložiště při aktualizaci.

Stav k 15. říjnu 2026

Vývoj od verze 1.0.8.7.9 posunul Spedici směrem k ucelenějšímu zpracování zakázky: od zadání přepravy a kalkulace trasy přes dokumenty až po skladové návaznosti a fakturaci.

Přínos jednotlivých změn spočívá především v jejich propojení. Údaje o přepravě, jejích nákladech a dokladech na sebe lépe navazují a uživatel má více podkladů dostupných přímo při práci s konkrétním případem.

13:27

to uplne nesedi… projdi ty commity klidne i v readme.md a prizpusob to k tomu.
Tady je priklad, jak jsme psali posledni blog
https://lukas-wolf.cz/dev-diary/spedice-prestavba-za-plneho-provozu/

13:29

Worked for 46s

Předchozí text jsem pojal příliš úzce jako přehled logistických funkcí. Prošel jsem historii od commitu 1.0.8.7.9, README i změny v kódu a dokumentaci. Základní verze je z 12. srpna, aktuální stav už je 1.0.8.7.9.216 z 15. října 2026. Níže je přepracovaný článek jako pokračování vašeho dev diary.


Spedice: Když se přestavěné základy potkají s provozem

V minulém článku jsem popisoval přestavbu technických základů Spedice. Oddělení controllerů, sjednocení routování, přechod na Twig a postupné rozplétání historického PHP kódu. Na konci zůstalo několik plánů: nová Logistika, propojení se skladem, osobní e-mailové schránky nebo soustředění důležitých událostí na jedno místo.

Od té doby pokračoval vývoj řadou 1.0.8.7.9. Mezi její základní verzí z 12. srpna a dnešní 1.0.8.7.9.216 přibylo přes šest set commitů.

Část přinesla nové funkce. Velká část řešila situace, které se objeví teprve při používání: fotografii faktury otočenou telefonem, zásilku odebranou z vystaveného dokladu, manažera odpovědného jen za část provozovny nebo aktualizaci přerušenou uprostřed stahování.

Právě na těchto detailech se ukazuje, kolik práce zbývá mezi první funkční verzí a systémem použitelným každý den.

Logistika dostala vlastní pracovní postup

Nová Logistika začala postupně spojovat přepravní případy, jednotlivé zásilky, dopravce, zákazníky, trasu, dokumenty a fakturaci.

Samotné zadání přepravy přitom představuje jen začátek. Během zpracování se mění adresy, doplňují kontakty, upravuje cena a přicházejí dokumenty. Případ proto získal průběžnou editaci přímo v detailu, práci s poznámkami a jasnější pravidla přechodu mezi rozpracováním, fakturací a archivem.

Dokončené případy se zamykají. U archivovaných záznamů se řeší, za jakých podmínek je lze obnovit. Změna stavu musí odpovídat tomu, co už se s přepravou stalo v dalších částech systému.

Podobně se rozvíjelo plánování trasy. Přibyly vlastní GPS polohy, náhradní postup při dohledávání souřadnic, spotřeba podle typu vozidla a automatický přepočet nákladů. Kalkulace se také průběžně ukládá.

Adresa totiž nemusí označovat místo, kam má vozidlo skutečně přijet. A změna trasy musí mít návaznost na cenu, se kterou dispečer pracuje.

Přeprava pokračuje i po vykládce

Velká část práce se odehrála mezi dokončenou přepravou a vystavenou fakturou.

Rozšířilo se zpracování CMR, příprava objednávek dopravcům, jejich odesílání a PDF výstupy. Dokumenty získaly podporu překladů a postupně se upravovalo jejich rozvržení, reference i náhledy.

Důležité změny ale vznikaly také v samotné fakturaci.

Pokud se zásilka odebere z faktury, musí zůstat dostupná pro další vyúčtování. Pokud je přeprava zahrnutá v jiné ceně, může mít nulovou hodnotu, ale stále patří do související evidence a případně i na doklad. Přitom musí převzít správnou měnu a zachovat srozumitelný popis.

Přibylo rozlišení běžné přepravy a svozu či rozvozu s cenou zahrnutou jinde. V detailu případu se objevilo vyrovnání dodavatelských faktur. U vystavených dokladů se řešilo pořadí položek, víceřádkové popisy, DPH, denní kurzy ČNB i přehlednější přepočet do korun.

Každá taková úprava má malý název v historii commitů. Dohromady však určují, zda se zakázka podaří správně uzavřít.

Sklad začal navazovat na dopravu

Vedle Logistiky se rozvíjela skladová část: fronta navázaná na přepravy, evidence zákazníků, práce s CMR a měsíční podklady pro účtování skladování.

U skladování přibyla evidence sazeb v čase a možnost upravovat jednotlivé řádky přímo v přehledu.

To je podstatný detail. Současný ceník nemůže automaticky vysvětlovat všechno, co se odehrálo v minulosti. Pokud se cena změní, systém potřebuje zachovat souvislost mezi obdobím, poskytnutou službou a použitou sazbou.

Propojení skladu s dopravou tak začalo dostávat konkrétní podobu v každodenních postupech a podkladech pro vyúčtování.

Faktura vyfocená telefonem je samostatná disciplína

Jedním z nejvýraznějších témat tohoto období bylo zpracování přijatých faktur.

Nahrát soubor a spustit OCR je relativně přímočaré. Správně určit dodavatele, vlastní firmu, provozovnu, částku, měnu, účet a variabilní symbol už vyžaduje podstatně více kontrol.

Do procesu vstoupily platební QR kódy, naučené vzory dokladů, vyhledávání dodavatelů podle názvu v ARESu i kontroly duplicit.

Historie oprav přitom dobře ukazuje skutečné problémy dokumentů. OCR zamění číslo faktury za účet. Rozdělí částku mezerou. Přečte jinak IČO. Telefon uloží fotografii s orientací, kterou je potřeba správně zpracovat. Čárový kód se nesmí považovat za platební QR.

Postupně se proto upravovala normalizace hodnot, porovnávání údajů z různých zdrojů i použití uložených vzorů. Rozvíjela se mobilní cesta od pořízení fotografie přes frontu zpracování až po kontrolu výsledku.

Zůstala také možnost ručního zadání. Uživatel musí mít cestu dál i ve chvíli, kdy automatické rozpoznání nemá dostatečné podklady.

Jedna provozovna může mít několik různých hranic

Další rozsáhlou oblastí bylo oddělení odvětví a oprávnění v Retailu.

Přístup k provozovně sám o sobě nestačí. Na jednom místě může fungovat několik odvětví a manažer může odpovídat pouze za některá z nich. Toto omezení se musí promítnout do objednávek, dodavatelů, odpisů, reklamací i souhrnných přehledů.

Nestačí tedy skrýt položku nabídky. Stejná pravidla musí platit při přímém otevření adresy, načítání dat i exportu.

Přibylo schvalování reklamací a sledování jejich vyřízení. V docházce se rozšířily žádosti o dovolenou, jejich schvalování a návaznost na plánování směn.

Společným tématem je odpovědnost: kdo záznam vytvořil, kdo jej má posoudit a v jakém rozsahu s ním může pracovat.

E-mail už má vlastní místo v aplikaci

Osobní e-mailové schránky, které byly v minulém článku mezi dalšími kroky, dostaly vlastní implementaci.

Přibylo nastavení účtů a poskytovatelů, práce se zprávami, přílohami a šablonami i upozornění na novou poštu. Další úpravy se věnovaly samotnému prostředí schránky a ukládání příloh.

Rozvíjel se také centrální zvoneček. Jednotlivé zdroje upozornění zahrnují například poštu, úkoly, kalendář, objednávky, reklamace nebo žádosti o dovolenou.

Každý zdroj má vlastní pravidla dostupnosti. Upozornění má uživatele dovést ke konkrétní práci, ke které má oprávnění.

Původní plán komunikace a informování se tak postupně mění v jednotlivé použitelné části systému.

Po přestavbě backendu přišlo na řadu rozhraní

Velký blok commitů patří sjednocení uživatelského prostředí.

Aplikace přešla na Bootstrap 5. Skripty a styly se začaly sestavovat přes Vite, části JavaScriptu se oddělily podle stránek a postupně zmizely další historické vrstvy.

Tabulky, formuláře, panely, dialogy, upozornění a grafy dostaly společné komponenty.

Smysl této práce je dobře vidět při opravách. Pokud několik modulů používá stejný formulářový prvek, jeho chování se dá upravit na jednom místě. Stejná výhoda ale znamená i větší odpovědnost: chyba společné komponenty se může projevit napříč aplikací.

Proto za sjednocováním následovaly opravy překryvů nabídek, posouvání, kontrastu, mobilních lišt nebo otevírání dialogů. Přibyly také sjednocené stavy načítání a postupné načítání modulů.

A mezi tím vznikl i samostatný motiv Windows 98. Podnikový systém si občas může dovolit trochu osobní historie.

Manažerský přehled musí vysvětlit, co počítá

Nejnovější změny přinesly společný měsíční přehled zdrojů z Enigmy, přijatých faktur, Retailu, Logistiky a Docházky.

Spojit několik tabulek do jedné stránky by bylo jednoduché. Obtížnější je zajistit, aby jejich součty měly správný význam.

Faktura exportovaná do banky ještě není potvrzená úhrada. Rozvržená směna není odpracovaný čas. Chybějící podklad neznamená nulu. A množství v různých jednotkách nelze bez dalšího sečíst.

Přehled proto respektuje původ a dostupnost jednotlivých údajů. Historická evidence Enigmy zůstává označená samostatně. Nejasné docházkové záznamy se předávají ke kontrole. Částky zůstávají rozdělené podle měn.

Stejně důležitá jsou oprávnění. Přepnutí firmy v horní liště nesmí samo rozšířit přístup k jejím finančním údajům.

Dnešní verze 1.0.8.7.9.216 doplnila export do PDF a Excelu. Používá stejná data a stejná přístupová pravidla jako samotný přehled. Jednotlivé provozovny mají oddělené části výstupu a při selhání zdroje export oznámí chybu, aby nevznikl neúplný podklad tvářící se jako hotový výsledek.

Aktualizátor musí přežít vlastní aktualizaci

S rozšiřováním systému rostly také požadavky na jeho údržbu.

Řešilo se pokračování přerušeného stahování, zachování sestavených frontendových souborů, kompatibilita sdíleného hostingu i aktualizace starších databázových struktur.

Zvláštní pozornost dostala soukromá úložiště. Aktualizace musí zachovat jejich obsah a správně vytvořit ochranu adresářů. Pořadí těchto kroků je součástí správného chování instalátoru.

Přibyly také automatické databázové zálohy a sledování jejich výsledků. Dokončená kopie se ověřuje kontrolním součtem a starší zálohy se odstraňují až po úspěšném vytvoření nové.

Samostatnou oblastí jsou šifrované osobní a centrální trezory. Mají vlastní odemykání, obnovovací klíče a pravidla přístupu. Přihlášení do aplikace tedy automaticky neznamená otevření uložených hesel.

To všechno rozšiřuje Spedici o provozní zázemí, které s přibývajícími funkcemi potřebuje.

Další verze začíná konkrétním problémem

Pohled na dvě stě šestnáctou dílčí verzi může působit jako nekonečná řada drobných vydání. V historii je ale dobře vidět, jak na sebe jednotlivé kroky navazují.

Nová Logistika potřebovala fakturaci. Fakturace potřebovala správně zpracované doklady. Společné přehledy potřebovaly přesná oprávnění. Nové komponenty potřebovaly projít všemi moduly. A všechny tyto změny bylo nutné dostat do existujících instalací.

Přestavěné základy tím dostaly skutečnou zkoušku: další funkce, starší data a každodenní provoz.

Až přijde další neobvyklá faktura, nestandardní přeprava nebo chybějící příchod v docházce, bude z toho pravděpodobně další commit.