def update_info(self, staff_list): """Fall sem spyr notanda hvaða uppl. hann vill breyta um starfsmann og sendir síðan á change info fallið hvaða upplýsinga notandi vill breyta""" correct = False while not correct: print_header( "Heimasíða / Starfsmenn / Skrá nýjan starfsmann / Breyta skráningu" ) print(self) print("=" * 70) choice = input( "\nHverju villtu breyta:\n1. Nafn\n2. Kennitala\n3. Notandnafn\n4. Lykilorð\n5. Breyta aðgangi\n6. Klára Skráningu\n" ) legal_choice = False while not legal_choice: try: if int(choice) in range(1, 7): legal_choice = True else: print("Ekki valmöguleiki, veldu aftur") except: print("Ekki valmöguleiki, veldu aftur") if choice == "6": correct = True self.change_info(choice, staff_list) print_header("Heimasíða / Starfsmenn / Breyta skráningu")
def main_menu(self): """ Main menu er loop sem hættir þegar q er sett inn. Á flestum input stöðum (fyrir utan þegar beðið er um dagsetningar eða bílaflokk) er hægt að setja inn "t" til að fara tilbaka eða "h" til að fara aftur á þessa síðu. """ action = '' while action != "q": system("clear") login = False while not login: username = input("Notandanafn: ") password = input("Lykilorð: ") #Athugar hvort notandi sé til og skilar því, notandanum og hvort hann sé admin login, admin, self.__staff = self.__staff_service.check_login(username, password) if login == False: system('clear') print("Innskráning mistókst.") action = "" while action != "s" and action != "q": prompt = "Heimasíða ('t' til að fara til baka, 'h' til að fara heim)" print_header(prompt) prompt = "Heimasíða" if admin: action = input("1. Bílar\n2. Viðskiptavinir\n3. Skoða eða skrá pantanir\n4. Starfsmenn\ns. Skrá út\nq. Loka kerfi\n").lower() if action == '4': self.__staffUI(self.__staff) else: action = input("1. Bílar\n2. Viðskiptavinir\n3. Skoða eða skrá pantanir\ns. Skrá út\nq. Loka kerfi\n").lower() if action == "1": self.__carUI = CarUI() self.__carUI.car_menu() elif action == "2": self.__customerUI = CustomerUI() self.__customerUI.customer_menu() elif action == "3": self.__orderUI = OrderUI() self.__orderUI.order_menu()
def make_customer(self, customer_list): '''Tekur inn customer_list, til þess að passa að viðskiptavinurinn sé ekki með sömu kennitölu og annar síðan rennur rennur það í gegnum for slaufu þar sem það sendir í fallið change info með mysmunandi verkfni hvert verkefni til að fá uppl. um viðskiptavin. síðan spyr það hvort all sé rétt ef ekki, þa getur notandi breytt ákveðnum uppl um viðskiptavin''' # Hér er bara verið að fléttast í gegnum alla verkferla í Change info fallinu til hægt sé að slá # inn allar uppl. sem þarf for step in range(1, 5): self.change_info(str(step), customer_list) info_list = self.get_info_list() for info in info_list: if info == "t" or info == "h": return info done = False # hér er bara verið að gá hvort viljað er að breyta uppl. sem slegið var inn while not done: print_header( "Heimasíða / Viðskiptavinir / Skrá nýjan viðskiptavin") print(self) print("=" * 70) correct = input("\nEr allt rétt? (j/n) ").lower() if correct != "j": self.customer_change_info(customer_list) else: done = True
def make_staff(self, staff_list): '''Tekur inn staffÖlist, til þess að passa að starfsmaður sé ekki með sömu kennitölu og annar síðan rennur rennur það í gegnum for slaufu þar sem það sendir í fallið change info með mysmunandi verkfni hvert verkefni til að fá uppl. um starfsmann. síðan spyr það hvort all sé rétt ef ekki, þa getur notandi breytt ákveðnum uppl um starfsmann''' # Hér er bara verið að fléttast í gegnum alla verkferla í Change info fallinu til að starfsmaður geti slegið # inn allar uppl. sem þarf for number in range(1, 6): number = str(number) self.change_info(number, staff_list) info_list = self.get_info_list() if "t" in info_list: return "t" elif "h" in info_list: return "h" if number == '2': if self._ssn == '': done = True break else: done = False # hér er bara verið að gá hvort starfsmaður vilji breyta uppl. sem hann sló inn while not done: print_header("Heimasíða / Starfsmenn / Skrá nýjan starfsmann") print(self) print("=" * 70) correct = input("\nEr allt rétt? (j/n) ").lower() if correct != "j": self.update_info(staff_list) else: return self return False
def view_customer(self, customer): """ Hér er hægt að framkvæma fjórar aðgerðir fyrir viðskiptavin. 1. Sjá pantanir, hér er hægt að sjá allar pantanir sem þessi viðskiptavinur hefur skráð á sig. 2. Breyta skráningu, hér er hægt að breyta skráningu viðskiptavinar með hjálp customer_update_info fallinu í CustomerService klasanum. 3. Afskrá viðskiptavin, hér er viðskiptavinurinn tekinn út úr kerfinu og allar þær pantanir sem eru ókláraðar eyðast úr kerfinu líka. 4. Skrá pöntun á viðskiptavin, hér er hoppað beint inn í make_order_info fallið í OrderService klasanum og viðskiptavinurinn líka svo það þurfi ekki að velja hann aftur.""" loop = True while loop: prompt = "Heimasíða / Viðskiptavinir / Skoða viðskiptavin" print_header(prompt) print(customer) print('=' * 70) choice = input( "\n1. Sjá pantanir\n2. Breyta skráningu\n3. Afskrá viðskiptavin\n4. Skrá pöntun á viðskiptavin\nt. Tilbaka\nh. Heim\n" ).lower() if choice == "1": prompt += " / Sjá pantanir" print_header(prompt) customer_orders = self.__customer_service.customer_get_history( customer) if customer_orders: for order in customer_orders: print(order) print() input('Ýttu á "Enter" til að halda áfram: ') else: print("Þessi viðskiptavinur hefur enga notkunarsögu.") sleep(2) elif choice == "2": prompt += " / Breyta skráningu" print_header(prompt) self.__customer_service.customer_update_info(customer) elif choice == "3": prompt += " / Afskrá viðskiptavin" print_header(prompt) choice = input("Ertu viss?(j/n): ") if choice == "j": self.__customer_service.customer_delete(customer) return "Tilbaka", False elif choice == "4": prompt += " / Skrá pöntun á viðskiptavin" print_header(prompt) self.__order_service = OrderService() new_order = self.__order_service.make_order_info( prompt, customer) if type(new_order) == Order: self.__order_ui = OrderUI() self.__order_ui.view_order(new_order) else: if new_order == "h": return "Heim", True self.__customer_service.update_order_repo() elif choice == "t": return "Tilbaka", False else: return "Heim", True
def change_info(self, step, car_service, customer_service, prompt = "", price_repo = None): '''Þetta fall tekur inn uppl. um hvaða skrefi notandinn vil breyta, síðan fer inn í það skref með þær uppl. sem það þarf til að breyta viðeigaindi uppl. um ákveðna pöntun sem notandinn vill láta breyta og spyr notandinn um þær uppl. sem það þarf.''' #þetta skref biður umm kennitölu viðskiptavinar síðan gáir hvort hún sé til ef hún er til þá verður viðskiptavinur #skráður inn í kerfið if step == "1": valid_ssn = False while valid_ssn is not True: ssn = input("Kennitala viðskiptavinar: ") if ssn == "t" or ssn == "h": return ssn self.__customer = customer_service.check_ssn(ssn) if self.__customer: valid_ssn = True else: choice = input("Kennitalan {} fannst ekki.\n1. Reyna aftur\nt. Tilbaka\nh. Heim\n".format(ssn)) if choice == "t" or choice == "h": return choice # Þetta skref biður fyrst um hvernig bíla tegund notandi vill # síðan gáir hvort bíll sé laus í þeim dagsetningu sem notandi vil ef bíll er laus skráir kerfið bílin í orderið elif step == "2": step2 = False while step2 is not True: car_type = make_car_type() date1, date2 = legal_dates(prompt) self.__date_list = make_date_list(date1, date2) self.__car = self.rent_car(car_type, self.__date_list, car_service) if self.__car: step2 = True print_header(prompt) self.__order_price = calc_price(self, price_repo) else: print("Enginn bíll laus með þessi skilyrði") sleep(2) print_header(prompt) # Þetta fall spyr notanda um hvernig trygginu notandi bill og skráir það síðan í pöntunina elif step == "3": step3 = False while step3 is not True: number = input("Veldu tryggingu:\n1. Grunntrygging ({} ISK á dag)\n2. Aukatrygging ({} ISK á dag)\n".format(price_repo.get_base_insurance_price(), price_repo.get_extra_insurance_price())) if number == "2": self.__insurance = "Aukatrygging" step3 = True self.__order_price = calc_price(self, price_repo) elif number == "1": self.__insurance = "Grunntrygging" step3 = True self.__order_price = calc_price(self, price_repo) elif number == "t" or number == "h": return number else: print("Vinsamlegast veldu viðurkennt gildi") # Spyr um korta númerið notanda og gáir hvort það sé löggild og skráir það síðan á pöntunina elif step == "4": self.__card_info = make_number(16, "Kortanúmer: ", "Ólöglegt kortanúmer, reyndu aftur.")
def order_menu(self): """ Hér er hægt að framkvæma þrjár aðgerðir sem koma pöntunum við. 1. Skoða pöntun, hér þarf að setja inn pöntunarnúmer og OrderService klasinn athugar hvort það sé til pöntun með þessu númeri og skilar viðeigandi pöntun. Þegar pöntun hefur verið valin er hægt að framkvæma tvær aðgerðir, annað hvort uppfæra upplýsingar hennar eða afskrá hana. 2. Skrá nýja pöntun, fer beint í fallið make_order_info í OrderService klasanum. 3. Klára pantanir dagsins fer í fallið complete_orders í Orderservice klasanum. """ done = False while not done: prompt = "Heimasíða / Skoða eða skrá pantanir" print_header(prompt) action = input("1. Skoða pöntun\n2. Skrá nýja pöntun\n3. Klára pantanir dagsins\nh. Heim\n") if action == "1": prompt += " / Skoða pöntun" print_header(prompt) exit_info = "" while exit_info == "": order_name = input("Pöntunarnúmer: ") if order_name == "t": break elif order_name == "h": done = True break order = self.__order_service.get_order_by_name(order_name) print_header(prompt) if order: exit_info, done = self.view_order(order) else: choice = input('Pöntunin: "{}" fannst ekki í kerfinu.\n1. Reyna aftur\nt. Tilbaka\nh. Heimasíða\n'.format(order_name)) if choice == "t" or choice == "h": if choice == "h": done = True exit_info = "Tilbaka" elif action == "2": finished = False while not finished: prompt = "Heimasíða / Skoða eða skrá pantanir / Skrá nýja pöntun" print_header(prompt) new_order = self.__order_service.make_order_info(prompt, False) if type(new_order) == Order: finished, done = self.view_order(new_order) else: if new_order == "t": finished = True elif new_order == "h": finished = True done = True elif action == "3": prompt += " / Klára pantanir dagsins" print_header(prompt) choice = self.__order_service.complete_orders(prompt) if choice == "h": done = True else: done = True
def change_car_info(self, car, new_or_not, prompt): ''' Ef notandi vill breyta uppl. um bíl þá velur hann hvejru hann bill breyta síðan er sendur í fallið car_change_info til að breyta viðeigandi uppl.''' old_car = car correct = False if new_or_not: while not correct: print_header(prompt) print(car) print("="*70) print("\nHverju viltu breyta:\n1. Bílnúmeri\n2. Bílaflokkur\n3. Undirtegund\n4. Skipting\n5. Akstur(km)\n6. Klára Skráningu") legal_choice = False while not legal_choice: choice = input() try: if int(choice) in range(1,7): legal_choice = True else: print("Ekki valmöguleiki, veldu aftur") except: print("Ekki valmöguleiki, veldu aftur") if choice == "6": correct = True car.car_change_info(choice, self._all_cars_list, prompt) # ef bílinn er ekki nýr og breyta er verið gömlu bíl þá fer hann notandi hingað else: while not correct: print_header(prompt) print(car) print("="*70) print("\nHverju viltu breyta:\n1. Undirtegund\n2. Skipting\n3. Akstur(km)\n4. Klára Skráningu") legal_choice = False while not legal_choice: choice = input() try: if int(choice) in range(1,5): legal_choice = True choice = str(int(choice) + 2) else: print("Ekki valmöguleiki, veldu aftur") except: print("Ekki valmöguleiki, veldu aftur") if choice == "6": correct = True car.car_change_info(choice, self._all_cars_list, prompt) if new_or_not: self.car_register(car) self._all_cars_list.append(car) else: self.update_car_list(car) self.__change_service.change_car_info_consequences(old_car, car)
def make_car(self, prompt): ''' Þetta fall býr til bíl með grunn uppl. síðan sendir það í car_change_info fallið að breyta uppl. um hverjn hlut sem þarf að vita um bílin síðan spyr fallið hvort allt í rétt slegið inn, ef ekki sendir fallið notanda í fallið change_car_info, þar sem notandi getur breytt viðeigandi uppl.''' new_car = Car() for step in range(1,6): quit_info = new_car.car_change_info(str(step), self._all_cars_list, prompt) if type(quit_info) == str: return quit_info new_car.set_availability(self.get_date_dict()) print_header(prompt) print(new_car) print("="*70) continue_q = input("\nEr allt rétt? (j/n): ").lower() if continue_q != "j": self.change_car_info(new_car, True, prompt) else: self.car_register(new_car) return new_car
def make_order_info(self, prompt, customer_known): """Býr til tóma pöntun og sendir pöntunina í gegnum ferlið að búa til allar upplýsingar um hana""" price_repo = PriceRepository() new_order = Order() for step in range(1, 5): if customer_known and (step == 1): new_order.set_customer(customer_known) else: choice = new_order.change_info(str(step), self.__car_service, self.__customer_service, prompt, price_repo) if choice == "t": return "t" elif choice == "h": return "h" price_repo = PriceRepository() price = calc_price(new_order, price_repo) new_order.set_price(price) print_header(prompt) print(new_order) print("="*70) continue_q = input("\nEr allt rétt? (j/n) ").lower() if continue_q != "j": self.change_order_info(new_order, prompt) print_header(prompt) payment_complete = take_payment(new_order.get_order_price()) if type(payment_complete) == str: return "h" print_header(prompt) print("Pöntun skráð.") sleep(2.5) self.__order_repo.add_order(new_order) return new_order
def customer_change_info(self, customer_list): """Fall sem spyr notanda hvaða uppl. hann vill breyta um viðskiptavin og sendir síðan á change info fallið hvaða upplýsinga notandi vill breyta""" correct = False while not correct: legal_choice = False while not legal_choice: print_header( "Heimasíða / Viðskiptavinir / Leita að viðskiptavin / Breyta skráningu" ) print(self) print("=" * 70) choice = input( "\nHverju villtu breyta:\n1. Nafn\n2. Kennitala\n3. Netfang\n4. Símanúmer\n5. Klára Skráningu\n" ) print_header( "Heimasíða / Viðskiptavinir / Leita að viðskiptavin / Breyta skráningu" ) try: if int(choice) in range(1, 6): legal_choice = True if choice == "5": correct = True else: self.change_info(choice, customer_list) print_header( "Heimasíða / Viðskiptavinir / Leita að viðskiptavin / Breyta skráningu" ) else: print("Ekki valmöguleiki, veldu aftur") except: print("Ekki valmöguleiki, veldu aftur")
def view_order(self, order): loop = True while loop: prompt = "Heimasíða / Skoða eða skrá pantanir / Skoða pöntun" print_header(prompt) print(order) print('='*60) choice = input("\n1. Uppfæra pöntun\n2. Eyða pöntun\nt. Tilbaka\nh. Heim\n") if choice == "1": prompt += " / Uppfæra Pöntun" self.__order_service.change_order_info(order, prompt) # exit_info = "Pöntun uppfærð" elif choice == "2": prompt += " / Eyða pöntun" print_header(prompt) choice = input("Ertu viss? (j/n): ") if choice == "j": self.__order_service.order_delete(order) return "Tilbaka", False elif choice == "t": return "Tilbaka", False else: return "Heim", True
def change_order_info(self, order, prompt): """Sér um ferlið að uppfæra upplýsingar um pöntun. Þ.e.a.s tekur order og spyr hverju þú villt breyta, sendir þig svo á viðeigandi skref í order.change_info síðan uppfærir það repoið og vistar breytingarnar""" correct = False while not correct: print_header(prompt) print(order) print("="*70) print("\nHverju villtu breyta:\n1. Kennitölu á pöntun\n2. Bíl og dagsetningu\n3. Tryggingu\n4. Kortanúmeri\n5. Klára Skráningu") legal_choice = False while not legal_choice: choice = input() try: if int(choice) in range(1,6): legal_choice = True else: print("Ekki valmöguleiki, veldu aftur") except: print("Ekki valmöguleiki, veldu aftur") if choice == "5": correct = True order.change_info(choice, self.__car_service, self.__customer_service, prompt, PriceRepository()) self.__order_repo.update_order_list()
def view_car(self, car): """ Þetta fall keyrist þegar bíll hefur verið fundinn í „skoða bíl" hlutanum í CarMenu klasanum. """ car_selected = True while car_selected: prompt = "Heimasíða / Bílar / Skoða bíl" system('clear') print_header(prompt) car.set_availability(self.__car_service.get_date_dict()) print(car) print("=" * 70) choice = input( "\n1. Skoða pantanir\n2. Uppfæra upplýsingar bíls\n3. Afskrá bíl\nt. Tilbaka\nh. Heim\n" ).lower() # Skoða pantanir bíls sýnir allar pantanir sem hann hefur haft eða hefur. if choice == "1": print_header(prompt) car_orders = self.__car_service.car_get_history(car) if car_orders: for order in car_orders: print(order) print() else: print_header(prompt) print("Þessi bíll hefur enga notkunarsögu.") input('Ýttu á "Enter" til að halda áfram: ') elif choice == "2": # Sjá change_car_info fallið í Car klasanum. prompt += " / Uppfæra upplýsingar bíls" self.__car_service.change_car_info(car, False, prompt) elif choice == "3": # Sjá car_delete fallið í Car klasanum. prompt += " / Afskrá bíl" print_header(prompt) choice = input("Ertu viss?(j/n): ") if choice == "j": self.__car_service.car_delete(car) return "Tilbaka", False elif choice == "t": return "Tilbaka", False elif choice == "h": return "Heim", True
def customer_menu(self): """ Hér er hægt að framkvæma tvær aðgerðir sem koma viðskiptavinum við. 1. Leita að viðskiptavin, hér tekur CustomerService klasinn við kennitölu, athugar hvort það sé til viðskiptavinur í kerfinu með þessa kennitölu og skilar viðeigandi viðskiptavin. Þegar viðskiptavinur hefur verið valinn er hann sentur í view_customer fallið. 2. Skrá nýjan viðskiptavin, sjá customer_register í CustomerService klasanum. """ done = False while not done: prompt = "Heimasíða / Viðskiptavinir" print_header(prompt) action = input( "1. Leita að viðskiptavin\n2. Skrá nýjan viðskiptavin\nh. Heim\n" ) if action == "1": exit_info = "" prompt += " / Leita að viðskiptavin" while exit_info == "": print_header(prompt) ssn = input("Kennitala: ").lower() if ssn == "h": done = True break elif ssn == "t": break customer = self.__customer_service.check_ssn(ssn) if customer: exit_info, done = self.view_customer(customer) else: choice = input( 'Kennitalan: "{}" fannst ekki í kerfinu.\n1. Reyna aftur\nt. Tilbaka\nh. Heim\n' .format(ssn)) if choice == "t": break elif choice == "h": done = True break elif action == "2": prompt += " / Skrá nýjan viðskiptavin" print_header(prompt) new_customer = self.__customer_service.customer_register() if type(new_customer) == Customer: exit_info, done = self.view_customer(new_customer) elif new_customer == "h": done = True else: done = True
def complete_orders(self, prompt): """ Þetta fall finnur hvaða pantanir eru með skiladag í dag eða liðinn skiladag og prentar þær út. Notandi getur svo valið hvaða pöntun hann vill klára. Þegar sú pöntun hefur verið valinn þá reiknast út hvað aukakostnað þarf að greiða (ef viðskiptavinur keyrði meira en 150 km á dag) sem viðskiptavinur þarf að greiða. Þegar borgað hefur verið allan aukakostnað þá breytist skráningin á pöntuninni og hún hefur þar með verið kláruð. """ finished_completing_orders = False while not finished_completing_orders: print_header(prompt) order_list = self.__order_repo.get_order_list() order_to_complete_list = [] for order in order_list: if order.get_order_complete() != True and order.get_last_day() == date.today(): order_to_complete_list.append(order) if order_to_complete_list == []: print("Enga pöntun þarf að klára í dag.") sleep(2) finished_completing_orders = True else: for order in order_to_complete_list: print(order) print() order_to_change = input("Hvaða pöntun viltu klára? ") if order_to_change == "t" or order_to_change == "h": return order_to_change if len(order_to_change.split()) == 2: order_to_change = order_to_change.split()[1] for order in order_to_complete_list: if order_to_change == order.get_order_name().split()[1]: order_to_complete = order break order_to_complete = False # ss það finnst engin pöntun með þessu nafni if not order_to_complete: choice = error_handle("Pöntun", order_to_change) if choice == "t" or choice == "h": return choice print_header(prompt) else: car = order_to_complete.get_car() order_price = int(order_to_complete.get_order_price()) new_milage_boolean = False while not new_milage_boolean: try: new_milage = input("Hvað er bíllinn núna keyrður? ").lower() if new_milage == "t" or new_milage == "h": return new_milage milage_difference = int(new_milage) - car.get_milage() if 0 < milage_difference: new_milage_boolean = True else: print("Villa: Bíllinn getur ekki verið minna keyrður eftir leigu.") except: print("Villa: Bíllinn getur ekki verið minna keyrður eftir leigu.") day_price = order_price // len(order_to_complete.get_date_list()) final_payment = int(milage_difference // 150 * 0.02 * day_price) print_header(prompt) if final_payment > 0: payment_complete = take_payment(final_payment) else: payment_complete = True if type(payment_complete) == str: return "h" self.__car_service.update_car_list(car) order_to_complete.set_car(car) order_to_complete.set_complete(True) self.__order_repo.update_order_list() car.set_milage(new_milage) print_header(prompt) print("Pöntun er nú kláruð") choice = input("1. Velja aðra pöntun til að klára\nt. Tilbaka\nh. Heim\n") if choice == "t" or choice == "h": finished_completing_orders = True
def staff_menu(self): """her er hægt að skrá nýjan aðgan að forritinu og breyta uppl.""" done = False while not done: prompt = "Heimasíða / Starfsmenn" print_header(prompt) action = input( "1. Skrá nýjan starfsmann\n2. Leita að starfsmanni\n3. Skoða verðskrá\nh. Heim\n" ) if action == "1": prompt += " / Skrá nýjan starfsmann" print_header(prompt) new_staff = self.__staff_service.staff_register() if type(new_staff) == str: if new_staff == "h": done = True elif action == "2": exit_info = "" while exit_info == "": if "/ Leita að starfsmanni" not in prompt: prompt += " / Leita að starfsmanni" print_header(prompt) ssn = input("Kennitala: ") if ssn == "t" or ssn == "h": if ssn == "h": done = True break staff = self.__staff_service.check_ssn(ssn) exit_info2 = "" if staff: while exit_info2 == "": prompt = "Heimasíða / Starfsmenn / Leita að starfsmanni" print_header(prompt) print(staff) choice = input( "1. Breyta upplýsingum starfsmann\n2. Afskrá starfsmann\nt. Tilbaka\nh. Heim\n" ) if choice == "1": prompt += " / Breyta upplýsingum starfsmann" print_header(prompt) self.__staff_service.staff_update_info(staff) elif choice == "2": prompt += " / Afskrá starfsmann" print_header(prompt) choice = input("Ertu viss?(j/n): ") if choice == "j": self.__staff_service.staff_delete( staff, self.__staff) exit_info = "Tilbaka" exit_info2 = "Tilbaka" elif choice == "t": exit_info = "Tilbaka" exit_info2 = "Tilbaka" else: exit_info = "Heim" exit_info2 = "Heim" done = True else: choice = input( 'Kennitalan: "{}" fannst ekki í kerfinu.\n1. Reyna aftur\nt. Tilbaka\nh. Heim\n' .format(ssn)) if choice == "t" or choice == "h": if choice == "h": done = True break elif action == "3": done_viewing = False while not done_viewing: prompt = "Heimasíða / Starfsmenn / Skoða Verðskrá" print_header(prompt) self.__staff_service.print_price_list() choice = input( "\n1. Breyta skráningu\nt. Tilbaka\nh. Heimasíða\n" ).lower() if choice == "1": exit_info = False prompt += " / Breyta verðskrá" while not exit_info: print_header(prompt) choice = input( "1. Fólksbíll\n2. Smábíll\n3. Fimm sæta jeppi\n4. Sjö sæta jeppi\n5. Smárúta\n6. Grunntrygging\n7. Aukatrygging\nt. Til baka\nh. Heim\n" ).lower() if choice == "t": exit_info = True elif choice == "h": exit_info = True done = True elif choice in [str(i) for i in range(1, 8)]: exit_info, done = self.__staff_service.change_price( choice) elif choice == "h": done_viewing = True done = True else: done_viewing = True else: done = True
def car_menu(self): """ Hér eru allar aðgerðir undir "Bílar" framkvæmdar sem skiptast í fernt. """ done = False while not done: prompt = "Heimasíða / Bílar" print_header(prompt) action = input( "1. Skoða bíl\n2. Skrá nýjan bíl\n3. Skoða lausa bíla\n4. Skoða bíla í útleigu\nh. Heim\n" ).lower() #Skoða bíl, hér þarf að setja inn bílnúmer sem CarService klasinn tekur, athugar hvort það sé í kerfinu og skilar bíl. #Þegar bíll er valinn þá er hægt að framkvæma fjórar aðgerðir á honum. if action == "1": prompt += " / Skoða bíl" print_header(prompt) exit_info = "" while exit_info == "": registration_num = input("Bílnúmer: ") #Hendir manni til baka ef maður slær inn t eða h if registration_num == "t" or registration_num == "h": if registration_num == "h": done = True break #Tekur inn bílnúmerið og athugar hvort það sé löglegt car_found, legal_reg_num = self.__car_service.car_find( registration_num) if not car_found: if not legal_reg_num: choice = input( '1. Reyna aftur\nt. Tilbaka\nh. Heim\n') else: #Fall sem skilar tekur inn tvö gildi og skilar villuskilaboðum choice = error_handle("Bíllinn", registration_num) if choice == "t" or choice == "h": if choice == "h": done = True break else: print_header(prompt) continue exit_info, done = self.view_car(car_found) #Skrá nýjan bíl, sjá make_car fallið í CarService. elif action == "2": prompt += " / Skrá nýjan bíl" print_header(prompt) new_car = self.__car_service.make_car(prompt) #Fallið sem býr til nýjan bíl (sjá fallið nánar) og skilar annað hvort instance af bíl eða streng if type(new_car) == Car: exit_info, done = self.view_car(new_car) #Ef fallið á undan skilar ekki streng þá er else: if new_car == "h": done = True #Skoða lausa bíla, sjá get_available_cars fallið í CarService klasanum. elif action == "3": exit_info = "" prompt += " / Skoða lausa bíla" print_header(prompt) while exit_info == "": #Prentar út alla lausa bíla á ákveðnu tímabili og skilar True/False eftir því self.__car_service.get_available_cars(prompt) choice = "" while choice != "1": choice = input( "1. Skoða fleiri lausa bíla\nt. Tilbaka\nh. Heim\n" ).lower() if choice == "t" or choice == "h": if choice == "h": done = True exit_info = "Tilbaka" break print_header(prompt) elif action == "4": # Skoða bíla í útleigu, sjá get_busy_cars fallið í CarService klasanum. exit_info = "" prompt += " / Skoða bíla í útleigu" print_header(prompt) while exit_info == "": busy_cars_dict = self.__car_service.get_busy_cars(prompt) self.__car_service.print_car_dict(busy_cars_dict, True) choice = "" while choice != "1": choice = input( "1. Skoða fleiri bíla í útleigu\nt. Tilbaka\nh. Heim\n" ) if choice == "t" or choice == "h": if choice == "h": done = True exit_info = "Tilbaka" break print_header(prompt) elif action == "h": done = True