"""
2023. okt digitkult: Reklám
@author Klemand67
"""

print("\n1. feladat\n")

betxt = open("rendel.txt")

rendelesek=[]

for sor in betxt:
    d=sor.strip().split()
    adatsor=[int(d[0]),d[1],int(d[2])]
        #  0: nap  1: város  2: darab
    rendelesek.append(adatsor)
      
betxt.close()
print("A beolvasás és a szövegfájl lezárása sikeresen befejeződött.")



print("\n2. feladat\n")

print(f'A rendelések száma: {len(rendelesek)}')



print("\n3. feladat\n")

aktnap=int(input("kérem, adjon meg egy napot (1 és 30 között): "))

aktrendelesek=list(filter(lambda rendeles: rendeles[0]==aktnap, rendelesek))

print(f'A rendelések száma az adott napon: {len(aktrendelesek)}')



print("\n4. feladat\n")

NRnapok=[] 

for n in range(30): 
    NRnapok.append(0)

for r in rendelesek:
    if r[1]=="NR":
        NRnapok[r[0]-1]+=1

kimaradonapok=list(filter(lambda i: NRnapok[i]==0, range(len(NRnapok))))

if len(kimaradonapok)==0:
    print("Minden nap volt rendelés a reklámban nem érintett városból.\n")
else:
    print(f'{len(kimaradonapok)} nap nem volt a reklámban nem érintett városból rendelés.\n')
    # Szorgalmi
    kimaradonapokstr=list(map(lambda i: str(i+1), kimaradonapok))
    print(f'Szorgalmi feladat: Ezek a napok: {" ".join(kimaradonapokstr)}\n')



print("\n5. feladat\n")

maxdb=rendelesek[0][2]
maxnap=rendelesek[0][0]

for i in range(1,len(rendelesek)):
    if rendelesek[i][2]>maxdb:
        maxdb=rendelesek[i][2]
        maxnap=rendelesek[i][0]
        
print(f'A legnagyobb darabszám: {maxdb}, a(z első) rendelés napja {maxnap}')

    

print("\n6. feladat\n")

def osszes(varos,nap):
    aktrendelesek=list(filter(lambda rendeles: rendeles[0]==nap and rendeles[1]==varos, rendelesek))
    dbk=list(map(lambda rendeles: rendeles[2], aktrendelesek))
    return sum(dbk)

print(f'Az elkészített függvény:\n\n\
def osszes(varos,nap):\n\
    aktrendelesek=list(filter(lambda rendeles: rendeles[0]==nap and rendeles[1]==varos, rendelesek))\n\
    dbk=list(map(lambda rendeles: rendeles[2], aktrendelesek))\n\
    return sum(dbk)')



print("\n7. feladat\n")

print(f'A rendelt termékek darabszáma a 21. napon \
PL: {osszes("PL",21)} TV: {osszes("TV",21)}  NR: {osszes("NR",21)} ')



print("\n8. feladat\n")

print(f'A rendelések számának összesítése városonként és időszakonként\n')

def darab(varos,nap):
    aktrendelesek=list(filter(lambda rendeles: rendeles[0]==nap and rendeles[1]==varos, rendelesek))
    return len(aktrendelesek)

varosok=["PL","TV","NR"]
osszrendelesek=[]

for varos in varosok:
    varosrendelesek=[]
    for szakasz in range(3):
        reszrendelesek=0
        for nap in range(1,11):            
            reszrendelesek+=darab(varos,szakasz*10+nap)
        varosrendelesek.append(reszrendelesek)
    osszrendelesek.append(varosrendelesek)

kitxt = open("kampany.txt","w")

print(f'Napok\t1..10\t11..20\t21..30')
kitxt.write(f'Napok\t1..10\t11..20\t21..30\n')

for i, varos in enumerate(varosok):
    print(f'{varos}\t{osszrendelesek[i][0]}\t{osszrendelesek[i][1]}\t{osszrendelesek[i][2]}')
    kitxt.write(f'{varos}\t{osszrendelesek[i][0]}\t{osszrendelesek[i][1]}\t{osszrendelesek[i][2]}\n')
        
kitxt.close()
print("\nA kiíratás és a szövegfájl lezárása sikeresen befejeződött.\n")

print(f'Szorgalmi feladat: A rendelt termékek számának összesítése városonként és időszakonként\n')

varosok=["PL","TV","NR"]
mindosszesek=[]

for varos in varosok:
    varososszesek=[]
    for szakasz in range(3):
        reszosszesek=0
        for nap in range(1,11):            
            reszosszesek+=osszes(varos,szakasz*10+nap)
        varososszesek.append(reszosszesek)
    mindosszesek.append(varososszesek)

kitxt = open("kampanyszorgalmi.txt","w")

print(f'Napok\t1..10\t11..20\t21..30')
kitxt.write(f'Napok\t1..10\t11..20\t21..30\n')

for i, varos in enumerate(varosok):
    print(f'{varos}\t{mindosszesek[i][0]}\t{mindosszesek[i][1]}\t{mindosszesek[i][2]}')
    kitxt.write(f'{varos}\t{mindosszesek[i][0]}\t{mindosszesek[i][1]}\t{mindosszesek[i][2]}\n')

kitxt.close()
print("\nA kiíratás és a szövegfájl lezárása sikeresen befejeződött.\n")

input("\nA befejezéshez nyomd meg az ENTER billentyűt!")
