Ejemplo n.º 1
0
        private IncidenciasDuplicadas SetEmpleado(int IdEmpleado, IncidenciasDuplicadas duplicado)
        {
            Empleados e        = new Empleados();
            var       empleado = e.GetEmpleadoById(IdEmpleado);

            duplicado.Empleado = empleado.Nombres + " " + empleado.APaterno + " " + empleado.AMaterno;
            return(duplicado);
        }
Ejemplo n.º 2
0
 private IncidenciasDuplicadas DateTimeToString(DateTime fecha, DateTime FechaFin, IncidenciasDuplicadas duplicado)
 {
     if (fecha == FechaFin)
     {
         duplicado.Fecha = fecha.ToString(@"dd \de MMMM");
     }
     else if (fecha.Month == FechaFin.Month)
     {
         duplicado.Fecha      = fecha.ToString("dd");
         duplicado.FechaFinal = FechaFin.ToString(@"dd \de MMMM");
     }
     else
     {
         duplicado.Fecha      = fecha.ToString("dd/MM");
         duplicado.FechaFinal = FechaFin.ToString("dd/MM");
     }
     return(duplicado);
 }
Ejemplo n.º 3
0
        public IncidenciasDuplicadas RevisarDuplicados(int IdEmpleado, DateTime Fecha, DateTime?FechaFinal)
        {
            if (FechaFinal == null)
            {
                FechaFinal = Fecha;
            }


            var duplicado = new IncidenciasDuplicadas();
            var emp       = new Empleados();
            var contrato  = emp.GetUltimoContrato(IdEmpleado);

            //if (contrato.FechaAlta > Fecha)
            if (contrato.FechaReal > Fecha)
            {
                duplicado.Incidencia = "Nuevo Ingreso";
                //duplicado = DateTimeToString(contrato.FechaAlta, contrato.FechaAlta, duplicado);
                duplicado = DateTimeToString(contrato.FechaReal, contrato.FechaReal, duplicado);
                duplicado = SetEmpleado(IdEmpleado, duplicado);
                return(duplicado);
            }

            if (contrato.FechaBaja > FechaFinal)
            {
                duplicado.Incidencia = "Baja";
                duplicado            = DateTimeToString(contrato.FechaBaja.Value.Date, contrato.FechaBaja.Value.Date, duplicado);
                duplicado            = SetEmpleado(IdEmpleado, duplicado);
            }

            var permisos = ctx.Permisos.Where(x => x.IdEmpleado == IdEmpleado && ((x.FechaInicio <= Fecha && x.FechaFin >= Fecha) || (x.FechaInicio <= FechaFinal && x.FechaFin >= FechaFinal))).FirstOrDefault();

            if (permisos != null)
            {
                duplicado.Incidencia = "Permiso";
                duplicado            = DateTimeToString(permisos.FechaInicio, permisos.FechaFin, duplicado);
                duplicado            = SetEmpleado(IdEmpleado, duplicado);
                return(duplicado);
            }

            var incapacidades = ctx.Incapacidades.Where(x => x.IdEmpleado == IdEmpleado && ((x.FechaInicio <= Fecha && x.FechaFin >= Fecha) || (x.FechaInicio <= FechaFinal && x.FechaFin >= FechaFinal))).FirstOrDefault();

            if (incapacidades != null)
            {
                duplicado.Incidencia = "Incapacidad";
                duplicado            = DateTimeToString(incapacidades.FechaInicio, incapacidades.FechaFin, duplicado);
                duplicado            = SetEmpleado(IdEmpleado, duplicado);
                return(duplicado);
            }

            var inasistencia = ctx.Inasistencias.Where(x => x.IdEmpleado == IdEmpleado && (
                                                           (x.Fecha <= Fecha && x.Fecha <= FechaFinal) && (x.FechaFin >= Fecha && x.FechaFin >= FechaFinal)
                                                           )).FirstOrDefault();

            if (inasistencia != null)
            {
                duplicado.Incidencia = "Inasistencia";
                if (inasistencia.FechaFin != null)
                {
                    duplicado = DateTimeToString(inasistencia.Fecha, inasistencia.FechaFin.Value.Date, duplicado);
                }
                else
                {
                    duplicado.Fecha = inasistencia.Fecha.ToString(@"dd \de MMMM");
                }
                duplicado = SetEmpleado(IdEmpleado, duplicado);
                return(duplicado);
            }

            var vacacion = (from v in ctx.Vacaciones
                            join pv in ctx.PeriodoVacaciones on v.IdPeridoVacaciones equals pv.IdPeridoVacaciones
                            join c in ctx.Empleado_Contrato on pv.IdEmpleado_Contrato equals c.IdContrato
                            where c.IdEmpleado == IdEmpleado && ((v.FechaInicio <= Fecha && v.FechaFin >= Fecha) || (v.FechaInicio <= FechaFinal && v.FechaFin >= FechaFinal))
                            select v
                            ).FirstOrDefault();

            if (vacacion != null)
            {
                duplicado.Incidencia = "Vacaciones";
                duplicado            = DateTimeToString(vacacion.FechaInicio, vacacion.FechaFin, duplicado);
                duplicado            = SetEmpleado(IdEmpleado, duplicado);
                return(duplicado);
            }

            //var diaFestivo = ctx.DiasFestivos.Where(x => x.Fecha >= Fecha && x.Fecha <= FechaFinal).FirstOrDefault();
            //if(diaFestivo != null)
            //{
            //    duplicado.Incidencia = "Día Festivo";
            //    duplicado.Fecha = diaFestivo.Fecha.ToString(@"dd \de MMMM");
            //    duplicado = SetEmpleado(IdEmpleado, duplicado);
            //    return duplicado;
            //}

            //var diaDescanso = ctx.Empleado_Contrato.Where(x => x.IdEmpleado == IdEmpleado).OrderByDescending(x => x.IdContrato).Select(x => x.DiaDescanso).FirstOrDefault();
            //var fechaTemporal = Fecha;
            //while(fechaTemporal <= FechaFinal)
            //{
            //    if((int)fechaTemporal.DayOfWeek == diaDescanso)
            //    {
            //        duplicado.Incidencia = "Día de Descanso";
            //        duplicado.Fecha = fechaTemporal.ToString(@"dd \de MMMM");
            //        duplicado = SetEmpleado(IdEmpleado, duplicado);
            //        return duplicado;
            //    }
            //    fechaTemporal = fechaTemporal.AddDays(1);
            //}

            return(null);
        }