public Empreendimento EmpreendimentoProcDocAlterado(Titulo titulo, bool gerarMsg = true, eTipoMensagem tipoMsg = eTipoMensagem.Advertencia) { ProtocoloDa _protocoloDa = new ProtocoloDa(); IProtocolo protocolo = _protocoloDa.ObterSimplificado(titulo.Protocolo.Id.Value); if (protocolo != null && (titulo.EmpreendimentoId.GetValueOrDefault(0) != protocolo.Empreendimento.Id)) { if (gerarMsg) { Mensagem msg = Mensagem.Titulo.EmpreendimentoAlterado(protocolo.IsProcesso); msg.Tipo = tipoMsg; Validacao.Add(msg); } return(protocolo.Empreendimento); } return(null); }
public IProtocolo ObterSimplificado(int id, bool suprimirMensagemInexistente = false) { IProtocolo protocolo = null; try { protocolo = _da.ObterSimplificado(id); if (!suprimirMensagemInexistente && (protocolo.Id ?? 0) <= 0) { Validacao.Add(Mensagem.Processo.Inexistente); } } catch (Exception exc) { Validacao.AddErro(exc); } return(protocolo); }
public bool RequerimentoFinalizado(int requerimento, int excetoId = 0, string local = null) { try { if (excetoId > 0) { Documento documento = _da.ObterSimplificado(excetoId) as Documento; if (requerimento == documento.Requerimento.Id) { return(true); } } Requerimento objeto = _busRequerimento.Obter(requerimento); if (objeto.SituacaoId != 2) { Validacao.Add(Mensagem.Documento.RequerimentoSituacaoInvalida); } objeto.Atividades.ForEach(atividade => { if (atividade.SituacaoId == (int)eAtividadeSituacao.Desativada) { Validacao.Add(Mensagem.Requerimento.AtividadeDesativada(atividade.NomeAtividade, local ?? string.Empty)); } }); } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
public bool Salvar(Processo processo, bool isConversao = false) { RequerimentoValidar _requerimentoValidar = new RequerimentoValidar(); #region Validações Genérica if (processo.SetorId <= 0 && processo.Id.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.Processo.SetorObrigatorio); } if (!processo.DataCadastro.Data.HasValue) { Validacao.Add(Mensagem.Processo.DataCriacaoObrigatoria); } else { if (processo.DataCadastro.Data > DateTime.Today) { Validacao.Add(Mensagem.Processo.DataCriacaoMaiorAtual); } } if (processo.Tipo.Id <= 0) { Validacao.Add(Mensagem.Processo.ProcessoTipoObrigatorio); } if (processo.Volume.GetValueOrDefault() <= 0) { Validacao.Add(Mensagem.Processo.QuantVolumesObrigatoria); } if (!processo.PossuiSEP.HasValue) { Validacao.Add(Mensagem.Processo.PossuiNumeroSEPObrigatorio); } else { if (processo.PossuiSEP.Value) { int numeroAutuacao = 0; if (String.IsNullOrWhiteSpace(processo.NumeroAutuacao)) { Validacao.Add(Mensagem.Processo.NumeroAutuacaoObrigatorio); } else if (!Int32.TryParse(processo.NumeroAutuacao, out numeroAutuacao)) { Validacao.Add(Mensagem.Processo.NumeroAutuacaoFormato); } else { String numProcesso; if (ExisteNumeroSEP(processo, out numProcesso)) { Validacao.Add(Mensagem.Processo.NumeroAutuacaoJaExistente(numProcesso)); } } if (!processo.DataAutuacao.Data.HasValue) { Validacao.Add(Mensagem.Processo.DataAutuacaoObrigatoria); } else { if (processo.DataAutuacao.Data > DateTime.Today) { Validacao.Add(Mensagem.Processo.DataAutuacaoMaiorAtual); } } } } if (processo.Tipo.Id <= 0) { return(false); } ValidarProcessoTodosCampos(processo, isConversao); if (processo.Tipo.Id == 2 /*Fiscalização*/ && processo.Fiscalizacao.Id == 0) { Validacao.Add(Mensagem.Processo.FiscalizacaoObrigatoria); } if (processo.Requerimento.Id > 0) { ResponsavelTecnico(processo.Responsaveis); if (_requerimentoValidar.RequerimentoDeclaratorio(processo.Requerimento.Id)) { Validacao.Add(Mensagem.Processo.AssociarDeclaratorio); } } #endregion if (processo.Fiscalizacao.Id > 0) { String numeroProcessoAssociado = ValidarFiscalizacaoAssociadaOutroProtocolo(processo.Id.GetValueOrDefault(0), processo.Fiscalizacao.Id); if (!String.IsNullOrWhiteSpace(numeroProcessoAssociado)) { Validacao.Add(Mensagem.Fiscalizacao.FiscalizacaoJaAssociada(numeroProcessoAssociado)); } } if (processo.Id > 0) { #region Validações ao Editar if (!EmPosse(processo.Id.Value)) { Validacao.Add(Mensagem.Processo.PosseProcessoNecessariaEditar); return(Validacao.EhValido); } Processo processoOriginal = _da.ObterSimplificado(processo.Id.Value) as Processo; if ((processo.ChecagemRoteiro.Id > 0 && processo.Requerimento.Id > 0) && (processoOriginal.ChecagemRoteiro.Id != processo.ChecagemRoteiro.Id || processoOriginal.Requerimento.Id != processo.Requerimento.Id)) { _requerimentoValidar.RoteirosChecagemRequerimento(processo.ChecagemRoteiro.Id, processo.Requerimento.Id, processo.Requerimento.SituacaoId); } if (processoOriginal.ChecagemRoteiro.Id != processo.ChecagemRoteiro.Id) { if (_da.VerificarChecagemTemTituloPendencia(ModeloCodigosPendencia, processo.Id.Value).Count > 0) { Validacao.Add(Mensagem.Documento.ChecagemAssociadaTitulo); } else { _busCheckListRoteiro.ValidarAssociarCheckList(processo.ChecagemRoteiro.Id, processo.Id.GetValueOrDefault(), true); } } if (processoOriginal.Requerimento.Id != processo.Requerimento.Id) { List <String> titulos = _da.VerificarAtividadeAssociadaTitulo(processo.Id.GetValueOrDefault()); if (titulos.Count > 0) { Validacao.Add(Mensagem.Processo.RequerimentoAssociadoTitulo()); } } if (processoOriginal.Fiscalizacao.Id != processo.Fiscalizacao.Id) { AcompanhamentoBus acompanhamentoBus = new AcompanhamentoBus(); if (acompanhamentoBus.ObterAcompanhamentos(processoOriginal.Fiscalizacao.Id).Itens.Count > 0) { Validacao.Add(Mensagem.Processo.FiscalizacaoAssociadaPossuiAcompanhamento); } } #endregion } else { #region Validações ao cadastrar if (processo.ChecagemRoteiro != null && processo.ChecagemRoteiro.Id > 0) { _busCheckListRoteiro.ValidarAssociarCheckList(processo.ChecagemRoteiro.Id, processo.Id.GetValueOrDefault(), true, isConversao); } if ((processo.ChecagemRoteiro != null && processo.ChecagemRoteiro.Id > 0) && (processo.Requerimento != null && processo.Requerimento.Id > 0)) { _requerimentoValidar.RoteirosChecagemRequerimento(processo.ChecagemRoteiro.Id, processo.Requerimento.Id, processo.Requerimento.SituacaoId); } #endregion } return(Validacao.EhValido); }
public bool Salvar(Documento documento) { try { documento.Emposse.Id = User.FuncionarioId; if (documento.Arquivo == null) { documento.Arquivo = new Arquivo(); } bool isEdicao = (documento.Id > 0); if (_validar.Salvar(documento)) { #region Arquivos/Diretorio if (documento.Arquivo.Id != null && documento.Arquivo.Id == 0) { ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); documento.Arquivo = _busArquivo.Copiar(documento.Arquivo); } #endregion #region Setar Valores ListaBus listaBus = new ListaBus(); ProtocoloTipo configuracao = listaBus.TiposDocumento.FirstOrDefault(x => x.Id == documento.Tipo.Id); documento.ProtocoloAssociado = (configuracao.PossuiProcesso || configuracao.ProcessoObrigatorio) ? documento.ProtocoloAssociado : new Protocolo(); documento.ChecagemPendencia = (configuracao.PossuiChecagemPendencia || configuracao.ChecagemPendenciaObrigatorio) ? documento.ChecagemPendencia : new ChecagemPendencia(); documento.ChecagemRoteiro = (configuracao.PossuiChecagemRoteiro || configuracao.ChecagemRoteiroObrigatorio) ? documento.ChecagemRoteiro : new ChecagemRoteiro(); documento.Requerimento = (configuracao.PossuiRequerimento || configuracao.RequerimentoObrigatorio) ? documento.Requerimento : new Requerimento(); #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Arquivos/Banco if (documento.Arquivo.Id == 0) { ArquivoDa _arquivoDa = new ArquivoDa(); _arquivoDa.Salvar(documento.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } #endregion ChecagemPendenciaBus _checagemPendenciaBus = new ChecagemPendenciaBus(); using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDadosCredenciado.IniciarTransacao(); #region Alterar Situacao Requerimento if (documento.Id.HasValue) { Documento docOriginal = _da.ObterSimplificado(documento.Id.Value) as Documento; docOriginal.Requerimento = _busRequerimento.ObterSimplificado(docOriginal.Requerimento.Id); if (docOriginal.Requerimento.Id != documento.Requerimento.Id) { AlterarRequerimentoSituacao(docOriginal, banco: bancoDeDados); if (docOriginal.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao() { Requerimento = docOriginal.Requerimento }, bancoDeDadosCredenciado); if (!_busProjetoDigital.AlterarSituacao(docOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } } } #endregion Documento documentoOriginal = new Documento(); if (documento.Id != null && documento.Id.GetValueOrDefault() > 0) { documentoOriginal = ObterSimplificado(documento.Id.Value); } #region Titulo if (documento.ChecagemPendencia.Id > 0 && documento.Id.GetValueOrDefault() == 0) { documento.ChecagemPendencia = _checagemPendenciaBus.Obter(documento.ChecagemPendencia.Id); TituloBus tituloBus = new TituloBus(); Titulo titulo = tituloBus.Obter(documento.ChecagemPendencia.TituloId); if (titulo.Situacao.Id != 5) //5 - Encerrado { titulo.DataEncerramento.Data = DateTime.Now; titulo.MotivoEncerramentoId = 7; //Encerrado TituloSituacaoBus tituloSituacaoBus = new TituloSituacaoBus(); tituloSituacaoBus.AlterarSituacao(titulo, (int)eAlterarSituacaoAcao.Encerrar, bancoDeDados); if (Validacao.EhValido) { Validacao.Erros.Clear(); } } #region Itens da Analise AnaliseItensBus busAnalise = new AnaliseItensBus(new AnaliseItensValidar()); AnaliseItem analiseItem = busAnalise.ObterAnaliseTitulo(documento.ChecagemPendencia.TituloId); analiseItem = busAnalise.Obter(analiseItem.Id, bancoDeDados); //int setorId = _busProc.ObterSetor(analiseItem.Protocolo.Id); foreach (Item item in analiseItem.Itens) { if (documento.ChecagemPendencia.Itens.Exists(x => x.Id == item.Id)) { item.Analista = User.Name; item.Situacao = (int)eAnaliseItemSituacao.Recebido; item.Motivo = String.Empty; item.Recebido = true; item.Editado = true; //item.SetorId = setorId; item.DataAnalise = DateTime.Now.ToString(); } } AnaliseItensDa _daAnalise = new AnaliseItensDa(); _daAnalise.Salvar(analiseItem, bancoDeDados); #endregion } #endregion #region Atividade List <Atividade> lstAtividadesAtual = null; if ((documento.Id ?? 0) > 0) { lstAtividadesAtual = _da.ObterAtividades(documento.Id.GetValueOrDefault(), bancoDeDados).Atividades; } if (documento.Atividades != null && documento.Atividades.Count > 0) { documento.Atividades.ForEach(x => { x.Protocolo.Id = documento.Id.GetValueOrDefault(); x.Protocolo.IsProcesso = false; }); AtividadeBus atividadeBus = new AtividadeBus(); atividadeBus.AlterarSituacaoProcDoc(documento.Atividades, lstAtividadesAtual, bancoDeDados); atividadeBus.TituloAnteriores(documento.Atividades, lstAtividadesAtual, bancoDeDados); } #endregion _da.Salvar(documento, bancoDeDados); #region Checagens // cadastrando, seta situação da checagem de itens de roteiro/pendencia como protocolada if (documentoOriginal.Id.GetValueOrDefault() <= 0) { _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada documento.ChecagemPendencia.SituacaoId = 2; //protocolada _checagemPendenciaBus.AlterarSituacao(documento.ChecagemPendencia, bancoDeDados); } else // editando documento { // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada if (documento.ChecagemRoteiro.Id != documentoOriginal.ChecagemRoteiro.Id) { _busCheckList.AlterarSituacao(documentoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados); //finalizada _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada } } #endregion documento.Requerimento = _busRequerimento.ObterSimplificado(documento.Requerimento.Id); if (documento.Requerimento.IsRequerimentoDigital) { CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus(); carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao() { Requerimento = documento.Requerimento }, bancoDeDadosCredenciado); if (documentoOriginal.Requerimento.Id != documento.Requerimento.Id) { if (!_busProjetoDigital.AlterarSituacao(documento.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado)) { bancoDeDados.Rollback(); return(false); } } } AlterarRequerimentoSituacao(documento, 3, bancoDeDados); // Protocolado #region Fiscalizacao if (isEdicao && documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id && documentoOriginal.Fiscalizacao.Id > 0) { documentoOriginal.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.CadastroConcluido; documentoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; documentoOriginal.Fiscalizacao.SituacaoAtualTipo = documento.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(documentoOriginal.Fiscalizacao, bancoDeDados); } if (documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id) { documento.Fiscalizacao.SituacaoNovaTipo = (int)eFiscalizacaoSituacao.Protocolado; documento.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now; documento.Fiscalizacao.SituacaoAtualTipo = documento.Fiscalizacao.SituacaoId; _busFiscalizacao.AlterarSituacaoProcDoc(documento.Fiscalizacao, bancoDeDados); } #endregion //sempre no final esse if if (!Validacao.EhValido) { bancoDeDadosCredenciado.Rollback(); bancoDeDados.Rollback(); return(false); } bancoDeDadosCredenciado.Commit(); } bancoDeDados.Commit(); } Mensagem msgSucesso = Mensagem.Documento.Salvar(documento.Numero); if (isEdicao) { msgSucesso = Mensagem.Documento.Editar; } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }