コード例 #1
0
def Eliminar():
    Limpiar()
    Mostrar(registros)
    print('Seleccione el registro a modificar:')

    try:
        nregistro = int(input()) - 1

        if not (0 <= nregistro < len(registros)):
            print('Opcion no valida')
            return
    except:
        print('Algo salio mal')

    Limpiar()
    persona = registros[nregistro]
    Mostrar(persona)

    print('\nEsta a punto de eliminar este registro...')
    print('Escriba: CONFIRMAR')

    if input() == 'CONFIRMAR':
        numeros_misticos[persona.zodiaco][persona.estado + 's'] -= 1
        registros.pop(nregistro)
        print('Registro Eliminado')
    else:
        print('Eliminacion cancelada')
コード例 #2
0
    def setEstado(self, listado_mistico):
        Limpiar()

        if self.estado == 'Recuperado' or self.estado == 'Muerto':
            print(f'Su estado no puede ser cambiado de {self.estado}')
            Continuar()
            return listado_mistico

        while True:
            print('Seleccione el estado:\n')
            print('[R] Recuperado')
            print('[M] Muerto')
            print('[NO] No Cambiar')

            opcion = input().upper()

            if opcion == 'R':
                self.estado = 'Recuperado'
                listado_mistico[self.zodiaco]['Recuperados'] += 1
                listado_mistico[self.zodiaco]['Enfermos'] -= 1
                break
            elif opcion == 'M':
                self.estado = 'Muerto'
                listado_mistico[self.zodiaco]['Muertos'] += 1
                listado_mistico[self.zodiaco]['Enfermos'] -= 1
                break
            elif opcion == 'NO':
                break
            else:
                OpcionInvalida()

        return listado_mistico
コード例 #3
0
def Mostrar(objeto):
    Limpiar()
    if type(objeto) is list:
        for i in range(len(objeto)):
            print(Fore.YELLOW + 'Registro: ' + str(i + 1))
            print(str(objeto[i]))
            print()
    elif type(objeto) is Persona:
        print(str(objeto))
コード例 #4
0
def Registrar():

    Limpiar()

    provincia = Persona.RestriccionProvincia(provincias)
    lat, lon = Persona.RestriccionCoordenadas()

    if not Utilidades.ValidarCoordenadas(lat, lon, provincia):
        return

    documento = Persona.RestriccionDocumento()
    nacionalidad = Persona.RestriccionNacionalidad(documento)
    num_doc = Persona.RestriccionNumeroDocumento(documento)

    if num_doc == '0':
        return

    Limpiar()

    nombre = Persona.RestriccionNombre()
    apellido = Persona.RestriccionApellido()
    tel = Persona.RestriccionTelefono()
    fecha_nacimiento = Persona.RestriccionFecha()
    zodiaco = Utilidades.ObtenerSignoZodiacal(fecha_nacimiento.month,
                                              fecha_nacimiento.day)
    email = Persona.RestriccionEmail()
    sexo = Persona.RestriccionSexo()

    numeros_misticos[zodiaco]['Enfermos'] += 1

    Limpiar()

    temp = Persona(documento, num_doc, nombre, apellido, nacionalidad, sexo,
                   fecha_nacimiento, zodiaco, tel, email, provincia, lat, lon)

    print('Datos Registrados...\n')
    Mostrar(temp)
    registros.append(temp)
    try:
        Alerta(temp)
    except telegram.error.NetworkError:
        print('Error de Conexion')

    del (temp)
コード例 #5
0
    def RestriccionEmail():
        while True:
            Limpiar()

            print('Escriba su email:')
            email = input()

            if Utilidades.ValidarEmail(email):
                return email
            else:
                print('Email no valido')
                input()
コード例 #6
0
    def RestriccionDocumento():

        while True:
            Limpiar()
            print('¿Eres [1] nativo o [2] extranjero?')
            opcion = input()
            if opcion == '1':
                return 'Cedula de Identidad'
            elif opcion == '2':
                return 'Pasaporte Extranjero'
            else:
                print('Opcion no valida')
                input()
コード例 #7
0
def Menu():

    Limpiar()

    print('------- Agenda de Casos -------')
    print('----- Elija alguna opcion -----\n')
    print('1) Registrar caso')
    print('2) Editar caso')
    print('3) Eliminar caso')
    print('4) Exportar/Mostrar casos')  # Uno o todos
    print('5) Mapa de casos')
    print('6) Estadistica Mistica')
    print('7) Guardar cambios')  # Hacer que pregunte para guardar cambios
    print('8) Salir de Agenda de Casos\n')

    return input()  # Opcion
コード例 #8
0
    def RestriccionCoordenadas():
        while True:
            Limpiar()

            try:
                print('Escriba la Latitud')
                lat = float(input())

                print('Escriba la Longitud')
                lon = float(input())
                break

            except Exception as e:
                print(f'Algo salio mal {e}')
                input()

        return lat, lon
