public ActionResult ImprimirDocumentos(int id)
        {
            ProjetoDigital projetoDigital = _bus.Obter(id);

            RequerimentoCredenciadoBus requerimentoBus = new RequerimentoCredenciadoBus();

            if (requerimentoBus.RequerimentoDeclaratorio(projetoDigital.RequerimentoId))
            {
                Validacao.Add(Mensagem.ProjetoDigital.ImprimirDocumentosDesativado);
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = id })));
            }

            if (projetoDigital.Situacao == (int)eProjetoDigitalSituacao.AguardandoCorrecao)
            {
                Validacao.Add(Mensagem.ProjetoDigital.PossuiPendenciasCorrecao);
                return(RedirectToAction("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { id = id })));
            }

            RequerimentoCredenciadoBus requerimentoCredenciadoBus = new RequerimentoCredenciadoBus();
            Requerimento requerimento = requerimentoCredenciadoBus.ObterFinalizar(projetoDigital.RequerimentoId);

            ProjetoDigitalImprimirDocumentosVM vm = new ProjetoDigitalImprimirDocumentosVM();

            vm.ProjetoDigital = projetoDigital;

            ProjetoGeograficoBus projetoGeoBus = new ProjetoGeograficoBus();

            foreach (var item in projetoDigital.Dependencias)
            {
                if (item.DependenciaTipo == (int)eCaracterizacaoDependenciaTipo.ProjetoGeografico)
                {
                    List <ArquivoProjeto> arquivos = projetoGeoBus.ObterArquivosHistorico(item.DependenciaId, item.DependenciaTid);
                    item.Id = (arquivos.SingleOrDefault(x => x.Tipo == (int)eProjetoGeograficoArquivoTipo.Croqui) ?? new ArquivoProjeto()).Id.GetValueOrDefault();
                }
                else
                {
                    item.Id = 0;
                }
            }

            vm.DocumentosGeradosVM.CarregarDocumentos(requerimento, projetoDigital);

            return(View(vm));
        }
        public ActionResult Operar(int id = 0, bool modoVisualizar = false, int acaoId = 0)
        {
            ProjetoDigitalVM vm = new ProjetoDigitalVM();

            vm.ProjetoDigital.Situacao = (int)eProjetoDigitalSituacao.EmElaboracao;
            vm.ModoVisualizar          = modoVisualizar;
            vm.UrlRequerimento         = Url.Action("Criar", "Requerimento");

            if (acaoId > 0)
            {
                vm.PossuiAtividadeCAR = _bus.PossuiAtividadeCAR(acaoId);
            }

            if (id > 0)
            {
                vm.ProjetoDigital = _bus.Obter(id);

                RequerimentoCredenciadoBus requerimentoBus = new RequerimentoCredenciadoBus();
                vm.DesativarPasso4 = requerimentoBus.RequerimentoDeclaratorio(vm.ProjetoDigital.RequerimentoId);

                if (!_validar.EmPosseCredenciado(vm.ProjetoDigital))
                {
                    Validacao.Add(Mensagem.ProjetoDigital.PosseCredenciado);
                    return(RedirectToAction("Index", Validacao.QueryParamSerializer()));
                }

                vm.UrlRequerimento           = Url.Action("Editar", "Requerimento", new { id = vm.ProjetoDigital.RequerimentoId, projetoDigitalId = vm.ProjetoDigital.Id });
                vm.UrlRequerimentoVisualizar = Url.Action("Visualizar", "Requerimento", new { id = vm.ProjetoDigital.RequerimentoId, projetoDigitalId = vm.ProjetoDigital.Id, isVisualizar = true });

                vm.UrlCaracterizacao           = Url.Action("Index", "Caracterizacao", new { area = "Caracterizacoes", id = vm.ProjetoDigital.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId = vm.ProjetoDigital.Id });
                vm.UrlCaracterizacaoVisualizar = Url.Action("Index", "Caracterizacao", new { area = "Caracterizacoes", id = vm.ProjetoDigital.EmpreendimentoId.GetValueOrDefault(), projetoDigitalId = vm.ProjetoDigital.Id, visualizar = true });

                vm.UrlEnviar           = Url.Action("Enviar", "ProjetoDigital", new { id = vm.ProjetoDigital.Id });
                vm.UrlEnviarVisualizar = Url.Action("Enviar", "ProjetoDigital", new { id = vm.ProjetoDigital.Id, modoVisualizar = true });

                vm.UrlImprimirDocumentos = Url.Action("ImprimirDocumentos", "ProjetoDigital", new { id = vm.ProjetoDigital.Id });
            }

            return(View(vm));
        }
        public ActionResult Enviar(int id)
        {
            string         urlRedirecionar = string.Empty;
            ProjetoDigital projeto         = _bus.Obter(id);

            _bus.Enviar(projeto);

            if (Validacao.EhValido)
            {
                RequerimentoCredenciadoBus requerimentoBus = new RequerimentoCredenciadoBus();
                if (requerimentoBus.RequerimentoDeclaratorio(projeto.RequerimentoId))
                {
                    urlRedirecionar = Url.Action("Operar", "ProjetoDigital", Validacao.QueryParamSerializer(new { Id = id }));
                }
                else
                {
                    urlRedirecionar = Url.Action("ImprimirDocumentos", "ProjetoDigital", Validacao.QueryParamSerializer(new { Id = id, MostrarFechar = true }));
                }
            }

            return(Json(new { EhValido = Validacao.EhValido, Msg = Validacao.Erros, UrlRedirecionar = urlRedirecionar }, JsonRequestBehavior.AllowGet));
        }