# QRPlatbaApp – Generátor QR plateb pro ordinaci MUDr. Buzalková

Aplikace pro generování QR kódů plateb dle standardu **SPAYD / ČBA** přímo z prostředí Medicus 3.
Ceník se načítá živě z databáze Medicusu, takže jakákoliv změna cen v Medicusu se okamžitě projeví.

---

## Funkce

- Načítá ceník přímo z databáze Medicus (Firebird) – vždy aktuální ceny
- Pacientské údaje (jméno, příjmení, rodné číslo) přijímá jako argumenty z tlačítka Medicusu
- QR kód se zobrazí automaticky po otevření okna
- QR kód se obnoví při každé změně položky nebo čísla účtu
- Výběr ze dvou bankovních účtů (dropdown)
- Tlačítko **Uložit QR kód** uloží PNG soubor do složky `QRPlatby/`
- Variabilní symbol = rodné číslo pacienta
- Zpráva příjemci = `Příjmení Jméno – Název položky`

---

## Spuštění z Medicusu

Příkaz pro tlačítko v Medicusu:

```
"U:\PycharmProjects\FIO\.venv\Scripts\pythonw.exe" "U:\PycharmProjects\FIO\QRPlatba\QRPlatbaApp.py" "%JMENO%" "%PRIJMENI%" "%RODCISN%"
```

> `pythonw.exe` se používá místo `python.exe`, aby se nezobrazovalo černé konzolové okno.

---

## Struktura projektu

```
QRPlatba/
├── QRPlatbaApp.py     # Hlavní aplikace
├── README.md          # Tato dokumentace
└── QRPlatby/          # Výstupní složka pro uložené QR kódy (PNG)
```

---

## Závislosti

Nainstalovat přes pip do projektového venv:

```bash
pip install customtkinter pillow qrcode fdb
```

| Balíček         | Účel                                      |
|-----------------|-------------------------------------------|
| `customtkinter` | Moderní GUI (tmavý/světlý režim)          |
| `pillow`        | Práce s obrázky (zobrazení QR v okně)     |
| `qrcode`        | Generování QR kódů                        |
| `fdb`           | Připojení k Firebird databázi (Medicus)   |

---

## Databázové připojení

Aplikace se připojuje k lokální Firebird databázi Medicusu:

| Parametr  | Hodnota                                  |
|-----------|------------------------------------------|
| DSN       | `localhost:c:\medicus 3\data\medicus.fdb`|
| Uživatel  | `SYSDBA`                                 |
| Charset   | `win1250`                                |
| View      | `VLV_SEL` – ceník výkonů                 |

Položky jsou seřazeny podle pole `KOD` (pořadové číslo v ceníku Medicusu).

---

## Formát QR kódu (SPAYD)

QR kód odpovídá standardu **Short Payment Descriptor (SPAYD)** dle specifikace České bankovní asociace.

Příklad vygenerovaného řetězce:
```
SPD*1.0*ACC:CZ1720100000002100046291*AM:600.00*CC:CZK*X-VS:486122443*MSG:Abohamda%20Horia%20%E2%80%93%20O%C4%8Dkov%C3%A1n%C3%AD%20ch%C5%99ipka%20(VAXIGRIP)
```

| Pole    | Obsah                              |
|---------|------------------------------------|
| `ACC`   | IBAN cílového účtu                 |
| `AM`    | Částka v Kč                        |
| `CC`    | Měna (vždy CZK)                    |
| `X-VS`  | Variabilní symbol = rodné číslo    |
| `MSG`   | Příjmení Jméno – Název položky     |

---

## Bankovní účty

| Číslo účtu       | IBAN                       |
|------------------|----------------------------|
| 2100046291/2010  | CZ1720100000002100046291   |
| 2800046620/2010  | CZ7520100000002800046620   |

---

## Uložené QR kódy

Soubory se ukládají do složky `QRPlatby/` ve formátu:

```
Příjmení_Jméno_YYYYMMDD_HHMMSS.png
```

Příklad: `Abohamda_Horia_20260325_143022.png`

---

*© Ordinace MUDr. Buzalková | QR Platba dle ČBA v1.2*
