Platby
Přehled plateb
Cesta: /PaymentLogs
Komponenta: src/pages/PaymentLogs.jsx
Přehled všech platebních záznamů v systému.
Funkce:
- Filtrování podle klienta, platební metody a stavu
- Výběr období — týden / měsíc / rok / vlastní rozsah, s posunem šipkami (nové)
- Statistiky: celkové tržby, průměrná platba, počet transakcí
- CSV export přehledu plateb (Excel-friendly, UTF-8 BOM) (nové)
- Záznamy ze všech platebních metod
Změna logiky: metody card, demo a gateway se ve výpisu i ve filtru sjednocují pod jedinou položku „Platební brána" (normalizeMethod). Historicky vznikaly záznamy card / demo, budoucí reálná integrace povede vše pod gateway.
Platební metody
| Metoda | Popis |
|---|---|
credit |
Odečtení z kreditního účtu klienta |
package |
Čerpání ze zakoupeného balíčku sezení |
card |
Platba kartou — manuální záznam adminem |
cash |
Hotovost — manuální záznam |
transfer |
Bankovní převod — manuální záznam |
gateway |
Platební brána (Stripe — připraveno, stav integrace nezjištěn) |
demo |
Demo / testovací platba |
voucher |
Uplatnění dárkového voucheru |
cashdesk_cash |
Hotovost na recepci — doklad vzniká v pokladním systému |
cashdesk_card |
Karta na recepci — doklad vzniká v pokladním systému |
insurance |
Výkon hradí pojišťovna, klient neplatí |
Změna logiky (export 19. 8. 2026): k metodě platby přibyl kanál platby (payment_channel) a zdroj dokladu (document_source). U plateb na recepci (POKLADNA) NEO doklad nevystavuje ani neexportuje do Pohody — eviduje jen číslo dokladu z pokladního systému (cashdesk_document_number).
Platební flow
Platba přes klientský portál
flowchart TD
A[Rezervace vytvořena] --> B[E-mail s platebním odkazem]
B --> C[Klient otevře odkaz]
C --> D[OTP přihlášení]
D --> E{Způsob platby}
E -- kredit --> F[Odečtení z kreditu]
E -- balíček --> G[Odečtení sezení]
E -- brána --> H[Stripe / gateway]
F & G & H --> I[payment_status: paid]
I --> J[E-mail: potvrzení platby + rezervace]
Platební odkaz
Generuje se jako URL:
/client?payment=1&booking_id=...&date=...&start=...&end=...&service=...
Admin může odkaz zkopírovat nebo odeslat e-mailem přímo z EventDialog.
Storno a vrácení
Storno logika závisí na konfiguraci PaymentSettings:
- Bezplatné storno — pokud do termínu zbývá více hodin než
cancellation_free_hours - Pozdní storno — bez vrácení peněz, nově vzniká doklad typu
penalty(storno poplatek) - Vynucené storno adminem — vrácení vždy, bez ohledu na lhůtu
Vratky a dobropisy (nové)
Změna logiky: vratky řeší centralizovaná funkce processRefund a v UI dialog RefundDialog (admin / role finance). Vratka má čtyři podoby:
| Způsob | Co se stane | Doklad |
|---|---|---|
credit |
peníze zpět na kredit klienta | bez dobropisu (nejde o daňovou změnu) |
package |
sezení zpět do balíčku (LIFO) | bez dobropisu |
cash |
hotovost mimo NEO — vyžaduje ID platby | dobropis (credit_note) |
gateway |
zpět na kartu / přes bránu — vyžaduje ID platby | dobropis |
Dobropis je vázán na původní daňový doklad (original_document_ref) a klientovi odchází e-mail (volitelně SMS) s odkazem na doklad.
Nákupy mimo rezervaci (nové)
Změna logiky: kredit, balíčky a vouchery lze prodat samostatně, bez vazby na termín. Backend (clientBooking) k tomu má akce topup_credit, purchase_package a purchase_voucher; doklad k nákupu vystaví generatePurchaseDocument:
| Nákup | Typ dokladu |
|---|---|
| Dobití kreditu | nedaňové potvrzení o přijetí platby (non_tax_confirmation) — výnos vzniká až čerpáním |
| Balíček | daňový doklad (tax_invoice) |
| Voucher | daňový doklad; u kampaňového voucheru marketingový náklad |
Nákupy sdílejí purchase_id, kterým se propojí platba, doklad a zakoupená položka.