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