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()


