public JsonResult PesquisarAcessoDashboard(string loginUsuario)
        {
            if (this.Logado != ((char)Enums.Logado.Sim).ToString())
            {
                return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
            }

            try
            {
                var N9999USUBusiness = new N9999USUBusiness();
                // Busca código do usuário
                var dadosUsuario = N9999USUBusiness.ListaDadosUsuarioPorLogin(this.LoginUsuario);

                List <N0204DUSU>  ListaN0204DUSU    = new List <N0204DUSU>();
                N0204DUSUBusiness N0204DUSUBusiness = new N0204DUSUBusiness();
                if (dadosUsuario != null)
                {
                    ListaN0204DUSU = N0204DUSUBusiness.PesquisarAcessoDashBoard(dadosUsuario.CODUSU);
                }
                return(this.Json(new { ListaN0204DUSU }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                this.Session["ExceptionErro"] = ex;
                return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult QuantidadeProtocolosPorAreaMeses(int dias, int situacao)
        {
            if (this.Logado != ((char)Enums.Logado.Sim).ToString())
            {
                return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
            }

            try
            {
                var N9999USUBusiness = new N9999USUBusiness();
                // Busca código do usuário
                var dadosUsuario = N9999USUBusiness.ListaDadosUsuarioPorLogin(this.LoginUsuario);

                List <N0204ORI>  ListaN0204ORI    = new List <N0204ORI>();
                N0203REGBusiness N0203ORIBusiness = new N0203REGBusiness();
                if (dadosUsuario != null)
                {
                    ListaN0204ORI = N0203ORIBusiness.quantidadeProtocolosPorAreaMeses(dias, situacao);
                }
                return(this.Json(new { ListaN0204ORI }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                this.Session["ExceptionErro"] = ex;
                return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 3
0
 public JsonResult PesquisaUsuarioAprovadorXOperacaoFat(string loginUsuario, long?tipoAtendimento)
 {
     if (this.Logado != ((char)Enums.Logado.Sim).ToString())
     {
         return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
     }
     try
     {
         loginUsuario = loginUsuario.ToLower();
         var N9999USUBusiness = new N9999USUBusiness();
         // Busca código do usuário
         var dadosUsuario = N9999USUBusiness.ListaDadosUsuarioPorLogin(loginUsuario);
         if (dadosUsuario == null)
         {
             // Se usuário não cadastrado no NWORKFLOW, cadastra o mesmo.
             N9999USUBusiness.CadastrarUsuario(loginUsuario);
             // Busca código do usuário cadastrado
             dadosUsuario = N9999USUBusiness.ListaDadosUsuarioPorLogin(loginUsuario);
         }
         var N0203UOFBusiness = new N0203UOFBusiness();
         var listaOperacoes   = N0203UOFBusiness.PesquisaUsuarioAprovadorXOperacaoFat(dadosUsuario.CODUSU, tipoAtendimento);
         return(this.Json(new { listaOperacoes }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         this.Session["ExceptionErro"] = ex;
         return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
     }
 }
Ejemplo n.º 4
0
        public List <UsuarioADModel> ListaUsuariosAprovadores(long codigoOrigem, long codigoAtedimento)
        {
            // Pegar Codigo dos Usuarios Aprovadores
            List <N0203UAP>  itensUsuarios    = new List <N0203UAP>();
            N0203UAPBusiness N0203UAPBusiness = new N0203UAPBusiness();

            itensUsuarios = N0203UAPBusiness.PesquisarUsuariosAprovadores(codigoOrigem, codigoAtedimento);

            // Pegar Informacoes de Login Usuario Aprovadores
            List <N9999USU>  itensLoginUsuario = new List <N9999USU>();
            N9999USUBusiness N9999USUBusiness  = new N9999USUBusiness();

            foreach (var item in itensUsuarios)
            {
                itensLoginUsuario.Add(N9999USUBusiness.ListaDadosUsuarioPorCodigo(item.CODUSU));
            }

            ActiveDirectoryBusiness AD        = new ActiveDirectoryBusiness();
            List <UsuarioADModel>   usuarioAD = new List <UsuarioADModel>();

            foreach (var itens in itensLoginUsuario)
            {
                usuarioAD.Add(AD.ListaDadosUsuarioAD(itens.LOGIN));
            }
            return(usuarioAD);
        }
Ejemplo n.º 5
0
 public JsonResult GravarUsuarioAprovadorXOrigemOcorrencia(string tipAtendimento, string loginUsuario, string listaOrigemOcorrencia)
 {
     if (this.Logado != ((char)Enums.Logado.Sim).ToString())
     {
         return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
     }
     try
     {
         string           msgRetorno       = "Lista de origem da ocorrência cadastrada ao usuário aprovador selecionado com sucesso!";
         N0203UAPBusiness N0203UAPBusiness = new N0203UAPBusiness();
         var      listaOrigensUsuario      = new List <N0203UAP>();
         N0203UAP itemLista        = new N0203UAP();
         var      N9999USUBusiness = new N9999USUBusiness();
         // Busca código do usuário
         var codUsu    = N9999USUBusiness.ListaDadosUsuarioPorLogin(loginUsuario.ToLower()).CODUSU;
         var tipoAtend = Enums.TipoAtendimento.DevolucaoMercadorias;
         if (int.Parse(tipAtendimento) == (int)Enums.TipoAtendimento.TrocaMercadorias)
         {
             tipoAtend = Enums.TipoAtendimento.TrocaMercadorias;
         }
         if (!string.IsNullOrEmpty(listaOrigemOcorrencia))
         {
             string[] lista = listaOrigemOcorrencia.Split('-');
             for (int i = 0; i < lista.Length; i++)
             {
                 itemLista = new N0203UAP
                 {
                     CODATD = (long)tipoAtend,
                     CODUSU = codUsu,
                     CODORI = long.Parse(lista[i])
                 };
                 listaOrigensUsuario.Add(itemLista);
             }
         }
         else
         {
             msgRetorno = "A associação da lista de origem da ocorrência foi removida do usuário aprovador selecionado com sucesso!";
         }
         var sucesso = true;
         if (!N0203UAPBusiness.GravarUsuarioAprovadorXOrigemOcorrencia(codUsu, listaOrigensUsuario, tipoAtend))
         {
             sucesso    = false;
             msgRetorno = "Não foi possível cadastrar a lista de origem da ocorrência ao usuário aprovador selecionado pois o mesmo não possui cadastro de usuário no sistema de protocolos.";
         }
         return(this.Json(new { msgRetorno, GravadoSucesso = sucesso }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         this.Session["ExceptionErro"] = ex;
         return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
     }
 }
Ejemplo n.º 6
0
 public JsonResult GravarUsuarioAprovadorXOperacaoFat(string tipAtendimento, string loginUsuario, string listaOperacoes)
 {
     if (this.Logado != ((char)Enums.Logado.Sim).ToString())
     {
         return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
     }
     try
     {
         string msgRetorno            = "Lista de operações cadastrada ao usuário aprovador selecionado com sucesso!";
         var    N0203UOFBusiness      = new N0203UOFBusiness();
         var    listaOperacoesUsuario = new List <N0203UOF>();
         var    itemLista             = new N0203UOF();
         var    N9999USUBusiness      = new N9999USUBusiness();
         // Busca código do usuário
         var  codUsu          = N9999USUBusiness.ListaDadosUsuarioPorLogin(loginUsuario.ToLower()).CODUSU;
         var  tipAtd          = long.Parse(tipAtendimento);
         long tipoAtendimento = long.Parse(tipAtendimento);
         if (!string.IsNullOrEmpty(listaOperacoes))
         {
             string[] lista = listaOperacoes.Split('-');
             for (int i = 0; i < lista.Length; i++)
             {
                 itemLista = new N0203UOF
                 {
                     CODATD = tipAtd,
                     CODUSU = codUsu,
                     CODOPE = long.Parse(lista[i])
                 };
                 listaOperacoesUsuario.Add(itemLista);
             }
         }
         else
         {
             msgRetorno = "A associação da lista de operações foi removida do usuário aprovador selecionado com sucesso!";
         }
         var sucesso = true;
         if (!N0203UOFBusiness.GravarUsuarioAprovadorXOperacaoFat(codUsu, listaOperacoesUsuario, tipoAtendimento))
         {
             sucesso    = false;
             msgRetorno = "Não foi possível cadastrar a lista de operações ao usuário aprovador selecionado pois o mesmo não possui cadastro de usuário no sistema de protocolos.";
         }
         return(this.Json(new { msgRetorno, GravadoSucesso = sucesso }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         this.Session["ExceptionErro"] = ex;
         return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
     }
 }
Ejemplo n.º 7
0
 public JsonResult ReprovarRegistrosOcorrenciaNivel1(string codigoRegistro, string observacaoReprovacao)
 {
     if (this.Logado != ((char)Enums.Logado.Sim).ToString())
     {
         return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
     }
     try
     {
         N0203REGBusiness N0203REGBusiness = new N0203REGBusiness();
         N9999USU         N9999USU         = new N9999USU();
         N9999USUBusiness N9999USUBusiness = new N9999USUBusiness();
         UsuarioADModel   usuarioAD        = new UsuarioADModel();
         var ActiveDirectoryBusiness       = new ActiveDirectoryBusiness();
         var dadosProtocolo = N0203REGBusiness.PesquisaRegistroOcorrencia(long.Parse(codigoRegistro));
         if (dadosProtocolo != null)
         {
             var tipoAtend = Enums.TipoAtendimento.DevolucaoMercadorias;
             if (dadosProtocolo.TIPATE == (int)Enums.TipoAtendimento.TrocaMercadorias)
             {
                 tipoAtend = Enums.TipoAtendimento.TrocaMercadorias;
             }
             N9999USU  = N9999USUBusiness.ListaDadosUsuarioPorCodigo(Convert.ToInt64(dadosProtocolo.USUGER));
             usuarioAD = ActiveDirectoryBusiness.ListaDadosUsuarioAD(N9999USU.LOGIN);
             bool ReprovadoSucesso = N0203REGBusiness.ReprovarRegistrosOcorrenciaNivel1(long.Parse(codigoRegistro), long.Parse(this.CodigoUsuarioLogado), observacaoReprovacao);
             this.MontarEmailProtocoloReprovado(codigoRegistro, observacaoReprovacao, tipoAtend, usuarioAD.Email);
             return(this.Json(new { ReprovadoSucesso }, JsonRequestBehavior.AllowGet));
         }
         else
         {
             var msgRetornoSapiens = string.Empty;
             msgRetornoSapiens = "Registro de devolução Nº " + codigoRegistro + " não encontrado.";
             return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
         }
     }
     catch (Exception ex)
     {
         this.Session["ExceptionErro"] = ex;
         return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
     }
 }
        public JsonResult GravarPermissaoDashUsuario(string loginUsuario, string itensCodigo)
        {
            if (this.Logado != ((char)Enums.Logado.Sim).ToString())
            {
                return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
            }

            try
            {
                var N9999USUBusiness = new N9999USUBusiness();
                // Busca código do usuário
                var dadosUsuario = N9999USUBusiness.ListaDadosUsuarioPorLogin(loginUsuario);

                string[]          lista             = itensCodigo.Split('-');
                N0204DUSUBusiness N0204DUSUBusiness = new N0204DUSUBusiness();
                N0204DUSUBusiness.GravarPermissaoDashUsuario(dadosUsuario.CODUSU, lista);
                return(this.Json(new { GravadoSucesso = true }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                this.Session["ExceptionErro"] = ex;
                return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 9
0
        public ActionResult Login(LoginViewModel modelo)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    this.InicializaView();

                    modelo.UserName = modelo.UserName.ToLower();
                    if (Membership.ValidateUser(modelo.UserName, modelo.Password))
                    {
                        var N9999USUBusiness = new N9999USUBusiness();
                        // Busca código do usuário

                        dadosUsuario         = N9999USUBusiness.ListaDadosUsuarioPorLogin(modelo.UserName);
                        modelo.versaoSistema = "Produção";

                        if (dadosUsuario != null)
                        {
                            var n9999MENBusiness = new N9999MENBusiness();
                            var n9999SIS         = new N9999SIS();
                            var lista            = n9999MENBusiness.MontarMenu(dadosUsuario.CODUSU, (int)Enums.Sistema.NWORKFLOW);

                            N0203REGBusiness N0203REGBusiness = new N0203REGBusiness();
                            if (lista.Count > 0)
                            {
                                this.Logado              = ((char)Enums.Logado.Sim).ToString();
                                this.PermissoesDeAcesso  = lista;
                                this.TramitesNotificao   = ListaN0203TRAPesquisaa;
                                this.ProtocolosPendentes = listaAprovacao;
                                var ActiveDirectoryBusiness = new ActiveDirectoryBusiness();
                                this.NomeUsuarioLogado   = Abreviar(ActiveDirectoryBusiness.ListaDadosUsuarioAD(modelo.UserName).Nome, true);
                                this.LoginUsuario        = modelo.UserName;
                                this.CodigoUsuarioLogado = dadosUsuario.CODUSU.ToString();
                                this.Empresa             = "NUTRIPLAST INDÚSTRIA E COMÉRCIO LTDA";
                                this.EmpresaFilial       = "CASCAVEL";
                                //this.EmpresaFilialArmazem = "CENTRO DE DISTRIBUIÇÃO";
                                this.NomeAbreviadoEmpresa = "NUTRIPLAN";
                                this.CnpjEmpresa          = "78.575.511/0001-29";
                                this.EnderecoEmpresa      = "Av. Das Agroindústrias, 1829 - Distrito Industrial Domiciano Theobaldo Bresolin";
                                this.CepEmpresa           = "85818-560";

                                return(this.RedirectToAction("InformacoesProtocolo", "InformacoesProtocolo"));
                            }
                            else
                            {
                                ModelState.AddModelError("", "Usuário não possuí acesso ao Sistema de Ocorrência. Favor abrir chamado solicitando acesso.");
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("", "Usuário não possuí acesso ao Sistema de Ocorrência. Favor abrir chamado solicitando acesso.");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Usuário ou senha inválida.");
                    }
                }

                return(this.View("Login", this.loginViewModel));
            }
            catch (Exception ex)
            {
                this.Session["ExceptionErro"] = ex;
                return(this.RedirectToAction("ErroException", "Erro"));
            }
        }
Ejemplo n.º 10
0
        public JsonResult AprovarRegistrosOcorrenciaNivel1(string codigoRegistro, string observacaoAprovacao)
        {
            if (this.Logado != ((char)Enums.Logado.Sim).ToString())
            {
                return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
            }
            try
            {
                N0203REGBusiness N0203REGBusiness = new N0203REGBusiness();
                N9999USU         N9999USU         = new N9999USU();
                N9999USUBusiness N9999USUBusiness = new N9999USUBusiness();
                UsuarioADModel   usuarioAD        = new UsuarioADModel();
                var ActiveDirectoryBusiness       = new ActiveDirectoryBusiness();
                var dadosProtocolo = N0203REGBusiness.PesquisaRegistroOcorrencia(long.Parse(codigoRegistro));
                if (dadosProtocolo != null)
                {
                    var tipoAtend = Enums.TipoAtendimento.DevolucaoMercadorias;
                    if (dadosProtocolo.TIPATE == (int)Enums.TipoAtendimento.TrocaMercadorias)
                    {
                        tipoAtend = Enums.TipoAtendimento.TrocaMercadorias;
                    }
                    N9999USU  = N9999USUBusiness.ListaDadosUsuarioPorCodigo(Convert.ToInt64(dadosProtocolo.USUGER));
                    usuarioAD = ActiveDirectoryBusiness.ListaDadosUsuarioAD(N9999USU.LOGIN);
                    bool AprovadoSucesso = N0203REGBusiness.AprovarRegistrosOcorrenciaNivel1(long.Parse(codigoRegistro), long.Parse(this.CodigoUsuarioLogado), observacaoAprovacao);
                    //#if DEBUG
                    //System.IO.File.WriteAllText(@"C:\Projetos_Desenvolvimento\Arquivo.txt", usuarioAD.Email);
                    //#endif

                    this.MontarEmailProtocoloAprovado(codigoRegistro, "", tipoAtend, usuarioAD.Email);

                    if (AprovadoSucesso)
                    {
                        E140NFVBusiness E140NFVBusiness = new E140NFVBusiness();

                        var notas = (from a in dadosProtocolo.N0203IPV
                                     group new { a } by new { a.CODFIL, a.NUMNFV } into grupo
                                     select new
                        {
                            CodFilial = grupo.Key.CODFIL,
                            NumeroNota = grupo.Key.NUMNFV,
                            ValorBruto = decimal.Round(decimal.Parse(grupo.Sum(v => v.a.QTDDEV * v.a.PREUNI).ToString()), 2, MidpointRounding.AwayFromZero),
                            ValorIpi = decimal.Round(decimal.Parse(grupo.Sum(v => (v.a.QTDDEV * v.a.PREUNI) * float.Parse(((v.a.PERIPI / 100).ToString()))).ToString()), 2, MidpointRounding.AwayFromZero),
                        }).ToList();


                        string notasEmail = string.Empty;
                        string cliente    = string.Empty;

                        if (notas.Count > 0)
                        {
                            E085CLIBusiness E085CLIBusiness = new E085CLIBusiness();

                            var codCli      = Convert.ToInt64(dadosProtocolo.CODCLI);
                            var nomeCliente = E085CLIBusiness.PesquisaClientes(codCli).FirstOrDefault().NomeFantasia;
                            cliente = "Cliente: " + codCli + " - " + nomeCliente;

                            foreach (var item in notas)
                            {
                                // Nota Tipo Boleto
                                if (E140NFVBusiness.PesquisarTipoPagamentoNota(item.CodFilial, item.NumeroNota) == 2)
                                {
                                    var valorNota        = E140NFVBusiness.PesquisarDadosNota(item.NumeroNota, item.CodFilial, null, "3").FirstOrDefault().ValorLiquido;
                                    var valorFatNotaMask = Convert.ToDouble(valorNota).ToString("###,###,##0.00");
                                    var valorNotaDev     = Convert.ToDouble(item.ValorBruto + item.ValorIpi).ToString("###,###,##0.00");

                                    var d = valorNotaDev.ToString().Split(',');
                                    var x = d[1].Substring(0, 2).PadRight(2, '0');
                                    var valorDevNotaMask = d[0] + "," + x;

                                    double valorNotaD    = Convert.ToDouble(valorFatNotaMask);
                                    double valorNotaDevD = Convert.ToDouble(valorNotaDev);
                                    var    valorReceber  = Convert.ToDouble(valorNotaD - valorNotaDevD).ToString("###,###,##0.00");

                                    notasEmail = notasEmail + "Número da Nota: " + item.NumeroNota.ToString() + " - Filial: " + item.CodFilial.ToString() + " - Val. Líquido: " + valorFatNotaMask + " - Val. Líquido Devolução: " + valorDevNotaMask + " - Valor a Receber: " + valorReceber + "&";
                                }
                            }
                        }

                        if (dadosProtocolo.TIPATE == (int)Enums.TipoAtendimento.TrocaMercadorias)
                        {
                            tipoAtend = Enums.TipoAtendimento.TrocaMercadorias;
                        }

                        if (!string.IsNullOrEmpty(notasEmail))
                        {
                            this.MontarEmailFinanceiroNotasBoleto(dadosProtocolo.NUMREG.ToString(), notasEmail, cliente, tipoAtend);
                        }
                    }
                    return(this.Json(new { AprovadoSucesso }, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    var msgRetornoSapiens = string.Empty;
                    msgRetornoSapiens = "Registro de devolução Nº " + codigoRegistro + " não encontrado.";
                    return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                this.Session["ExceptionErro"] = ex;
                return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult Permissao(PermissaoAcessoViewModel modelo)
        {
            if (this.Logado != ((char)Enums.Logado.Sim).ToString())
            {
                return(this.RedirectToAction("Login", "Login"));
            }

            try
            {
                this.InicializaView();

                permissaoAcesso     = modelo;
                modelo.LoginUsuario = modelo.LoginUsuario.ToLower();

                var N9999USUBusiness = new N9999USUBusiness();

                // Busca código do usuário
                var dadosUsuario = N9999USUBusiness.ListaDadosUsuarioPorLogin(modelo.LoginUsuario);

                if (dadosUsuario == null)
                {
                    // Se usuário não cadastrado no NWORKFLOW, cadastra o mesmo.
                    N9999USUBusiness.CadastrarUsuario(modelo.LoginUsuario);

                    // Busca código do usuário cadastrado
                    dadosUsuario = N9999USUBusiness.ListaDadosUsuarioPorLogin(modelo.LoginUsuario);
                }

                var n9999MENBusiness = new N9999MENBusiness();

                // Lista todos os itens do menu, telas e operações que o usuário pesquisado já possuí algum tipo de operação
                var lista = n9999MENBusiness.MontarTreeViewPermissoes(dadosUsuario.CODUSU, (int)Enums.Sistema.NWORKFLOW);

                // Id dos itens da treeview que o usuário já possuí acesso para "checkagem" após o load da treeview;
                foreach (MenuModel item in lista.Where(p => p.PERMEN == ((char)Enums.Operacao.Pesquisar).ToString()).ToList())
                {
                    permissaoAcesso.menusOperacaoUser = permissaoAcesso.menusOperacaoUser + "#" + item.CODMEN.ToString() + item.PERMEN + "-";

                    if (item.INSMEN == ((char)Enums.Operacao.Inserir).ToString())
                    {
                        permissaoAcesso.menusOperacaoUser = permissaoAcesso.menusOperacaoUser + "#" + item.CODMEN.ToString() + item.INSMEN + "-";
                    }
                    if (item.ALTMEN == ((char)Enums.Operacao.Alterar).ToString())
                    {
                        permissaoAcesso.menusOperacaoUser = permissaoAcesso.menusOperacaoUser + "#" + item.CODMEN.ToString() + item.ALTMEN + "-";
                    }
                    if (item.EXCMEN == ((char)Enums.Operacao.Excluir).ToString())
                    {
                        permissaoAcesso.menusOperacaoUser = permissaoAcesso.menusOperacaoUser + "#" + item.CODMEN.ToString() + item.EXCMEN + "-";
                    }
                }

                this.PermissoesDeAcessoGerenciamento = lista;

                return(this.View("Permissao", this.permissaoAcesso));
            }
            catch (Exception ex)
            {
                this.Session["ExceptionErro"] = ex;
                return(this.RedirectToAction("ErroException", "Erro"));
            }
        }
        /// <summary>
        /// Gravar as permissoes de autonomia para o usuário selecionado.
        /// </summary>
        /// <param name="operacoesSelecionadas"></param>
        /// <param name="codUser"></param>
        /// <returns></returns>
        public JsonResult GravarPermissoesUsuario(string operacoesSelecionadas, string loginUsuario)
        {
            if (this.Logado != ((char)Enums.Logado.Sim).ToString())
            {
                return(this.Json(new { redirectUrl = Url.Action("Login", "Login"), Logado = true }, JsonRequestBehavior.AllowGet));
            }

            try
            {
                var N9999USUBusiness = new N9999USUBusiness();

                // Busca código do usuário
                var codUser = N9999USUBusiness.ListaDadosUsuarioPorLogin(loginUsuario.ToLower()).CODUSU;

                var lista            = new List <N9999USM>();
                var item             = new N9999USM();
                var n9999UXMBusiness = new N9999UXMBusiness();

                string[] operacoes = operacoesSelecionadas.Split('-');

                if (operacoes[0] == "")
                {
                    operacoes = new string[0];
                }

                bool retorno = false;

                for (int i = 0; i < operacoes.Length; i++)
                {
                    item = new N9999USM();
                    long codMenu = long.Parse(operacoes[i].Substring(0, operacoes[i].Length - 1));

                    string[] grupoMenu = operacoes.Where(p => p.Substring(0, p.Length - 1) == codMenu.ToString()).ToArray();

                    item.CODUSU = codUser;
                    item.CODMEN = codMenu;
                    item.CODSIS = (long)Enums.Sistema.NWORKFLOW;
                    item.PERMEN = item.INSMEN = item.ALTMEN = item.EXCMEN = "X";

                    for (int x = 0; x < grupoMenu.Length; x++)
                    {
                        if (grupoMenu[x].Substring(grupoMenu[x].Length - 1, 1) == ((char)Enums.Operacao.Pesquisar).ToString())
                        {
                            item.PERMEN = ((char)Enums.Operacao.Pesquisar).ToString();
                        }
                        else if (grupoMenu[x].Substring(grupoMenu[x].Length - 1, 1) == ((char)Enums.Operacao.Inserir).ToString())
                        {
                            item.INSMEN = ((char)Enums.Operacao.Inserir).ToString();
                        }
                        else if (grupoMenu[x].Substring(grupoMenu[x].Length - 1, 1) == ((char)Enums.Operacao.Alterar).ToString())
                        {
                            item.ALTMEN = ((char)Enums.Operacao.Alterar).ToString();
                        }
                        else if (grupoMenu[x].Substring(grupoMenu[x].Length - 1, 1) == ((char)Enums.Operacao.Excluir).ToString())
                        {
                            item.EXCMEN = ((char)Enums.Operacao.Excluir).ToString();
                        }
                    }

                    if (grupoMenu.Length > 1)
                    {
                        i = i + grupoMenu.Length - 1;
                    }

                    lista.Add(item);
                }

                string msgRetorno = "Ocorreu algum erro durante o processamento. Favor informar o setor de TI.";

                if (n9999UXMBusiness.GravarPermissoesUser(lista, codUser, (int)Enums.Sistema.NWORKFLOW))
                {
                    msgRetorno = "Operações gravadas com sucesso.";
                    retorno    = true;

                    // Se o usuário logado for o mesmo que está sofrendo alterações de permissões de acesso, seta logado para false para que o usuário efetue login novamente.
                    if (loginUsuario.ToLower() == this.LoginUsuario)
                    {
                        this.Logado = ((char)Enums.Logado.Nao).ToString();
                    }
                }

                return(this.Json(new { msgRetorno = msgRetorno, RetornoOk = retorno }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                this.Session["ExceptionErro"] = ex;
                return(this.Json(new { redirectUrl = Url.Action("ErroException", "Erro"), ErroExcecao = true }, JsonRequestBehavior.AllowGet));
            }
        }