public void Salvar(IEspecificidade especificidade, BancoDeDados banco)
        {
            TermoCPFARL termo = especificidade as TermoCPFARL;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                _da.Salvar(termo, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
        public TermoCPFARLVM(List <Protocolos> processosDocumentos, List <AtividadeSolicitada> atividades, List <PessoaLst> destinatarios, List <TituloCondicionante> condicionantes, TermoCPFARL termo, string processoDocumentoSelecionado, bool isVisualizar, int atividadeSelecionada)
        {
            IsVisualizar = isVisualizar;
            Termo        = termo;

            Destinatarios = ViewModelHelper.CriarSelectList(destinatarios, true, true);

            Atividades = new AtividadeEspecificidadeVM(processosDocumentos, atividades, processoDocumentoSelecionado, atividadeSelecionada, isVisualizar);
            Atividades.MostrarBotoes = false;

            Condicionantes.MostrarBotoes  = !isVisualizar;
            Condicionantes.Condicionantes = condicionantes ?? new List <TituloCondicionante>();

            ArquivoVM.IsVisualizar = isVisualizar;
        }
Example #3
0
        internal TermoCPFARL Obter(int titulo, BancoDeDados banco = null)
        {
            TermoCPFARL especificidade = new TermoCPFARL();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Dados da Especificidade

                Comando comando = bancoDeDados.CriarComando(@" select e.id, e.titulo, e.protocolo, e.tid, n.numero, n.ano, p.requerimento, p.protocolo protocolo_tipo
					from {0}esp_termo_comp_pfarl e, {0}tab_titulo_numero n, {0}tab_protocolo p where n.titulo(+) = e.titulo and e.protocolo = p.id and e.titulo = :titulo "                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        especificidade.Titulo.Id = titulo;
                        especificidade.Id        = reader.GetValue <int>("id");
                        especificidade.Tid       = reader.GetValue <string>("tid");
                        especificidade.ProtocoloReq.IsProcesso     = reader.GetValue <int>("protocolo_tipo") == 1;
                        especificidade.ProtocoloReq.RequerimentoId = reader.GetValue <int>("requerimento");
                        especificidade.ProtocoloReq.Id             = reader.GetValue <int>("protocolo");
                        especificidade.Titulo.Numero.Inteiro       = reader.GetValue <int>("numero");
                        especificidade.Titulo.Numero.Ano           = reader.GetValue <int>("ano");
                    }

                    reader.Close();
                }

                #region Destinatário

                comando = bancoDeDados.CriarComando(@" select p.id Id, t.id IdRelacionamento, nvl(p.nome, p.razao_social) Nome from 
													{0}esp_termo_comp_pfarl_destinat t, {0}esp_termo_comp_pfarl e, {0}tab_pessoa p where 
													t.especificidade = e.id and e.titulo = :titulo and p.id = t.destinatario"                                                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32);

                especificidade.Destinatarios = bancoDeDados.ObterEntityList <TermoCPFARLDestinatario>(comando);

                #endregion

                #endregion
            }

            return(especificidade);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            TermoCPFARLDa         _da = new TermoCPFARLDa();
            EspecificidadeDa      _daEspecificidade     = new EspecificidadeDa();
            DominialidadeDa       _daDominialidade      = new DominialidadeDa();
            CaracterizacaoBus     caracterizacaoBus     = new CaracterizacaoBus();
            CaracterizacaoValidar caracterizacaoValidar = new CaracterizacaoValidar();
            List <Dependencia>    dependencias          = new List <Dependencia>();
            TermoCPFARL           esp             = especificidade as TermoCPFARL;
            List <Caracterizacao> caracterizacoes = caracterizacaoBus.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            List <PessoaLst>      destinatarios   = _daEspecificidade.ObterInteressados(esp.ProtocoloReq.Id);
            List <ReservaLegal>   reservas;
            int idCaracterizacao;
            int tipo;

            RequerimentoAtividade(esp);

            if (esp.Atividades[0].Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ReservaLegal))
            {
                Validacao.Add(Mensagem.TermoCPFARLMsg.AtividadeInvalida(esp.Atividades[0].NomeAtividade));
            }

            if (esp.Destinatarios.Count == 0)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioObrigatorio("Termo_Destinatario"));
            }
            else
            {
                esp.Destinatarios.ForEach(x =>
                {
                    if (destinatarios.SingleOrDefault(y => y.Id == x.Id) == null)
                    {
                        Validacao.Add(Mensagem.Especificidade.DestinatarioDesassociado("Termo_Destinatario", x.Nome));
                    }
                    else
                    {
                        tipo = _daEspecificidade.ObterDadosPessoa(x.Id).Tipo;
                        if (tipo == 3 || tipo == 4)
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.DestinatarioNaoPermitido);
                        }
                    }
                });
            }

            idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.Dominialidade);
            if (idCaracterizacao > 0)
            {
                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.TermoCPFARLMsg.CaracterizacaoDeveEstarValida(caracterizacoes.Single(x => x.Tipo == eCaracterizacao.Dominialidade).Nome));
                }
                else
                {
                    reservas = new List <ReservaLegal>();

                    Dominialidade dominialidade = _daDominialidade.ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0));
                    dominialidade.Dominios.ForEach(x => { x.ReservasLegais.ForEach(reserva => { reservas.Add(reserva); }); });

                    if (reservas == null || reservas.Count == 0)
                    {
                        Validacao.Add(Mensagem.TermoCPFARLMsg.ArlInexistente);
                    }
                    else
                    {
                        if (reservas.Exists(x => x.SituacaoVegetalId == (int)eReservaLegalSituacaoVegetal.NaoCaracterizada || x.SituacaoVegetalId == (int)eReservaLegalSituacaoVegetal.EmUso))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.ARLSituacaoVegetalInvalida);
                        }

                        if (reservas.Exists(x => x.SituacaoId != (int)eReservaLegalSituacao.Proposta))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.DominioSituacaoInvalida);
                        }

                        if (reservas.Exists(x => x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoMatriculaCedente ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoMatriculaReceptora ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoEmpreendimentoCedente ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoEmpreendimentoReceptora))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.LocalizacaoInvalida);
                        }
                    }
                }
            }
            else
            {
                Validacao.Add(Mensagem.TermoCPFARLMsg.DominialidadeInexistente);
            }

            return(Validacao.EhValido);
        }
        public ActionResult TermoCPFARL(EspecificidadeVME especificidade)
        {
            TermoCPFARLBus             bus = new TermoCPFARLBus();
            List <Protocolos>          lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId);
            List <AtividadeSolicitada> lstAtividades          = new List <AtividadeSolicitada>();
            List <PessoaLst>           destinatarios          = new List <PessoaLst>();

            Titulo       titulo = new Titulo();
            TituloModelo modelo = _tituloModeloBus.Obter(especificidade.ModeloId ?? 0);
            TermoCPFARL  termo  = new TermoCPFARL();

            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 TermoCPFARL;
                }
                else
                {
                    termo = bus.ObterHistorico(especificidade.TituloId, 0) as TermoCPFARL;
                }

                if (termo != null)
                {
                    termo.Anexos = titulo.Anexos;
                }

                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());
                }

                termo.Destinatarios.ForEach(x =>
                {
                    destinatarios.Add(new PessoaLst()
                    {
                        Id = x.Id, Texto = x.Nome, IsAtivo = true
                    });
                });

                if (!especificidade.IsVisualizar)
                {
                    destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId);
                    _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId);
                }
            }

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

            TermoCPFARLVM vm = new TermoCPFARLVM(
                lstProcessosDocumentos,
                lstAtividades,
                destinatarios,
                titulo.Condicionantes,
                termo,
                especificidade.AtividadeProcDocReqKey,
                especificidade.IsVisualizar,
                atividadeSelecionada);

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

            vm.IsCondicionantes = modelo.Regra(eRegra.Condicionantes) || (titulo.Condicionantes != null && titulo.Condicionantes.Count > 0);

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

            return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet));
        }
