Files
Vladimir Buzalka b59eb419dd notebookvb
2026-05-10 07:53:38 +02:00

2.5 KiB
Raw Permalink Blame History

QRPlatbaApp QR kód pro platby

Přehled

Aplikace generuje QR kódy pro platby pacientů v ordinaci. Údaje o pacientovi jsou předávány z Medicusu, aplikace zobrazí okno s výběrem položky k úhradě a generuje QR kód ve formátu SPAYD (Czech Payment Standard).

Soubory

Soubor Popis
QRPlatbaApp.py Hlavní skript (customtkinter GUI)
QRPlatbaApp.spec PyInstaller konfigurace
qrcode.ico Ikona EXE
dist/QRPlatbaApp.exe Spustitelný EXE
QRPlatby/ Uložené QR kódy (PNG)

Konfigurace v Medicusu

V menu Konfigurace > Externí programy:

Položka Hodnota
Program U:\OrdinaceProjekt\Medicus\Externi\QRCode\dist\QRPlatbaApp.exe
Příkazový řádek "U:\OrdinaceProjekt\Medicus\Externi\QRCode\dist\QRPlatbaApp.exe" %JMENO% %PRIJMENI% %RODCIS%
Pacient
Menu QR Platba

Důležité technické detaily

Rodné číslo

Medicus předává RC s lomítkem (např. 730928/104). Skript lomítko automaticky odstraní — variabilní symbol ve SPAYD formátu musí být max 10 číslic:

RODCIS = sys.argv[3].replace("/", "")

Argumenty z Medicusu

JMENO    = sys.argv[1]
PRIJMENI = sys.argv[2]
RODCIS   = sys.argv[3].replace("/", "")

Ceník

Načítá se ze stored procedure Medicus DB:

cur.execute("SELECT V.KOD, V.NAZEV, V.CENA FROM VLV_SEL(NULL, NULL, NULL) V ORDER BY V.KOD")

SPAYD formát

SPD*1.0*ACC:CZ7520100000002800046620*AM:500.00*CC:CZK*X-VS:7309281045*MSG:Buzalka%20Vladimír%20%20Poplatek
Pole Popis
ACC IBAN bankovního účtu
AM Částka (Kč)
CC Měna (CZK)
X-VS Variabilní symbol = RC bez lomítka (max 10 číslic)
MSG Jméno pacienta + položka

Bankovní účty

ACCOUNTS = {
    "2100046291/2010": "CZ1720100000002100046291",
    "2800046620/2010": "CZ7520100000002800046620",
}

Výstup

QR kódy PNG se ukládají do U:\OrdinaceProjekt\Medicus\Externi\QRCode\QRPlatby\.

Error handling

Jakákoliv výjimka zobrazí dialog a pošle email na vladimir.buzalka@buzalka.cz s traceback a údaji pacienta. Implementováno přes Knihovny/EmailMessagingGraph.py.

Firebird DB připojení

DB_DSN      = r'localhost:c:\medicus 3\data\medicus.fdb'
DB_USER     = 'SYSDBA'
DB_PASSWORD = 'masterkey'
DB_CHARSET  = 'win1250'

Rebuild EXE

cd U:\OrdinaceProjekt\Medicus\Externi\QRCode
pyinstaller QRPlatbaApp.spec