Пример #1
0
        public ActionResult CreateInfonavit(Empleado_Infonavit model)
        {
            Infonavit inf = new Infonavit();
            var       id  = inf.Create(model);

            return(Json(id, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public int Create(Empleado_Infonavit model, int idUser)
        {
            if (model.TipoCredito == 4)
            {
                model.UsarUMA     = true;
                model.TipoCredito = 4;
            }
            else
            {
                model.UsarUMA = false;
            }

            model.Status       = true;
            model.FechaReg     = DateTime.Now;
            model.IdUsuarioReg = idUser;

            using (var context = new RHEntities())
            {
                context.Empleado_Infonavit.Add(model);

                var status = context.SaveChanges();
                if (status > 0)
                {
                    Notificaciones.INFONAVIT(model, "Nuevo Crédito");
                    return(model.Id);
                }
                return(0);
            }
        }
Пример #3
0
        public ActionResult CreateInfonavit(Empleado_Infonavit model)
        {
            Infonavit inf       = new Infonavit();
            int       idUsuario = SessionHelpers.GetIdUsuario();
            var       id        = inf.Create(model, idUsuario);

            return(Json(id, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        public static void INFONAVIT(Empleado_Infonavit model, string movimiento)
        {
            Empleados emp      = new Empleados();
            var       contrato = emp.GetContratoByIdEmpleadoContrato(model.IdEmpleadoContrato);
            var       cd       = GetDatosPersonales(contrato.IdEmpleado);

            cd.No_Credito          = model.NumCredito;
            cd.Fecha_Inicio        = model.FechaInicio.ToString("dd/MM/yyyy");
            cd.Factor_de_Descuento = model.FactorDescuento;
            cd.Tipo_Credito        = Utils.GetNameOfEnum(typeof(TipoCreditoInfonavit), model.TipoCredito);
            cd.Tipo_de_Movimiento  = movimiento;
            string titulo = GetTitulo(cd);

            NotificacionesCommon.CreateNotification(titulo, DateTime.Now, SessionHelpers.GetIdUsuario(), TiposNotificacion.INFONAVIT, cd.IdCliente, cd, cd.IdSucursal, contrato.IdContrato, model.FechaInicio.ToString("dd-MM-yyyy"));
        }
Пример #5
0
        public ActionResult UpdateInfonavit(CalculoInfonavit model)
        {
            Empleado_Infonavit infonavit = new Empleado_Infonavit();

            infonavit.Id = model.IdInfonavit;
            infonavit.IdEmpleadoContrato = model.IdEmpleadoContrato;
            infonavit.NumCredito         = model.NumCredito;
            infonavit.TipoCredito        = model.TipoCredito;
            infonavit.FactorDescuento    = model.FactorDescuento;
            infonavit.Salario            = model.Salario;
            infonavit.FechaInicio        = model.FechaInicio;
            infonavit.FechaSuspension    = model.FechaSuspension;
            infonavit.Status             = model.Status;

            Infonavit inf      = new Infonavit();
            var       response = inf.Update(infonavit);

            return(Json(response, JsonRequestBehavior.AllowGet));
        }
Пример #6
0
        public int Create(Empleado_Infonavit model)
        {
            if (model.TipoCredito == 4)
            {
                model.UsarUMA     = true;
                model.TipoCredito = 4;
            }
            else
            {
                model.UsarUMA = false;
            }
            model.Status = true;
            ctx.Empleado_Infonavit.Add(model);
            var status = ctx.SaveChanges();

            if (status > 0)
            {
                Notificaciones.INFONAVIT(model, "Nuevo Crédito");
                return(model.Id);
            }
            return(0);
        }
Пример #7
0
        public int Update(Empleado_Infonavit newModel, int idUser)
        {
            using (var context = new RHEntities())
            {
                var title = "Actualización de Crédito";
                if (newModel.FechaSuspension != null)
                {
                    newModel.Status = false;
                    title           = "Suspensión de Crédito";
                }

                var old = context.Empleado_Infonavit.FirstOrDefault(x => x.Id == newModel.Id);

                if (old == null)
                {
                    return(0);
                }

                old.NumCredito      = newModel.NumCredito;
                old.TipoCredito     = newModel.TipoCredito;
                old.FactorDescuento = newModel.FactorDescuento;
                //old.Salario = newModel.Salario;
                old.FechaInicio     = newModel.FechaInicio;
                old.FechaSuspension = newModel.FechaSuspension;
                old.UsarUMA         = newModel.TipoCredito == 4;//VSM UMA
                old.Status          = newModel.Status;
                old.FechaMod        = DateTime.Now;
                old.IdUsuarioMod    = idUser;
                var status = context.SaveChanges();

                if (status > 0)
                {
                    Notificaciones.INFONAVIT(newModel, title);
                    return(newModel.Id);
                }
                return(0);
            }
        }
Пример #8
0
        public CalculoInfonavit calcularInfonavit(Empleado_Infonavit infonavit)
        {
            //Obtener el contrato relacionado al credito
            Empleado_Contrato itemContrato = new Empleado_Contrato();

            using (var context = new RHEntities())
            {
                itemContrato =
                    context.Empleado_Contrato.FirstOrDefault(x => x.IdContrato == infonavit.IdEmpleadoContrato);
            }

            CalculoInfonavit calculo = new CalculoInfonavit();

            calculo.FechaInicio        = infonavit.FechaInicio;
            calculo.IdEmpleadoContrato = infonavit.IdEmpleadoContrato;
            calculo.IdInfonavit        = infonavit.Id;
            calculo.NumCredito         = infonavit.NumCredito;
            calculo.Salario            = infonavit.Salario;

            if (itemContrato != null)
            {//si el contrato tiene nuevo sdi, tomará el valor de ese nuevo sdi
                calculo.Salario = itemContrato.SDI;
            }

            calculo.FactorDescuento = infonavit.FactorDescuento;
            calculo.FechaSuspension = infonavit.FechaSuspension;
            calculo.Status          = infonavit.Status;
            calculo.TipoCredito     = infonavit.TipoCredito;

            if (calculo.FechaInicio < DateTime.Today)
            {
                calculo.FechaAplicada = DateTime.Today;
            }
            else
            {
                calculo.FechaAplicada = calculo.FechaInicio;
            }

            var numBimestre = Utils.GetBimestre(calculo.FechaAplicada.Value.Month);

            calculo.DiasBimestre = Utils.GetDiasDelBimestre(calculo.FechaAplicada.Value.Year, numBimestre);

            decimal salarioCalculo = 0;
            var     zonaSalario    = GetZonaSalario();

            switch (infonavit.TipoCredito)
            {
            case 1:     //Cuota Fijam
                calculo.DescuentoBimestral = calcularCuotaFija(calculo.FactorDescuento);
                calculo.DescuentoDiario    = calculo.DescuentoBimestral / calculo.DiasBimestre;
                calculo.TipoCredito        = infonavit.TipoCredito;
                break;

            case 2:     // Porcentaje//tomar el sdi del contrato
                calculo.DescuentoDiario    = calcularPorcentaje(calculo.FactorDescuento, calculo.Salario.Value);
                calculo.DescuentoBimestral = (calculo.DescuentoDiario * calculo.DiasBimestre) + 15;
                calculo.TipoCredito        = infonavit.TipoCredito;
                break;

            case 3:     //VSM

                if (infonavit.UsarUMA)
                {
                    salarioCalculo = zonaSalario.UMA;
                }
                else
                {
                    salarioCalculo = zonaSalario.SMG;
                }

                //calculo.Salario = sm != calculo.Salario ? sm : calculo.Salario;
                calculo.Salario = salarioCalculo != calculo.Salario ? salarioCalculo : calculo.Salario;

                calculo.DescuentoBimestral = calcularVSM(calculo.FactorDescuento, calculo.Salario.Value);
                calculo.DescuentoDiario    = calculo.DescuentoBimestral / calculo.DiasBimestre;
                calculo.TipoCredito        = infonavit.TipoCredito;
                break;

            case 4:     //VSM



                if (infonavit.UsarUMA)
                {
                    salarioCalculo = zonaSalario.UMA;
                }
                else
                {
                    salarioCalculo = zonaSalario.SMG;
                }

                //calculo.Salario = sm != calculo.Salario ? sm : calculo.Salario;
                calculo.Salario = salarioCalculo != calculo.Salario ? salarioCalculo : calculo.Salario;

                calculo.DescuentoBimestral = calcularVSM(calculo.FactorDescuento, calculo.Salario.Value);
                calculo.DescuentoDiario    = calculo.DescuentoBimestral / calculo.DiasBimestre;
                calculo.TipoCredito        = infonavit.TipoCredito;
                break;

            default:
                break;
            }
            var iniBim = new DateTime(calculo.FechaAplicada.Value.Year, (numBimestre * 2) - 1, 1);
            var finBim = new DateTime(calculo.FechaAplicada.Value.Year, (numBimestre * 2), 1);

            calculo.BimestreAplicado = iniBim.ToString("MMMM") + " - " + finBim.ToString("MMMM");

            calculo.DescuentoBimestral = calculo.DescuentoBimestral; //Math.Round(calculo.DescuentoBimestral, 2);
            calculo.DescuentoDiario    = calculo.DescuentoDiario;    //Math.Round(calculo.DescuentoDiario, 2);
            return(calculo);
        }
Пример #9
0
        public CalculoInfonavit calcularInfonavit(Empleado_Infonavit infonavit)
        {
            CalculoInfonavit calculo = new CalculoInfonavit();

            calculo.FechaInicio        = infonavit.FechaInicio;
            calculo.IdEmpleadoContrato = infonavit.IdEmpleadoContrato;
            calculo.IdInfonavit        = infonavit.Id;
            calculo.NumCredito         = infonavit.NumCredito;
            calculo.Salario            = infonavit.Salario;
            calculo.FactorDescuento    = infonavit.FactorDescuento;
            calculo.FechaSuspension    = infonavit.FechaSuspension;
            calculo.Status             = infonavit.Status;
            calculo.TipoCredito        = infonavit.TipoCredito;

            if (calculo.FechaInicio < DateTime.Today)
            {
                calculo.FechaAplicada = DateTime.Today;
            }
            else
            {
                calculo.FechaAplicada = calculo.FechaInicio;
            }

            var numBimestre = Utils.GetBimestre(calculo.FechaAplicada.Value.Month);

            calculo.DiasBimestre = Utils.GetDiasDelBimestre(calculo.FechaAplicada.Value.Year, numBimestre);

            decimal salarioCalculo = 0;
            var     zonaSalario    = GetZonaSalario();

            switch (infonavit.TipoCredito)
            {
            case 1:     //Cuota Fija
                calculo.DescuentoBimestral = calcularCuotaFija(calculo.FactorDescuento);
                calculo.DescuentoDiario    = calculo.DescuentoBimestral / calculo.DiasBimestre;
                calculo.TipoCredito        = infonavit.TipoCredito;
                break;

            case 2:     // Porcentaje
                calculo.DescuentoDiario    = calcularPorcentaje(calculo.FactorDescuento, calculo.Salario.Value);
                calculo.DescuentoBimestral = (calculo.DescuentoDiario * calculo.DiasBimestre) + 15;
                calculo.TipoCredito        = infonavit.TipoCredito;
                break;

            case 3:     //VSM

                if (infonavit.UsarUMA)
                {
                    salarioCalculo = zonaSalario.UMA;
                }
                else
                {
                    salarioCalculo = zonaSalario.SMG;
                }

                //calculo.Salario = sm != calculo.Salario ? sm : calculo.Salario;
                calculo.Salario = salarioCalculo != calculo.Salario ? salarioCalculo : calculo.Salario;

                calculo.DescuentoBimestral = calcularVSM(calculo.FactorDescuento, calculo.Salario.Value);
                calculo.DescuentoDiario    = calculo.DescuentoBimestral / calculo.DiasBimestre;
                calculo.TipoCredito        = infonavit.TipoCredito;
                break;

            case 4:     //VSM



                if (infonavit.UsarUMA)
                {
                    salarioCalculo = zonaSalario.UMA;
                }
                else
                {
                    salarioCalculo = zonaSalario.SMG;
                }

                //calculo.Salario = sm != calculo.Salario ? sm : calculo.Salario;
                calculo.Salario = salarioCalculo != calculo.Salario ? salarioCalculo : calculo.Salario;

                calculo.DescuentoBimestral = calcularVSM(calculo.FactorDescuento, calculo.Salario.Value);
                calculo.DescuentoDiario    = calculo.DescuentoBimestral / calculo.DiasBimestre;
                calculo.TipoCredito        = infonavit.TipoCredito;
                break;

            default:
                break;
            }
            var iniBim = new DateTime(calculo.FechaAplicada.Value.Year, (numBimestre * 2) - 1, 1);
            var finBim = new DateTime(calculo.FechaAplicada.Value.Year, (numBimestre * 2), 1);

            calculo.BimestreAplicado = iniBim.ToString("MMMM") + " - " + finBim.ToString("MMMM");

            calculo.DescuentoBimestral = calculo.DescuentoBimestral; //Math.Round(calculo.DescuentoBimestral, 2);
            calculo.DescuentoDiario    = calculo.DescuentoDiario;    //Math.Round(calculo.DescuentoDiario, 2);
            return(calculo);
        }