Example #6
0
        internal void Salvar(TermoCPFARL termo, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Cadastro da Especificidade

                eHistoricoAcao acao;
                object         id;

                // Verifica a existencia da especificidade
                Comando comando = bancoDeDados.CriarComando(@"select e.id from {0}esp_termo_comp_pfarl e where e.titulo = :titulo", EsquemaBanco);
                comando.AdicionarParametroEntrada("titulo", termo.Titulo.Id, DbType.Int32);
                id = bancoDeDados.ExecutarScalar(comando);

                if (id != null && !Convert.IsDBNull(id))
                {
                    comando = bancoDeDados.CriarComando(@" update {0}esp_termo_comp_pfarl t set t.protocolo = :protocolo, t.tid = :tid where t.titulo = :titulo", EsquemaBanco);

                    acao     = eHistoricoAcao.atualizar;
                    termo.Id = Convert.ToInt32(id);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@" insert into {0}esp_termo_comp_pfarl (id, titulo, protocolo, tid) 
														values ({0}seq_esp_termo_comp_pfarl.nextval, :titulo, :protocolo,
														:tid) returning id into :id"                                                        , EsquemaBanco);

                    acao = eHistoricoAcao.criar;
                    comando.AdicionarParametroSaida("id", DbType.Int32);
                }

                comando.AdicionarParametroEntrada("titulo", termo.Titulo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("protocolo", termo.ProtocoloReq.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                if (id == null || Convert.IsDBNull(id))
                {
                    termo    = termo ?? new TermoCPFARL();
                    termo.Id = Convert.ToInt32(comando.ObterValorParametro("id"));
                }

                #endregion

                #region Destinatário

                comando = bancoDeDados.CriarComando("delete from {0}esp_termo_comp_pfarl_destinat t ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where t.especificidade = :especificidade {0}", comando.AdicionarNotIn("and", "t.id", DbType.Int32, termo.Destinatarios.Select(x => x.IdRelacionamento).ToList()));
                comando.AdicionarParametroEntrada("especificidade", termo.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in termo.Destinatarios)
                {
                    if (item.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}esp_termo_comp_pfarl_destinat t set t.destinatario = :destinatario, t.tid = :tid where t.id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}esp_termo_comp_pfarl_destinat (id, especificidade, destinatario, tid) values ({0}seq_esp_termo_comp_pfarl_dest.nextval, 
							:especificidade, :destinatario, :tid)"                            , EsquemaBanco);
                        comando.AdicionarParametroEntrada("especificidade", termo.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("destinatario", item.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                #region Histórico

                Historico.Gerar(termo.Titulo.Id, eHistoricoArtefatoEspecificidade.termocomppfarl, acao, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
Example #7
0
        internal TermoCPFARL ObterHistorico(int titulo, int situacao, BancoDeDados banco = null)
        {
            TermoCPFARL especificidade = new TermoCPFARL();
            Comando     comando        = null;
            int         hst            = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Dados da Especificidade

                if (situacao > 0)
                {
                    comando = bancoDeDados.CriarComando(@"select e.id,
						e.especificidade_id,
						e.tid,
						p.id_protocolo,
						e.dominio_id,
						n.numero,
						n.ano,
						p.requerimento_id,
						p.protocolo_id protocolo_tipo
					from {0}hst_esp_termo_comp_pfarl e,
						{0}hst_titulo_numero           n,
						{0}hst_protocolo               p
					where e.titulo_id = n.titulo_id(+)
					and e.titulo_tid = n.titulo_tid(+)
					and e.protocolo_id = p.id_protocolo(+)
					and e.protocolo_tid = p.tid(+)
					and not exists(select 1 from {0}lov_historico_artefatos_acoes l where l.id = e.acao_executada and l.acao = 3) 
					and e.titulo_tid = (select ht.tid from {0}hst_titulo ht where ht.titulo_id = e.titulo_id and ht.data_execucao =
					(select max(htt.data_execucao) from {0}hst_titulo htt where htt.titulo_id = e.titulo_id and htt.situacao_id = :situacao))
					and e.titulo_id = :titulo"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("situacao", situacao, DbType.Int32);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"select e.id,
						e.especificidade_id,
						e.tid,
						p.id_protocolo,
						e.dominio_id,
						n.numero,
						n.ano,
						p.requerimento_id,
						p.protocolo_id protocolo_tipo
					from {0}hst_esp_termo_comp_pfarl e,
						{0}hst_titulo_numero           n,
						{0}hst_protocolo               p
					where e.titulo_id = n.titulo_id(+)
					and e.titulo_tid = n.titulo_tid(+)
					and e.protocolo_id = p.id_protocolo(+)
					and e.protocolo_tid = p.tid(+)
					and not exists(select 1 from {0}lov_historico_artefatos_acoes l where l.id = e.acao_executada and l.acao = 3) 
					and e.titulo_tid = (select ht.tid from {0}hst_titulo ht where ht.titulo_id = e.titulo_id and ht.data_execucao =
					(select min(htt.data_execucao) from {0}hst_titulo htt where htt.titulo_id = e.titulo_id and htt.data_execucao >
					(select max(httt.data_execucao) from {0}hst_titulo httt where httt.titulo_id = e.titulo_id and httt.situacao_id = 1)))
					and e.titulo_id = :titulo"                    , EsquemaBanco);
                }

                comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        hst = reader.GetValue <int>("id");

                        especificidade.Titulo.Id = titulo;
                        especificidade.Id        = reader.GetValue <int>("especificidade_id");
                        especificidade.Tid       = reader.GetValue <string>("tid");

                        especificidade.ProtocoloReq.IsProcesso     = reader.GetValue <int>("protocolo_tipo") == 1;
                        especificidade.ProtocoloReq.RequerimentoId = reader.GetValue <int>("requerimento_id");
                        especificidade.ProtocoloReq.Id             = reader.GetValue <int>("id_protocolo");
                        especificidade.Titulo.Numero.Inteiro       = reader.GetValue <int>("numero");
                        especificidade.Titulo.Numero.Ano           = reader.GetValue <int>("ano");
                    }

                    reader.Close();
                }

                #endregion

                #region Destinatario

                comando = bancoDeDados.CriarComando(@"select distinct(p.pessoa_id), d.termo_destinatario_id id, nvl(p.nome, p.razao_social) nome_razao
				from {0}hst_esp_termo_comp_pfarl_dest d, {0}hst_pessoa p where d.destinatario_id = p.pessoa_id and d.destinatario_tid = p.tid
				and p.data_execucao = (select max(h.data_execucao) from {0}hst_pessoa h where h.pessoa_id = p.pessoa_id and h.tid = p.tid) and d.id_hst = :hst"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("hst", hst, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        especificidade.Destinatarios.Add(new TermoCPFARLDestinatario()
                        {
                            IdRelacionamento = reader.GetValue <int>("id"),
                            Id   = reader.GetValue <int>("pessoa_id"),
                            Nome = reader.GetValue <string>("nome_razao")
                        });
                    }

                    reader.Close();
                }

                #endregion
            }

            return(especificidade);
        }