public List <EmpleadoIncidencias> GetIncidenciasByPeriodo(NOM_PeriodosPago ppago, int[] idEmpleados = null) { int[] empleadosArray; //Generar Array de IdEmpleados if (idEmpleados == null) { //Obtiene el id de todos los empleados que estan asignado al periodo empleadosArray = ctx.NOM_Empleado_PeriodoPago.Where(x => x.IdPeriodoPago == ppago.IdPeriodoPago) .Select(x => x.IdEmpleado) .ToArray(); } else { //id de empleados especificos empleadosArray = idEmpleados; } //var empleados = ctx.NOM_Empleado_PeriodoPago.Where(x => x.IdPeriodoPago == ppago.IdPeriodoPago).ToList(); var lista = new List <EmpleadoIncidencias>(); Periodo = ppago; Empleados emp = new Empleados(); foreach (var item in empleadosArray) { IncXEmpleado = new List <Incidencia>(); IdEmpleado = item; // string nombreEmpleado = emp.GetNombreCompleto(IdEmpleado); NumDias = Periodo.DiasPeriodo; var empComp = ctx.Empleado.FirstOrDefault(x => x.IdEmpleado == item); EmpleadoIncidencias empIn = new EmpleadoIncidencias(); empIn.IdEmpleado = IdEmpleado; //empIn.NombreEmpleado = nombreEmpleado; empIn.Paterno = empComp.APaterno; empIn.Materno = empComp.AMaterno; empIn.Nombres = empComp.Nombres; var fecha = Periodo.Fecha_Inicio; while (fecha <= Periodo.Fecha_Fin) { var inc = new Incidencia { Fecha = fecha, TipoIncidencia = "X", SePaga = true }; IncXEmpleado.Add(inc); //incrementa la fecha en uno fecha = fecha.AddDays(1); } //GetDiasFestivos(); GetDiasDescanso(); //GetVacaciones(); //GetPermisos(); //GetInasistencias(); //GetIncapacidades(); GetNuevoIngreso(); GetBajas(); empIn.Incidencias = IncXEmpleado; empIn.DiasAPagar = NumDias; empIn.idPeriodo = Periodo.IdPeriodoPago; lista.Add(empIn); } return(lista); }
public List <EmpleadoIncidencias> GetIncidenciasByPeriodo2(NOM_PeriodosPago ppago, int[] idEmpleados = null) { int[] empleadosArray; //Generar Array de IdEmpleados if (idEmpleados == null) { //Obtiene el id de todos los empleados que estan asignado al periodo using (var context = new RHEntities()) { empleadosArray = context.NOM_Empleado_PeriodoPago.Where(x => x.IdPeriodoPago == ppago.IdPeriodoPago) .Select(x => x.IdEmpleado) .ToArray(); } } else { //id de empleados especificos empleadosArray = idEmpleados; } var lista = new List <EmpleadoIncidencias>(); Periodo = ppago; Empleados emp = new Empleados(); //GET - Lista Empleados List <Empleado> listaEmpleados = new List <Empleado>(); List <C_DiasFestivos> listaDiasFestivos = new List <C_DiasFestivos>(); List <Empleado_Contrato> listaContratos = new List <Empleado_Contrato>(); List <Vacaciones> listaVacaciones = new List <Vacaciones>(); List <PeriodoVacaciones> listaPeriodoVacaciones = new List <PeriodoVacaciones>(); List <Permisos> listaPermisos = new List <Permisos>(); List <Inasistencias> listaInasistenciasNominas = new List <Inasistencias>(); List <Inasistencias> listaInasistenciasRH = new List <Inasistencias>(); List <Incapacidades> listaIncapacidades = new List <Incapacidades>(); using (var context = new RHEntities()) { listaEmpleados = (from e in context.Empleado where empleadosArray.Contains(e.IdEmpleado) select e).ToList(); listaContratos = (from c in context.Empleado_Contrato where empleadosArray.Contains(c.IdEmpleado) select c).ToList(); // listaDiasFestivos = context.C_DiasFestivos.Where(x => x.Fecha >= Periodo.Fecha_Inicio && x.Fecha <= Periodo.Fecha_Fin).ToList(); listaDiasFestivos = context.C_DiasFestivos.Where(x => Periodo.Fecha_Inicio >= x.Fecha && Periodo.Fecha_Inicio <= x.Fecha).ToList(); //Lista Vacaciones listaVacaciones = (from v in context.Vacaciones //where ((v.FechaInicio >= ppago.Fecha_Inicio && v.FechaInicio <= ppago.Fecha_Fin) || (v.FechaFin >= ppago.Fecha_Inicio && v.FechaFin <= ppago.Fecha_Fin)) // where ((ppago.Fecha_Inicio >= v.FechaInicio && ppago.Fecha_Inicio <= v.FechaFin) || (ppago.Fecha_Fin >= v.FechaInicio && ppago.Fecha_Fin <= v.FechaFin)) where ((ppago.Fecha_Inicio >= v.FechaInicio && ppago.Fecha_Inicio <= v.FechaFin) || (ppago.Fecha_Fin >= v.FechaInicio)) select v).ToList(); //Lista Periodo vacaciones listaPeriodoVacaciones = (from pv in context.PeriodoVacaciones // join c in listaContratos on pv.IdEmpleado_Contrato equals c.IdContrato select pv).ToList(); //Lista Permisos listaPermisos = (from per in context.Permisos where empleadosArray.Contains(per.IdEmpleado) //&& ((per.FechaInicio >= ppago.Fecha_Inicio && per.FechaInicio <= ppago.Fecha_Fin) || (per.FechaFin >= ppago.Fecha_Inicio && per.FechaFin <= ppago.Fecha_Fin)) //&& ((ppago.Fecha_Inicio >= per.FechaInicio && ppago.Fecha_Inicio <= per.FechaFin)||(ppago.Fecha_Fin >= per.FechaInicio && ppago.Fecha_Fin <= per.FechaFin)) && ((ppago.Fecha_Inicio >= per.FechaInicio && ppago.Fecha_Inicio <= per.FechaFin) || (ppago.Fecha_Fin >= per.FechaInicio)) select per).ToList(); //ListaInasistencias listaInasistenciasNominas = (from inaNom in context.Inasistencias where empleadosArray.Contains(inaNom.IdEmpleado) && inaNom.idPeriodo == ppago.IdPeriodoPago //&& ((inaNom.Fecha >= ppago.Fecha_Inicio && inaNom.Fecha <= ppago.Fecha_Fin) || (inaNom.FechaFin >= ppago.Fecha_Inicio && inaNom.FechaFin <= ppago.Fecha_Fin)) //&& ((ppago.Fecha_Inicio >= inaNom.Fecha && ppago.Fecha_Inicio <= inaNom.Fecha) || (ppago.Fecha_Fin >= inaNom.Fecha && ppago.Fecha_Fin <= inaNom.Fecha)) && ((ppago.Fecha_Inicio >= inaNom.Fecha && ppago.Fecha_Inicio <= inaNom.Fecha) || (ppago.Fecha_Fin >= inaNom.Fecha)) select inaNom).ToList(); listaInasistenciasRH = (from inaRh in context.Inasistencias where empleadosArray.Contains(inaRh.IdEmpleado) && inaRh.idPeriodo == 0 //&& ((inaRh.Fecha >= ppago.Fecha_Inicio && inaRh.Fecha <= ppago.Fecha_Fin) || (inaRh.FechaFin >= ppago.Fecha_Inicio && inaRh.FechaFin <= ppago.Fecha_Fin)) //&& ((ppago.Fecha_Inicio >= inaRh.Fecha && ppago.Fecha_Inicio <= inaRh.Fecha)||(ppago.Fecha_Fin >= inaRh.Fecha && ppago.Fecha_Fin <= inaRh.Fecha)) && ((ppago.Fecha_Inicio >= inaRh.Fecha && ppago.Fecha_Inicio <= inaRh.Fecha) || (ppago.Fecha_Fin >= inaRh.Fecha)) select inaRh).ToList(); listaIncapacidades = (from inca in context.Incapacidades where empleadosArray.Contains(inca.IdEmpleado) //&& ((inca.FechaInicio >= ppago.Fecha_Inicio && inca.FechaInicio <= ppago.Fecha_Fin) || (inca.FechaFin >= ppago.Fecha_Inicio && inca.FechaFin <= ppago.Fecha_Fin)) //&& ((ppago.Fecha_Inicio >= inca.FechaInicio && ppago.Fecha_Inicio <= inca.FechaFin)||(ppago.Fecha_Fin >= inca.FechaInicio && ppago.Fecha_Fin <= inca.FechaFin)) && ((ppago.Fecha_Inicio >= inca.FechaInicio && ppago.Fecha_Inicio <= inca.FechaFin) || (ppago.Fecha_Fin >= inca.FechaInicio)) select inca).ToList(); } foreach (var item in empleadosArray) { NumDias = Periodo.DiasPeriodo; IncXEmpleado = new List <Incidencia>(); IdEmpleado = item; var empComp = listaEmpleados.FirstOrDefault(x => x.IdEmpleado == item); //var empComp = ctx.Empleado.FirstOrDefault(x => x.IdEmpleado == item); if (empComp == null) { continue; } EmpleadoIncidencias empIn = new EmpleadoIncidencias(); empIn.IdEmpleado = IdEmpleado; //empIn.NombreEmpleado = nombreEmpleado; empIn.Paterno = empComp.APaterno; empIn.Materno = empComp.AMaterno; empIn.Nombres = empComp.Nombres; var fecha = Periodo.Fecha_Inicio; while (fecha <= Periodo.Fecha_Fin) { var inc = new Incidencia { Fecha = fecha, TipoIncidencia = "X", SePaga = true }; IncXEmpleado.Add(inc); //incrementa la fecha en uno fecha = fecha.AddDays(1); } GetDiasFestivos2(listaDiasFestivos, ppago); GetVacaciones2(listaVacaciones, listaPeriodoVacaciones, listaContratos, ppago, item); GetPermisos2(listaPermisos, item, ppago); GetInasistencias2Rh(listaInasistenciasRH, item, Periodo.DiasPeriodo, ppago); GetDiasDescanso2(listaContratos, item); GetIncapacidades2(listaIncapacidades, item, ppago); GetNuevoIngreso2(listaContratos, item); GetDiasDeBajaDelEmpleado(listaContratos, item); GetInasistencias2Nominas(listaInasistenciasNominas, item, Periodo.DiasPeriodo, ppago); empIn.Incidencias = IncXEmpleado; empIn.DiasAPagar = NumDias; empIn.idPeriodo = Periodo.IdPeriodoPago; lista.Add(empIn); } return(lista); }