Files
fio/QRPlatba/README.md
T
administrator 89511c500f Add QR payment generator with live Medicus price list
- New QRPlatba/ module: standalone app for generating SPAYD QR payment codes
- Live price list loaded directly from Medicus Firebird DB (VLV_SEL), sorted by KOD
- Patient data (name, surname, RC) passed as arguments from Medicus button
- Auto-generates QR on load and refreshes on every dropdown change
- Account selector dropdown (two FIO accounts with IBAN)
- Save button exports QR as PNG next to the EXE (sys.executable-relative path)
- SPAYD format: ACC, AM, CC, X-VS (rodné číslo), MSG (patient + item)
- README.md with full documentation, Medicus button command, DB schema
- Add .gitignore (excludes build/, dist/, .venv/, .idea/, .claude/)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 20:07:10 +01:00

117 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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*