internal TituloEsp IsDominioAssociado(int dominioId, int tituloID)
        {
            TituloEsp titulo = new TituloEsp();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select n.numero, n.ano, t.situacao, s.texto situacao_texto 
				from {0}esp_out_legitima_terr_devolut e, {0}tab_titulo t, {0}tab_titulo_numero n, {0}lov_titulo_situacao s 
				where t.id = e.titulo and n.titulo(+) = t.id and s.id = t.situacao and t.situacao in (1, 2, 3, 4, 6) and e.titulo != :titulo and e.dominio = :dominioId"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("titulo", tituloID, DbType.Int32);
                comando.AdicionarParametroEntrada("dominioId", dominioId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        titulo.Numero.Inteiro = reader.GetValue <int>("numero");
                        titulo.Numero.Ano     = reader.GetValue <int>("ano");
                        titulo.SituacaoId     = reader.GetValue <int>("situacao");
                        titulo.SituacaoTexto  = reader.GetValue <string>("situacao_texto");
                    }

                    reader.Close();
                }
            }

            return(titulo);
        }
Esempio n. 2
0
        internal List <TituloEsp> ObterTitulosAtividadeEmpreendimento(int requerimentoId, int atividadeId, int tituloId, int modeloId, BancoDeDados banco = null)
        {
            int              empreedimentoID     = 0;
            int              empreedimentoCodigo = 0;
            string           empreedimentoCNPJ   = string.Empty;
            List <TituloEsp> lstTitulos          = new List <TituloEsp>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
            {
                Comando comando = bancoDeDados.CriarComando(@"select ee.id, ee.codigo, ee.cnpj from tab_requerimento r, tab_empreendimento ee where ee.id = r.empreendimento and r.id = :requerimento", EsquemaBanco);
                comando.AdicionarParametroEntrada("requerimento", requerimentoId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        empreedimentoID     = reader.GetValue <int>("id");
                        empreedimentoCodigo = reader.GetValue <int>("codigo");
                        empreedimentoCNPJ   = reader.GetValue <string>("cnpj");
                    }

                    reader.Close();
                }
            }

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                // 10 - Encerrado(Situação)

                Comando comando = bancoDeDados.CriarComando(@"
				select tt.situacao, tt.situacao_motivo, tn.ano, tn.numero, m.nome modelo
					from {0}tab_titulo           tt,
						{0}tab_titulo_numero     tn,
						{0}tab_titulo_modelo     m,
						{0}tab_titulo_atividades ta,
						{0}tab_empreendimento    e
					where ta.titulo = tt.id
					and tt.id = tn.titulo(+)
					and tt.modelo = m.id
					and e.id(+) = tt.empreendimento
					and ta.atividade = :atividade
					and tt.id <> :titulo
					and m.id = :modelo
					and tt.situacao != 10
					and tt.credenciado is null
					and (e.codigo = :empreendimento_codigo
					or e.cnpj = :empreendimento_cnpj)
				union all
				select tt.situacao, tt.situacao_motivo, tn.ano, tn.numero, m.nome modelo
					from {0}tab_titulo           tt,
						{0}tab_titulo_numero     tn,
						{0}tab_titulo_modelo     m,
						{0}tab_titulo_atividades ta,
						{0}cre_empreendimento    e
					where ta.titulo = tt.id
					and tt.id = tn.titulo(+)
					and tt.modelo = m.id
					and e.id(+) = tt.empreendimento
					and ta.atividade = :atividade
					and tt.id <> :titulo
					and m.id = :modelo
					and tt.situacao != 10
					and tt.credenciado is not null
					and (tt.empreendimento = :empreendimento
					or e.cnpj = :empreendimento_cnpj)"                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("empreendimento", empreedimentoID, DbType.Int32);
                comando.AdicionarParametroEntrada("empreendimento_codigo", empreedimentoCodigo, DbType.Int32);
                comando.AdicionarParametroEntrada("empreendimento_cnpj", empreedimentoCNPJ, DbType.String);
                comando.AdicionarParametroEntrada("atividade", atividadeId, DbType.Int32);
                comando.AdicionarParametroEntrada("titulo", tituloId, DbType.Int32);
                comando.AdicionarParametroEntrada("modelo", modeloId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    TituloEsp tituloEsp;

                    while (reader.Read())
                    {
                        tituloEsp = new TituloEsp();

                        tituloEsp.Numero.Inteiro       = reader.GetValue <int?>("numero");
                        tituloEsp.Modelo               = reader.GetValue <string>("modelo");
                        tituloEsp.Numero.Ano           = reader.GetValue <int?>("ano");
                        tituloEsp.SituacaoId           = reader.GetValue <int>("situacao");
                        tituloEsp.MotivoEncerramentoId = reader.GetValue <int?>("situacao_motivo");

                        lstTitulos.Add(tituloEsp);
                    }

                    reader.Close();
                }
            }

            return(lstTitulos);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            #region Variáveis

            OutrosLegitimacaoTerraDevolutaDa _da                 = new OutrosLegitimacaoTerraDevolutaDa();
            CaracterizacaoBus              caracterizacaoBus     = new CaracterizacaoBus();
            CaracterizacaoValidar          caracterizacaoValidar = new CaracterizacaoValidar();
            List <Dependencia>             dependencias          = new List <Dependencia>();
            OutrosLegitimacaoTerraDevoluta esp             = especificidade as OutrosLegitimacaoTerraDevoluta;
            List <Caracterizacao>          caracterizacoes = caracterizacaoBus.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            int    idCaracterizacao;
            string titulo = string.Empty;

            #endregion

            #region Requerimento

            //O requerimento <nº> não está mais associado ao processo <nº>.
            //A atividade <nome> não está mais associada ao processo.
            //A atividade <nome> deve estar na situação ‘em andamento’.
            //Este modelo de título não foi solicitado para a atividade <nome>’.

            RequerimentoAtividade(esp, apenasObrigatoriedade: true);

            #endregion

            #region Atividade

            //O modelo de título <nome do modelo> não pode ser utilizado para atividade <nome da atividade selecionada na especificidade do título>.
            if (!ConfiguracaoAtividade.ObterId(new[] {
                (int)eAtividadeCodigo.RegularizacaoFundiariaRural,
                (int)eAtividadeCodigo.RegularizacaoFundiariaUrbana,
                (int)eAtividadeCodigo.RegularizacaoFundiariaRuralOriundaDeProcessoDiscriminatorio,
                (int)eAtividadeCodigo.RegularizacaoFundiariaUrbanaOriundaDeProcessoDiscriminatorio
            }).Any(x => x == esp.Atividades[0].Id))
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.AtividadeInvalida(esp.Atividades[0].NomeAtividade));
            }

            #endregion

            #region Destinatários

            if (esp.Destinatarios.Count == 0)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioObrigatorio("Outros_Destinatarios"));
            }
            else
            {
                esp.Destinatarios.ForEach(x =>
                {
                    Destinatario(esp.ProtocoloReq.Id, x.Id, "Outros_Destinatarios");
                });
            }

            #endregion

            #region Caracterização

            //A caracterização de <nome da caracterização> deve estar cadastrada.
            //Para cadastrar este modelo de título é necessário ter os dados da caracterização <nome da caracterização dependente> válidos.

            idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.RegularizacaoFundiaria);
            if (idCaracterizacao > 0)
            {
                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.RegularizacaoFundiaria, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.RegularizacaoFundiaria, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.CaracterizacaoValida(caracterizacoes.Single(x => x.Tipo == eCaracterizacao.RegularizacaoFundiaria).Nome));
                }
            }
            else
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.CaracterizacaoCadastrada);
            }

            #endregion

            #region Posse

            if (esp.Dominio == 0)
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.DominioObrigatorio);
            }
            else
            {
                if (!_da.IsDominioCadastrado(esp.Dominio))
                {
                    Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.DominioInexistente);
                }

                TituloEsp tituloAux = _da.IsDominioAssociado(esp.Dominio, esp.Titulo.Id);
                switch ((eTituloSituacao)tituloAux.SituacaoId)
                {
                case eTituloSituacao.Cadastrado:
                case eTituloSituacao.Emitido:
                case eTituloSituacao.Assinado:
                    Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.PosseAssociadaSituacao(tituloAux.SituacaoTexto));
                    break;

                case eTituloSituacao.Concluido:
                case eTituloSituacao.Prorrogado:
                    Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.PosseAssociadaNumero(tituloAux.Numero.Texto));
                    break;
                }
            }

            #endregion

            if (string.IsNullOrWhiteSpace(esp.ValorTerreno))
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.ValorTerrenoObrigatorio);
            }

            if (!esp.IsInalienabilidade.HasValue)
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.IsInalienabilidadeObrigatorio);
            }

            if (esp.MunicipioGlebaId <= 0)
            {
                Validacao.Add(Mensagem.OutrosLegitimacaoTerraDevolutaMsg.MunicipioGlebaObrigatorio);
            }

            return(Validacao.EhValido);
        }