public ActionResult GetViewCampos(int GrupoEdicion)
        {
            List <ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania> Parametros = new List <ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania>();

            ADESCOMBUSINESS.Areas.Configuracion.Methods.ConfiguracionSistemaBusiness ConfiguracionSistemaProxy = new ADESCOMBUSINESS.Areas.Configuracion.Methods.ConfiguracionSistemaBusiness((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"]);
            Parametros            = ConfiguracionSistemaProxy.GetParamByGrupoEdicion(GrupoEdicion);
            @ViewBag.GrupoEdicion = GrupoEdicion;

            if (GrupoEdicion == 2)
            {
                ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaNotifCompuesto ConfigNotif = new ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaNotifCompuesto();

                //Optimización
                List <ADESCOMBUSINESS.Areas.Configuracion.Models.SIS_TipoNotificacion> Elementos = new List <ADESCOMBUSINESS.Areas.Configuracion.Models.SIS_TipoNotificacion>();
                Elementos = ADESCOMBUSINESS.Areas.Configuracion.Methods.SIS_TipoNotificacionBusiness.GetAll((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"]);

                ConfigNotif.EmailNotifications    = GetTemplates(Elementos.Where(x => x.TNO_AplicaEmail == true).ToList(), Convert.ToInt32(ADESCOMBUSINESS.GlobalBusiness.ObtConfigParam((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"], "EmailNotifications")));
                ConfigNotif.BuzonAppNotifications = GetTemplates(Elementos.Where(x => x.TNO_AplicaBuzonApp == true).ToList(), Convert.ToInt32(ADESCOMBUSINESS.GlobalBusiness.ObtConfigParam((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"], "AppNotifications")));
                ConfigNotif.PushNotifications     = GetTemplates(Elementos.Where(x => x.TNO_AplicaPushNotif == true).ToList(), Convert.ToInt32(ADESCOMBUSINESS.GlobalBusiness.ObtConfigParam((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"], "PushNotifications")));
                //GHO No es necesario, no se van a manajar por compania, se manajara un set en general
                //ConfigNotif.Parametros = Parametros;

                return(View("GetViewNotificaciones", ConfigNotif));
            }
            else
            {
                int cta = Convert.ToInt32(ADESCOMBUSINESS.GlobalBusiness.ObtConfigParam((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"], "CuentaCuotas"));
                //ViewBag.Cuenta_ID = new SelectList(ADESCOMBUSINESS.Areas.Contabilidad.Methods.CON_CuentasBusiness.GetCuentasEmpresa((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"], cta), cta);
                ViewBag.Cuenta_ID = new SelectList(GetCuentas(0), "Cuenta_ID", "CTA_Alias", cta);

                String codigo = ConfiguracionSistemaProxy.GetCodigoActivacion();
                ViewBag.CodigoActivacion = codigo;

                return(View("GetViewCampos", Parametros));
            }
        }
        public ActionResult SetViewCampos(FormCollection Form)
        {
            int    Cuenta_ID        = 0;
            String CodigoActivacion = String.Empty;
            String Error            = String.Empty;
            int    GrupoEdicion     = Convert.ToInt32(Form["GrupoEdicion"]);

            @ViewBag.GrupoEdicion = GrupoEdicion;

            List <ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania> Parametros       = new List <ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania>();
            List <ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania> ParametrosUpdate = new List <ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania>();

            ADESCOMBUSINESS.Areas.Configuracion.Methods.ConfiguracionSistemaBusiness ConfiguracionSistema = new ADESCOMBUSINESS.Areas.Configuracion.Methods.ConfiguracionSistemaBusiness((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"]);
            Parametros = ConfiguracionSistema.GetParamByGrupoEdicion(GrupoEdicion);

            if (String.IsNullOrEmpty(Form["Cuenta_ID"]) || Form["Cuenta_ID"] == "0")
            {
                Error = "La cuenta receptora de pagos es requerida";
                ModelState.AddModelError("Cuenta_ID", Error);
            }

            if (String.IsNullOrEmpty(Form["CodigoActivacion"]))
            {
                Error = "El código de activación de residentes es requerido";
                ModelState.AddModelError("CodigoActivacion", Error);
            }

            try { Cuenta_ID = Convert.ToInt32(Form["Cuenta_ID"]); }
            catch { Error = "La cuenta receptora de pagos es requerida"; ModelState.AddModelError("Cuenta_ID", Error); }

            CodigoActivacion = Form["CodigoActivacion"];

            foreach (ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania parametro in Parametros)
            {
                if (parametro.CPA_UsuarioModif == true)
                {
                    switch (parametro.TipoDato_ID)
                    {
                    case 2:     //Entero
                        parametro.CPA_Valor = Convert.ToInt32(Form[parametro.TCP_Nombre]);
                        break;

                    case 3:     //Decimal
                        parametro.CPA_Valor = Convert.ToDecimal(Form[parametro.TCP_Nombre]);
                        break;

                    case 4:     //Fecha
                        parametro.CPA_Valor = Convert.ToDateTime(Form[parametro.TCP_Nombre]);
                        break;

                    case 5:     //SI/NO
                        parametro.CPA_Valor = Convert.ToBoolean(Form[parametro.TCP_Nombre]);
                        break;

                        /* default:
                         *   parametro.CPA_Valor = Form[parametro.TCP_Nombre].ToString();
                         *   break;*/
                    }

                    //Ignora los catálogos
                    if (parametro.TipoDato_ID <= 5)
                    {
                        ParametrosUpdate.Add(parametro);
                    }
                }
            }

            //Cuenta receptora de pagos
            ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania paramCuenta = new ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania();
            paramCuenta.TCP_Nombre       = "CuentaCuotas";
            paramCuenta.CPA_Valor        = Cuenta_ID;
            paramCuenta.CPA_UsuarioModif = true;
            ParametrosUpdate.Add(paramCuenta);

            if (ModelState.IsValid)
            {
                ParametrosUpdate = ConfiguracionSistema.SetParamByGrupoEdicion(ParametrosUpdate);
                ConfiguracionSistema.SetCodigoActivacion(CodigoActivacion);

                foreach (ADESCOMBUSINESS.Areas.Configuracion.Models.ConfiguracionSistemaParamCompania parametro in ParametrosUpdate)
                {
                    if (parametro.Error)
                    {
                        ModelState.AddModelError(parametro.TCP_Nombre, parametro.ModelError);
                        Error = parametro.ModelError;
                    }
                }
                if (ModelState.IsValid)
                {
                    ViewBag.Error = "OK";
                }
                else
                {
                    ViewBag.Error = Error;
                }
            }
            else
            {
                ViewBag.Error = Error;
            }

            int cta = Convert.ToInt32(ADESCOMBUSINESS.GlobalBusiness.ObtConfigParam((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"], "CuentaCuotas"));

            ViewBag.Cuenta_ID = new SelectList(ADESCOMBUSINESS.Areas.Contabilidad.Methods.CON_CuentasBusiness.GetCuentasEmpresa((ADESCOMBUSINESS.DataAccess.Models.LoginRS)Session["InfoUser"], cta), cta);

            return(View("GetViewCampos", Parametros));
        }