Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
        }