Example #1
0
def xReporte():
  global lPro

  cod = ES.entradaNombre(droid, 'Reporte de Casa Nacional',
                'Introduzca el reporte o parte de el', lPro[0]['repCaNa'])
  lCod = []
  #print(cod, lPro[0]['repCaNa'])
  for l in lPro:
    if (l['repCaNa']) and (cod in l['repCaNa']):
      if ('S' == l['estatus']): caida = 'Caida: '
      else: caida = ''
      lst = (caida+l['repCaNa']+'-'+l['nombre'], l['id']-1)
      lCod.append(lst)
  # for l in lPro

  return mPropiedad(lCod, 'Reporte CN:'+cod)
Example #2
0
def xNombre():
  global lPro

  cod = ES.entradaNombre(droid, 'Nombre de la propiedad',
                      'Introduzca el nombre o parte de el', lPro[0]['nombre'])
  lCod = []
  for l in lPro:
    nombre = l['nombre']
    if (l['nombre']) and (0 <= nombre.lower().find(cod.lower())):
#   if (l['nombre']) and (cod.lower() in nombre.lower()):
      if ('S' == l['estatus']): caida = 'Caida: '
      else: caida = ''
      lst = (caida+l['codigo']+'-'+l['nombre'], l['id']-1)
      lCod.append(lst)
  # for l in lPro

  return mPropiedad(lCod, 'Nombre de la propiedad:'+cod)
Example #3
0
def buscarNombre():
    global dPer

    nombre = ES.entradaNombre(droid, 'Nombre del socio')
    if None == nombre:
        return -10, None
    nombres = []
    cedulas = []
    try:
        for k, v in dPer.items():
            if 0 <= v.lower().find(nombre.lower()):
                nombres.append(v)
                cedulas.append(k)
    except UnicodeError:
        pass
    if not nombres:
        ES.alerta(droid, nombre, "No hubo coincidencias!")
        return -10, None
    indice = ES.entradaConLista(droid, 'SOCIOS ENCONTRADOS',
                                'Seleccione socio(a)', nombres)
    if None == indice or 0 > indice: return -10, None
    return int(cedulas[indice]), nombres[indice]
Example #4
0
def obtenerIP(servidor):		# Es la unica rutina que consegui para obtener mi IP.
	s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
	s.connect((servidor, 80))	# servidor puede ser cualquiera, no es necesario usar el seleccionado.
	return s.getsockname()[0]	# el IP es el primer elemento de la tupla devuelta. El 2do elemento parece ser una puerta.

ES.muestraInicio("IPASPUDO: J-30619229-8.")

ind = ES.entradaConLista(droid												, 'Busqueda del servidor', 'Seleccione servidor',
										lSitios)		# Busca el servidor.
if (None == ind) or (ind == (len(lSitios)-1)) or (len(lSitios) <= ind) or \
					(0 > ind):	# Se asegura de tener el indice correcto.
	ES.muestraFin()
	sys.exit()
IPServ = lIPs[ind]
if ((ind == (len(lSitios)-2)) or ('' == IPServ)):
	IPServ = ES.entradaNombre(droid, 'IP del servidor',
								'Introduzca IP del servidor', '192.168.0.')
print("Obteniendo archivo desde %s (%s)." % (lSitios[ind], IPServ))
if droid:
	decip = droid.wifiGetConnectionInfo().result['ip_address']
	hexip = hex(decip).split('x')[1]
	dirL = int(hexip, 16)
	miDirIP = socket.inet_ntoa(struct.pack("<L", dirL))
else:
	miDirIP = obtenerIP(IPServ)	# Esta rutina fue la unica que encontre para mi IP.

print("Mi direccion IP es: %s" % miDirIP)
try:
	if IPServ[0:IPServ.rindex('.')] != miDirIP[0:miDirIP.rindex('.')]:	# Las tres primeras partes de ambos IPv4 deben ser iguales.
		print("El servidor seleccionado %s es errado." % IPServ)
		ES.muestraFin()
		sys.exit()
