public void AlterarSituacao(int ingredienteAtivo, eIngredienteAtivoSituacao situacao, BancoDeDados banco) { #region Configurar AgrotoxicoFiltro filtro = new AgrotoxicoFiltro(); List <Agrotoxico> lista = new List <Agrotoxico>(); if (situacao == eIngredienteAtivoSituacao.Inativo || situacao == eIngredienteAtivoSituacao.Ativo_ANVISA_Inativo_Estado) { filtro = new AgrotoxicoFiltro() { Situacao = "1", //Cadastro Ativo IngredienteAtivoId = ingredienteAtivo }; lista = _da.ObterLista(filtro, banco); foreach (var item in lista) { item.CadastroAtivo = false; item.MotivoId = (int)eAgrotoxicoDesativadoMotivo.IngredienteAtivoDesativado; } } else { filtro = new AgrotoxicoFiltro() { Situacao = "0", //Cadastro Inativo MotivoId = (int)eAgrotoxicoDesativadoMotivo.IngredienteAtivoDesativado, IngredienteAtivoId = ingredienteAtivo }; lista = _da.ObterLista(filtro, banco); foreach (var item in lista) { item.CadastroAtivo = true; item.MotivoId = null; } } #endregion using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); foreach (var item in lista) { _da.AlterarSituacao(item, bancoDeDados); } bancoDeDados.Commit(); } }
public ListarVM(List <QuantPaginacao> quantPaginacao, List <Lista> classes, List <Lista> modalidades, List <Lista> grupos, List <Lista> classificacoes, List <Lista> situacao) { Paginacao = new Blocos.Entities.Etx.ModuloCore.Paginacao(); Situacao = ViewModelHelper.CriarSelectList(situacao, true); ClasseUso = ViewModelHelper.CriarSelectList(classes, true); ModalidadeAplicacao = ViewModelHelper.CriarSelectList(modalidades, true); GrupoQuimico = ViewModelHelper.CriarSelectList(grupos, true); ClassificacaoToxicologica = ViewModelHelper.CriarSelectList(classificacoes, true); Filtros = new AgrotoxicoFiltro(); UltimaBusca = string.Empty; Resultados = new List <AgrotoxicoFiltro>(); Paginacao.ListaQuantPaginacao = ViewModelHelper.CriarSelectList(quantPaginacao, false, false); }
public Resultados <AgrotoxicoFiltro> Filtrar(AgrotoxicoFiltro filtrosListar, Paginacao paginacao) { try { var filtros = new Filtro <AgrotoxicoFiltro>(filtrosListar, paginacao); var resultados = _da.Filtrar(filtros); if (resultados.Quantidade < 1) { Validacao.Add(Mensagem.Padrao.NaoEncontrouRegistros); } return(resultados); } catch (Exception exc) { Validacao.AddErro(exc); } return(null); }
public Resultados <AgrotoxicoFiltro> Filtrar(Filtro <AgrotoxicoFiltro> filtros) { Resultados <AgrotoxicoFiltro> retorno = new Resultados <AgrotoxicoFiltro>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { string comandtxt = string.Empty; Comando comando = bancoDeDados.CriarComando(""); #region Adicionando Filtros comandtxt += comando.FiltroAndLike("a.nome_comercial", "nome_comercial", filtros.Dados.NomeComercial, true, true); comandtxt += comando.FiltroAnd("a.numero_cadastro", "numero_cadastro", filtros.Dados.NumeroCadastro); comandtxt += comando.FiltroAnd("a.numero_registro_ministerio", "numero_registro_ministerio", filtros.Dados.NumeroRegistroMinisterio); if (filtros.Dados.Situacao != "0") { comandtxt += comando.FiltroAnd("a.cadastro_ativo", "cadastro_ativo", (filtros.Dados.Situacao != "1"?"0":"1")); } if (filtros.Dados.ClasseUso > 0) { comandtxt += comando.FiltroIn("a.id", "select t1.agrotoxico from tab_agrotoxico_classe_uso t1 where t1.classe_uso =:classe_uso", "classe_uso", filtros.Dados.ClasseUso); } if (filtros.Dados.ModalidadeAplicacao > 0) { comandtxt += comando.FiltroIn("a.id", "select t10.agrotoxico from tab_agro_cult_moda_aplicacao t9, tab_agrotoxico_cultura t10 where t9.agrotoxico_cultura = t10.id and t9.modalidade_aplicacao = :modalidade_aplicacao", "modalidade_aplicacao", filtros.Dados.ModalidadeAplicacao); } if (filtros.Dados.GrupoQuimico > 0) { comandtxt += comando.FiltroIn("a.id", "select t11.agrotoxico from tab_agrotoxico_grupo_quimico t11 where t11.grupo_quimico = :grupo_quimico", "grupo_quimico", filtros.Dados.GrupoQuimico); } comandtxt += comando.FiltroAnd("a.classificacao_toxicologica", "classificacao_toxicologica", filtros.Dados.ClassificacaoToxicologica); if (!String.IsNullOrWhiteSpace(filtros.Dados.TitularRegistro)) { comandtxt += comando.FiltroAndLike("nvl(p.nome, p.razao_social)", "titular_registro", filtros.Dados.TitularRegistro, true, true); } comandtxt += comando.FiltroAnd("a.numero_processo_sep", "numero_processo_sep", filtros.Dados.NumeroProcessoSep); if (!String.IsNullOrWhiteSpace(filtros.Dados.IngredienteAtivo)) { comandtxt += comando.FiltroIn("a.id", "select t3.agrotoxico from tab_ingrediente_ativo t2, tab_agrotoxico_ing_ativo t3 where t2.id = t3.ingrediente_ativo and upper(t2.texto) like upper('%'||:ingrediente||'%')", "ingrediente", filtros.Dados.IngredienteAtivo); } if (!String.IsNullOrWhiteSpace(filtros.Dados.Cultura)) { comandtxt += comando.FiltroIn("a.id", "select t5.agrotoxico from tab_cultura t4, tab_agrotoxico_cultura t5 where t4.id = t5.cultura and upper(t4.texto) like upper('%'||:cultura||'%')", "cultura", filtros.Dados.Cultura); } if (!String.IsNullOrWhiteSpace(filtros.Dados.Praga)) { comandtxt += comando.FiltroIn(@"a.id", "select t8.agrotoxico from tab_praga t6, tab_agrotoxico_cultura_praga t7, tab_agrotoxico_cultura t8 where t6.id = t7.praga and t7.agrotoxico_cultura = t8.id and upper(nvl(t6.nome_cientifico, t6.nome_comum)) like upper('%'||:praga||'%')", "praga", filtros.Dados.Praga); } List <String> ordenar = new List <String>(); List <String> colunas = new List <String>() { "numero_cadastro", "nome_comercial", "titular_registro", "situacao" }; if (filtros.OdenarPor > 0) { ordenar.Add(colunas.ElementAtOrDefault(filtros.OdenarPor - 1)); } else { ordenar.Add("numero_cadastro"); } #endregion #region Executa a pesquisa nas tabelas comando.DbCommand.CommandText = String.Format(@"select count(a.id) qtd from tab_agrotoxico a, tab_pessoa p where a.titular_registro = p.id " + comandtxt); retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando)); if (retorno.Quantidade < 1) { Validacao.Add(Mensagem.Funcionario.NaoEncontrouRegistros); return(retorno); } comando.AdicionarParametroEntrada("menor", filtros.Menor); comando.AdicionarParametroEntrada("maior", filtros.Maior); comandtxt = String.Format(@"select a.id, (case when a.possui_cadastro>0 then 'Sim' else 'Não' end) possui_cadastro, (case when a.cadastro_ativo>0 then 'Ativo' else 'Inativo' end) situacao, a.numero_cadastro, a.nome_comercial, nvl(p.nome, p.razao_social) titular_registro, a.arquivo from tab_agrotoxico a, tab_pessoa p where a.titular_registro = p.id {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 AgrotoxicoFiltro agro; while (reader.Read()) { agro = new AgrotoxicoFiltro(); agro.Id = reader.GetValue <Int32>("id"); agro.ArquivoId = reader.GetValue <Int32>("arquivo"); agro.NumeroCadastro = reader.GetValue <String>("numero_cadastro"); agro.NomeComercial = reader.GetValue <String>("nome_comercial"); agro.TitularRegistro = reader.GetValue <String>("titular_registro"); agro.Situacao = reader.GetValue <String>("situacao"); retorno.Itens.Add(agro); } reader.Close(); #endregion } } return(retorno); }