Esempio n. 1
0
        public bool ExisteCredenciado(int solicitacaoId)
        {
            try
            {
                return(_da.ExisteCredenciado(solicitacaoId));
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(false);
        }
        public bool AlterarSituacao(CARSolicitacao entidade, int funcionarioId, bool isTitulo)
        {
            if (entidade.Id <= 0)
            {
                Validacao.Add(Mensagem.Padrao.Inexistente);
                return(false);
            }

            var origemSolicitacao = (int)(_da.ExisteCredenciado(entidade.Id) ? eCARSolicitacaoOrigem.Credenciado : eCARSolicitacaoOrigem.Institucional);

            var situacaoArquivo = _da.BuscaSituacaoAtualArquivoSICAR(entidade.Id, origemSolicitacao).Item1;

            if (isTitulo)
            {
                AlterarSituacaoPorTitulo(entidade);
            }
            else
            {
                AlterarSituacaoPorSolicitacao(entidade, funcionarioId, origemSolicitacao);
            }

            if (entidade.SituacaoAnteriorId == (int)eCARSolicitacaoSituacao.Pendente && situacaoArquivo == eStatusArquivoSICAR.ArquivoReprovado &&
                entidade.SituacaoId != (int)eCARSolicitacaoSituacao.Invalido)
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAlterarSituacaoNovaSituacaoNaoPermitida);
            }

            if (entidade.SituacaoAnteriorId == (int)eCARSolicitacaoSituacao.Valido && situacaoArquivo == eStatusArquivoSICAR.Nulo &&
                (entidade.SituacaoId != (int)eCARSolicitacaoSituacao.Invalido))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAlterarSituacaoNovaSituacaoNaoPermitida);
            }

            if (entidade.SituacaoAnteriorId == (int)eCARSolicitacaoSituacao.Valido && situacaoArquivo == eStatusArquivoSICAR.ArquivoEntregue &&
                (entidade.SituacaoId != (int)eCARSolicitacaoSituacao.Invalido && entidade.SituacaoId != (int)eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAlterarSituacaoNovaSituacaoNaoPermitida);
            }

            if (entidade.SituacaoAnteriorId == (int)eCARSolicitacaoSituacao.Suspenso && situacaoArquivo == eStatusArquivoSICAR.Nulo &&
                (entidade.SituacaoId != (int)eCARSolicitacaoSituacao.Valido && entidade.SituacaoId != (int)eCARSolicitacaoSituacao.Invalido))
            {
                Validacao.Add(Mensagem.CARSolicitacao.SolicitacaoAlterarSituacaoNovaSituacaoNaoPermitida);
            }

            return(Validacao.EhValido);
        }
        public bool AcessarAlterarSituacao(CARSolicitacao entidade)
        {
            if (entidade.Id <= 0)
            {
                Validacao.Add(Mensagem.Padrao.Inexistente);
                return(false);
            }

            if (entidade.Protocolo.Id.GetValueOrDefault() > 0)
            {
                if (!_protocoloDa.EmPosse(entidade.Protocolo.Id.GetValueOrDefault()))
                {
                    Validacao.Add(Mensagem.CARSolicitacao.ProtocoloPosseAlterarSituacao);
                    return(false);
                }
            }

            String tituloSituacao = String.Empty;

            //Busca a situacao do titulo car que seja diferente de Encerrado
            if (_da.ExisteCredenciado(entidade.Id))
            {
                tituloSituacao = _da.ObterSituacaoTituloCARExistenteCredenciado(entidade.Empreendimento.Id);
            }
            else
            {
                tituloSituacao = _da.ObterSituacaoTituloCARExistente(entidade.Empreendimento.Id);
            }


            if (!String.IsNullOrWhiteSpace(tituloSituacao))
            {
                Validacao.Add(Mensagem.CARSolicitacao.EmpreendimentoPossuiTitulo(tituloSituacao));
                return(false);
            }

            if (entidade.SituacaoId == (int)eCARSolicitacaoSituacao.EmCadastro)
            {
                Validacao.Add(Mensagem.CARSolicitacao.AcessarAlterarSituacao(entidade.SituacaoTexto));
            }

            if (entidade.SituacaoId == (int)eCARSolicitacaoSituacao.Invalido || entidade.SituacaoId == (int)eCARSolicitacaoSituacao.SubstituidoPeloTituloCAR || entidade.SituacaoId == (int)eCARSolicitacaoSituacao.Valido)
            {
                Validacao.Add(Mensagem.CARSolicitacao.AcessarAlterarSituacao(entidade.SituacaoTexto));
            }

            var origemSolicitacao = (int)(_da.ExisteCredenciado(entidade.Id) ? eCARSolicitacaoOrigem.Credenciado : eCARSolicitacaoOrigem.Institucional);

            eStatusArquivoSICAR situacaoArquivo = _da.BuscaSituacaoAtualArquivoSICAR(entidade.Id, origemSolicitacao).Item1;

            if (situacaoArquivo == eStatusArquivoSICAR.ArquivoEntregue)
            {
                Validacao.Add(Mensagem.CARSolicitacao.AcessarAlterarSituacaoSolicitacaoEnviadaSICAR);
            }

            if (situacaoArquivo != eStatusArquivoSICAR.Nulo && situacaoArquivo != eStatusArquivoSICAR.ArquivoReprovado)
            {
                Validacao.Add(Mensagem.CARSolicitacao.AcessarAlterarSituacaoSolicitacaoEmProcessamentoSICAR);
            }

            return(Validacao.EhValido);
        }