Beispiel #1
0
        public JsonResult obtenerEmisoresAdminFunciones(int dataContext, int SelectedUser)
        {
            StringBuilder optionSelect = new StringBuilder();

            if (SelectedUser <= 0)
            {
                return(Json(new { ok = true, selectInput = optionSelect.ToString() }, JsonRequestBehavior.AllowGet));
            }
            FacturaPoliContext db = null;

            if (dataContext == 1) //Certificacion
            {
                db = new FacturaPoliContext();
            }
            else if (dataContext == 2) //Produccion
            {
                db = new FacturaPoliContext(true);
            }
            else //No determinado, no nos interesa
            {
                return(Json(new { ok = true, selectInput = optionSelect.ToString() }, JsonRequestBehavior.AllowGet));
            }

            UsuarioModel objUser = db.DBUsuarios.SingleOrDefault(r => r.UsuarioModelID == SelectedUser);

            if (objUser == null)
            {
                return(Json(new { ok = true, selectInput = optionSelect.ToString() }, JsonRequestBehavior.AllowGet));
            }

            //Obtiene todos los emisores con los que el usuario especifico puede operar
            List <QuickEmisorModel> objEmisoresEnabled = new List <QuickEmisorModel>();
            bool HayUsuariosConFuncionalidades         = ModuloHelper.GetEmisoresHabilitados(objUser.IdentityID, out objEmisoresEnabled, db);
            //Obtiene todos los emisores del sistema
            List <QuickEmisorModel> objEmisoresAll = db.Emisores.ToList();
            //Utiliza ambos para obtener la diferencia entre ambas listas, y determinar los emisores con los que NO puede operar
            List <QuickEmisorModel> objEmisoresNoFuncion = objEmisoresAll.Except(objEmisoresEnabled).ToList();

            optionSelect.Append("<option value='0'>Empresa</option>");
            //test branch 2
            if (objEmisoresEnabled.Count > 0)
            {
                optionSelect.Append("<optgroup label='Con Acceso'>");
                foreach (QuickEmisorModel EmisorEnabled in objEmisoresEnabled)
                {
                    optionSelect.Append("<option value=\"" + EmisorEnabled.QuickEmisorModelID + "\">" + EmisorEnabled.RazonSocial + " (" + EmisorEnabled.RUTEmpresa + ")</option>");
                }
                optionSelect.Append("</optgroup>");
            }

            if (objEmisoresNoFuncion.Count > 0)
            {
                optionSelect.Append("<optgroup label='Sin Acceso'>");
                foreach (QuickEmisorModel EmisorDisabled in objEmisoresNoFuncion)
                {
                    optionSelect.Append("<option value=\"" + EmisorDisabled.QuickEmisorModelID + "\">" + EmisorDisabled.RazonSocial + " (" + EmisorDisabled.RUTEmpresa + ")</option>");
                }
                optionSelect.Append("</optgroup>");
            }

            return(Json(new
            {
                ok = true,
                selectInput = optionSelect.ToString()
            }, JsonRequestBehavior.AllowGet));
        }