2026-10
- ISKASA - Rozbor tabulky uctoevidencedodavatelu
-
Kde se plní podle akce a které nákupní ceny už používají stejnou jednotku jako objednávka techniky. Stav kódu po sjednocení výpočtu 10. 10. 2026.
Co tabulka ukládá
Sloupec
nakupcenaje částka řádku (už vynásobená kusy), typINT.
Sloupeckusuje množství. Seznam dodavatelů v!naklady/NakladySeznamPolozkysčítáSUM(nakupcena)podlekontaktakodakce.
Když se donakupcenazapíše jiný vzorec než nákup položek, součet dodavatele se s kalkulací akce neshodne.Zápis proběhne jen při
SESSION("HistorieCenOK") = 1a přihlášeném uživateli.
Stejná položka akce se dohledá i po změně dodavatele.
Nezaplacený starý řádek se smaže.
Zaplacený řádek se přepíše cenou a kontaktem,zaplatilazaplacenozůstanou.Stav po opravě jednotky
Jednotková nákupní cena techniky se počítá v
!technika2/NakupJednVypocet.
Stejný výpočet volá uložení řádku, vložení nové techniky, obrazovka a uložení dnů, ajax kusů dne, součet po dnech pro evidenci, součet ve step90 a objednávka dodavatele (SoucetTechnikaPoDnechNakupDodavatele,SoucetTechnikaNakupDodavatele).
Pravidla:SlevaDodavatel > 0je přirážka,< 0je sleva z prodeje po slevě položky ve výšiabs(sleva) + (100 − limit),koeficient = 1bere základ a stejně uplatní slevu položky, personál máKoeficientPersonalaDodavatelTechnikaSlevyPersonal.Větev bez dnů v
step10NabidkaTechnikyRozpiszapisuje do evidenceNakupJedn × kusy × PocetDnu.
Přirážka i sleva dodavatele vnakupcenajsou. Ověření na akci 4071, dodavatel: elektrocentrála 8 736 Kč (+4 %), pohonné hmoty 6 000 Kč, rozvaděče 4 618 Kč (+4 %), součet 19 354 Kč.
Stejná částka je na objednávcetechnika02a v soupisu nákladů.Přepis starých řádků neběží sám přes všechny akce.
Evidence se u akce přepíše, když se otevře její aktivní nabídka v bilanci (step90→ rozpis).
Nezaplacený řádek dostane novou částku.
Zaplacený řádek zůstane. Akce XXXX je přepsaná ručně.
Ostatní akce drží původnínakupcena, dokud se ta nabídka neotevře.Po dnech je nákup
NakupJedn × KusuDenjednou za den a jen pro dodavatele daného řádku.
Hromadná sleva nákupu se odečte na řádku evidence a stejný součet jde doNakladTechnikaCL.
Změna dodavatele, smazání položky a vypnutí nabídky uklízí starý řádek, viz E1–E3 a E7.1. Kde se tabulka podle akce plní
Spouštěč Soubor Co zapíše Vzorec nákupu Kalkulace akce step06step06Mista
step06Sluzby
step06Inventar
step06Personal
step06Catering
step06Dalsi
step06autamísta, služby, inventář, personál, catering, další, auta přes !naklady/NakladyTest.asp
místa:SazbaNakup(bez × hodiny)
ostatní:SazbaNakup × kusy
auta:INT(SazbaNakup × jednotka)Bilance akce→step90stejné kategorie ve step90*totéž, jiným zapisovačem !step90/step90NakladySync*.asp— stejné vzorce, navíc cache podle klíče položka|dodavatelTechnika na kalkulaci i na bilanci step10NabidkaTechniky→step10NabidkaTechnikyRozpisřádky dovakcetechnikaaktivní nabídkybez dnů: NakupJedn × kusy × PocetDnupřesNakladyTest
po dnech: součetNakupJedn × KusuDenza den a dodavatele, pak hromadná sleva nákupuSmazání položky v kalkulaci step06VlozDELETE služby, inventáře, personálu, cateringu, aut podle cizího klíče + KodAkce. Techniku tady nemaže.Otevření bilance při aktivní nabídce step90.aspvolá!naklady/NakladyDelDELETE všech řádků dané akce a jedné KodNabidkasmaže i zaplacené řádky, pak je rozpis založí znovu Deaktivace nabídky NabidkuAktivuj(ak=2)DELETE KodTechnika > 0dané nabídkyaktivace jiné nabídky ( ak=1) staré řádky evidence nemazeSmazání / kopie akce AkceDel.asp,AkceDelKopieDELETE celé akce — Technika nemá vlastní
step90NakladySyncTechnika.
Do evidence se dostane jen z rozpisu nabídky.
Step14 (kusy po dnech) douctoevidencedodavatelunezapisuje, jen měnídovakcetechnikadatum.CenaDodavateleaKusuDen.Společný zápis
NakladyTesta všech sedm souborůstep90NakladySync*ukládajínakupcena = INT(Naklady_NakupCena) prodejcena = INT(Naklady_ProdejCena)
Hledání existujícího řádku:
KodAkce + kontakt + cizí klíč kategorie, u techniky navícKodTechnika(to jedovakcetechnika.kod, ne katalog) aKodNabidka,ORDER BY kod DESC LIMIT 1.2. Slevy nákupu techniky, které uživatel nastavuje
Nákup techniky je jednotka z
NakupJednVypocet.
Seznam nabídky, obrazovka dnů i objednávka dodavatele ji násobí kusy a dny.
Větev evidence bez dnů zapisuje stejný součin.
Větev po dnech násobí jednotku množstvímKusuDenjednou za den.Co uživatel nastaví Kde Jak má změnit nákup Dostane se do evidence? Sleva položky sleva(0–100 %)step14 u řádku, step10 u techniky v akci Snižuje prodej. U nákupu: při zapnutém koeficientu se nákup počítá až z ceny po této slevě. Při koeficient = 1u položky se stejné procento odečte z nákupního základu.Ano Větev bez dnů i větev po dnech ji předají do NakupJedn. Uloží se při otevření aktivní nabídky, u nezaplaceného řádku.Sleva / přirážka dodavatele SlevaDodavatel(−limit až +100)step14, samostatné pole vedle nákupu. Limit techniky je DodavatelTechnikaSlevy, u personálu technikyDodavatelTechnikaSlevyPersonal.Kladné číslo je přirážka k nákupu. Záporné číslo v NakupJednVypocet.aspnení prosté procento z nákupu: sleva z prodeje po slevě položky ve výšiabs(sleva) + (100 − limit).Ano Kladná je přirážka, záporná je sleva z prodeje přes limit. U personálu limit DodavatelTechnikaSlevyPersonal. Akce 4071, +4 % u Volfa: 8 400 → 8 736 a 4 440 → 4 618.Sleva a sleva dodavatele po dnech SlevaDen,SlevaDodavatelnadovakcetechnikadatumstep14, rozpis dne. Každý den může mít jinou slevu i jiného dodavatele. Stejná pravidla jako u řádku, ale za každý den: jednotka toho dne × KusuDen. Součet dnů je nákup položky.Stejná jednotka Obrazovka dne, seznam nabídky i součet pro evidenci volají NakupJedn. Evidence násobíKusuDenjednou za den a dodavatele.Koeficient vypnutý u položky dovtechnika.koeficient = 1karta techniky Nákup se nepočítá z prodeje děleno koeficientem. Bere se základ dodavatele a sleva položky i sleva dodavatele pořád platí. Ano Rozpis i součet po dnech čtou dovtechnika.koeficienta předají ho doNakupJedn.Hromadná sleva nákupu SlevaCelkemNakupaSlevaCelkemNakupPersonalkalkulace / akce, tabulka dovakcetechnikaslevy. Personál techniky má vlastní procento.Až po součtu řádků: procento z nákupu techniky a zvlášť z nákupu personálu. Na seznamu nabídky se ukáže jako „náklady celkem po slevě“. Ano Odečet je na každém řádku před zápisem a stejný součet je v NakladTechnikaCL.Hromadná sleva prodeje SlevaCelkem,SlevaCelkemPersonalstejný formulář Mění jen prodej, nákup ne. Do evidence nákupu nepatří. Dnes tam správně není. Pořadí, které sedí se seznamem nabídky a které má dostat evidence:
1. prodej po slevě položky (sleva / SlevaDen) 2. nákupní jednotka = NakupJednVypocet koeficient položky = 1 → základ dodavatele minus sleva položky jinak → prodej po slevě / Koeficient (personál: KoeficientPersonal) pak SlevaDodavatel > 0 přirážka, < 0 sleva z prodeje přes limit (technika: DodavatelTechnikaSlevy, personál: DodavatelTechnikaSlevyPersonal) 3. řádek = jednotka × kusy × dny po dnech: součet (jednotka toho dne × KusuDen), každý den se svou SlevaDen a SlevaDodavatel 4. teprve na součtu techniky / personálu hromadná sleva nákupu SlevaCelkemNakup a SlevaCelkemNakupPersonalDodavatel 0 má nákup 0 i se slevami. Kladná a záporná sleva dodavatele se nesmí sčítat stejným vzorcem: znaménko mění základ, ze kterého se procento počítá.
3. Chyby, které rozbíjejí součty
T1 Jednotka nákupu je sjednocená
Větev bez dnů i větev po dnech volají
NakupJednVypocet.asp.
PodmínkaDodavatelTechnikaSlevy > 0už nákup nevypíná.
Záporná sleva dodavatele je na obrazovce dnů stejná jako na seznamu nabídky (sleva z prodeje přes limit).
Uložení ve step10 a step14 zapisuje tuto jednotku doCenaDodavatelaCenaDodavatele.Větev bez dnů z ní skládá
nakupcena.
Větev po dnech ji násobíKusuDenjednou za den a dodavatele.T2 Součet po dnech bere KusuDen jednou za den
step10SoucetTechnikaPoDnechvezme z každého dne jeden hodinový řádek (MIN(kod)za den a dodavatele) a množstvíKusuDen.
Nákup dne jeNakupJedn × KusuDen.
Rozpis ten součet omezí naKodDodavatele, nabídku, místnost a balíček daného řádku akce, aby dva dodavatelé nedostali tutéž sumu.Naklady_Kusuje součetKusuDen. Filtr nájemce je naSQLaA.T3 Hromadná sleva nákupu je v evidenci i na obrazovce
SlevaCelkemNakupaSlevaCelkemNakupPersonalse odečtou z částky řádku před zápisem.
Stejné zaokrouhlené řádky se sečtou doNakupPoSleveTechnika/NakupPoSlevePersonala z nich jeNakladTechnikaCL, i kdyžJenPrepocitatnení prázdné.
DnuCelkemzůstává 1. Obrazovka „náklady před slevou“ ukazuje součet bez hromadné slevy, „po slevě“ součet zapsaných řádků.T4 Uložení jednotky volá NakupJedn
step10Vloz,step10VlozNovouTechniku,step14VlozPoDnechastep14VlozKusuDenAjaxukládají výsledekNakupJednVypocet.
KladnáSlevaDodavatelje přirážka. Personál ve step14 bereDodavatelTechnikaSlevyPersonal.Základ při
koeficient = 1je katalogdovtechnika.CenaDodavatele.
Když je katalog 0, použije se dříve uložená cena.
Obrazovka dnů i seznam nabídky počítají z téhož katalogu, aby se sleva na už uloženou jednotku nepočítala podruhé.SoucetTechnikaPoDnechProdejDodavatele(tisk prodeje podle dodavatele,PouzijNakupniCeny = 2) má u nákupu pořád starší vzorec s+ 0.7.
Do evidence nezapisuje.
Objednávkatechnika02při nákupních cenách jde přesSoucetTechnikaNakupDodavateleaNakupJedn.E1 Změna dodavatele přepíše stejnou položku
NakladyTesta sync ve step90 hledají řádek podle klíče položky bez kontaktu.
Nezaplacené duplicity stejné položky se smažou.
Nalezený řádek, i zaplacený, dostane novou cenu a nový kontakt.zaplatilazaplacenose nemění.
V součtu zůstane jeden dodavatel.E2 V evidenci zůstane aktivní nabídka
NabidkuAktivujpřiak=1smaže techniku (KodTechnika > 0) nabídek, které právě vypíná.
Mazání přiak=2je beze změny.step90astep06volajíNakladyDelpro celý seznamSESSION("NabidkaKod"), jenKodTechnika > 0a jen nezaplacené řádky.
Zaplacený řádek aktivní nabídky rozpis přepíše cenou a příznak úhrady nechá.Filtr nájemce v
NabidkaInfo3astep10NabidkaTechnikyse lepí naSQLx.E3 Zaplacený řádek dostane aktuální cenu
Update při
zaplatil <> 0proběhne. Cena a kontakt se přepíšou,zaplatilazaplacenozůstanou.
Bilance step90 tyto řádky už nemaže.E4 Jedno zaokrouhlení na řádku
nakupcenaaprodejcenajsouINT.
NakladyTesti sync ve step90 zaokrouhlí half-up jednou,Int(částka + 0.5).
Auta už před tímINT()nevolají.
Personál, služby a inventář posílají sazbu × kusy.E5 Místa: hodinová sazba se násobí hodinami
Při
SESSION("ProstorySazba") = 1je řádek nákupuSazbaNakup × CelkemHodin.
Ta částka jde do evidence, doNakladMistai doSazbaNakupN0.
Pole ve formuláři dál ukazuje uloženou sazbu.
SazbaNakupN0se sčítá až po načtení sazby z řádku.
Při sazbě 0 nebo 2 zůstává uloženáSazbaNakupčástkou řádku.
V této databázi jeProstorySazba = 2a u akce 4071 sedí evidence s uloženou částkou (sál 150 000 Kč, kusy 41 hodin).E6 Catering v evidenci je nákup objednávky
Když je vyplněná fakturační sazba, název a prodej na obrazovce mohou jít z
CenaFa.
Do evidence a do součtu nákupu jdeSazbaNakup × kusyobjednávky.SazbaNakupFase donakupcenanezapisuje.E7 Smazání techniky smaže nezaplacený řádek evidence
Uložení ceny do evidence dál proběhne při vykreslení kalkulace nebo bilance.
Smazání řádkudovakcetechnikasmaže nezaplacený řádek evidence se stejnýmKodTechnika,KodAkceaKodNabidka.
Vestep06Vlozse technika nemaže.Akce uživatele Co se smaže nebo přepíše uctoevidencedodavateluUložení řádku, step10 / step14 dovakcetechnika, denní rozpis, skladpři dalším rozpisu se přepíše cena a kontakt Smazání řádku, kusy = 0 ( step10Vloz.asp,step09Vloz)řádek techniky, dny, sklad nezaplacený řádek evidence se smaže, zaplacený zůstane Smazání celé nabídky ( step10NabidkaDel,step08NabidkaDel)nabídka, technika, dny, dodavatelé, sklad nezaplacená technika té nabídky se smaže Aktivace jiné nabídky ( ak=1)skladové pohyby a evidence vypínaných nabídek technika vypnutých nabídek zmizí Deaktivace nabídky ( ak=2)sklad + evidence KodTechnika > 0té nabídkybeze změny, smaže i zaplacené řádky té nabídky Otevření step90 / step06 při aktivní nabídce NakladyDelpro všechny aktivní nabídky, jen technika, jen nezaplacenérozpis vloží aktuální řádky. Zaplacený řádek se přepíše cenou. U služeb, inventáře, personálu, cateringu a aut
step06Vloz.asppři smazání evidenci maže hned. Technika se maže ve step10 a step09, nezaplacený řádek evidence jde s ní.4. Jak má částka sedět
Pro každou akci a každého dodavatele (
kontakt > 0):uctoevidencedodavatelu.SUM(nakupcena) = místa: součet nákupů míst (sazba × hodiny, pokud je sazba hodinová) + služby: Σ SazbaNakup × kusu + inventář: Σ SazbaNakup × kusu + personál: Σ SazbaNakup × kusu + catering: Σ SazbaNakup × kusu (nákup objednávky, ne CenaFa) + další: Σ DSazbaNakup × kusu + auta: Σ SazbaNakup × jednotka + technika: jen aktivní nabídka, až po slevách z části 2 bez rozpisu dnů: Σ NakupJedn × kusu × PocetDnu s KusuDen: Σ NakupJedn(dne) × KusuDen SlevaDen a SlevaDodavatel toho dne, seskupeno podle dodavatele a řádku akce, bez násobení počtem hodin pak hromadně: nákup techniky × (1 − SlevaCelkemNakup/100) nákup personálu × (1 − SlevaCelkemNakupPersonal/100)Větev bez dnů zapisuje
NakupJedn × kusy × PocetDnu. Větev po dnech zapisuje součetNakupJedn × KusuDen.
Obě částky se před zápisem zmenší o hromadnou slevu nákupu a zaokrouhlí jednou half-up (Int(částka + 0.5)), takže následnýINTvNakladyTestčíslo už nemění.Kontrola větvě bez dnů srovná
SUM(nakupcena)dodavatele se součtem objednávkytechnika02.
-
2026-09
- ISKASA - Skupiny prostor
Vlastní sady místností nezávislé na stromu areál → budova → místnost.
Sestavíte je jednou a v KPI podle prostor je vyberete jako filtr vytížení.
1. Co jsou skupiny prostor
Skupina prostor je sada místností, kterou si sestavíte sami — podle toho, jak chcete sledovat vytížení. Do jedné skupiny dáte třeba jen velké sály, jen sportoviště, nebo mix místností z různých budov a areálů.
Skupinu nastavíte jednou na stránce Skupiny prostor. Pak ji v KPI podle prostor vyberete jako filtr a uvidíte obsazenost, dny, hodiny, prodej a marži jen za tuto sadu.
Skupina nemění karty areálů, budov ani místností. Je to jen pohled navíc pro statistiku a provoz.
2. Rozdíl oproti areálu a budově
Prostory v DOVIS mají pevný strom:
Areál — lokalita (město, areál)
Budova — objekt v areálu
Místnost — konkrétní prostor s cenami
Tento strom zůstává. Skupina ho nahradit nemůže a nechce. Hodí se tam, kde strom nestačí: chcete sledovat najednou sály ze dvou areálů, nebo jen vybrané místnosti z jedné budovy (bez chodeb a zázemí).
Strom prostor
Organizační členění. Každá místnost patří do jedné budovy a jednoho areálu. Používá se v kalendáři, na kartách a při rezervaci.
Skupina prostor
Vaše sada pro KPI. Místnost může být v několika skupinách najednou. Nová místnost se do skupiny sama nepřidá — zaškrtnete ji při úpravě skupiny.
3. Seznam skupin
Na dovprostoryskupiny.asp vidíte své skupiny a skupiny, které kolegové označili jako sdílené.
Horní řádek skupiny ukazuje název, popis, počet prostorů a zda je skupina jen vaše, nebo sdílená. Ikony vpravo:
— otevřít KPI této skupiny
— upravit název, popis, sdílení a výběr místností
— smazat skupinu (místnosti v systému zůstanou)
Pod celým řádkem je přehled přidaných prostor. Každá karta má název místnosti a nad ním budovu. Kliknutím otevřete editaci karty prostoru, například dovmistnosti?action=add&mist=94.
Kliknutím na název skupiny otevřete stejný formulář jako ikona úpravy.
4. Vytvoření a úprava skupiny
1. Přidat novou skupinu
Tlačítko Přidat novou skupinu otevře formulář. Povinný je jen název (např. Velké sály, Sportoviště, GONG, atd...).
2. Vyberte prostory
Místnosti jsou seskupené podle areálu a budovy. Zaškrtněte ty, které do sady patří — i napříč budovami. Zaškrtávátko u názvu budovy označí nebo odznačí všechny její prostory. Pole nahoře seznam filtruje podle textu.
3. Uložte
Tlačítko Uložit skupinu zapíše název, popis, sdílení a aktuální zaškrtnutí. Později přidaná místnost v budově se do skupiny sama nedostane — skupinu znovu upravte a zaškrtněte ji.
5. Moje skupina a sdílená skupina
Moje
Vidíte ji jen vy. V KPI ji vyberete ve filtru skupina prostor. Úpravy a smazání může jen vlastník (nebo superadmin).
Sdílená
Zaškrtněte „nabízet tuto skupinu i ostatním uživatelům v KPI“. Kolegové ji uvidí v seznamu i ve filtru KPI. Upravit ji může stále jen ten, kdo ji založil.
6. Výběr skupiny v KPI
Otevřete KPI podle prostor. Vedle období a stavu opce je výběr skupina prostor. Po změně se stránka přepočítá.
Ikonka ozubeného kola u výběru otevře nastavení skupin. V banneru KPI se po výběru ukáže název skupiny. Tisk a Excel berou stejný filtr.
Kliknutím na název místnosti v tabulce otevřete seznam akcí tohoto prostoru (stejné období a stav opce). Skupina v adrese zůstane, abyste se mohli vrátit k celé sadě.
7. Co KPI u skupiny počítá
Bez skupiny ukazuje KPI jen místnosti, které v období měly aspoň jednu rezervaci. Se skupinou ukáže všechny zaškrtnuté místnosti — i ty s nulovou obsazeností. To je záměr: vidíte, co ze sady leží ladem.
Údaj Význam u skupiny
Akcí / dnů / hodin Rezervace vybraných místností v období (stejně jako u běžného KPI prostor).
Obs. % Dny rezervací / kalendářní dny filtru. U součtu skupiny se dny sčítají přes místnosti, proto může být nad 100 %.
Prodej, náklady, marže Sazby z karet prostor, jen za místnosti ve skupině.
Součet celkem Součet řádků skupiny, ne unikátní počet akcí (akce ve dvou sálech se započítá u obou).
Ostatní filtry KPI (období, rok, stav opce, středisko, obchodník) platí i se skupinou.
8. Tipy pro běžnou práci
Pojmenujte skupinu podle účelu, ne podle jedné budovy — např. Pronájem víkend místo Hala 1.
Jedna místnost smí být ve více skupinách. KPI ji pak uvidíte v každé vybrané sadě zvlášť.
Po stavební změně (nový sál, sloučení místností) skupinu zkontrolujte a zaškrtnutí upravte.
Sdílejte jen sady, které má používat celý tým. Osobní pohledy nechte jako „moje“.
Z KPI se ke skupině vrátíte ikonkou ozubeného kola u filtru.
2026-08
ISKASA - Vkládání a editace techniky v nabídce
Tento popis platí pro práci s technikou v akci (nabídka) a související kontroly skladu, servisu a zápůjček.
Úpravy se u většiny polí ukládají ihned, bez nutnosti stisknout tlačítko dole na stránce.
Tlačítka hromadného uložení zůstávají jako záloha.
1. Pořadí práce s nabídkou
Technika se váže na vybranou nabídku a na akci. Horní lišta na stránce nabídky techniky má tyto kroky:
- Nabídka — výběr nebo vytvoření nabídky.
- Akce — přiřazení akce k nabídce (
step14.asp?action=akce). - Termín — datum a čas od–do pro techniku. Změna termínu může zrušit již nastavené denní slevy.
- Po dnech — zobrazí se jen pokud je zapnuté nastavení denních slev a termín je vyplněný. Adresa:
step14.asp?action=podnech&aa=číslo_akce. - Místo — výběr prostoru pro techniku.
Dále je možné nabídku kopírovat a tisknout.
Hlavní obrazovka vložené techniky: /step14?aa=číslo_akce.
Katalog k přidání položek: /step14?aa=číslo_akce&kk=kategorie (případně s kodp, p osobní/technika, mista).
2. Vložení techniky z katalogu
Po výběru kategorie se zobrazí seznam položek ze skladu (dovtechnika). Každý řádek má:
- název položky a případně dodavatele,
- sklad (název skladu),
- skladové kusy a odpočty (servis, půjčka, jiná akce),
- pole KS (počet kusů),
- slevu % (prodej),
- cenu (denní sazba, nebo výběr hodina / půlden / den podle nastavení),
- poznámku.
Jak se položka vloží
- Do pole KS zadejte počet kusů větší než 0.
- Po chvíli (nebo po opuštění pole) se řádek sám uloží do nabídky akce. Není třeba tlačítko dole.
- Řádek, který už v nabídce je, je označený jako vložený (zelený). KS, sleva a cena jdou dál měnit na místě.
- KS = 0 u položky v akci položku z nabídky odebere.
U zápůjčky (rental, step100) se stejný katalog ukládá do zápůjčky, ne do akce. KS = 0 tam zápůjčku ukončí (nastaví datum konce), záznam nemaže.
Barvy a stavy v katalogu
- běžný řádek — položka ještě není v této nabídce,
- zelený řádek — položka už v této nabídce je, lze ji upravovat,
- červený rámeček / hláška „Chybí kusy na skladě“ — zadané KS překračují volné kusy,
- u sloupce skladu: žlutě servis, oranžově půjčka, červeně obsazení v jiné akci.
3. Editace už vložených řádků (seznam nabídky)
Stránka step14.asp?aa=číslo_akce (bez kategorie kk) ukazuje techniku, která už v nabídce je, seskupenou podle kategorií.
Sloupce řádku
| Sloupec | Význam | Uložení |
|---|---|---|
| Položka | Název, sklad, odpočty servis / půjčka / jiná akce, dodavatel. Odkaz „rozdělit“ rozdělí kusy na více dodavatelů. Odkaz na chybějící kusy otevře doplnění. | — |
| Dnů (nebo Hod/Pul/Den) | Počet dní z termínu. Pokud je zapnutý výběr sazby, lze počet opravit ručně. | hned při změně |
| Kusů | Počet v nabídce. 0 = smazání z akce (řádek zmizí). Maximum je volný sklad. | hned při změně |
| Sleva% (prodej) | Sleva z prodejní ceny. Ovlivní prodej celkem a při přepočtu i nákup (přes koeficient). | hned při změně |
| Prodej/ks | Jednotková prodejní cena. | hned při změně |
| Prodej celkem | Prodej po slevě × kusy × dny. Počítá se na obrazovce automaticky. | odvozeno |
| Nákup/ks | Nákupní cena od dodavatele. Bez dodavatele je 0. Lze zadat ručně. | hned při změně |
| Sleva% (nákup, +/-) | Přirážka nebo sleva k nákupu. Po změně se Nákup/ks ihned přepočítá (prodej po slevě / koeficient, pak +/-) a uloží. | hned při změně |
| Nákup celkem | Nákup/ks × kusy × dny. Počítá se automaticky včetně součtů kategorií a celku. | odvozeno |
Jak poznáte, že se uložilo
Pole po úspěšném uložení krátce zezelená. Při chybě skladu zůstane červená hláška a hodnota se neuloží nad volný počet.
Další akce na této stránce
- Aktualizuj techniku — hromadné uložení celého formuláře (záloha k okamžitému ukládání).
- Smazat vše z aktuální nabídky.
- Křížek u položky v rozpisu po dnech odebere položku z nabídky (KS = 0).
- Rozdělení na dodavatele:
step12. - Doplnění chybějících kusů:
step11.
Fakturovaná akce (fakturace = 100) se měnit nedá.
4. Rozpis po dnech
Adresa: step14?action=podnech&aa=číslo_akce.
Každá položka má pod sebou jeden řádek na každý den termínu.
Co lze na dni měnit
| Pole | Chování |
|---|---|
| Kusů | Počet na daný den. 0 = den se do nabídky nepočítá (nákupní údaje dne se vynulují). Maximum = volný sklad (zásoba minus servis, půjčka a jiné akce), ne celá zásoba. |
| Prodej | Cena za kus na den. Ukládá se ihned. Přepočítá nákup, pokud se používá koeficient. |
| Sleva (prodej) | Sleva z prodeje na den. Ukládá se ihned. Přepočítá nákup. |
| Celkem | Prodej po slevě × kusy daného dne. |
| Nákup | Nákup/ks. Bez dodavatele 0. Lze přepsat ručně; uloží se ihned. |
| Sleva +/- | Procento k nákupu. Po změně se nákup ihned přepočítá a uloží (včetně nákup celkem). |
| Nákup celkem | Nákup × kusy dne. |
| Poznámka | Text k danému dni (hromadné uložení tlačítkem). |
Tlačítko Aktualizuj slevy hromadně uloží všechny dny najednou (včetně poznámek). Běžné změny kusů, cen a slev jdou bez něj.
Počet dní a kusy v hlavičce položky se z denních řádků dopočítají (dny s KS > 0, kusy = maximum přes dny).
Změna kusů v katalogu / v seznamu nabídky se do denních řádků propsala tak, že se aktualizuje počet kusů; pokud už den má KS > 0, upraví se i denní kusy, ceny dne a slevy dne se nemění.
5. Sledování skladu
Výpočet volných kusů
Pokud má položka v katalogu SkladZasoba = 0, počet se neomezuje (nesledovaný sklad).
Pokud je zásoba větší než 0:
Volno = zásoba − kusy v otevřeném servisu − kusy v otevřené zápůjčce − kusy obsazené v jiných nabídkách/akcích ve stejném období.
- Servis — každý otevřený záznam servisu (bez data konce) počítá 1 kus. Odkaz vede na
technikaservis?tt=kód_techniky. - Půjčka / zápůjčka — součet kusů v
rentpujckabez data konce. Odkaz natechnikazapujcka - Jiná akce — obsazenost v jiných nabídkách, pokud je zapnutá povinná kontrola nabídek. Tooltip ukáže název akce.
Zobrazení u položky vypadá typicky takto: sklad: 5 ks -1 servis -2 půjčka -3=akce, volných tedy 0 nebo kladný zbytek.
Do pole KS nelze zadat víc než volno (omezuje to pole i server). Pokus o překročení se neuloží a ukáže chybu.
Kde se kontrola provádí
- při vkládání z katalogu (akce i zápůjčka),
- při úpravě kusů v seznamu nabídky,
- při úpravě kusů po dnech (maximum je volno, ne plná zásoba),
- na serveru při uložení, i když by prohlížeč kontrolu minul.
6. Zápůjčky (rental)
Stránka: step100(přes seznam rentalu). Používá stejný katalog jako nabídka, ale ukládá do tabulky zápůjček, ne do akce.
- Zadání KS > 0 založí nebo aktualizuje zápůjčku (kusy, poznámka).
- KS = 0 nastaví datum konce zápůjčky (technika se vrací, znovu se počítá do volného skladu).
- Probíhající zápůjčka snižuje volné kusy ve všech obrazovkách (nabídka, katalog, po dnech).
- Ukládání je také okamžité, bez spodního tlačítka.
7. Servis
Stránky: technikaservis.asp, seriová čísla technikaserial?tt=kód.
- Nový servis se zakládá ze seriového čísla (odkaz na servis u konkrétního kusu).
- Vyplní se název, sériové číslo, datum předání do servisu, popis, volitelně fotografie / dokument.
- Fotku lze vynechat — záznam servisu se i tak uloží.
- Otevřený servis (bez data „ze servisu“) drží kus mimo volný sklad.
- Datum konce servisu kus uvolní. Editace existujícího záznamu je u záznamu s dokumentem / kódem servisu.
- Seznam servisu lze tisknout.
V nabídce a v katalogu je u položky vidět počet kusů v servisu a odkaz na kartu servisu.
8. Další kontroly a možnosti
Obsazenost v jiné akci
Stejná položka ve stejném termínu v jiné nabídce snižuje volno. V katalogu může být řádek označený jako obsazený s odkazem na tu akci. Tooltip vypíše název akce.
Dodavatel a nákup
- Bez dodavatele je nákup 0 a sleva nákupu se nepoužije.
- Nákup se standardně odvozuje z prodeje po slevě děleného koeficientem odběratele, pak se na něj uplatní Sleva +/-.
- Pokud má položka v katalogu vypnutý koeficient, nákup se z procent nepřepočítává a bere se původní nákupní cena.
- Hlavička „Nákup −20 %“ je výchozí sleva / koeficient z nastavení, ne totéž co ruční Sleva +/- na řádku.
Technika vs. personál
Položky mají příznak technika / personál. Koeficient a slevy nákupu se berou z odpovídajícího nastavení (jiné sazby pro personál).
Balíčky
V katalogu se zobrazují i balíčky. Vložení balíčku přidá jeho složení, ne jen jednu volnou položku.
Historie změn
Úpravy kusů, cen a slev se zapisují do historie techniky (kdo, kdy, původní a nový stav), včetně denního rozpisu.
Skladové karty
Je-li zapnutý modul skladových karet, pohyby se zakládají / aktualizují podle kusů a nákupu v nabídce (i po dnech).
Tisk a kopie
Nabídku lze tisknout a kopírovat do nové nabídky. Po kopii znovu zkontrolujte termín, místo a volný sklad — obsazenost a servis se počítají aktuálně.
9. Přehled: co se uloží samo a co tlačítkem
| Obrazovka | Uloží se samo | Tlačítko / jiná akce |
|---|---|---|
| Katalog (akce) | KS, sleva, cena, poznámka | — |
| Katalog (zápůjčka) | KS, poznámka | — |
| Seznam nabídky | KS, slevy, ceny, nákup, dny | Aktualizuj techniku, Smazat vše |
| Po dnech | KS, prodej, sleva, nákup, sleva +/- | Aktualizuj slevy hromadně (včetně poznámek) |
| Servis | — | Vložit servis (i bez fotky) |
10. Časté situace
Zadám 5 ks, na skladě je 5, ale 3 jsou v akci a 1 v servisu
Maximum je 1. Pole i server to odmítnou. Nejdřív uvolněte kus z jiné akce, servisu nebo zápůjčky.
Změním nákupní slevu a nákup se nehne
Řádek nemá dodavatele, nebo má položka vypnutý koeficient. U žlutých řádků bez dodavatele zůstane nákup 0.
Po změně kusů v nabídce nesedí dny
Otevřete rozpis po dnech a zkontrolujte jednotlivé dny. Nulový den se do počtu dní nepočítá.
Akci nejde uložit
Akce je fakturovaná, nebo chybí přihlášení / právo na nabídky techniky.
Dokument popisuje chování po úpravách okamžitého ukládání, kontroly volného skladu (servis + zápůjčka + jiné akce) a přepočtu nákupu při změně slevy +/- na seznamu nabídky i v rozpisu po dnech.
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)