コード例 #9
0
    def RestriccionProvincia(listadoProvincia):

        while True:
            Limpiar()
            # Mostrar Provincias
            for i in range(len(listadoProvincia)):
                print(str(i + 1) + ': ' + listadoProvincia[i]['name'])

            print('Escoja el numero de la provincia a la que pertenece:')

            try:
                dato = listadoProvincia[int(input()) - 1]['name']
                break
            except:
                print('Opcion no valida')
                input()

        return dato
コード例 #10
0
    def RestriccionFecha():

        while True:
            Limpiar()
            try:
                print('Fecha de nacimiento: Dia (en numeros)')
                dd = int(input())
                print('Fecha de nacimiento: Mes (en numeros)')
                mm = int(input())
                print('Fecha de nacimiento: Año (en numeros)')
                yy = int(input())
                if 1900 <= yy <= 2020:
                    return datetime.date(yy, mm, dd)
                else:
                    print('No es una fecha valida')
                    input()
            except:
                print('Algo salio mal')
                input()
コード例 #11
0
    def RestriccionSexo():
        while True:
            Limpiar()
            print('Seleccione su sexo:\n')
            print('[M] Masculino')
            print('[F] Femenino')
            print('[O] Otro')
            print()
            sexo = input().upper()

            if sexo == 'M':
                break
            elif sexo == 'F':
                break
            elif sexo == 'O':
                break
            else:
                print('Opcion no valida')
                input()

        return sexo
コード例 #12
0
def Guardar():
    Limpiar()

    while True:
        print('Guardar cambios [S/N]')
        opcion = input().upper()

        if opcion == 'S':
            with open(folderstorage + filestorage, 'wb') as f:
                pickle.dump(registros, f)

            with open(folderstorage + misticstorage, 'wb') as f:
                pickle.dump(numeros_misticos, f)

            print('Datos guardados')
            return

        elif opcion == 'N':
            print('Datos no guardados')
            return
        else:
            OpcionInvalida()
コード例 #13
0
def Mapa():
    Limpiar()

    with open('Html/mapa.html', 'r') as f:
        html = f.read()

    markers = []
    for persona in registros:
        tmp = '''
 L.marker([''' + str(persona.coordenadas[0]) + ''', ''' + str(
            persona.coordenadas[1]) + '''])
        .addTo(map)
        .bindPopup(`''' + persona.ExportarTelegram() + '''`)
        .openPopup();    
        '''
        markers.append(tmp)

    html = html.replace('//MARCADORES', '\n'.join(markers))

    nombre = input('Pongale un nombre: ')
    if nombre == '':
        nombre = 'MapaAfectadosCoronavirus'
    file = upath + nombre + '.html'

    if os.path.exists(file):
        print('Este archivo ya existe...')
        print('[S] Para reemplazar')
        if not input().upper().strip() == 'S':
            return

    with open(file, 'w') as f:
        f.write(html)
        print(nombre, 'ahora se encuentra en el escritorio')

    if input('Escriba [A] si desea visualizar su mapa inmediatamente: ').upper(
    ).strip() == 'A':
        webbrowser.open(file)
