95 lines
3.3 KiB
Python
95 lines
3.3 KiB
Python
import os,re,fdb,time
|
|
import datetime
|
|
import funkce
|
|
|
|
con = fdb.connect(
|
|
host='localhost', database=r'u:\MEDICUS 3\data\medicus.FDB',
|
|
user='sysdba', password='masterkey',charset='WIN1250')
|
|
|
|
# Create a Cursor object that operates in the context of Connection con:
|
|
cur = con.cursor()
|
|
|
|
cesta=r"u:\Dropbox\!!!Days\Downloads Z230\Dokumentace"
|
|
|
|
|
|
for soubor in os.listdir(cesta):
|
|
if soubor.endswith('.pdf'):
|
|
#kontrola struktury
|
|
pattern=re.compile(r'(\d{9,10}) (\d{4}-\d{2}-\d{2}) (\w+, \w.+?) \[(.+?)\] \[(.+?)\]')
|
|
match=pattern.search(soubor)
|
|
print(soubor)
|
|
chyba=False
|
|
if match and len(match.groups())==5:
|
|
rc=match.group(1)
|
|
datum=match.group(2)
|
|
try:
|
|
datum_object = datetime.datetime.strptime(datum,"%Y-%m-%d").date()
|
|
print(datum_object)
|
|
except:
|
|
chyba=True
|
|
jmeno=match.group(3)
|
|
prvnizavorka=match.group(4)
|
|
druhazavorka = match.group(5)
|
|
else: chyba=True
|
|
if chyba:
|
|
soubornovy="♥"+soubor
|
|
if soubor[0]!="♥":
|
|
os.rename(os.path.join(cesta,soubor),os.path.join(cesta,soubornovy))
|
|
continue
|
|
|
|
#zde máme všechno OK rc, datum_object,jmeno,prvnizavorka,druhazavorka
|
|
|
|
#Nyní kontrola délky jména soubor, akceptáno max 100 znamk
|
|
|
|
|
|
|
|
print(soubor)
|
|
filetoinsert=os.path.join(cesta,soubor)
|
|
print(time.ctime(os.path.getctime(filetoinsert)))
|
|
datumsouboru=datetime.datetime.fromtimestamp(os.path.getctime(filetoinsert))
|
|
with open(filetoinsert, 'rb') as f:
|
|
daticka = f.read()
|
|
|
|
#newid generation
|
|
newfileid = funkce.get_files_id(con)
|
|
if newfileid is None:
|
|
print("Chyba")
|
|
continue
|
|
|
|
newdekursid=funkce.get_dekurs_id(con)
|
|
if newdekursid is None:
|
|
print("Chyba")
|
|
continue
|
|
|
|
idpac=funkce.get_idpac(rc,con)
|
|
if idpac is None:
|
|
print("Chyba")
|
|
continue
|
|
|
|
print("Bude vlozeno:")
|
|
print(f"""id: {newfileid}
|
|
iddoctyp: 2
|
|
idpac: {idpac}
|
|
filename: {soubor}
|
|
datum: {datum_object}
|
|
datsouboru: {datumsouboru}
|
|
poznamka: {prvnizavorka} {druhazavorka}""")
|
|
|
|
print(datum_object.strftime('%Y-%m-%d'))
|
|
#id idpac filename body docid typ datum iddoctyp poznamka idpac=2 iduzi=2 datsouboru id_edokument ext_id
|
|
query = "insert into files (id,iduzi,iddoctyp,typ,idpac,filename,body,datum,datsouboru,poznamka) values(?,?,?,?,?,?,?,?,?,?)"
|
|
# cur.execute(query,(newfileid,6,1,1,idpac,prvnizavorka+".pdf",daticka,datum_object,datumsouboru,druhazavorka[:99]))
|
|
cur.execute(query, (newfileid, 6, 1, 1, 9742, prvnizavorka + ".pdf", daticka, datum_object, datumsouboru, druhazavorka[:99]))
|
|
con.commit()
|
|
|
|
#zapis do dekurzu
|
|
# funkce.zapis_dekurs(con, idpac, 2, 6, 2, newfileid, prvnizavorka, "test text", datetime.date(2023, 10, 15),datetime.date(2023, 10, 15))
|
|
funkce.zapis_dekurs(con, 9742, 2, 6, 2, newfileid, datum_object.strftime('%Y-%m-%d')+" "+ prvnizavorka+ ": "+druhazavorka, "test text", datetime.date(2023, 10, 15),
|
|
datetime.date(2023, 10, 15))
|
|
|
|
#vymazat zpracovaný soubor
|
|
# os.remove(filetoinsert)
|
|
con.close()
|
|
|
|
|