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:

  1. 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
  2. DigiSign a smlouvy - rozšíření auditu (22. 6., 30. 6.) - webhook, auditní knihovny, hromadné odeslání podpisů, PDF objednávky
  3. Kalendář dovolených a směn (1. 7.) - cache tabulka working_calendar2, rychlé zobrazení calendar2/calendar3, vícedenní pruhy
  4. 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é include AkceHistorieShow
  • AkceHistorieShow - filtry: období, rok, uživatel, oblast, modul, typ akce, forenzní pohled
  • AkceHistorieHistLib - SQL agregace, kategorie, export CSV, masonry layout dat
  • AkceHistorieAktGraf - sloupcový graf aktivity po dnech (Google Charts)
  • AkceHistoriePrice - přehled změn cen
  • AkceHistorieMasonry.js - rozložení dlaždic historie
  • AkceHistorieExport - 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)
  • UserActivityShow2UserActivityShow3 - rozšířené pohledy aktivity
  • UserActivityUserseenBox - 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: navodnavod-skenovani
  • Úpravy: defaultformuploadTaskSeznamForumDetailtiskfile
  • Styly tabletového rozhraní: exp-tabletexp-stylesexp-back-home

DigiSign - návod a testy

  • step75DigiSignNavod - podrobný návod pro obchodníky
  • AkceDigisignPodpisTest - 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, step01VlozBalickyMista
  • step01HistLib (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ář

  • step03Vloz
  • AkceInventarDel

Step04 - personál

  • step04vloz
  • AkcePersonalDel, AkcePersonalDetail

Step06 - kalkulace

  • step06Vloz, step06HistLib

Step07 - služby

  • step07vloz
  • AkceSluzbyDel

 

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í
  • AkceMistnostiDel
  • AkceFilesDel, AkceFilesKopirujPrilohy
  • AkceDokumentyDel
  • FilesDokumentUpload, FilesAkceUpload, DokumentKopiruj, FilesHistLib
  • PrilohyUpdate
  • !SkladKartaPohybyDel
  • KontrolaZodpovedneOsobyZaAkci

DigiSign a smlouvy (Fáze 5.2)

  • DigiSignHistLib - audit podpisů
  • DigiSignWebhook - webhook endpoint
  • step75PodpisSync, step75PodpisSyncAjax, step75PodpisOdeslat
  • step75SmlouvaPdfLib, step75SmlouvaPdf
  • SmlouvuVloz, SmlouvyDel, SmlouvyHistLib
  • smlouva01

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 aut
  • akce - úpravy hlavní stránky akcí
  • UserFormPersonalni, UserInsertPersonalni - formulář personálního uživatele
  • karta - úpravy karty
  • ron03user - 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 zz
  • HistoryWorkersArchive - dávkový přesun do historyworkers_archive
  • historyworkers_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 akce
  • AkceHistorieShow - 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 tisku
  • step75InlineTiskLib, step75InlineTiskReset
  • PDF šablony: objednavka01, priloha01, pouceni01, technika01, tisk
  • step75ObjednavkaPdfLib, step75ObjednavkaPdf - generování PDF objednávky
  • DigiSignEnvelopeLib, DigiSignEnvelopeViceLib, DigiSignWebhookLib
  • step75PodpisOdeslatHromadne - hromadné odeslání dokumentů k podpisu
  • step75PodpisSeznam - vylepšený seznam podpisů

Auta, technika, ostatní

  • AkceAutaDel - mazání aut z akce (Fáze 5.4)
  • step50vloz
  • step10Vloz, step14
  • step94mereni
  • nakladovy01 - 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 cache
  • CalendarWorking2VlozFuncs - funkce vkládání do cache
  • CalendarWorking2Oprav - hromadný rebuild cache (admin zz)
  • CalendarWorking2Bundle, CalendarWorkingDel, CalendarWorkingSpanAjax
  • CalendarWorking3 - čtení z working_calendar2 pro mřížkový kalendář
  • CalendarInsert, CalendarWrite, CalendarCheckExisting
  • ZzKalMultiDayPhaseB - vícedenní pruhy (fáze B) pro kalendář
  • CalInsertRedirectUrl, CalendarTestDabl
  • calendar2calendar3zzpkalendar - napojení na novou cache
  • UsersDelPersonalni - 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í navigace
  • StrNavigaceVrch - horní lišta včetně ikony globálního hledání (lupa)
  • StrNavigaceBok2 - boční menu
  • StrNavigaceUserDropdown - sdílené dropdown menu uživatele (desktop + mobil)
  • StrNavigaceUserMobil - mobilní varianta
  • custom - JS navigace

Databázové schéma

  • DOVIS - ISKASA, dovis7x - aktualizace hlavního schématu
  • DB - 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 - ISKASAdovis7x 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

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ů:
  1. 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
  2. Modul aut – fotodokumentace a O2 Car Control (16. 6.) – fotky vozidel, tisk karty řidiče, integrace O2 API
  3. Nákladové listy techniky (17. 6.) – kompletní workflow v step15
  4. Bezpečnost – MFA (2FA) a audit přístupu (19. 6.) – Authenticator TOTP, vylepšení step021
  5. DigiSign – digitální podpis dokumentů (19.–20. 6.) – nová integrace, webhooky, modul smluv, PDF generování
  6. 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:

  • aiai-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: !configgeminiconfiggemini-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 – KontaktyFirmaAiPanelKontaktyFirmaAiKontextKontaktyAiAnalyzaLib
  • Obchodní případy – KontaktyObchodPanelKontaktyObchodLibKontaktyObchodApikoapi
  • Ověření DPH – KontaktyDPHCheck (SOAP volání na MF ČR), asynchronní varianta KontaktyDPHCheckAsync, záložka KontaktyInfoDphTab – štítek „Spolehlivý / Nespolehlivý plátce DPH“
  • Timeline kontaktu – KontaktyInfoTimeline
  • Premier platby – KontaktyPremierPlatbyLib
  • Nový vzhled detailu – KontaktyInfoNewKontaktyInfoNewStyles, záložky osob a obchodních případů
  • SQL: !dovkontaktyanalyza

KPI statistiky na nástěnce

Nové soubory !nastenka_grafstatsnastenka_grafstats.jsnastenka_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

  • !graf06graf06_akce_soucty – úpravy grafů
  • DokumentSeznam3 – seznam dokumentů
  • UserResetHesloMail/SMTP2 – drobné úpravy

16. 6. 2026

Fotodokumentace vozidel (modul Auta)

Kompletní nová funkcionalita pro evidenci fotek u rezervací aut:

  • !AutaFotoUpload – nahrání fotky
  • !AutaFotoSeznamAutaFotoSeznamLib – galerie fotek
  • !AutaFotoFormAutaFotoDel – formulář a mazání
  • Integrace do step51 – fotodokumentace u obsazení auta (step51?car=)
  • step51tisk!step51TiskKarta – tisk karty řidiče
  • SQL tabulky: rentautafotorentautafoto_alter
  • Dva typy fotek: katalogové (u číselníku aut) a předání/vrácení (u konkrétní rezervace)

O2 Car Control – konfigurace API

Optimalizace obrázků

  • Přidán nástroj !jpegoptim.exe pro kompresi JPEG
  • Úpravy JPEG480JPEG480 – zmenšené náhledy v e-mailech

Další úpravy 16. 6.

  • !AkcePersonalDetail – detail personálu u akce
  • !PersonalSeznampersonal
  • !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

  • CalendarWorkingcalendar2-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ódu
  • UserMfaSignin – 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í)
  • UserMfaTotpDisableUserMfaAdminReset – vypnutí / admin reset
  • UserHesloVynucZmenu – MFA má přednost před vynucenou změnou hesla
  • UserList2 – 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:SS bez cDateMySQL() (prevence Type mismatch)
  • Úpravy step021Apistep021step021step021Common

