예제 #1
0
        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);
        }
예제 #2
0
        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);
        }