Example #5
0
def actualizar():

    ind = ES.entradaConLista(droid, 'Busqueda del servidor',\
                    'Seleccione servidor', lSitios)  # Busca el servidor.
    if (None == ind) or (ind == (len(lSitios)-1)) or (len(lSitios) <= ind) or \
              (0 > ind): # Se asegura de tener el indice correcto.
        return ES.muestraFin()
        sys.exit()
    IPServ = lIPs[ind]
    if ((ind == (len(lSitios) - 2)) or ('' == IPServ)):
        IPServ = ES.entradaNombre(droid, 'IP del servidor',
                                  'Introduzca IP del servidor', IPServ[0:10])
    print("Obteniendo archivo desde %s (%s)." % (lSitios[ind], IPServ))
    if droid:
        decip = droid.wifiGetConnectionInfo().result['ip_address']
        hexip = hex(decip).split('x')[1]
        dirL = int(hexip, 16)
        miDirIP = socket.inet_ntoa(struct.pack("<L", dirL))
    else:
        miDirIP = obtenerIP(
            IPServ)  # Esta rutina fue la unica que encontre para mi IP.

    print("Mi direccion IP es: %s" % miDirIP)
    try:
        if IPServ[0:IPServ.rindex('.')] != miDirIP[0:miDirIP.rindex(
                '.'
        )]:  # Las tres primeras partes de ambos IPv4 deben ser iguales.
            print("El servidor seleccionado %s es errado." % IPServ)
            return ES.muestraFin()
            sys.exit()
    except ValueError:  # La funcion rindex (busca indece desde el final de la cadena), no consigue el '.'.
        print("ERROR EXTRA#O DE RED")  # Este error NUNCA deberia ocurrir.
        return ES.muestraFin()
        sys.exit()

# Se trata de saber, cuando se actualizo por ultima vez un archivo. En el nuevo control.txt,
# ademas de la informacion del sistema, tambien se guardara la fecha de descarga de cada archivo.
# dControl = ES.cargaDicc("control.txt")	# Diccionario de control, antes de recibir el nuevo. No implementado 27/08/2019.

    URL = "http://" + IPServ + ':8080/storage/'
    bImpar = True
    data = urlopen(URL + CONTROL, None, 10).read().decode(
        'ISO-8859-1'
    )  # None, ningun parametro es enviado al servidor; 10, timeout.
    if None == data:
        print('ERROR. No hubo carga.')
        sys.exit()
    f = open(DIR + CONTROL, "w")
    if f:
        archivos = data.split('\n')
        fechaGrabado = archivos.pop(0)
        f.write('Datos grabados: ' + fechaGrabado)
        ahora = strftime("\nDatos descargados: %a, %d/%m/%Y %-l:%M:%S %p\n",
                         localtime())
        f.write(ahora)
        f.close()
    else:
        print('ERROR. No se pudo escribir en el archivo.')
        sys.exit()
    for nombreArchivo in archivos:
        #    if nombreArchivo[5:6].isdigit(): continue      # La primera linea es una fecha. El primer caracter es un digito.
        nombreArchivo = nombreArchivo.rstrip(' \t\n\r')
        if not nombreArchivo: continue
        sColor, bImpar = ES.colorLinea(bImpar, CO.VERDE, CO.AZUL)
        print("%sLeyendo%s %s remoto." % (sColor, CO.FIN, nombreArchivo))
        try:
            data = urlopen(URL + nombreArchivo, None, 10).read().decode(
                'ISO-8859-1'
            )  # None, ningun parametro es enviado al servidor; 10, timeout.
            bLeido = True  # No hubo error de lectura desde el servidor.
        except:
            print("%sERROR LEYENDO%s %s %sREMOTO.%s" %
                  (CO.ROJO, CO.FIN, nombreArchivo, CO.ROJO, CO.FIN))
            bLeido = False
        if bLeido:  # Si no hubo error de lectura desde el servidor.
            try:
                f = open(DIR + nombreArchivo, "w")
                bAbierto = True  # No hubo error al abrir para escribir en archivo local.
            except:
                print("%sERROR AL TRATAR DE ABRIR%s %s%s %sPARA ESCRITURA.%s" % \
                          (CO.ROJO, CO.FIN, DIR, nombreArchivo, CO.ROJO, CO.FIN))
                bAbierto = False
            if bAbierto:  # Si no hubo error al abrir para escribir en archivo local.
                print("%sEscribiendo%s %s local..." %
                      (sColor, CO.FIN, nombreArchivo))
                try:
                    f.write(data)
                    bEscrito = True  # No hubo error escribiendo en el archivo local.
                except:
                    print("%sERROR AL TRATAR DE ESCRIBIR%s %s." %
                          (CO.ROJO, CO.FIN, nombreArchivo))
                    bEscrito = False
                finally:
                    f.close()
                if bEscrito:
                    print(
                        "%s %sactualizado con%s %d lineas!" %
                        (nombreArchivo,
                         (CO.CYAN if 'heute.txt' == nombreArchivo else sColor),
                         CO.FIN, ES.cLineas(nombreArchivo)))
                # Fin if bEscrito
            # Fin if bAbierto
        # Fin if bLeido
    # Fin for
    return ES.muestraFin()


