public ActionResult EditarNumeracao(int id)
        {
            ConfiguracaoDocumentoFitossanitario _listaCompletaIntervalos = _bus.ObterPorAno(DateTime.Now.Year);
            DocumentoFitossanitario             intervaloSelecionado     = _listaCompletaIntervalos.DocumentoFitossanitarioIntervalos.FirstOrDefault(x => x.ID == id);

            return(View("EditarNumeracao", intervaloSelecionado));
        }
Exemple #2
0
        internal ConfiguracaoDocumentoFitossanitario Obter(bool simplificado = false, BancoDeDados banco = null)
        {
            ConfiguracaoDocumentoFitossanitario retorno = new ConfiguracaoDocumentoFitossanitario();

            using (BancoDeDados bancoDedados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDedados.CriarComando(@"select id, tid from cnf_doc_fitossanitario", EsquemaBanco);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        retorno.ID  = reader.GetValue <int>("id");
                        retorno.Tid = reader.GetValue <string>("tid");
                    }

                    reader.Close();
                }

                if (retorno == null || retorno.ID < 1 || simplificado)
                {
                    return(retorno);
                }

                #region Intervalos

                comando = bancoDedados.CriarComando(@"select i.id, i.tid, i.tipo_documento, lt.texto tipo_documento_texto, i.tipo, i.numero_inicial, i.numero_final 
				from cnf_doc_fito_intervalo i, lov_doc_fitossanitarios_tipo lt where lt.id = i.tipo_documento and i.configuracao = :configuracao"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("configuracao", retorno.ID, DbType.Int32);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    DocumentoFitossanitario item = null;

                    while (reader.Read())
                    {
                        item                    = new DocumentoFitossanitario();
                        item.ID                 = reader.GetValue <int>("id");
                        item.TID                = reader.GetValue <string>("tid");
                        item.TipoDocumentoID    = reader.GetValue <int>("tipo_documento");
                        item.TipoDocumentoTexto = reader.GetValue <string>("tipo_documento_texto");
                        item.Tipo               = reader.GetValue <int>("tipo");
                        item.NumeroInicial      = reader.GetValue <long>("numero_inicial");
                        item.NumeroFinal        = reader.GetValue <long>("numero_final");
                        retorno.DocumentoFitossanitarioIntervalos.Add(item);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(retorno);
        }
        public ActionResult ValidarIntervalo(DocumentoFitossanitario intervalo, List <DocumentoFitossanitario> intervalos)
        {
            _validar.ValidarIntervalo(intervalo, intervalos);

            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
            }, JsonRequestBehavior.AllowGet));
        }
