17. Více dodavatelů z jedné instalace

MyInvoice umožňuje fakturovat za libovolný počet dodavatelů (firem / IČ) 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.

17.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í:

17.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Č
České IČ
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.

17.2.1 Modal nového dodavatele

Nový dodavatel — ARES
Nový dodavatel — ARES
PoleVýznam
Zadej 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.

17.3 Co je per-dodavatel (izolované)

Každý dodavatel má vlastní:

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

17.5 Editace dodavatele

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

Záložky:

17.5.1 Základní údaje

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

17.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 napříč emailem. Když je branding zapnutý, použije se stejné logo i v hlavičce PDF faktur (místo textového jména firmy). Když je vypnutý, e-mail vrátí default MyInvoice „M" branding a PDF zobrazí jméno firmy textem — 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 — barva náhradního „M" boxu (pokud nemáš logo) a všech odkazů v emailu. Default #3B2D83 (fialová MyInvoice). Color picker + textový input pro přesné zadání + 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, Kč částka, sample odstavec — viz screenshot výše). 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).

17.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í:

17.5.4 Pohoda kódy

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

Viz 15. Exporty → § 13.4.2.

17.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).

17.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.

17.8 Tipy