/// <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(); }
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(); }
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(); }