public ListarVM(List <QuantPaginacao> quantPaginacao, List <Setor> setores) { Paginacao = new Blocos.Entities.Etx.ModuloCore.Paginacao(); Setores = ViewModelHelper.CriarSelectList(setores); Filtros = new HabilitacaoEmissaoPTVFiltro(); UltimaBusca = string.Empty; Resultados = new List <HabilitacaoEmissaoPTVFiltro>(); Paginacao.ListaQuantPaginacao = ViewModelHelper.CriarSelectList(quantPaginacao, false, false); }
public Resultados <HabilitacaoEmissaoPTVFiltro> Filtrar(HabilitacaoEmissaoPTVFiltro filtrosListar, Paginacao paginacao) { try { var filtros = new Filtro <HabilitacaoEmissaoPTVFiltro>(filtrosListar, paginacao); Resultados <HabilitacaoEmissaoPTVFiltro> resultados = _da.Filtrar(filtros); if (resultados.Quantidade < 1) { Validacao.Add(Mensagem.Padrao.NaoEncontrouRegistros); } return(resultados); } catch (Exception exc) { Validacao.AddErro(exc); } return(null); }
internal Resultados <HabilitacaoEmissaoPTVFiltro> Filtrar(Filtro <HabilitacaoEmissaoPTVFiltro> filtros) { Resultados <HabilitacaoEmissaoPTVFiltro> retorno = new Resultados <HabilitacaoEmissaoPTVFiltro>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { string comandtxt = string.Empty; Comando comando = bancoDeDados.CriarComando(""); #region Adicionando Filtros comandtxt += comando.FiltroAndLike("f.nome", "funcionario", filtros.Dados.Funcionario, true, true); comandtxt += comando.FiltroAnd("f.cpf", "cpf", filtros.Dados.CPF); comandtxt += comando.FiltroAnd("t.numero_habilitacao", "numero_habilitacao", filtros.Dados.NumeroHabilitacao); comandtxt += comando.FiltroIn("t.funcionario", "select s.funcionario from tab_funcionario_setor s where s.setor = :setor", "setor", filtros.Dados.SetorId); List <String> ordenar = new List <String>(); List <String> colunas = new List <String>() { "funcionario", "numero_habilitacao", "situacao" }; if (filtros.OdenarPor > 0) { ordenar.Add(colunas.ElementAtOrDefault(filtros.OdenarPor - 1)); } else { ordenar.Add("funcionario"); } #endregion #region Executa a pesquisa nas tabelas comando.DbCommand.CommandText = String.Format(@"select count(t.id) from tab_hab_emi_ptv t, tab_funcionario f where f.id = t.funcionario " + comandtxt); retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando)); comando.AdicionarParametroEntrada("menor", filtros.Menor); comando.AdicionarParametroEntrada("maior", filtros.Maior); comandtxt = String.Format(@"select t.id, f.nome funcionario, f.cpf, t.numero_habilitacao, t.situacao from tab_hab_emi_ptv t, tab_funcionario f where f.id = t.funcionario {0} {1}" , comandtxt, DaHelper.Ordenar(colunas, ordenar)); comando.DbCommand.CommandText = @"select * from (select a.*, rownum rnum from ( " + comandtxt + @") a) where rnum <= :maior and rnum >= :menor"; #endregion using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { #region Adicionando os dados na classe de retorno HabilitacaoEmissaoPTVFiltro habilitacao; while (reader.Read()) { habilitacao = new HabilitacaoEmissaoPTVFiltro(); habilitacao.Id = reader.GetValue <int>("id"); habilitacao.Funcionario = reader.GetValue <string>("funcionario"); habilitacao.CPF = reader.GetValue <string>("cpf"); habilitacao.NumeroHabilitacao = reader.GetValue <string>("numero_habilitacao"); habilitacao.SituacaoTexto = reader.GetValue <int>("situacao") == 1 ? "Ativo" : "Inativo"; retorno.Itens.Add(habilitacao); } reader.Close(); #endregion } } return(retorno); }