public DataTable Ausentes(DateTime fecha) { DataTable trabajadores = new TrabajadorCD().Listado(); for (int i = 0; i < trabajadores.Rows.Count; i++) { string dni = trabajadores.Rows[i].ItemArray[0].ToString(); DataTable registros = new RegistroCD().RegistrosByDia(fecha); for (int k = 0; k < registros.Rows.Count; k++) { if (dni == registros.Rows[k].ItemArray[0].ToString()) { trabajadores.Rows[i].Delete(); } } } trabajadores.Columns.Remove("NIVEL"); trabajadores.Columns.Remove("SUELDO"); return(trabajadores); }
public int RegistrosPrueba() { int mes = 4; DataTable trabajadores = new TrabajadorCD().Listado(); DateTime annoMes; while (mes > 0) { //FECHA DE INICIO - 01 DE CADA MES annoMes = DateTime.Today.AddMonths(-mes).AddDays(-DateTime.Today.Day + 1); //RECORRER LISTA TRABAJADORES for (int i = 0; i < trabajadores.Rows.Count; i++) { string dni = trabajadores.Rows[i].ItemArray[0].ToString(); //VERIFICAR SI YA EXISTEN HORARIOS EN MES DE INICIO HorarioCE buscar = new HorarioCD().BuscarByDniAnnoMes(dni, annoMes); if (buscar.Codigo != null) { //SI YA SE CREARON TERMINA EL MÉTODO return(0); } //ESTABLECER HORARIO SqlCommand cmd = ConexionCD.CrearCmd(cnx); cmd.CommandText = "EstablecerHorario"; cmd.CommandType = CommandType.StoredProcedure; //fechaContador ES LA FECHA QUE RECORRE TODO EL MES DateTime fechaContador = annoMes.Date; TimeSpan hrE, hrS; if (i < 10) { //TURNO MAÑANA hrE = TimeSpan.FromHours(7); hrS = TimeSpan.FromHours(15); } else { //TURNO TARDE hrE = TimeSpan.FromHours(15); hrS = TimeSpan.FromHours(23); } cmd.Parameters.Add(new SqlParameter("@HorE", hrE)); cmd.Parameters.Add(new SqlParameter("@HorS", hrS)); cmd.Parameters.Add(new SqlParameter("@dni", dni)); cmd.Parameters.Add(new SqlParameter("@AnnoMes", annoMes.ToString("yyyy-MM"))); cmd.ExecuteNonQuery(); cnx.Close(); //HORAS REGISTRADAS DE ENTRADA Y SALIDA TimeSpan hrEReg, hrSReg; //WHILE PARA RECORRER TODO LOS DÍAS DEL MES while (fechaContador < annoMes.AddMonths(1)) { //PARA CREAR REGISTROS DIFERENTES //HASTA EL TRABAJADOR N°5 if (i < 5) { hrEReg = hrE.Add(TimeSpan.FromMinutes(new Random().Next(0, 5))); hrSReg = hrS.Add(TimeSpan.FromMinutes(new Random().Next(0, 10))); } //HASTA EL TRABAJADOR N°10 else if (i < 10) { hrEReg = hrE.Add(TimeSpan.FromMinutes(-new Random().Next(0, 10))); hrSReg = hrS.Add(TimeSpan.FromMinutes(-new Random().Next(0, 5))); } //ETC... else if (i < 15) { hrEReg = hrE.Add(TimeSpan.FromMinutes(-new Random().Next(0, 6))); hrSReg = hrS.Add(TimeSpan.FromMinutes(new Random().Next(0, 11))); } //ELSE PARA LOS QUE NO ASISTIERON else { hrEReg = TimeSpan.FromMinutes(0); hrSReg = TimeSpan.FromMinutes(0); } //IF SOLO PARA LOS QUE SÍ ASISTIERON if (hrEReg.TotalMinutes > 0) { DateTime fechaEntrada, fechaSalida; fechaEntrada = fechaContador.Date + hrEReg; fechaSalida = fechaContador.Date + hrSReg; if (fechaContador.ToString("dddd") != "domingo") { //REGISTRAR ENTRADA FICTICIA Registrar(dni, "Entrada", fechaEntrada); //REGISTRAR SALIDA FICTICIA Registrar(dni, "Salida", fechaSalida); } } //SIGUIENTE DÍA fechaContador = fechaContador.AddDays(1); } } //SIGUIENTE MES mes--; } return(1); }