import random from bestilling import Bestilling class BookingSystem: def __init__(self, filnavn): self._bookinger = {} # ordbok, nøkkel: bookingreferasen, innhold: Bestillingsobjekt self.lesFraFil(filnavn) def lesFraFil(self, filnavn): fil = open(filnavn) for linje in fil: data = linje.strip().split(";") ref = self.lagBookingref(data[0]) nyBestilling = Bestilling(data[0], data[1], data[2], ref) self._bookinger[ref] = nyBestilling fil.close() def lagBookingref(self, navn): tilfeldigTall = random.randint(1, 99) ref = "ref" + navn[0:3] + str(tilfeldigTall) # hva om den allerede finnes - øker tallet med 1 inntil unik ref while ref in self._bookinger: tilfeldigTall += 1 ref = "ref" + navn[0:3] + str(tilfeldigTall) return ref def skrivUt(self): for bookingref in self._bookinger: print(self._bookinger[bookingref]) def skrivBookingRef(self, bookingref): print(self._bookinger[bookingref]) def skrivBookingNavn(self, navn): for bookingref in self._bookinger: booking = self._bookinger[bookingref] if booking.hentNavn() == navn: print(booking) def leggTilNy(self): print("Opprett ny bestilling") navn = input("Skriv inn navn: ") startdato = input("Skriv inn startdato: ") varighet = input("Skriv inn varighet: ") bookingref = self.lagBookingref(navn) nyBestilling = Bestilling(navn, startdato, varighet, bookingref) # legg til i ordbok: self._bookinger[bookingref] = nyBestilling print("\nLagt til bestillingen:") print(nyBestilling) def fjernPaaRef(self, bookingref): # kunne også valgt å ikke ha bookingreferanse som parameter, # og heller tatt inn i metoden if bookingref in self._bookinger: self._bookinger.pop(bookingref) print("Fjernet bestilling med referanse:", bookingref) else: print("Fant ingen bestilling med referanse:", bookingref) def fjernPaaNavn(self, navn): # går gjennom ordboka og legger alle bookingreferansen som hører til # bestillinger gjort av person med oppgitt navn i en egen liste # går deretter gjennom listen og fjerner dersom bruker ønsker det referanserTilNavn = [] for bookingref in self._bookinger: bestilling = self._bookinger[bookingref] if bestilling.hentNavn() == navn: referanserTilNavn.append(bookingref) # går gjennom bestillingene og spør bruker om de skal fjernes for ref in referanserTilNavn: print("\nFant bestilling på", navn) print(self._bookinger[ref]) fjernes = input("Skal bestillingen fjernes (ja/nei)\n> ") if fjernes == "ja": self._bookinger.pop(ref) print("Fjernet bestillingen") else: print("Beholder bestillingen") def meny(self): menystr= """Meny 1 - se booking på bookingref 2 - se booking på navn 3 - legg inn ny booking 4 - fjerne booking på bookingref 5 - fjerne booking på navn 6 - se alle bookinger 0 - avslutt""" print(menystr) brukervalg = input("Ditt valg:\n> ") while brukervalg != "0": if brukervalg == "1": ref = input("Oppgi booking referanse:\n> ") self.skrivBookingRef(ref) elif brukervalg == "2": navn = input("Oppgi navn:\n> ") self.skrivBookingNavn(navn) elif brukervalg == "3": self.leggTilNy() elif brukervalg == "4": # fjern på ref ref = input("Oppgi booking referanse som skal fjernes:\n> ") self.fjernPaaRef(ref) elif brukervalg == "5": #fjern på navn navn = input("Oppgi navn for bookingen som skal fjernes:\n> ") self.fjernPaaNavn(navn) elif brukervalg == "6": self.skrivUt() elif brukervalg == "0": print("Avslutter") print(menystr) brukervalg = input("Ditt valg:\n> ") def hovedprogram(): system = BookingSystem("bestillinger.txt") system.skrivUt() system.meny() hovedprogram()