def dodavanje_artikala(): ''' Funkcija za dodavanje artikala, preuzima od korisnika potrebne podatke za novi artikal, pravi je, smesta u listu i upisuje u fajl ''' try: artikli = [] artikli = citanje_artikli() oznaka = input("Unesite oznaku artikla: ") naziv = input("Unesite naziv artikla: ") opis = input("Unesite opis artikla: ") cena = float(input("Unesite cenu: ")) rok_trajanja = input("Unesite rok trajanja") polica = input("Unesite policu") a = Artikal(oznaka, naziv, opis, cena, rok_trajanja, polica) '''a JE OBJEKAT KLASE SEKCIJA, Artikal(oznaka, naziv, opis, cena, rok_trajanja) - konstruktor klase Artikal''' artikli.append(a) pisanje_artikli(artikli) print("Uspesno ste dodali artikal") except Exception as e: print(e)
def prikaz_artikala_za_police(): ''' Funkcija za prikaz svih artikala na odredjenoj polici, ona zahteva od korisnika da unese oznaku police i za tu policu prikazuje na ekran sve artikle koji se nalaze na njoj ''' police = [] artikli = [] police = citanje_police() artikli = citanje_artikli() artikli_a = [] oznaka = input("Unesite oznaku police za prikaz artikala na njoj: ") for a in artikli: if oznaka == a.polica: artikli_a.append(a) zaglavlje = "|{:^6s}|{:^20s}|{:^20s}|{:^7s}|{:^18s}|{:^8s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Oznaka P") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for da in artikli_a: print("|{:<6s}|{:<20s}|{:^20s}|{:<7.2f}|{:^18s}|{:^8s}|".format( da.oznaka, da.naziv, da.opis, da.cena, da.rok_trajanja, da.polica)) print("-" * br)
def izmena_artikala(): ''' Funkcija za izmenu artikla, pruza mogucnost izmene odredjenog parametra artikla ''' try: artikli = [] artikli = citanje_artikli() oznaka = input("Unesite oznaku artikla kojeg zelite da izmenite: ") for i in artikli: if oznaka == i.oznaka: izmena = i print("Pronadjena oznaka") print() print( "\nParametri za menjanje:\n1 - Oznaka\n2 - Naziv\n3 - Opis\n4 - Cena\n5 - Rok trajanja\n6 - Polica " ) izbor = "0" izbor = input("Izaberite opciju: ") while izbor.upper() not in ("1", "2", "3", "4", "5", "6"): print("\nUneli ste pogresnu opciju.\n") izbor = input("Izaberite opciju: ") if izbor == "1": oznaka2 = input("Unesite oznaku za izmenu: ") izmena.oznaka = oznaka2 pisanje_artikli(artikli) elif izbor == "2": naziv2 = input("Unesite naziv za izmenu: ") izmena.naziv = naziv2 pisanje_artikli(artikli) elif izbor == "3": opis2 = input("Unesite opis za izmenu: ") izmena.opis = opis2 pisanje_artikli(artikli) elif izbor == "4": cena2 = float(input("Unesite cenu za izmenu: ")) izmena.cena = cena2 pisanje_artikli(artikli) elif izbor == "5": rok_trajanja2 = input("Unesite rok trajanja za izmenu: ") izmena.rok_trajanja = rok_trajanja2 pisanje_artikli(artikli) else: polica2 = input("Unesite policu za izmenu: ") izmena.polica = polica2 pisanje_artikli(artikli) print("Uspesno ste odradili izmene") return True except Exception as e: print(e)
def prikaz_stavki_i_artikala(): ''' Funkcija za prikaz svih stavki i artikala koje sadrze odgovarajuci racun, ona zahteva od korisnika da unese oznaku racuna i za taj racun prikazuje na ekran sve stavke i artikle na koje se taj racun odnosi ''' racuni = [] stavke = [] artikli = [] racuni = citanje_racun() stavke = citanje_stavke() artikli = citanje_artikli() stavke_s = [] artikli_a = [] oznaka = input("Unesite oznaku racuna za prikaz stavki i artikala: ") for s in stavke: if oznaka == s.racun: stavke_s.append(s) for s in stavke: if oznaka == s.racun: for a in artikli: if s.artikal == a.oznaka: artikli_a.append(a) zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|".format( "Oznaka", "Kolicina", "Ukupna cena", "Artikal", "Racun") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for s in stavke_s: print("|{:<6s}|{:<12.2f}|{:<20.2f}|{:<20s}|{:<20s}|".format( s.oznaka, s.kolicina, s.ukupna_cena, s.artikal, s.racun)) print("-" * br) zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^6s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Polica") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for a in artikli_a: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^6s}|".format( a.oznaka, a.naziv, a.opis, a.cena, a.rok_trajanja, a.polica)) print("-" * br)
def prikaz_polica_i_artikala(): ''' Funkcija za prikaz svih polica i artikala u sekciji, ona zahteva od korisnika da unese oznaku sekcije i za tu sekciju prikazuje na ekran sve police i artikle koja se nalaze u njoj ''' sekcije = [] police = [] artikli = [] sekcije = citanje_sekcije() police = citanje_police() artikli = citanje_artikli() delovi_p = [] delovi_a = [] oznaka=input("Unesite oznaku sekcije za prikaz polica i artikala u njoj: ") for p in police: if oznaka == p.sekcija: delovi_p.append(p) for p in police: if oznaka == p.sekcija: for a in artikli: if p.oznaka == a.polica: delovi_a.append(a) zaglavlje = "|{:^6s}|{:^6s}|{:^6s}|{:^20s}|{:^7s}|{:^7s}|{:^7s}|{:^8s}|".format("Oznaka", "Red","Kolona","Pozicija","Duzina","Sirina","Visina", "Oznaka S") br = len(zaglavlje) print ("-"*br) print(zaglavlje) print ("-"*br) for ddp in delovi_p: print("|{:<6s}|{:<6d}|{:<6d}|{:^20s}|{:<7.2f}|{:<7.2f}|{:<7.2f}|{:^8s}|".format(ddp.oznaka, ddp.red, ddp.kolona, ddp.pozicija, ddp.duzina, ddp.sirina, ddp.visina, ddp.sekcija)) print("-"*br) zaglavlje = "|{:^6s}|{:^20s}|{:^20s}|{:^7s}|{:^18s}|{:^8s}|".format("Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Oznaka P") br = len(zaglavlje) print ("-"*br) print(zaglavlje) print ("-"*br) for da in delovi_a: print("|{:<6s}|{:<20s}|{:^20s}|{:<7.2f}|{:^18s}|{:^8s}|".format(da.oznaka, da.naziv, da.opis, da.cena, da.rok_trajanja , da.polica)) print("-"*br)
def prikaz_artikla(): ''' Funkcija za prikaz artikala, ucitava sve artikle iz fajla i prikazuje ih na ekran ''' artikli = [] artikli = citanje_artikli() zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^6s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Polica") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for i in artikli: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^6s}|".format( i.oznaka, i.naziv, i.opis, i.cena, i.rok_trajanja, i.polica)) print("-" * br)
def sortiranje_artikala(): ''' Funkcija za sortiranje artikala po odredjenom parametru ''' artikli = [] artikli = citanje_artikli() print("\nParametri za sortiranje:\n1 - Po ceni\n2 - Po roku trajanja") izbor = "0" izbor = input("Izaberite opciju: ") while izbor.upper() not in ("1", "2"): print("\nUneli ste pogresnu opciju.\n") izbor = input("Izaberite opciju: ") if izbor == "1": artikli.sort(key=lambda x: x.cena, reverse=False) zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^16s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Polica") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for x in artikli: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^16s}|".format( x.oznaka, x.naziv, x.opis, x.cena, x.rok_trajanja, x.polica)) print("-" * br) else: artikli.sort(key=lambda x: x.rok_trajanja, reverse=False) zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^16s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Polica") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for x in artikli: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^16s}|".format( x.oznaka, x.naziv, x.opis, x.cena, x.rok_trajanja, x.polica)) print("-" * br)
def pretraga_artikala(): ''' Funkcija za pretragu artikala koja omogucava pretragu po odredjenom parametru ''' try: artikli = [] artikli = citanje_artikli() print( "\nParametri za pretragu:\n1 - Oznaka\n2 - Naziv\n3 - Opis\n4 - Cena\n5 - Rok trajanja" ) izbor = "0" izbor = input("Izaberite opciju: ") while izbor.upper() not in ("1", "2", "3", "4", "5"): print("\nUneli ste pogresnu opciju.\n") izbor = input("Izaberite opciju: ") if izbor == "1": oznaka2 = input("Unesite oznaku za pretragu: ") zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^6s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Polica") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for p in artikli: if oznaka2 in p.oznaka: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^6s}|". format(p.oznaka, p.naziv, p.opis, p.cena, p.rok_trajanja, p.polica)) print("-" * br) elif izbor == "2": naziv2 = input("Unesite naziv za pretragu: ") zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^6s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Polica") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for p in artikli: if naziv2 == p.naziv: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^6s}|". format(p.oznaka, p.naziv, p.opis, p.cena, p.rok_trajanja, p.polica)) print("-" * br) elif izbor == "3": opis2 = input("Unesite opis za pretragu: ") zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^6s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for p in artikli: if opis2 == p.opis: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^6s}|". format(p.oznaka, p.naziv, p.opis, p.cena, p.rok_trajanja, p.polica)) print("-" * br) elif izbor == "4": cena2 = float(input("Unesite cenu za pretragu: ")) zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^6s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Polica") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for p in artikli: if cena2 == p.cena: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^6s}|". format(p.oznaka, p.naziv, p.opis, p.cena, p.rok_trajanja, p.polica)) print("-" * br) else: rok_trajanja2 = input("Unesite rok trajanja za pretragu: ") zaglavlje = "|{:^6s}|{:^12s}|{:^20s}|{:^20s}|{:^20s}|{:^6s}|".format( "Oznaka", "Naziv", "Opis", "Cena", "Rok trajanja", "Polica") br = len(zaglavlje) print("-" * br) print(zaglavlje) print("-" * br) for p in artikli: if rok_trajanja2 == p.rok_trajanja: print("|{:<6s}|{:<12s}|{:<20s}|{:<20.2f}|{:<20s}|{:^6s}|". format(p.oznaka, p.naziv, p.opis, p.cena, p.rok_trajanja, p.polica)) print("-" * br) except Exception as e: print(e)