示例#1
0
        public IEnumerable <VacacionesPersona> GetVacacionesPorPeriodo(int Anio)
        {
            IVacacionesRepository vacacionesRepository = _DataRepositoryFactory.GetDataRepository <IVacacionesRepository>();
            var vacaciones = vacacionesRepository.GetVacacionesPorPeriodo(Anio);

            if (vacaciones != null && vacaciones.Count() > 0)
            {
                return(vacaciones);
            }

            IEnumerable <Personal> personalActivo = GetPersonalActivo();

            if (personalActivo != null && personalActivo.Count() > 0)
            {
                foreach (Personal personal in personalActivo)
                {
                    vacacionesRepository.Add(new Vacaciones(Anio, personal.IdPersonal, personal.CodPer, "F", "-"));
                }

                return(GetVacacionesPorPeriodo(Anio));
            }

            return(vacaciones);
        }
示例#2
0
        public IEnumerable <PlanillaRemuneracion> GetPlanillaNormalPorPeriodo(int Anio, int Mes)
        {
            IPlanillaRemuneracionRepository planillaRepository       = _DataRepositoryFactory.GetDataRepository <IPlanillaRemuneracionRepository>();
            IPersonalRepository             personalRepository       = _DataRepositoryFactory.GetDataRepository <IPersonalRepository>();
            IVacacionesRepository           vacacionesRepository     = _DataRepositoryFactory.GetDataRepository <IVacacionesRepository>();
            IFondoPensionesRepository       fondoPensionesRepository = _DataRepositoryFactory.GetDataRepository <IFondoPensionesRepository>();
            IAreaServicioRepository         areaServicioRepository   = _DataRepositoryFactory.GetDataRepository <IAreaServicioRepository>();
            ICargoRepository cargoRepository = _DataRepositoryFactory.GetDataRepository <ICargoRepository>();

            string Periodo  = Anio.ToString() + Utiles.CerosIzquierda(Mes.ToString(), 2);
            var    planilla = planillaRepository.GetPlanillaPorPeriodo(Periodo, "N");

            IEnumerable <VacacionesPersona> vacaciones = vacacionesRepository.GetVacacionesPorPeriodo(Anio);

            if (vacaciones == null || vacaciones.Count() == 0)
            {
                throw new InvalidOperationException("No se han registrado las vacaciones para este periodo. Imposible continuar con la operación.");
            }

            if (planilla != null && planilla.Count() > 0)
            {
                var personal      = personalRepository.Get();
                var fondoPen      = fondoPensionesRepository.Get();
                var areasServicio = areaServicioRepository.Get();
                var cargos        = cargoRepository.Get();
                foreach (PlanillaRemuneracion registro in planilla)
                {
                    var persona = personal.Where(o => o.IdPersonal == registro.IdPersonal).FirstOrDefault();
                    var fondo   = fondoPen.Where(o => o.IdFondoPen == registro.IdFondoPen).FirstOrDefault();
                    var area    = areasServicio.Where(o => o.IdAreaServicio == persona.IdAreaServicio).FirstOrDefault();
                    var cargo   = cargos.Where(o => o.IdCargo == persona.IdCargo).FirstOrDefault();
                    registro.NombrePersona     = persona.ApePaterno + " " + persona.ApeMaterno + ", " + persona.Nombre;
                    registro.VacacionesPeriodo = vacacionesRepository.GetVacacionesPorPeriodoPersona(Anio, registro.IdPersonal ?? 0);
                    registro.ApellidoPaterno   = persona.ApePaterno;
                    registro.ApellidoMaterno   = persona.ApeMaterno;
                    registro.Nombre            = persona.Nombre;
                    registro.CUSPP             = persona.CUSPP;
                    registro.Dni          = persona.DNI;
                    registro.FechaIngreso = persona.FecIngreso ?? DateTime.Now;
                    registro.AFP          = fondo.Entidad;
                    registro.Cargo        = cargo.Cargo1;
                    registro.Area         = area.Area;
                }
                //planilla = planilla.OrderBy(o => o.NombrePersona);
                return(planilla);
            }

            IEnumerable <PlanillaRemuneracion> planillas = GenerarPlanilla(Periodo);

            if (planillas != null && planillas.Count() > 0)
            {
                foreach (PlanillaRemuneracion _planilla in planillas)
                {
                    planillaRepository.Add(_planilla);
                }

                return(GetPlanillaNormalPorPeriodo(Anio, Mes));
            }

            return(planilla);
        }