public ActionResult FornecedoresControleSolicitacoesLst(int?Pagina, string chkSolicitacao, string cnpj, string cpf, string razaoSocial, string codigoSolicitacao, string tipoSolicitacao, string MensagemSucesso, bool?pendentes)
        {
            int grupoId       = (int)Geral.PegaAuthTicket("Grupo");
            int contratanteId = (int)Geral.PegaAuthTicket("ContratanteId");

            // Dropdown de Tipo de Solicitação
            ViewBag.TipoSolicitacao = new SelectList(_fluxoService.ListarPorContratanteId(contratanteId), "ID", "FLUXO_NM");


            int pagina = Pagina ?? 1;

            ViewBag.MensagemSucesso = MensagemSucesso ?? "";
            ViewBag.Pagina          = pagina;

            List <AprovacaoVM> lstAprovacaoVM = new List <AprovacaoVM>();

            int tpSolicitacao;
            int codSolicitacao;

            int.TryParse(tipoSolicitacao, out tpSolicitacao);
            int.TryParse(codigoSolicitacao, out codSolicitacao);
            AcompanhamentoPesquisaVM modelo = new AcompanhamentoPesquisaVM()
            {
                GrupoId           = grupoId,
                Pendentes         = pendentes,
                TipoSolicitacao   = tpSolicitacao,
                CodigoSolicitacao = codSolicitacao,
                Cnpj        = Mascara.RemoverMascaraCpfCnpj(cnpj),
                Cpf         = Mascara.RemoverMascaraCpfCnpj(cpf),
                RazaoSocial = razaoSocial
            };

            //BUSCA Solicitações E MONTA PAGINAÇÃO
            RetornoPesquisa <SOLICITACAO> listaPesquisa = _solicitacaoService.BuscarPesquisa(Predicativos.FiltrarAcompanhamentoGrid(modelo, contratanteId), TamanhoPagina, pagina, a => a.ID);

            ViewBag.TotalPaginas   = listaPesquisa.TotalPaginas;
            ViewBag.TotalRegistros = listaPesquisa.TotalRegistros;

            foreach (SOLICITACAO item in listaPesquisa.RegistrosPagina)
            {
                ListarGridAcompanhamento(lstAprovacaoVM, item);
            }

            return(View(lstAprovacaoVM));
        }
        public ActionResult AprovacaoLst(int?Pagina, string MensagemSucesso)
        {
            int pagina = Pagina ?? 1;

            ViewBag.Pagina          = pagina;
            ViewBag.MensagemSucesso = MensagemSucesso ?? "";

            int usuarioId = (int)Geral.PegaAuthTicket("UsuarioId");

            int[] papeis = _papelService.EmpilharPorUsuarioId(usuarioId);

            string chave = Path.GetRandomFileName().Replace(".", "");

            var lstWfdSolicitacao = _solicitacaoService.BuscarPesquisa(
                x => x.WFD_SOLICITACAO_TRAMITE.Any(y => papeis.Contains(y.PAPEL_ID) && y.SOLICITACAO_STATUS_ID == 1),
                TamanhoPagina,
                pagina,
                x => x.ID);

            List <AprovacaoVM> lstAprovacaoVM = new List <AprovacaoVM>();

            try
            {
                if (lstWfdSolicitacao.RegistrosPagina.Any())
                {
                    foreach (SOLICITACAO item in lstWfdSolicitacao.RegistrosPagina)
                    {
                        foreach (var tramite in item.WFD_SOLICITACAO_TRAMITE.Where(x => papeis.Contains(x.PAPEL_ID) && x.SOLICITACAO_STATUS_ID == 1))
                        {
                            AprovacaoVM aprovacaoVM = new AprovacaoVM
                            {
                                Solicitacao          = new SOLICITACAO(),
                                Solicitacao_Tramites = new List <SOLICITACAO_TRAMITE>(),
                                Fornecedor           = new SolicitacaoCadastroFornecedor(),
                                FluxoId             = item.FLUXO_ID,
                                Contratante_ID      = item.CONTRATANTE_ID,
                                NomeContratante     = item.Contratante.RAZAO_SOCIAL,
                                Solicitacao_Dt_Cria = item.SOLICITACAO_DT_CRIA,
                                Login               = item.Usuario != null ? item.Usuario.NOME : null,
                                IdSolicitacao       = item.ID,
                                NomeSolicitacao     = item.Fluxo.FLUXO_NM,
                                Solicitacao_Tramite = tramite
                            };

                            if (item.CadastroFornecedor(item))
                            {
                                if (item.SolicitacaoCadastroFornecedor != null)
                                {
                                    aprovacaoVM.NomeFornecedor = item.SolicitacaoCadastroFornecedor.First().PJPF_TIPO != 3
                                        ? item.SolicitacaoCadastroFornecedor.First().RAZAO_SOCIAL
                                        : item.SolicitacaoCadastroFornecedor.First().NOME;
                                }
                                else
                                {
                                    aprovacaoVM.NomeFornecedor = item.FORNECEDORBASE.PJPF_TIPO != 3
                                        ? item.FORNECEDORBASE.RAZAO_SOCIAL
                                        : item.FORNECEDORBASE.NOME;
                                }
                            }
                            else
                            if (item.Fornecedor != null)
                            {
                                aprovacaoVM.NomeFornecedor = item.Fornecedor.TIPO_PJPF_ID == 3
                                    ? item.Fornecedor.NOME
                                    : item.Fornecedor.RAZAO_SOCIAL;
                            }
                            else
                            {
                                aprovacaoVM.NomeFornecedor = item.FORNECEDORBASE.PJPF_TIPO != 3
                                    ? item.FORNECEDORBASE.RAZAO_SOCIAL
                                    : item.FORNECEDORBASE.NOME;
                            }

                            aprovacaoVM.UrlAprovacao = Url.Action("AprovacaoFrm", "Aprovacao", new { chaveurl = Cripto.Criptografar(string.Format("idSolicitacao={0}&idSolicitacaoTipo={1}&idPapel={2}", aprovacaoVM.IdSolicitacao.ToString(), aprovacaoVM.FluxoId.ToString(), tramite.PAPEL_ID, chave), Key) }, Request.Url.Scheme);

                            lstAprovacaoVM.Add(aprovacaoVM);
                        }
                    }
                    ViewBag.TotalPaginas   = lstWfdSolicitacao.TotalPaginas;
                    ViewBag.TotalRegistros = lstWfdSolicitacao.TotalRegistros;
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex);
                ModelState.AddModelError("", "Erro ao buscar as solicitações");
                return(View());
            }

            return(View(lstAprovacaoVM));
        }