def barco(self, db): #'Mostrar los barcos disponibles en base de datos"" len_db = len(db) print(':::::::::') print('\nCruceros Disponibles\n') for i in range(len_db): print(i + 1, '.', db[i]['name']) opcion = numero_valido(len_db) return (opcion)
def tipo_habitacion(self): #'Devuelve el tio de habitacion seleccionado' print("Seleccione el tipo de Habitacion:\n" '1.Simple\n' '2.Premium\n' '3.VIP\n') tipo = numero_valido( 3) #mod2=5 #loop para solictar numero correcto de las opciones if tipo == 1: return ('simple') elif tipo == 2: return ('premium') else: return ('vip')
def buscar_rest(self, dato_json, clase): print('\nBuscar por:\n' '1.Nombre\n' '2.Rango de Precio\n' '3.Volver') buscar_op=numero_valido(3) if buscar_op==1: resultado=Aplicacion_rest.buscar_nombre_rest(self,dato_json, clase) elif buscar_op==2: resultado=Aplicacion_rest.buscar_rango_rest(self,dato_json, clase) elif buscar_op==3: resultado=0 if resultado==[]: resultado='No encontrado' return resultado
def buscar(self): print( 'Desea buscar habitacion por:\n' '1. Tipo\n2.Capacidad\n3.Id de Habitación', '\n4.Volver') opcion = numero_valido(4) jsonfile = 'datos.json' # Archivo de almacenamiento de datos datos_vacio = None verificar_archivo( jsonfile, datos_vacio ) #verificar la existencia del archivo json, o creacion de uno dato_json = abrir_datos(jsonfile) if opcion == 1: encontrado = Aplicacion.buscar_tipo(self, dato_json) return (encontrado) elif opcion == 2: encontrado = Aplicacion.buscar_capacidad(self, dato_json) return (encontrado) elif opcion == 3: encontrado = Aplicacion.buscar_id(self, dato_json) return (encontrado)
def main(): #Este es el modulo principal desde donde se accede a los modulos secundarios print('\n.......................\nSAMAN CARIBBEAN') print('\nBienvenido') print('Modulo 1: Gestion de Cruceros \nMódulo 2: Gestion de Habitaciones\n' 'Modulo 3: Venta de Tour \nModulo 4: Gestion de Restaurante' '\nModulo 5: Estadísticas \nPresione 6 para salir') opcion = numero_valido(6) mod = modulo() if opcion == 1: mod.modulo_1() elif opcion == 2: mod.modulo_2() elif opcion == 3: mod.modulo_3() elif opcion == 4: mod.modulo_4() elif opcion == 5: mod.modulo_5() else: print('Hasta Luego') sys.exit()
def modulo_2(self): c = Aplicacion() print('\nMódulo 2\n') print('1.Visualizar Habitaciones' '\n2.Vender Habitacion' '\n3.Desocupar Habitacion' '\n4.Buscar Habitacion') mod2 = numero_valido(4) #solictar numero correcto de las opciones if mod2 == 1: #condicion para entrar en modulo-2:Visualizar Habitaciones print('Visualizar Habitaciones') info = '' while info != 'NO': opcion = c.barco(data) info = c.elegir_habitacion(opcion, data) if info == 'NO': main() elif mod2 == 2: #condicion para entrar en modulo-2:Vender Habitaciones jsonfile = 'datos.json' # Archivo de almacenamiento de datos datos_vacio = None verificar_archivo( jsonfile, datos_vacio ) #verificar la existencia del archivo json, o creacion de uno dato_json = abrir_datos(jsonfile) print('\nVender Habitaciones\n') print('Compra de Boletos:\n' '1.Por Destino\n' '2.Por Barco\n' '0. Menú Principal') boleto = numero_valido(2) if boleto == 1: destino = c.destino(data) print('Destino elegido:', destino) barco = c.destino_en_barco(data, destino) print('Barcos Disponibles: ', barco) print('Seleccione un Barco') opcion_barco = c.barco(data) elif boleto == 2: opcion_barco = c.barco(data) else: main() barco = data[opcion_barco - 1]['name'] print('Tipo de Habitacion') tipo_hab = c.tipo_habitacion() print('Numero de Personas') num_personas = lee_numero() lista_hab = data[opcion_barco - 1][ 'rooms'] #accede a la informacion de habitaciones de un barco desde base de datos principal hab = c.id_habitacion( lista_hab, tipo_hab ) #se obtiene la identificacion de todas las habitaciones del barco escogido capacidad = c.capacidad_habitacion( data, opcion_barco, tipo_hab ) #se obtiene la capacidad del tipo de habitacion escogido asig_habitaciones = c.selec_habitacion( hab, num_personas, capacidad, dato_json, barco ) #se obtiene el numero de habitaciones asignadas al cliente y los id de las habitaciones print('capacidad:', capacidad, '\nnumero:', asig_habitaciones) personas = c.formulario(num_personas) costo = c.costos(data, opcion_barco, tipo_hab, asig_habitaciones, personas) a_bordo = c.cliente_a_bordo() registro = c.registro_id(opcion_barco, num_personas, asig_habitaciones) datos = { 'barco': data[opcion_barco - 1]['name'], 'Tipo Hab': tipo_hab, 'Capacidad Hab': capacidad, 'Numero de Personas': num_personas, 'Habitaciones': asig_habitaciones, 'Datos de Pasajeros': personas, 'Costos': costo, 'Cliente a Bordo': a_bordo, 'Boleto_id': registro } print(datos, '\n.................') y = agregar_datos(jsonfile, datos) guardar_datos(jsonfile, y) main() elif mod2 == 3: jsonfile = 'datos.json' # Archivo de almacenamiento de datos datos_vacio = None verificar_archivo( jsonfile, datos_vacio ) #verificar la existencia del archivo json, o creacion de uno dato_json = abrir_datos(jsonfile) print('\nMódulo 3\n') print('Desocupar Habitación') opcion = '' while opcion != 'NO': print('Buscar Habitación') encontrado = c.buscar_id(dato_json) if encontrado == 0: print('..............') main() print(encontrado) registro = input("Escriba el id del boleto: ").upper() buscar_boleto = '' for i in range(len(encontrado)): boleto = encontrado[i]['Boleto_id'] if registro == boleto: buscar_boleto = boleto print( buscar_boleto, '...verificado', ) if buscar_boleto == registro: print('\nDesea Desocupar?') des = lee_entrada() if des == 'SI': encontrado[0]['Cliente a Bordo'] = 'NO' dato = c.borrar_registro(registro, jsonfile) dato.append(encontrado[0]) guardar_datos(jsonfile, dato) print(encontrado) print('\nDesea Buscar Otro?') opcion = lee_entrada() if opcion == 'NO': main() else: print('Boleto ID no verificado') print('\nDesea Buscar Otro?') opcion = lee_entrada() if opcion == 'NO': main() elif mod2 == 4: print('\nMódulo 4\n') opcion = '' while opcion != 'NO': print('Buscar Habitación') encontrado = c.buscar() print(encontrado) print('\nDesea Buscar Otro?') opcion = lee_entrada() if opcion == 'NO': main()
def modulo_5(self): a = estadistica() jsonfile1 = 'datos.json' # Archivo de almacenamiento de datos jsonfile2 = 'datos_tour.json' datos_vacio = None verificar_archivo( jsonfile1, datos_vacio ) #verificar la existencia del archivo json, o creacion de uno dato_json1 = abrir_datos(jsonfile1) verificar_archivo( jsonfile2, datos_vacio ) #verificar la existencia del archivo json, o creacion de uno dato_json2 = abrir_datos(jsonfile2) print('..................................') print('\nModulo 5' '\Estadísticas') print( '\n1.Gasto por cliente (Ticket+Tour)' '\n2.Porcentaje de Clientes que no Compran Tour' '\n3.Clientes (primeros 3)de mayor fidelidad (que gastan más dinero)' '\n4.Top 3 Cruceros con más ventas en Tickets' '\n5.Top 5 Productos más vendidos en Restaurant' '\n6. Volver al menú principal') menu = numero_valido(6) if menu == 1: print( '\nPromedio de gasto de un cliente en el crucero (Ticket+Tour)' ) gasto = a.gasto_cliente(dato_json1, dato_json2) if gasto == 0: print('\n..................................') modulo.modulo_5(self) monto = [] for i in range(len(gasto)): monto_cliente = gasto[i][1] monto.append(monto_cliente) personas = [] for i in range(len(gasto)): persona_cliente = gasto[i][0] personas.append(persona_cliente) monto_suma = sum(monto) promedio = monto_suma / len(gasto) print('Promedio de Gasto: ', round(promedio, 2)) print('\n..................................') modulo.modulo_5(self) elif menu == 2: print('\nPorcentaje de Clientes que no Compran Tour') notour = a.no_tour(dato_json1, dato_json2) if notour == 'Sin datos de Pasajeros': print(notour) print('\n..................................') pass else: sitour = 100 - notour print(str(round(notour, 1)) + '%') print('\n..................................') #Grafico fig = plt.figure() ax = fig.add_axes([0, 0, 1, 1]) ax.axis('equal') langs = ['Si compran Tour', 'No compran Tour'] pct = [sitour, notour] ax.pie(pct, labels=langs, autopct='%1.2f%%') ax.set_title('Porcentaje de Clientes que no Compran Tour') plt.show() modulo.modulo_5(self) elif menu == 3: print('\nClientes (primeros 3)de mayor fidelidad') gasto = a.gasto_cliente(dato_json1, dato_json2) if gasto == 0: print('\n..................................') modulo.modulo_5(self) top3 = a.top(gasto) for i in range(len(top3)): print(i + 1, '.Nombre: ', top3[i][0], ' Monto: ', top3[i][1]) print('\n..................................') modulo.modulo_5(self) elif menu == 4: print('\nTop 3 Cruceros con más ventas en Tickets') crtop = a.crucero_top(dato_json1) if crtop == 0: print('Sin datos de Pasajeros') print('\n..................................') modulo.modulo_5(self) else: for i in range(3): print(i + 1, '.Crucero: ', crtop[i][0], ' Tickets:', crtop[i][1]) print('\n..................................') modulo.modulo_5(self) elif menu == 5: print('\nTop 5 Productos más vendidos en Restaurant') venta = a.p_vendidos(data) langs = [] pct = [] for i in range(5): print(i + 1, '...', venta[i][0], ' Ventas:', venta[i][1]) langs.append(venta[i][0]) pct.append(venta[i][1]) print('\n..................................') fig = plt.figure() ax = fig.add_axes([0, 0, 1, 1]) ax.axis('equal') ax.pie(pct, labels=langs, autopct='%1.2f%%') ax.set_title('Top 5 Productos más vendidos en Restaurant') plt.show() modulo.modulo_5(self) elif menu == 6: main()
def modulo_4(self): d = Aplicacion_rest() print('\nModulo 4' '\nGestion de Restaurante\n') jsonfile = 'datos_rest.json' # Archivo de almacenamiento de datos datos_vacio = None verificar_archivo( jsonfile, datos_vacio ) #verificar la existencia del archivo json, o creacion de uno dato_json = abrir_datos(jsonfile) opcion = '' while opcion != 'NO': print('.........................................\n' 'GESTION DE RESTAURANTE\n' '\nSeleccione Opcion\n' '1.Buscar Producto o Combo \n' '2.Agregar Producto\n' '3.Eliminar Producto \n' '4.Modificar Producto\n' '5.Agregar Combo \n' '6.Eliminar Combo \n' '7.Modificar Combo \n' '8.Ir al Menú Principal') menu = numero_valido(8) if menu == 1: print('Buscar Producto o Combo?') clase = d.lee_clase() resultado = d.buscar_rest(dato_json, clase) if resultado == 0: main() print(resultado) elif menu == 2: print('Agregar Producto') producto = d.agregar() print(producto) y = agregar_datos(jsonfile, producto) guardar_datos(jsonfile, y) main() elif menu == 3: print('Eliminar Producto') clase = 'P' eliminar = d.eliminar_prod_comb(dato_json, clase) if eliminar == 0: print('No encontrado') main() if eliminar == 'No encontrado': print('No encontrado') main() guardar_datos(jsonfile, eliminar) main() elif menu == 4: print('Modificar Producto') clase = 'P' print('Buscar Producto') resultado = d.buscar_rest(dato_json, clase) print(resultado) if resultado == 'No encontrado': main() if resultado == 'Sin datos': main() id_colect = resultado[0]['cod'] print('Desea Modificar?') opcion = lee_entrada() if opcion == 'SI': producto = d.agregar() eliminar = d.eliminar_prod(dato_json, clase, id_colect) guardar_datos(jsonfile, eliminar) y = agregar_datos(jsonfile, producto) guardar_datos(jsonfile, y) else: main() elif menu == 5: print('Agregar Combo') combo = d.agregar_combo() print(combo) y = agregar_datos(jsonfile, combo) guardar_datos(jsonfile, y) main() elif menu == 6: print('Eliminar Combo') clase = 'C' eliminar = d.eliminar_prod_comb(dato_json, clase) if eliminar == 0: print('No encontrado') main() if eliminar == 'No encontrado': print('No encontrado') main() guardar_datos(jsonfile, eliminar) main() elif menu == 7: print('Modificar Combo') clase = 'C' print('Buscar Producto') resultado = d.buscar_rest(dato_json, clase) print(resultado) if resultado == 'No encontrado': main() if resultado == 'Sin datos': main() id_colect = resultado[0]['cod'] print('Desea Modificar?') opcion = lee_entrada() if opcion == 'SI': producto = d.agregar_combo() eliminar = d.eliminar_prod(dato_json, clase, id_colect) guardar_datos(jsonfile, eliminar) y = agregar_datos(jsonfile, producto) guardar_datos(jsonfile, y) else: main() elif menu == 8: print('..............') main() print('\nCotinuar en Gestion de Restaurant?') opcion = lee_entrada() if opcion == 'NO': main()
def tour(self, num_per, Num_tour): a = 'Tour en el Puerto' b = 'Degustacion de comida local' c = 'Trotar por el pueblo/ciudad' d = 'Visita a lugares Históricos' Num_cli_a = [0] Num_cli_b = [0] Num_cli_c = [0] Num_cli_d = [0] data = isinstance(Num_tour, numbers.Integral) if data is True: pass else: for i in range(len(Num_tour)): if Num_tour[i][0] == a: num_cli_a = Num_tour[i][1] Num_cli_a.append(num_cli_a) elif Num_tour[i][0] == b: num_cli_b = Num_tour[i][1] Num_cli_b.append(num_cli_b) elif Num_tour[i][0] == c: num_cli_c = Num_tour[i][1] Num_cli_c.append(num_cli_c) elif Num_tour[i][0] == d: num_cli_d = Num_tour[i][1] Num_cli_d.append(num_cli_d) Num_cli_a = sum(Num_cli_a) Num_cli_b = sum(Num_cli_b) Num_cli_c = sum(Num_cli_c) Num_cli_d = sum(Num_cli_d) print('Seleecione El Tour\n' ' 1.Tour en el Puerto (Vendidos ', Num_cli_a, '/10)\n', '2.Degustacion de comida local (Vendidos', Num_cli_b, '/100)\n', '3.Trotar por el pueblo/ciudad(sin cupo maximo)\n', '4.Visita a lugares Históricos (Vendidos', Num_cli_c, '/15)\n', '5.Volver al menu principal') opcion = numero_valido(5) if opcion == 1: tour = 'Tour en el Puerto' precio = 30 hora = '7 A.M.' max_per = 4 cupo_total = 10 disponible = (cupo_total - Num_cli_a) if num_per > max_per: print('Máximo 4 Personas') print('\nCupos Disponibles:', disponible) #modulo.modulo_3(self) if num_per > disponible: print('Sin cupos sufientes') print('\nCupos Disponibles:', disponible, '\nPersonas Maximas:', max_per) #modulo.modulo_3(self) desc = 0 if num_per == 3: desc = 0.1 if num_per == 4: desc = 0.2 total = (num_per * precio) - ((num_per - 2) * precio * desc) elif opcion == 2: max_per = 2 tour = 'Degustacion de comida local' precio = 100 hora = '12 P.M' cupo_total = 100 disponible = cupo_total - Num_cli_b if num_per > max_per: print('Máximo 2 Personas') print('\nCupos Disponibles:', disponible) modulo.modulo_3(self) if num_per > disponible: print('Sin cupos sufientes') print('\nCupos Disponibles:', disponible, '\nPersonas Maximas:', max_per) modulo.modulo_3(self) total = num_per * precio elif opcion == 3: tour = 'Trotar por el pueblo/ciudad' precio = 0 max_per = None hora = '6 A.M.' cupo_total = None total = 0 elif opcion == 4: tour = 'Visita a lugares Históricos' precio = 40 max_per = 4 hora = '10 A.M.' cupo_total = 15 disponible = cupo_total - Num_cli_d if num_per > max_per: print('Máximo 4 Personas') print('\nCupos Disponibles:', disponible) #modulo.modulo_3(self) if num_per > disponible: print('Sin cupos sufientes') print('\nCupos Disponibles:', disponible, '\nPersonas Maximas:', max_per) #modulo.modulo_3(self) desc = 0 if num_per > 2: desc = 0.1 total = (num_per * precio) - (precio * desc) elif opcion == 5: print(".....") return 0 datos_tour = { 'Tour': tour, 'Precio': precio, 'MaxPersona': max_per, 'Hora': hora, 'Cupo Total': cupo_total, 'Total': total } return (datos_tour)