# Funcion actualizar
Example #6
0
    )  # servidor puede ser cualquiera, no es necesario usar el seleccionado.
    return s.getsockname(
    )[0]  # el IP es el primer elemento de la tupla devuelta. El 2do elemento parece ser una puerta.


ES.muestraInicio("Century21 Puente Real: J-40589955-7.")

ind = ES.entradaConLista(droid, 'Busqueda del servidor', 'Seleccione servidor',
                         lSitios)  # Busca el servidor.
if (None == ind) or (ind == (len(lSitios)-1)) or (len(lSitios) <= ind) or \
     (0 > ind): # Se asegura de tener el indice correcto.
    ES.muestraFin()
    sys.exit()
IPServ = lIPs[ind]
if ((ind == (len(lSitios) - 2)) or ('' == IPServ)):
    IPServ = ES.entradaNombre(droid, 'IP del servidor',
                              'Introduzca IP del servidor', IPServ[0:10])
print("Obteniendo archivo desde %s (%s)." % (lSitios[ind], IPServ))
if droid:
    decip = droid.wifiGetConnectionInfo().result['ip_address']
    hexip = hex(decip).split('x')[1]
    dirL = int(hexip, 16)
    miDirIP = socket.inet_ntoa(struct.pack("<L", dirL))
else:
    miDirIP = obtenerIP(
        IPServ)  # Esta rutina fue la unica que encontre para mi IP.

print("Mi direccion IP es: %s" % miDirIP)
try:
    if IPServ[0:IPServ.rindex('.')] != miDirIP[0:miDirIP.rindex(
            '.')]:  # Las tres primeras partes de ambos IPv4 deben ser iguales.
        print("El servidor seleccionado %s es errado." % IPServ)
Example #7
0
        else:
            ano = sAno
    else:
        print("%sEjecutar: movServifun mm ipas aaaa%s" % (CO.ROJO, CO.FIN))
        sys.exit()
    nombArch = basename(nombArchivo)

while True:
    if bMovil:
        mes = ES.entradaNumero(droid, "Mes del Concepto", "Mes del Concepto",
                               sMes)
        if None == mes or 1 > int(mes) or 12 < int(mes):
            print("%sEl mes esta errado.%s" % (CO.ROJO, CO.FIN))
            sys.exit()
        mes = "%02d" % mes
        nombArchivo = ES.entradaNombre(droid, "Nombre del archivo",
                                       "Nombre del Archivo", 'IPAS')
        ano = ES.entradaNumero(droid, "A#o del Movimiento",
                               "A#o del Movimiento", sAno)
    bInicio = True
    st = ''
    for sNuc in ('01', '02', '03', '04', '05', '06'):
        nombArchivoCompleto = nombArchivo + sNuc + str(ano) + str(mes) +\
                                '.TXT'
        try:
            if bMovil:
                f = ES.abrir(nombArchivoCompleto, 'r')
            else:
                f = open(nombArchivoCompleto, 'r')
        except:
            f = False
        if not f: