Esempio n. 1
0
        private void Editar(Praga praga, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Praga

                Comando comando = bancoDeDados.CriarComando(@"update tab_praga set nome_cientifico = :nome_cientifico, nome_comum = :nome_comum, 
				tid = :tid where id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("nome_cientifico", praga.NomeCientifico, DbType.String);
                comando.AdicionarParametroEntrada("nome_comum", praga.NomeComum, DbType.String);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("id", praga.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Histórico

                Historico.Gerar(praga.Id, eHistoricoArtefato.praga, eHistoricoAcao.atualizar, bancoDeDados);

                #endregion Histórico

                bancoDeDados.Commit();
            }
        }
Esempio n. 2
0
        public async Task <IActionResult> Edit(int id, [Bind("Codigo,NomeCientifico,NomePopular,EstacaoAno,DataUltimaPraga")] Praga praga)
        {
            if (id != praga.Codigo)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(praga);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PragaExists(praga.Codigo))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(praga));
        }
Esempio n. 3
0
        private void Criar(Praga praga, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Praga

                Comando comando = bancoDeDados.CriarComando(@"insert into tab_praga (id, nome_cientifico, nome_comum, tid) values
				(seq_praga.nextval, :nome_cientifico, :nome_comum, :tid) returning id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("nome_cientifico", praga.NomeCientifico, DbType.String);
                comando.AdicionarParametroEntrada("nome_comum", praga.NomeComum, DbType.String);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                praga.Id = comando.ObterValorParametro <int>("id");
                #endregion

                #region Histórico

                Historico.Gerar(praga.Id, eHistoricoArtefato.praga, eHistoricoAcao.criar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
Esempio n. 4
0
        internal Praga Obter(int id, BancoDeDados banco = null)
        {
            Praga praga = new Praga();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region praga

                Comando comando = bancoDeDados.CriarComando(@"select id, nome_cientifico, nome_comum, tid from tab_praga where id = :id", EsquemaBanco);
                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        praga.Id             = id;
                        praga.NomeCientifico = reader.GetValue <string>("nome_cientifico");
                        praga.NomeComum      = reader.GetValue <string>("nome_comum");
                        praga.Tid            = reader.GetValue <string>("tid");
                    }

                    reader.Close();
                }

                #endregion
            }

            return(praga);
        }
Esempio n. 5
0
        public void AssociarCulturas(Praga praga, BancoDeDados banco = null)
        {
            try
            {
                if (!_validar.AssociarCulturas(praga))
                {
                    return;
                }

                GerenciadorTransacao.ObterIDAtual();
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
                {
                    bancoDeDados.IniciarTransacao();

                    _da.AssociarCulturas(praga, bancoDeDados);
                    bancoDeDados.Commit();

                    Validacao.Add(Mensagem.Praga.CulturasAssociadasComSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
        }
        public ActionResult SalvarPraga(Praga praga)
        {
            string urlRetorno = praga.Id < 1 ? Url.Action("CadastrarPraga", "ConfiguracaoVegetal") : Url.Action("Pragas", "ConfiguracaoVegetal");

            _pragaBus.Salvar(praga);
            urlRetorno += "?Msg=" + Validacao.QueryParam();
            return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Url = urlRetorno }));
        }
        public ActionResult AssociarCulturasSalvar(Praga praga)
        {
            string urlRetorno = Url.Action("Pragas", "ConfiguracaoVegetal");

            _pragaBus.AssociarCulturas(praga);
            urlRetorno += "?Msg=" + Validacao.QueryParam();
            return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Url = urlRetorno }));
        }
Esempio n. 8
0
        internal bool AssociarCulturas(Praga praga)
        {
            List <string> culturasRepetidas = praga.Culturas.Where(x => praga.Culturas.Count(y => y.Id == x.Id) > 1)
                                              .Select(x => x.Nome.DeixarApenasUmEspaco())
                                              .ToList();

            culturasRepetidas.ForEach(x => Validacao.Add(Mensagem.Praga.CulturaExistente(x)));

            return(Validacao.EhValido);
        }
Esempio n. 9
0
        public bool Existe(Praga praga, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select id from tab_praga where lower(nome_cientifico) = :nome_cientifico", EsquemaBanco);
                comando.AdicionarParametroEntrada("nome_cientifico", DbType.String, 100, praga.NomeCientifico.ToLower());

                int pragaId = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando));
                return(pragaId > 0 && pragaId != praga.Id);
            }
        }
