private IEnumerable <PlanillaRemuneracion> GenerarPlanillaGratificacion(int Anio, int Mes) { IPlanillaRemuneracionRepository planillaRemuneracionRepository = _DataRepositoryFactory.GetDataRepository <IPlanillaRemuneracionRepository>(); IPersonalRepository personalRepository = _DataRepositoryFactory.GetDataRepository <IPersonalRepository>(); string Periodo = Anio.ToString() + Utiles.CerosIzquierda(Mes.ToString(), 2); List <PlanillaRemuneracion> resultado = new List <PlanillaRemuneracion>(); var planillasPeriodo = planillaRemuneracionRepository.PlanillasEnPeriodoPorGrati(Mes, Anio); IEnumerable <Personal> personalActivo = personalRepository.GetPersonalActivo(); foreach (Personal personal in personalActivo) { var planillas = planillasPeriodo.Where(o => o.IdPersonal == personal.IdPersonal && o.TipoPlan == "N"); int nroPlanillas = planillas.Count(); decimal TotalIngresos = planillas.Sum(o => o.TotIng ?? 0); decimal Gratificacion = Math.Round(TotalIngresos / nroPlanillas, 2, MidpointRounding.AwayFromZero); decimal Extra = Convert.ToDecimal(Math.Round(Convert.ToDouble(Gratificacion) * 0.09, 2, MidpointRounding.AwayFromZero)); PlanillaRemuneracion gratificacion = new PlanillaRemuneracion(0, Periodo, personal.IdPersonal, personal.CodPer, personal.IdCargo, personal.CodCar, personal.IdFondoPen, personal.CodFon, personal.TipComAFP, 0, 0, 0, Gratificacion, 0, 0, 0, 0, Extra, 0, 0, 0, 0, 0, 0, 0, 0, 27, 216, null, null, 0, null, null, 0, null, null, 0, "F", "G"); resultado.Add(gratificacion); } return(resultado); }
public PlanillaRemuneracion UpdatePlanilla(PlanillaRemuneracion planillaRemuneracion) { IPlanillaRemuneracionRepository remuneracionRepository = _DataRepositoryFactory.GetDataRepository <IPlanillaRemuneracionRepository>(); IVacacionesRepository vacacionesRepository = _DataRepositoryFactory.GetDataRepository <IVacacionesRepository>(); var Persona = remuneracionRepository.Update(planillaRemuneracion); Persona.VacacionesPeriodo = vacacionesRepository.Update(planillaRemuneracion.VacacionesPeriodo); return(Persona); }
//public void EliminarPlanilla(string Periodo, string TipoPlanilla) //{ // IPlanillaRemuneracionRepository planillaRepository = _DataRepositoryFactory.GetDataRepository<IPlanillaRemuneracionRepository>(); //} public List <PlanillaRemuneracion> GenerarPlanilla(string Periodo) { int Anio = Convert.ToInt32(Periodo.Substring(0, 4)); int Mes = Convert.ToInt32(Periodo.Substring(4, 2)); IPersonalRepository personalRepository = _DataRepositoryFactory.GetDataRepository <IPersonalRepository>(); IFondoPensionesRepository fondoRepository = _DataRepositoryFactory.GetDataRepository <IFondoPensionesRepository>(); IAporteEmpleadorRepository aportesRepository = _DataRepositoryFactory.GetDataRepository <IAporteEmpleadorRepository>(); IDiasLaborablesRepository diasRepository = _DataRepositoryFactory.GetDataRepository <IDiasLaborablesRepository>(); IVacacionesRepository vacacionesRepository = _DataRepositoryFactory.GetDataRepository <IVacacionesRepository>(); List <PlanillaRemuneracion> remuneracion = new List <PlanillaRemuneracion>(); IEnumerable <Personal> personalActivo = personalRepository.GetPersonalActivo(); foreach (Personal personal in personalActivo) { FondoPensiones fondoPensiones = fondoRepository.Get(personal.IdFondoPen ?? 0); AporteEmpleador aporteEmpleadorESSALUD = aportesRepository.Get(1); AporteEmpleador aporteEmpleadorSCTR = aportesRepository.Get(2); DiasLaborables diasLaborables = diasRepository.GetDiasPorPeriodo(Periodo); Vacaciones vacacionesInicio = vacacionesRepository.GetVacacionesInicioPeriodoPersona(personal.IdPersonal, Anio, Mes); Vacaciones vacacionesFin = vacacionesRepository.GetVacacionesFinPeriodoPersona(personal.IdPersonal, Anio, Mes); Vacaciones vacacionesPeriodo = vacacionesRepository.GetVacacionesPorPeriodoPersona(Anio, personal.IdPersonal); decimal porcentajeApoObl = ((personal.TipComAFP == "F") ? fondoPensiones.ApoOblF : fondoPensiones.ApoOblM) ?? 0; decimal porcentajeComVar = ((personal.TipComAFP == "F") ? fondoPensiones.ComVarF : fondoPensiones.ComVarM) ?? 0; decimal porcentajePriSeg = ((personal.TipComAFP == "F") ? fondoPensiones.PriSegF : fondoPensiones.PriSegM) ?? 0; //decimal TotalIngreso = personal.RemBas + personal.AsiFam + personal.RieCaj; //terminar //decimal MontoOnp = (personal.RemBas * fondoPensiones.PorONP) ?? 0; //decimal MontoAporteObl = (personal.RemBas * porcentajeApoObl) ?? 0; //decimal MontoComVar = (personal.RemBas * porcentajeComVar) ?? 0; //decimal MontoPriSeg = (personal.RemBas * porcentajePriSeg) ?? 0; //decimal totalDescuento = MontoOnp + MontoAporteObl + MontoComVar + MontoPriSeg; decimal porcentajeSCTR = ((personal.SCTR == "N") ? 0 : aporteEmpleadorSCTR.Porcentaje) ?? 0; decimal porcentajeESSALUD = (aporteEmpleadorESSALUD.Porcentaje) ?? 0; decimal montoESSALUD = (personal.RemBas * aporteEmpleadorESSALUD.Porcentaje) ?? 0; decimal montoSCTR = (personal.RemBas * porcentajeSCTR) ?? 0; // decimal totalAporte = montoESSALUD + montoSCTR; PlanillaRemuneracion planillaPersona = new PlanillaRemuneracion(0, Periodo, personal.IdPersonal, personal.CodPer, personal.IdCargo ?? null, personal.CodCar, personal.IdFondoPen ?? null, personal.CodFon, personal.TipComAFP, personal.RemBas, personal.AsiFam, 0, 0, 0, personal.RieCaj, 0, 0, 0, fondoPensiones.PorONP, porcentajeApoObl, porcentajePriSeg, porcentajeComVar, 0 , 0, aporteEmpleadorESSALUD.Porcentaje, porcentajeSCTR, diasLaborables.DiasLab, personal.HorLab, null, null, null, null, null, null, null, null, null, "F", "N"); planillaPersona.VacacionesPeriodo = vacacionesPeriodo; planillaPersona.NombrePersona = personal.GetNombre(); remuneracion.Add(planillaPersona); } return(remuneracion); }