internal List <PessoaLst> ObterDeclarantes(int requerimentoId) { List <PessoaLst> retorno = new List <PessoaLst>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { Comando comando = bancoDeDados.CriarComando(@"select nvl(r.interessado,0) id, 'Interessado' || ' - ' || nvl(tp.nome, tp.razao_social) texto from {0}tab_requerimento r, {0}tab_pessoa tp where r.interessado = tp.id and r.id = :id union all select nvl(er.responsavel,0) id, ler.texto || ' - ' || nvl(tp.nome, tp.razao_social) texto from {0}tab_requerimento r, {0}tab_empreendimento_responsavel er, {0}tab_pessoa tp, {0}lov_empreendimento_tipo_resp ler where er.responsavel = tp.id and er.tipo = ler.id and r.id = :id and r.empreendimento = er.empreendimento union all select nvl(rr.responsavel,0) id, 'Responsável técnico' || ' - ' || nvl(tp.nome, tp.razao_social) texto from {0}tab_requerimento_responsavel rr, {0}tab_pessoa tp where rr.responsavel = tp.id and rr.requerimento = :id" , UsuarioCredenciado); comando.AdicionarParametroEntrada("id", requerimentoId, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { PessoaLst pes; while (reader.Read()) { pes = new PessoaLst(); pes.Id = reader.GetValue <int>("id"); pes.Texto = reader.GetValue <string>("texto"); pes.IsAtivo = true; retorno.Add(pes); } reader.Close(); } } return(retorno); }
internal List <PessoaLst> ObterRepresentantes(int destinatarioId, string destinatarioTid = null, BancoDeDados banco = null) { List <PessoaLst> representantes = new List <PessoaLst>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando; if (destinatarioTid != null) { comando = bancoDeDados.CriarComando(@"select pessoa_id id, nome from hst_pessoa where pessoa_id in (select representante_id from hst_pessoa_representante where pessoa_id = :destinatario_id and pessoa_tid = :destinatario_tid) and tid in (select representante_tid from hst_pessoa_representante where pessoa_id = :destinatario_id and pessoa_tid = :destinatario_tid)" , EsquemaBanco); comando.AdicionarParametroEntrada("destinatario_tid", destinatarioTid, DbType.String); } else { comando = bancoDeDados.CriarComando(@"select id, nome from {0}tab_pessoa where id in (select representante from {0}tab_pessoa_representante where pessoa = :destinatario_id)" , EsquemaBanco); } comando.AdicionarParametroEntrada("destinatario_id", destinatarioId, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { PessoaLst representante; while (reader.Read()) { representante = new PessoaLst(); representante.Id = reader.GetValue <Int32>("id"); representante.Texto = reader.GetValue <String>("nome"); representante.IsAtivo = true; representantes.Add(representante); } reader.Close(); } } return(representantes); }
internal List <PessoaLst> ObterResponsaveisHistorico(int empreendimentoId, string empreendimentoTid) { List <PessoaLst> lst = new List <PessoaLst>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { #region Responsaveis do Empreendimento Comando comando = bancoDeDados.CriarComando(@"select tp.pessoa_id id, (case when ter.tipo_id != 9 /*Outro*/ then ter.tipo_texto else ter.especificar end) || ' - ' || nvl(tp.nome, tp.razao_social) nome_razao, tp.cpf from {0}hst_empreendimento_responsavel ter, {0}hst_pessoa tp where ter.responsavel_id = tp.pessoa_id and ter.responsavel_tid = tp.tid and ter.empreendimento_id = :empreendimento and ter.empreendimento_tid = :tid order by nome_razao" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimentoId, DbType.Int32); comando.AdicionarParametroEntrada("tid", empreendimentoTid, DbType.String); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { PessoaLst item; while (reader.Read()) { item = new PessoaLst(); item.Id = Convert.ToInt32(reader["id"]); item.Texto = reader["nome_razao"].ToString(); item.CPFCNPJ = reader["cpf"].ToString(); item.IsAtivo = true; lst.Add(item); } reader.Close(); } #endregion } return(lst); }
internal List <PessoaLst> ObterAssinantes(int pessoaId) { List <PessoaLst> lst = new List <PessoaLst>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { #region Responsaveis do Empreendimento Comando comando = bancoDeDados.CriarComando(@"select p.id, nvl(p.nome, p.razao_social) nome_razao, p.cpf from tab_pessoa_representante pr, tab_pessoa p, tab_pessoa_conjuge pc, tab_pessoa c where pr.representante = p.id and pr.pessoa = :pessoa_id and p.id = pc.pessoa (+) and pc.conjuge = c.id (+) order by p.nome" , EsquemaBanco); comando.AdicionarParametroEntrada("pessoa_id", pessoaId, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { PessoaLst item; while (reader.Read()) { item = new PessoaLst(); item.Id = Convert.ToInt32(reader["id"]); item.Texto = reader["nome_razao"].ToString(); item.CPFCNPJ = reader["cpf"].ToString(); item.IsAtivo = true; lst.Add(item); } reader.Close(); } #endregion } return(lst); }
internal List <PessoaLst> ObterResponsaveis(int empreendimentoId) { List <PessoaLst> lst = new List <PessoaLst>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { #region Responsaveis do Empreendimento Comando comando = bancoDeDados.CriarComando(@"select tp.id, (case when lv.id != 9/*Outro*/ then lv.texto else ter.especificar end) || ' - ' || nvl(tp.nome, tp.razao_social) nome_razao from tab_empreendimento_responsavel ter, tab_pessoa tp, lov_empreendimento_tipo_resp lv where ter.tipo = lv.id(+) and ter.responsavel = tp.id and ter.empreendimento = :empreendimento order by nome_razao" , EsquemaBanco); comando.AdicionarParametroEntrada("empreendimento", empreendimentoId, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { PessoaLst item; while (reader.Read()) { item = new PessoaLst(); item.Id = Convert.ToInt32(reader["id"]); item.Texto = reader["nome_razao"].ToString(); item.IsAtivo = true; lst.Add(item); } reader.Close(); } #endregion } return(lst); }
public bool Salvar(IEspecificidade especificidade) { TermoCPFARLCR esp = especificidade as TermoCPFARLCR; TermoCPFARLCRDa termoCPFARLCRDa = new TermoCPFARLCRDa(); CaracterizacaoBus caracterizacaoBus = new CaracterizacaoBus(); CaracterizacaoValidar caracterizacaoValidar = new CaracterizacaoValidar(); DominialidadeDa dominialidadeDa = new DominialidadeDa(); EspecificidadeDa especificidadeDa = new EspecificidadeDa(); GerenciadorConfiguracao <ConfiguracaoCaracterizacao> caracterizacaoConfig = new GerenciadorConfiguracao <ConfiguracaoCaracterizacao>(new ConfiguracaoCaracterizacao()); string caracterizacaoTipo = caracterizacaoConfig.Obter <List <CaracterizacaoLst> >(ConfiguracaoCaracterizacao.KeyCaracterizacoes).Single(x => x.Id == (int)eCaracterizacao.Dominialidade).Texto; List <PessoaLst> responsaveis = new List <PessoaLst>(); RequerimentoAtividade(esp, jaAssociado: false); #region Básicas if (esp.CedenteDominioID <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.CedenteDominioObrigatorio); } if (esp.CedenteARLCompensacao == null || esp.CedenteARLCompensacao.Count <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.CedenteARLCompensacaoObrigatoria); } else { if (esp.CedenteARLCompensacao.Any(x => esp.CedenteARLCompensacao.Count(y => y.Id == x.Id && y.Id > 0) > 1)) { Validacao.Add(Mensagem.TermoCPFARLCR.CedenteARLCompensacaoDuplicada); } } if (esp.CedenteResponsaveisEmpreendimento == null || esp.CedenteResponsaveisEmpreendimento.Count <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelEmpreendimentoObrigatorio("Cedente", "cedente")); } else { if (esp.CedenteResponsaveisEmpreendimento.Any(x => esp.CedenteResponsaveisEmpreendimento.Count(y => y.Id == x.Id && y.Id > 0) > 1)) { Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelEmpreendimentoDuplicado("Cedente", "cedente")); } } if (esp.ReceptorEmpreendimentoID <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.ReceptorEmpreendimentoObrigatorio); } if (esp.ReceptorDominioID <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.ReceptorDominioObrigatorio); } if (esp.ReceptorResponsaveisEmpreendimento == null || esp.ReceptorResponsaveisEmpreendimento.Count <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelEmpreendimentoObrigatorio("Receptor", "receptor")); } else { if (esp.ReceptorResponsaveisEmpreendimento.Any(x => esp.ReceptorResponsaveisEmpreendimento.Count(y => y.Id == x.Id && y.Id > 0) > 1)) { Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelEmpreendimentoDuplicado("Receptor", "receptor")); } } if (string.IsNullOrWhiteSpace(esp.NumeroAverbacao)) { Validacao.Add(Mensagem.TermoCPFARLCR.NumeroAverbacaoObrigatorio); } ValidacoesGenericasBus.DataMensagem(esp.DataEmissao, "DataEmissao", "emissão"); #endregion Básicas if (esp.Atividades.First().Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ReservaLegal)) { Validacao.Add(Mensagem.TermoCPFARLCR.AtividadeInvalida(esp.Atividades[0].NomeAtividade)); } if (!Validacao.EhValido) { return(false); } #region Cedente Dominialidade dominialidadeCedente = dominialidadeDa.ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0)); dominialidadeCedente.Dependencias = caracterizacaoBus.ObterDependencias(dominialidadeCedente.Id, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao); if (dominialidadeCedente == null || dominialidadeCedente.Id <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.DominialidadeInexistente("cedente", caracterizacaoTipo)); } else { string retorno = caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao, dominialidadeCedente.Dependencias); if (!string.IsNullOrEmpty(retorno)) { Validacao.Add(Mensagem.TermoCPFARLCR.CaracterizacaoDeveEstarValida("cedente", caracterizacaoTipo)); } else { List <ReservaLegal> reservas = dominialidadeCedente.Dominios.SelectMany(x => x.ReservasLegais).Where(x => esp.CedenteARLCompensacao.Select(y => y.Id).Any(y => y == x.Id)).ToList(); if (reservas.Any(x => !x.Compensada)) { Validacao.Add(Mensagem.TermoCPFARLCR.ARLCedenteTipoInvalida); } if (reservas.Any(x => x.SituacaoId != (int)eReservaLegalSituacao.Proposta)) { Validacao.Add(Mensagem.TermoCPFARLCR.ARLCedenteSituacaoInvalida); } if (reservas.Any(x => x.SituacaoVegetalId != (int)eReservaLegalSituacaoVegetal.Preservada && x.SituacaoVegetalId != (int)eReservaLegalSituacaoVegetal.EmRecuperacao)) { Validacao.Add(Mensagem.TermoCPFARLCR.ARLCedenteSituacaoVegetalInvalida); } if (!dominialidadeCedente.Dominios.Any(x => x.Id.GetValueOrDefault() == esp.CedenteDominioID)) { Validacao.Add(Mensagem.TermoCPFARLCR.DominioDessassociado("cedente")); } esp.CedenteARLCompensacao.ForEach(reserva => { ReservaLegal aux = reservas.SingleOrDefault(x => x.Id == reserva.Id); if (aux == null || aux.Id <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.ReservaLegalDessassociadoCedente(reserva.Identificacao)); } else { if (aux.MatriculaId != esp.ReceptorDominioID) { Validacao.Add(Mensagem.TermoCPFARLCR.ReservaLegalDessassociadoReceptorDominio(reserva.Identificacao)); } } }); } } responsaveis = especificidadeDa.ObterEmpreendimentoResponsaveis(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0)); esp.CedenteResponsaveisEmpreendimento.ForEach(resp => { PessoaLst aux = responsaveis.SingleOrDefault(x => x.Id == resp.Id); if (aux == null || aux.Id <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelDessassociado("cedente", resp.NomeRazao)); } }); #endregion Cedente #region Receptor Dominialidade dominialidadeReceptor = dominialidadeDa.ObterPorEmpreendimento(esp.ReceptorEmpreendimentoID); dominialidadeReceptor.Dependencias = caracterizacaoBus.ObterDependencias(dominialidadeReceptor.Id, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao); if (dominialidadeReceptor == null || dominialidadeReceptor.Id <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.DominialidadeInexistente("receptor", caracterizacaoTipo)); } else { string retorno = caracterizacaoValidar.DependenciasAlteradas(esp.ReceptorEmpreendimentoID, (int)eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao, dominialidadeReceptor.Dependencias); if (!string.IsNullOrEmpty(retorno)) { Validacao.Add(Mensagem.TermoCPFARLCR.CaracterizacaoDeveEstarValida("receptor", caracterizacaoTipo)); } else { if (!dominialidadeReceptor.Dominios.Any(x => x.Id.GetValueOrDefault() == esp.ReceptorDominioID)) { Validacao.Add(Mensagem.TermoCPFARLCR.DominioDessassociado("receptor")); } List <ReservaLegal> reservas = dominialidadeReceptor.Dominios.SelectMany(x => x.ReservasLegais).Where(x => esp.CedenteARLCompensacao.Select(y => y.Id).Any(y => y == x.IdentificacaoARLCedente)).ToList(); esp.CedenteARLCompensacao.ForEach(reserva => { if (!reservas.Any(x => x.IdentificacaoARLCedente == reserva.Id)) { Validacao.Add(Mensagem.TermoCPFARLCR.ReservaLegalDessassociadoReceptor(reserva.Identificacao)); } }); } } responsaveis = especificidadeDa.ObterEmpreendimentoResponsaveis(esp.ReceptorEmpreendimentoID); esp.ReceptorResponsaveisEmpreendimento.ForEach(resp => { PessoaLst aux = responsaveis.SingleOrDefault(x => x.Id == resp.Id); if (aux == null || aux.Id <= 0) { Validacao.Add(Mensagem.TermoCPFARLCR.ResponsavelDessassociado("receptor", resp.NomeRazao)); } }); #endregion Receptor List <TituloModeloLst> lista = termoCPFARLCRDa.ObterTitulosCedenteReceptor(esp.CedenteDominioID, esp.ReceptorDominioID); lista.ForEach(titulo => { if (titulo.Id != esp.Titulo.Id) { if (string.IsNullOrEmpty(titulo.Texto)) { Validacao.Add(Mensagem.TermoCPFARLCR.DominioPossuiTituloCadastrado(titulo.Situacao)); } else { Validacao.Add(Mensagem.TermoCPFARLCR.DominioPossuiTituloConcluido(titulo.Sigla, titulo.Texto, titulo.Situacao)); } } }); return(Validacao.EhValido); }