MyInvoice MyInvoice.cz Manuál
Stáhnout PDF Zpět na hlavní stránku

36. Nastavení

V hlavním menu Systém je rozbalovací podmenu se sekcemi pro konfiguraci aplikace:

Správa opakovaně používaných fakturačních položek je kvůli návaznosti na vystavování dokladů v menu Prodej → Ceník.

Brandingové profily

Brandingové profily jsou volitelný modul, který se zapíná v nastavení dodavatele. Dokud je vypnutý, faktury a e-maily používají původní údaje a branding dodavatele. Po zapnutí lze vytvořit profily pro různé obchodní značky. Profil může změnit logo, zobrazovaný název, slogan, barvu, kontaktní údaje a patičku e-mailu. Právní údaje dodavatele (firma, adresa, IČ a DIČ) zůstávají společné a profilem se nemění.

Výchozí profil se použije vždy, když faktura, pravidelná fakturace ani zákazník neurčují jiný profil. Výchozí profil není povinný. Přepínač Používat vlastní branding v jednotlivém profilu řídí zobrazení jeho loga a barev v e-mailech i PDF.

Každému profilu lze přiřadit také e-mailový profil odesílatele. Ten určuje SMTP účet, adresu odesílatele, Reply-To a případné podepisování zpráv. Není-li vybrán, použije se výchozí e-mailový profil dodavatele.

E-mailový profil, který používá některý brandingový profil, nelze smazat. Chybová zpráva vypíše dotčené profily; nejprve jim nastav jiného odesílatele nebo výchozí profil dodavatele.

Výchozí profil lze přiřadit zákazníkovi. Nový koncept faktury jej převezme a při vystavení se použitá identita uloží do snapshotu dokladu. Pozdější změna profilu nebo nahrání nového loga proto nezmění již vystavené faktury.

Akce Náhled e-mailu u profilu zobrazí jeho logo, barvu, zobrazovaný název, kontakty i vlastní patičku. V náhledu lze přepínat mezi českou a anglickou variantou. Původní konfigurace brandingu e-mailů se používá při vypnutém modulu. Obsahové e-mailové šablony zůstávají společné pro dodavatele a spravují se odděleně na stránce E-mail šablony.

36.1 Číselníky

Systém → Číselníky.

Číselníky — Měny
Číselníky — Měny

4 záložky:

36.1.1 Měny

Měny a bankovní účty aktuálního dodavatele jsou soustředěné na stránce Finance → Bankovní účty (viz 37. Bankovní účty). Každý řádek představuje jeden bankovní účet v dané měně; pokud máš víc účtů pro stejnou měnu, založ více řádků se stejným kódem měny.

PoleVýznam
KódISO 4217 — CZK, EUR, USD, GBP
Označení„CZK — KB", „EUR — Fio" — pro UI rozlišení (víc účtů per měna)
Symbol, , $, £
Název CS / EN„Koruna" / „Crown"
DecimalsPočet desetinných míst (2 typicky)
AktivníVypnutá měna nelze pro nové faktury
Default pro kódPokud máš víc účtů per měna (např. 2× CZK), který je default
Účet (CZK)Číslo účtu (např. 1000000005) + bank kód (0100) + název banky
Účet (EUR)IBAN + BIC + název banky

⚠️ Po změně bankovního účtu se automaticky invaliduje PDF cache všech faktur, které renderují bank info live (drafty + faktury bez snapshotu). Faktury v stavu issued+ mají immutable bank_snapshot.

Na stejné stránce je i konfigurace bankovních e-mailových avíz: IMAP účty, mapování bankovní účet → IMAP účet → parser, parser provideri a přehled zpracovaných e-mailů. Detail je v § 24.7 Bankovní e-mailová avíza.

36.1.2 Sazby DPH

Číselníky — DPH
Číselníky — DPH
PoleVýznam
KódCZ-21, CZ-12, CZ-0, CZ-RC
Sazba21, 12, 0, 0
StátCZ (zatím)
Popisek CS / ENPro UI / PDF
DefaultKterá sazba se předvyplní v editoru
Reverse chargeZatrhneme pro CZ-RC
Platnost odPro historické faktury (15 % v roce 2023)

36.1.3 Země

Statický číselník — nemělo by být potřeba editovat. Obsahuje 200+ zemí podle ISO 3166-1.

36.1.4 Jednotky

Číselník měrných jednotek pro položky faktury. Globální (sdílený mezi dodavateli), nahrazuje volný textový vstup za dropdown.