コード例 #14
0
def Exportar():

    while True:
        Limpiar()
        print('Desea exportar todos o un solo registro?')
        print('[T] Todos')
        print('[U] Uno')
        print('[C] Cancelar')

        opcion = input().upper()

        if opcion == 'T':
            with open('Html/casos.html', 'r') as f:
                html = f.read()
            for persona in registros:
                temp = '''
            <tr>
          <td>''' + persona.num_doc + '''</td>
          <td>''' + persona.documento + '''</td>
          <td>''' + persona.nombre + '''</td>
          <td>''' + persona.apellido + '''</td>
          <td>''' + persona.nacionalidad + '''</td>
          <td>''' + persona.tel + '''</td>
          <td>''' + datetime.date.strftime(persona.fecha,
                                           '%d/%m/$Y') + '''</td>
          <td>''' + persona.zodiaco + '''</td>
          <td class="''' + persona.sexo + '''">''' + persona.sexo + '''</td>
          <td class="''' + persona.estado + '''">''' + persona.estado + '''</td>
          <td>''' + persona.email + '''</td>
          <td>''' + persona.provincia + '''</td>
          <td>''' + str(persona.coordenadas) + '''</td>
        </tr>
                '''
            html = html.replace('<!-- REGISTROS -->', temp)
            break
        elif opcion == 'U':
            lista = registros
            while True:

                Limpiar()
                Mostrar(lista)

                print(
                    'Seleccione el registro: [b] para realizar busqueda por nombre'
                )
                opcion = input()

                if opcion == 'b':
                    print('Escriba el nombre a buscar:')
                    valor = input().lower()
                    lista = Utilidades.Buscar(valor, registros)
                    pass

                try:
                    nregistro = int(opcion) - 1

                    if not (0 <= nregistro < len(lista)):
                        OpcionInvalida()
                    else:
                        persona = lista[nregistro]
                        break
                except:
                    print('Algo salio mal')

            with open('Html/caso.html', 'r') as f:
                html = f.read()

            html = html.replace('<!--NoDocumento-->', persona.num_doc)
            html = html.replace('<!--Documento-->', persona.documento)
            html = html.replace('<!--Nombre-->', persona.nombre)
            html = html.replace('<!--Apellido-->', persona.apellido)
            html = html.replace('<!--Nacionalidad-->', persona.nacionalidad)
            html = html.replace('<!--Telefono-->', persona.tel)
            html = html.replace(
                '<!--FechaNacimiento-->',
                datetime.date.strftime(persona.fecha, '%d/%m/%Y'))
            html = html.replace('<!--SignoZodiacal-->', persona.zodiaco)
            html = html.replace('<!--Sexo-->', persona.sexo)
            html = html.replace('<!--Estado-->', persona.estado)
            html = html.replace('<!--Email-->', persona.email)
            html = html.replace('<!--Provincia-->', persona.provincia)
            html = html.replace('<!--Coordenadas-->', str(persona.coordenadas))

            break

        elif opcion == 'C':
            return
        else:
            pass

    print('Pongale un nombre: ')
    nombre = input().strip()
    if nombre == '':
        nombre = 'AfectadosCoronavirus'
    file = upath + nombre + '.html'
    if os.path.exists(file):
        print('Este archivo ya existe...')
        print('[S] Para reemplazar')
        if not input().upper().strip() == 'S':
            return
    html = html.replace('Caso', nombre)
    with open(file, 'w') as f:
        f.write(html)
        print(nombre, ' ahora se encuentra en el escritorio')
    print('Escriba [A] si desea visualizar inmediatamente: ')
    if input().upper().strip() == 'A':
        webbrowser.open(file)
    return
コード例 #15
0
def Editar(numeros_misticos):
    Limpiar()
    Mostrar(registros)
    print('Seleccione el registro:')

    try:
        nregistro = int(input()) - 1

        if not (0 <= nregistro < len(registros)):
            print('Opcion no valida')
            return
    except:
        print('Algo salio mal')
        Continuar()
        return

    while True:
        Limpiar()
        persona = registros[nregistro]
        Mostrar(persona)
        print('''Elija el campo a modificar [S] Salida

 1) Documento            2) Nacionalidad     3) Numero de Documento
 4) Nombre               5) Apellido         6) Telefono
 7) Fecha de Nacimiento  8) Email            9) Sexo
 10) Estado              11) Ubicacion
        ''')

        opcion = input().upper()

        if opcion == '1':
            documento = Persona.RestriccionDocumento()

            if documento == 'Cedula de Identidad':
                if not Utilidades.ValidarCedula(persona.num_doc):
                    while True:
                        Limpiar()
                        print(
                            'Su numero no coincide con una cedula valida. Debe cambiarla\n\n'
                        )
                        Continuar()
                        num_doc = Persona.RestriccionNumeroDocumento(documento)

                        if not (num_doc == '0'):
                            break

                    persona.num_doc = num_doc

            persona.documento = documento

        elif opcion == '2':
            persona.nacionalidad = Persona.RestriccionNacionalidad(documento)

        elif opcion == '3':

            num_doc = Persona.RestriccionNumeroDocumento(documento)

            if not (num_doc == '0'):
                persona.num_doc = num_doc

        elif opcion == '4':
            persona.nombre = Persona.RestriccionNombre()

        elif opcion == '5':
            persona.apellido = Persona.RestriccionApellido()

        elif opcion == '6':
            persona.tel = Persona.RestriccionTelefono()

        elif opcion == '7':
            persona.fecha = Persona.RestriccionFecha()
            persona.zodiaco = Utilidades.ObtenerSignoZodiacal(
                persona.fecha.month, persona.fecha.day)

        elif opcion == '8':
            persona.email = Persona.RestriccionEmail()

        elif opcion == '9':
            persona.sexo = Persona.RestriccionSexo()

        elif opcion == '10':
            numeros_misticos = persona.setEstado(numeros_misticos)
        elif opcion == '11':
            provincia = Persona.RestriccionProvincia(provincias)
            lat, lon = Persona.RestriccionCoordenadas()

            if Utilidades.ValidarCoordenadas(lat, lon, provincia):
                persona.provincia = provincia
                persona.coordenadas = lat, lon
        elif opcion == 'S':
            break
        else:
            print('Opcion no Valida')
            Continuar()
    print('Cambios Realizados\n')
    Mostrar(persona)
    try:
        Alerta(persona)
    except telegram.error.NetworkError:
        print('Error de Conexion')