Пример #1
0
        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);
        }
Пример #2
0
        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);
        }