PoleVýznam
KódKrátký identifikátor (h, ks, den, měs.)
Popisek CS / ENCo se zobrazí v UI / PDF (hodina / hour)
DefaultKterá jednotka se předvyplní při přidání nové položky (typicky h)
PořadíČíslo pro řazení v dropdownu

💡 Default = hodina dává smysl, protože nová položka přebírá hodinovou sazbu z projektu/klienta. Pro jednorázové položky (paušál, licence, materiál) jednotku ručně přepneš.

🛈 Auto-clean prázdných položek — při uložení faktury se řádky bez popisu i bez ceny tiše smažou. Můžeš tedy v editoru přidat víc řádků na zásobu a nepoužité se neuloží.

36.1.5 Ceníkové položky

Prodej → Ceník (jen administrátor) spravuje ceník aktuálního dodavatele. Každá položka má kód, název, fakturační popis, jednotku, sazbu DPH a povinnou základní cenu v jedné měně. Kód je unikátní pouze v rámci dodavatele. Přehled lze prohledávat a filtrovat podle měny a aktivního či archivovaného stavu.

Pro další aktivní měny lze zadat vlastní pevnou cenu. Když zapneš Povolit přepočet kurzem ČNB, chybějící měnová cena se dopočte ze základní ceny. Pevná cena v cílové měně má vždy přednost. Náhled ukazuje zdrojovou cenu, výslednou částku, křížový kurz a skutečné datum použitého kurzovního lístku.

V sekci Individuální ceny zákazníků lze pro položku, zákazníka a měnu zadat odlišnou cenu. Pořadí použití je:

  1. individuální cena zákazníka v měně dokladu,
  2. obecná pevná cena v měně dokladu,
  3. individuální cena zákazníka v základní měně přepočtená kurzem,
  4. obecná základní cena přepočtená kurzem.

U uložené individuální ceny se zobrazuje také počet opakovaných šablon daného zákazníka, které jsou na položku napojené.

Ceníková položka určuje, zda jsou její ceny s DPH, nebo bez DPH. Do dokladu či šablony ji lze vložit jen při shodném režimu. Používaná položka se při smazání archivuje, aby zůstaly zachované vazby a pevné snapshoty šablon.

36.2 Uživatelé

Systém → Uživatelé (jen pro admina).

Uživatelé
Uživatelé

Tabulka uživatelů, kteří se mohou přihlásit. Tlačítko + Nový uživatel.

36.2.1 Pole formuláře

PoleVýznam
JménoZobrazení v UI
E-mailLogin
HesloMin. 12 znaků
Roleadmin / accountant / readonly
Jazykcs / en
AktivníVypnutý uživatel nemůže se přihlásit

36.2.2 Role

RoleCo může
adminVše — vystavování, konfigurace, uživatelé, force editace, smazání
accountantVystavování faktur, klienti, banka, exporty, daňové výkazy. Bez konfigurace systému, bez force editace, bez správy uživatelů
readonlyVidí totéž co účetní — vč. exportů a daňových výkazů (DPH/KH/…) — a smí data exportovat, ale nic nemění (nezakládá, neupravuje, nemaže). Vhodné pro auditora / klienta

🛈 Rozdíl mezi accountant a readonly je jediný: zápis. Obě role vidí a exportují stejná data; readonly jen nemá žádná tlačítka pro úpravy. Úplná matice oprávnění je v § 39.5 RBAC.

🛈 Systém má guard proti odebrání posledního aktivního admina — pokud jsi sám admin a zkusíš si snížit roli, vrátí 409. Musí být minimálně 1 admin v systému.

36.2.3 Přístup k firmám

V editaci uživatele je sekce Přístup k firmám se seznamem dodavatelů zavedených v instalaci. Slouží k tomu, aby externí účetní nebo auditor viděl jen jednu z firem, které v aplikaci vedeš.

StavCo uživatel vidí
Nic nezaškrtnutoVšechny firmy (výchozí stav — po upgradu se nic nemění)
Zaškrtnuté firmyJen vybrané firmy — v přepínači i v datech

U každé zaškrtnuté firmy lze navíc zvolit roli pro tuto firmu. Prázdná volba (*— globální role —*) znamená, že platí role uživatele z formuláře výše; konkrétní volba ji pro danou firmu přepíše. Typicky: globální accountant, který má být v jedné z firem jen readonly.

🛈 Role admin je celoinstanční — přiřazení firem se u ní neuplatní a admin vidí vždy všechny firmy. Proto se instalace nedá „vyzamknout". Ze stejného důvodu nejde per-firmu nastavit role admin, jen accountant a readonly.

Omezení hlídá server, ne jen UI:

36.3 Můj profil

