18. Více dodavatelů z jedné instalace

MyInvoice umožňuje fakturovat za libovolný počet dodavatelů (firem / IČO) z jedné instalace. Typické scénáře:

Data jsou plně izolovaná — klienti jednoho dodavatele nejsou viditelní pro druhého, faktury mají vlastní řadu varsymbolů, číselné cykly, e-mailové šablony atd.

18.1 Jak to vidět v UI

Po přihlášení se v horní liště zobrazí přepínač dodavatele:

Přepínač dodavatele
Přepínač dodavatele

Při přepnutí:

18.2 Přidání nového dodavatele

V hlavním menu Systém → Dodavatelé.

Seznam dodavatelů
Seznam dodavatelů

Tabulka:

SloupecVýznam
NázevNázev firmy / OSVČ
IČOČeské IČO
DIČDaňové ID
MěnPočet aktivních měn (= počet bankovních účtů)
KlientůPočet klientů pod tímto dodavatelem
FakturPočet vystavených faktur
VytvořenDatum

Tlačítko + Nový dodavatel vpravo nahoře.

18.2.1 Modal nového dodavatele

Nový dodavatel — ARES
Nový dodavatel — ARES
PoleVýznam
IČOZadej a klikni Načíst z ARES — předvyplní zbytek
FirmaNázev
DIČ(volitelné, OSVČ neplátce nech prázdné)
AdresaUlice / Město / PSČ / Stát
E-mail / telefonKontakt
První bankovní účetCZK účet (číslo + bank kód) — automaticky se založí v měně CZK

Po Vytvořit je dodavatel okamžitě v dropdownu, můžeš na něj přepnout.

18.3 Co je per-dodavatel (izolované)

Každý dodavatel má vlastní:

18.4 Co je sdílené (cross-supplier)

18.5 Editace dodavatele

Systém → Dodavatelé → klik na řádek → Editovat.

Záložky:

18.5.1 Základní údaje

Stejné jako při založení (IČO, název, adresa, kontakt). Změna se projeví na NOVÝCH fakturách. Vystavené mají vlastní snapshot.

18.5.2 E-mail branding

From / Reply-To se odvozuje automaticky:

PoleVýznam
From: jménodisplay_name dodavatele (fallback company_name) — místo „myinvoice@server"
Reply-Toemail dodavatele — odpovědi klientů jdou rovnou na firemní mail

Vlastní branding emailů + PDF (od v2.1.0)Systém → Dodavatelé → detail dodavatele → sekce „Branding emailů". Nahraď default „M" logo MyInvoice vlastním logem firmy a navol akcent barvu. Když je branding zapnutý, použije se logo i akcent barva jak v e-mailech, tak v PDF faktur (logo v hlavičce místo textového jména firmy, akcent barva na akcentech celého dokladu). Když je vypnutý, e-mail i PDF se vrátí k default MyInvoice „M" brandingu a fialové barvě — toggle gatuje obojí konzistentně.

Branding emailů — toggle, logo, akcent barva, live preview
Branding emailů — toggle, logo, akcent barva, live preview
PoleCo dělá
Použít vlastní brandingToggle vpravo nahoře (default vypnuto = MyInvoice branding). Pokud zapnuté, hlavička emailů i PDF se sestaví z polí níže.
LogoUpload PNG / JPG / SVG (max 1 MiB, ideálně do 200 KiB). Pro raster ideální výška 240 px (zobrazí se v emailu jako 48 px na 5× retině). SVG: originál se uloží pro PDF (vektor = crisp v libovolném zoomu), pro email se serverstrana převede na transparentní PNG (Outlook a Gmail SVG strippují) — primárně přes PHP Imagick extension (cross-platform — Windows i Linux), fallback na rsvg-convert CLI (librsvg2-bin). Logo se v emailu připojí jako CID inline image, takže se zobrazí bez „Display images" promptu v Gmailu/Outlooku. Tlačítka Nahradit logo / Odebrat.
Akcent barvaHex #RRGGBB — akcentová barva celého e-mailu (částky, tlačítka, odkazy, náhradní „M" box) i PDF faktury (linka pod hlavičkou, hlavička tabulky položek, řádky „Celkem" / „K úhradě", labely, popisky QR/banky, nadpis a odkaz výkazu víceprací). Aplikuje se jen při zapnutém brandingu; jinak default #3B2D83 (fialová MyInvoice). Sémantické barvy (dobropis červená, zelené „Schválit"/„Uhrazeno", oranžová „po splatnosti") zůstávají. Color picker + textový input + odkaz ↺ default pro reset.

🛈 Auto-save — toggle a barva se ukládají automaticky (color picker má 0,5 s debounce, ať se neukládá při každém pixelu pohybu). Logo se ukládá okamžitě při uploadu. Tlačítko Uložit branding je explicitní fallback pro jistotu — typicky ho nepotřebuješ.

