public static Lectura FinRondaManual(string tag) { Lectura l = new Lectura(); l.Status = 0; //--- Montar descarga asociada SqlCeConnection conn = CntCN50.TSqlConnection(); CntCN50.TOpen(conn); l.DescargaLinea = new TDescargaLinea(); l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn); l.DescargaLinea.tag = tag; l.DescargaLinea.tipo = null; l.DescargaLinea.tipoId = 0; l.DescargaLinea.nombre = null; l.DescargaLinea.fechaHora = DateTime.Now; //--------- l.InAuto = "INCIDENCIA"; l.Leido = "FIN RONDA MANUAL"; l.ObsAuto = "Ha finalizado la ronda manualmente, pulse <CONTINUAR> para seguir con las lecturas."; // cambiamos en el estado la ronda Estado.Ronda = null; Estado.RondaPuntoEsperado = null; Estado.Orden = 0; return(l); }
public static Lectura Observacion() { if (Estado.RondaPuntoEsperado == null) { return(null); } SqlCeConnection conn = CntCN50.TSqlConnection(); CntCN50.TOpen(conn); Lectura l = new Lectura(); l.Status = 0; l.DescargaLinea = new TDescargaLinea(); l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn); l.DescargaLinea.tag = "OBSERVACION"; l.DescargaLinea.tipo = "OBSERVACION"; TRondaPunto rp = Estado.RondaPuntoEsperado; l.DescargaLinea.tipoId = 0; l.DescargaLinea.nombre = rp.Punto.nombre; l.DescargaLinea.fechaHora = DateTime.Now; CntCN50.TClose(conn); //--------- l.InAuto = "OBSERVACION"; l.Leido = rp.Punto.nombre; l.ObsAuto = "Introduzca incidencia y/o comentario"; return(l); }
public static Lectura LeidaRonda(TRonda r, string tag) { Lectura l = new Lectura(); l.Status = 0; // por defecto no hay tratamiento especial // Debería haberse leido previamente un vigilante l.Leido = r.nombre; //--- Montar descarga asociada SqlCeConnection conn = CntCN50.TSqlConnection(); CntCN50.TOpen(conn); l.DescargaLinea = new TDescargaLinea(); l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn); l.DescargaLinea.tag = tag; l.DescargaLinea.tipo = "RONDA"; l.DescargaLinea.tipoId = r.rondaId; l.DescargaLinea.nombre = r.nombre; l.DescargaLinea.fechaHora = DateTime.Now; //--------- if (Estado.Vigilante == null) { l.InAuto = "INCIDENCIA"; l.ObsAuto = "Usuario NO IDENTIFICADO. Realizar lectura de codigo personal."; } else { l.InAuto = "CORRECTO"; l.ObsAuto = "Inicio de ronda " + r.nombre + "."; } if (Estado.Ronda != null) { l.InAuto = "INCIDENCIA"; l.ObsAuto = "Ronda anterior SIN CERRAR. Pulsa <Volver> para seguir con la ronda anterior. Pulsa <Continuar> para cerrar la ronda anterior SIN FINALIZAR."; l.Status = 2; // ronda no cerrada } // salvamos datos de ronda anterior en previsión de cancelar Estado.Ronda2 = Estado.Ronda; Estado.RondaPuntoEsperado2 = Estado.RondaPuntoEsperado; Estado.Orden2 = Estado.Orden; // cambiamos en el estado la ronda Estado.Ronda = r; Estado.RondaPuntoEsperado = r.RondasPuntos[0]; Estado.Orden = 0; return(l); }
public static Lectura TagDesconocido(string tag) { Lectura l = new Lectura(); l.Status = 0; //--- Montar descarga asociada SqlCeConnection conn = CntCN50.TSqlConnection(); CntCN50.TOpen(conn); l.DescargaLinea = new TDescargaLinea(); l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn); l.DescargaLinea.tag = tag; l.DescargaLinea.tipo = null; l.DescargaLinea.tipoId = 0; l.DescargaLinea.nombre = null; l.DescargaLinea.fechaHora = DateTime.Now; //--------- l.InAuto = "INCIDENCIA"; l.Leido = "DESCONOCIDO"; l.ObsAuto = "El codigo leido no figura en la base de datos."; return(l); }
public static Lectura ComprobarTag(string tag) { SqlCeConnection conn = CntCN50.TSqlConnection(); CntCN50.TOpen(conn); // comprobamos si el tag corresponde a un vigilante TVigilante v = CntCN50.GetVigilanteFromTag(tag, conn); if (v != null) { CntCN50.TClose(conn); return(LeidoVigilante(v, tag)); } // comprobamos si es una ronda TRonda r = CntCN50.GetRondaFromTag(tag, conn); if (r != null) { CntCN50.TClose(conn); return(LeidaRonda(r, tag)); } // comprobamos si es punto TPunto p = CntCN50.GetPuntoFromTag(tag, conn); if (p != null) { CntCN50.TClose(conn); return(LeidoPunto(p, tag)); } // cierre manual de ronda if (tag == "*99*") { return(FinRondaManual(tag)); } // desconocido CntCN50.TClose(conn); return(TagDesconocido(tag)); }
public static Lectura LeidoPunto(TPunto p, string tag) { Lectura l = new Lectura(); l.Status = 0; //--- Montar descarga asociada SqlCeConnection conn = CntCN50.TSqlConnection(); CntCN50.TOpen(conn); l.DescargaLinea = new TDescargaLinea(); l.DescargaLinea.descargaLineaId = CntCN50.GetSiguienteDescargaLineaId(conn); l.DescargaLinea.tag = tag; l.DescargaLinea.tipo = "PUNTO"; l.DescargaLinea.tipoId = p.puntoId; l.DescargaLinea.nombre = p.nombre; l.DescargaLinea.fechaHora = DateTime.Now; // marcar el punto como controlado en la ronda activa CntCN50.SetPointLastControl(p.puntoId, conn); //--------- // comprobar si hay una ronda activa if (Estado.Ronda == null) { l.InAuto = "INCIDENCIA"; l.Leido = p.nombre; l.ObsAuto = "No hay ninguna ronda activa. Realizar la lectura del Codigo de la ronda deseada."; MarcarControlado(Estado.Ronda, p); return(l); } // comprobar si el punto está en secuencia TRondaPunto rp = Estado.RondaPuntoEsperado; if (p.puntoId == rp.Punto.puntoId) { l.InAuto = "CORRECTO"; l.Leido = p.nombre; l.ObsAuto = "Punto control [" + p.nombre + "] leido en secuencia correcta."; MarcarControlado(Estado.Ronda, p); // Verificar si es el último punto de la ronda return(UltimoEnRonda(l, p)); } // comprobar si pertence a esa ronda bool enRonda = false; bool repetido = false; for (int i = 0; i < Estado.Ronda.RondasPuntos.Count; i++) { rp = Estado.Ronda.RondasPuntos[i]; if (rp.Punto.puntoId == p.puntoId) { enRonda = true; if (rp.Controlado) { repetido = true; } } } MarcarControlado(Estado.Ronda, p); if (enRonda) { l.InAuto = "INCIDENCIA"; l.Leido = p.nombre; if (repetido) { l.ObsAuto = "Punto repetido, ya ha leido este punto en la ronda. Pulsa <Volver> para realizar la lectura del Punto Control esperado [" + Estado.RondaPuntoEsperado.Punto.nombre + "]. Pulsar <Continuar> para seguir con la ronda desde el Punto Control leido."; l.Status = 4; // punto repetido } else { l.ObsAuto = "Punto control leido pertenece a la ronda pero no se ha leido en el orden esperado. Pulsa <Volver> para realizar la lectura del Punto Control esperado [" + Estado.RondaPuntoEsperado.Punto.nombre + "]. Pulsar <Continuar> para seguir con la ronda desde el Punto Control leido."; l.Status = 1; // punto no en orden. } // puede que sea el último l = UltimoEnRonda(l, p); } else { l.InAuto = "INCIDENCIA"; l.Leido = p.nombre; l.ObsAuto = "Punto control [" + p.nombre + "] leido NO pertenece a esta ronda."; } return(l); }