Skip to content

Klienti

Seznam klientů

Cesta: /Clients
Komponenta: src/pages/Clients.jsx

Tabulkový přehled všech klientů kliniky.

Funkce:

  • Vyhledávání (jméno, e-mail, telefon)
  • Filtrování podle kategorie a stavu (aktivní / archivovaný)
  • Přidání nového klienta přes ClientDialog
  • Kliknutím na řádek → přechod na detail klienta

Detail klienta

Cesta: /clients/:id
Komponenta: src/pages/ClientDetail.jsx

Detail konkrétního klienta rozdělený do záložek.

Záložky

Záložka Obsah
Přehled Základní info: jméno, kontakty, segment, kategorie, poznámky
Termíny (bookings) Historie všech rezervací — datum, terapeut, výkon, stav, platba
Platby (payments) Záznamy z PaymentLog — metoda, částka, stav
Kredity (credits) Aktuální zůstatek kreditního účtu + výpis transakcí
Balíčky (packages) Zakoupené balíčky sezení (ClientPackage) a jejich čerpání
Doklady (invoices) Vystavené doklady klienta (Invoice) — nově i zálohy, dobropisy a storno poplatky, s odkazem na veřejný doklad
Souhlasy (consents) On-boarding: VOP, GDPR, marketing, dotazníky + digitální podpis — viz níže
Aktivita (activity) Auditní log akcí vztažených ke klientovi

Záložka Souhlasy (on-boarding)

Ověřený fakt — komponenta ClientConsentsTab.jsx. Zobrazuje stav digitálních souhlasů uložených na entitě Client (viz On-boarding):

  • VOPvop_accepted + čas + verze (vop_version).
  • GDPRgdpr_consent_accepted + čas.
  • Marketing a Dotazníky spokojenosti — volitelné souhlasy, které může admin odvolat / obnovit (změna se zapíše do ActivityLog jako consent_revoked / consent_restored).
  • Digitální podpis — náhled signature_data, čas podpisu, příznak „✓ ověřeno OTP".

Pokud klient nedokončil onboarding (is_profile_complete = false), záložka zobrazí upozornění, že souhlasy a podpis nejsou k dispozici.

Segmenty klientů

Segment Popis
standard Standardní klient
vip VIP klient
child Dítě
couple Pár (párová terapie)

Kreditní systém

  • Každý klient má jeden kreditní účet (ClientCredit)
  • Admin může kredit dobít — nově s volbou způsobu platby a ID platby pro spárování
  • Klient může platit kreditem přes portál nebo admin přes EventDialog
  • Každý pohyb je zaznamenán v CreditTransaction

Změna logiky (export 19. 8. 2026):

  • Dobití kreditu je účetní událost — vystaví se nedaňové potvrzení o přijetí platby (non_tax_confirmation) a do Pohody jde jako přijatá záloha. Výnos vzniká až čerpáním kreditu za realizovanou službu.
  • Převody kreditu mezi klienty — nové typy transakcí transfer_out / transfer_in s odkazem na druhého klienta (related_client_id). Viz otevřená otázka O25.
  • Typy transakcí: dobití, platba, vrácení, úprava, převod odeslaný, převod přijatý.

Číslo klienta

Změna logiky: každý klient dostává client_number — lidsky čitelné sekvenční ID přidělované automatem assignClientNumber z čítače SystemSettings.client_number_seed. Používá se pro identifikaci a jako variabilní symbol při párování plateb. Pro stávající klienty existuje hromadné doplnění (action: 'backfill').

Balíčky sezení

  • Klient může mít zakoupený balíček (ClientPackage)
  • Balíček odpočítává sezení při každé zaplacené rezervaci
  • Po vyčerpání se stav změní na exhausted

Změna logiky: prodej balíčku je nyní samostatný nákup s daňovým dokladem — na ClientPackage se ukládá cenový snapshot (price, vat_rate, vat_amount, total_amount), purchase_id a invoice_id. Balíčky lze omezit na skupiny klientů (allowed_client_category_ids) a defaultně jsou nabízeny až po první realizované terapii (requires_first_visit).