Esempio n. 10
0
        public static async Task <string> DelPraga([FromBody] Praga praga)
        {
            HttpClient client = new HttpClient();

            client.BaseAddress = new Uri("http://127.0.0.1:8000/api/");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.Timeout = new TimeSpan(0, 0, 30);
            HttpResponseMessage response = await client.DeleteAsync("praga/" + praga.id);

            return(response.StatusCode.ToString());
        }
Esempio n. 11
0
        public async Task <IActionResult> Create([Bind("Codigo,NomeCientifico,NomePopular,EstacaoAno,DataUltimaPraga")] Praga praga)
        {
            if (ModelState.IsValid)
            {
                _context.Add(praga);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(praga));
        }
Esempio n. 12
0
        public void AssociarCulturas(Praga praga, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                //Atualizar o tid para a nova ação
                Comando comando = bancoDeDados.CriarComando(@"update {0}tab_praga t set t.tid = :tid where t.id = :id", EsquemaBanco);
                comando.AdicionarParametroEntrada("id", praga.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                bancoDeDados.ExecutarNonQuery(comando);

                #region Deletando


                comando = bancoDeDados.CriarComando(@"delete from tab_praga_cultura pc where pc.praga = :praga_id ", EsquemaBanco);
                comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "pc.id", DbType.Int32, praga.Culturas.Select(x => x.IdRelacionamento).ToList());
                comando.AdicionarParametroEntrada("praga_id", praga.Id, DbType.String);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion


                #region Inserindo e Alterando

                foreach (Cultura cult in praga.Culturas)
                {
                    if (cult.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update tab_praga_cultura set praga = :praga_id, cultura = :cultura_id, tid =:tid where id = :id_rel");
                        comando.AdicionarParametroEntrada("id_rel", cult.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando("insert into tab_praga_cultura (id, praga, cultura, tid) values (seq_praga_cultura.nextval, :praga_id, :cultura_id, :tid)");
                    }

                    comando.AdicionarParametroEntrada("praga_id", praga.Id, DbType.String);
                    comando.AdicionarParametroEntrada("cultura_id", cult.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                Historico.Gerar(praga.Id, eHistoricoArtefato.praga, eHistoricoAcao.associar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
Esempio n. 13
0
        public Praga Obter(int id)
        {
            Praga praga = null;

            try
            {
                praga = _da.Obter(id);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }
            return(praga);
        }
Esempio n. 14
0
        public void ValidarPraga(Praga item, List <Praga> lista = null)
        {
            if (item.Id <= 0)
            {
                Validacao.Add(Mensagem.EmissaoCFOC.PragaObrigatorio);
            }

            if (lista != null)
            {
                if (lista.Any(x => x.Id == item.Id))
                {
                    Validacao.Add(Mensagem.EmissaoCFOC.PragaJaAdicionada);
                }
            }
        }
Esempio n. 15
0
        internal void Salvar(Praga praga, BancoDeDados banco = null)
        {
            if (praga == null)
            {
                throw new Exception("Objeto é nulo.");
            }

            if (praga.Id <= 0)
            {
                Criar(praga, banco);
            }
            else
            {
                Editar(praga, banco);
            }
        }
Esempio n. 16
0
        public bool Salvar(Praga praga)
        {
            if (praga == null)
            {
                Validacao.Add(Mensagem.Praga.ObjetoNulo);
            }

            if (string.IsNullOrEmpty(praga.NomeCientifico))
            {
                Validacao.Add(Mensagem.Praga.NomeCientificoObrigatorio);
            }

            if (_da.Existe(praga))
            {
                Validacao.Add(Mensagem.Praga.JaExiste);
            }

            return(Validacao.EhValido);
        }
Esempio n. 17
0
        public Resultados <Praga> Filtrar(Praga filtro, Paginacao paginacao)
        {
            try
            {
                Filtro <Praga>     filtros    = new Filtro <Praga>(filtro, paginacao);
                Resultados <Praga> resultados = _da.Filtrar(filtros);

                if (resultados.Quantidade < 1)
                {
                    Validacao.Add(Mensagem.Padrao.NaoEncontrouRegistros);
                }

                return(resultados);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
        internal Agrotoxico ObterAgrotoxico(int id, bool simplificado = false, BancoDeDados banco = null)
        {
            Agrotoxico agrotoxico = new Agrotoxico();

            using (BancoDeDados bancoDedados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDedados.CriarComando(@"select t.id, t.possui_cadastro, t.numero_cadastro, t.cadastro_ativo, t.motivo, t.nome_comercial,
															t.numero_registro_ministerio, t.numero_processo_sep, t.titular_registro, nvl(p.nome, p.razao_social) 
															titular_registro_nome_razao, nvl(p.cpf, p.cnpj) titular_registro_cpf_cnpj, t.classificacao_toxicologica, 
															c.texto class_toxicologica_texto, t.periculosidade_ambiental, pa.texto periculosidade_ambiental_texto, 
															t.forma_apresentacao, t.observacao_interna, t.observacao_geral, t.arquivo, t.tid from tab_agrotoxico t,
															tab_pessoa p, tab_class_toxicologica c, tab_peric_ambiental pa where c.id = classificacao_toxicologica 
															and p.id = t.titular_registro and pa.id = t.periculosidade_ambiental and t.id = :id"                                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        agrotoxico.Id            = id;
                        agrotoxico.Bula.Id       = reader.GetValue <int>("arquivo");
                        agrotoxico.CadastroAtivo = reader.GetValue <bool>("cadastro_ativo");
                        agrotoxico.ClassificacaoToxicologica.Id    = reader.GetValue <int>("classificacao_toxicologica");
                        agrotoxico.ClassificacaoToxicologica.Texto = reader.GetValue <string>("class_toxicologica_texto");
                        agrotoxico.FormaApresentacao.Id            = reader.GetValue <int>("forma_apresentacao");
                        agrotoxico.MotivoId                      = reader.GetValue <int?>("motivo");
                        agrotoxico.NomeComercial                 = reader.GetValue <string>("nome_comercial");
                        agrotoxico.NumeroCadastro                = reader.GetValue <int>("numero_cadastro");
                        agrotoxico.NumeroRegistroMinisterio      = reader.GetValue <long>("numero_registro_ministerio");
                        agrotoxico.NumeroProcessoSep             = reader.GetValue <long>("numero_processo_sep");
                        agrotoxico.ObservacaoGeral               = reader.GetValue <string>("observacao_geral");
                        agrotoxico.ObservacaoInterna             = reader.GetValue <string>("observacao_interna");
                        agrotoxico.PericulosidadeAmbiental.Id    = reader.GetValue <int>("periculosidade_ambiental");
                        agrotoxico.PericulosidadeAmbiental.Texto = reader.GetValue <string>("periculosidade_ambiental_texto");
                        agrotoxico.PossuiCadastro                = reader.GetValue <bool>("possui_cadastro");
                        agrotoxico.Tid = reader.GetValue <string>("tid");
                        agrotoxico.TitularRegistro.Id = reader.GetValue <int>("titular_registro");
                        agrotoxico.TitularRegistro.NomeRazaoSocial = reader.GetValue <string>("titular_registro_nome_razao");
                        agrotoxico.TitularRegistro.CPFCNPJ         = reader.GetValue <string>("titular_registro_cpf_cnpj");
                    }
                    reader.Close();
                }

                if (simplificado)
                {
                    return(agrotoxico);
                }

                #region Classes de Uso

                comando = bancoDedados.CriarComando(@"select t.id, t.agrotoxico, t.classe_uso, c.texto classe_uso_texto, t.tid from tab_agrotoxico_classe_uso t, tab_classe_uso c 
                where t.classe_uso = c.id and t.agrotoxico =:agrotoxico", EsquemaBanco);

                comando.AdicionarParametroEntrada("agrotoxico", id, DbType.Int32);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    ConfiguracaoVegetalItem classeUso = null;

                    while (reader.Read())
                    {
                        classeUso = new ConfiguracaoVegetalItem();
                        classeUso.IdRelacionamento = reader.GetValue <int>("id");
                        classeUso.Id    = reader.GetValue <int>("classe_uso");
                        classeUso.Texto = reader.GetValue <string>("classe_uso_texto");
                        classeUso.Tid   = reader.GetValue <string>("tid");
                        agrotoxico.ClassesUso.Add(classeUso);
                    }

                    reader.Close();
                }

                #endregion

                #region Ingredientes Ativos

                comando = bancoDedados.CriarComando(@"select t.id, t.agrotoxico, t.ingrediente_ativo, i.texto ingrediente_ativo_texto, i.situacao, t.concentracao, t.tid from tab_agrotoxico_ing_ativo 
                t, tab_ingrediente_ativo i where t.ingrediente_ativo = i.id and t.agrotoxico = :agrotoxico", EsquemaBanco);

                comando.AdicionarParametroEntrada("agrotoxico", id, DbType.Int32);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    ConfiguracaoVegetalItem ingrediente = null;

                    while (reader.Read())
                    {
                        ingrediente = new ConfiguracaoVegetalItem();
                        ingrediente.IdRelacionamento = reader.GetValue <int>("id");
                        ingrediente.Id           = reader.GetValue <int>("ingrediente_ativo");
                        ingrediente.Texto        = reader.GetValue <string>("ingrediente_ativo_texto");
                        ingrediente.SituacaoId   = reader.GetValue <int>("situacao");
                        ingrediente.Tid          = reader.GetValue <string>("tid");
                        ingrediente.Concentracao = reader.GetValue <decimal>("concentracao");
                        agrotoxico.IngredientesAtivos.Add(ingrediente);
                    }

                    reader.Close();
                }

                #endregion

                #region Grupos químicos

                comando = bancoDedados.CriarComando(@"select t.id, t.agrotoxico, t.grupo_quimico, g.texto grupo_quimico_texto, t.tid from tab_agrotoxico_grupo_quimico t, 
                tab_grupo_quimico g where t.grupo_quimico = g.id and t.agrotoxico = :agrotoxico", EsquemaBanco);

                comando.AdicionarParametroEntrada("agrotoxico", id, DbType.Int32);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    ConfiguracaoVegetalItem grupo = null;

                    while (reader.Read())
                    {
                        grupo = new ConfiguracaoVegetalItem();
                        grupo.IdRelacionamento = reader.GetValue <int>("id");
                        grupo.Id    = reader.GetValue <int>("grupo_quimico");
                        grupo.Texto = reader.GetValue <string>("grupo_quimico_texto");
                        grupo.Tid   = reader.GetValue <string>("tid");
                        agrotoxico.GruposQuimicos.Add(grupo);
                    }

                    reader.Close();
                }

                #endregion

                #region Culturas

                comando = bancoDedados.CriarComando(@"select t.id, t.agrotoxico, t.cultura, c.texto cultura_texto, t.intervalo_seguranca, 
													t.tid from tab_agrotoxico_cultura t, tab_cultura c where t.cultura = c.id 
													and t.agrotoxico = :agrotoxico"                                                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("agrotoxico", id, DbType.Int32);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    AgrotoxicoCultura cultura = null;

                    while (reader.Read())
                    {
                        cultura = new AgrotoxicoCultura();
                        cultura.IdRelacionamento   = reader.GetValue <int>("id");
                        cultura.Cultura.Id         = reader.GetValue <int>("cultura");
                        cultura.Cultura.Nome       = reader.GetValue <string>("cultura_texto");
                        cultura.IntervaloSeguranca = reader.GetValue <string>("intervalo_seguranca");
                        cultura.Tid = reader.GetValue <string>("tid");
                        agrotoxico.Culturas.Add(cultura);
                    }

                    reader.Close();
                }

                #endregion

                #region Pragas das culturas

                comando = bancoDedados.CriarComando(@"select t.id, t.agrotoxico_cultura, t.praga, p.nome_cientifico, p.nome_comum, t.tid from tab_agrotoxico_cultura_praga t, tab_praga p ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format(" where t.praga = p.id {0}",
                                                               comando.AdicionarIn("and", "t.agrotoxico_cultura", DbType.Int32, agrotoxico.Culturas.Select(x => x.IdRelacionamento).ToList()));

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    Praga praga = null;

                    while (reader.Read())
                    {
                        praga = new Praga();
                        praga.IdRelacionamento = reader.GetValue <int>("id");
                        praga.Id             = reader.GetValue <int>("praga");
                        praga.NomeCientifico = reader.GetValue <string>("nome_cientifico");
                        praga.NomeComum      = reader.GetValue <string>("nome_comum");
                        praga.Tid            = reader.GetValue <string>("tid");

                        if (agrotoxico.Culturas != null && agrotoxico.Culturas.Count > 0)
                        {
                            agrotoxico.Culturas.Single(x => x.IdRelacionamento == reader.GetValue <int>("agrotoxico_cultura")).Pragas.Add(praga);
                        }
                    }

                    reader.Close();
                }

                #endregion

                #region Modalidades de aplicacao das culturas

                comando = bancoDedados.CriarComando(@"select t.id, t.agrotoxico_cultura, t.modalidade_aplicacao, m.texto modalidade_texto, t.tid from tab_agro_cult_moda_aplicacao t, 
                tab_modalidade_aplicacao m ", EsquemaBanco);

                comando.DbCommand.CommandText += String.Format(" where t.modalidade_aplicacao = m.id {0}",
                                                               comando.AdicionarIn("and", "t.agrotoxico_cultura", DbType.Int32, agrotoxico.Culturas.Select(x => x.IdRelacionamento).ToList()));


                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    ConfiguracaoVegetalItem modalidade = null;

                    while (reader.Read())
                    {
                        modalidade    = new ConfiguracaoVegetalItem();
                        modalidade.Id = reader.GetValue <int>("modalidade_aplicacao");
                        modalidade.IdRelacionamento = reader.GetValue <int>("id");
                        modalidade.Texto            = reader.GetValue <string>("modalidade_texto");

                        if (agrotoxico.Culturas != null && agrotoxico.Culturas.Count > 0)
                        {
                            agrotoxico.Culturas.Single(x => x.IdRelacionamento == reader.GetValue <int>("agrotoxico_cultura")).ModalidadesAplicacao.Add(modalidade);
                        }
                    }

                    reader.Close();
                }

                #endregion
            }

            return(agrotoxico);
        }
Esempio n. 19
0
 public PragaHabilitarEmissao1()
 {
     Praga = new Praga();
 }
Esempio n. 20
0
 public PragaHabilitarEmissaoRelatorio2()
 {
     Praga = new Praga();
 }
Esempio n. 21
0
        public ActionResult ValidarPraga(Praga item, List <Praga> lista)
        {
            _validar.ValidarPraga(item, lista);

            return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros }));
        }
Esempio n. 22
0
 public PragaSelecionadaViewModel(bool check, Praga praga)
 {
     this.Checked = check;
     this.Praga   = praga;
 }
Esempio n. 23
0
        internal Resultados <Praga> Filtrar(Filtro <Praga> filtros, BancoDeDados banco = null)
        {
            Resultados <Praga> retorno = new Resultados <Praga>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                string  comandtxt = string.Empty;
                Comando comando   = bancoDeDados.CriarComando("");

                #region Adicionando Filtros

                comandtxt  = comando.FiltroAndLike("p.nome_cientifico", "nome_cientifico", filtros.Dados.NomeCientifico, true, true);
                comandtxt += comando.FiltroAndLike("p.nome_comum", "nome_comum", filtros.Dados.NomeComum, true, true);

                List <String> ordenar = new List <String>();
                List <String> colunas = new List <String>()
                {
                    "nome_cientifico", "nome_comum"
                };

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

                #endregion

                #region Quantidade de registro do resultado

                comando.DbCommand.CommandText = String.Format(@"select count(*) from tab_praga p where p.id > 0" + comandtxt);

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

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

                comandtxt = String.Format(@"select p.id, p.nome_cientifico, p.nome_comum, stragg(c.texto) cultura, p.tid from tab_praga p, tab_praga_cultura pc, tab_cultura c where p.id = pc.praga(+) and pc.cultura = c.id(+) " + comandtxt + " group by p.id, p.nome_cientifico, p.nome_comum, p.tid " + 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))
                {
                    Praga item;

                    while (reader.Read())
                    {
                        item = new Praga();

                        item.Id             = reader.GetValue <int>("id");
                        item.NomeCientifico = reader.GetValue <string>("nome_cientifico");
                        item.NomeComum      = reader.GetValue <string>("nome_comum");
                        item.CulturasTexto  = reader.GetValue <string>("cultura");
                        item.Tid            = reader.GetValue <string>("tid");
                        retorno.Itens.Add(item);
                    }

                    reader.Close();
                }
            }

            return(retorno);
        }