2026-07
-
DOVIS - Přehled změn a novinek za období: 21. 6. 2026 - 1. 7. 2026
Poznámka: Git historie nebyla k dispozici; seznam vychází z LastWriteTime souborů a technické dokumentace.
Shrnutí období
V tomto období proběhly čtyři hlavní vývojové okruhy:
- Historie akcí a audit historyworkers (21.-22. 6., dokončení 30. 6.) - nové UI historie.x, jednotné API HW_Log, migrace všech handlerů akcí, export CSV, forenzní filtry
- DigiSign a smlouvy - rozšíření auditu (22. 6., 30. 6.) - webhook, auditní knihovny, hromadné odeslání podpisů, PDF objednávky
- Kalendář dovolených a směn (1. 7.) - cache tabulka working_calendar2, rychlé zobrazení calendar2/calendar3, vícedenní pruhy
- Navigace, uživatelé a drobné úpravy (21.-24. 6., 1. 7.) - expozice/návody, aktivita uživatelů, Font Awesome 7.2, personální formuláře
Statistika upravených souborů (kód, bez datových složek)
| Datum | Počet souborů | Hlavní oblast |
| 21. 6. 2026 | 34 | Historie akcí, expozice, DigiSign návod |
| 22. 6. 2026 | 68 | Audit historyworkers - migrace handlerů (Fáze 0-5) |
| 24. 6. 2026 | 6 | Akce, personální uživatelé, karta, auta |
| 25.-29. 6. 2026 | 0 | Bez zaznamenaných úprav kódu |
| 30. 6. 2026 | 54 | Dokončení auditu, kopie akcí, step75 PDF, DigiSign |
| 1. 7. 2026 | 164 | Kalendář working_calendar2, navigace, nasazení červnových modulů |
21. 6. 2026
Historie akcí - nové UI (Fáze 6)
Rozsáhlá přestavba stránky historie pro zobrazení historie kroků a cen u akce (historie.x?aa=) a u kontaktů:
historie- přepojení na nové includeAkceHistorieShowAkceHistorieShow- filtry: období, rok, uživatel, oblast, modul, typ akce, forenzní pohledAkceHistorieHistLib- SQL agregace, kategorie, export CSV, masonry layout datAkceHistorieAktGraf- sloupcový graf aktivity po dnech (Google Charts)AkceHistoriePrice- přehled změn cenAkceHistorieMasonry.js- rozložení dlaždic historieAkceHistorieExport- export do CSV (dokončeno 30. 6.)
Filtry umožňují skrýt legacy šum (pasivní Stranka:), zobrazit jen forenzní záznamy s TypAkce/Modul, filtrovat podle diff DataPred/DataPo.
Aktivita uživatelů (showall)
UserActivityHistLib- nová knihovna pro agregaci z historyworkers (období, top uživatelé, SQL výrazy)UserActivityShow2,UserActivityShow3- rozšířené pohledy aktivityUserActivityUserseenBox- box kdo viděl
Modul Expozice - návody a úpravy
(Pokračování práce z 20.-21. 6.)
- Kompletní sada návodů v
/exp/: exp-navod-full, krok1-krok5, exp-navod-sken-tip, navod-skenovani, navod - Redirecty z kořene:
navod,navod-skenovani - Úpravy:
default,form,upload,TaskSeznam,ForumDetail,tisk,file - Styly tabletového rozhraní:
exp-tablet,exp-styles,exp-back-home
DigiSign - návod a testy
step75DigiSignNavod- podrobný návod pro obchodníkyAkceDigisignPodpisTest- testovací stránka podpisu v akci
Ostatní 21. 6.
ProjektySeznam10- úpravy seznamu projektů1- drobná úprava
22. 6. 2026 - hlavní den: audit systému historyworkers
Příprava (Fáze 0)
- Baseline testovací akce
KodAkce = 3753: 2 467 záznamů, max id 1 660 945 - Záloha tabulky historyworkers a celé aplikace DOVIS - ISKASA
- Ruční test před Fází 1:
nove_od_baseline = 42(duplicity, šum Stranka:, 14 řádků z jednoho uložení step06) StrErrorKonec- úpravy chybového zakončení
Jádro API - HistoryWorkersLib (Fáze 2-3)
HistoryWorkersLib- jednotné API: HW_InitRequest(), HW_Log(), HW_LogDiff()- Strukturované sloupce: TypAkce, Modul, EntitaTyp, EntitaId, Vysledek, RequestId, DatumCas, DataPred, DataPo
- Typy akcí: CREATE, UPDATE, DELETE, DENIED, PAGE_VIEW, AUTH_LOGIN, AUTH_LOGOUT
ActiveHistoryWorkers- pasivní audit stránek (upraveno 1. 7.)
Migrace handlerů podle modulů (Fáze 4-5)
Upraveno 68 souborů - každý handler akcí dostal volání HW_Log místo přímého INSERT do historyworkers:
Step01 - základ akce
step01Vloz, step01VlozFakturace, step01VlozFakturace2, step01VlozFakturace3, step01VlozBalickyMistastep01HistLib(dokončeno 30. 6.)
Step02/021 - prostory
step02vloz, step02HistLib, step02datum- Audit pro step02 i step021 (modul step021 zapisuje při novém UI prostorů)
Step03 - mobiliář / inventář
step03VlozAkceInventarDel
Step04 - personál
step04vlozAkcePersonalDel, AkcePersonalDetail
Step06 - kalkulace
step06Vloz, step06HistLib
Step07 - služby
step07vlozAkceSluzbyDel
Step08-10, 14 - technika a nabídky
- step08NabidkaVloz, step08NabidkaDel, NabidkuAktivuj
- step09Vloz, step09RozpisTechniky, step09ObsazeniTechnikyObchod
- step10NabidkaVyber, step10datum, step10NabidkaVlozCeny, step10VlozNovouTechniku
- step10VlozPoDnechHromadne, step10ZmenaTerminu, step10ZmenaMista2, step10ZmenaAkce
- step10NabidkaForm2, step10NabidkaKopiruj, TechnikaHistLib
- step14VlozPoDnech
Step20, 80, 94, 95 - ostatní položky akce
- step20vloz, step20newVloz, step20HistLib
- step80Vloz, step80HistLib
- step94vloz, step95vloz
Mazání akce a příloh (Fáze 5.1, 5.8)
AkceDel, AkceDelHistLib - smazání akce, zamítnutí s [ZAMÍTNUTO]akcedelpotvrd- potvrzení smazáníAkceMistnostiDelAkceFilesDel, AkceFilesKopirujPrilohyAkceDokumentyDelFilesDokumentUpload, FilesAkceUpload, DokumentKopiruj, FilesHistLibPrilohyUpdate!SkladKartaPohybyDelKontrolaZodpovedneOsobyZaAkci
DigiSign a smlouvy (Fáze 5.2)
DigiSignHistLib- audit podpisůDigiSignWebhook- webhook endpointstep75PodpisSync, step75PodpisSyncAjax, step75PodpisOdeslatstep75SmlouvaPdfLib, step75SmlouvaPdfSmlouvuVloz, SmlouvyDel, SmlouvyHistLibsmlouva01
Výsledek migrace 22. 6.
Reference testy na akci 3753 potvrdily správný zápis:
- Vložení personálu: 1 řádek CREATE/step0x/personal místo 3 řádků
- Oprava kalkulace step06: UPDATE s DataPred/DataPo pro každou změněnou položku
- Zamítnuté smazání: DENIED/AkceDel s Vysledek=d
- Prostory step02/step021: CREATE/DELETE s entitaTyp=misto
- Technika step08-14: UPDATE nabídky, slevy po dnech
- Smlouvy: PAGE_VIEW při náhledu/tisku
24. 6. 2026
Drobné úpravy
AutaKalendarNewLoad- načítání kalendáře autakce- úpravy hlavní stránky akcíUserFormPersonalni, UserInsertPersonalni - formulář personálního uživatelekarta- úpravy kartyron03user- modul majetku RON
25.-29. 6. 2026
V tomto období nebyly zaznamenány žádné úpravy souborů aplikace (kromě uživatelských dat a osobních složek mimo kód DOVIS - ISKASA).
30. 6. 2026 - dokončení auditu a rozšíření modulů
Historyworkers - Fáze 5 dokončení a Fáze 7 integrita
HistoryWorkersIntegritaLib- archivace starších než 7 let, monitoring INSERT/min, volitelný audit role zzHistoryWorkersArchive- dávkový přesun do historyworkers_archivehistoryworkers_integrita- SQL pro archivní tabulku a oprávněníAuditHistoryWorkers- kompletní technická dokumentace (Fáze 0-7 hotovo)
Historie akcí - export a zobrazení
AkceHistorieExport- export CSV historie akceAkceHistorieShow- finální úpravy filtrů a zobrazení
HistLib knihovny - zbývající moduly
step01HistLib- základ akce, opakování, zamítnutístep03HistLib- mobiliář (Fáze 4.6)step04HistLib- personál (Fáze 4.3)step07HistLib- služby (Fáze 4.6)step15HistLib- nákladové listy techniky (Fáze 5.3)step50HistLib- auta v akci (Fáze 5.4)step94HistLib- spotřeba energie (Fáze 4.10)AkceKopieHistLib- kopie akce
Multi vložení a hromadné operace (Fáze 5.5)
- step03vlozMulti, step03VlozJeden
- step04vlozMulti, step04VlozJeden, step04VlozVice
- step07vlozMulti, step07VlozJeden
- step15Vloz, step15Del
- step43NabidkaDel
Kopie akcí (Fáze 5.9)
akcekopiruj, akcekopie_vloz, akcekopie_lib, akcekopie_kontrola, akcekopie.js- Test opakování na akci 6512: 28 kopií 6568-6595, poté AkceDelKopie hard delete
Step75 - dokumenty, PDF, DigiSign hromadně
step75- integrace inline tiskustep75InlineTiskLib, step75InlineTiskReset- PDF šablony: objednavka01, priloha01, pouceni01, technika01, tisk
step75ObjednavkaPdfLib, step75ObjednavkaPdf - generování PDF objednávkyDigiSignEnvelopeLib, DigiSignEnvelopeViceLib, DigiSignWebhookLibstep75PodpisOdeslatHromadne- hromadné odeslání dokumentů k podpisustep75PodpisSeznam- vylepšený seznam podpisů
Auta, technika, ostatní
AkceAutaDel- mazání aut z akce (Fáze 5.4)step50vlozstep10Vloz, step14step94mereninakladovy01- tisk nákladového listu!StrUvodConfig, !StrKonec2
Test DigiSign v produkci (30. 6.)
V databázi zaznamenány úspěšné podpisy dokumentů akce 5702 přes DigiSign API (staging), včetně auditních PDF protokolů digisign_audit_14-16.
1. 7. 2026
Kalendář dovolených a směn - working_calendar2 (hlavní novinka dne)
Zavedena cache tabulka pro rychlé zobrazení kalendáře bez opakovaných JOINů:
working_calendar2- CREATE TABLE working_calendar2 (denormalizovaná cache z working_calendar)CalendarWorking2Bundle- sdílené funkce WC2_* pro synchronizaci cacheCalendarWorking2VlozFuncs- funkce vkládání do cacheCalendarWorking2Oprav- hromadný rebuild cache (admin zz)CalendarWorking2Bundle, CalendarWorkingDel, CalendarWorkingSpanAjaxCalendarWorking3- čtení z working_calendar2 pro mřížkový kalendářCalendarInsert, CalendarWrite, CalendarCheckExistingZzKalMultiDayPhaseB- vícedenní pruhy (fáze B) pro kalendářCalInsertRedirectUrl, CalendarTestDablcalendar2,calendar3,zzpkalendar- napojení na novou cacheUsersDelPersonalni- mazání personálního uživatele
Princip: zdroj pravdy zůstává working_calendar; working_calendar2 se synchronizuje při každé změně (vložení, schválení, smazání dovolené).
Navigace a uživatelské menu
StrNavigace- úpravy hlavní navigaceStrNavigaceVrch- horní lišta včetně ikony globálního hledání (lupa)StrNavigaceBok2- boční menuStrNavigaceUserDropdown- sdílené dropdown menu uživatele (desktop + mobil)StrNavigaceUserMobil- mobilní variantacustom- JS navigace
Databázové schéma
DOVIS - ISKASA, dovis7x - aktualizace hlavního schématuDB- konfigurace připojení
Technika - drobná oprava
step10datum2- úpravy data techniky
Hromadné nasazení červnových modulů (18:12)
Večer 1. 7. proběhla synchronizace/deploy většího balíku souborů vyvinutých v červnu (časové razítko 18:12 u 100+ souborů). Jedná se o finální nasazení těchto oblastí:
Dvoufaktorové ověření MFA/TOTP
- UserMfaTotpSetup, UserMfaTotpSetupProc, UserMfaSignin, UserMfaTotpDisable
- UserMfaLib, UserMfaTotpLib, UserMfaBackupCodes, UserMfaTrustedZrus
- UserMfaAdminReset, UserMfaNavod, UserMfaTotpSetupNavod
- OvereniMfa, PrihlaseniDokonceni, OvereniUzivatele, signin
- UserHesloLib, UserHesloZmena, UserHesloVynucZmenu, UserProfil
- ALTER_users_mfa_totp.sql
Step021 - nové UI prostorů
- Kompletní modul !step021/: step021, step021vloz, step021Api, step021.js, step021.css
- Mřížka místností: step021RoomsGrid, step021BusyLoad, step021ObsazenostJson
- Kalendář prostorů: step021MainCalendarRun, step021WriteCalendar, step021PrepCalendarRun
- Preference UI: ProstoryUIPref, ProstoryUIPrefLib, ProstoryUIToggle
Globální hledání
- hledej, !hledej/HledejVypis, HledejConfig, HledejVypisModuly
- HledejHistoryLib, HledejHistorieStat
- SQLHledejLib
Nástěnka - lazy loading a grafy
- nastenka a kompletní sada !nastenka/: nastenka_data, nastenka_boxes_ajax, nastenka_defer_*
- nastenka_souhrn, nastenka_mapa, nastenka_premier, nastenka_help
- nastenka_layout.js, nastenka_zoom.js, nastenka_styles
Kontakty - ARES Insight a rozšíření
- KontaktyFirmaInsight, KontaktyFirmaInsightLib, KontaktyFirmaInsightApi
- KontaktyAresFetchExtended, KontaktyViesFetch, KontaktyHmrcFetch
- KontaktyInfoNew, KontaktyInfoDetailTab, KontaktyInfo
Opakování akcí
- akceopakuj, !step01/step01opakuj, step01OpakujAjax, step01OpakujRun
- OpakujAkceLib, step01OpakujVloz
- AkceDelKopie, AkceKopiruj2
Stránkování, komprese, dokumentace
- Strankovani, StrankovaniLib, StrankovaniParametry
- compress, CompressRuntimeSync
- navod-akce.html, navod-akce-uzivatelsky
- AUDIT_PRISTUP_STRANEK
- theme, style
Přehled databázových změn v období
| SQL soubor | Účel | Datum |
historyworkers_integrita |
Archivace historyworkers, oprávnění INSERT | 30. 6. |
working_calendar2 |
Cache tabulka kalendáře dovolených | 1. 7. |
DOVIS - ISKASA, dovis7x |
Aktualizace hlavního schématu | 1. 7. |
ALTER_users_mfa_totp |
Sloupce MFA v tabulce users | 1. 7. (nasazení) |
Nové a upravené knihovny auditu (souhrn)
| Knihovna | Modul | Fáze |
| HistoryWorkersLib | všechny | 2-3 |
| step01HistLib | základ akce | 4.2 |
| step02HistLib | prostory classic | 4.4 |
| step03HistLib | mobiliář | 4.6 |
| step04HistLib | personál | 4.3 |
| step06HistLib | kalkulace | 4.5 |
| step07HistLib | služby | 4.6 |
| step15HistLib | nákladové listy | 5.3 |
| step50HistLib | auta | 5.4 |
| step80HistLib | školní pomůcky | 4.10 |
| step94HistLib | spotřeba energie | 4.10 |
| AkceDelHistLib | mazání akce | 5.1 |
| AkceKopieHistLib | kopie akce | 5.9 |
| DigiSignHistLib | digitální podpis | 5.2 |
| FilesHistLib | soubory a dokumenty | 5.8 |
| SmlouvyHistLib | smlouvy | 5.2 |
| TechnikaHistLib | technika | 4.7 |
| HistoryWorkersIntegritaLib | archivace, monitoring | 7 |
Aktualizovaná dokumentace
AuditHistoryWorkers- kompletní dokumentace auditu (Fáze 0-7, testy aa=3753, aa=6512)step75DigiSignNavod- návod DigiSignAUDIT_PRISTUP_STRANEK- audit bezpečnosti přístupu ke stránkám
Známé nedokončené / provozní úkoly k 1. 7. 2026
- Nasadit SQL oprávnění pro historyworkers na produkční DB
- Nastavit pravidelnou archivaci (HistoryWorkersArchive)
- Volitelně zapnout audit role admin=zz (Application HW_LogAdminZz)
- Step021 - audit při ukládání z nového UI (zapisuje přes step02 handler, ověřit kompletní pokrytí)
- Mimo rozsah auditu: Colosseum, step99 úkoly, pasivní prohlížení (skryté ve forenzním pohledu)
2026-06
-
ISKASA - DOVIS – Přehled změn a novinek Období: 14. 6. 2026 – 21. 6. 2026
- V tomto týdnu proběhlo několik větších vývojových okruhů:
- AI asistent a rozšíření kontaktů (15. 6.) – osobní API klíče Gemini/OpenAI, AI analýza kontaktů, ověření DPH, KPI boxy na nástěnce
- Modul aut – fotodokumentace a O2 Car Control (16. 6.) – fotky vozidel, tisk karty řidiče, integrace O2 API
- Nákladové listy techniky (17. 6.) – kompletní workflow v step15
- Bezpečnost – MFA (2FA) a audit přístupu (19. 6.) – Authenticator TOTP, vylepšení step021
- DigiSign – digitální podpis dokumentů (19.–20. 6.) – nová integrace, webhooky, modul smluv, PDF generování
- Expozice – návody a skenování (21. 6.) – uživatelské návody pro prohlídky exponátů
14. 6. 2026
Kontakt v detailu akce
Soubor !AkceInfoKontakt – v detailu akce se zobrazuje blok Kontakt s odkazem na kartu kontaktu v modulu Kontakty (kontakty?action=view&dd=…). Zobrazují se název subjektu, zastoupení, adresa sídla, IČO, DIČ a další údaje z tabulky dovkontakty.
Styly
Úpravy v css.
15. 6. 2026
Modul AI asistenta
Nový modul pro práci s umělou inteligencí přímo v ISKASA - DOVIS:
ai,ai-save– hlavní rozhraní a ukládání nastavení!AiNastaveni– průvodce nastavením osobního API klíče (Google Gemini nebo OpenAI/ChatGPT)!AiGemini,!AiKontext,!AiAjax– komunikace s API!AiKontaktAnalyza– AI analýza kontaktu!AiNastaveniOsobni,!AiConfigDb– osobní a databázová konfigurace- SQL skripty:
!configgemini,configgemini-alter-provider
Každý uživatel si může nastavit vlastní API klíč; doporučen je bezplatný tier Google Gemini.
Rozšíření modulu Kontakty
- AI panel firmy –
KontaktyFirmaAiPanel,KontaktyFirmaAiKontext,KontaktyAiAnalyzaLib - Obchodní případy –
KontaktyObchodPanel,KontaktyObchodLib,KontaktyObchodApi,koapi - Ověření DPH –
KontaktyDPHCheck(SOAP volání na MF ČR), asynchronní variantaKontaktyDPHCheckAsync, záložkaKontaktyInfoDphTab– štítek „Spolehlivý / Nespolehlivý plátce DPH“ - Timeline kontaktu –
KontaktyInfoTimeline - Premier platby –
KontaktyPremierPlatbyLib - Nový vzhled detailu –
KontaktyInfoNew,KontaktyInfoNewStyles, záložky osob a obchodních případů - SQL:
!dovkontaktyanalyza
KPI statistiky na nástěnce
Nové soubory !nastenka_grafstats, nastenka_grafstats.js, nastenka_grafstats_init – načítání KPI z tabulky grafstats01_{KodU} s automatickým přepočtem při změně filtrů a nastavitelným intervalem obnovy (10–60 min).
Grafy a dokumenty
!graf06,graf06_akce_soucty– úpravy grafůDokumentSeznam3– seznam dokumentůUserResetHeslo,Mail/SMTP2– drobné úpravy
16. 6. 2026
Fotodokumentace vozidel (modul Auta)
Kompletní nová funkcionalita pro evidenci fotek u rezervací aut:
!AutaFotoUpload– nahrání fotky!AutaFotoSeznam,AutaFotoSeznamLib– galerie fotek!AutaFotoForm,AutaFotoDel– formulář a mazání- Integrace do
step51– fotodokumentace u obsazení auta (step51?car=) step51tisk,!step51TiskKarta– tisk karty řidiče- SQL tabulky:
rentautafoto,rentautafoto_alter - Dva typy fotek: katalogové (u číselníku aut) a předání/vrácení (u konkrétní rezervace)
O2 Car Control – konfigurace API
configo2auta,!ConfigFormO2Auta– administrační nastavení komunikace s O2 Car Control!o2-carcontrol-navod-admin– návod pro administrátora!o2-carcontrol-developer-api– technický popis API- SQL:
!dovauta_o2_carcontrol
Optimalizace obrázků
- Přidán nástroj
!jpegoptim.exepro kompresi JPEG - Úpravy
JPEG480,JPEG480– zmenšené náhledy v e-mailech
Další úpravy 16. 6.
!AkcePersonalDetail– detail personálu u akce!PersonalSeznam,personal!navod-akce-uzivatelsky– doplněna kapitola o fotodokumentaci a tisku karty řidiče (aktualizace meta dateModified: 2026-06-16)
17. 6. 2026
Nákladové listy techniky (step15)
Rozsáhlá implementace workflow nákladových listů u akcí:
| Soubor | Účel |
!step15NakladovyList |
Hlavní seznam nákladových listů, seskupení dle nabídky, součty vah |
step15NakladovyListPridat |
Přidání položky |
step15NakladovyListZobrazeni |
Detail zobrazení |
step15NakladovyListOdkazy |
Navigační odkazy |
step15NabidkaVyber |
Výběr nabídky pro nákladový list |
step15NabidkaTechniky |
Technika v nabídce |
step15AkceTechnika |
Technika akce |
step15SkladTechnika |
Skladová technika |
!nakladovy01 |
Tisk nákladového listu |
!NakladovySoucet |
Součty |
!AkceMenuTechnika2 |
Menu techniky v akci |
Kalendář a step04
CalendarWorking,calendar2-prehled– úpravy kalendáře!step04vlozMulti– hromadné vkládání!step10TechnikaTest– test techniky!!StrError– úpravy chybových hlášek
19. 6. 2026
Dvoufaktorové ověření – MFA / TOTP (Authenticator)
Kompletní implementace 2FA pomocí TOTP (Google Authenticator apod.):
UserMfaTotpSetupProc– aktivace po ověření kóduUserMfaSignin– přihlašovací obrazovka s MFA kódem!OvereniMfa– ověření kódu při přihlášení (včetně záložních kódů, důvěryhodného zařízení)UserMfaTotpDisable,UserMfaAdminReset– vypnutí / admin resetUserHesloVynucZmenu– MFA má přednost před vynucenou změnou heslaUserList2– ikona štítu u uživatelů s aktivním 2FA- SQL:
ALTER_users_mfa_totp - Globální přepínač:
Application("MfaTotp")
Audit přístupu ke stránkám
Nový dokument AUDIT_PRISTUP_STRANEK – systematický přehled ochrany stránek (SESSION KodU, admin role), identifikace rizikových endpointů bez kontroly přihlášení (!StrUvod3, uploady, AI endpointy, kopírování akcí).
Step021 – obsazenost prostor (busy load)
!step021BusyLoad– načítání obsazených místností v budově, detekce kolizí termínů- Oprava SQL: přímé použití
YYYY-MM-DD HH:MM:SSbezcDateMySQL()(prevence Type mismatch) - Úpravy
step021Api,step021,step021,step021Common
DigiSign – začátek integrace
configdigisign-data,configdigisign_alter_api_secretDigiSignWebhookKoduSelect– výběr webhook kódu
Další úpravy 19. 6.
!Strankovani,StrankovaniParametry– vylepšené stránkování!ProstoryUIPref– preference UI prostor!nastenka_boxes_ajax,nastenka_data,nastenka_defer_stub!HledejVypisModuly,!SQL/SQLHledejLib– vyhledávánícompress,!DATA/compress_config.php– komprese assetůweb– konfigurace IISnavod-akce-uzivatelsky– aktualizace uživatelského návodu
20. 6. 2026
DigiSign – kompletní integrace digitálního podpisu
Hlavní novinka období – propojení ISKASA - DOVIS se službou DigiSign:
Knihovny a API
DigiSignApiLib– REST volání (token, obálky, příjemci)DigiSignConfigLib– načtení konfigurace z DBDigiSignEnvelopeLib– správa obálek (envelopes)DigiSignWebhookLib– zpracování webhook notifikací- Jeden společný API klíč firmy – obchodníci nepotřebují vlastní účet DigiSign
Webhook endpoint
digisignwebhook/DigiSignWebhook– příjem POST notifikací od DigiSign (změna stavu podpisu)DigiSignWebhookNastaveni– registrace a správa webhookůDigiSignWebhookTestAjax,DigiSignRegenWebhookAjax– testováníDigiSignWebhookSyncAjax– synchronizace stavu- Logování: tabulka
digisign_webhook_log
Konfigurace DigiSign
configdigisign,ConfigFormDigiSign- SQL:
configdigisign,digisign_tables,digisign_podpis,digisign_audit_columns - Položka v menu administrátora (SQL:
configdigisign_menu_path)
Integrace do step75 (dokumenty akce)
!step75PodpisSeznam– seznam dokumentů s tlačítky „Odeslat k podpisu“, synchronizace stavu, auditní stopastep75PodpisOdeslat– odeslání dokumentu k podpisu!step75PodpisSync,step75PodpisSyncAjax– ruční / automatická synchronizace- Stavy: odesláno, částečně podepsáno, podepsáno, odmítnuto
- Po dokončení: uložení auditní stopy (PDF protokol) k akci
- Podpora více podepisujících v jedné obálce
Modul Smlouvy
smlouvy– hlavní stránka!SmlouvySeznam– seznam smluv u akce (číslo, vložil, datum, tisk, smazání/obnovení)!SmlouvuVloz,SmlouvyDel,SmlouvyTest!AkceSmlouvyTest– test v kontextu akce- Tabulka:
dovakcesmlouvy
Generování PDF smlouvy
!step75SmlouvaPdfLib– HTML smlouvy → PDF přes wkhtmltopdf → uložení dodovakcedokumenty!step75SmlouvaPdf– spouštěcí stránka- Workflow: smlouva → vygenerovat PDF → odeslat k podpisu přes DigiSign
Veřejný přehled firmy (ARES Insight)
!KontaktyFirmaInsight– UI panel na detailu kontaktuKontaktyFirmaInsightLib,KontaktyFirmaInsightApiKontaktyAresFetchExtended– rozšířené načtení z ARESfiapi– wrapper API endpoint (zachování IIS session)- Asynchronní načítání (fetch), cache v
dovkontakty_insight
Další úpravy 20. 6.
GLOBAL– globální nastavení aplikacedovis7x– aktualizace DB schématu!step021vloz,step021,step021Common!step15NakladovyList– další úpravy!SkladKartaPohybySeznam2– pohyby skladové kartykalendar– styly kalendáře!StrUvodConfig
21. 6. 2026
Návody pro modul Expozice (/exp/)
Kompletní sada uživatelských návodů pro prohlídky exponátů:
| Soubor | Obsah |
exp-navod-full |
Celý návod – výběr expozice, exponátu, závady, vytvoření úkolu na opravu |
exp-navod-krok1 … krok5 |
Postup krok za krokem |
exp-navod-sken-tip |
Tip ke skenování čárového kódu |
navod-skenovani |
Podrobný návod ke skenování |
navod |
Nastavení skeneru |
navod, navod-skenovani |
Redirecty z kořene do /exp/ |
exp-tablet, exp-styles |
Styly pro tabletové rozhraní |
exp-back-home |
Navigace zpět |
Klíčová informace: zaškrtnutí „Vadný exponát“ automaticky vytvoří úkol ve skupině „Oprava exponátů“ – bez zaškrtnutí technici úkol nedostanou.
Úpravy exp modulu
default,exp/form,exp/uploadTaskSeznam,exp/file,exp/tiskForumDetail
DigiSign – návod a testy
!step75DigiSignNavod– podrobný návod pro obchodníky (výhody DigiSign, typický postup, příklad smlouvy)!AkceDigisignPodpisTest– testovací stránka podpisu v akci!AkceMenu2– úpravy menu akce
Projekty a ostatní
ProjektySeznam10step75– integrace podpisů!akce– aktualizace dat
Přehled databázových změn
| SQL soubor | Účel |
!!rentautafoto |
Tabulka fotek vozidel |
!configgemini |
Konfigurace AI klíčů |
!dovkontaktyanalyza |
AI analýza kontaktů |
!dovauta_o2_carcontrol |
O2 Car Control nastavení |
ALTER_users_mfa_totp |
Sloupce MFA v tabulce users |
configdigisign |
Konfigurace DigiSign |
digisign_tables |
Tabulky DigiSign |
digisign_podpis |
Evidence podpisů u akcí |
digisign_audit_columns |
Auditní sloupce |
digisign_webhook_log |
Log webhooků |
DOVIS, dovis7x |
Aktualizace hlavního schématu |
Aktualizovaná dokumentace
!navod-akce-uzivatelsky.html– fotodokumentace aut, tisk karty řidiče, step51!navod-akce.html!o2-carcontrol-navod-admin– nový návod O2 Car Control!o2-carcontrol-developer-api– technická dokumentace API!step75DigiSignNavod– návod DigiSign pro obchodníkyAUDIT_PRISTUP_STRANEK– audit bezpečnosti přístupu ke stránkám- Expozice – kompletní sada návodů
- ISKASA - DOVIS — přehled změn v aplikaci za Období: 9. 6. 2026 – 13. 6. 2026 | Hlavní oblast: globální vyhledávání (
hledej)
1. Nová funkce — globální vyhledávání
- NOVÉ Nová stránka hledej — jedno místo pro hledání napříč celou aplikací.
- Formulář s parametrem
q(minimálně 2 znaky), tlačítko Hledat a skrytý parametrhledat=1pro zápis do historie. - Výsledky v barevných boxech (sekcích), max. 20 záznamů v každé sekci, odkazy na detail.
- Legenda sekcí s počty; klik na štítek posune stránku na daný box.
- Plovoucí tlačítko šipky nahoru — okamžitý návrat k formuláři.
- Stručný návod přímo pod formulářem (režimy, příklady).
Prohledávané oblasti — jádro ISKASA - DOVIS
| Sekce | Co se hledá | Odkaz |
|---|---|---|
| Akce | kód, kopie, ID Premier/Colosseum/Raynet, název, popis, poznámka, objednávka | akce |
| Kontakty | název, IČO, DIČ, e-mail, telefon, adresa, datová schránka | kontakty |
| Kontaktní osoby | jméno, e-mail, telefon, firma | kontakty |
| Technika | kód, zkratka, popis | technika |
| Personál | kód, jméno, e-mail, telefon, IČO | personal |
| Prostory | kód, adresa, umístění | — |
| Mobiliář | kód, zkratka, popis | inventar |
| Dokumenty akcí | název přílohy, soubor, popis | akce (přílohy) |
| Poznámky | název, text (vlastní + sdílené) | notes |
| Uživatelé | jméno, login, e-mail (jen admin) | users |
Prohledávané oblasti — moduly (dle nastavení instalace)
| Sekce | Modul | Poznámka |
|---|---|---|
| WebCollab — úkoly, soubory, expozice, nákupní seznam | WebCollab | prefix tabulek z GLOBAL.asa |
| Majetek | majetek | ve výchozí konfiguraci vypnuto |
| Objednávky / položky nákupů | nakupy | žádanky |
| Dokumenty ke schválení, kategorie | Dovio | donio |
| Vydané / přijaté faktury | Premier | ve výchozí konfiguraci vypnuto |
2. Navigace — ikona hledání
- UI V horní šedé liště (před Moje tlačítka) je modrá ikona lupy (20 px, bez rámečku a bez textu).
- Ikona je první vlevo v řádku; klik otevře stránku hledej.
- Styly zajištěny přímo v navigaci + doplnění v
custom(třídanav-hledej-link). - Jen pro přihlášené uživatele. Starou zástupnou lupu z vlastních tlačítek lze smazat.
3. Režimy hledání
- NOVÉ Uživatel volí, jak se spojují více slov — srozumitelné popisy bez technických termínů.
| Režim | Parametr | Význam | Příklad |
|---|---|---|---|
| Stačí jedno ze slov | or |
Výchozí režim | „Praha Brno“ najde Prahu nebo Brno |
| Všechna slova najednou | and |
Každé slovo zvlášť | „Praha koncert“ musí obsahovat obojí |
| Přesná fráze | phrase |
Celý text včetně mezer | „Velká síň“ jako jeden výraz |
4. Diakritika a HTML entity
- NOVÉ Hledání ignoruje háčky a čárky — postreh najde postřeh a naopak (ve všech sekcích).
- Podpora textů uložených jako HTML entity v databázi:
ř,ř,ř,atd. - Při výpisu se entity dekódují na čitelné znaky (pojmenované i numerické entity z WebCollab).
- Placeholder formuláře: „Hledej slova, čísla, IČO… (i bez diakritiky)“.
5. Historie vyhledávání (historyworkers)
- NOVÉ Každé vyhledávání se archivuje podle přihlášeného uživatele do tabulky
historyworkers. - Globální hledání: popis
Vyhledávání: globální: text [režim], vPopisAkcepočet nálezůnalezeno=N. - Detekce i na ostatních stránkách: akce, kontakty, technika, personal, WebCollab, nákupy, Dovio…
- Zápis jen při skutečném odeslání formuláře (
hledat=1), ne při obnovení stránky (F5). - Ochrana proti duplicitám: 60 s debounce, deduplikace v statistikách.
- Oprava zápisu sloupce
najemcev historii práce.
6. Statistiky hledání
- NOVÉ Panel Statistiky hledání vedle formuláře (ne pod ním).
- Nejhledanější výrazy — vaše dotazy za posledních 90 dní; klik zopakuje hledání.
- Vaše poslední hledání — čas, režim, zkrácený text.
- Počet = kolikrát jste odeslali formulář, ne kolik SQL řádků se našlo.
- Filtr jen na vaše záznamy (
KodU), ne celá aplikace.
7. Konfigurace sekcí (pro programátora)
- NOVÉ Soubor HledejConfig — zapnutí/vypnutí jednotlivých boxů (
HledejBox* = 1/0). - Při vypnutí sekce se neprovede ani SQL dotaz (úspora výkonu).
- Výchozí zapnuto: akce, kontakty, technika, WebCollab, žádanky, Dovio…
- Výchozí vypnuto: majetek, Premier (vydané i přijaté faktury).
8. Vzhled výsledků
- UI Barevné boxy podle oblasti (akce modrá, kontakty zelená, WebCollab zelenomodrá, nákupy červená…).
- Prázdné sekce se nezobrazují.
- Počet nálezů v hlavičce boxu i v legendě.
- Výpis na jeden řádek:
DD.MM.RRRR - HH:MM Název Popis… - Mřížka boxů vedle sebe, kompaktní výška, podpora dark módu.
- Odkaz „Více v … →“ na specializované seznamy s předvyplněným filtrem.
9. Opravy chyb
| Problém | Řešení |
|---|---|
OPRAVA Chyba SQL u dokumentů akcí (dovakceprilohy.kod v ORDER BY) |
Opraveno řazení v sekci Dokumenty |
OPRAVA Pád HledejSekceInc (nekonečná rekurze) |
Opraveno počítadlo sekcí |
OPRAVA WebCollab úkoly se nezobrazovaly (podúkoly, filtr projektu, najemce=0) |
Hledání i v podúkolech, LEFT JOIN, parametr task= v odkazu |
| OPRAVA Moduly se vůbec nenačítaly (include uvnitř VBScript bloku) | Include přesunut do HTML části |
OPRAVA VBScript syntaxe v modulovém výpisu (Funkce()(index)) |
Přepsáno na proměnnou pole |
OPRAVA Chyba kompilace HledejHistoryLib na stránce akce |
Include přesunut do úvodního souboru (mimo IF bloky) |
OPRAVA Rozbitý text výsledků (ě, í) |
Vlastní dekodér HTML entit ve výpisu |
| OPRAVA Statistiky ukazovaly 10× místo 1× | Oprava CLng(pocet & "0") → bezpečné HledejStatNum() / HledejStatRsPocet() |
| OPRAVA Nafouknuté počty při F5 / obnovení stránky | Zápis jen při hledat=1, deduplikace v DB i Application cache |
| OPRAVA Chyba kompilace komentáře v legendě | Opravena VBScript syntaxe komentářů |
| OPRAVA Join WebCollab shop, sloupce Premier, logika Dovio | Opraveny SQL dotazy v modulovém výpisu |
10. Dokumentace
- NÁVOD Nová kapitola 2c. Globální vyhledávání v
navod-akce-uzivatelsky(#globalni-hledej). - Podsekce: kde je ikona, jak hledat, režimy, boxy, statistiky, přehled sekcí, oprávnění, rozdíl oproti lokálnímu hledání.
- Nová podsekce Diakritika a HTML entity (
#globalni-hledej-diakritika) s příklady a tabulkami. - Aktualizován obsah (TOC), FAQ, přehled funkcí, zmínka v kap. 2a (horní menu), tip u Seznamu akcí.
11. Technická dokumentace v kódu
- Podrobné komentáře v souborech globálního hledání: účel, řetězec include, parametry, průběh zpracování, mapování sekcí, SQL logika.
12. Souhrn dotčených částí aplikace
| Oblast | Typ změny |
|---|---|
| hledej (nová stránka) | kompletní implementace |
| Horní navigace | ikona lupy |
| Historie práce uživatele | archivace všech vyhledávání |
| akce, kontakty, technika, personal, WebCollab, nákupy, Dovio… | detekce vyhledávání v historii |
| custom | styly ikony a boxů |
| navod-akce-uzivatelsky | kapitola 2c + diakritika |
- ISKASA - DOVIS — změny za posledních 5 dní (4.–9. 6. 2026)
- Období: 4. 6. 2026 – 9. 6. 2026
- Zdroj: datum poslední úpravy souborů + záznamy vývojových úprav. Nezahrnují se soubory .asp ani běžná provozní data (kalendářní .ics, PDF, XLS v !files).
- Zdroj: datum poslední úpravy souborů + záznamy vývojových úprav. Nezahrnují se soubory .asp ani běžná provozní data (kalendářní .ics, PDF, XLS v !files).
- 4. června 2026
- Aktualizace exportu schématu databáze (referenční SQL dump pro vývoj).
- Aktualizace exportu schématu databáze (referenční SQL dump pro vývoj).
- 5. června 2026
- dovkontakty_insight
- Nový SQL skript pro tabulku cache veřejného přehledu firmy z ARES.
- Sloupce: kod (PK, vazba na dovkontakty), najemce, ico, json_data, aktualizace.
- Účel: ukládání JSON odpovědi ARES API, aby se panel „Veřejný přehled firmy“ nemusel načítat při každém zobrazení.
- !DOV/dph-test-get
- Testovací HTML stránka pro ověření načítání údajů DPH (vývoj / ladění integrace).
- Testovací HTML stránka pro ověření načítání údajů DPH (vývoj / ladění integrace).
- !DOV/dph-test-post
- Testovací HTML pro POST požadavky na DPH službu (prázdný nebo minimální soubor pro test endpointu).
- Testovací HTML pro POST požadavky na DPH službu (prázdný nebo minimální soubor pro test endpointu).
- !DOV/dph-test-cookies
- Pomocný soubor s cookies pro testování DPH API mimo prohlížeč.
- Pomocný soubor s cookies pro testování DPH API mimo prohlížeč.
- 6. června 2026
- !ai/ai-wizard
- JavaScript pro AI průvodce na stránce nastavení API.
- Obsluha panelu kroků, volání ai-api(krok, akce), zobrazení návrhů a stavových hlášek.
- Pomocné funkce pro vyhledávání kontaktů, escapování HTML, práci s formulářovými poli průvodce.
- !ai/ai-wizard
- Styly pro AI průvodce — layout panelu, stavové boxy, předformátovaný text odpovědí.
- Styly pro AI průvodce — layout panelu, stavové boxy, předformátovaný text odpovědí.
- !ai/dovakce_ai_log
- SQL definice tabulky pro logování AI požadavků / odpovědí u akcí.
- 7. června 2026
- !!MySQL/AkceMistnostiDel-indexy
- Nový migrační skript — doplnění indexů pro výkon při práci s prostory.
- Cílové tabulky: dovakcemistadatum, dovakcemista, související dotazy ze step0XX, AkceMistnostiDel, opakování akcí.
- Indexy např. idx_amd_kodmista_kodmistnosti, idx_amd_kodmista_datum, idx_amd_kodakce_kodmista.
- Určeno pro jednorázové spuštění na produkční DB (mimo špičku).
- !step021/step021
- Oprava synchronizace kalendáře dovakcekalendar při AJAX ukládání prostor.
- Dříve se kalendář přegeneroval jen při klasickém POST, ne při autosave z JavaScriptu.
- Doplněna podpora volání synchronizace po vložení, úpravě i smazání prostoru.
- Souvisí s opravou, kdy se po editaci na step021 nezapisovaly záznamy do dovakcekalendar.
- !step021/step021
- Úpravy stylů obrazovky step021 (prostory v akci) — ladění v souvislosti s novým AJAX rozhraním.
- Úpravy stylů obrazovky step021 (prostory v akci) — ladění v souvislosti s novým AJAX rozhraním.
- !!nastaveni/style
- Úpravy základního vzhledu aplikace (globální styly Inspinia / menu / formuláře).
- Souvisí s rozšířením UI — boční menu, formulářové popisky, profil uživatele.
- AUDIT_PRISTUP_STRANEK
- Dokumentační audit přístupu ke klíčovým stránkám.
- Popis architektury: !StrUvodXX, !StrUvodXX, !StrUvodXX, role SESSION admin/admin2.
- Seznam rizikových míst bez centrální kontroly přihlášení — pouze k revizi, bez úprav kódu.
- Datum dokumentu uvnitř souboru: 1. 6. 2026.
- 8. června 2026
- users/ALTER_users_mfa_totp
- Migrace databáze pro dvoufázové ověření (TOTP / Google / Microsoft Authenticator).
- Rozšíření tabulky users: mfa_totp_enabled, mfa_totp_secret, mfa_totp_verified_at, mfa_totp_enforced, mfa_totp_label.
- Nové tabulky: mfa_backup_codes (záložní kódy), mfa_trusted_devices (důvěra zařízení 30 dní), mfa_pending_login (dočasný stav po 1. faktoru).
- Index idx_users_mfa_totp_enabled.
- MySQL
- Velký export kompletní databáze (záloha / referenční schéma).
- Velký export kompletní databáze (záloha / referenční schéma).
- 9. června 2026
- css/custom
- Boční menu — sbalení na ikony
- Nová třída body.sidebar-collapsed — menu se zúží na 52 px, obsah stránky se rozšíří.
- Přepínač u loga (tlačítko se šipkami « / »), logo se zkrátí na 2 písmena (např. DOVIS → DO).
- Stav se ukládá do localStorage (klíč dovis-sidebar-collapsed).
- Při najetí myší na ikonu: plovoucí popisek položky.
- Položky s podmenu (KPI, Nastavení…): flyout s hlavičkou a seznamem podpoložek.
- Třída has-submenu (doplňuje JavaScript) pro správné chování vnořeného menu.
- Podpora barevných motivů (theme-red, theme-green, theme-blue, theme-pink, theme-brown, theme-dark) i ve sbaleném režimu.
- Styly pro víceúrovňové podmenu (nav-second-level, nav-third-level, ikony nav_icon2/3/4).
- css/custom
- Období: 4. 6. 2026 – 9. 6. 2026
- Boční menu — rozbalené podmenu (9. 6., odpoledne)
- Oprava tučného písma podpoložek v rozbaleném menu.
- U odkazů v .nav-second-level a .nav-third-level nastaveno font-weight: 400 (běžné písmo).
- Odstraněno zbytečné font-weight: 600 u položek s ikonou nav_icon2.
- Hlavní položky menu zůstávají mírně tučnější (font-weight 500 ze style).
-
css/theme
- Rozsáhlé úpravy barevných motivů aplikace (tmavý režim a barevné varianty red/green/blue/pink/brown).
- Tmavý režim: kalendář default— všechny třídy .zz-kal-* (filtry, buňky dnů, víkendy, svátky, čipy akcí, legenda, zoom).
- Tmavý režim: čitelné popisky formulářů (label.control-label) na step09, step40, nabídkách.
- Tmavý režim: karta profilu uživatele (.profile-bottom, .profile-text).
- Tmavý režim: tlačítka .btn-default, odkazy, tabulky, přihlašovací obrazovka.
- Styly podmenu bočního panelu v barevných motivech (pozadí var(--d-accent-pale)).
- Pravidla pro reset hesla (reset-heslo-* třídy na přihlašovací stránce).
- js/custom
- Inicializace metisMenu pro boční menu.
- Označení položek s podmenu třídou has-submenu, doplnění title z .nav-label.
- Logika sbalení/rozbalení menu: setCollapsed(), initFromStorage(), updateToggleUi().
- Oprava konfliktu kliknutí — přepínač #sidebar-toggle používá delegovaný handler, aby se nesrazil s odkazy href="#".
- Při sbaleném menu: klik na rozbalovací položku menu znovu rozbalí panel.
- Synchronizace šířky flyout podmenu při mouseenter u has-submenu.
- Responzivní chování: pod 768 px se sbalený režim vypíná.
-
users/UserMfaNavod
- Nový veřejný statický návod k dvoufázovému ověření (2FA).
- Převod z dřívější chráněné ASP stránky na HTML dostupné bez přihlášení.
- Obsah: Google / Microsoft Authenticator, záložní kódy, důvěra zařízení 30 dní, tisk do PDF.
- Odkaz zpět na přihlášení, meta popis pro vyhledávače.
-
!akce/navod-akce-uzivatelsky
- Sekce Kontakty — ARES
- Nový odkaz v obsahu: Veřejný přehled z ARES (#menu-kontakty-ares).
- Popis panelu z KontaktyFirmaInsight: právní forma, NACE, sídlo, VR, DPH, registry ROS / RES / VR / RZP / RED / IR.
- Tlačítko Obnovit, asynchronní načítání, diagnostika při chybě.
- Sekce Superadmin — Střediska
- Rozšířený popis strediska/ dovstrediska pro KPI.
- Nová podkapitola #superadmin-strediska: pole formuláře, KPI osoby (ZodpovednaOsoba), vazba na akce a grafy.
- Sekce Superadmin — Budovy
- Podrobný popis budovy — kalendáře prostor, zkratky, barvy, filtr ?bud= v kalendáři.
- Podrobný popis budovy — kalendáře prostor, zkratky, barvy, filtr ?bud= v kalendáři.
- !!MySQL/dovis7x.
- Aktualizace exportu schématu databáze (novější verze než dovis6x).
- Použito při analýze tabulek (dovtechnika, dovakcetechnikadatum) pro opravy GROUP BY.
- GLOBAL
- Soubor aplikačních proměnných IIS — datum poslední úpravy 9. 6. 2026.
- Obsahuje konfiguraci připojení k MySQL, názvy modulů (DOVIS, Webcollab, Majetek, Donio, Premier, Nakupy, Denio), výchozí session hodnoty.
- Konkrétní rozdíl oproti předchozí verzi bez git historie nelze spolehlivě určit.
Souhrn podle oblasti
| Oblast | Soubory | Hlavní přínos |
|---|---|---|
| UI / menu | css/custom, js/custom, !!nastaveni/style | Sbalitelné boční menu, oprava podmenu, flyout podpoložky |
| Vzhled / motivy | css/theme | Tmavý režim, barevné motivy, kalendář, formuláře, profil |
| Bezpečnost | users/ALTER_users_mfa_totp, users/UserMfaNavod | 2FA TOTP migrace DB, veřejný návod |
| Prostory / kalendář | !step021/step021, !!MySQL/AkceMistnostiDel-indexy | Sync dovakcekalendar při AJAX, DB indexy |
| Kontakty / ARES | !DOV/dovkontakty_insight, !akce/navod-akce-uzivatelsky | Cache ARES, dokumentace |
| AI modul | !ai/ai-wizard, ai-wizard, dovakce_ai_log | Průvodce nastavením AI API |
| Databáze | !!MySQL/* | Exporty schémat a migrační skripty |
| Dokumentace | AUDIT_PRISTUP_STRANEK, navod-akce-uzivatelsky | Audit přístupů, návod - práce s akcí |
- ISKASA - DOVIS - Období: 1. května 2026 – 3. června 2026
- Květen 2026
- 11.–23. května — Colosseum (provoz)
- !colosseum/logs/colosseum_import_*.log — denní záznamy automatického importu z Colosseum (provozní logy, ne vývojový kód).
- !colosseum/logs/colosseum_import_*.log — denní záznamy automatického importu z Colosseum (provozní logy, ne vývojový kód).
- 21. května 2026
- !nastenka/nastenka_premier_pie_link
- Propojení koláčového grafu PREMIER s tabulkou #nastPremierTable při najetí myší na nástěnce manažera.
- !nastenka/nastenka_help
- Klientská logika nápovědy widgetů na nástěnce (otevření/zavření help panelů).
- Klientská logika nápovědy widgetů na nástěnce (otevření/zavření help panelů).
- !nastenka/nastenka_premier_pie_link
- 25. května 2026
- !colosseum/config
- Konfigurace PHP modulu synchronizace s Colosseum (připojení, cesty, parametry importu).
- Konfigurace PHP modulu synchronizace s Colosseum (připojení, cesty, parametry importu).
- !colosseum/config
- 27. května 2026 — Nástěnka manažera (modul !nastenka)
- !nastenka/NASTENKA_PREHLED
- Technická dokumentace nástěnky: pořadí include, KPI cache (grafstats), živé SQL dotazy, widgety, filtry GET, zoom 80–130 %.
- Popis widgetů: dash, funnel, cashflow, fakt, nakupy, donio, vyvoj, uziv, kpi, premier, colosseum, mapa.
- !nastenka/nastenka_layout
- Přesouvání a skrývání widgetů na #nastLayoutBoard.
- Mřížka 12 sloupců, změna šířky boxu 6 ↔ 12, ukládání rozložení do cookie a na server.
- Výchozí pořadí a šířky pro všechny widgety nástěnky.
- !nastenka/nastenka_kpi
- Přepínání rozpadu KPI: seznam kategorií ↔ měsíční graf (jako graf01).
- Integrace s Google Charts v boxu kpi na nástěnce.
- !nastenka/nastenka_grafstats
- Automatický přepočet KPI cache (grafstats01_{KodU}) při zastaralých nebo nulových datech.
- Interval obnovení 10–60 minut dle nastavení kpi_interval.
- !nastenka/nastenka_zoom
- Zoom celé nástěnky 80–130 % (krok 5 %, výchozí 100 %).
- Ukládání do cookie nastenka_zoom_u{KodU}, tlačítka v liště filtrů bez submitu formuláře.
- !nastenka/nastenka_colosseum
- Widget Colosseum na nástěnce: pohled den/týden/měsíc přes AJAX.
- Přepínač tabulka/graf, přepočet „dnes“, cookie pro zvolený pohled.
- !nastenka/nastenka_funnel
- Klientská logika trychtýře (funnel) na nástěnce — přepínání zobrazení funnelver / funnelview.
- !colosseum/index
- Vstupní bod PHP synchronizace Colosseum (spouštění importu z prohlížeče nebo cron úlohy).
- !colosseum/DOVIS-Colosseum-sync
- Export úlohy Plánovače úloh Windows „DOVIS-Colosseum-sync“.
- Spouštění každých 30 minut od 15. 5. 2026, účet SYSTEM.
- !nastenka/NASTENKA_PREHLED
- Červen 2026
- 1. června 2026
- robots
- Rozsáhlý seznam Disallow pro vyhledávače — zakázány interní složky
- Ochrana administrace, SQL dumpů, uploadů a technických modulů před indexací.
- !step01/step01-kontakt-hledat
- Styly pro vyhledávání kontaktu při zakládání akce (step01).
- Vzhled dropdownu s výsledky hledání, loading stav, zvýraznění shody.
- !step01/step01-kontakt-hledat
- AJAX vyhledávání kontaktů a osob při zakládání nové akce.
- Napojení na skrytý select[name="kontakt"], debounce při psaní, výběr firmy a kontaktní osoby.
- Escapování HTML v návrzích, synchronizace s existujícím formulářem step01.
- !akce/akcekopiruj-popis
- Podrobný popis stránky kopírování akce (akcekopiruj.asp) — formulář, panely „Kopíruje se“ / „Nekopíruje se“, kontrola kolizí.
- Verze s vlastními styly pro tisk a čtení.
- !akce/akcekopiruj-popis-bez-css
- Stejný obsah jako akcekopiruj-popis.html bez vložených stylů — čisté HTML pro archivaci nebo export.
- Stejný obsah jako akcekopiruj-popis.html bez vložených stylů — čisté HTML pro archivaci nebo export.
- robots
- 2. června 2026
- !akce/akcekopie
- Styly formuláře kopírování akce: layout dvousloupcový, souhrn zdrojové akce, panely položek, stavy kolizí.
- !akce/akcekopie
- Živá kontrola kolizí a náhled kopírování přes AJAX (debounce při změně termínu/času).
- Čtení polí přípravy a hlavního termínu, aktualizace panelů bez reloadu stránky.
- nastenka
- Statická HTML dokumentace k nastenka— přístup (role t/b), filtry, widgety, Colosseum panel, KPI cache.
- Popis všech boxů data-nast-box včetně dash, funnel, premier, mapa.
- akceopakuj
- Statická dokumentace stránky opakovaného kopírování akce (akceopakuj.asp).
- Popis průběhového kopírování po termínech, chybové hlášky, vazba na OpakujAkceLib.
- akcekopiruj
- Statická dokumentace jednorázového kopírování akce do nového termínu.
- nakupy/zpracovani-objednavek
- Provozní diagram a návod k modulu Nákupy — tok zpracování objednávek.
- Mermaid diagramy, popis rozesílání e-mailů dodavatelům, stavy objednávek.
- !ai/POSTUP-AI-DOVIS
- Hlavní návrh modulu AI asistenta pro obchodníka (verze 1.0, datum v dokumentu 31. 5. 2026).
- Cíl: nahradit kroky step01–step100 jedním průvodcem na ai.asp (kromě techniky).
- Pravidlo: žádné úpravy původních step souborů, vše nové ve složce !ai.
- Struktura plánovaných souborů: AiConfig, AiWizard, AiGemini, AiOpenAI, AiApplyStep01, …
- !ai/POSTUP-AI-OPENAI-CHATGPT
- Návod na napojení firemního OpenAI API jako alternativa k Gemini.
- Rozdíly klíčů, modely, nastavení provider v configgemini.
- !ai/GEMINI-MODELY-A-NAPOVEDA
- Nápověda při chybě 429 (vyčerpaná kvóta Google Gemini).
- Kroky: počkat, zapnout billing, přejít na OpenAI, doporučené modely free/paid.
- !ai/configgemini
- SQL skript pro vytvoření tabulky configgemini.
- Sloupce: najemce, provider (gemini/openai), apikey, use_paid, model_free, model_paid, enabled.
- Varianta A: DROP + CREATE, varianta B: CREATE IF NOT EXISTS.
- !ai/configgemini-models-25
- Doplnění / aktualizace výchozích modelů Gemini 2.5 (flash-lite, flash) v tabulce configgemini.
- Doplnění / aktualizace výchozích modelů Gemini 2.5 (flash-lite, flash) v tabulce configgemini.
- !akce/akcekopie
- 3. června 2026
- !akce/navod-akce
- Kompletní technický návod modulu Akce (cca 98 KB HTML).
- Témata: step021/step02, režimy multi/classic, step06 objednávka (PDF, e-mail, PREMIER), step60 smlouvy.
- Mermaid diagramy, SEO meta tagy, JSON-LD TechArticle, obsah pro indexaci vyhledávači.
- Databázové tabulky, kolize prostor, parametry URL.
- !!nastaveni/!ckeditor/config
- Úprava CKEditor: při tmavém motivu (body.theme-dark) nastavení uiColor a contentsCss na contents-dark.css.
- Automatická detekce přes document.body.classList.contains('theme-dark').
- !!nastaveni/!ckeditor/contents-dark
- Tmavé styly obsahu WYSIWYG editoru — světlý text (#e5e7eb) na tmavém pozadí (#1a2330).
- !!nastaveni/config
- Stejná úprava pro druhou instanci CKEditor — podpora tmavého režimu.
- !!nastaveni/!ckeditor2/contents-dark
- Tmavé styly obsahu pro druhý editor.
- users/ResetHesloSlabaSeznam
- Seznam cca 1000 nejčastějších slabých hesel (123456, password, qwerty, …).
- Použití při validaci nového hesla — odmítnutí hesel ze seznamu při resetu / změně hesla.
- !!MySQL/APIS
- Export databáze APIS (velký SQL dump, cca 119 MB).
- !!MySQL/TRISIA
- Export databáze TRISIA (SQL dump, cca 71 MB).
- Souhrn podle oblasti
- !akce/navod-akce
|
Oblast |
Hlavní soubory |
Přínos |
|---|---|---|
|
Nástěnka manažera |
!nastenka/*.js, NASTENKA_PREHLED, nastenka |
Layout widgetů, zoom, KPI graf, Colosseum, PREMIER pie, dokumentace |
|
Colosseum integrace |
!colosseum/*., *. |
Automatický import každých 30 min, konfigurace |
|
Kopírování akcí |
akcekopie/js, akcekopiruj*, akceopakuj |
Živá kontrola kolizí, dokumentace kopírování a opakování |
|
Zakládání akce |
step01-kontakt-hledat/js |
AJAX hledání kontaktu při step01 |
|
AI modul |
!ai/*., configgemini*. |
Návrh architektury AI průvodce, DB tabulka, nápověda Gemini/OpenAI |
|
Dokumentace |
Technické návody s diagramy |
|
|
Editor / tmavý režim |
!ckeditor*/config, contents-dark |
CKEditor čitelný v theme-dark |
|
Bezpečnost hesel |
ResetHesloSlabaSeznam |
Blacklist slabých hesel |
|
SEO |
robots |
Blokace indexace interních cest |
|
Databáze |
MySQL |
Zálohy / exporty DB |
- ISKASA -
akcekopiruj- Účel: Stránka pro jednorázové zkopírování vybrané akce do nové akce v jiném termínu.
- Základní tok stránky:
- Nastaví aplikaci na
AplikaceNastaveni = 510. - Načte layout přes
StrUvoda knihovnu kopie přesakcekopie_lib. - Přečte parametr
aa(kód zdrojové akce), validuje, že je číselný; při chybě přesměruje nachybaakce. - Načte kontext zdrojové akce přes
AkceInfo. - Vykreslí formulář kopírování přes
akcekopie_form.
- Nastaví aplikaci na
- Co stránka obsahuje:
- Hlavičku „Kopírování akce“ s odkazem na detail zdrojové akce.
- Hlavní formulář pro nastavení kopie (termín, časy a další volby).
- Pravý panel se souhrnem zdrojové akce: název, kód, datumy, čas, případně příprava.
- Panel „Kopíruje se“ (obsah přes include
akcekopie_polozky). - Panel „Nekopíruje se“ s pevně uvedenými oblastmi.
- Panel „Kontrola před kopií“ s pravidly kolizí a navazujícím krokem po uložení.
- Kopíruje se:
- Položky definované v
akcekopie_polozky(dynamicky podle konfigurace). - Termínové a organizační údaje přenášené formulářem kopie.
- Položky definované v
- Nekopíruje se: Catering, Technika, Auta, Dokumenty (stejně jako u opakování).
- Jak probíhá kontrola před uložením:
- Kontrolují se kolize prostor v přípravě (řádky přípravy).
- Kontrolují se kolize v termínu akce pro prostory, služby, mobiliář a personál.
- Režim kolizí závisí na nastavení
SESSION("ProstoryZasmluvneno")(zasmluvněné vs. nezasmluvněné akce). - Po změně data/času se kolize přepočítají.
- Při zapnutém
SESSION("ProstoryOK")lze při kolizi akci zkopírovat a systém odešle notifikace e-mailem odpovědným osobám.
- Po úspěšné kopii: uživatel pokračuje na krok základních údajů (
step01) pro kontrolu a případné doplnění dat nové akce.
- Závěr:
akcekopirujje řídicí stránka pro ruční kopii jedné akce. Prezentační vrstvu tvoří hlavní ASP stránka, vlastní pravidla a validační logika jsou rozdělené do knihovny a include souborů.

- ISKASA - Popis
nastenka
je hlavní vstupní stránka dashboardu "Nástěnka manažera".
Slouží pro uživatele s oprávněním administrátor/manažer a skládá stránku z více include souborů (nastavení, data, widgety, Colosseum panel, KPI přehledy a uživatelské preference).
1. Přístup a oprávnění
- Vstup je povolen pouze obchodníky.
- Bez oprávnění se provede přesměrování.
2. Co stránka obsahuje
- Banner "Nástěnka manažera" a text zvoleného období.
- Filtrační formulář: období/rok, opce stav, budova, obchodník, střediska.
- Nastavení automatického intervalu přepočtu KPI (
kpi_interval). - Nastavení zoomu dashboardu.
- Widgety nástěnky z include souboru
nastenka_boxes. - Colosseum panel (tabulka/graf), včetně AJAX režimu.
2A. Boxy na nástěnce (podrobně)
Boxy jsou definované v nastenka_boxesa skládají se nad daty z nastenka_data.. Každý box má atribut data-nast-box, podle kterého se ukládá rozložení a pořadí.
- dash (KPI karty) - souhrn tržby, náklady, saldo/marže, počet akcí, opce, zasmluvněno, období. Zdroj: KPI cache + pipeline agregace.
- funnel - pipeline trychtýř podle stavů akcí (z include
nastenka_funnel). - cashflow / nakupy / donio - doplňkové finanční boxy z
nastenka_extra_boxes. - fakt (Fakturace) - tři stavy: odesláno, vystaveno, zaplaceno, včetně částek a procent vůči pipeline.
- vyvoj - měsíční sloupce vývoje prodeje pro zvolený rok, aktivní zvýraznění aktuálního měsíce.
- uziv - výsledková tabule uživatelů/obchodníků (Google chart) + legenda stavů.
- kpi - rozpad KPI po kategoriích, tržby/náklady/saldo, marže %, přepínání na měsíční graf kategorie.
- premier / premiergraf / premieren - boxy PREMIER jen pokud jsou k dispozici data (
N_PremHasData,N_PremEnHasData). - partner - partnerské přehledy (součást doplňkových boxů).
- colosseum - prodejní panel Colosseum s vlastní AJAX aktualizací.
- mapa - mapový box s geokódovanými body akcí.
3. Include řetězec (hlavní pořadí)
nastenka_prefs- načtení preferencí z URL/cookies.StrUvod, navigace a základní data.graf01_helpers- helper funkce pro období a formátování.nastenka_colosseum_init- inicializace Colosseum dat.nastenka_styles- styly nástěnky.nastenka_data- SQL agregace pro widgety (N_* proměnné).nastenka_boxes- vykreslení boxů + navázaný JS.StrKonec- ukončení stránky.
4. Jak se dělají přepočty
Samotný soubor nastenka primárně řídí tok stránky a předává filtry. Vlastní přepočty probíhají v podřízených modulech a endpointech:
nastenka_data- hlavní agregace dat pro widgety dle filtrů.nastenka_grafstats_refresh- přepočet KPI cache.nastenka_colosseum_recalc- AJAX přepočet Colosseum "dnešek".nastenka?ajax_colosseum=1- vrací jen Colosseum fragment pro async obnovu.
5. Filtry, které ovlivňují výpočty
obdobi,rok- časové omezení.opcestav- stav opce/fakturace.bud- budova.kodU- uživatel/obchodník.strediska- střediskové omezení.kpi_interval- perioda auto-obnovy KPI.colosseum_pohled,colosseum_zobrazeni,colosseum_recalc.
6. AJAX režim Colosseum
Pokud je v URL ajax_colosseum=1, stránka vrátí pouze HTML fragment panelu Colosseum (nastenka_colosseum_panel_bd) a ukončí request přes Response.End.
To umožňuje rychlé částečné překreslení bez načtení celé nástěnky.
7. Praktický provoz
- Běžné otevření: načte preference, filtry, data a vykreslí widgety.
- Změna filtru: formulář odešle GET, data se přegenerují v include datech.
- Auto KPI: interval řídí pravidelné obnovování KPI podle aktuálních filtrů.
- Background refresh: KPI cache lze přepočítat i mimo UI přes refresh endpointy.
8. Shrnutí
Nástěnka je orchestrátor dashboardu: řeší přístup, načtení preferencí, předání filtrů a složení výstupu z include modulů.
Přepočty dat se provádějí hlavně v datových includech a samostatných refresh/AJAX endpointech.

ISKASA — rezervace prostor u akce
1. Struktura stránky
| Část | Soubor | Účel |
|---|---|---|
| Obal / layout | step0XX | Navigace, menu akce, načtení CSS a JS |
| Seznam již vložených prostor | !stepXXX/step0XXVlozeneSeznam | Přehled z DB hned po otevření ?aa= |
| Průvodce výběrem | !stepXXX/step0XX | Areál → budova → mřížka prostor + detail karty |
| Interaktivita | !stepXXX/step02XX | Výběr karet, AJAX obsazenost, kolize, mazání |
| Společná logika SQL | !stepXXX/step0XXCommon | Překryv intervalů t1/t2, envelope termín+příprava |
2. URL parametry
| Význam | |
|---|---|
| Kód akce (dovakce.kod) | |
| Kód areálu (pokud je zapnutý krok areálu) | |
| Kód budovy | |
| Vybrané prostory (čárkou oddělené kódy) | |
| Jeden prostor při opravě | |
| Kód záznamu dovakcemista při editaci | |
| Návrat na výběr prostorů | |
| Vývojářský panel SQL pro diagnostiku kolizí | |
| Termín akce (např. po návratu s ch=1) |
3. Tok uživatele — výběr
- Areál (volitelně, pokud SESSION ProstoryAreal = 1)
- Formulář GET → reload stránky s parametrem
ar - Bez areálu nelze pokračovat na budovu
- Formulář GET → reload stránky s parametrem
- Budova
- Výběr budovy → reload s
bud - Server vykreslí mřížku prostor (
stepXXXRoomsGrid)
- Výběr budovy → reload s
- Prostory — mřížka karet
- Klik na kartu = výběr / zrušení výběru (lze více najednou)
- Rozbalená karta obsahuje: sazbu, termín, přípravu (pokud zapnuto), poznámku, zodpovědnou osobu
- Každý prostor má vlastní termín a přípravu v detailu karty
- Vybrané kódy se ukládají do hidden pole
mist
- Již vložené prostory
- Nahoře stránky seznam z DB
- Lze smazat (POST na stepXXXvloz)
- Uložené prostory v mřížce mají stav „Uloženo“
4. Stavy karty prostoru v mřížce
| Stav | Význam | Kdy se zobrazí |
|---|---|---|
| VOLNÝ | V intervalu termín + příprava není kolize | Server při načtení + AJAX obnovení mřížky |
| OBSAZENÝ | Překryv s jinou akcí (termín nebo příprava) | Ihned po načtení stránky (AJAX) i po změně času v kartě |
| Chybí sazba | Prostor nemá platnou cenu, ale jinak volný | Server / API |
| Uloženo | Prostor je už v DB u akce | Server z načtených dat dovakcemista |
| Vybráno (modře) | Uživatel kliknul na kartu | JavaScript |
5. Sledování kolizí — tři úrovně
5.1 Mřížka celé budovy (hned po načtení)
- Endpoint:
!stepXXX/stepXXXApi.asp?action=obsazenost&lite=1 - Volá se automaticky po načtení stránky (
refreshInitialGridOccupancy) - Interval: obal termínu akce + přípravy (min OD / max DO)
- Parametry: aa, bud, tOd/tDo/cOd/cDo + pTOd/pTDo/pCOd/pCDo z defaultů akce
- Výsledek: u každé karty štítek VOLNÝ / OBSAZENÝ bez nutnosti kliknout
- Box „Kolize s jinými akcemi“ pod mřížkou — souhrn pro vybrané prostory
5.2 Detail vybrané karty (po kliknutí / změně času)
- Endpoint:
!stepXXX/stepXXXObsazenostJson.asp - Spouští se při: rozbalení karty, změně data/času termínu nebo přípravy
- Tři paralelní kontroly (scope):
| Scope | Co kontroluje | V seznamu kolizí |
|---|---|---|
| term | Termín prostoru (Od–Do v kartě) | Ano — řádky s kolizí termínu |
| prep | Příprava prostoru (Od–Do přípravy) | Ano — řádky označené „Příprava“ |
| envelope | Celý obal termín + příprava | Ne — jen ovlivňuje štítek OBSAZENÝ/VOLNÝ |
- Výsledky term + prep se sloučí, duplicity se odstraní
- V detailu karty: sekce „Kolize termínu / přípravy“ se seznamem kolidujících akcí
- Po zavření karty zůstane ověřený stav štítku (OBSAZENÝ/VOLNÝ)
5.3 Popover u štítku OBSAZENÝ
- Klik na badge OBSAZENÝ (bez nutnosti editovat kartu)
- Zobrazí rychlý seznam kolidujících akcí s termíny
6. Logika překryvu v databázi
- Porovnává se interval
dovakcemista.t1at2 - Vyloučeny akce OPCE (zo = 1)
- Vyloučena aktuální akce (aa) a při editaci i vlastní záznam (ams)
- Volitelně jen zasmluvněné akce, pokud SESSION ProstoryZasmluvneno = 1 (za <> 0)
- Každý řádek v DB může být termín (priprava=0) nebo příprava (priprava=1) — oba se kontrolují
7. Kdy se obsazenost přepočítá
| Událost | Co se stane |
|---|---|
| Načtení stránky s vybranou budovou | AJAX mřížka — všechny prostory najednou |
| Klik na kartu / rozbalení | Kontrola term + prep + envelope pro daný prostor |
| Změna data nebo času v kartě | Okamžitá kontrola (debounce ~120 ms), nezávisle termín vs příprava |
| Zavření karty | Obnovení štítku z ověřeného stavu |
8. Konfigurace (SESSION)
| SESSION | Účinek |
|---|---|
| ProstoryAreal = 1 | Zobrazí krok výběru areálu |
| AkcePriprava = 1 | Formulář přípravy v kartě prostoru |
| ProstoryOK = 1 | Povolit akci i přes kolizi (informativně) |
| ProstoryZasmluvneno = 1 | Kolize jen se zasmluvněnými akcemi |
| ProstorySazba | 0 = den/půlden, 1 = hodina, 2 = kombinace sazeb |
9. API endpointy pro kolize
| Endpoint | Účel | Hlavní parametry |
|---|---|---|
| stepXXXApi.asp?action=obsazenost | Stav všech prostor v budově | aa, bud, tOd, tDo, cOd, cDo, pTOd, pTDo, pCOd, pCDo |
| stepXXXObsazenostJson.asp | Detail kolizí jednoho prostoru | aa, mist/kod, scope=term|prep|envelope, tOd…, pTOd…, ams |
| stepXXXvloz.asp (POST) | Mazání vloženého prostoru | ProstoryDEL=Smazat, ajaxDel=1 |
10. Diagnostika
stepXXX.asp?aa=…&obsDebug=1— panel s SQL dotazy mřížky i karet- Parametr se propaguje i do AJAX volání
11. Co aktuálně nefunguje / je vypnuto
- Ukládání nových rezervací do dovakcemista (tlačítko uložit ukáže varování)
- E-mailové notifikace při kolizi (kód odstraněn)
- Samostatná stránka potvrzení (showConfirm = False) — vše je v jednom kroku výběru

ISKASA - akceopakuj- Účel: Stránka pro opakované kopírování vybrané akce na další termíny s průběhovým zobrazením postupu.
- Přehled toku stránky:
- Nastaví aplikaci
AplikaceNastaveni = 510. - Načte základní layout přes
!DATA/!StrUvod.aspa knihovnu opakováníOpakujAkceLib. - Přečte chybovou hlášku ze session
SESSION("Opakuj_chyba")a po zobrazení ji smaže. - Načte kontext akce přes
AkceInfo(název, datumy, časy apod.). - Vykreslí formulář/řízení kopírování přes
step01opakuj.
- Nastaví aplikaci
- Co uživatel na stránce vidí:
- Hlavičku „Opakování akce“ s odkazem na detail zdrojové akce.
- Info box s režimem průběhového kopírování (postup po termínech bez reloadu).
- Případnou chybu opakování (červený alert).
- Pravý panel se souhrnem zdrojové akce: termín, čas, případně příprava.
- Panel „Kopíruje se“ a „Nekopíruje se“.
- Panel omezení (limit 1 rok, kolize prostor, pravidla schválení a mazání opakování).
- Jak probíhá přepočet / zpracování opakování:
- Výpočet termínů a samotné kopie řeší logika v
OpakujAkceLibastep01opakuj.asp. - Zpracování běží po jednotlivých termínech, aby šel zobrazovat průběh a přeskočené termíny.
- Při kolizi prostor se nový termín nevytvoří a zapíše se do seznamu přeskočených termínů.
- Kontrola kolizí respektuje nastavení stavu zasmluvnění (
SESSION("ProstoryZasmluvneno")).
- Výpočet termínů a samotné kopie řeší logika v
- Kopírované části akce:
- Prostory
- Služby
- Inventář
- Personál
- Přílohy
- Detail akce
- Předávací protokol
- Nekopírované části: Catering, Technika, Auta, Dokumenty.
- Funkční omezení:
- Maximální rozsah opakování je 365 dní.
- U vícedenní akce se zachová délka trvání kopie.
- Opakování se vztahuje na den začátku akce v týdnu.
- Každá kopie vyžaduje ruční zasmluvnění.
- Mazání vytvořených opakování se provádí z přehledu původní akce.
- Závěr:
akceopakuj.aspje prezentační a řídicí stránka procesu opakování. Hlavní výpočetní a datová logika je umístěna v include souborech pro krok opakování
??????????????
2026-05
1. Struktura stránky
| Část | Soubor | Účel |
|---|---|---|
| Obal / layout | step0XX | Navigace, menu akce, načtení CSS a JS |
| Seznam již vložených prostor | !stepXXX/step0XXVlozeneSeznam | Přehled z DB hned po otevření ?aa= |
| Průvodce výběrem | !stepXXX/step0XX | Areál → budova → mřížka prostor + detail karty |
| Interaktivita | !stepXXX/step02XX | Výběr karet, AJAX obsazenost, kolize, mazání |
| Společná logika SQL | !stepXXX/step0XXCommon | Překryv intervalů t1/t2, envelope termín+příprava |
2. URL parametry
| Význam | |
|---|---|
| Kód akce (dovakce.kod) | |
| Kód areálu (pokud je zapnutý krok areálu) | |
| Kód budovy | |
| Vybrané prostory (čárkou oddělené kódy) | |
| Jeden prostor při opravě | |
| Kód záznamu dovakcemista při editaci | |
| Návrat na výběr prostorů | |
| Vývojářský panel SQL pro diagnostiku kolizí | |
| Termín akce (např. po návratu s ch=1) |
3. Tok uživatele — výběr
4. Stavy karty prostoru v mřížce
| Stav | Význam | Kdy se zobrazí |
|---|---|---|
| VOLNÝ | V intervalu termín + příprava není kolize | Server při načtení + AJAX obnovení mřížky |
| OBSAZENÝ | Překryv s jinou akcí (termín nebo příprava) | Ihned po načtení stránky (AJAX) i po změně času v kartě |
| Chybí sazba | Prostor nemá platnou cenu, ale jinak volný | Server / API |
| Uloženo | Prostor je už v DB u akce | Server z načtených dat dovakcemista |
| Vybráno (modře) | Uživatel kliknul na kartu | JavaScript |
5. Sledování kolizí — tři úrovně
5.1 Mřížka celé budovy (hned po načtení)
5.2 Detail vybrané karty (po kliknutí / změně času)
| Scope | Co kontroluje | V seznamu kolizí |
|---|---|---|
| term | Termín prostoru (Od–Do v kartě) | Ano — řádky s kolizí termínu |
| prep | Příprava prostoru (Od–Do přípravy) | Ano — řádky označené „Příprava“ |
| envelope | Celý obal termín + příprava | Ne — jen ovlivňuje štítek OBSAZENÝ/VOLNÝ |
5.3 Popover u štítku OBSAZENÝ
6. Logika překryvu v databázi
7. Kdy se obsazenost přepočítá
| Událost | Co se stane |
|---|---|
| Načtení stránky s vybranou budovou | AJAX mřížka — všechny prostory najednou |
| Klik na kartu / rozbalení | Kontrola term + prep + envelope pro daný prostor |
| Změna data nebo času v kartě | Okamžitá kontrola (debounce ~120 ms), nezávisle termín vs příprava |
| Zavření karty | Obnovení štítku z ověřeného stavu |
8. Konfigurace (SESSION)
| SESSION | Účinek |
|---|---|
| ProstoryAreal = 1 | Zobrazí krok výběru areálu |
| AkcePriprava = 1 | Formulář přípravy v kartě prostoru |
| ProstoryOK = 1 | Povolit akci i přes kolizi (informativně) |
| ProstoryZasmluvneno = 1 | Kolize jen se zasmluvněnými akcemi |
| ProstorySazba | 0 = den/půlden, 1 = hodina, 2 = kombinace sazeb |
9. API endpointy pro kolize
| Endpoint | Účel | Hlavní parametry |
|---|---|---|
| stepXXXApi.asp?action=obsazenost | Stav všech prostor v budově | aa, bud, tOd, tDo, cOd, cDo, pTOd, pTDo, pCOd, pCDo |
| stepXXXObsazenostJson.asp | Detail kolizí jednoho prostoru | aa, mist/kod, scope=term|prep|envelope, tOd…, pTOd…, ams |
| stepXXXvloz.asp (POST) | Mazání vloženého prostoru | ProstoryDEL=Smazat, ajaxDel=1 |
10. Diagnostika
11. Co aktuálně nefunguje / je vypnuto
2026-04
- Přístup a oprávnění
- Vstup je povolen pouze pro obchodníky
- Bez oprávnění se provede přesměrování.
- Co stránka obsahuje
- Banner "Nástěnka manažera" a text zvoleného období.
- Filtrační formulář: období/rok, opce stav, budova, obchodník, střediska.
- Nastavení automatického intervalu přepočtu KPI (kpi_interval).
- Nastavení zoomu dashboardu.
- Widgety nástěnky z include souboru !nastenka/nastenka_boxes.
- Colosseum panel (tabulka/graf), včetně AJAX režimu.
- Boxy na nástěnce (podrobně)
-
ISKASA - Generování dat do KPI
- Tento proces slouží k naplnění tabulky grafstats01 pro KPI přehledy. Generování probíhá samostatně mimo běžné zobrazení stránky, aby byl výpočet rychlý a stabilní.
- Vstupní parametry
- rok – volitelný parametr, např.
?rok=2025; pokud není zadán, použije se aktuální rok. - najemce – volitelný parametr, pokud se KPI počítá jen pro konkrétního nájemce.
- rok – volitelný parametr, např.
- Inicializace dat
- Pro zvolený rok se ověří existence 12 měsíců v tabulce
grafstats01. - Pokud některé měsíce chybí, automaticky se doplní.
- Následně se přepočítá celý rok, aby byly opraveny i starší měsíce.
- Pro zvolený rok se ověří existence 12 měsíců v tabulce
- Přepočet KPI hodnot
- Hodnoty se generují agregací zdrojových tabulek (akce, prostory, služby, inventář, technika, personál, catering, další položky, energie) po jednotlivých měsících.
- Počet akcí a počet zrušených akcí
- Tržby a náklady za prostory
- Tržby a náklady za služby
- Tržby a náklady za mobiliář
- Tržby a náklady za techniku
- Tržby a náklady za personál
- Tržby a náklady za catering
- Tržby a náklady za další položky
- Energie (kWh, m3, GJ, plyn, nákup energie)
- Hodnoty se generují agregací zdrojových tabulek (akce, prostory, služby, inventář, technika, personál, catering, další položky, energie) po jednotlivých měsících.
- Výstup
- Výsledkem je aktualizovaná tabulka
grafstats01, připravená pro rychlé načtení KPI dashboardu.
- Výsledkem je aktualizovaná tabulka
- Spouštění
- Ruční spuštění přes URL endpoint refresh skriptu.
- Automatické spuštění na pozadí (např. plánovačem úloh).
- Doporučeno spouštět pravidelně a také po významných změnách dat.
- Hlavní výhody
- Rychlejší načítání KPI stránky.
- Stabilní data bez vlivu uživatelských filtrů.
- Jednotný a opakovatelný výpočet pro celý rok.
-
ISKASA a kopírování akce
- Vytvoří novou akci jako kopii zdrojové. Uživatel zadá nový termín (a případně přípravu); systém kontroluje kolize a zkopíruje až bez konfliktů.
- URL:
akcekopiruj?aa=— odkaz „Kopíruj akci“ zakce.aspnebo seznamu akcí.
- URL:
- Stránka
- Vlevo: formulář termínu a přípravy, živá kontrola kolizí, tlačítko Zkopírovat (aktivní jen bez kolizí).
- Vpravo: údaje zdrojové akce, seznam co se kopíruje (prostory, služby, mobiliář, personál), co se nekopíruje (catering, technika, auta, dokumenty).
- Postup
- Uživatel upraví datum/čas — automaticky běží kontrola (AJAX na
!akce/akcekopie_kontrola). - Při
ok: truelze odeslat formulář (POST na!akce/akcekopie_vloz). - Server znovu ověří kolize, zkopíruje data (
AkceKopirujXX), zapíše kalendář. - Přesměrování na
stepXX.asp?aa=se zelenou hláškou.
- Uživatel upraví datum/čas — automaticky běží kontrola (AJAX na
- Kontrola kolizí
- Příprava (jen pokud je u akce zapnutá) — kolize prostor označených jako příprava.
- Termín akce — prostory (řádky přípravy se zde nekontrolují), služby, mobiliář, personál.
- Prostory — obsazení stejné místnosti v zadaném intervalu jinou akcí.
- Služby / mobiliář / personál — jen pokud má položka v číselníku
SkladZasoba > 0; kolize = nedostatek kusů v překrývajícím termínu (zdrojová akce se do součtu nepočítá).
- Po kopii
- Chyba:
SESSION("AkceKopie_chyba")na stránce kopírování. Úspěch:SESSION("AkceKopie_ok")na step01.
- Chyba:
- Hlavní soubory
- hlavni stránka
- formulář
- seznam položek vpravo
- logika kolizí
- AJAX JSON
- zápis kopie
- SQL kopie
- kontrola v prohlížeči
- hlavni stránka
- ISKASA - Nová rezervace prostor do akce — výběr a postup vložení
- Nahoře stránky je přehled již uložených prostor u akce. Odtud lze termín upravit (tužka) nebo záznam smazat (koš).
- Areál — vyberte areál, pokud je tento krok zapnutý.
- Budova — vyberte budovu; načte se mřížka prostor.
- Prostory — kliknutím vyberte jeden nebo více prostorů. Kliknutím na kartu ji rozbalíte a u každého prostoru zvlášť nastavíte:
- sazbu,
- termín OD–DO včetně času,
- přípravu prostoru (pokud je zapnutá),
- poznámku,
- zodpovědnou osobu (pokud je zapnutá).
- Nahoře stránky je přehled již uložených prostor u akce. Odtud lze termín upravit (tužka) nebo záznam smazat (koš).
- Uložení prostoru — vyplněný prostor uložte tlačítkem
vpravo nahoře na kartě. Uloží se pouze tento prostor (ne celý výběr najednou). - Další prostor — stejný postup opakujte u každého dalšího vybraného prostoru.
- Další termín — u prostoru, který už má uložený termín, lze přidat další termín ikonou + na kartě. Úpravu existujícího termínu proveďte ze seznamu nahoře.
- Stavy prostorů v mřížce:
- Volný — prostor je v zadaném termínu dostupný.
- Obsazený — prostor má kolizi s jinou akcí. Detail kolize se zobrazí po rozbalení karty; u štítku Obsazený lze zobrazit rychlý přehled kolidujících akcí.
- Chybí sazba — prostor nemá nastavenou cenu; bez sazby jej nelze korektně nacenit (nápověda po najetí myší).
- Uloženo — prostor je již uložen v akci.
- Obsazenost se kontroluje automaticky po načtení mřížky i při změně termínu nebo přípravy v kartě.
- Při kolizi se zobrazí upozornění. Podle nastavení systému lze kolizi buď zablokovat, nebo — s oprávněním ProstoryOK — prostor uložit i přes kolizi (zodpovědné osobě obsazené akce se odešle e-mail).
- Doporučení:
- Vyplňujte termín vždy včetně času OD i DO.
- Po kliknutí na
zkontrolujte, že u prostoru zůstal stav Uloženo a záznam je vidět v seznamu nahoře. - Před odchodem z kroku ověřte, že jsou všechny požadované prostory uložené.
- ISKASA - RAYNET
- uživatelké API pro komunikaci na RAYNET
- dokončení zpracování obchodních případu
- režim položek - rozpis souhrně nebo položkově
- zlepšené kontroly na odeslání nabídek do RAYNET
- ISKASA - kopírování akcí
- zrychlené kopírování na další termíny
- kontrola kolizí na prostory u kopírovaných akcí
- výpis kolizí s možností tisku pro další zpracování
- viditelný průběh zpracování pro uživatele
- ISKASA - Colosseum
- přepracovaný import dat
- zrychlení kontroly prodeje vstupenek
- přehlednější prodeje, KPI, grafy
- zpřesnění prodeju - přesná kontrola reportu z Colosseum

.jpg)
- Přehledný denní prodej podle okruhu

- Denni prodej - druh platby

- ISKASA — rezervace prostor u akce
- Areál (volitelně, pokud SESSION ProstoryAreal = 1)
- Formulář GET → reload stránky s parametrem
ar - Bez areálu nelze pokračovat na budovu
- Formulář GET → reload stránky s parametrem
- Budova
- Výběr budovy → reload s
bud - Server vykreslí mřížku prostor (
stepXXXRoomsGrid)
- Výběr budovy → reload s
- Prostory — mřížka karet
- Klik na kartu = výběr / zrušení výběru (lze více najednou)
- Rozbalená karta obsahuje: sazbu, termín, přípravu (pokud zapnuto), poznámku, zodpovědnou osobu
- Každý prostor má vlastní termín a přípravu v detailu karty
- Vybrané kódy se ukládají do hidden pole
mist
- Již vložené prostory
- Nahoře stránky seznam z DB
- Lze smazat (POST na stepXXXvloz)
- Uložené prostory v mřížce mají stav „Uloženo“
- Endpoint:
!stepXXX/stepXXXApi.asp?action=obsazenost&lite=1 - Volá se automaticky po načtení stránky (
refreshInitialGridOccupancy) - Interval: obal termínu akce + přípravy (min OD / max DO)
- Parametry: aa, bud, tOd/tDo/cOd/cDo + pTOd/pTDo/pCOd/pCDo z defaultů akce
- Výsledek: u každé karty štítek VOLNÝ / OBSAZENÝ bez nutnosti kliknout
- Box „Kolize s jinými akcemi“ pod mřížkou — souhrn pro vybrané prostory
- Endpoint:
!stepXXX/stepXXXObsazenostJson.asp - Spouští se při: rozbalení karty, změně data/času termínu nebo přípravy
- Tři paralelní kontroly (scope):
- Výsledky term + prep se sloučí, duplicity se odstraní
- V detailu karty: sekce „Kolize termínu / přípravy“ se seznamem kolidujících akcí
- Po zavření karty zůstane ověřený stav štítku (OBSAZENÝ/VOLNÝ)
- Klik na badge OBSAZENÝ (bez nutnosti editovat kartu)
- Zobrazí rychlý seznam kolidujících akcí s termíny
- Porovnává se interval
dovakcemista.t1at2 - Vyloučeny akce OPCE (zo = 1)
- Vyloučena aktuální akce (aa) a při editaci i vlastní záznam (ams)
- Volitelně jen zasmluvněné akce, pokud SESSION ProstoryZasmluvneno = 1 (za <> 0)
- Každý řádek v DB může být termín (priprava=0) nebo příprava (priprava=1) — oba se kontrolují
stepXXX.asp?aa=…&obsDebug=1— panel s SQL dotazy mřížky i karet- Parametr se propaguje i do AJAX volání
- Ukládání nových rezervací do dovakcemista (tlačítko uložit ukáže varování)
- E-mailové notifikace při kolizi (kód odstraněn)
- Samostatná stránka potvrzení (showConfirm = False) — vše je v jednom kroku výběru
- ISKASA - nove kalendáře
- nový vzhled kalendářů
- Akce
- Prostory akcí
- Personál akcí
- Kalendář personálu, dovolení a další ....
- vylepšený tisk kalendářů
- možnost zvětšit nebo zmenšit kalendáře i u tisku

- nový vzhled kalendářů
- ISKASA - PREMIER
- odeslání objednáve akcí do PREMIER
- průběh zpracování pro obchodníky
- odeslání na email a do PREMIER pomocí API
- Kontroly na stavy a chyby pro uživatele
- odeslání objednáve akcí do PREMIER
- ISKASA - vkládání Služeb, Personál, Mobiliář
- nové vkládání z formulářů
- okamžitá kontrola an stav skladu a cena celkem pro obchodníky
.jpg)