예제 #1
0
        //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);
        }
예제 #2
0
        public IEnumerable <AporteEmpleador> GetAportesEmpleador()
        {
            IAporteEmpleadorRepository aporteEmpleadorRepository = _DataRepositoryFactory.GetDataRepository <IAporteEmpleadorRepository>();

            return(aporteEmpleadorRepository.Get());
        }