예제 #1
0
        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();
            }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        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);
        }