def dodaj_prodavca(): korisnici = uzmi_korisnike() username = try_str("Unesite korisnicko ime: ") lozinka = try_str("Unesite lozinku: ") lozinka2 = try_str("Ponovite lozinku: ") if lozinka != lozinka2: print("Lozinke se ne poklapaju") dodaj_prodavca() ime = try_str("Unesite ime korisnika: ") prezime = try_str("Unesite prezime korisnika: ") uloga = "Prodavac" novi_korisnik = { "Korisnicko": username, "Lozinka": lozinka, "Ime": ime, "Prezime": prezime, "Uloga": uloga } korisnici.append(novi_korisnik) zapisi_korisnike(korisnici)
def pretraga_generic(projekcije, parametar): print("-" * 50) if parametar == "Datum": unos = try_datum("Unesite datum projekcije, format: d-m-yyyy: ") elif parametar == "ID": unos = try_str("Unesite ID projekcije: ") elif parametar == "Sala": unos = try_str("Unesite broj sale za pretragu: ") for i in projekcije: for k, v in i.items(): if k == parametar: if v.lower().__contains__(unos): print("-" * 50) print(format_projekciju(i)) # Nacin da se sve proveri, koristi prefixe za ID i Salu # if len(unos) <= 1: # print("-" * 50) # print("Unos ne sme biti samo jedan broj!") # pretraga() # if try_datum_bez(unos): # for i in projekcije: # for k, v in i.items(): # if k == "Datum": # if v.lower().__contains__(unos): # print(format_projekciju(i)) # if len(unos.split(":")) >= 2: # prefix = unos.split(":")[0] # val = unos.split(":")[1] # val = val.strip() # for i in projekcije: # for k, v in i.items(): # if k.lower() == prefix: # if v.lower().__contains__(val): # print("-" * 50) # print(format_projekciju(i)) # unos = try_str("Unesite Naziv ili Zanr projekcije: ").lower() # for i in projekcije: # for k, v in i.items(): # if k == "Naziv" or k == "Zanr": # if i[k].lower().__contains__( # unos) or i[k].lower() == unos: # print("-" * 50) # print(format_projekciju(i))
def dodaj_projekciju(): projekcije = uzmi_projekcije() izabranFilm = izaberi_film() print("-" * 50) print("Projekcije koje vec postoje") prikazi_projekcije() while True: print("-" * 50) idProj = try_str("Unesite ID projekcije: ") postojiID = False for i in projekcije: if idProj == i["ID"]: print("Postoji ID, probajte ponovo") postojiID = True if postojiID == False: break if postojiID == False: nova_projekcija = prikupi_inpute(idProj, izabranFilm) print("Uspesno ste dodali projekciju") projekcije.append(nova_projekcija) zapisi_projekcije(projekcije)
def dodaj_film(): filmovi = uzmi_filmove() naziv = try_str("Naziv filma: ") zanr = try_str("Zanr: ") trajanje = try_minutes("Trajanje u minutima: ") temp_film = { "ID": str(len(filmovi) + 1), "Naziv": naziv, "Zanr": zanr, "Trajanje": trajanje } filmovi.append(temp_film) zapisi_filmove(filmovi) return (temp_film)
def izmeni_projekciju(): projekcije = uzmi_projekcije() print("-" * 50) print("Projekcije koje vec postoje") prikazi_projekcije() while True: print("-" * 50) idProj = try_str("Unesite ID projekcije: ") postoji = False for i in projekcije: if idProj == i["ID"]: izabrana_projekcija = i postoji = True if postoji == True: break print("-" * 50) print("Izabrali ste " + format_projekciju(izabrana_projekcija)) print("-" * 50) print("Izaberite novi film za projekciju ") izabran_film = izaberi_film() print("-" * 50) print("Izabrali ste " + format_film(izabran_film)) while True: Datum = try_datum("Unesite Datum projekcije, format - dd-m-yy: ") Pocetak = try_vreme("Unesite Pocetak projekcije, format - hh-mm: ") Cena = try_int("Unesite cenu Projekcije: ") Sala = izaberi_salu() izmenjena_projekcija = { "ID": izabrana_projekcija["ID"], "Naziv": izabran_film["Naziv"], "Zanr": izabran_film["Zanr"], "Cena": Cena, "Trajanje": izabran_film["Trajanje"], "Datum": Datum, "Pocetak": Pocetak, "Sala": Sala[0], "SlobodnoMesta": Sala[1], "UkupnoMesta": Sala[1] } imaMesta = proveraDatuma(izmenjena_projekcija) if imaMesta == True: for i, v in enumerate(projekcije): if izmenjena_projekcija["ID"] == v["ID"]: projekcije[i] = izmenjena_projekcija zapisi_projekcije(projekcije) print("Uspesno ste izmenili projekciju") return else: print("Zauzet termin, probajte ponovo")
def izaberi_film(): filmovi = uzmi_filmove() print_filmove() print("-" * 50) print("Izaberite jedan of filmova ili dodajte novi") print("-" * 50) while True: if try_str("Zelite li dodati novi film? Y or N: ").lower() == "y": novi_film = dodaj_film() return novi_film else: while True: print("-" * 50) idFilma = try_str("Unesite ID filma za projekciju: ") for film in filmovi: if idFilma == film["ID"]: return film
def login(): korisnici = uzmi_korisnike() print(50 * "-") print("Dobrodosli u Cinema CLI.") print(50 * "-") while True: username = try_str("Unesite vase Korisnicko Ime: ") print(50 * "-") lozinka = try_str("Unesite vasu Lozinku: ") for korisnik in korisnici: if korisnik["Korisnicko"] == username and korisnik[ "Lozinka"] == lozinka: return korisnik else: print(50 * "-") print("Pogresni podaci, probajte ponovo") print(50 * "-")
def zapisi_racun(racuni, prodavac): print("-" * 50) odgovor = try_str("Zelite li izdati racun? Odg sa Y or N: ") if odgovor.lower() == "y": print("-" * 50) datum = datetime.datetime.now() zapisi_projekcije(racuni[-1]["projekcije"]) ukupnoPlatiti = 0 izabraneProjekcije = [] for i in racuni: ukupnoPlatiti += int(i["racun"]) temp_dict = { "izabranaProjekcija": i["izabranaProjekcija"], "brojKarata": i["brojKarata"] } izabraneProjekcije.append(temp_dict) racuni = [] racuni.append("\n Racun - " + str(uuid.uuid1())[:8]) for i in izabraneProjekcije: racun = """-------------------------- Projekcija: {} -Datum: {} -Pocetak: {} -Sala: {} Broj karata: {} --------------------------""".format(i["izabranaProjekcija"]["Naziv"], i["izabranaProjekcija"]["Datum"], i["izabranaProjekcija"]["Pocetak"], i["izabranaProjekcija"]["Sala"], i["brojKarata"]) racuni.append(racun) opis_racuna = """ Ukupan Iznos: {} rsd Prodavac: {} {} Datum Izdavanja: {} Sifra racuna: {} --------------------------""".format(ukupnoPlatiti, prodavac["Ime"], prodavac["Prezime"], datum.strftime("%d/%m/%y - %H-%M"), str(uuid.uuid1())[:8]) racuni.append(opis_racuna) for i in racuni: print(i) with open("data/racuni.txt", "a") as f: f.write(i + "\n")
def pretraga(): projekcije = uzmi_projekcije() while True: print("\n") print("------ Pretraga ------") print("-" * 50) print("1. Pretraga po ID") print("-" * 50) print("2. Pretraga po broju sale") print("-" * 50) print("3. Pretraga po Datumu") print("-" * 50) print("4. Pretraga po Nazivu/Zanru") print("-" * 50) print("5. Povratak na glavni meni") print("-" * 50) izbor = try_int("Unesite vas izbor: ") if izbor == "1": pretraga_generic(projekcije, "ID") elif izbor == "2": pretraga_generic(projekcije, "Sala") elif izbor == "3": pretraga_generic(projekcije, "Datum") elif izbor == "4": print("-" * 50) unos = try_str("Unesite Naziv ili Zanr projekcije: ").lower() for i in projekcije: for k, v in i.items(): if k == "Naziv" or k == "Zanr": if i[k].lower().__contains__( unos) or i[k].lower() == unos: print("-" * 50) print(format_projekciju(i)) elif izbor == "5": return else: print("Pogresan broj, probajte ponovo")
def prodaj_karte(prodavac): projekcije = uzmi_projekcije() racuni = [] print("-" * 50) print("Prodaja Karata") print("-" * 50) racun_dict = uzmi_karte(projekcije) racuni.append(racun_dict) print("-" * 50) while True: print("-" * 50) pitanje = try_str( "Zelite li dodati jos projekcija na racun ili ne? Odg sa Y or N: ") if pitanje.lower() == "y": racun_dict = uzmi_karte(racun_dict["projekcije"]) racuni.append(racun_dict) for i in racuni: i["projekcije"] = racun_dict["projekcije"] else: print("-" * 50) print("Zavrseno dodavanje karata") zapisi_racun(racuni, prodavac) break