Uložení lokálních změn před sloučením

This commit is contained in:
2026-01-05 06:29:59 +01:00
parent 4a2fd5f405
commit 667eca98a8
2 changed files with 126 additions and 2 deletions

View File

@@ -2,15 +2,25 @@ import mysql.connector
import os import os
db_config = { db_config = {
'host': '127.0.0.1', 'host': '192.168.1.76',
'port': 3307, 'port': 3307,
'user': 'root', 'user': 'root',
'password': 'Vlado9674+', 'password': 'Vlado9674+',
'database': 'ordinace' 'database': 'ordinace'
} }
ROOT_DIR = r'm:\Medicus\DavkyExport\09305000' # ROOT_DIR = r'm:\Medicus\DavkyExport\09305000'
from pathlib import Path
# adresář, kde leží tento .py soubor
SCRIPT_DIR = Path(__file__).resolve().parent
# projektový root = U:\PycharmProjects1
PROJECT_ROOT = SCRIPT_DIR.parent
# cílová složka s texty
ROOT_DIR = PROJECT_ROOT / "09305000"
print("Skript je v:", SCRIPT_DIR)
print("Projekt root:", PROJECT_ROOT)
print("Data dir:", ROOT_DIR)
def hromadny_raw_import(): def hromadny_raw_import():
try: try:

View File

@@ -0,0 +1,114 @@
import mysql.connector
import os
from pathlib import Path
# ================= DB CONFIG =================
db_config = {
'host': '192.168.1.76',
'port': 3307,
'user': 'root',
'password': 'Vlado9674+',
'database': 'ordinace'
}
# ================= PATHS =================
SCRIPT_DIR = Path(__file__).resolve().parent
PROJECT_ROOT = SCRIPT_DIR.parent
ROOT_DIR = PROJECT_ROOT / "09305000"
print("Skript:", SCRIPT_DIR)
print("Projekt:", PROJECT_ROOT)
print("Data:", ROOT_DIR)
# ================= IMPORT =================
def hromadny_raw_import():
conn = mysql.connector.connect(**db_config)
cursor = conn.cursor()
try:
for root, dirs, files in os.walk(ROOT_DIR):
for filename in files:
if not filename.upper().startswith("KDAVKA"):
continue
filepath = Path(root) / filename
# -------- první řádek --------
with open(filepath, "r", encoding="cp1250") as f:
first_line = f.readline().rstrip("\n")
if not first_line.startswith("DP"):
continue
fingerprint = first_line[:30].strip()
# -------- kontrola duplicity --------
cursor.execute(
"SELECT id_davky FROM davky WHERE identifikator = %s",
(fingerprint,)
)
if cursor.fetchone():
continue
obdobi = first_line[20:26].strip()
print(f"Importuji: {filename}{fingerprint}")
# -------- insert dávky --------
cursor.execute(
"INSERT INTO davky (identifikator, obdobi) VALUES (%s, %s)",
(fingerprint, obdobi)
)
id_davky = cursor.lastrowid
# -------- načtení všech vět --------
vety_data = []
with open(filepath, "r", encoding="cp1250") as f:
for poradi, line in enumerate(f, 1):
raw = line.rstrip("\n")
if not raw:
continue
vety_data.append((
id_davky,
raw[0], # typ_vety
raw, # obsah_radku
poradi # poradi_v_souboru
))
# -------- hromadný INSERT --------
cursor.executemany(
"""
INSERT INTO vety
(id_davky, typ_vety, obsah_radku, poradi_v_souboru)
VALUES (%s, %s, %s, %s)
""",
vety_data
)
# -------- JEDEN UPDATE: vazba na A --------
cursor.execute(
"""
UPDATE vety v
JOIN vety a
ON a.id_davky = v.id_davky
AND a.typ_vety = 'A'
AND a.poradi_v_souboru <= v.poradi_v_souboru
SET v.id_dokladu_vazba = a.id_vety
WHERE v.id_davky = %s
""",
(id_davky,)
)
conn.commit()
print("✅ Raw import dokončen.")
finally:
cursor.close()
conn.close()
if __name__ == "__main__":
hromadny_raw_import()