DigiSign – začátek integrace

  • configdigisign-dataconfigdigisign_alter_api_secret
  • DigiSignWebhookKoduSelect – výběr webhook kódu

Další úpravy 19. 6.

  • !StrankovaniStrankovaniParametry – vylepšené stránkování
  • !ProstoryUIPref – preference UI prostor
  • !nastenka_boxes_ajaxnastenka_datanastenka_defer_stub
  • !HledejVypisModuly!SQL/SQLHledejLib – vyhledávání
  • compress!DATA/compress_config.php – komprese assetů
  • web – konfigurace IIS
  • navod-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 DB
  • DigiSignEnvelopeLib – 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ů
  • DigiSignWebhookTestAjaxDigiSignRegenWebhookAjax – testování
  • DigiSignWebhookSyncAjax – synchronizace stavu
  • Logování: tabulka digisign_webhook_log

Konfigurace DigiSign

  • configdigisignConfigFormDigiSign
  • SQL: configdigisigndigisign_tablesdigisign_podpisdigisign_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í stopa
  • step75PodpisOdeslat – odeslání dokumentu k podpisu
  • !step75PodpisSyncstep75PodpisSyncAjax – 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í)
  • !SmlouvuVlozSmlouvyDelSmlouvyTest
  • !AkceSmlouvyTest – test v kontextu akce
  • Tabulka: dovakcesmlouvy

