Exemplo n.º 1
0
        internal Resultados <SolicitacaoListarResultados> Filtrar(Filtro <SolicitacaoListarFiltro> filtros, BancoDeDados banco = null)
        {
            Resultados <SolicitacaoListarResultados> retorno = new Resultados <SolicitacaoListarResultados>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                string  comandtxt    = string.Empty;
                string  esquemaBanco = string.IsNullOrEmpty(EsquemaBanco) ? "" : ".";
                Comando comando      = bancoDeDados.CriarComando("");

                #region Adicionando Filtros

                comandtxt += comando.FiltroAnd("l.solicitacao_numero", "solicitacao_numero", filtros.Dados.SolicitacaoNumero);

                comandtxt += comando.FiltroAnd("l.empreendimento_codigo", "empreendimento_codigo", filtros.Dados.EmpreendimentoCodigo);

                comandtxt += comando.FiltroAndLike("l.protocolo_numero_completo", "protocolo_numero_completo", filtros.Dados.Protocolo.NumeroTexto);

                comandtxt += comando.FiltroAndLike("l.declarante_nome_razao", "declarante_nome_razao", filtros.Dados.DeclaranteNomeRazao, true);

                comandtxt += comando.FiltroAnd("l.declarante_cpf_cnpj", "declarante_cpf_cnpj", filtros.Dados.DeclaranteCPFCNPJ);

                comandtxt += comando.FiltroAndLike("l.empreendimento_denominador", "empreendimento_denominador", filtros.Dados.EmpreendimentoDenominador, true);

                comandtxt += comando.FiltroAnd("l.municipio_id", "municipio_id", filtros.Dados.Municipio);

                comandtxt += comando.FiltroAnd("l.requerimento", "requerimento", filtros.Dados.Requerimento);

                comandtxt += comando.FiltroAnd("l.titulo_numero", "titulo_numero", filtros.Dados.Titulo.Inteiro);

                comandtxt += comando.FiltroAnd("l.titulo_ano", "titulo_ano", filtros.Dados.Titulo.Ano);

                comandtxt += comando.FiltroAnd("l.origem", "origem", filtros.Dados.Origem);

                comandtxt += comando.FiltroAnd("l.responsavel", "responsavel_cpf_cnpj", filtros.Dados.ResponsavelEmpreendimentoCPFCNPJ);

                if (!String.IsNullOrWhiteSpace(filtros.Dados.Situacao))
                {
                    comandtxt += comando.FiltroAnd("l.situacao_id", "situacao", filtros.Dados.Situacao);
                    comandtxt += comando.FiltroAnd("l.tipo", "tipo", 1);                    //Solicitacao
                }

                if (filtros.Dados.Situacoes.Count > 0)
                {
                    comandtxt += String.Format(" and l.situacao_texto in ({0})", String.Join(",", filtros.Dados.Situacoes));
                }

                List <String> ordenar = new List <String>();
                List <String> colunas = new List <String>()
                {
                    "solicitacao_numero", "empreendimento_denominador", "municipio_texto", "situacao_texto"
                };

                if (filtros.OdenarPor > 0)
                {
                    ordenar.Add(colunas.ElementAtOrDefault(filtros.OdenarPor - 1));
                }
                else
                {
                    ordenar.Add("solicitacao_numero");
                }

                #endregion

                #region Quantidade de registro do resultado

                comando.DbCommand.CommandText = String.Format(@"
				select count(1) from (select '' responsavel, s.id, s.solic_tit_id, s.solicitacao_numero, null titulo_numero, null titulo_ano, 
				s.protocolo_id, s.protocolo_numero, s.protocolo_ano, s.protocolo_numero_completo, null projeto_digital, null 
				credenciado, s.declarante_id, s.declarante_nome_razao, s.declarante_cpf_cnpj, s.empreendimento_id, s.empreendimento_codigo,
				s.empreendimento_denominador, s.municipio_id, s.municipio_texto, s.situacao_id, s.situacao_texto, s.requerimento, 1 origem, 1 tipo 
				from lst_car_solic_tit s where s.tipo = 1 union all select nvl(hp.cpf, hp.cnpj) responsavel, s.id, s.solic_tit_id, null solicitacao_numero, s.titulo_numero, 
				s.titulo_ano, s.protocolo_id, s.protocolo_numero, s.protocolo_ano, s.protocolo_numero_completo, null projeto_digital, null credenciado, 
				s.declarante_id, s.declarante_nome_razao, s.declarante_cpf_cnpj, s.empreendimento_id, s.empreendimento_codigo, s.empreendimento_denominador, 
				s.municipio_id, s.municipio_texto, null situacao_id, s.situacao_texto, s.requerimento, 1 origem, 2 tipo from lst_car_solic_tit s, hst_titulo ht, 
				hst_empreendimento he, hst_empreendimento_responsavel her, hst_pessoa hp where ht.titulo_id = s.solic_tit_id and ht.situacao_id = 3/*Concluído*/ 
				and he.empreendimento_id = ht.empreendimento_id and he.tid = ht.empreendimento_tid and her.id_hst = he.id and hp.pessoa_id = her.responsavel_id 
				and hp.tid = her.responsavel_tid and s.tipo = 2 union all select '' responsavel, c.id, c.solicitacao_id solic_tit_id, c.numero solicitacao_numero, 
				null titulo_numero, null titulo_ano, null protocolo_id, null protocolo_numero, null protocolo_ano, null protocolo_numero_completo, c.projeto_digital, 
				c.credenciado, c.declarante_id, c.declarante_nome_razao, c.declarante_cpf_cnpj, c.empreendimento_id, c.empreendimento_codigo, 
				c.empreendimento_denominador, c.municipio_id, c.municipio_texto, c.situacao_id, c.situacao_texto, c.requerimento, 2 origem, 1 tipo 
				from lst_car_solicitacao_cred c) l where 1 = 1"                 + comandtxt, esquemaBanco);

                retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando));

                comando.AdicionarParametroEntrada("menor", filtros.Menor);
                comando.AdicionarParametroEntrada("maior", filtros.Maior);

                comandtxt = @"select l.solic_tit_id, l.responsavel ,nvl(l.solicitacao_numero, l.titulo_numero) numero, l.titulo_ano ano, l.empreendimento_denominador, 
				l.municipio_texto, l.situacao_texto, l.credenciado, l.origem, l.tipo from (select '' responsavel, s.id, s.solic_tit_id, s.solicitacao_numero, null titulo_numero, 
				null titulo_ano, s.protocolo_id, s.protocolo_numero, s.protocolo_ano, s.protocolo_numero_completo, null projeto_digital, null 
				credenciado, s.declarante_id, s.declarante_nome_razao, s.declarante_cpf_cnpj, s.empreendimento_id, s.empreendimento_codigo,
				s.empreendimento_denominador, s.municipio_id, s.municipio_texto, s.situacao_id, s.situacao_texto, s.requerimento, 1 origem, 1 tipo 
				from lst_car_solic_tit s where s.tipo = 1 union all select nvl(hp.cpf, hp.cnpj) responsavel, s.id, s.solic_tit_id, null solicitacao_numero, s.titulo_numero, 
				s.titulo_ano, s.protocolo_id, s.protocolo_numero, s.protocolo_ano, s.protocolo_numero_completo, null projeto_digital, null credenciado, 
				s.declarante_id, s.declarante_nome_razao, s.declarante_cpf_cnpj, s.empreendimento_id, s.empreendimento_codigo, s.empreendimento_denominador, 
				s.municipio_id, s.municipio_texto, null situacao_id, s.situacao_texto, s.requerimento, 1 origem, 2 tipo from lst_car_solic_tit s, hst_titulo ht, hst_empreendimento he, 
				hst_empreendimento_responsavel her, hst_pessoa hp where ht.titulo_id = s.solic_tit_id and ht.situacao_id = 3/*Concluído*/ and he.empreendimento_id = ht.empreendimento_id 
				and he.tid = ht.empreendimento_tid and her.id_hst = he.id and hp.pessoa_id = her.responsavel_id and hp.tid = her.responsavel_tid and s.tipo = 2 
				union all select '' responsavel, c.id, c.solicitacao_id solic_tit_id, c.numero solicitacao_numero, null titulo_numero, 
				null titulo_ano, null protocolo_id, null protocolo_numero, null protocolo_ano, null protocolo_numero_completo, c.projeto_digital, 
				c.credenciado, c.declarante_id, c.declarante_nome_razao, c.declarante_cpf_cnpj, c.empreendimento_id, c.empreendimento_codigo, 
				c.empreendimento_denominador, c.municipio_id, c.municipio_texto, c.situacao_id, c.situacao_texto, c.requerimento, 2 origem, 1 tipo 
				from lst_car_solicitacao_cred c) l where 1 = 1"                 + comandtxt + DaHelper.Ordenar(colunas, ordenar);

                comando.DbCommand.CommandText = String.Format(@"select * from (select a.*, rownum rnum from ( " + comandtxt + @") a) where rnum <= :maior and rnum >= :menor", esquemaBanco);

                #endregion

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    #region Adicionando o retorno

                    SolicitacaoListarResultados item;

                    while (reader.Read())
                    {
                        item        = new SolicitacaoListarResultados();
                        item.Id     = reader.GetValue <int>("solic_tit_id");
                        item.Numero = reader.GetValue <string>("numero");
                        item.Ano    = reader.GetValue <string>("ano");
                        item.EmpreendimentoDenominador = reader.GetValue <string>("empreendimento_denominador");
                        item.MunicipioTexto            = reader.GetValue <string>("municipio_texto");
                        item.SituacaoTexto             = reader.GetValue <string>("situacao_texto");
                        item.IsTitulo      = reader.GetValue <int>("tipo") == 2;
                        item.CredenciadoId = reader.GetValue <int>("credenciado");
                        item.Origem        = (eCARSolicitacaoOrigem)(reader.GetValue <int>("origem"));
                        retorno.Itens.Add(item);
                    }

                    reader.Close();

                    #endregion Adicionando o retorno
                }
            }

            return(retorno);
        }
