notebookVB

This commit is contained in:
2026-01-17 09:59:18 +01:00
parent 5e40bc4608
commit eb448ee9cf
18 changed files with 706 additions and 46 deletions

View File

@@ -0,0 +1,88 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Doplní jméno a příjmení do vzp_stav_pojisteni
podle Medicusu tam, kde jsou NULL.
Bez volání VZP.
Bez změny jiných dat.
"""
import sys
from pathlib import Path
# ==========================================
# PROJECT ROOT (import fix)
# ==========================================
PROJECT_ROOT = Path(__file__).resolve().parent.parent
sys.path.insert(0, str(PROJECT_ROOT))
import pymysql
from knihovny.medicus_db import MedicusDB
# ==========================================
# CONFIGURATION
# ==========================================
MEDICUS_HOST = "192.168.1.4"
MEDICUS_DB_PATH = r"z:\Medicus 3\data\MEDICUS.FDB"
MYSQL_CONFIG = {
"host": "192.168.1.76",
"port": 3307,
"user": "root",
"password": "Vlado9674+",
"database": "medevio",
"charset": "utf8mb4",
"autocommit": True
}
# ==========================================
# INIT CONNECTIONS
# ==========================================
print("Connecting to Medicus...")
medicus = MedicusDB(MEDICUS_HOST, MEDICUS_DB_PATH)
print("Connecting to MySQL...")
mysql = pymysql.connect(
cursorclass=pymysql.cursors.DictCursor,
**MYSQL_CONFIG
)
# ==========================================
# FETCH REGISTERED PATIENTS
# ==========================================
print("Loading registered patients from Medicus...")
patients = medicus.get_active_registered_patients(as_dict=True)
print(f"Loaded {len(patients)} patients")
# ==========================================
# UPDATE MYSQL
# ==========================================
updated_rows = 0
with mysql.cursor() as cur:
for p in patients:
rc = p["rodcis"]
jmeno = p.get("jmeno")
prijmeni = p.get("prijmeni")
if not rc or not jmeno or not prijmeni:
continue
cur.execute("""
UPDATE vzp_stav_pojisteni
SET
jmeno = COALESCE(jmeno, %s),
prijmeni = COALESCE(prijmeni, %s)
WHERE rc = %s
AND (jmeno IS NULL OR prijmeni IS NULL)
""", (jmeno, prijmeni, rc))
if cur.rowcount > 0:
updated_rows += cur.rowcount
mysql.close()
medicus.close()
print(f"\n✅ Hotovo. Aktualizováno {updated_rows} řádků ve vzp_stav_pojisteni.")