def pasoOnce(self, actividad): print 'Paso 11' if self.pasoAcceso(): sesion = self.sesion sesion.autECLPS.SendKeys('5') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[eraseeof]') sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud)) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print '459 confirmar datos de instalacion' sesion.autECLPS.SendKeys('9') #459 sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf9]') actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=13) actividad.save(force_update=True) print 'Cambia estado a 13' titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Completo, se procede a realizar cambios locales' medidorDes = list(medidor.objects.filter(actividad=actividad).exclude(contrato__contrato=self.contrato))[0] enlace = detalleClienteMedidor.objects.get( medidor = medidorDes, cliente = actividad.cliente ) enlace.lectura_desinstalacion=medidorDes.lectura enlace.fecha_desinstalacion=datetime.datetime.today() enlace.save(force_update=True) print 'Detalle cliente medidor modificado' medidorInst = medidor.objects.filter(actividad=actividad, contrato__contrato=self.contrato).first() enlace = detalleClienteMedidor( lectura_instalacion = medidorInst.lectura, fecha_instalacion = now.date(), medidor = medidorInst, cliente = actividad.cliente ) enlace.save() print 'Detalle cliente medidor realizado' return { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': actividad.estadoDeSolicitud.descripcion, 'solicitud': actividad.numeroDeSolicitud } else: return self.ERROR
def pasoSiete(self, actividad): print 'Paso 7' if self.pasoAcceso(): sesion = self.sesion sesion.autECLPS.SendKeys('5') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[eraseeof]', 9, 7) sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud)) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print '451' sesion.autECLPS.SendKeys('1') #451 sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Fecha de Actividad' sesion.autECLPS.SendKeys('[eraseeof]', 6, 42) sesion.autECLPS.SendKeys( '%02d%02d%04d' % ( int(actividad.fechaDeActividad.day), int(actividad.fechaDeActividad.month), int(actividad.fechaDeActividad.year), ), 6, 42 ) sesion.autECLPS.SendKeys('[eraseeof]', 7, 42) sesion.autECLPS.SendKeys(str(actividad.horaDeActividad)[:5], 7, 42) inspector = self.contrato.codigoInstalador sesion.autECLPS.SendKeys('[eraseeof]', 8, 42) sesion.autECLPS.SendKeys(str(inspector), 8, 42) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambio de estado 451' actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=451) actividad.save(force_update=True) titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Pantalla Principal' return { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': actividad.estadoDeSolicitud.descripcion, 'solicitud': actividad.numeroDeSolicitud } else: print 'Error 1' return self.ERROR
def pasoSeis(self, actividad): print 'Paso 6' if self.pasoAcceso(): sesion = self.sesion sesion.autECLPS.SendKeys('2') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[eraseeof]', 8, 6) sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud), 8, 6) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('1') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambio de estado a 45' actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=45) actividad.save(force_update=True) sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Pantalla Principal' return { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': actividad.estadoDeSolicitud.descripcion, 'solicitud': actividad.numeroDeSolicitud } else: print 'Error 1' return self.ERROR
def pasoCinco(self, actividad): print 'Paso 5' if self.pasoAcceso(): sesion = self.sesion sesion.autECLPS.SendKeys('1') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf6]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Crear solicitud materiales a bodega' sesion.autECLPS.SendKeys('[eraseeof]', 6, 34) sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud), 6, 34) sesion.autECLPS.SendKeys('[eraseeof]', 8, 31) sesion.autECLPS.SendKeys('1', 8, 31) sesion.autECLPS.SendKeys('[eraseeof]', 8, 34) sesion.autECLPS.SendKeys('2', 8, 34) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambia Estado de Solicitud 10' actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=10) actividad.save(force_update=True) print 'Regresar a pantalla principal' titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) return { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': 'Generada solicitud a bodega...', 'solicitud': actividad.numeroDeSolicitud } else: print 'Error 1' return self.ERROR
def pasoDiez(self, actividad): print 'Paso 10' if self.pasoAcceso(): sesion = self.sesion sesion.autECLPS.SendKeys('5') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[eraseeof]') sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud)) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print '454' sesion.autECLPS.SendKeys('4') #454 sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Medidores instalados al cliente' i = 10 f = str(sesion.autECLPS.GetText(i, 56, 10)) returno = self.ERROR while f.strip() != '0/00/0000' or f.strip() != '00/00/0000' or i==20: i += 1 if i < 20: sesion.autECLPS.SendKeys('4', i, 4) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('s') med = list(medidor.objects .filter(actividad__id=actividad.id) .exclude(contrato__contrato=self.contrato) )[0] sesion.autECLPS.SendKeys('[eraseeof]', 11, 70) sesion.autECLPS.SendKeys(str(med.lectura), 11, 70) sesion.autECLPS.SendKeys('[pf2]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() med=list(medidor.objects .filter(actividad__id=actividad.id, contrato__contrato=self.contrato) )[0] sesion.autECLPS.SendKeys(str(med.tipo)[:1], 6, 9) sesion.autECLPS.SendKeys(str(med.marca.id)[:3], 6, 13) sesion.autECLPS.SendKeys(str(med.fabrica), 6, 18) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() if str(med.fabrica).strip() == str(sesion.autECLPS.GetText(7, 18, 11)).strip(): sesion.autECLPS.SendKeys('1', 7, 6) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Medidor Asignado' sesion.autECLPS.SendKeys('s') sesion.autECLPS.SendKeys('[eraseeof]', 10, 62) sesion.autECLPS.SendKeys(med.lectura, 10, 62) sesion.autECLPS.SendKeys('[pf2]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=454) actividad.save(force_update=True) returno={ 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': actividad.estadoDeSolicitud.descripcion, 'solicitud': actividad.numeroDeSolicitud } else: print 'Medidor no asignado' titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) return returno else: print 'No hay medidores para desconectar' titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) return returno print 'Error desconocido' titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) return returno else: print 'Error 1' return self.ERROR
def pasoNueve(self, actividad): print 'Paso 9' if self.pasoAcceso(): sesion = self.sesion sesion.autECLPS.SendKeys('5') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[eraseeof]') sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud)) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print '457' sesion.autECLPS.SendKeys('7') #457 sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sel = '' baja = True for s in list(sello.objects.filter(utilizado=actividad)): sesion.autECLPS.SendKeys('[eraseeof]', 11, 26) sesion.autECLPS.SendKeys(s.numero, 11, 26) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() if str(s.numero).strip() != str(sesion.autECLPS.GetText(12, 26, 10)).strip(): sel = str(s.numero) baja = False break if baja: for s in list(sello.objects.filter(utilizado=actividad)): sesion.autECLPS.SendKeys('[eraseeof]', 11, 26) sesion.autECLPS.SendKeys(s.numero, 11, 26) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('4') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Estado cambiado a 457' actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=457) actividad.save(force_update=True) retorno = { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': actividad.estadoDeSolicitud.descripcion, 'solicitud': actividad.numeroDeSolicitud } else: print 'Error de sello utilizado...' retorno = { 'estado': None, 'mensaje': 'Sello %s no encontrado, posiblementa ya esta utilizado' % str(sel), 'solicitud': None } titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Pagina principal' return retorno else: return self.ERROR
def pasoOcho(self, actividad): print 'Paso 8' if self.pasoAcceso(): sesion = self.sesion sesion.autECLPS.SendKeys('5') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[eraseeof]') sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud)) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print '450' sesion.autECLPS.SendKeys('0') #450 sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() pag = False i = 0 while i < 5: if i == 4 and str(sesion.autECLPS.GetText(((i * 2) + 9), 76, 1)) == '+': pag = True cm = str(sesion.autECLPS.GetText(((i * 2) + 8), 72, 2)) if cm == ' 0': cm = str(sesion.autECLPS.GetText(((i * 2) + 8), 75, 2)) cm = ',%s' % cm elif cm == ' ': break else: cm = '.%s' % cm sesion.autECLPS.SendKeys(cm, ((i * 2) + 9), 74) if pag: i = 0 sesion.autECLPS.SendKeys('[roll up]') pag = False else: i += 1 sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Datos Modificados' sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=450) actividad.save(force_update=True) print 'Estado cambiado a 450' sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Pantalla principal' return { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': actividad.estadoDeSolicitud.descripcion, 'solicitud': actividad.numeroDeSolicitud } else: print 'Error 1' return self.ERROR
def pasoCuatro(self, actividad): sesion = self.sesion opcionSico = False print 'Paso 4' sesion.autECLPS.SetCursorPos(9, 12) for i in range(9, 20): if sesion.autECLPS.GetText(i, 16, 18) == 'CAMBIOS DE MEDIDOR' \ or (str(sesion.autECLPS.GetText(i, 51, 3)).strip() == '42' and str(sesion.autECLPS.GetText(i, 62, 2)).strip() == '50'): self.cambiosDeMedidor = i opcionSico = True sesion.autECLPS.SendKeys('5', i, 12) break else: sesion.autECLPS.SendKeys('[down]') if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambios de Medidor' opcionSico = False sesion.autECLPS.SetCursorPos(9, 12) for i in range(9, 20): if sesion.autECLPS.GetText(i, 7, 21) == 'ASIGNAR MATERIAL TIPO' \ or (str(sesion.autECLPS.GetText(i, 58, 8)).strip() == 'PSESOLI' and str(sesion.autECLPS.GetText(i, 69, 2)) == '40'): self.formImpresion = i sesion.autECLPS.SendKeys('1', i, 3) opcionSico = True break else: sesion.autECLPS.SendKeys('[down]') if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Asignar material tipo' sesion.autECLPS.SendKeys('[up') sesion.autECLPS.SendKeys('[tab]') sesion.autECLPS.SendKeys('[eraseeof]') sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud)) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('2') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Descargar material' i = 8 materiales = list(materialDeActividad.objects.filter( actividad=actividad, material__material__descargableDeSico=True, material__proporcionado=True)) for m in materiales: sesion.autECLPS.SendKeys('[eraseeof]', i, 6) sesion.autECLPS.SendKeys(m.material.material.claveEnSico[:2], i, 6) sesion.autECLPS.SendKeys('[eraseeof]', i, 10) sesion.autECLPS.SendKeys(m.material.material.claveEnSico[2:4], i, 10) sesion.autECLPS.SendKeys('[eraseeof]', i, 14) sesion.autECLPS.SendKeys(m.material.material.claveEnSico[4:6], i, 14) sesion.autECLPS.SendKeys('[eraseeof]', i, 18) sesion.autECLPS.SendKeys(m.material.material.claveEnSico[6:9], i, 18) if m.material.material.claveEnSico == '079058500': sesion.autECLPS.SendKeys(',', 8, 73) sesion.autECLPS.SendKeys('%02d' % m.cantidad, 8, 74) sesion.autECLPS.SendKeys('[enter]') i = sesion.autECLPS.GetCursorPosRow() print u'Descargado '+unicode(m) sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Material descargado' sesion.autECLPS.SendKeys('9') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Aprobacion de solicitud materiales' sesion.autECLPS.SendKeys('A', 13, 43) sesion.autECLPS.SendKeys('[eraseeof]', 14, 43) sesion.autECLPS.SendKeys('%02d%02d%04d' % ( int(datetime.datetime.today().day), int(datetime.datetime.today().month), int(datetime.datetime.today().year), ), 14, 43 ) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambio de estado' sesion.autECLPS.SendKeys('[pf5]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=8) actividad.save(force_update=True) print 'Pantalla principal' titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) return { 'estado': actividad.estadoDeSolicitud.id, 'mensaje': 'Materiales asignados a la solicitud', 'solicitud': actividad.numeroDeSolicitud } else: titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Error 1' return self.ERROR else: print 'Error 2' return self.ERROR
def pasoUno(self, actividad): sesion = self.sesion opcionSico = False print 'Paso 1' sesion.autECLPS.SetCursorPos(9, 12) for i in range(9, 20): if sesion.autECLPS.GetText(i, 16, 18) == 'CAMBIOS DE MEDIDOR' \ or (str(sesion.autECLPS.GetText(i, 51, 3)).strip() == '42' and str(sesion.autECLPS.GetText(i, 62, 2)).strip() == '50'): self.cambiosDeMedidor = i sesion.autECLPS.SendKeys('5', i, 12) opcionSico = True break else: sesion.autECLPS.SendKeys('[down]') if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambio de medidor' opcionSico = False sesion.autECLPS.SetCursorPos(9, 12) for i in range(9, 20): if sesion.autECLPS.GetText(i, 7, 43) == 'RECEPCION DE SOLICITUDES Y TRAMITES (NUEVO)' \ or (str(sesion.autECLPS.GetText(i, 58, 8)).strip() == 'PTRBSOLS' and str(sesion.autECLPS.GetText(i, 62, 2)).strip() == '10'): sesion.autECLPS.SendKeys('1', i, 3) self.solicitudesNuevo = i opcionSico = True break else: sesion.autECLPS.SendKeys('[down]') if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Recepcion de solicitudes' sesion.autECLPS.SendKeys('[pf6]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Crear Solicitud' sesion.autECLPS.SendKeys('[eraseeof]', 11, 37) sesion.autECLPS.SendKeys(str(actividad.tipoDeSolicitud_id), 11, 37) sesion.autECLPS.SendKeys('[eraseeof]', 13, 37) sesion.autECLPS.SendKeys(str(actividad.motivoDeSolicitud_id), 13, 37) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[eraseeof]', 15, 37) sesion.autECLPS.SendKeys(str(actividad.cliente.cuenta), 15, 37) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() if str(sesion.autECLPS.GetText(2, 7, 7)).strip() == 'wALERTA': sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambio de medidor y/o acometida' ts = str(actividad.tipoDeServicio_id) sesion.autECLPS.SendKeys('[eraseeof]', 4, 25) sesion.autECLPS.SendKeys(str(ts[:1]), 4, 25) sesion.autECLPS.SendKeys('[eraseeof]', 4, 27) sesion.autECLPS.SendKeys(str(ts[1:2]), 4, 27) sesion.autECLPS.SendKeys('[eraseeof]', 4, 29) sesion.autECLPS.SendKeys(str(ts[2:3]), 4, 29) sesion.autECLPS.SendKeys('[left]') sesion.autECLPS.SendKeys('[eraseeof]', 6, 27) sesion.autECLPS.SendKeys(str(actividad.ubicacionDelMedidor_id), 6, 27) print str(actividad.ubicacionDelMedidor_id)+ ': bnd' if str(sesion.autECLPS.GetText(7, 27, 2)) == ' ': sesion.autECLPS.SendKeys('[eraseeof]', 7, 27) sesion.autECLPS.SendKeys(str(actividad.usoEspecificoDelInmueble.usoGeneral_id), 7, 27) sesion.autECLPS.SendKeys('[eraseeof]', 7, 30) sesion.autECLPS.SendKeys(str(actividad.usoEspecificoDelInmueble_id), 7, 30) if str(sesion.autECLPS.GetText(8, 30, 2)) == ' ': sesion.autECLPS.SendKeys('[eraseeof]', 8, 30) sesion.autECLPS.SendKeys('01', 8, 30) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Modelo de medidor' medidorInst = list(medidor.objects.filter(actividad=actividad, contrato__contrato=self.contrato)) if medidorInst: modelo = str(medidorInst[0].modelo_id).split('-') else: modelo = ['NOR', '20'] sesion.autECLPS.SendKeys('[eraseeof]', 10, 28) sesion.autECLPS.SendKeys(modelo[0], 10, 28) sesion.autECLPS.SendKeys('[eraseeof]', 10, 32) sesion.autECLPS.SendKeys(modelo[1], 10, 32) sesion.autECLPS.SendKeys('[eraseeof]', 12, 28) sesion.autECLPS.SendKeys(str(actividad.formaDeConexion_id), 12, 28) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() opcionSico = False for i in range(9, 20): print str(sesion.autECLPS.GetText(i, 7, 45)).strip() if str(sesion.autECLPS.GetText(i, 7, 45)).strip() == 'CONSULTA DE TODAS LAS SOLICITUDES EFECTUADAS' \ or (str(sesion.autECLPS.GetText(i, 58, 8)).strip() == 'PCONGENT' and str(sesion.autECLPS.GetText(i, 69, 2)).strip() == '4'): self.solicitudesTodas = i sesion.autECLPS.SendKeys('1', i, 3) opcionSico = True break if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Consulta de todas las solicitudes efectuadas ' sesion.autECLPS.SendKeys('[pf8]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[eraseeof]', 7, 13) sesion.autECLPS.SendKeys('4', 7, 13) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[up]') sesion.autECLPS.SendKeys('[tab]') sesion.autECLPS.SendKeys('[eraseeof]', 12, 5) sesion.autECLPS.SendKeys(str(actividad.cliente.cuenta), 12, 5) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() for i in range(13, 21): if str(sesion.autECLPS.GetText(i, 5, 7)).strip() == str(actividad.cliente.cuenta) \ and str(sesion.autECLPS.GetText(i, 36, 2)).strip() == str(actividad.tipoDeSolicitud_id) \ and str(sesion.autECLPS.GetText(i, 67, 10)).strip() == '%d/%02d/%04d' % ( int(datetime.datetime.today().day), int(datetime.datetime.today().month), int(datetime.datetime.today().year), ) \ and str(sesion.autECLPS.GetText(i, 78, 2)) == '1 ': actividad.numeroDeSolicitud = str(sesion.autECLPS.GetText(i, 14, 6)).strip() actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=1) print 'Solicitud encontrada' break else: sesion.autECLPS.SendKeys('[down]') if int(actividad.numeroDeSolicitud) > 0: actividad.horaDeActividad = str(actividad.horaDeActividad)[:8] actividad.save(force_update=True) sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Pantalla Principal - Estado = '+str(actividad.estadoDeSolicitud_id) return { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': 'Solicitud creada correctamente', 'solicitud': actividad.numeroDeSolicitud } else: titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Error 1' return self.ERROR else: titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Error 2' return self.ERROR else: titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Error 3' return self.ERROR else: return self.ERROR
def tercerPaso(self, actividad): sesion = self.sesion opcionSico = False print 'Paso 3' sesion.autECLPS.SetCursorPos(9, 12) for i in range(9, 20): if sesion.autECLPS.GetText(i, 16, 18) == 'CAMBIOS DE MEDIDOR' \ or (str(sesion.autECLPS.GetText(i, 51, 3)).strip() == '42' and str(sesion.autECLPS.GetText(i, 62, 2)).strip() == '50'): self.cambiosDeMedidor = i sesion.autECLPS.SendKeys('5', i, 12) opcionSico = True break else: sesion.autECLPS.SendKeys('[down]') if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambios de medidor' opcionSico = False sesion.autECLPS.SetCursorPos(9, 12) for i in range(9, 20): if sesion.autECLPS.GetText(i, 7, 38) == 'DIGITAR INSPECCION DE CLIENTE' \ or (str(sesion.autECLPS.GetText(i, 58, 8)).strip() == 'PDIINCL' and str(sesion.autECLPS.GetText(i, 69, 2)) == '20'): self.formImpresion = i sesion.autECLPS.SendKeys('1', i, 3) opcionSico = True break else: sesion.autECLPS.SendKeys('[down]') if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Digitar inspeccion de cliente' sesion.autECLPS.SendKeys('[up') sesion.autECLPS.SendKeys('[tab]') sesion.autECLPS.SendKeys('[eraseeof]') sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud)) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('1') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Actualizar datos de inspeccion' inspector = self.contrato.codigoInstalador sesion.autECLPS.SendKeys('[eraseeof]', 5, 30) sesion.autECLPS.SendKeys(str(inspector), 5, 30) med = list(medidor.objects.filter(actividad__id=actividad.id, contrato__contrato=self.contrato))[0] if str(sesion.autECLPS.GetText(6, 30, 5)).strip() == '0': sesion.autECLPS.SendKeys('[eraseeof]', 6, 30) if int(med.voltaje) == 120: sesion.autECLPS.SendKeys('3', 6, 30) else: sesion.autECLPS.SendKeys('4', 6, 30) sesion.autECLPS.SendKeys(str(actividad.materialDeLaRed_id), 7, 30) sesion.autECLPS.SendKeys('S', 7, 70) sesion.autECLPS.SendKeys(str(actividad.estadoDeLaInstalacion_id), 9, 30) if str(sesion.autECLPS.GetText(10, 30, 2)).strip() == '0': sesion.autECLPS.SendKeys('[eraseeof]', 10, 30) sesion.autECLPS.SendKeys(str(actividad.tipoDeConstruccion_id), 10, 30) if str(sesion.autECLPS.GetText(11, 30, 2)).strip() == '0': sesion.autECLPS.SendKeys('[eraseeof]', 11, 30) sesion.autECLPS.SendKeys(str(actividad.ubicacionDelMedidor_id), 11, 30) if str(sesion.autECLPS.GetText(12, 30, 2)).strip() == '': sesion.autECLPS.SendKeys(str(actividad.tipoDeAcometidaRed_id), 12, 30) if str(sesion.autECLPS.GetText(13, 30, 2)).strip() == '': sesion.autECLPS.SendKeys(str(actividad.tipoDeAcometidaRed_id), 13, 30) if str(sesion.autECLPS.GetText(14, 30, 2)).strip() == '0': sesion.autECLPS.SendKeys('[eraseeof]', 14, 30) sesion.autECLPS.SendKeys(str(actividad.calibreDeLaRed_id), 14, 30) if str(sesion.autECLPS.GetText(15, 30, 1)).strip() == '': sesion.autECLPS.SendKeys(str(actividad.claseRed_id), 15, 30) if str(sesion.autECLPS.GetText(16, 30, 1)).strip() == '0': ts = str(actividad.tipoDeConstruccion_id) sesion.autECLPS.SendKeys('[eraseeof]', 16, 30) sesion.autECLPS.SendKeys(ts[0], 16, 30) sesion.autECLPS.SendKeys('[eraseeof]', 16, 34) sesion.autECLPS.SendKeys(ts[1], 16, 34) sesion.autECLPS.SendKeys('[eraseeof]', 16, 38) sesion.autECLPS.SendKeys(ts[2], 16, 38) if str(sesion.autECLPS.GetText(17, 30, 2)).strip() == '0': sesion.autECLPS.SendKeys('[eraseeof]', 17, 30) sesion.autECLPS.SendKeys(str(actividad.usoEspecificoDelInmueble.usoGeneral_id), 17, 30) sesion.autECLPS.SendKeys('[eraseeof]', 17, 34) sesion.autECLPS.SendKeys(str(actividad.usoEspecificoDelInmueble_id), 17, 34) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Medidor - Modelo' sesion.autECLPS.SendKeys('[eraseeof]', 6, 26) sesion.autECLPS.SendKeys('[eraseeof]', 6, 30) modelo = str(med.modelo_id).split('-') sesion.autECLPS.SendKeys(modelo[0], 6, 26) sesion.autECLPS.SendKeys(modelo[1], 6, 30) sesion.autECLPS.SendKeys('[eraseeof]', 7, 26) if int(med.voltaje) == 120: sesion.autECLPS.SendKeys('3', 7, 26) else: sesion.autECLPS.SendKeys('4', 7, 26) sesion.autECLPS.SendKeys('[pf4]', 8, 26) sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('1') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=7) actividad.save(force_update=True) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambio de estado a 7' titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) return { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': 'Solicitud enviada para impresion al servidor', 'solicitud': actividad.numeroDeSolicitud } else: titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Error 1' return self.ERROR else: titulo = sesion.autECLPS.GetText(5, 1, 11) while titulo != '5=Programas': sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() titulo = sesion.autECLPS.GetText(5, 1, 11) print 'Error 2' return self.ERROR
def pasoDos(self, actividad): sesion = self.sesion opcionSico = False print 'Paso 2' sesion.autECLPS.SetCursorPos(9, 12) for i in range(9, 20): if sesion.autECLPS.GetText(i, 16, 18) == 'CAMBIOS DE MEDIDOR' \ or (str(sesion.autECLPS.GetText(i, 51, 3)).strip() == '42' and str(sesion.autECLPS.GetText(i, 62, 2)).strip() == '50'): self.cambiosDeMedidor = i sesion.autECLPS.SendKeys('5', i, 12) opcionSico = True break else: sesion.autECLPS.SendKeys('[down]') if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambios de Medidor' opcionSico = False sesion.autECLPS.SetCursorPos(9, 12) for i in range(9, 20): if sesion.autECLPS.GetText(i, 7, 38) == 'IMPRESION DE FORMULARIOS DE INSPECCION' \ or (str(sesion.autECLPS.GetText(i, 58, 8)).strip() == 'PCLCUIMF' and str(sesion.autECLPS.GetText(i, 69, 2)) == '20'): self.formImpresion = i sesion.autECLPS.SendKeys('1', i, 3) opcionSico = True break else: sesion.autECLPS.SendKeys('[down]') if opcionSico: sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Impresion de formularios de inspeccion' sesion.autECLPS.SendKeys('[up') sesion.autECLPS.SendKeys('[tab]') sesion.autECLPS.SendKeys('[eraseeof]') sesion.autECLPS.SendKeys(str(actividad.numeroDeSolicitud)) sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('6') sesion.autECLPS.SendKeys('[enter]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Cambio de estado' actividad.estadoDeSolicitud = estadoDeSolicitud.objects.get(id=6) actividad.save(force_update=True) sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Pantalla Principal' return { 'estado': str(actividad.estadoDeSolicitud_id), 'mensaje': 'Solicitud enviada para impresion al servidor', 'solicitud': actividad.numeroDeSolicitud } else: sesion.autECLPS.SendKeys('[pf12]') sesion.autECLOIA.WaitForAppAvailable() sesion.autECLOIA.WaitForInputReady() print 'Error 1' return self.ERROR else: print 'Error 2' return self.ERROR