Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 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";
         }
     }
 }