Generování PDF smlouvy

  • !step75SmlouvaPdfLib – HTML smlouvy → PDF přes wkhtmltopdf → uložení do dovakcedokumenty
  • !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 kontaktu
  • KontaktyFirmaInsightLibKontaktyFirmaInsightApi
  • KontaktyAresFetchExtended – rozšířené načtení z ARES
  • fiapi – wrapper API endpoint (zachování IIS session)
  • Asynchronní načítání (fetch), cache v dovkontakty_insight

Další úpravy 20. 6.

  • GLOBAL– globální nastavení aplikace
  • dovis7x – aktualizace DB schématu
  • !step021vlozstep021step021Common
  • !step15NakladovyList – další úpravy
  • !SkladKartaPohybySeznam2 – pohyby skladové karty
  • kalendar – 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
navodnavod-skenovani Redirecty z kořene do /exp/
exp-tabletexp-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

  • defaultexp/formexp/upload
  • TaskSeznamexp/fileexp/tisk
  • ForumDetail

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í

  • ProjektySeznam10
  • step75 – 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ů
DOVISdovis7x 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íky
  • AUDIT_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ý parametr hledat=1 pro 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řída nav-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 čárkypostreh 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], v PopisAkce poč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 najemce v 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).
         
    • 4. června 2026
      • 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).
           
      • !DOV/dph-test-post
        • 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č.
           
    • 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í.
           
      • !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.
         
    • !!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).
           
    • 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).
           
  • 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.
       
  • !!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).
         
    • 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ů).
           
    • 25. května 2026
      • !colosseum/config
        • Konfigurace PHP modulu synchronizace s Colosseum (připojení, cesty, parametry importu).
           
    • 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.
           
    • Č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.
           
    • 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.
           
    • 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

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

navod-akce, zpracovani-objednavek

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řes akcekopie_lib.
      • Přečte parametr aa (kód zdrojové akce), validuje, že je číselný; při chybě přesměruje na chybaakce.
      • Načte kontext zdrojové akce přes AkceInfo.
      • Vykreslí formulář kopírování přes akcekopie_form.
         
    • 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.
         
    • 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: akcekopiruj je ří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í)

  1. nastenka_prefs- načtení preferencí z URL/cookies.
  2. StrUvod, navigace a základní data.
  3. graf01_helpers- helper funkce pro období a formátování.
  4. nastenka_colosseum_init- inicializace Colosseum dat.
  5. nastenka_styles- styly nástěnky.
  6. nastenka_data- SQL agregace pro widgety (N_* proměnné).
  7. nastenka_boxes- vykreslení boxů + navázaný JS.
  8. 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

  1. Areál (volitelně, pokud SESSION ProstoryAreal = 1)
    • Formulář GET → reload stránky s parametrem ar
    • Bez areálu nelze pokračovat na budovu
  2. Budova
    • Výběr budovy → reload s bud
    • Server vykreslí mřížku prostor (stepXXXRoomsGrid)
  3. 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
  4. 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.t1 a t2
  • 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.asp a 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.
         
    • 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 OpakujAkceLibstep01opakuj.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")).
         
    • 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.asp je 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

  1. Přístup a oprávnění
    • Vstup je povolen pouze pro 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/nastenka_boxes.
    • Colosseum panel (tabulka/graf), včetně AJAX režimu.
    1. 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.
           
      • 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.
           
      • 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)
             
      • Výstup
        • Výsledkem je aktualizovaná tabulka grafstats01, připravená pro rychlé načtení KPI dashboardu.
           
      • 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“ z akce.asp nebo seznamu akcí.
         
    • 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: true lze 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.
         
    • 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.
         
    • Hlavní soubory
      • hlavni stránka
        • formulář
        • seznam položek vpravo
        • logika kolizí
        • AJAX JSON
        • zápis kopie
        • SQL kopie
        • kontrola v prohlížeči
    • 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š).
        1. Areál — vyberte areál, pokud je tento krok zapnutý.
        2. Budova — vyberte budovu; načte se mřížka prostor.
        3. 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á).
    1. 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).
    2. Další prostor — stejný postup opakujte u každého dalšího vybraného prostoru.
    3. 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


         
      • Přehledný denní prodej podle okruhu

         
      • Denni prodej - druh platby
    • ISKASA — rezervace prostor u akce
    1. Areál (volitelně, pokud SESSION ProstoryAreal = 1)
      • Formulář GET → reload stránky s parametrem ar
      • Bez areálu nelze pokračovat na budovu
    2. Budova
      • Výběr budovy → reload s bud
      • Server vykreslí mřížku prostor (stepXXXRoomsGrid)
    3. 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
    4. 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.t1 a t2
    • 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
            
           
    • 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
         
    • 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
            
    •  

← Kompletní historie vývoje