V hlavičce se pak vykreslí:

Live preview — pod nastavením iframe se zkušebním emailem (faktura 2026005 s boxem „K úhradě" a tlačítkem „Zobrazit fakturu" — obojí obarvené akcent barvou, ať vidíš branding i v těle, ne jen v hlavičce/patičce). Tlačítka CS / EN přepínají jazyk preview. Po každé změně toggle / barvy / loga se preview obnoví automaticky; tlačítko vpravo nahoře v hlavičce preview je manuální refresh, kdyby si cache hrála.

Patička emailu vždy obsahuje malý šedý text „Používá fakturační systém MyInvoice.cz" jako attribution — nezakrývá tvoji firemní identitu, jen drobně označuje použitou platformu.

🛈 Snapshot vs live branding — fakturační údaje (název firmy, adresa, kontakt) se v emailu berou ze snapshotu zachyceného při vystavení faktury (immutable, kvůli auditu). Naopak branding (logo, barva, toggle) se vždy bere live z aktuálního stavu dodavatele — pokud změníš logo, projeví se okamžitě i v emailech ke starým fakturám.

⚠️ SVG na hostu bez Imagick i rsvg-convert — SVG upload selže s hláškou „SVG konverze není dostupná". Buď nainstaluj jedno z toho: - PHP imagick extension (cross-platform — Windows: pecl install imagick, Linux: apt install php-imagick, macOS: pecl install imagick) — preferované - librsvg2-bin (Linux: apt install librsvg2-bin, macOS: brew install librsvg) Docker image ghcr.io/radekhulan/myinvoicelibrsvg2-bin zabalené, takže SVG funguje out-of-the-box. PNG / JPG funguje vždy přes GD (built-in).

18.5.3 Číslování faktur

V detailu dodavatele najdeš sekci Číslování faktur se šablonami pro každý typ dokladu a volbou cyklu, kdy se pořadové číslo resetuje.

Šablony (per typ dokladu):

PoleCo zadat
Šablona pro fakturunapř. {YY}{MM}{CCC}2605001 (default) nebo JD{YYYY}-{CCC}JD2026-001
Šablona pro zálohovounapř. 9{YY}{MM}{CCC}92605001 (prefix 9 = záloha)
Šablona pro dobropisnapř. 7{YY}{MM}{CCC}72605001 (prefix 7 = dobropis)

Placeholdery:

TokenVýznamPříklad pro 2026-04, counter=42
{YYYY}4-ciferný rok2026
{YY}2-ciferný rok26
{MM}číslo měsíce (01..12)04
{C}, {CC}, {CCC}counter, padding podle počtu C42, 42, 042

🛈 Pole nech prázdné a systém použije fallback z cfg.varsymbol.templates (default {YY}{MM}{CCC} pro fakturu, 9{YY}{MM}{CCC} pro proformu, 7{YY}{MM}{CCC} pro dobropis). Vyplň, jen když chceš vlastní řadu.

Pod každým polem live preview ukazuje, jak by vypadalo příští číslo (např. „Náhled: JD2026-001"). Když chybí counter ({C+}), pole je červené s chybou „Chybí counter".

Reset číselné řady:

HodnotaKdy se counter vrací na 1
Roční (year)1. ledna
Měsíční (month)1. dne v měsíci (default — backwards compat s legacy chováním)
Bez resetu (none)Nikdy — souvislá číselná řada napříč roky

⚠️ Změna cyklu uprostřed roku může vyrobit duplicitní čísla. Pokud přepneš z month na year a šablona obsahuje {MM}, dostaneš v dalším měsíci stejné {YY}{MM}001 jako už máš v evidenci. Backend chytne přes 409 chybu při Vystavení, ale doporučujeme spolu s změnou cyklu upravit i šablonu (pro year vyhoď {MM}, pro none vyhoď {YY} i {MM}).

Kde se to projeví:

18.5.4 Pohoda kódy

PoleVýznamPříklad
Číselná řadapohoda_account_codeFV
Střediskopohoda_centre_code01
Činnostpohoda_activity_code100
Předkontacepohoda_classification_code300

Viz 16. Exporty → § 13.4.2.

18.6 Smazání dodavatele

Zatím není v UI — vyžaduje SQL zásah z důvodu integrity (faktury, klienti, zakázky). Pokud potřebuješ, kontaktuj IT — php api/bin/reset.php --supplier=N (TODO).

18.7 X-Supplier-Id v API

Aktuální dodavatel se posílá v každém API requestu jako header X-Supplier-Id: N. UI ho posílá z localStorage (myinvoice.current_supplier_id).

Pokud header chybí, server fallbackuje na MIN(supplier.id) — typicky první dodavatel = ten z setup wizardu.

Pro programátory: viz source/04-api.md v repu.

18.8 Tipy