with open("rendelesek.txt","r",encoding="utf-8") as fajl:
    ls = fajl.readlines()
    ls.pop(0)
    adatok = []
# rendeles_azonosito-felhasznalo_azonosito-termek_nev-kategoria-darab-egysegar
for elem in ls:
    sor = elem.strip().split("-")
    rendeles_azon = sor[0]
    felhasznalo_azon = sor[1]
    termeknev = sor[2]
    kategoria = sor[3]
    darab = int(sor[4])
    egysegar = int(sor[5])
    szotar = {
        "razon": rendeles_azon,
        "fazon": felhasznalo_azon,
        "nev": termeknev,
        "kategoria": kategoria,
        "db": darab,
        "ar": egysegar
    }
    adatok.append(szotar)

print(f"2. feladat")
rendelesek = []
for adat in adatok:
    if adat["razon"] not in rendelesek:
        rendelesek.append(adat["razon"])
print(f"Rendelések száma: {len(rendelesek)}")



print(f"3. feladat")
# Összes rendelés kigyűjtése ami több tételből állt
ossz_rend_az = []

for rendeles in adatok:
    ossz_rend_az.append(rendeles["razon"])

for azon in rendelesek:
    if ossz_rend_az.count(azon)> 1:
        print(f"{azon}")
    
print(f"4. feladat")
bekeres4 = input("Írja be a felhasználó azonosítóját: ")

nincs = True #Feltételben megnézzük, hogy létezik e felhasználó.
felhrendelesei = [] #Felhasználó rendelés azonosítói megszámolásához
osszeg = 0 #Pénz kiszámolása
termekek_dbszama = 0 #Rendelt termékek darabszámának meghatározása
for rendeles in adatok:
    if bekeres4 == rendeles["fazon"]:
        if rendeles["razon"] not in felhrendelesei:
            felhrendelesei.append(rendeles["razon"])
        nincs = False
        
        osszeg+=rendeles["ar"]*rendeles["db"] #Termékár * db-al
        termekek_dbszama += rendeles["db"]
        
        
if nincs:
    print("Nem található ezzel a felhasználó azonosítóval rendelés.")
else:
    print(f"Felhasználó: {bekeres4} Statisztikák\n\tElköltött pénz: {round(osszeg/1000)}eFt. \n\tRendelt termékek darabszáma: {termekek_dbszama} db. \n\tRendelés azonosítók száma: {len(felhrendelesei)}")


print("5. feladat")
# legdrágább termék
max = 0
for i in range(len(adatok)):
    if adatok[i]["ar"] > adatok[max]["ar"]:
        max = i

print(f"A legdrágább termék: {adatok[max]["nev"]}: {adatok[max]["ar"]} Ft.")

# 6. feladat

felhasznalok = []
for rendeles in adatok:
    if rendeles["fazon"] not in felhasznalok:
        felhasznalok.append(rendeles["fazon"])

with open("felhasznalok.txt","w",encoding="utf-8") as fajl:
    for felh in felhasznalok:
        fajl.write(f"{felh} ")
    

# 7. feladt
print(f"7. feladat")
termekek = []


for rendeles in adatok:
    if rendeles["nev"] not in termekek:
        termekek.append(rendeles["nev"])

termekek_db = []
for i in range(len(termekek)):
    termekek_db.append(0)

for rendeles in adatok:
    i = termekek.index(rendeles["nev"])
    termekek_db[i] += rendeles["db"]


def legn(lista):
    max  = 0
    for i in range(len(lista)):
        if lista[i] > lista[max]:
            max = i
    return max




for i in range(3):
    indexszam = legn(termekek_db)
    print(f"{termekek[indexszam]}: {termekek_db[indexszam]} db")
    termekek.pop(indexszam)
    termekek_db.pop(indexszam)


print(f"8. feladat")
kategoriak = []
kategoriak_db = []
for rendeles in adatok:
    if rendeles["fazon"] == bekeres4 and rendeles["kategoria"] not in kategoriak:
        kategoriak.append(rendeles["kategoria"])

for i in range(len(kategoriak)):
    kategoriak_db.append(0)

for rendeles in adatok:
    if rendeles["fazon"] == bekeres4:
        i = kategoriak.index(rendeles["kategoria"])
        kategoriak_db[i] += rendeles["db"]


kedvenc_i = legn(kategoriak_db)
print(f"A {bekeres4} azonosítójú felhasználó kedvenc kategóriája: {kategoriak[kedvenc_i]}")
    
