89511c500f
- 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>
117 lines
3.6 KiB
Markdown
117 lines
3.6 KiB
Markdown
# 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*
|