def add_viaje(): g = 0 while g == 0: try: id = (input('Ingrese un ID de 6 digitos para el nuevo viaje: ')).strip() disponible = viaje.viajes.get(id, 'disponible') if (len(id) != 6) or (disponible != 'disponible'): raise ValueError else: g = 1 except: print('Esta id ya existe en la lista, o no es valida.\nIntente Nuevamente...') terminal_origen, ciudad_origen = elegir_terminal(ciudad) tipo = terminal_origen.type for i in terminal_origen.city.rutas[tipo]: if ciudad_origen.name != i.city1.name: ciudad_destino = i.city1 else: ciudad_destino = i.city2 for i in ciudad_destino.lista_terminales[tipo]: print(i) ct = 1 d = {} print('\nTerminal de destino:\n') for i in ciudad_destino.lista_terminales[tipo]: d[ct] = i print(ct, ': ', i) ct += 1 c = ':c' while c != ':)': try: num = int(input('Ingrese el número correspondiente al terminal de destino: ').strip()) if num < 1 or num > ct: raise ValueError else: c = ':)' except: print('Dato no valido, intente nuevamente...') terminal_destino = d[num] for i in ruta.rutas: if (((ruta.rutas[i].city1.name == ciudad_origen.name) and (ruta.rutas[i].city2.name == ciudad_destino.name)) or ((ruta.rutas[i].city2.name == ciudad_origen.name) and ( ruta.rutas[i].city1.name == ciudad_destino.name))) and ( ruta.rutas[i].type == tipo): route = ruta.rutas[i] porte = min(terminal_origen.num_size, terminal_destino.num_size) fech = ingresar_fecha() veh = elegir_vehiculo(route.type, porte, fech) viaje([id, terminal_origen.code, terminal_destino.code, route.id, fech, veh.name]) arch = open('trips.txt', 'a') arch.write( '\n' + id + '\t' + terminal_origen.code + '\t' + terminal_destino.code + '\t' + route.id + '\t' + fech + '\t' + veh.name) arch.close() print('\nViaje añadido correctamente :D\n')
def agendar_pasajero(): c = '' while c != ':C': clave = input('\nIngrese el rut de la persona a la que desea agendar un viaje: ').strip() pasajero = persona.personas.get(clave, False) if pasajero == False: print('Rut invalido o inexistente, intente nuevamente...') continue else: print('Pasajero {0} encontrado!\n'.format((pasajero.name + ' ' + pasajero.lastname))) c = ':C' print('Viajes actualmente agendados:\n') for i in pasajero.viajes: print(pasajero.viajes[i], '\n') esperar() c = '' while c != ':C': print('Ingrese lugar de origen') terminal, ciudad = elegir_terminal() try: d = {} b = 1 for i in viaje.viajes_origen[terminal.code]: d[b] = i print(b,': ',i, '\n') b +=1 c = ':C' except: print('Viajes no disponibles, intente nuevamente...') esperar() c = ':c' while c != ':)': try: num = int(input('Ingrese el número correspondiente al viaje escogido: ').strip()) if num < 1 or num > b: raise ValueError else: c = ':)' except: print('Dato no valido, intente nuevamente...') via = d[num] pasajero.viajes[via.id] = via arch = open('itineraries.txt', 'r') a = [] for i in arch: a.append(i) c = 0 while c != (len(a)): s = a[c].split('\t') if s[0] == pasajero.rut: e = s[1].split(' ') z = 0 p = [] while z != (len(e)): p.append(e[z].strip()) z+=1 p.append(via.id) p = ' '.join(p) a[c] = pasajero.rut+'\t'+p c+=1 arch.close() ar= open('itineraries.txt', 'w') for i in a: ar.write(i) print('viaje agregado!')