Exemple #1
0
        // Lee una tarjeta y muestra el número
        #region BtLeerTarjeta_Click
        private async void BtLeerTarjeta_Click(object sender, EventArgs e)
        {
            CancellationTokenSource source = new CancellationTokenSource();

            source.CancelAfter(TimeSpan.FromSeconds(10)); // Timeout de 10 segundos
            Task <long> leeTarjeta = Task.Run(() => LectorTarjetas.LecturaTarjeta(source.Token), source.Token);

            btLeerTarjeta.IsEnabled = false;

            long numTarjeta = await leeTarjeta;

            source.Dispose();

            // Inserta los datos del registro en la BD
            if (numTarjeta != -1)
            {
                tbNumTarjeta.Text = numTarjeta.ToString();
            }
            else
            {
                tbNumTarjeta.Text = "No se ha podido leer la tarjeta.";
            }

            btLeerTarjeta.IsEnabled = true;
        }
        public RegistroPersonalDialog()
        {
            InitializeComponent();
            LectorTarjetas.LimpiaPantallaLCD();

            // Timer para la label de información
            timerLabel = new DispatcherTimer
            {
                Interval = TimeSpan.FromSeconds(3)
            };
            timerLabel.Tick += TimerLabel_Tick;
        }
Exemple #3
0
        // Constructor
        #region ListadoPersonal
        public ListadoPersonal()
        {
            InitializeComponent();

            LectorTarjetas.LimpiaPantallaLCD();
            _ListaPersonal = AccessHelper.LeerDatosPersonal();

            #region Inicialización Timer
            timerLabel = new DispatcherTimer
            {
                Interval = TimeSpan.FromSeconds(3)
            };
            timerLabel.Tick += TimerLabel_Tick;
            #endregion

            lvPersonal.ItemsSource = ListaPersonal;
        }
        private async void BtLeerTarjeta_Click(object sender, EventArgs e)
        {
            LectorTarjetas.MuestraMensajeLCD("Por favor, pase la tarjeta");

            CancellationTokenSource source = new CancellationTokenSource();

            source.CancelAfter(TimeSpan.FromSeconds(10)); // Timeout de 10 segundos
            Task <long> leeTarjeta = Task.Run(() => LectorTarjetas.LecturaTarjeta(source.Token), source.Token);

            btLeerTarjeta.IsEnabled = false;

            long numTarjeta = await leeTarjeta;

            source.Dispose();

            if (AccessHelper.ExisteTarjeta(numTarjeta))
            {
                tblNumTarjeta.Text = "Esta tarjeta ya está vinculada.";
                LectorTarjetas.LimpiaPantallaLCD();
                LectorTarjetas.MuestraMensajeLCD("Esta tarjeta ya está vinculada.");
                LectorTarjetas.TimerLimpiaPantallaLCD();
            }
            else if (numTarjeta != -1)
            {
                tblNumTarjeta.Text = numTarjeta.ToString();
                LectorTarjetas.LimpiaPantallaLCD();
                LectorTarjetas.MuestraMensajeLCD("Num Tarjeta: " + numTarjeta);
                LectorTarjetas.TimerLimpiaPantallaLCD();
            }
            else
            {
                tblNumTarjeta.Text = "No se ha podido leer la tarjeta.";
                LectorTarjetas.LimpiaPantallaLCD();
                LectorTarjetas.MuestraMensajeLCD("No se ha podido leer la tarjeta.");
                LectorTarjetas.TimerLimpiaPantallaLCD();
            }

            btLeerTarjeta.IsEnabled = true;
        }