Exemplo n.º 2
0
        internal Resultados <SolicitacaoListarResultados> Filtrar(Filtro <SolicitacaoListarFiltro> filtros, BancoDeDados banco = null)
        {
            Resultados <SolicitacaoListarResultados> retorno = new Resultados <SolicitacaoListarResultados>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                string  comandtxt    = string.Empty;
                string  esquemaBanco = string.IsNullOrEmpty(UsuarioInterno) ? "" : ".";
                Comando comando      = bancoDeDados.CriarComando("");

                #region Adicionando Filtros

                comandtxt += comando.FiltroAnd("l.solicitacao_numero", "solicitacao_numero", filtros.Dados.SolicitacaoNumero);

                comandtxt += comando.FiltroAnd("l.empreendimento_codigo", "empreendimento_codigo", filtros.Dados.EmpreendimentoCodigo);

                comandtxt += comando.FiltroAndLike("l.protocolo_numero_completo", "protocolo_numero_completo", filtros.Dados.Protocolo.NumeroTexto);

                comandtxt += comando.FiltroAndLike("l.declarante_nome_razao", "declarante_nome_razao", filtros.Dados.DeclaranteNomeRazao);

                comandtxt += comando.FiltroAnd("l.declarante_cpf_cnpj", "declarante_cpf_cnpj", filtros.Dados.DeclaranteCPFCNPJ);

                comandtxt += comando.FiltroAndLike("l.empreendimento_denominador", "empreendimento_denominador", filtros.Dados.EmpreendimentoDenominador);

                comandtxt += comando.FiltroAnd("l.municipio_id", "municipio_id", filtros.Dados.Municipio);

                comandtxt += comando.FiltroAnd("l.requerimento", "requerimento", filtros.Dados.Requerimento);

                comandtxt += comando.FiltroAnd("l.titulo_numero", "titulo_numero", filtros.Dados.Titulo.Inteiro);

                comandtxt += comando.FiltroAnd("l.titulo_ano", "titulo_ano", filtros.Dados.Titulo.Ano);

                comandtxt += comando.FiltroAnd("l.situacao_id", "situacao", filtros.Dados.Situacao);

                #endregion

                #region Quantidade de registro do resultado

                comando.DbCommand.CommandText = String.Format(@"select count(1) from {0}lst_car_solic_tit l, {0}tab_requerimento tr where 1 = 1 and l.requerimento = tr.id and
				(l.requerimento in (select r.id from {0}tab_requerimento r, {0}tab_pessoa tp where r.interessado = tp.id and nvl(tp.cpf, tp.cnpj) = :cpfCnpj) or 
				l.requerimento in (select r.id from {0}tab_requerimento r, {0}tab_pessoa tp, {0}tab_requerimento_responsavel trr where r.id = trr.requerimento and trr.responsavel = tp.id 
				and nvl(tp.cpf, tp.cnpj) = :cpfCnpj) or l.requerimento in (select r.id {0}from tab_requerimento r, {0}tab_pessoa tp, {0}tab_empreendimento te, 
				{0}tab_empreendimento_responsavel ter where r.empreendimento = te.id and te.id = ter.empreendimento and ter.responsavel = tp.id and nvl(tp.cpf, tp.cnpj) = :cpfCnpj)) "                 + comandtxt, esquemaBanco);

                comando.AdicionarParametroEntrada("cpfCnpj", filtros.Dados.AutorCPFCNPJ);
                retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando));

                comando.AdicionarParametroEntrada("menor", filtros.Menor);
                comando.AdicionarParametroEntrada("maior", filtros.Maior);

                comandtxt = @"select l.solic_tit_id, nvl(l.solicitacao_numero, l.titulo_numero) numero, l.titulo_ano ano, l.empreendimento_denominador, 
				l.municipio_texto, l.situacao_texto, l.tipo from lst_car_solic_tit l, {0}tab_requerimento tr where 1 = 1 and l.requerimento = tr.id and
				(l.requerimento in (select r.id from {0}tab_requerimento r, {0}tab_pessoa tp where r.interessado = tp.id and nvl(tp.cpf, tp.cnpj) = :cpfCnpj) or 
				l.requerimento in (select r.id from {0}tab_requerimento r, {0}tab_pessoa tp, {0}tab_requerimento_responsavel trr where r.id = trr.requerimento and trr.responsavel = tp.id 
				and nvl(tp.cpf, tp.cnpj) = :cpfCnpj) or l.requerimento in (select r.id {0}from tab_requerimento r, {0}tab_pessoa tp, {0}tab_empreendimento te, 
				{0}tab_empreendimento_responsavel ter where r.empreendimento = te.id and te.id = ter.empreendimento and ter.responsavel = tp.id and nvl(tp.cpf, tp.cnpj) = :cpfCnpj)) "                 + comandtxt;

                comando.DbCommand.CommandText = String.Format(@"select * from (select a.*, rownum rnum from ( " + comandtxt + @") a) where rnum <= :maior and rnum >= :menor", esquemaBanco);

                #endregion

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    #region Adicionando o retorno

                    SolicitacaoListarResultados item;

                    while (reader.Read())
                    {
                        item        = new SolicitacaoListarResultados();
                        item.Id     = reader.GetValue <int>("solic_tit_id");
                        item.Numero = reader.GetValue <string>("numero");
                        item.Ano    = reader.GetValue <string>("ano");
                        item.EmpreendimentoDenominador = reader.GetValue <string>("empreendimento_denominador");
                        item.MunicipioTexto            = reader.GetValue <string>("municipio_texto");
                        item.SituacaoTexto             = reader.GetValue <string>("situacao_texto");
                        item.IsTitulo = reader.GetValue <int>("tipo") == 2;
                        retorno.Itens.Add(item);
                    }

                    reader.Close();

                    #endregion Adicionando o retorno
                }
            }

            return(retorno);
        }