public List <Atividade> ObterAtividadesSolicitadas(int protocoloId) { List <Atividade> atividades = new List <Atividade>(); try { atividades = _da.ObterAtividadesSolicitadas(protocoloId); } catch (Exception exc) { Validacao.AddErro(exc); } return(atividades); }
public bool Salvar(Processo processo) { try { processo.Emposse.Id = User.FuncionarioId; processo.Requerimento = _busRequerimento.ObterSimplificado(processo.Requerimento.Id); if (processo.Arquivo == null) { processo.Arquivo = new Arquivo(); } bool isEdicao = (processo.Id > 0); if (processo.Fiscalizacao.Id > 0) { processo.Requerimento = new Requerimento(); processo.Atividades = new List <Atividade>(); processo.ChecagemRoteiro = new ChecagemRoteiro(); } if (_validar.Salvar(processo)) { #region Arquivos/Diretorio if (processo.Arquivo.Id != null && processo.Arquivo.Id == 0) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); processo.Arquivo = _busArquivo.Copiar(processo.Arquivo); } #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Arquivos/Banco if (processo.Arquivo.Id == 0) { ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(processo.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } #endregion #region Atividade List <Atividade> lstAtividadesAtual = null; if (processo.Id.GetValueOrDefault() > 0) { lstAtividadesAtual = _da.ObterAtividadesSolicitadas(processo.Id.Value, bancoDeDados); } if (processo.Atividades != null && processo.Atividades.Count > 0) { processo.Atividades.ForEach(x => { x.Protocolo.Id = processo.Id.GetValueOrDefault(); x.Protocolo.IsProcesso = true; }); AtividadeBus atividadeBus = new AtividadeBus(); atividadeBus.AlterarSituacaoProcDoc(processo.Atividades, lstAtividadesAtual, bancoDeDados); atividadeBus.TituloAnteriores(processo.Atividades, lstAtividadesAtual, bancoDeDados); } #endregion Processo processoOriginal = new Processo(); if (processo.Id != null && processo.Id.HasValue && processo.Id.Value > 0) { processoOriginal = ObterSimplificado(processo.Id.Value); } //Salvar _da.Salvar(processo, bancoDeDados); using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDadosCredenciado.IniciarTransacao(); // editando processo if (processoOriginal.Id > 0) { // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada if (processo.ChecagemRoteiro.Id != processoOriginal.ChecagemRoteiro.Id) { _busCheckList.AlterarSituacao(processoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados); } if (processoOriginal.Requerimento.Id != processo.Requerimento.Id) { processoOriginal.Requerimento = _busRequerimento.ObterSimplificado(processoOriginal.Requerimento.Id); if (processoOriginal.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao() { Requerimento = processoOriginal.Requerimento }, bancoDeDadosCredenciado); if (!_busProjetoDigital.AlterarSituacao(processoOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } AlterarRequerimentoSituacao(processoOriginal, banco: bancoDeDados); } if (processo.Fiscalizacao.Id != processoOriginal.Fiscalizacao.Id && processoOriginal.Fiscalizacao.Id > 0) { processoOriginal.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.CadastroConcluido; processoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; processoOriginal.Fiscalizacao.SituacaoAtualTipo = processo.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(processoOriginal.Fiscalizacao, bancoDeDados); } } if (processo.ChecagemRoteiro.Id > 0) { _busCheckList.AlterarSituacao(processo.ChecagemRoteiro.Id, 2, bancoDeDados); //Checagem Protocolada AlterarRequerimentoSituacao(processo, 3, bancoDeDados); // Requerimento Protocolado } if (processo.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao() { Requerimento = processo.Requerimento }, bancoDeDadosCredenciado); if (processoOriginal.Requerimento.Id != processo.Requerimento.Id) { if (!_busProjetoDigital.AlterarSituacao(processo.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } } #region Fiscalizacao if (processo.Fiscalizacao.Id != processoOriginal.Fiscalizacao.Id) { processo.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.Protocolado; processo.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; processo.Fiscalizacao.SituacaoAtualTipo = processo.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(processo.Fiscalizacao, bancoDeDados); } #endregion Fiscalizacao //sempre no final esse if if (!Validacao.EhValido) { bancoDeDadosCredenciado.Rollback(); bancoDeDados.Rollback(); return(false); } bancoDeDadosCredenciado.Commit(); } bancoDeDados.Commit(); } Mensagem msgSucesso = Mensagem.Processo.Salvar(processo.Numero); if (isEdicao) { msgSucesso = Mensagem.Processo.Editar; } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }