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); }
internal Termo ObterDadosPDF(int titulo, BancoDeDados banco = null) { Termo termo = new Termo(); termo.Dominialidade = new DominialidadePDF(); List <int> destinatarioIds = new List <int>(); PessoaPDF pessoa = null; DateTime dataEmissao; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Título DadosPDF dados = DaEsp.ObterDadosTitulo(titulo, bancoDeDados); termo.Titulo = dados.Titulo; termo.Protocolo = dados.Protocolo; termo.Empreendimento = dados.Empreendimento; termo.Dominialidade = new DominialidadePDF(new DominialidadeBus().ObterPorEmpreendimento(dados.Empreendimento.Id.GetValueOrDefault())); #endregion #region Especificidade Comando comando = bancoDeDados.CriarComando(@"select e.data_emissao_titulo_anterior, e.numero_averbacao from {0}esp_termo_comp_pfarlr e where e.titulo = :titulo", EsquemaBanco); comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { dataEmissao = reader.GetValue <DateTime>("data_emissao_titulo_anterior"); termo.NumeroAverbacao = reader.GetValue <string>("numero_averbacao"); GerenciadorConfiguracao _config = new GerenciadorConfiguracao(new ConfiguracaoSistema()); termo.Titulo.TituloAnteriorMesEmissao = _config.Obter <List <String> >(ConfiguracaoSistema.KeyMeses).ElementAt(dataEmissao.Month - 1); termo.Titulo.TituloAnteriorDiaEmissao = dataEmissao.Day.ToString(); termo.Titulo.TituloAnteriorAnoEmissao = dataEmissao.Year.ToString(); } reader.Close(); } #endregion #region Informacões do cartorio comando = bancoDeDados.CriarComando(@"select stragg(distinct ' nº ' || b.numero_cartorio || ', folha(s) ' || b.numero_folha || ' do livro nº ' || b.numero_livro || ', no ' || b.nome_cartorio) cartorio from {0}esp_termo_comp_pfarlr a, {0}crt_dominialidade_reserva b, {0}tab_titulo t where b.dominio in (select id from {0}crt_dominialidade_dominio where dominialidade = (select id from {0}crt_dominialidade where empreendimento = t.empreendimento and t.id = a.titulo)) and a.titulo = :titulo and t.id = a.titulo" , EsquemaBanco); comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32); termo.InformacoesRegistro = bancoDeDados.ExecutarScalar <string>(comando); #endregion #region Interessado comando = bancoDeDados.CriarComando(@" select t.destinatario from {0}esp_termo_comp_pfarlr_destina t, {0}esp_termo_comp_pfarlr e where t.especificidade = e.id and e.titulo = :titulo ", EsquemaBanco); comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32); destinatarioIds = bancoDeDados.ExecutarList <int>(comando); termo.Interessados = new List <PessoaPDF>(); foreach (int destId in destinatarioIds) { pessoa = _daEsp.ObterDadosPessoa(destId, dados.Empreendimento.Id, banco); pessoa.VinculoTipoTexto = pessoa.VinculoTipoTexto == "Outro" ? "Representante" : pessoa.VinculoTipoTexto; termo.Interessados.Add(pessoa); } #endregion #region ARLs comando = bancoDeDados.CriarComando(@"select r.identificacao, r.arl_croqui, null coordenadaN, null coordenadaE, r.situacao_vegetal from {0}crt_dominialidade_reserva r, {0}esp_termo_comp_pfarlr e where e.titulo = :titulo and r.dominio in (select id from {0}crt_dominialidade_dominio where dominialidade = :dominialidade)" , EsquemaBanco); comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32); comando.AdicionarParametroEntrada("dominialidade", termo.Dominialidade.Id, DbType.Int32); AreaReservaLegalPDF areaARLPdf = null; using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { termo.RLFormacao = new List <AreaReservaLegalPDF>(); termo.RLPreservada = new List <AreaReservaLegalPDF>(); while (reader.Read()) { areaARLPdf = new AreaReservaLegalPDF() { Tipo = reader.GetValue <int>("situacao_vegetal"), AreaCroqui = Convert.ToDecimal(reader.GetValue <string>("arl_croqui")).ToStringTrunc(), CoordenadaE = reader.GetValue <string>("coordenadaE"), CoordenadaN = reader.GetValue <string>("coordenadaN"), Identificacao = reader.GetValue <string>("identificacao") }; if (areaARLPdf.Tipo == (int)eReservaLegalSituacaoVegetal.Preservada) { termo.RLPreservada.Add(areaARLPdf); } else if (areaARLPdf.Tipo == (int)eReservaLegalSituacaoVegetal.EmRecuperacao) { termo.RLFormacao.Add(areaARLPdf); } } reader.Close(); } termo.RLTotalPreservada = termo.RLPreservada.Sum(x => Convert.ToDecimal(x.AreaCroqui)).ToStringTrunc(); termo.RLTotalFormacao = termo.RLFormacao.Sum(x => Convert.ToDecimal(x.AreaCroqui)).ToStringTrunc(); #endregion #region ARLs - Coordenadas comando = bancoDeDados.CriarComando(@"select arl.codigo, c.empreendimento, c.id dominialidade, pr.id, trunc(arl_o.column_value, 2) coordenada from {0}crt_dominialidade c, {0}crt_projeto_geo pr, {0}crt_dominialidade_reserva cr, {1}geo_arl arl, table(geometria9i.pontoIdeal(arl.geometry).SDO_ORDINATES) arl_o where c.id = :dominialidade and pr.empreendimento = c.empreendimento and arl.codigo = :codigo and pr.caracterizacao = 1 and cr.dominio in (select id from {0}crt_dominialidade_dominio where dominialidade = c.id) and cr.identificacao = arl.codigo and arl.projeto = pr.id" , EsquemaBanco, EsquemaBancoGeo); comando.AdicionarParametroEntrada("dominialidade", termo.Dominialidade.Id, DbType.Int32); comando.AdicionarParametroEntrada("codigo", DbType.String); foreach (var item in termo.RLFormacao) { comando.SetarValorParametro("codigo", item.Identificacao); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { item.CoordenadaE = reader.GetValue <string>("coordenada"); } if (reader.Read()) { item.CoordenadaN = reader.GetValue <string>("coordenada"); } reader.Close(); } } foreach (var item in termo.RLPreservada) { comando.SetarValorParametro("codigo", item.Identificacao); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { item.CoordenadaE = reader.GetValue <string>("coordenada"); } if (reader.Read()) { item.CoordenadaN = reader.GetValue <string>("coordenada"); } reader.Close(); } } #endregion } return(termo); }
internal Termo ObterDadosPDF(int titulo, BancoDeDados banco = null) { Termo termo = new Termo(); termo.Dominialidade = new DominialidadePDF(); List <int> destinatarioIds = new List <int>(); PessoaPDF pessoa = null; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Título DadosPDF dados = DaEsp.ObterDadosTitulo(titulo, bancoDeDados); termo.Titulo = dados.Titulo; termo.Protocolo = dados.Protocolo; termo.Empreendimento = dados.Empreendimento; termo.Dominialidade = new DominialidadePDF(new DominialidadeBus().ObterPorEmpreendimento(dados.Empreendimento.Id.GetValueOrDefault())); #endregion #region Especificidade List <ReservaLegalPDF> reservas = new List <ReservaLegalPDF>(); termo.Dominialidade.Dominios.ForEach(dominio => { dominio.ReservasLegais.ForEach(r => { reservas.Add(r); }); }); #endregion #region Interessado Comando comando = bancoDeDados.CriarComando(@" select t.destinatario from {0}esp_termo_comp_pfarl_destinat t, {0}esp_termo_comp_pfarl e where t.especificidade = e.id and e.titulo = :titulo ", EsquemaBanco); comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32); destinatarioIds = bancoDeDados.ExecutarList <int>(comando); termo.Interessados = new List <PessoaPDF>(); foreach (int destId in destinatarioIds) { pessoa = _daEsp.ObterDadosPessoa(destId, dados.Empreendimento.Id, banco); pessoa.VinculoTipoTexto = pessoa.VinculoTipoTexto == "Outro" ? "Representante" : pessoa.VinculoTipoTexto; termo.Interessados.Add(pessoa); } #endregion #region ARLs comando = bancoDeDados.CriarComando(@"select r.identificacao, r.arl_croqui, null coordenadaN, null coordenadaE, r.situacao, r.situacao_vegetal from {0}crt_dominialidade_reserva r, {0}esp_termo_comp_pfarl e where e.titulo = :titulo and r.dominio in (select id from {0}crt_dominialidade_dominio where dominialidade = :dominialidade)" , EsquemaBanco); comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32); comando.AdicionarParametroEntrada("dominialidade", termo.Dominialidade.Id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { termo.RLFormacao = new List <AreaReservaLegalPDF>(); termo.RLPreservada = new List <AreaReservaLegalPDF>(); while (reader.Read()) { int situacaoVegetal = reader.GetValue <int>("situacao_vegetal"); int situacao = reader.GetValue <int>("situacao"); switch (situacaoVegetal) { case (int)eReservaLegalSituacaoVegetal.Preservada: if (situacao == (int)eReservaLegalSituacao.Proposta) { termo.RLPreservada.Add(new AreaReservaLegalPDF { AreaCroqui = Convert.ToDecimal(reader.GetValue <string>("arl_croqui")).ToStringTrunc(), CoordenadaE = reader.GetValue <string>("coordenadaE"), CoordenadaN = reader.GetValue <string>("coordenadaN"), Identificacao = reader.GetValue <string>("identificacao") }); } break; case (int)eReservaLegalSituacaoVegetal.EmRecuperacao: if (situacao == (int)eReservaLegalSituacao.Proposta) { termo.RLFormacao.Add(new AreaReservaLegalPDF { AreaCroqui = Convert.ToDecimal(reader.GetValue <string>("arl_croqui")).ToStringTrunc(), CoordenadaE = reader.GetValue <string>("coordenadaE"), CoordenadaN = reader.GetValue <string>("coordenadaN"), Identificacao = reader.GetValue <string>("identificacao") }); } break; } } reader.Close(); } termo.RLTotalPreservada = termo.RLPreservada.Sum(x => Convert.ToDecimal(x.AreaCroqui)).ToStringTrunc(); termo.RLTotalFormacao = termo.RLFormacao.Sum(x => Convert.ToDecimal(x.AreaCroqui)).ToStringTrunc(); #endregion #region ARLs - Coordenadas comando = bancoDeDados.CriarComando(@"select arl.codigo, c.empreendimento, c.id dominialidade, pr.id, trunc(arl_o.column_value, 2) coordenada from {0}crt_dominialidade c, {0}crt_projeto_geo pr, {0}crt_dominialidade_reserva cr, {1}geo_arl arl, table(geometria9i.pontoIdeal(arl.geometry).SDO_ORDINATES) arl_o where pr.empreendimento = c.empreendimento and c.id = :dominialidade and arl.codigo = :codigo and pr.caracterizacao = 1 and cr.identificacao = arl.codigo and cr.dominio in (select id from {0}crt_dominialidade_dominio dm where dm.dominialidade = c.id) and arl.projeto = pr.id" , EsquemaBanco, EsquemaBancoGeo); comando.AdicionarParametroEntrada("dominialidade", termo.Dominialidade.Id, DbType.Int32); comando.AdicionarParametroEntrada("codigo", DbType.String); foreach (var item in termo.RLFormacao) { comando.SetarValorParametro("codigo", item.Identificacao); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { item.CoordenadaE = reader.GetValue <string>("coordenada"); } if (reader.Read()) { item.CoordenadaN = reader.GetValue <string>("coordenada"); } reader.Close(); } } foreach (var item in termo.RLPreservada) { comando.SetarValorParametro("codigo", item.Identificacao); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { item.CoordenadaE = reader.GetValue <string>("coordenada"); } if (reader.Read()) { item.CoordenadaN = reader.GetValue <string>("coordenada"); } reader.Close(); } } #endregion } return(termo); }
internal Outros ObterDadosPDF(int titulo, BancoDeDados banco = null) { Outros outros = new Outros(); InformacaoCorteBus infoCorteBus = new InformacaoCorteBus(); InformacaoCorte infoCorte = null; InformacaoCorteInformacao infoCorteInfo = null; int infoCorteInfoId = 0; using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Dados do Titulo DadosPDF dados = DaEsp.ObterDadosTitulo(titulo, bancoDeDados); outros.Titulo = dados.Titulo; outros.Titulo.SetorEndereco = DaEsp.ObterEndSetor(outros.Titulo.SetorId); outros.Protocolo = dados.Protocolo; outros.Empreendimento = dados.Empreendimento; #endregion #region Especificidade Comando comando = bancoDeDados.CriarComando(@" select e.destinatario, e.informacao_corte from {0}esp_out_informacao_corte e where e.titulo = :titulo ", EsquemaBanco); comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { outros.Destinatario = _daEsp.ObterDadosPessoa(reader.GetValue <int>("destinatario"), outros.Empreendimento.Id, bancoDeDados); infoCorteInfoId = reader.GetValue <int>("informacao_corte"); } reader.Close(); } #endregion #region Dominialidade DominialidadeBus _dominialidadeBus = new DominialidadeBus(); outros.Dominialidade = new DominialidadePDF(_dominialidadeBus.ObterPorEmpreendimento(outros.Empreendimento.Id.GetValueOrDefault(), banco: bancoDeDados)); #endregion #region Informação de corte infoCorte = infoCorteBus.ObterPorEmpreendimento(outros.Empreendimento.Id.GetValueOrDefault(), banco: bancoDeDados); if (infoCorte != null) { infoCorteInfo = infoCorte.InformacoesCortes.SingleOrDefault(x => x.Id == infoCorteInfoId); if (infoCorteInfo != null) { outros.InformacaoCorteInfo = new InformacaoCorteInfoPDF(infoCorteInfo); } } #endregion } return(outros); }