14. Upomínky po splatnosti

Když klient nezaplatil včas, můžeš mu poslat upomínku — speciální e-mail s textem typu „Vaše faktura č. XXX byla splatná YY dní zpět, prosíme o úhradu".

Upomínky lze posílat 3 způsoby:

  1. Manuálně z detailu jedné faktury (tlačítko)
  2. Hromadně z Seznamu faktur (bulk action)
  3. Automaticky z cronu (cron-send-reminders.php)

14.1 Předpoklady

Aby šla upomínka odeslat, faktura musí:

14.2 Manuální upomínka

Otevři Detail faktury → tlačítko Upomínka.

Tlačítko upomínka
Tlačítko upomínka

Po kliknutí:

Activity log: invoice.reminded s počtem dní po splatnosti.

14.2.1 Test upomínky

Vedle Upomínka je tlačítko Test upomínky — pošle stejný e-mail jen na tvůj e-mail (admina, kterého jsi přihlášen). Užitečné pro:

14.3 Hromadná upomínka

Z Faktury → filtr „Po splatnosti" zaškrtni více faktur → bulk action Upomínka (N).

Hromadná upomínka
Hromadná upomínka

Server:

  1. Pro každou fakturu zkontroluje, že splňuje předpoklady (§ 14.1)
  2. Cooldown — pokud byla upomínka poslána před <14 dny, faktura se přeskočí
  3. Pošle e-mail
  4. Update statusu

Hláška o výsledku: Odesláno: 8, přeskočeno (cooldown): 2, chyb: 0.

14.4 Cron — automatické upomínky

Pro pravidelné upomínání nastav cron:

cmd/cron-send-reminders.sh    # 1× denně, doporučeně 09:00 Po–Pá

Skript php api/bin/cron-send-reminders.php má parametry:

ParametrDefaultVýznam
--days=N(per dodavatel)Faktura musí být po splatnosti alespoň N dní. Bez parametru se čte práh nastavený u dodavatele (§ 14.7, default 3); --days ho pro daný běh přebije.
--cooldown=N7Min. počet dní mezi dvěma upomínkami stejné faktury
--dry-runJen vypíše, co by udělal, bez odeslání

14.4.1 Doporučené nastavení

# Po-Pá v 9:00 — upomínat faktury 5+ dní po splatnosti, max 1× za 14 dní
0 9 * * 1-5  /var/www/myinvoice.cz/cmd/cron-send-reminders.sh --days=5 --cooldown=14

💡 --days=5 je rozumný „grace period" — klient mohl mít dovolenou, bankovní poplatek, nebo sis ty zapomněl naimportovat výpis.

14.4.2 Dry-run pro test

Před produkčním nasazením:

php api/bin/cron-send-reminders.php --days=5 --dry-run

Vypíše:

[dry-run] Faktura #2604012 (ACME s.r.o., 12 dní po splatnosti) — by se odeslala na 3 adresy
[dry-run] Faktura #2604015 (Studio Fialka, 7 dní po splatnosti) — by se odeslala na 1 adresu
[dry-run] Faktura #2604008 — přeskočena (poslední upomínka před 4 dny < cooldown 14)
[dry-run] CELKEM: 2 by se odeslaly, 1 přeskočena.

14.5 Šablona upomínky

Šablona je v Systém → E-mail šablony → invoice_reminder.

Editor šablony upomínky
Editor šablony upomínky

Můžeš editovat:

14.5.1 Dostupné placeholders

PlaceholderVýznam
{{ varsymbol }}Variabilní symbol faktury
{{ amount }}Částka k úhradě, formátovaná
{{ currency }}Měna
{{ due_date }}Datum splatnosti
{{ days_overdue }}Počet dní po splatnosti
{{ client_name }}Jméno klienta
{{ supplier_name }}Jméno dodavatele
{{ payment_link }}(volitelné) odkaz na platební bránu
{{ reminder_count }}Počet již odeslaných upomínek (1 = první, 2 = druhá, …)

14.5.2 Multi-jazyčnost

Pro každou šablonu jsou 4 varianty:

Vybere se podle klient.language.

14.6 Tipy

14.7 Vypnutí upomínek u konkrétní faktury a práh dní

Automatické upomínky lze řídit na třech úrovních; cron pošle upomínku, jen když všechny tři dovolí (zapnuto u dodavatele i u klienta i u faktury):

ÚroveňKdeVýznam
DodavatelNastavení → dodavatelGlobální vypnutí pro celého dodavatele
KlientDetail klientaVypnutí pro všechny faktury daného klienta
FakturaEditor fakturyVypnutí pro jedinou konkrétní fakturu

14.7.1 Přepínač na faktuře

V editoru faktury je v pravém boxu Datumy, hned pod polem *Splatnost*, přepínač Posílat automatické upomínky (výchozí: zapnuto). Když ho vypneš, cron tuto fakturu přeskočí, i kdyby měl dodavatel i klient upomínky zapnuté. Ruční i hromadné odeslání upomínky funguje vždy. U dobropisů se přepínač nezobrazuje (dobropisy se neupomínají).

14.7.2 Práh „po kolika dnech po splatnosti"

V Nastavení → dodavatel nastavíš, po kolika dnech po splatnosti se má poslat první automatická upomínka. Na výběr jsou předvolby 3 dny / týden / měsíc nebo vlastní počet dní (1–365). Hodnota je per dodavatel; cron ji čte automaticky. Parametr --days=N (§ 14.4) ji pro daný běh přebije — hodí se pro mimořádný / ruční běh.

14.8 Kontrola, co se opravdu odeslalo (a co ne)

V Systém → Odeslané e-maily je přehled všech e-mailů, které aplikace rozeslala — odeslání faktur, upomínky, schvalovací upomínky, poděkování za úhradu, připomínky konceptů i testovací odeslání. Automatické (cron) odeslání jsou připsána „Systému".

Přehled ukazuje i neúspěšná odeslání: když odeslání selže (nedostupný SMTP, odmítnutý příjemce, chyba při generování PDF), zapíše se červený řádek se stavem Neodesláno a textem chyby. Filtr stavu (Vše / Odesláno / Neodesláno) a zkratka Neodesláno: N umožní rychle najít, co je potřeba poslat znovu.

⚠️ „Odesláno" znamená, že e-mail převzal SMTP server — nezaručuje doručení do schránky (odmítnutí mailserverem příjemce / spam filtr aplikace netrackuje). Pokud cron upomínku přeskočí kvůli předpokladům z § 14.1 (např. klient nemá e-mail), nejde o „selhání odeslání" a v přehledu se jako chyba neobjeví.