From 67ec430fd43f2567a04825f0ccbf822788d2a7ee Mon Sep 17 00:00:00 2001 From: Vladimir Buzalka Date: Tue, 12 May 2026 06:53:58 +0200 Subject: [PATCH] notebookvb --- .../SeznamPojistencu/00_import_ozp_onetime.py | 104 ++++++++++++++++++ ...e_seznam.py => 01_parse_seznam_dg_tool.py} | 2 +- Insurance/SeznamPojistencu/02_import_do_db.py | 2 +- ...egistrovaný pojištěnců - od 01.01.2025.xlsx | Bin 0 -> 36515 bytes Medicus/Externi/KdoJeLekar/KdoJeLekarApp.py | 2 +- 5 files changed, 107 insertions(+), 3 deletions(-) create mode 100644 Insurance/SeznamPojistencu/00_import_ozp_onetime.py rename Insurance/SeznamPojistencu/{01_parse_seznam.py => 01_parse_seznam_dg_tool.py} (98%) create mode 100644 Insurance/SeznamPojistencu/Přehled registrovaný pojištěnců - od 01.01.2025.xlsx diff --git a/Insurance/SeznamPojistencu/00_import_ozp_onetime.py b/Insurance/SeznamPojistencu/00_import_ozp_onetime.py new file mode 100644 index 0000000..55b1c25 --- /dev/null +++ b/Insurance/SeznamPojistencu/00_import_ozp_onetime.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import sys as _sys +_sys.stdout.reconfigure(encoding="utf-8", errors="replace") +_sys.stderr.reconfigure(encoding="utf-8", errors="replace") +""" +05_import_ozp.py +================ +Vloží OZP pojištěnce z Excelu do seznam_pojistencu_davky jako první dávku: + davka_rok=2025, davka_mesic=1, davka_den=1, pojistovna='207' + +OZP nedodává měsíční dávky jako VZP — tento Excel je náhrada: +přehled všech pojištěnců registrovaných u naší ordinace od 01.01.2025. + +Spuštění: + python 05_import_ozp.py # import, duplicity přeskočí + python 05_import_ozp.py --reset # smaže OZP řádky a vloží znovu +""" + +import argparse +import sys +from pathlib import Path + +import pandas as pd + +sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "Knihovny")) +from mysql_db import connect_mysql + +EXCEL = Path(__file__).parent / "Přehled registrovaný pojištěnců - od 01.01.2025.xlsx" +SOUBOR = "OZP_prehled_20250101.xlsx" # max 60 znaků, identifikátor dávky +ICP = "9305001" +POJISTOVNA = "207" +ROK, MESIC, DEN = 2025, 1, 1 + + +def nacti_excel(path: Path) -> list[dict]: + df = pd.read_excel(path, dtype={"CISLO_POJISTENCE": str}, + parse_dates=["PLATNOST_ZAZNAMU_OD"]) + + rows = [] + for i, r in enumerate(df.itertuples(), start=1): + # Číslo pojištěnce — odstraníme desetinnou tečku pokud pandas přidal + cip = str(r.CISLO_POJISTENCE).strip().split(".")[0] + + rows.append({ + "soubor": SOUBOR, + "icp": ICP, + "davka_rok": ROK, + "davka_mesic": MESIC, + "davka_den": DEN, + "por": i, + "vs": "", + "prijmeni": str(r.PRIJMENI).strip()[:30], + "jmeno": str(r.JMENO).strip()[:24], + "cip": cip[:10], + "datum_od": r.PLATNOST_ZAZNAMU_OD.date() if pd.notna(r.PLATNOST_ZAZNAMU_OD) else None, + "pojistovna": POJISTOVNA, + }) + return rows + + +# ── MAIN ────────────────────────────────────────────────────────────────────── + +parser = argparse.ArgumentParser(description="Import OZP přehledu do seznam_pojistencu_davky") +parser.add_argument("--reset", action="store_true", + help="Smaže OZP řádky (soubor=OZP_prehled_20250101.xlsx) a vloží znovu") +args = parser.parse_args() + +if not EXCEL.exists(): + print(f"CHYBA: soubor nenalezen: {EXCEL}") + sys.exit(1) + +rows = nacti_excel(EXCEL) +print(f"Načteno řádků z Excelu: {len(rows)}") + +conn = connect_mysql() +cur = conn.cursor() + +if args.reset: + cur.execute("DELETE FROM seznam_pojistencu_davky WHERE soubor = %s", (SOUBOR,)) + print(f"Smazáno {cur.rowcount} stávajících OZP řádků.") + +vlozeno = preskoceno = 0 +for r in rows: + cur.execute(""" + INSERT IGNORE INTO seznam_pojistencu_davky + (soubor, icp, davka_rok, davka_mesic, davka_den, + por, vs, prijmeni, jmeno, cip, datum_od, pojistovna) + VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s) + """, (r["soubor"], r["icp"], r["davka_rok"], r["davka_mesic"], r["davka_den"], + r["por"], r["vs"], r["prijmeni"], r["jmeno"], + r["cip"], r["datum_od"], r["pojistovna"])) + if cur.rowcount: + vlozeno += 1 + else: + preskoceno += 1 + +conn.commit() +cur.close() +conn.close() + +print(f"Vloženo: {vlozeno}") +print(f"Přeskočeno: {preskoceno} (duplicity dle soubor+por)") +print(f"\nOZP dávka: rok={ROK}, měsíc={MESIC}, den={DEN}, pojišťovna={POJISTOVNA}") diff --git a/Insurance/SeznamPojistencu/01_parse_seznam.py b/Insurance/SeznamPojistencu/01_parse_seznam_dg_tool.py similarity index 98% rename from Insurance/SeznamPojistencu/01_parse_seznam.py rename to Insurance/SeznamPojistencu/01_parse_seznam_dg_tool.py index 2e05979..eed0f17 100644 --- a/Insurance/SeznamPojistencu/01_parse_seznam.py +++ b/Insurance/SeznamPojistencu/01_parse_seznam_dg_tool.py @@ -32,7 +32,7 @@ import re from pathlib import Path from datetime import date, timedelta -DAVKY_DIR = Path(r"U:\Dropbox\Ordinace\Dokumentace_ke_zpracování\Zúčtovací zprávy\111 VZP Podání") +DAVKY_DIR = Path(r"U:\Dropbox\Ordinace\Dokumentace_ke_zpracování\Zúčtovací zprávy\SeznamyPojištěnců") ENCODING = "cp852" diff --git a/Insurance/SeznamPojistencu/02_import_do_db.py b/Insurance/SeznamPojistencu/02_import_do_db.py index 5a3cad1..444c007 100644 --- a/Insurance/SeznamPojistencu/02_import_do_db.py +++ b/Insurance/SeznamPojistencu/02_import_do_db.py @@ -23,7 +23,7 @@ from datetime import date sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "Knihovny")) from mysql_db import connect_mysql -DAVKY_DIR = Path(r"U:\Dropbox\Ordinace\Dokumentace_ke_zpracování\Zúčtovací zprávy\111 VZP Podání") +DAVKY_DIR = Path(r"U:\Dropbox\Ordinace\Dokumentace_ke_zpracování\Zúčtovací zprávy\SeznamyPojištěnců") ENCODING = "cp852" CREATE_SQL = """ diff --git a/Insurance/SeznamPojistencu/Přehled registrovaný pojištěnců - od 01.01.2025.xlsx b/Insurance/SeznamPojistencu/Přehled registrovaný pojištěnců - od 01.01.2025.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b0ffcff5d7aaf820ff64b4d4db71b1b1b8d4e8ef GIT binary patch literal 36515 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