Exemple #5
0
        // Constructor
        #region CalendarioLaboral
        public CalendarioLaboral()
        {
            InitializeComponent();
            LectorTarjetas.LimpiaPantallaLCD();

            Cursor         = Cursors.Wait;
            _ListaFestivos = AccessHelper.LeerDatosCalendario();
            Cursor         = Cursors.Arrow;

            #region Inicialización Timer
            // DispatcherTimer
            timerLabel = new DispatcherTimer
            {
                Interval = TimeSpan.FromSeconds(3)
            };
            timerLabel.Tick += TimerLabel_Tick;
            #endregion

            dpFestivos.DisplayDateStart = new DateTime(DateTime.Now.Year, 1, 1);
            dpFestivos.DisplayDateEnd   = new DateTime(DateTime.Now.Year, 12, 31);

            // Vincula el listview con la lista de días de la BD
            lvFestivos.ItemsSource = _ListaFestivos;
        }
        // Lee la tarjeta e introduce el tipo de registro correspondiente en la BD,
        // con la hora y el ID del personal.
        #region LecturaTarjetaRegistroHistorial
        private async void LecturaTarjetaRegistroHistorial(TipoRegistro tipoRegistro)
        {
            LectorTarjetas.MuestraMensajeLCD("Por favor, pase la tarjeta");

            CancellationTokenSource source = new CancellationTokenSource();

            source.CancelAfter(TimeSpan.FromSeconds(10)); // Timeout de 10 segundos
            Task <long> leeTarjeta = Task.Run(() => LectorTarjetas.LecturaTarjeta(source.Token), source.Token);

            btEntrada.IsEnabled         = false;
            btSalida.IsEnabled          = false;
            btDescansoEntrada.IsEnabled = false;
            btDescansoSalida.IsEnabled  = false;
            btComidaEntrada.IsEnabled   = false;
            btComidaSalida.IsEnabled    = false;

            long numTarjeta = await leeTarjeta;

            source.Dispose();

            // Inserta los datos del registro en la BD
            if (numTarjeta != -1)
            {
                AccessHelper.InsertaNuevoRegistroHistorial(numTarjeta, tipoRegistro);
#if DEBUG
                GlobalData.PrintDebug("SistemaFichaje.cs", "[" + DateTime.Now + "] Se ha leído la tarjeta con número:" + numTarjeta + ".\n");
#endif

                string nombre = AccessHelper.NombreDePersonalConIDTarjeta(numTarjeta), msg = "";

                if (nombre == "null")
                {
                    msg = String.Format("[{0:hh:mm:ss}] No se reconoce ID.", DateTime.Now);
                }
                else
                {
                    if (tipoRegistro == TipoRegistro.Entrada)
                    {
                        msg = String.Format("[{0:hh:mm:ss}] Entrada [{1}]", DateTime.Now, nombre);
                    }
                    else if (tipoRegistro == TipoRegistro.Salida)
                    {
                        msg = String.Format("[{0:hh:mm:ss}] Salida [{1}]", DateTime.Now, nombre);
                    }
                    else if (tipoRegistro == TipoRegistro.DescansoSalida)
                    {
                        msg = String.Format("[{0:hh:mm:ss}] Salida Descanso [{1}]", DateTime.Now, nombre);
                    }
                    else if (tipoRegistro == TipoRegistro.DescansoEntrada)
                    {
                        msg = String.Format("[{0:hh:mm:ss}] Entrada Descanso [{1}]", DateTime.Now, nombre);
                    }
                }
#if DEBUG
                GlobalData.PrintDebug("SistemaFichaje.cs", msg + "\n");
#endif
                LectorTarjetas.LimpiaPantallaLCD();
                LectorTarjetas.MuestraMensajeLCD(msg);
                LectorTarjetas.TimerLimpiaPantallaLCD();
            }
            else
            {
#if DEBUG
                GlobalData.PrintDebug("SistemaFichaje.cs", "[" + DateTime.Now + "] No se ha recibido ninguna tarjeta o el formato no es válido.");
#endif
                LectorTarjetas.LimpiaPantallaLCD();
                LectorTarjetas.MuestraMensajeLCD("No se reconoce ID");
                LectorTarjetas.TimerLimpiaPantallaLCD();
            }

            btEntrada.IsEnabled         = true;
            btSalida.IsEnabled          = true;
            btDescansoEntrada.IsEnabled = true;
            btDescansoSalida.IsEnabled  = true;
            btComidaEntrada.IsEnabled   = true;
            btComidaSalida.IsEnabled    = true;
        }
 // Constructor
 #region Fichaje
 public Fichaje()
 {
     InitializeComponent();
     LectorTarjetas.LimpiaPantallaLCD();
 }