Exemple #4
0
        public bool ValidarIntervalo(DocumentoFitossanitario intervalo, List <DocumentoFitossanitario> intervalos)
        {
            if (intervalo.TipoDocumentoID <= 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.TipoDocumentoObrigatorio(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }

            if (intervalo.NumeroInicial <= 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialObrigatorio(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if (intervalo.NumeroInicial.ToString().Length != 10)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialInvalido(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }

            if (intervalo.NumeroFinal <= 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalObrigatorio(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if (intervalo.NumeroFinal.ToString().Length != 10)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalInvalido(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if (intervalo.NumeroFinal % 25 != 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalMultiplo25(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }

            if (intervalo.NumeroFinal <= intervalo.NumeroInicial)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalMaiorInicial(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }

            if (intervalos != null && intervalos.Count > 0)
            {
                intervalos.ForEach(item =>
                {
                    if (!intervalo.Equals(item) && intervalo.TipoDocumentoID == item.TipoDocumentoID &&
                        ((intervalo.NumeroInicial >= item.NumeroInicial && intervalo.NumeroInicial <= item.NumeroFinal) ||
                         (item.NumeroInicial >= intervalo.NumeroInicial && item.NumeroInicial <= intervalo.NumeroFinal)))
                    {
                        Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialExiste(intervalo.TipoDocumentoTexto));
                    }
                });
            }

            return(Validacao.EhValido);
        }
Exemple #5
0
        internal bool ContidoIntervalo(DocumentoFitossanitario intervalo, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				select count(*) from cnf_doc_fito_intervalo t 
				where ((:numero_inicial between t.numero_inicial and t.numero_final) or (t.numero_inicial between :numero_inicial and :numero_final))
				and tipo = :tipo and tipo_documento = :tipo_documento and id != :intervalo"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("numero_inicial", intervalo.NumeroInicial, DbType.Int64);
                comando.AdicionarParametroEntrada("numero_final", intervalo.NumeroFinal, DbType.Int64);
                comando.AdicionarParametroEntrada("tipo", intervalo.Tipo, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo_documento", intervalo.TipoDocumentoID, DbType.Int32);
                comando.AdicionarParametroEntrada("intervalo", intervalo.ID, DbType.Int32);

                return(bancoDeDados.ExecutarScalar <int>(comando) > 0);
            }
        }
        public ActionResult SalvarEdicao(ConfiguracaoDocumentoFitossanitario configuracao, string idString, string novoNumInicial, string novoNumFinal)
        {
            int id = Convert.ToInt32(idString);
            DocumentoFitossanitario editar = configuracao.DocumentoFitossanitarioIntervalos.FirstOrDefault(x => x.ID == id);

            long inicioOriginal = editar.NumeroInicial;
            long fimOriginal    = editar.NumeroFinal;

            editar.NumeroInicial = Convert.ToInt64(novoNumInicial);
            editar.NumeroFinal   = Convert.ToInt64(novoNumFinal);
            var intervalos = configuracao.DocumentoFitossanitarioIntervalos.Where(x => x.ID != id).ToList();

            //Faz as verificações para ver se o novo intervalo é válido
            _validar.ValidarIntervalo(editar, intervalos);  //Verificações normais relativas a um intervalo

            //Trazer a lista de todos os numeros já LIBERADOS (CFO/CFOC) ou USADOS (PTV) dentro do intervalo
            var lista = _bus.ObterLiberadosIntervalo(editar.TipoDocumentoID, inicioOriginal, fimOriginal, editar.Serie);

            //Verifica se existem números liberados dentro do intervalo modificado
            //Se existe, verificar se a mudança de range deixa de incluir os números liberados
            if (lista.Count(x => x < editar.NumeroInicial || x > editar.NumeroFinal) > 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.IntervaloUtilizado());
            }
            else
            {
                //Se for válido, remove o item original de Configuração
                configuracao.DocumentoFitossanitarioIntervalos = intervalos;

                //Coloca o item com os novos valores em Configuração
                configuracao.DocumentoFitossanitarioIntervalos.Add(editar);

                //Salva as edições
                _bus.Editar(configuracao, id);
            }
            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @Url = Url.Action("Configurar", "ConfiguracaoDocumentoFitossanitario", new { Msg = Validacao.QueryParam() })
            }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Excluir(ConfiguracaoDocumentoFitossanitario configuracao, string idString)
        {
            int id = Convert.ToInt32(idString);
            DocumentoFitossanitario docExcluir = configuracao.DocumentoFitossanitarioIntervalos.FirstOrDefault(x => x.ID == id);

            //Trazer a lista de todos os numeros já LIBERADOS (CFO/CFOC) ou USADOS (PTV) dentro do intervalo
            var lista = _bus.ObterLiberadosIntervalo(docExcluir.TipoDocumentoID, docExcluir.NumeroInicial, docExcluir.NumeroFinal, docExcluir.Serie);

            //Se a lista não é vazia o intervalo não pode ser excluído
            if (lista.Count() > 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.IntervaloUtilizado());
            }
            else
            {
                _bus.Excluir(configuracao, id);
            }
            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @Url = Url.Action("Configurar", "ConfiguracaoDocumentoFitossanitario", new { Msg = Validacao.QueryParam() })
            }, JsonRequestBehavior.AllowGet));
        }
Exemple #8
0
        public bool ValidarIntervalo(DocumentoFitossanitario intervalo, List <DocumentoFitossanitario> intervalos)
        {
            if (intervalo.TipoDocumentoID <= 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.TipoDocumentoObrigatorio(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }

            if (intervalo.NumeroInicial <= 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialObrigatorio(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if (intervalo.NumeroInicial.ToString().Substring(2, 2) != DateTime.Now.Year.ToString().Substring(2, 2))
            {
                var temp1 = intervalo.NumeroInicial.ToString().Substring(2, 2);
                var temp2 = DateTime.Now.Year.ToString().Substring(2, 2);
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.AnoCorrenteObrigatorio(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString(), "NumeroInicial"));
            }
            else if (intervalo.NumeroFinal.ToString().Substring(2, 2) != DateTime.Now.Year.ToString().Substring(2, 2))
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.AnoCorrenteObrigatorio(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString(), "NumeroFinal"));
            }
            else if (intervalo.NumeroInicial.ToString().Length != 10 &&
                     intervalo.TipoDocumentoTexto == "PTV")
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialInvalido(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if (intervalo.NumeroInicial.ToString().Length != 8 && intervalo.Tipo == 1 &&
                     (intervalo.TipoDocumentoTexto == "CFO" || intervalo.TipoDocumentoTexto == "CFOC") &&
                     (intervalo.ID <= 0))
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialInvalidoCFOeCFOC(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            if (intervalo.NumeroInicial.ToString().Length != 8 && intervalo.Tipo == 2 &&
                (intervalo.TipoDocumentoTexto == "CFO" || intervalo.TipoDocumentoTexto == "CFOC") &&
                (intervalo.ID <= 0))
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialInvalido(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if ((intervalo.NumeroFinal.ToString().Length != 8 && intervalo.NumeroFinal.ToString().Length != 10) &&
                     (intervalo.TipoDocumentoTexto == "CFO" || intervalo.TipoDocumentoTexto == "CFOC"))
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialInvalidoCFOeCFOC(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }

            if (intervalo.NumeroFinal <= 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalObrigatorio(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if (intervalo.NumeroFinal.ToString().Length != 10 &&
                     intervalo.TipoDocumentoTexto == "PTV")
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalInvalido(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if (intervalo.NumeroFinal.ToString().Length != 8 && intervalo.Tipo == 1 &&
                     (intervalo.TipoDocumentoTexto == "CFO" || intervalo.TipoDocumentoTexto == "CFOC") &&
                     (intervalo.ID <= 0))
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalInvalidoCFOeCFOC(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            if (intervalo.NumeroFinal.ToString().Length != 8 && intervalo.Tipo == 2 &&
                (intervalo.TipoDocumentoTexto == "CFO" || intervalo.TipoDocumentoTexto == "CFOC") &&
                (intervalo.ID <= 0))
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalInvalido(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if ((intervalo.NumeroFinal.ToString().Length != 8 && intervalo.NumeroFinal.ToString().Length != 10) &&
                     (intervalo.TipoDocumentoTexto == "CFO" || intervalo.TipoDocumentoTexto == "CFOC"))
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalInvalidoCFOeCFOC(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }
            else if (intervalo.NumeroFinal % 25 != 0)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalMultiplo25(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }

            if (intervalo.NumeroFinal <= intervalo.NumeroInicial)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroFinalMaiorInicial(((eDocumentoFitossanitarioTipoNumero)intervalo.Tipo).ToString()));
            }

            if (intervalos != null && intervalos.Count > 0)
            {
                intervalos.ForEach(item =>
                {
                    if (!intervalo.Equals(item) &&
                        intervalo.TipoDocumentoID == item.TipoDocumentoID
                        //&& intervalo.Tipo == item.Tipo
                        && (((intervalo.NumeroInicial >= item.NumeroInicial && intervalo.NumeroInicial <= item.NumeroFinal) && ((String.IsNullOrWhiteSpace(intervalo.Serie) && String.IsNullOrWhiteSpace(item.Serie)) || intervalo.Serie == item.Serie)) ||
                            ((item.NumeroInicial >= intervalo.NumeroInicial && item.NumeroInicial <= intervalo.NumeroFinal) && ((String.IsNullOrWhiteSpace(intervalo.Serie) && String.IsNullOrWhiteSpace(item.Serie)) || intervalo.Serie == item.Serie))
                            )
                        )
                    {
                        Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.NumeroInicialExiste(intervalo.TipoDocumentoTexto));
                    }
                });
            }

            return(Validacao.EhValido);
        }
        internal Resultados <DocumentoFitossanitario> Filtrar(Filtro <DocumentoFitossanitarioListarFiltros> filtros, BancoDeDados banco = null)
        {
            Resultados <DocumentoFitossanitario> retorno = new Resultados <DocumentoFitossanitario>();

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

                #region Adicionando Filtros

                //comandtxt += comando.FiltroAndLike("p.texto", "texto", filtros.Dados.Texto, true, true);
                //comandtxt += comando.FiltroAndLike("i.TIPO_DOCUMENTO", "TipoDocumento", filtros.Dados.TipoDocumentoID, true, true);
                //comandtxt += comando.FiltroAndLike("i.TIPO", "TipoNumeracao", filtros.Dados.TipoNumeracaoID, true, true);
                //comandtxt += comando.FiltroAndLike("i.NUMERO_INICIAL", "Numero_Inicial", filtros.Dados.Ano, true, true);

//                comando = bancoDedados.CriarComando(@"select i.id, i.tid, i.tipo_documento, lt.texto tipo_documento_texto, i.tipo, i.numero_inicial, i.numero_final
//				                                      from cnf_doc_fito_intervalo i, lov_doc_fitossanitarios_tipo lt
//                                                      where lt.id = i.tipo_documento
//                                                            and i.configuracao = :configuracao
//                                                            and substr(i.NUMERO_INICIAL, 3, 2) = " + anoStr +    //to_char(sysdate, 'YY')
//                                                      " order by i.tipo_documento, i.numero_inicial", EsquemaBanco);

//                comando.AdicionarParametroEntrada("configuracao", retorno.ID, DbType.Int32);


                List <String> ordenar = new List <String>()
                {
                    "TipoDocumento", "Numero_Inicial"
                };
                List <String> colunas = new List <String>()
                {
                    "TipoDocumento", "Numero_Inicial"
                };

                #endregion

                if (!string.IsNullOrEmpty(filtros.Dados.TipoNumeracaoID) &&
                    !string.IsNullOrEmpty(filtros.Dados.TipoDocumentoID) &&
                    !string.IsNullOrEmpty(filtros.Dados.Ano))
                {
//                    comandtxt += @" union all select p.id, p.texto, p.codigo, p.tid, p.origem, o.texto origem_texto, max(trunc(metaphone.jaro_winkler(:filtro_fonetico,p.texto),5))
//								similaridade from tab_profissao p, lov_profissao_origem o where p.origem = o.id and p.texto_fonema like upper('%' || upper(metaphone.gerarCodigo(:filtro_fonetico)) || '%')
//								and metaphone.jaro_winkler(:filtro_fonetico,p.texto) >= to_number(:limite_similaridade) group by p.id, p.texto, p.codigo, p.tid, p.origem, o.texto";
                    comandtxt += @"select td.texto TipoDocumento, tn.texto TipoNumeracao, i.NUMERO_INICIAL, i.NUMERO_FINAL, i.SERIE
                                   from CNF_DOC_FITO_INTERVALO i, lov_doc_fitossanitarios_tipo td, LOV_DOC_FITOSSANI_TIPO_NUMERO tn
                                   where i.TIPO_DOCUMENTO = " + Convert.ToInt32(filtros.Dados.TipoDocumentoID)
                                 + " and i.TIPO = " + Convert.ToInt32(filtros.Dados.TipoNumeracaoID)
                                 + " and substr(i.NUMERO_INICIAL, 3, 2) = " + filtros.Dados.Ano.Substring(2, 2)
                                 + " and i.TIPO_DOCUMENTO = td.ID and i.TIPO = tn.ID";

                    //comando.AdicionarParametroEntrada("filtro_fonetico", filtros.Dados.Texto, DbType.String);
                    //comando.AdicionarParametroEntrada("limite_similaridade", ConfiguracaoSistema.LimiteSimilaridade, DbType.String);
                    colunas[0] = "TipoDocumento";
                    ordenar[0] = "TipoDocumento";
                }

                #region Executa a pesquisa nas tabelas
                //comando.DbCommand.CommandText = "select count(*) from (select p.id, p.texto, p.codigo, p.tid, p.origem, o.texto origem_texto, 0 similaridade from tab_profissao p, lov_profissao_origem o where p.origem = o.id " + comandtxt + ")";
                comando.DbCommand.CommandText = "select count(*) from (" + 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.texto, p.codigo, p.tid, p.origem, o.texto origem_texto, 1 similaridade
                //from tab_profissao p, lov_profissao_origem o where p.origem = o.id {0} {1}", comandtxt, DaHelper.Ordenar(colunas, ordenar, !string.IsNullOrEmpty(filtros.Dados.Texto)));

                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))
                {
                    DocumentoFitossanitario doc;

                    while (reader.Read())
                    {
                        doc = new DocumentoFitossanitario();

                        doc.TipoDocumentoTexto = reader["TipoDocumento"].ToString();
                        doc.NumeroInicial      = Convert.ToInt64(reader["NUMERO_INICIAL"]);
                        doc.NumeroFinal        = Convert.ToInt64(reader["NUMERO_FINAL"]);
                        doc.Serie = reader["SERIE"].ToString();
                        retorno.Itens.Add(doc);
                        //profissao.Id = Convert.ToInt32(reader["id"]);

                        //if (retorno.Itens.Exists(x => x.Id == profissao.Id))
                        //{
                        //    continue;
                        //}

                        //profissao.Tid = reader["tid"].ToString();
                        //profissao.Texto = reader["texto"].ToString();
                        //profissao.Codigo = reader["codigo"].ToString();
                        //profissao.OrigemId = Convert.ToInt32(reader["origem"]);

                        //retorno.Itens.Add(profissao);
                    }

                    reader.Close();
                }
            }

            return(retorno);
        }
        internal ConfiguracaoDocumentoFitossanitario ObterPorAno(int ano, bool simplificado = false, BancoDeDados banco = null)
        {
            ConfiguracaoDocumentoFitossanitario retorno = new ConfiguracaoDocumentoFitossanitario();

            using (BancoDeDados bancoDedados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDedados.CriarComando(@"select id, tid from cnf_doc_fitossanitario", EsquemaBanco);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        retorno.ID  = reader.GetValue <int>("id");
                        retorno.Tid = reader.GetValue <string>("tid");
                    }

                    reader.Close();
                }

                if (retorno == null || retorno.ID < 1 || simplificado)
                {
                    return(retorno);
                }

                #region Intervalos

                string anoStr = ano.ToString().Substring(2, 2);

                comando = bancoDedados.CriarComando(@"select i.id, i.tid, i.tipo_documento, lt.texto tipo_documento_texto, i.tipo, i.numero_inicial, i.numero_final, i.serie 
				                                      from cnf_doc_fito_intervalo i, lov_doc_fitossanitarios_tipo lt
                                                      where lt.id = i.tipo_documento
                                                            and i.configuracao = :configuracao
                                                            and substr(i.NUMERO_INICIAL, 3, 2) = :anoStr
                                                       order by i.tipo_documento, i.numero_inicial", EsquemaBanco);

                comando.AdicionarParametroEntrada("anoStr", anoStr, DbType.Int32);
                comando.AdicionarParametroEntrada("configuracao", retorno.ID, DbType.Int32);

                using (IDataReader reader = bancoDedados.ExecutarReader(comando))
                {
                    DocumentoFitossanitario item = null;

                    while (reader.Read())
                    {
                        item                    = new DocumentoFitossanitario();
                        item.ID                 = reader.GetValue <int>("id");
                        item.TID                = reader.GetValue <string>("tid");
                        item.TipoDocumentoID    = reader.GetValue <int>("tipo_documento");
                        item.TipoDocumentoTexto = reader.GetValue <string>("tipo_documento_texto");
                        item.Tipo               = reader.GetValue <int>("tipo");
                        item.NumeroInicial      = reader.GetValue <long>("numero_inicial");
                        item.NumeroFinal        = reader.GetValue <long>("numero_final");
                        item.Serie              = reader.GetValue <string>("serie");
                        retorno.DocumentoFitossanitarioIntervalos.Add(item);
                    }

                    reader.Close();
                }

                retorno.DocumentoFitossanitarioIntervalos = retorno.DocumentoFitossanitarioIntervalos.OrderBy(a => a.NumeroInicial).OrderBy(a => a.Serie).OrderBy(a => a.TipoDocumentoTexto).ToList();

                #endregion
            }

            return(retorno);
        }