public ActionResult ConsultarInformacoes(int id)
        {
            try
            {
                ListarTramitacaoFiltro filtro = new ListarTramitacaoFiltro();
                filtro.Protocolo.Id  = id;
                filtro.ProtocoloTipo = (int)eTipoProtocolo.Processo;

                ConsultarInformacaoVM vm = new ConsultarInformacaoVM();
                vm.Id = id;
                vm.MostrarInformacao(0, (_busTramitacao.FiltrarHistorico(filtro).Itens.Count > 0) || (_busProtocolo.FiltrarHistoricoAssociados(new ListarProtocoloFiltro()
                {
                    Id = id
                }).Itens.Count > 0));
                vm.MostrarInformacao(1, Convert.ToBoolean(new PdfAnalise().Existe(id)));
                vm.MostrarInformacao(2, new PdfProtocoloAssociado().Existe(id) > 0);
                vm.MostrarInformacao(3, new PdfTramitacaoArquivamento().Existe(id) > 0);

                int valor = new RelatorioEntregaDa().ExisteEntregaProtocolo(id);
                vm.MostrarInformacao(4, valor > 0, valor);
                vm.MostrarInformacao(5, true, id);

                Processo processo = _bus.ObterSimplificado(id);
                vm.ProcessoNumero = processo.Numero;
                vm.ProcessoTipo   = processo.Tipo.Texto;

                ProtocoloLocalizacao loc = _bus.ObterLocalizacao(id);
                if (loc.Localizacao == eLocalizacaoProtocolo.OrgaoExterno)
                {
                    vm.ProcessoLocalizacao = loc.OrgaoExternoNome;
                }
                else if (loc.Localizacao == eLocalizacaoProtocolo.Arquivado)
                {
                    vm.ProcessoLocalizacao = loc.ArquivoNome;
                }
                else if (loc.Localizacao == eLocalizacaoProtocolo.EnviadoParaSetor || loc.Localizacao == eLocalizacaoProtocolo.EnviadoParaFuncionario)
                {
                    vm.ProcessoLocalizacao = "Em tramitação";
                }
                else if (loc.ProcessoPaiId > 0 || loc.Localizacao == eLocalizacaoProtocolo.PosseFuncionario)
                {
                    vm.ProcessoLocalizacao = loc.SetorDestinatarioNome;
                    vm.ProcessoEnviadoPor  = loc.FuncionarioDestinatarioNome;
                    vm.LabelEnviadoPor     = "Em posse de";
                }
                if (Request.IsAjaxRequest())
                {
                    return(PartialView("ConsultarInformacoes", vm));
                }
                else
                {
                    return(View("ConsultarInformacoes", vm));
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
                return(RedirectToAction("Index", Validacao.QueryParamSerializer()));
            }
        }
        public ActionResult Historico(int id, int tipo)
        {
            HistoricoVM vm = new HistoricoVM();

            ListarTramitacaoFiltro filtro = new ListarTramitacaoFiltro();

            filtro.Protocolo.Id         = id;
            filtro.Protocolo.IsProcesso = (tipo == (int)eTipoProtocolo.Processo);

            Resultados <Tramitacao>         hstTramitacao = _bus.FiltrarHistorico(filtro);
            Resultados <HistoricoProtocolo> hstProtocolo;
            IProtocolo protocolo = new Protocolo();

            hstProtocolo = _busProtocolo.FiltrarHistoricoAssociados(new ListarProtocoloFiltro()
            {
                Id          = id,
                ProtocoloId = filtro.Protocolo.IsProcesso ? (int)eTipoProtocolo.Processo : (int)eTipoProtocolo.Documento
            });

            protocolo                  = _busProtocolo.ObterSimplificado(id);
            vm.TipoHistorico           = filtro.Protocolo.IsProcesso ? "Processo" : "documento";
            vm.TipoHistoricoId         = tipo;
            vm.AcaoHistoricoMostrarPdf = _bus.ObterHistoricoAcoesMostrarPdf();
            vm.CarregarHistorico(hstTramitacao.Itens, hstProtocolo, protocolo.Numero, protocolo.Tipo.Texto);

            ProtocoloLocalizacao loc = _busProtocolo.ObterLocalizacao(id);

            if (loc.Localizacao == eLocalizacaoProtocolo.OrgaoExterno)
            {
                vm.Localizacao = loc.OrgaoExternoNome;
            }
            else if (loc.Localizacao == eLocalizacaoProtocolo.Arquivado)
            {
                vm.Localizacao = loc.ArquivoNome;
            }
            else if (loc.Localizacao == eLocalizacaoProtocolo.EnviadoParaSetor || loc.Localizacao == eLocalizacaoProtocolo.EnviadoParaFuncionario)
            {
                vm.Localizacao = "Em tramitação";
            }
            else if (loc.ProcessoPaiId > 0 || loc.Localizacao == eLocalizacaoProtocolo.PosseFuncionario)
            {
                vm.Localizacao = loc.SetorDestinatarioNome;
            }

            return(PartialView("HistoricoPartial", vm));
        }