private void mnuAceptar_Click(object sender, EventArgs e) { // salvamos la descarga y el status TDescargaLinea dl = this.lec.DescargaLinea; int status = this.lec.Status; // grabamos incidencias y observaciones if (cmbIncidencias.SelectedItem != null) { dl.incidenciaId = ((TIncidencia)cmbIncidencias.SelectedItem).incidenciaId; } dl.observaciones = txtObsMan.Text; // siempre se graba si le dan continuar SqlCeConnection conn = CntCN50.TSqlConnection(); CntCN50.TOpen(conn); CntCN50.SetDescargaLinea(dl, conn); CntCN50.TClose(conn); // control de status if (status == 1) { // quiere que el siguiente punto se corresponda con el siguiente al realmente leido for (int i = 0; i < Estado.Ronda.RondasPuntos.Count; i++) { TRondaPunto rp = Estado.Ronda.RondasPuntos[i]; if (dl.tipo == "PUNTO" && dl.tipoId == rp.Punto.puntoId) { Estado.Orden = i + 1; Estado.RondaPuntoEsperado = Estado.Ronda.RondasPuntos[Estado.Orden]; } } } if (status == 3) { // Ha leido un final de ronda con puntos sin controlar y quiere cerrar si o si. Estado.Ronda = null; Estado.RondaPuntoEsperado = null; Estado.Orden = 0; } LeerCodigo lc = new LeerCodigo(); lc.Show(); this.Close(); }
private void controlPuntoEsperado() { if (Estado.RondaPuntoEsperado != null) { TRondaPunto rp = Estado.RondaPuntoEsperado; lblSP0.Text = rp.Punto.nombre; string mens = "[Grupo: {1}] [Edificio:{0}] [Cota: {2}] [Cubiculo: {3}]"; mens = String.Format(mens, rp.Punto.Edificio.nombre, rp.Punto.Edificio.Grupo.nombre, rp.Punto.cota, rp.Punto.cubiculo); lblSP.Text = mens; csnMax = rp.Punto.csnmax; // controlar si debe de activarse el reloj CSN if (csnMax > 0) { // tiene control csn, ahora hay que ver la última vez // que se controló este punto. nullDate = new DateTime(1990, 1, 1, 0, 0, 0); // así vienen las fechas nulas lastTime = rp.Punto.lastcontrol; // solo controlamos cuando ha habido una lectura previa if (lastTime != nullDate) { // calculo del tiempo transcurrido int minutesPassed = (int)Math.Round(DateTime.Now.Subtract(lastTime).TotalMinutes); // minutos restantes int minutesLeft = rp.Punto.csnmax - minutesPassed; if (minutesLeft <= 0) { lblCSN.BackColor = System.Drawing.Color.Red; lblCSN.ForeColor = System.Drawing.Color.White; lblCSN.Text = String.Format("Superados los {1} min. máximos", lastTime, csnMax); } else { lblCSN.BackColor = System.Drawing.Color.Orange; lblCSN.Text = String.Format("Quedan {1} min. para el siguiente control", lastTime, minutesLeft); } } } else { lblCSN.Text = "SIN CONTROL CSN"; } } }