internal Termo ObterDadosPDF(int titulo, BancoDeDados banco = null) { Termo termo = new Termo(); TermoCPFARLC termoCPFARLC = Obter(titulo, banco); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { Comando comando = null; #region Título DadosPDF dados = DaEsp.ObterDadosTitulo(titulo, bancoDeDados); Dominialidade dominialidadeCedente = new DominialidadeBus().ObterPorEmpreendimento(dados.Empreendimento.Id.GetValueOrDefault()); Dominialidade dominialidadeReceptora = new DominialidadeBus().ObterPorEmpreendimento(termoCPFARLC.ReceptorEmpreendimentoID); termo.Titulo = dados.Titulo; termo.Titulo.SetorEndereco = DaEsp.ObterEndSetor(termo.Titulo.SetorId); termo.Protocolo = dados.Protocolo; termo.Empreendimento = dados.Empreendimento; termo.Dominialidade = new DominialidadePDF(); #endregion #region Especificidade #region Empreendimento Cedente termo.Interessados = new List <PessoaPDF>(); foreach (var interessado in termoCPFARLC.CedenteResponsaveisEmpreendimento) { termo.Interessados.Add(new PessoaPDF() { NomeRazaoSocial = interessado.NomeRazao.Remove(0, interessado.NomeRazao.LastIndexOf('-') + 1).Trim(), TipoTexto = interessado.TipoTexto }); } #endregion #region Empreendimento Receptor comando = bancoDeDados.CriarComando(@" select e.denominador, e.codigo, tee.logradouro, tee.numero, tee.distrito, lm.texto endMunicipio, d.croqui_area from {0}tab_empreendimento e, {0}tab_empreendimento_endereco tee, {0}lov_municipio lm, {0}esp_termo_cpfarlc c, {0}crt_dominialidade d where tee.empreendimento = e.id and lm.id = tee.municipio and e.id = c.emp_receptor and d.empreendimento = c.emp_receptor and c.titulo = :titulo" , EsquemaBanco); comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { termo.Empreendimento2.Denominador = reader.GetValue <string>("denominador"); termo.Empreendimento2.Codigo = reader.GetValue <string>("codigo"); termo.Empreendimento2.EndLogradouro = reader.GetValue <string>("logradouro"); termo.Empreendimento2.EndNumero = reader.GetValue <string>("numero"); termo.Empreendimento2.EndDistrito = reader.GetValue <string>("distrito"); termo.Empreendimento2.EndMunicipio = reader.GetValue <string>("endMunicipio"); termo.Empreendimento2.ATPCroquiDecimal = reader.GetValue <decimal>("croqui_area"); } reader.Close(); } termo.Interessados2 = new List <PessoaPDF>(); foreach (var interessado in termoCPFARLC.ReceptorResponsaveisEmpreendimento) { termo.Interessados2.Add(new PessoaPDF() { NomeRazaoSocial = interessado.NomeRazao.Remove(0, interessado.NomeRazao.LastIndexOf('-') + 1).Trim(), TipoTexto = interessado.TipoTexto }); } #endregion #region Matricula/Posse DominioPDF dominioCedentePDF = new DominioPDF(dominialidadeCedente.Dominios.SingleOrDefault(d => d.Id == termoCPFARLC.CedenteDominioID)); dominioCedentePDF.TipoCompensacao = "Cedente"; termo.Dominialidade.Dominios.Add(dominioCedentePDF); DominioPDF dominioReceptorPDF = new DominioPDF(dominialidadeReceptora.Dominios.SingleOrDefault(x => x.Id == termoCPFARLC.ReceptorDominioID)); dominioReceptorPDF.TipoCompensacao = "Receptor"; termo.Dominialidade.Dominios.Add(dominioReceptorPDF); #endregion #region ARL termo.RLPreservada = new List <AreaReservaLegalPDF>(); termo.RLFormacao = new List <AreaReservaLegalPDF>(); List <ReservaLegal> reservas = dominialidadeCedente.Dominios.SelectMany(x => x.ReservasLegais).Where(x => termoCPFARLC.CedenteARLCompensacao.Select(y => y.Id).Any(y => y == x.Id)).ToList(); reservas.ForEach(x => { AreaReservaLegalPDF areaARLPdf = new AreaReservaLegalPDF() { Tipo = x.SituacaoVegetalId.GetValueOrDefault(), AreaCroqui = x.ARLCroqui.ToStringTrunc(), Identificacao = x.Identificacao, CoordenadaE = x.Coordenada.EastingUtm.ToString(), CoordenadaN = x.Coordenada.NorthingUtm.ToString() }; if (areaARLPdf.Tipo == (int)eReservaLegalSituacaoVegetal.Preservada) { termo.RLPreservada.Add(areaARLPdf); } else if (areaARLPdf.Tipo == (int)eReservaLegalSituacaoVegetal.EmRecuperacao) { termo.RLFormacao.Add(areaARLPdf); } }); termo.RLTotalPreservada = termo.RLPreservada.Sum(x => Convert.ToDecimal(x.AreaCroqui)).ToStringTrunc(); termo.RLTotalFormacao = termo.RLFormacao.Sum(x => Convert.ToDecimal(x.AreaCroqui)).ToStringTrunc(); termo.Empreendimento2.ARLRecebidaDecimal = termo.Dominialidade.ARLCedente; #endregion #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; 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); }