コード例 #1
0
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')
コード例 #2
0
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 ''