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));
        }
Exemplo n.º 2
0
        public bool Editar(ConfiguracaoDocumentoFitossanitario configuracao, int idEditado)
        {
            if (!_validar.Salvar(configuracao))
            {
                return(false);
            }

            try
            {
                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                {
                    bancoDeDados.IniciarTransacao();

                    _da.SalvarEdicaoIntervalo(configuracao, idEditado);

                    bancoDeDados.Commit();

                    Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.Salvar);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
        internal void SalvarEdicaoIntervalo(ConfiguracaoDocumentoFitossanitario configuracao, int idEditado, BancoDeDados banco = null)
        {
            if (configuracao == null)
            {
                throw new Exception("Configuração é nula.");
            }

            EditarIntervalo(configuracao, idEditado, banco);
        }
Exemplo n.º 4
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 Configurar(ConfiguracaoDocumentoFitossanitario configuracao)
        {
            _bus.Salvar(configuracao);

            return(Json(new
            {
                @EhValido = Validacao.EhValido,
                @Msg = Validacao.Erros,
                @Url = Url.Action("Configurar", "ConfiguracaoDocumentoFitossanitario")
            }, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 6
0
        internal void Salvar(ConfiguracaoDocumentoFitossanitario configuracao, BancoDeDados banco = null)
        {
            if (configuracao == null)
            {
                throw new Exception("Configuração é nula.");
            }

            if (configuracao.ID <= 0)
            {
                Criar(configuracao, banco);
            }
            else
            {
                Editar(configuracao, banco);
            }
        }
Exemplo n.º 7
0
        public bool Salvar(ConfiguracaoDocumentoFitossanitario configuracao)
        {
            if (configuracao.DocumentoFitossanitarioIntervalos == null || configuracao.DocumentoFitossanitarioIntervalos.Count < 1)
            {
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.ValidaBloco);
                Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.ValidaDigital);
            }
            else
            {
                configuracao.DocumentoFitossanitarioIntervalos.ForEach(item =>
                {
                    ValidarIntervalo(item, configuracao.DocumentoFitossanitarioIntervalos);
                });
            }

            return(Validacao.EhValido);
        }
        internal void Editar(ConfiguracaoDocumentoFitossanitario configuracao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update cnf_doc_fitossanitario t set t.tid = :tid where t.id = :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("id", configuracao.ID, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                //Isso estava excluindo os intervalos que não estavam na lista. Como agora só são exibidos os intervalos do ano corrente, não queremos que os outros sejam apagados.
                //comando = bancoDeDados.CriarComando("delete from cnf_doc_fito_intervalo where configuracao = :configuracao ");
                //comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "id", DbType.Int32, configuracao.DocumentoFitossanitarioIntervalos.Select(x => x.ID).ToList());
                //comando.AdicionarParametroEntrada("configuracao", configuracao.ID, DbType.Int32);
                //bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in configuracao.DocumentoFitossanitarioIntervalos)
                {
                    if (item.ID > 0)
                    {
                        continue;
                    }

                    comando = bancoDeDados.CriarComando(@"
					insert into cnf_doc_fito_intervalo (id, tid, configuracao, tipo_documento, tipo, numero_inicial, numero_final, serie) 
					values (seq_cnf_doc_fito_intervalo.nextval, :tid, :configuracao, :tipo_documento, :tipo, :numero_inicial, :numero_final, :serie)"                    );

                    comando.AdicionarParametroEntrada("configuracao", configuracao.ID, DbType.Int32);
                    comando.AdicionarParametroEntrada("tipo_documento", item.TipoDocumentoID, DbType.Int32);
                    comando.AdicionarParametroEntrada("tipo", item.Tipo, DbType.Int32);
                    comando.AdicionarParametroEntrada("numero_inicial", item.NumeroInicial, DbType.Int64);
                    comando.AdicionarParametroEntrada("numero_final", item.NumeroFinal, DbType.Int64);
                    comando.AdicionarParametroEntrada("serie", item.Serie, DbType.String);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                Historico.Gerar(configuracao.ID, eHistoricoArtefato.configdocumentofitossanitario, eHistoricoAcao.atualizar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
        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));
        }
        internal void Criar(ConfiguracaoDocumentoFitossanitario configuracao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into cnf_doc_fitossanitario (id, tid) values (seq_cnf_doc_fitossanitario.nextval, :tid) returning id into :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                configuracao.ID = comando.ObterValorParametro <int>("id");

                foreach (var item in configuracao.DocumentoFitossanitarioIntervalos)
                {
                    comando = bancoDeDados.CriarComando(@"
					insert into cnf_doc_fito_intervalo (id, tid, configuracao, tipo_documento, tipo, numero_inicial, numero_final, serie) 
					values(seq_cnf_doc_fito_intervalo.nextval, :tid, :configuracao, :tipo_documento, :tipo, :numero_inicial, :numero_final, :serie)"                    );

                    comando.AdicionarParametroEntrada("configuracao", configuracao.ID, DbType.Int32);
                    comando.AdicionarParametroEntrada("tipo_documento", item.TipoDocumentoID, DbType.Int32);
                    comando.AdicionarParametroEntrada("tipo", item.Tipo, DbType.Int32);
                    comando.AdicionarParametroEntrada("numero_inicial", item.NumeroInicial, DbType.Int64);
                    comando.AdicionarParametroEntrada("numero_final", item.NumeroFinal, DbType.Int64);
                    comando.AdicionarParametroEntrada("serie", item.Serie, DbType.String);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                Historico.Gerar(configuracao.ID, eHistoricoArtefato.configdocumentofitossanitario, eHistoricoAcao.criar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
        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));
        }
        internal void Excluir(ConfiguracaoDocumentoFitossanitario configuracao, int idEditado, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update cnf_doc_fitossanitario t set t.tid = :tid where t.id = :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("id", configuracao.ID, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                comando = bancoDeDados.CriarComando("delete from cnf_doc_fito_intervalo where configuracao = :configuracao ");
                comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "id", DbType.Int32, configuracao.DocumentoFitossanitarioIntervalos.Select(x => x.ID).ToList());
                comando.AdicionarParametroEntrada("configuracao", configuracao.ID, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in configuracao.DocumentoFitossanitarioIntervalos)
                {
                    if (item.ID != idEditado)
                    {
                        continue;
                    }

                    comando = bancoDeDados.CriarComando(@"
					delete from cnf_doc_fito_intervalo where id = "                     + item.ID);

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                Historico.Gerar(configuracao.ID, eHistoricoArtefato.configdocumentofitossanitario, eHistoricoAcao.atualizar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
Exemplo n.º 13
0
        public bool Excluir(ConfiguracaoDocumentoFitossanitario configuracao, int idEditado)
        {
            try
            {
                GerenciadorTransacao.ObterIDAtual();

                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                {
                    bancoDeDados.IniciarTransacao();

                    _da.Excluir(configuracao, idEditado);

                    bancoDeDados.Commit();

                    Validacao.Add(Mensagem.ConfiguracaoDocumentoFitossanitario.Excluir);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
        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);
        }
 public ConfiguracaoDocumentoFitossanitarioVM(ConfiguracaoDocumentoFitossanitario configuracao, List <Lista> tipoDocumento)
 {
     Configuracao   = configuracao;
     TiposDocumento = ViewModelHelper.CriarSelectList(tipoDocumento);
 }