예제 #1
0
 public ProcessoValidar()
 {
     _da                  = new ProtocoloDa();
     _busPessoa           = new PessoaBus(new PessoaValidar());
     _busCheckListRoteiro = new ChecagemRoteiroBus();
     _requerimentoValidar = new RequerimentoValidar();
     _configTituloModelo  = new GerenciadorConfiguracao <ConfiguracaoTituloModelo>(new ConfiguracaoTituloModelo());
 }
예제 #2
0
        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);
        }