/// <summary>
        /// Añade toda la información de los fichajes al datagreed
        /// </summary>
        private void ListaFichaje()
        {
            string         consulta = "Select * from fichajes;";
            List <Fichaje> fichajes;

            if (bdactevalu.AbrirConexion())
            {
                fichajes = Fichaje.BuscaFichajes(bdactevalu.Conexion, consulta);
                dtgFichajes.DataSource = fichajes;
            }
            else
            {
                MessageBox.Show("No se puede abrir la Base de Datos");
            }
            bdactevalu.CerrarConexion();
        }
        private void bntEliminar_Click(object sender, EventArgs e)
        {
            try
            {
                int resultado;
                int resFichajes;

                if (dtgUsuarios.SelectedRows.Count == 1)
                {
                    string nif = (string)dtgUsuarios.CurrentRow.Cells[0].Value;

                    DialogResult eliminacion = MessageBox.Show("¿Estas seguro que quieres borrar? también se eliminará toda la información de los fichajes de este usuario",
                                                               "Eliminación", MessageBoxButtons.YesNo);

                    if (eliminacion == DialogResult.Yes)
                    {
                        if (bdactevalu.AbrirConexion())
                        {
                            resFichajes = Fichaje.EliminarFichaje(bdactevalu.Conexion, nif);
                            resultado   = Usuario.EliminaUsuario(bdactevalu.Conexion, nif);
                            MessageBox.Show("Registros afectados: " + resultado);
                        }
                        else
                        {
                            MessageBox.Show("No se puede abrir la Base de Datos");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            bdactevalu.CerrarConexion();
        }
示例#3
0
        private void btnSalida_Click(object sender, EventArgs e)
        {
            string consultaBuscarUsuario = string.Format("SELECT * FROM empleados WHERE NIF LIKE '{0}';", txtNif.Text);
            string consultaBuscarFichaje = string.Format("SELECT * FROM fichajes WHERE NIFEmpleado LIKE '{0}' AND fichadoSalida LIKE 0", txtNif.Text);

            try
            {
                bdactevalu.AbrirConexion();
            }
            catch (Exception ex)
            {
            }
            if (Usuario.ComprobarLetraNif(txtNif.Text) && Usuario.BuscaUsuario(bdactevalu.Conexion, consultaBuscarUsuario).Count == 1 && Fichaje.BuscaFichajes(bdactevalu.Conexion, consultaBuscarFichaje).Count == 1)
            {
                Fichaje fichaje = new Fichaje(txtNif.Text, DateTime.Now.Date, DateTime.Now);
                if (Fichaje.FichajeSalida(bdactevalu.Conexion, txtNif.Text) == 1)
                {
                    MessageBox.Show("Fichaje realizado con exito");
                }
            }
            else
            {
                MessageBox.Show("ERROR");
            }
            bdactevalu.CerrarConexion();
        }
示例#4
0
        private void btnPermanencia_Click(object sender, EventArgs e)
        {
            try
            {
                bdactevalu.AbrirConexion();
            }
            catch (Exception ex)
            {
            }
            int            horas         = 0;                                                                     //variable para guardar las horas totales
            int            minutos       = 0;                                                                     //variable para guardar los minutos del resultado final
            int            segundos      = 0;                                                                     //variable para guardar los segundos del resultado final
            int            dias          = 0;                                                                     //variable para guardar los dias del resultado final
            List <Fichaje> fichajes      = Fichaje.BuscaFichajes(bdactevalu.Conexion, "SELECT * FROM fichajes;"); //obtengo todos los fichajes de la base de datos
            List <Fichaje> fResultado    = new List <Fichaje>();                                                  //Lista de fichajes que están dentro del intervalo
            List <int>     listaDias     = new List <int>();                                                      //Lista de dias de cada fichaje
            List <int>     listaHoras    = new List <int>();                                                      //Lista de horas de cada fichaje
            List <int>     listaMinutos  = new List <int>();                                                      //Lista de minutos de cada fichaje
            List <int>     listaSegundos = new List <int>();                                                      //Lista de segundos de cada fichaje

            int[] res = new int[4];                                                                               //Array para guardar el resultado del método restaHoras
            if (DateTime.Compare(dtpInicio.Value, dtpFin.Value) >= 0)
            {
                MessageBox.Show("Intervalo de fechas no válido");
            }
            else
            {
                for (int i = 0; i < fichajes.Count; i++)
                {
                    if (DateTime.Compare(fichajes[i].HoraEntrada, dtpInicio.Value) >= 0 && DateTime.Compare(fichajes[i].HoraSalida, dtpFin.Value) <= 0 && fichajes[i].FichadoSalida)//obtengo los fichajes que estén dentro del intervalo de fechas
                    {
                        fResultado.Add(fichajes[i]);
                    }
                }

                for (int i = 0; i < fResultado.Count; i++)
                {
                    res = RestaHoras(fichajes[i].HoraEntrada, fichajes[i].HoraSalida);

                    listaDias.Add(res[0]);
                    listaHoras.Add(res[1]);
                    listaMinutos.Add(res[2]);
                    listaSegundos.Add(res[3]);
                }

                //Ajuste de minutos y segundos para que no pasen de 60
                for (int i = 0; i < fResultado.Count; i++)
                {
                    dias     += listaDias[i];
                    horas    += listaHoras[i];
                    minutos  += listaMinutos[i];
                    segundos += listaSegundos[i];
                    if (segundos >= 60)
                    {
                        segundos -= 60;
                        minutos++;
                    }
                    if (minutos >= 60)
                    {
                        minutos -= 60;
                        horas++;
                    }
                    while (dias > 0)
                    {
                        dias--;
                        horas += 24;
                    }
                }
                dtgInfo.Columns.Clear();
                dtgInfo.Columns.Add("id", "ID");
                dtgInfo.Columns.Add("NIFempleado", "NIF empleado");
                dtgInfo.Columns.Add("dia", "dia");
                dtgInfo.Columns.Add("horaEntrada", "Hora de entrada");
                dtgInfo.Columns.Add("horaSalida", "Hora de salida");
                dtgInfo.Columns.Add("TiempoFichaje", "Duración");

                for (int i = 0; i < fResultado.Count; i++)
                {
                    dtgInfo.Rows.Add(fResultado[i].Id, fResultado[i].NifEmpleado, fResultado[i].Dia, fResultado[i].HoraEntrada, fResultado[i].HoraSalida, listaDias[i] + " d, " + listaHoras[i] + " h, " + listaMinutos[i] + " min, " + listaSegundos[i] + " s");
                }
                MessageBox.Show("El tiempo total de fichajes es: " + horas + "h " + minutos + "min " + segundos + "s");
            }
            bdactevalu.CerrarConexion();
        }