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')
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
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))
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)
def RestriccionEmail(): while True: Limpiar() print('Escriba su email:') email = input() if Utilidades.ValidarEmail(email): return email else: print('Email no valido') input()
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()
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
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
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
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()
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
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()
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)
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
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')