Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        internal bool ValidarEditarTela(TramitacaoArquivo tramitacaoArquivo)
        {
            if (tramitacaoArquivo == null || !tramitacaoArquivo.Id.HasValue || tramitacaoArquivo.Id.Value <= 0)
            {
                Validacao.Add(Mensagem.Tramitacao.ArquivoNaoEncontrado);
            }

            return(Validacao.EhValido);
        }
Exemple #5
0
        public TramitacaoArquivo ObterTramitacaoArquivo(int id)
        {
            TramitacaoArquivo tramitacaoArquivo = null;

            try
            {
                tramitacaoArquivo = _da.Obter(id);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(tramitacaoArquivo);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        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);
        }
Exemple #11
0
 public bool ValidarEditarTela(TramitacaoArquivo tramitacaoArquivo)
 {
     return(_validar.ValidarEditarTela(tramitacaoArquivo));
 }
Exemple #12
0
        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);
 }