public static TRonda GetRondaFromTag(string tag, SqlCeConnection conn) { TRonda r = null; using (SqlCeCommand cmd = conn.CreateCommand()) { var sql = @"SELECT r.rondaId, r.nombre, r.tag, r.tagf, rp.rondaPuntoId, rp.orden, rp.puntoId, p.nombre AS pnombre, p.edificioId, p.tag AS ptag, e.nombre AS enombre, e.grupoId, g.nombre AS gnombre, p.cota, p.cubiculo, r.mintime, r.maxtime, p.csnmax, p.csnmargen, p.lastcontrol FROM rondas AS r LEFT OUTER JOIN rondaspuntos AS rp ON rp.rondaId = r.rondaId LEFT OUTER JOIN puntos AS p ON p.puntoId = rp.puntoId LEFT OUTER JOIN edificios AS e ON e.edificioId = p.edificioId LEFT OUTER JOIN grupos AS g ON g.grupoId = e.grupoId WHERE r.tag = '{0}' ORDER BY rp.orden"; cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = String.Format(sql, tag); using (SqlCeDataReader dr = cmd.ExecuteResultSet(ResultSetOptions.Scrollable)) { if (dr.HasRows) { r = GetRondaFromDr(dr); } if (!dr.IsClosed) { dr.Close(); } } } return(r); }
public static void DesmarcarControlado(TRonda r, TPunto p) { if (r == null) return; for (int i = 0; i < r.RondasPuntos.Count; i++) { TRondaPunto rp = r.RondasPuntos[i]; if (rp.Punto.puntoId == p.puntoId) { // lo desmarcamos como controlado rp.Controlado = false; } } }
public static void DesmarcarControlado(TRonda r, TPunto p) { if (r == null) { return; } for (int i = 0; i < r.RondasPuntos.Count; i++) { TRondaPunto rp = r.RondasPuntos[i]; if (rp.Punto.puntoId == p.puntoId) { // lo desmarcamos como controlado rp.Controlado = false; } } }
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 TRonda GetRondaFromDr(SqlCeDataReader dr) { TRonda r = new TRonda(); bool primero = true; while (dr.Read()) { if (primero) { r.rondaId = dr.GetInt32(0); r.nombre = dr.GetString(1); r.tag = dr.GetString(2); r.tagf = dr.GetString(3); r.RondasPuntos = new List <TRondaPunto>(); primero = false; } TRondaPunto rp = new TRondaPunto(); TPunto p = new TPunto(); TEdificio e = new TEdificio(); TGrupo g = new TGrupo(); rp.rondaPuntoId = dr.GetInt32(4); rp.orden = dr.GetInt32(5); p.puntoId = dr.GetInt32(6); p.nombre = dr.GetString(7); e.edificioId = dr.GetInt32(8); p.tag = dr.GetString(9); e.nombre = dr.GetString(10); g.grupoId = dr.GetInt32(11); g.nombre = dr.GetString(12); p.cota = dr.GetString(13); p.cubiculo = dr.GetString(14); r.mintime = dr.GetInt32(15); r.maxtime = dr.GetInt32(16); p.csnmax = dr.GetInt32(17); p.csnmargen = dr.GetInt32(18); p.lastcontrol = dr.GetDateTime(19); e.Grupo = g; p.Edificio = e; rp.Punto = p; rp.Ronda = r; r.RondasPuntos.Add(rp); } return(r); }
public static TRonda GetRondaFromDr(SqlCeDataReader dr) { TRonda r = new TRonda(); bool primero = true; while (dr.Read()) { if (primero) { r.rondaId = dr.GetInt32(0); r.nombre = dr.GetString(1); r.tag = dr.GetString(2); r.tagf = dr.GetString(3); r.RondasPuntos = new List<TRondaPunto>(); primero = false; } TRondaPunto rp = new TRondaPunto(); TPunto p = new TPunto(); TEdificio e = new TEdificio(); TGrupo g = new TGrupo(); rp.rondaPuntoId = dr.GetInt32(4); rp.orden = dr.GetInt32(5); p.puntoId = dr.GetInt32(6); p.nombre = dr.GetString(7); e.edificioId = dr.GetInt32(8); p.tag = dr.GetString(9); e.nombre = dr.GetString(10); g.grupoId = dr.GetInt32(11); g.nombre = dr.GetString(12); p.cota = dr.GetString(13); p.cubiculo = dr.GetString(14); r.mintime = dr.GetInt32(15); r.maxtime = dr.GetInt32(16); p.csnmax = dr.GetInt32(17); p.csnmargen = dr.GetInt32(18); p.lastcontrol = dr.GetDateTime(19); e.Grupo = g; p.Edificio = e; rp.Punto = p; rp.Ronda = r; r.RondasPuntos.Add(rp); } return r; }
public static PuntosSinControl PuntosNoControlados(TRonda r) { PuntosSinControl psc = new PuntosSinControl(); int pos = -1; string lista = ""; for (int i = 0; i < r.RondasPuntos.Count; i++) { TRondaPunto rp = r.RondasPuntos[i]; if (!rp.Controlado) { if (pos == -1) { pos = i; } lista += "[" + rp.Punto.nombre + "]"; } } psc.pos = pos; psc.lista = lista; return(psc); }
public static TRonda GetTRonda(int id, SqlCeConnection conn) { TRonda r = null; using (SqlCeCommand cmd = conn.CreateCommand()) { cmd.CommandType = System.Data.CommandType.Text; cmd.CommandText = String.Format("SELECT * FROM rondas WHERE rondaId = {0}", id); using (SqlCeDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { r = GetRondaFromDr(dr); } if (!dr.IsClosed) { dr.Close(); } } } return(r); }
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 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 PuntosSinControl PuntosNoControlados(TRonda r) { PuntosSinControl psc = new PuntosSinControl(); int pos = -1; string lista = ""; for (int i = 0; i < r.RondasPuntos.Count; i++) { TRondaPunto rp = r.RondasPuntos[i]; if (!rp.Controlado) { if (pos == -1) pos = i; lista += "[" + rp.Punto.nombre + "]"; } } psc.pos = pos; psc.lista = lista; return psc; }