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