internal bool PrateleirasExcluirDeArquivo(TramitacaoArquivo arquivo) { TramitacaoArquivo arquivoAux = _da.Obter(arquivo.Id.Value); List <Prateleira> prateleirasExcluidas = new List <Prateleira>(); /*bool existe = false; * * foreach (Prateleira prateleira in arquivoAux.Prateleiras) * { * existe = false; * foreach (var item in arquivo.Prateleiras) * { * if (item.id == prateleira.id) * { * existe = true; * break; * } * } * * if (!existe) * { * prateleirasExcluidas.Add(prateleira); * } * }*/ foreach (Prateleira prateleira in prateleirasExcluidas) { if (_da.PrateleiraPossuiProtocolo(prateleira.Id)) { Validacao.Add(Msg.PrateleiraPossuiProtocolo(prateleira.Texto)); } } return(Validacao.EhValido); }
public bool SalvarArquivo(TramitacaoArquivo tramitacaoArquivo) { try { if (_validar.SalvarArquivo(tramitacaoArquivo)) { Mensagem msgSucesso = Mensagem.TramitacaoArquivo.SalvarArquivo; if (tramitacaoArquivo.Id.HasValue && tramitacaoArquivo.Id.Value > 0) { msgSucesso = Mensagem.TramitacaoArquivo.EditarArquivo; } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(tramitacaoArquivo, bancoDeDados); bancoDeDados.Commit(); } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
internal bool EstantesExcluirDeArquivo(TramitacaoArquivo arquivo) { TramitacaoArquivo arquivoAux = _da.Obter(arquivo.Id.Value); List <Estante> estantesExcluidas = new List <Estante>(); bool existe = false; foreach (Estante estante in arquivoAux.Estantes) { existe = false; foreach (var item in arquivo.Estantes) { if (item.Id == estante.Id) { existe = true; break; } } if (!existe) { estantesExcluidas.Add(estante); } } foreach (Estante estante in estantesExcluidas) { if (_da.EstantePossuiProtocolo(estante.Id)) { Validacao.Add(Msg.EstantePossuiProtocolo(estante.Texto)); } } return(Validacao.EhValido); }
internal bool ValidarEditarTela(TramitacaoArquivo tramitacaoArquivo) { if (tramitacaoArquivo == null || !tramitacaoArquivo.Id.HasValue || tramitacaoArquivo.Id.Value <= 0) { Validacao.Add(Mensagem.Tramitacao.ArquivoNaoEncontrado); } return(Validacao.EhValido); }
public TramitacaoArquivo ObterTramitacaoArquivo(int id) { TramitacaoArquivo tramitacaoArquivo = null; try { tramitacaoArquivo = _da.Obter(id); } catch (Exception exc) { Validacao.AddErro(exc); } return(tramitacaoArquivo); }
public TramitacaoArquivo Salvar(TramitacaoArquivo arquivo, BancoDeDados banco = null) { if (arquivo == null) { throw new Exception("Tramitacao Arquivo é nulo."); } if (arquivo.Id.HasValue && arquivo.Id.Value > 0) { arquivo = Editar(arquivo, banco); } else { arquivo = Criar(arquivo, banco); } return(arquivo); }
internal Resultados <TramitacaoArquivo> Filtrar(Filtro <TramitacaoArquivoFiltro> filtros, BancoDeDados banco = null) { Resultados <TramitacaoArquivo> retorno = new Resultados <TramitacaoArquivo>(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { string comandtxt = string.Empty; string esquema = (string.IsNullOrEmpty(EsquemaBanco) ? "" : "."); Comando comando = bancoDeDados.CriarComando(""); #region Adicionando Filtros comandtxt += comando.FiltroAndLike("a.nome", "nome", filtros.Dados.Nome, true); comandtxt += comando.FiltroAnd("a.setor", "setor", filtros.Dados.Setor); if (filtros.Dados.Estante > 0) { comandtxt += String.Format(" and a.id in (select b.arquivo from {0}tab_tramitacao_arq_estante b where upper(b.nome) like upper(:estante))", esquema); comando.AdicionarParametroEntrada("estante", filtros.Dados.Estante + "%", ExtensaoComando.ToDbType(filtros.Dados.Estante)); } if (filtros.Dados.Prateleira > 0) { comandtxt += String.Format(" and a.id in (select b.arquivo from {0}tab_tramitacao_arq_prateleira b where upper(b.nome) like upper(:prateleira))", esquema); comando.AdicionarParametroEntrada("prateleira", filtros.Dados.Prateleira + "%", ExtensaoComando.ToDbType(filtros.Dados.Prateleira)); } List <String> ordenar = new List <String>(); List <String> colunas = new List <String>() { "nome", "setor", "tipo" }; if (filtros.OdenarPor > 0) { ordenar.Add(colunas.ElementAtOrDefault(filtros.OdenarPor - 1)); } else { ordenar.Add("nome"); } #endregion #region Quantidade de registro do resultado comando.DbCommand.CommandText = String.Format("select count(*) from {0}tab_tramitacao_arquivo a where a.id > 0" + comandtxt, esquema); retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando)); comando.AdicionarParametroEntrada("menor", filtros.Menor); comando.AdicionarParametroEntrada("maior", filtros.Maior); comandtxt = String.Format(@"select a.id, a.nome, a.setor setor_id, s.nome setor_nome, a.tipo tipo_id, lp.texto tipo_texto, a.tid from {0}tab_tramitacao_arquivo a, {0}tab_setor s, {0}lov_tramitacao_arq_tipo lp where a.setor = s.id and a.tipo = lp.id" + comandtxt + DaHelper.Ordenar(colunas, ordenar), esquema); 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 TramitacaoArquivo arquivo; while (reader.Read()) { arquivo = new TramitacaoArquivo(); arquivo.Id = Convert.ToInt32(reader["id"]); arquivo.Nome = reader["nome"].ToString(); if (reader["setor_id"] != null && !Convert.IsDBNull(reader["setor_id"])) { arquivo.SetorId = Convert.ToInt32(reader["setor_id"]); arquivo.SetorNome = reader["setor_nome"].ToString(); } if (reader["tipo_id"] != null && !Convert.IsDBNull(reader["tipo_id"])) { arquivo.TipoId = Convert.ToInt32(reader["tipo_id"]); arquivo.TipoTexto = reader["tipo_texto"].ToString(); } arquivo.Tid = reader["tid"].ToString(); retorno.Itens.Add(arquivo); } reader.Close(); #endregion } } return(retorno); }
internal TramitacaoArquivo Criar(TramitacaoArquivo arquivo, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Tramitação Arquivo bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_arquivo a (id, nome, setor, tipo, protocolo_ativ_situacao, tid) values({0}seq_tramitacao_arquivo.nextval, :nome, :setor, :tipo, :protocolo_ativ_situacao, :tid) returning a.id into :id" , EsquemaBanco); comando.AdicionarParametroEntrada("nome", DbType.String, 100, arquivo.Nome); comando.AdicionarParametroEntrada("setor", arquivo.SetorId, DbType.Int32); comando.AdicionarParametroEntrada("tipo", arquivo.TipoId, DbType.Int32); comando.AdicionarParametroEntrada("protocolo_ativ_situacao", arquivo.ProtocoloSituacao, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); arquivo.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #endregion #region Estantes if (arquivo.Estantes != null && arquivo.Estantes.Count > 0) { foreach (Estante item in arquivo.Estantes) { comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_arq_estante a (id, arquivo, nome, tid) values ({0}seq_tramitacao_arq_esta.nextval, :arquivo, :nome, :tid) returning a.id into :id", EsquemaBanco); comando.AdicionarParametroEntrada("arquivo", arquivo.Id, DbType.Int32); comando.AdicionarParametroEntrada("nome", DbType.String, 50, item.Texto); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); item.Id = Convert.ToInt32(comando.ObterValorParametro("id")); #region Prateleiras if (item.Prateleiras != null && item.Prateleiras.Count > 0) { comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_arq_prateleira (id, arquivo, estante, modo, identificacao, tid) values ({0}seq_tramitacao_arq_prat.nextval, :arquivo, :estante, :modo, :identificacao, :tid)", EsquemaBanco); comando.AdicionarParametroEntrada("arquivo", arquivo.Id, DbType.Int32); comando.AdicionarParametroEntrada("estante", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("modo", DbType.Int32); comando.AdicionarParametroEntrada("identificacao", DbType.String, 50); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); foreach (Prateleira itemAux in item.Prateleiras) { comando.SetarValorParametro("identificacao", itemAux.Texto); comando.SetarValorParametro("modo", itemAux.ModoId); bancoDeDados.ExecutarNonQuery(comando); } } #endregion } } #endregion #region Histórico Historico.Gerar(arquivo.Id.Value, eHistoricoArtefato.tramitacaoarquivo, eHistoricoAcao.criar, bancoDeDados); #endregion bancoDeDados.Commit(); } return(arquivo); }
internal TramitacaoArquivo Obter(int id, bool simplificado = false) { TramitacaoArquivo arquivo = new TramitacaoArquivo(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { #region Tramitacao Arquivo Comando comando = bancoDeDados.CriarComando(@"select a.id, a.nome, a.setor, a.tipo, a.protocolo_ativ_situacao, a.tid from {0}tab_tramitacao_arquivo a where a.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { if (reader.Read()) { arquivo.Id = id; arquivo.Tid = reader["tid"].ToString(); arquivo.Nome = reader["nome"].ToString(); if (reader["setor"] != null && !Convert.IsDBNull(reader["setor"])) { arquivo.SetorId = Convert.ToInt32(reader["setor"]); } if (reader["tipo"] != null && !Convert.IsDBNull(reader["tipo"])) { arquivo.TipoId = Convert.ToInt32(reader["tipo"]); } if (reader["protocolo_ativ_situacao"] != null && !Convert.IsDBNull(reader["protocolo_ativ_situacao"])) { arquivo.ProtocoloSituacao = Convert.ToInt32(reader["protocolo_ativ_situacao"]); } } reader.Close(); } if (simplificado) { return(arquivo); } #endregion #region Estantes comando = bancoDeDados.CriarComando(@"select e.id, e.arquivo, e.nome, e.tid from {0}tab_tramitacao_arq_estante e where e.arquivo = :arquivo", EsquemaBanco); comando.AdicionarParametroEntrada("arquivo", arquivo.Id, DbType.Int32); using (IDataReader reader = bancoDeDados.ExecutarReader(comando)) { Estante estante; while (reader.Read()) { estante = new Estante(); estante.Id = Convert.ToInt32(reader["id"]); estante.Arquivo = Convert.ToInt32(reader["arquivo"]); estante.Texto = reader["nome"].ToString(); estante.Tid = reader["tid"].ToString(); #region Prateleiras comando = bancoDeDados.CriarComando(@" select e.id, e.arquivo, e.estante, e.identificacao, e.modo, ltam.texto modo_texto, e.tid from {0}tab_tramitacao_arq_prateleira e, {0}lov_tramitacao_arq_modo ltam where e.modo = ltam.id and e.arquivo = :arquivo and e.estante = :estante" , EsquemaBanco); comando.AdicionarParametroEntrada("arquivo", arquivo.Id, DbType.Int32); comando.AdicionarParametroEntrada("estante", estante.Id, DbType.Int32); using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando)) { Prateleira prateleira; while (readerAux.Read()) { prateleira = new Prateleira(); prateleira.Id = Convert.ToInt32(readerAux["id"]); prateleira.Arquivo = Convert.ToInt32(readerAux["arquivo"]); prateleira.Estante = Convert.ToInt32(readerAux["estante"]); prateleira.ModoId = Convert.ToInt32(readerAux["modo"]); prateleira.ModoTexto = readerAux["modo_texto"].ToString(); prateleira.Texto = readerAux["identificacao"].ToString(); prateleira.Tid = readerAux["tid"].ToString(); estante.Prateleiras.Add(prateleira); } readerAux.Close(); } #endregion arquivo.Estantes.Add(estante); } reader.Close(); } #endregion } return(arquivo); }
internal TramitacaoArquivo Editar(TramitacaoArquivo arquivo, BancoDeDados banco = null) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { #region Tramitacao Arquivo bancoDeDados.IniciarTransacao(); Comando comando = bancoDeDados.CriarComando(@"update {0}tab_tramitacao_arquivo a set a.nome = :nome, a.setor = :setor, a.tipo = :tipo, a.protocolo_ativ_situacao = :protocolo_ativ_situacao, a.tid = :tid where a.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", arquivo.Id, DbType.Int32); comando.AdicionarParametroEntrada("nome", DbType.String, 100, arquivo.Nome); comando.AdicionarParametroEntrada("setor", arquivo.SetorId, DbType.Int32); comando.AdicionarParametroEntrada("tipo", arquivo.TipoId, DbType.Int32); comando.AdicionarParametroEntrada("protocolo_ativ_situacao", arquivo.ProtocoloSituacao, DbType.Int32); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); #endregion #region Limpar os dados do banco #region Estantes/Prateleira if (arquivo.Estantes != null && arquivo.Estantes.Count > 0) { comando = bancoDeDados.CriarComando(@"delete from {0}tab_tramitacao_arq_prateleira c where c.arquivo = :arquivo ", EsquemaBanco); comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "c.id", DbType.Int32, arquivo.Estantes.SelectMany(x => x.Prateleiras).Select(y => y.Id).ToList()); comando.AdicionarParametroEntrada("arquivo", arquivo.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); } //Estante comando = bancoDeDados.CriarComando("delete from {0}tab_tramitacao_arq_estante ae ", EsquemaBanco); comando.DbCommand.CommandText += String.Format("where ae.arquivo = :arquivo {0}", comando.AdicionarNotIn("and", "ae.id", DbType.Int32, arquivo.Estantes.Select(x => x.Id).ToList())); comando.AdicionarParametroEntrada("arquivo", arquivo.Id, DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); #endregion #endregion #region Estantes if (arquivo.Estantes != null && arquivo.Estantes.Count > 0) { foreach (Estante item in arquivo.Estantes) { if (item.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}tab_tramitacao_arq_estante a set a.arquivo = :arquivo, a.nome = :nome, a.tid = :tid where a.id = :id returning a.id into :id_out", EsquemaBanco); comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_arq_estante a (id, arquivo, nome, tid) values ({0}seq_tramitacao_arq_esta.nextval, :arquivo, :nome, :tid) returning a.id into :id_out" , EsquemaBanco); } comando.AdicionarParametroEntrada("arquivo", arquivo.Id, DbType.Int32); comando.AdicionarParametroEntrada("nome", DbType.String, 50, item.Texto); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); comando.AdicionarParametroSaida("id_out", DbType.Int32); bancoDeDados.ExecutarNonQuery(comando); item.Id = Convert.ToInt32(comando.ObterValorParametro("id_out")); #region Prateleiras if (item.Prateleiras != null && item.Prateleiras.Count > 0) { foreach (Prateleira itemAux in item.Prateleiras) { if (itemAux.Id > 0) { comando = bancoDeDados.CriarComando(@"update {0}tab_tramitacao_arq_prateleira a set a.arquivo = :arquivo, a.estante = :estante, a.modo = :modo, a.identificacao = :identificacao, a.tid = :tid where a.id = :id" , EsquemaBanco); comando.AdicionarParametroEntrada("id", itemAux.Id, DbType.Int32); } else { comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_arq_prateleira a (id, arquivo, estante, modo, identificacao, tid) values ({0}seq_tramitacao_arq_prat.nextval, :arquivo, :estante, :modo, :identificacao, :tid)" , EsquemaBanco); } comando.AdicionarParametroEntrada("arquivo", arquivo.Id, DbType.Int32); comando.AdicionarParametroEntrada("estante", item.Id, DbType.Int32); comando.AdicionarParametroEntrada("modo", itemAux.ModoId, DbType.Int32); comando.AdicionarParametroEntrada("identificacao", DbType.String, 50, itemAux.Texto); comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual()); bancoDeDados.ExecutarNonQuery(comando); } } #endregion } } #endregion #region Histórico Historico.Gerar(arquivo.Id.Value, eHistoricoArtefato.tramitacaoarquivo, eHistoricoAcao.atualizar, bancoDeDados); #endregion bancoDeDados.Commit(); } return(arquivo); }
public bool ValidarEditarTela(TramitacaoArquivo tramitacaoArquivo) { return(_validar.ValidarEditarTela(tramitacaoArquivo)); }
public bool SalvarArquivo(TramitacaoArquivo arquivo) { if (string.IsNullOrEmpty(arquivo.Nome)) { Validacao.Add(Msg.NomeArquivoObrigratorio); } if (arquivo.SetorId.GetValueOrDefault() <= 0) { Validacao.Add(Msg.SetorArquivoObrigratorio); } if (arquivo.TipoId.GetValueOrDefault() <= 0) { Validacao.Add(Msg.TipoArquivoObrigratorio); } if (arquivo.Estantes == null || arquivo.Estantes.Count <= 0) { Validacao.Add(Msg.EstanteArquivoObrigratorio); } int contator = 0; int i = 0; foreach (Estante estante in arquivo.Estantes) { if (string.IsNullOrWhiteSpace(estante.Texto)) { Validacao.Add(Msg.EstanteObrigratorio(i)); i++; continue; } else { contator = 0; foreach (var item in arquivo.Estantes) { if (estante.Texto.ToUpper() == item.Texto.ToUpper()) { contator++; } } if (contator > 1) { Validacao.Add(Msg.EstanteNomeIguais(estante.Texto)); } } if (estante.Prateleiras.Count <= 0) { Validacao.Add(Msg.PrateleiraEstanteObrigratorio(estante.Texto)); } foreach (var prateleira in estante.Prateleiras) { if (prateleira.ModoId == 0) { Validacao.Add(Msg.ModoObrigratorioEstante(estante.Texto)); i++; continue; } if (string.IsNullOrWhiteSpace(prateleira.Texto)) { Validacao.Add(Msg.IdentificadorObrigratorio(estante.Texto)); i++; continue; } contator = 0; foreach (var item in estante.Prateleiras) { if (prateleira.ModoId == item.ModoId && prateleira.Texto.ToUpper() == item.Texto.ToUpper()) { contator++; } } if (contator > 1) { Validacao.Add(Msg.EstanteComModosIdenticacaoRepetidos(estante.Texto)); } } i++; } if (arquivo.ProtocoloSituacao.GetValueOrDefault() <= 0) { Validacao.Add(Msg.ProcessoOuDocumentoArqObrigratorio); } if (arquivo.Id.HasValue && arquivo.Id.Value > 0) { EstantesExcluirDeArquivo(arquivo); PrateleirasExcluirDeArquivo(arquivo); TramitacaoArquivo arquivoOriginal = _da.Obter(arquivo.Id.Value, true); if (arquivoOriginal.SetorId != arquivo.SetorId) { if (_da.PossuiProtocolo(arquivo.Id.Value)) { Validacao.Add(Mensagem.Tramitacao.ArquivoEditarSetorNaoEhPossivelPorPossuirProtocolo(eTipoMensagem.Advertencia)); } } } return(Validacao.EhValido); }
public void CarregarTramitacaoArquivo(TramitacaoArquivo arquivo, List <TramitacaoArquivoModo> modos) { _tramitacaoArquivo = arquivo; CarregarEstantes(arquivo.Estantes, modos); }