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