Pravý horní roh → klik na jméno → Můj profil. Stejná obrazovka jako § 7.5 Můj profil — viz screenshot tam.

Můžeš si změnit:

Přidání nebo odvolání passkey vyžaduje čerstvý passkey/TOTP step-up; první passkey účtu bez silného faktoru vyžádá aktuální heslo. Odvolání passkey zneplatní ostatní session účtu. Při povinném MFA nelze odebrat poslední povolený silný faktor.

V uživatelském menu je také akce Zamknout. Správce nastavuje výchozí serverový zámek a současně horní limit osobní volby v cfg.php:

'session' => [
    'lock_after_minutes' => 15, // kladná hodnota zámek zapne; výchozí je 0
],

Stejné nastavení lze předat přes MYINVOICE_SESSION_LOCK_AFTER_MINUTES. Automatický zámek je ve výchozím stavu vypnutý (0). Při této hodnotě jej může uživatel dobrovolně zapnout v profilu v rozsahu 1 až 1440 minut. Kladná hodnota správce platí pro uživatele, kteří zvolili Použít nastavení správce, a je nepřekročitelným maximem; vlastní interval proto může být jen stejný nebo kratší. Ruční zamknutí zůstává dostupné vždy. Podrobnosti jsou v 39. Bezpečnost.

36.4 E-mailové šablony

Systém → E-mail šablony.

E-mail šablony
E-mail šablony

Seznam šablon:

KódPoužití
invoice_sendOdeslání faktury klientovi
invoice_reminderUpomínka po splatnosti
proforma_reminderPřipomínka nezaplacené zálohové faktury
invoice_payment_thanksPoděkování za úhradu (viz § 33.5.5) — má i variantu pro zálohu
invoice_approvalŽádost o schválení výkazu víceprací zákazníkem
recurring_draft_reminderPřipomínka otevřeného konceptu pravidelné fakturace
password_resetReset hesla (system)
login_otpOvěřovací kód pro přihlášení (system)
welcomeUvítací e-mail novému uživateli
testPro Test odeslání (debug)

36.4.1 Editor šablony

Klik na řádek → editor.

Záložky podle jazyka × formátu:

Editor je CodeMirror s syntaxí Twig.

36.4.2 Předmět

Pole nahoře, podporuje placeholders ({{ varsymbol }}, …).

36.4.3 Test odeslání

