def choose_tour(): #se le pide el DNI al cliente y se le muestran los tours que provee el crucero while True: try: dni = int(input('DNI: ')) for i, tour in enumerate(Tour.create(), 1): print(f'''\n {i}. {tour.name} - Precio por persona: {tour.price_per_person} - Hasta {tour.group_capacity} personas - Descuento del {tour.discount} % para la tercera y cuarta persona - Empieza a las {tour.time} - Capacidad total: {tour.total_capacity} ''') choice = int(input('Cuál tour desea reservar?: ')) if choice == 1: quantity_of_people = int(input('Cuántas personas son?: ')) #gc = group capacity gc = Tour.create()[0].group_capacity #si su grupo de personas es mayor a la capacidad por grupos del tour, no podrá reservar if quantity_of_people > gc: print(f'No se pueden grupos mayores a {gc} personas') else: print(reserve_tour(quantity_of_people, dni, choice)) #lo mismo que en el 1 elif choice == 2: quantity_of_people = int(input('Cuántas personas son?: ')) gc = Tour.create()[1].group_capacity if quantity_of_people > gc: print(f'No se pueden grupos mayores a {gc} personas') else: print(reserve_tour(quantity_of_people, dni, choice)) elif choice == 3: #aquí no se pide cantidad del grupo de personas porque este tour no tiene límite quantity_of_people = int(input('Cuántas personas son?: ')) print(reserve_tour(quantity_of_people, dni, choice)) #lo mismo que en el 1 elif choice == 4: quantity_of_people = int(input('Cuántas personas son?: ')) gc = Tour.create()[0].group_capacity if quantity_of_people > gc: print(f'No se pueden grupos mayores a {gc} personas') else: print(reserve_tour(quantity_of_people, dni, choice)) else: raise Exception break except: print('Ingrese una opción válida')
def reserve_tour(quantity_of_people, dni, choice): #si aplican descuentos #4 porque los tours que tienen descuento es en la 3ra y 4ta persona if quantity_of_people == 4: #variable que va a indicar cual tour i = choice - 1 final_price = Tour.apply_discount(Tour.create()[i].price_per_person, Tour.create()[i].discount, quantity_of_people) tour_reservation = TourReservation(dni, Tour.create()[i].name, Tour.create()[i].time, final_price) #si no hay ningun descuento else: #variable que va a indicar cual tour i = choice - 1 final_price = Tour.create()[i].price_per_person * quantity_of_people tour_reservation = TourReservation(dni, Tour.create()[i].name, Tour.create()[i].time, final_price) #con Tour.vacancy() chequeo si todavia queda espacio para el tour elegido if Tour.vacancy(i, quantity_of_people): #si queda espacio, se hace la reserva tour_reservation.tour_reservation_file('tour_reservations.txt') tour_reservation.show(quantity_of_people) else: # si no, se le avisa al cliente que no es posible print(f'No quedan suficientes cupos disponibles para el tour {tour_reservation.name}, disculpe.') #retorno esto para que no salga 'none' lol return ''