public ActionResult ObterDadosTermoCompromissoAmbiental(Int32 titulo)
        {
            TermoCompromissoAmbientalBus _bus = new TermoCompromissoAmbientalBus();

            _bus.ValidarTitulo(titulo);

            return(Json(new
            {
                @Msg = Validacao.Erros,
                @EhValido = Validacao.EhValido,
                @Destinatarios = _busTitulo.ObterDestinatarios(_bus.ObterProtocolo(titulo))
            }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult ObterDadosTermoCompromissoAmbientalRepresentantes(Int32 destinatario)
        {
            TermoCompromissoAmbientalBus _bus = new TermoCompromissoAmbientalBus();

            Boolean MostrarRepresentantes = _bus.ObterDestinatarioTipo(destinatario) == PessoaTipo.JURIDICA;

            return(Json(new
            {
                @Msg = Validacao.Erros,
                @EhValido = Validacao.EhValido,
                @MostrarRepresentantes = MostrarRepresentantes,
                @Representantes = (MostrarRepresentantes) ? _bus.ObterRepresentantes(destinatario) : null
            }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult TermoCompromissoAmbiental(EspecificidadeVME especificidade)
        {
            TermoCompromissoAmbientalBus bus = new TermoCompromissoAmbientalBus();
            List <Protocolos>            lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId);
            List <AtividadeSolicitada>   lstAtividades          = new List <AtividadeSolicitada>();
            List <PessoaLst>             destinatarios          = new List <PessoaLst>();

            Titulo titulo = new Titulo();
            TermoCompromissoAmbiental termo = new TermoCompromissoAmbiental();

            int atividadeSelecionada = 0;

            if (especificidade.TituloId > 0)
            {
                titulo                = _busTitulo.Obter(especificidade.TituloId);
                titulo.Atividades     = _busTitulo.ObterAtividades(especificidade.TituloId);
                titulo.Condicionantes = _busTitulo.ObterCondicionantes(especificidade.TituloId);
                titulo.Anexos         = _busTitulo.ObterAnexos(especificidade.TituloId);

                if (titulo.Atividades.Count > 0)
                {
                    atividadeSelecionada = titulo.Atividades[0].Id;
                }

                if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado)
                {
                    termo = bus.Obter(especificidade.TituloId) as TermoCompromissoAmbiental;
                }
                else
                {
                    termo = bus.ObterHistorico(especificidade.TituloId, 0) as TermoCompromissoAmbiental;
                }

                especificidade.AtividadeProcDocReq = _busTitulo.ObterProcDocReqEspecificidade(especificidade.TituloId);
            }

            if (especificidade.ProtocoloId > 0)
            {
                if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId))
                {
                    lstAtividades     = new List <AtividadeSolicitada>();
                    titulo.Atividades = new List <Atividade>();
                }
                else
                {
                    lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo());
                }

                if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado)
                {
                    destinatarios = _busTitulo.ObterDestinatarios(bus.ObterProtocolo(termo.Licenca));
                }
                else
                {
                    destinatarios.Add(new PessoaLst()
                    {
                        Id = termo.Destinatario, Texto = termo.DestinatarioNomeRazao, IsAtivo = true
                    });
                }

                if (!especificidade.IsVisualizar)
                {
                    _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId);
                }
            }

            if (!Validacao.EhValido)
            {
                return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = string.Empty }, JsonRequestBehavior.AllowGet));
            }

            TermoCompromissoAmbientalVM vm = new TermoCompromissoAmbientalVM(
                lstProcessosDocumentos,
                lstAtividades,
                destinatarios,
                bus.ObterRepresentantes(termo.Destinatario, termo.DestinatarioTid),
                termo,
                especificidade.AtividadeProcDocReqKey,
                especificidade.IsVisualizar,
                atividadeSelecionada);

            if (especificidade.TituloId > 0)
            {
                vm.Atividades.Atividades = titulo.Atividades;
            }

            string htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Termo/TermoCompromissoAmbiental.ascx", vm);

            return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet));
        }