示例#1
0
        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);
        }
示例#2
0
        public IEnumerable <PlanillaCTS> GenerarPlanillaCTS(int Anio, int Mes)
        {
            IPlanillaRemuneracionRepository planillaRemuneracionRepository = _DataRepositoryFactory.GetDataRepository <IPlanillaRemuneracionRepository>();
            IPersonalRepository             personalRepository             = _DataRepositoryFactory.GetDataRepository <IPersonalRepository>();
            string             Periodo   = Anio.ToString() + Utiles.CerosIzquierda((Mes - 1).ToString(), 2);
            List <PlanillaCTS> resultado = new List <PlanillaCTS>();

            var planillasPeriodo = planillaRemuneracionRepository.PlanillasEnPeriodoPorCTS(Mes, Anio);
            IEnumerable <Personal> personalActivo = personalRepository.GetPersonalActivo();

            foreach (Personal personal in personalActivo)
            {
                var     planillas           = planillasPeriodo.Where(o => o.IdPersonal == personal.IdPersonal && o.TipoPlan == "N");
                var     planillaGrati       = planillasPeriodo.Where(o => o.IdPersonal == personal.IdPersonal && o.TipoPlan == "G");
                var     UltimoIngresoValido = planillasPeriodo.Where(o => o.IdPersonal == personal.IdPersonal && o.TipoPlan == "N" && o.Periodo == Periodo).FirstOrDefault();
                decimal UltimoSueldo        = UltimoIngresoValido != null ? UltimoIngresoValido.TotIng ?? 0 : 0; // UltimoIngresoValido.TotIng ?? 0;
                int     nroPlanillas        = planillas != null?planillas.Count() : 0;

                int nroGratis = planillaGrati != null?planillaGrati.Count() : 0;

                decimal TotalIngresos = planillas.Sum(o => o.TotIng ?? 0);
                decimal TotalGrati    = planillaGrati.Sum(o => o.Gratif ?? 0);
                decimal SextoGrati    = Math.Round(TotalGrati / 6, 2, MidpointRounding.AwayFromZero);

                resultado.Add(new PlanillaCTS(personal.IdPersonal, personal.CodPer, personal.DNI, personal.GetNombre(), personal.FecNac ?? DateTime.Now, personal.FecIngreso ?? DateTime.Now, personal.NumCtaCTS,
                                              UltimoSueldo, SextoGrati, nroPlanillas, personal.EntidadCTS));
            }

            return(resultado);
        }
        public Personal AddPersonalComplete(Personal entity)
        {
            using (PlanillaContext entityContext = new PlanillaContext())
            {
                string nCodPer     = "P001";
                var    topPersonal = (from e in entityContext.PersonalSet
                                      orderby e.CodPer descending
                                      select e).FirstOrDefault();
                if (topPersonal != null)
                {
                    nCodPer = topPersonal.CodPer.Substring(1, topPersonal.CodPer.Length - 1);
                    int Cod = Convert.ToInt32(nCodPer) + 1;
                    nCodPer = 'P' + Utiles.CerosIzquierda(Cod.ToString(), 3);
                }

                entity.CodPer = nCodPer;

                return(Add(entity));
            }
        }
示例#4
0
        public FondoPensiones AddFondoPensionesComplete(FondoPensiones entity)
        {
            using (PlanillaContext entityContext = new PlanillaContext())
            {
                string nCodFon  = "F01";
                var    topFondo = (from e in entityContext.FondoPensionesSet
                                   orderby e.CodFon descending
                                   select e).FirstOrDefault();
                if (topFondo != null)
                {
                    nCodFon = topFondo.CodFon.Substring(1, topFondo.CodFon.Length - 1);
                    int Cod = Convert.ToInt32(nCodFon) + 1;
                    nCodFon = 'F' + Utiles.CerosIzquierda(Cod.ToString(), 2);
                }

                entity.CodFon = nCodFon;

                return(Add(entity));
            }
        }
        public Especialidad AddEspecialidadComplete(Especialidad entity)
        {
            using (PlanillaContext entityContext = new PlanillaContext())
            {
                string newCodEsp       = "E001";
                var    topEspecialidad = (from e in entityContext.EspecialidadSet
                                          orderby e.CodEsp descending
                                          select e).FirstOrDefault();
                if (topEspecialidad != null)
                {
                    newCodEsp = topEspecialidad.CodEsp.Substring(1, topEspecialidad.CodEsp.Length - 1);
                    int Cod = Convert.ToInt32(newCodEsp) + 1;
                    newCodEsp = 'E' + Utiles.CerosIzquierda(Cod.ToString(), 3);
                }

                entity.CodEsp = newCodEsp;

                return(Add(entity));
            }
        }
示例#6
0
        public TablaAnalisis AddTablaAnalisisComplete(TablaAnalisis entity)
        {
            using (PlanillaContext entityContext = new PlanillaContext())
            {
                string nCodAna = "A0001";
                var    topPro  = (from e in entityContext.TablaAnalisisSet
                                  orderby e.CodAna descending
                                  select e).FirstOrDefault();
                if (topPro != null)
                {
                    nCodAna = topPro.CodAna.Substring(1, topPro.CodAna.Length - 1);
                    int Cod = Convert.ToInt32(nCodAna) + 1;
                    nCodAna = 'P' + Utiles.CerosIzquierda(Cod.ToString(), 4);
                }

                entity.CodAna = nCodAna;

                return(Add(entity));
            }
        }
        public Procedimiento AddProcedimientoComplete(Procedimiento entity)
        {
            using (PlanillaContext entityContext = new PlanillaContext())
            {
                string nCodPro = "P001";
                var    topPro  = (from e in entityContext.ProcedimientoSet
                                  orderby e.CodPro descending
                                  select e).FirstOrDefault();
                if (topPro != null)
                {
                    nCodPro = topPro.CodPro.Substring(1, topPro.CodPro.Length - 1);
                    int Cod = Convert.ToInt32(nCodPro) + 1;
                    nCodPro = 'P' + Utiles.CerosIzquierda(Cod.ToString(), 3);
                }

                entity.CodPro = nCodPro;

                return(Add(entity));
            }
        }
示例#8
0
        public IEnumerable <PlanillaRemuneracion> GetPlanillaGratificacion(int Anio, int Mes)
        {
            IPlanillaRemuneracionRepository planillaRemuneracionRepository = _DataRepositoryFactory.GetDataRepository <IPlanillaRemuneracionRepository>();
            IPersonalRepository             personalRepository             = _DataRepositoryFactory.GetDataRepository <IPersonalRepository>();
            var planillaGrati = planillaRemuneracionRepository.GetPlanillaGratificacionSimple(Anio.ToString() + Utiles.CerosIzquierda(Mes.ToString(), 2));

            if (planillaGrati != null && planillaGrati.Count() > 0)
            {
                var personal = personalRepository.Get();
                foreach (PlanillaRemuneracion registro in planillaGrati)
                {
                    var persona = personal.Where(o => o.IdPersonal == registro.IdPersonal).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;
                }
                return(planillaGrati);
            }

            IEnumerable <PlanillaRemuneracion> planillaGratiNuevo = GenerarPlanillaGratificacion(Anio, Mes);

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

                return(GetPlanillaGratificacion(Anio, Mes));
            }

            return(planillaGrati);
        }
示例#9
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);
        }