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)
Esempio n. 5
0
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()
Esempio n. 6
0
    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()
Esempio n. 7
0
    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()
Esempio n. 8
0
    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)