Z230
This commit is contained in:
54
FunkceWhereIsDropbox.py
Normal file
54
FunkceWhereIsDropbox.py
Normal file
@@ -0,0 +1,54 @@
|
||||
from pathlib import Path
|
||||
import json, os, socket,fdb
|
||||
|
||||
def get_dropbox_path() -> Path:
|
||||
r"""
|
||||
Return the absolute Dropbox folder path.
|
||||
Works across your computers (U:, Z:, etc.).
|
||||
Always reads from LOCALAPPDATA\Dropbox\info.json.
|
||||
Falls back to searching for a folder literally named 'Dropbox'.
|
||||
"""
|
||||
info_path = Path(os.environ["LOCALAPPDATA"]) / "Dropbox" / "info.json"
|
||||
if info_path.exists():
|
||||
try:
|
||||
with open(info_path, encoding="utf-8") as f:
|
||||
info = json.load(f)
|
||||
return Path(info["personal"]["path"])
|
||||
except Exception as e:
|
||||
print(f"⚠️ Could not read Dropbox info.json: {e}")
|
||||
|
||||
# fallback if JSON missing
|
||||
for drive in "CDEFGHIJKLMNOPQRSTUVWXYZ":
|
||||
candidate = Path(f"{drive}:\\Dropbox")
|
||||
if candidate.exists():
|
||||
return candidate
|
||||
|
||||
raise FileNotFoundError("Dropbox folder not found on any drive.")
|
||||
|
||||
print(get_dropbox_path())
|
||||
|
||||
|
||||
def get_medicus_connection():
|
||||
"""
|
||||
Connect to Firebird 'medicus.fdb' depending on computer name.
|
||||
Returns fdb.Connection or raises RuntimeError if unknown or connection fails.
|
||||
"""
|
||||
computer_name = socket.gethostname().upper()
|
||||
try:
|
||||
if computer_name == "Z230":
|
||||
print("Computer name is Z230")
|
||||
return fdb.connect(dsn=r"localhost:c:\medicus 3\data\medicus.fdb", user="SYSDBA", password="masterkey", charset="win1250")
|
||||
elif computer_name == "LEKAR":
|
||||
print("Computer name is SESTRALEKAR")
|
||||
return fdb.connect(dsn=r"localhost:m:\medicus\data\medicus.fdb", user="SYSDBA", password="masterkey", charset="win1250")
|
||||
elif computer_name in ("SESTRA", "POHODA"):
|
||||
print("Computer name is SESTRA or POHODA")
|
||||
return fdb.connect(dsn=r"192.168.1.40:m:\medicus\data\medicus.fdb", user="SYSDBA", password="masterkey", charset="win1250")
|
||||
else:
|
||||
raise RuntimeError(f"❌ Unknown computer name: {computer_name}")
|
||||
|
||||
except Exception as e:
|
||||
print(f"⚠️ Error connecting to Medicus on {computer_name}: {e}")
|
||||
raise
|
||||
|
||||
print(get_medicus_connection())
|
||||
@@ -1,5 +1,6 @@
|
||||
import os,re,fdb,time
|
||||
import logging
|
||||
from FunkceWhereIsDropbox import get_dropbox_path,get_medicus_connection
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
|
||||
|
||||
@@ -16,14 +17,12 @@ def set_single_page_view (filepdfin):
|
||||
|
||||
|
||||
# Connect to the Firebird database
|
||||
conn = fdb.connect(
|
||||
dsn=r'192.168.1.10:m:\medicus\data\medicus.fdb', # Database path
|
||||
user='SYSDBA', # Username
|
||||
password="masterkey", # Password,
|
||||
charset="win1250")
|
||||
# cur = conn.cursor()
|
||||
conn = get_medicus_connection()
|
||||
|
||||
cesta=r"z:\dropbox\ordinace\Dokumentace_ke_zpracování"
|
||||
#Get cesta to Dropbox on working computer
|
||||
dropbox=get_dropbox_path()
|
||||
cesta=dropbox/"Ordinace"/"Dokumentace_ke_zpracování"
|
||||
cestazpracovana=dropbox/"Ordinace"/"Dokumentace_zpracovaná"
|
||||
|
||||
for file in os.listdir(cesta):
|
||||
if file.upper().endswith((".PDF")) and os.path.isfile(os.path.join(cesta,file)):
|
||||
|
||||
@@ -1,17 +1,25 @@
|
||||
import os,shutil,fdb,time
|
||||
import re,datetime,funkce
|
||||
from FunkceWhereIsDropbox import get_dropbox_path,get_medicus_connection
|
||||
|
||||
# Connect to the Firebird database
|
||||
conn = fdb.connect(
|
||||
dsn=r'localhost:u:\medicus 3\data\medicus.fdb', # Database path
|
||||
user='SYSDBA', # Username
|
||||
password="masterkey", # Password,
|
||||
charset="win1250")
|
||||
conn = get_medicus_connection()
|
||||
|
||||
# cesta=r"u:\Dropbox\!!!Days\Downloads Z230\Dokumentace"
|
||||
cesta=r"u:\NextcloudOrdinace\Dokumentace_ke_zpracování"
|
||||
# cestazpracovana=r"u:\Dropbox\!!!Days\Downloads Z230\Dokument"
|
||||
cestazpracovana=r"z:\NextcloudOrdinace\Dokumentace_zpracovaná"
|
||||
#Get cesta to Dropbox on working computer
|
||||
dropbox=get_dropbox_path()
|
||||
# Convert to Windows-style strings (backslashes)
|
||||
cesta = (dropbox / "Ordinace" / "Dokumentace_ke_zpracování").resolve().as_posix().replace('/', '\\')
|
||||
cestazpracovana = (dropbox / "Ordinace" / "Dokumentace_zpracovaná").resolve().as_posix().replace('/', '\\')
|
||||
|
||||
|
||||
print(conn)
|
||||
print(dropbox)
|
||||
print(cesta)
|
||||
print(cestazpracovana)
|
||||
# exit(0)
|
||||
# cesta=r"u:\NextcloudOrdinace\Dokumentace_ke_zpracování"
|
||||
# # cestazpracovana=r"u:\Dropbox\!!!Days\Downloads Z230\Dokument"
|
||||
# cestazpracovana=r"z:\NextcloudOrdinace\Dokumentace_zpracovaná"
|
||||
|
||||
|
||||
def restore_files_for_import(retezec):
|
||||
@@ -169,13 +177,14 @@ BOOKMARKSTEXT
|
||||
pacid=row[1]
|
||||
filename=row[6]
|
||||
|
||||
|
||||
Problem_s_ulozenim=True
|
||||
for attempt in range(3):
|
||||
try:
|
||||
# Replace this with the command that might raise an error
|
||||
if not os.path.exists(os.path.join(cestazpracovana,row[6])):
|
||||
shutil.move(os.path.join(cesta,row[6]), os.path.join(cestazpracovana,row[6]))
|
||||
print("Command succeeded!")
|
||||
Problem_s_ulozenim = False
|
||||
break # Exit the loop if the command succeeds
|
||||
else:
|
||||
now = datetime.datetime.now()
|
||||
@@ -183,6 +192,7 @@ BOOKMARKSTEXT
|
||||
print(os.path.join(cestazpracovana,row[6][:-4]+" "+datetime_string+".pdf"))
|
||||
shutil.move(os.path.join(cesta,row[6]),os.path.join(cestazpracovana,row[6][:-4]+" "+datetime_string+".pdf"))
|
||||
print("Command succeeded!")
|
||||
Problem_s_ulozenim = False
|
||||
break # Exit the loop if the command succeeds
|
||||
except Exception as e:
|
||||
print(f"Attempt {attempt + 1} failed: {e}")
|
||||
@@ -195,10 +205,11 @@ BOOKMARKSTEXT
|
||||
|
||||
if Problem_s_ulozenim:
|
||||
print("Problem s ulozenim",row[6])
|
||||
exit(0)
|
||||
break
|
||||
|
||||
fileid=funkce.zapis_file(vstupconnection=conn, idpac=row[1],
|
||||
cesta=cesta, souborname=row[6], prvnizavorka=row[4],
|
||||
cesta=cestazpracovana, souborname=row[6], prvnizavorka=row[4],
|
||||
soubordate=row[2], souborfiledate=row[7], poznamka=row[5])
|
||||
|
||||
filename=funkce.convert_to1250(filename)
|
||||
|
||||
Reference in New Issue
Block a user