Tlačítko Test e-mail dole — pošle vyplněnou šablonu na tvůj e-mail (přihlášeného admina) s vzorovými daty (faktura 2605001, klient „Test Klient s.r.o.", …).

36.4.4 Placeholders

Závisí na typu šablony. invoice_new:

PlaceholderVýznam
{{ varsymbol }}Variabilní symbol
{{ amount }}Částka (formátovaná)
{{ currency }}Měna
{{ due_date }}Splatnost
{{ client_name }}Klient
{{ supplier_name }}Dodavatel
{{ pdf_url }}Odkaz pro stažení PDF (pokud máš public link)

36.5 Activity log

Systém → Activity log.

Activity log
Activity log

Audit všech mutací — kdo a kdy co změnil. Lze filtrovat:

FiltrHodnoty
Akceinvoice.created, invoice.issued, invoice.sent, invoice.paid, client.updated, …
UživatelDropdown se všemi
EntitaTyp (invoice / client / project / …) + ID
IPIPv4 / IPv6
ObdobíMěsíc / vlastní rozsah
DodavatelPer-dodavatel filtrování

Použití:

🛈 Activity log se nepromaže automaticky. Cron cron-cleanup.sh standardně neničí activity log, ale lze nastavit retention v cfg.php → app.activity_log_retention_days.

36.6 Elektronické podpisy

Elektronické podpisy mají vlastní stránku Systém -> Elektronické podpisy. Aktuální konfigurace už není jeden certifikát dodavatele, ale sada podpisových profilů a mapování pro jednotlivé výstupy. Detailní postup je v kapitole 28. Elektronické podpisy.

36.7 Odesílací e-mailové profily

Systém → E-maily → záložka Odesílací profily definuje identitu, pod kterou aplikace posílá odchozí e-maily aktuálního dodavatele.

Profil obsahuje:

Povinná pole jsou ve formuláři označená hvězdičkou. Před uložením i před odesláním testu aplikace zkontroluje aktuálně zobrazené povinné položky (Reply-To, DKIM, SMTP autentizace a IMAP podle zapnutých voleb) a bez jejich vyplnění akci nespustí.

Ve formuláři profilu i u každého uloženého profilu je akce Test, která pošle krátký testovací e-mail na e-mail přihlášeného uživatele, případně na e-mail dodavatele nebo globální cfg.php → smtp.from_email. Test ve formuláři použije aktuálně vyplněné hodnoty bez uložení do databáze. Test použije přímo vybraný profil, i když není výchozí, takže ověřuje jeho From, Reply-To, DKIM/S/MIME, transport i volitelné uložení do IMAP složky. Po testu formulář zobrazí buď chybu vrácenou serverem, nebo informaci, že transport e-mail přijal, včetně poslední SMTP/transport odpovědi, pokud ji backend získal. Pokud je zapnuté IMAP ukládání, test zároveň zobrazí, zda se kopie uložila do zadané složky. Při výchozí politice chyba IMAP uložení nemění fakt, že transport e-mail přijal. Pokud má profil nastaveno Hlásit chybu archivace, chyba uložení do IMAP se zapíše jako chyba archivace po doručení. Aplikace ale e-mail znovu neposílá, protože transport ho už přijal a opakování by mohlo vytvořit duplicitu u příjemce.

Když existuje aktivní výchozí profil, používá ho Mailer pro všechny odchozí e-maily daného dodavatele. Pokud žádný aktivní výchozí profil není, chování je stejné jako bez profilů: From se bere z globální SMTP konfigurace a jméno odesílatele z dodavatele. Fallback na e-mail dodavatele nebo globální cfg.php → smtp.reply_to_* se pro Reply-To použije jen v tomto režimu bez aktivního profilu. Stejně tak globální DKIM doména/selector z cfg.php platí jen bez aktivního profilu; profil s vypnutým DKIM se nepodepisuje. Ukládání do IMAP složky se také používá jen tehdy, když je zapnuté přímo v aktivním profilu. Bez profilu ani při vypnuté volbě se žádný globální fallback nepoužije.

Privátní DKIM klíč je stále globální v cfg.php. Odesílací profil může kromě identity zprávy změnit i samotný transport, pokud je potřeba posílat pro různé domény přes různé SMTP účty nebo lokální MTA.

36.8 SMTP log analýza

Systém → E-maily → záložka SMTP log analýza. Přístup pouze pro admin.

Zatímco *Odeslané e-maily* ukazují, co se aplikace pokusila poslat (z pohledu aplikace), tahle záložka ukazuje, co se reálně stalo na poštovním serveru — kam byla zpráva doručena a kde nastal problém. Čte přímo logy MTA (poštovního serveru) a převádí je na přehledný seznam událostí. Jen čte; nic neodesílá ani nemění.

36.8.1 Co uvidíš

Druhy událostí (sloupec *typ*):

TypVýznam
podáníZpráva vstoupila na server (klient/aplikace → MTA). Tady je vidět obálka tak, jak byla podána — pozná se tu např. chybějící příjemce.
doručeníPokus o doručení na cílový MX. Nese výsledný stav a odpověď.
událostInformativní/chybový záznam vázaný na zprávu (odložení, relay na smart host).

Stavy:

StavVýznam
DoručenoCílový server zprávu přijal (2xx po DATA).
ZařazenoPřijato k doručení (podání), zatím neodesláno dál.
OdloženoDočasné selhání (4xx) — greylisting, plná schránka, rDNS. Server to zkusí znovu.
OdmítnutoTrvalé odmítnutí (5xx) — antispam politika, neexistující schránka, neověřený odesílatel.
ChybaNeúplný dialog / chyba spojení.

🛈 Box „SMTP analýza" v detailu faktury. Když je analýza zapnutá, najdeš u každé odeslané faktury (sekce pod historií PDF a aktivitou, jen pro admina) rozbalovací box, který na kliknutí dohledá v logu doručení právě této faktury — prohledá den odeslání a následující den pro její příjemce a ukáže per-příjemce stav (doručeno / odloženo / odmítnuto) i jednotlivé pokusy s odpovědí serveru.

36.8.2 Typické použití

36.8.3 Nastavení

Konfigurace je v cfg.php (vzor v cfg.sample.php) v sekci smtp_log:

KlíčVýznam
enabledtrue = záložka je aktivní.
connectorParser pro konkrétní server: hmailserver nebo mailenable.
pathGlob vzor k log souborům (absolutní cesta). Hvězdička pokryje denní rotaci.
max_filesStrop počtu souborů (nejnovější dle data).
max_bytesStrop velikosti čteného souboru; větší se čtou od konce.

Příklady cest:

🛈 Podpora dalších serverů (Postfix, Exim…) je připravená architektonicky — stačí doplnit nový konektor; konfigurace zůstává stejná, jen se změní connector.

36.8 Tipy