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)); }
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); }
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)); }
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); } }
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(); } }
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); }