Пример #1
0
        public List <TituloModeloLst> ObterNumerosTitulos(string numero, int modeloId)
        {
            TituloModeloInternoBus bus     = new TituloModeloInternoBus();
            List <TituloModeloLst> titulos = new List <TituloModeloLst>();

            try
            {
                if (!_validar.ObterNumerosTitulos(numero, modeloId))
                {
                    return(titulos);
                }

                if (ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(numero))
                {
                    titulos = _requrimentoInternoBus.ObterNumerosTitulos(numero, modeloId);

                    switch (titulos.Count)
                    {
                    case 0:
                        Validacao.Add(Mensagem.Requerimento.TituloNaoEncontrado);
                        break;

                    case 1:
                        Validacao.Add(Mensagem.Requerimento.TituloEncontrado);
                        break;

                    default:
                        Validacao.Add(Mensagem.Requerimento.TitulosEncontrados);
                        break;
                    }
                }
                else
                {
                    if (_da.ValidarNumeroSemAnoExistente(numero, modeloId))
                    {
                        Validacao.Add(Mensagem.Requerimento.TituloNumeroSemAnoEncontrado);
                    }
                    else
                    {
                        Validacao.Add(Mensagem.Requerimento.TituloNaoEncontrado);
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(titulos);
        }
        public bool ValidarAtividade(List <Atividade> atividades, string local = null)
        {
            if (atividades.Count <= 0)
            {
                Validacao.Add(Msg.AtividadeObrigatorio);
                return(Validacao.EhValido);
            }

            int    SetorId                  = atividades[0].SetorId;
            int    titulos                  = 0;
            int    titulosDeclaratorio      = 0;
            string tituloDeclaratorioModelo = string.Empty;

            foreach (Atividade atividade in atividades)
            {
                #region Atividades

                if (SetorId != atividade.SetorId)
                {
                    Validacao.Add(Msg.AtividadesSetoresDiferentes);
                    return(Validacao.EhValido);
                }

                if (atividade.Finalidades.Count < 1)
                {
                    Validacao.Add(Msg.TituloObrigatorio(atividade.NomeAtividade));
                    return(Validacao.EhValido);
                }

                if (!_atividadeBus.AtividadeAtiva(atividade.Id))
                {
                    Validacao.Add(Msg.AtividadeDesativada(atividade.NomeAtividade, local));
                }

                foreach (var item in atividade.Finalidades)
                {
                    #region Finalidades

                    if (item.TituloModelo == 0)
                    {
                        Validacao.Add(Msg.TituloObrigatorio(atividade.NomeAtividade));
                    }

                    //Verifica se a situação da atividade é encerrada ou já tem título emitido
                    if (atividade.Protocolo.Id > 0 && _atividadeBus.ValidarAtividadeComTituloOuEncerrada(atividade.Protocolo.Id.Value, atividade.Protocolo.IsProcesso, atividade.Id, item.TituloModelo))
                    {
                        continue;
                    }

                    if (!_atividadeConfigurada.AtividadeConfigurada(atividade.Id, item.TituloModelo))
                    {
                        Validacao.Add(Msg.TituloNaoConfiguradoAtividade(item.TituloModeloTexto, atividade.NomeAtividade, local));
                        continue;
                    }

                    TituloModelo modelo = _tituloModeloBus.Obter(item.TituloModelo);

                    if (modelo.TipoDocumentoEnum == eTituloModeloTipoDocumento.Titulo)
                    {
                        ++titulos;
                    }
                    else
                    {
                        ++titulosDeclaratorio;
                        tituloDeclaratorioModelo = modelo.Nome;
                    }

                    if (titulos > 0 && titulosDeclaratorio > 0)
                    {
                        Validacao.Add(Msg.TituloDeclaratorioOutroRequerimento(tituloDeclaratorioModelo));
                    }

                    if (item.Id == 3)                    //Renovação
                    {
                        #region Renovacao

                        if (!modelo.Regra(eRegra.Renovacao))
                        {
                            Validacao.Add(Msg.TituloNaoEhRenovacao(item.TituloModeloTexto, atividade.NomeAtividade, local));
                        }

                        if (modelo.Regra(eRegra.Renovacao))
                        {
                            if (item.EmitidoPorInterno)
                            {
                                if (item.TituloModeloAnteriorId == 0 || item.TituloModeloAnteriorId == null)
                                {
                                    Validacao.Add(Msg.TituloAnteriorObrigatorio(item.TituloModeloTexto, atividade.NomeAtividade));
                                }

                                if (string.IsNullOrWhiteSpace(item.TituloAnteriorNumero))
                                {
                                    Validacao.Add(Msg.NumeroAnteriorObrigatorio(item.TituloModeloTexto, atividade.NomeAtividade));
                                }
                                else
                                {
                                    if (!ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(item.TituloAnteriorNumero))
                                    {
                                        Validacao.Add(Msg.TituloAnteriorNumeroInvalido);
                                    }
                                }

                                CarregarTituloAnteriorSigla(item);
                            }
                            else
                            {
                                ValidarTituloNumeroOrgaoTexto(item, atividade);
                            }
                        }

                        #endregion
                    }
                    else
                    {
                        #region Fase Anterior

                        if (!modelo.Regra(eRegra.FaseAnterior) && (item.TituloModeloAnteriorId != null && item.TituloModeloAnteriorId != 0))
                        {
                            Validacao.Add(Msg.TituloNaoTemTituloAnterior(item.TituloModeloAnteriorTexto, item.TituloModeloTexto, local));
                            continue;
                        }

                        Boolean adicionouTituloAnterior = false;
                        Boolean validarTituloAnterior   = Convert.ToBoolean((modelo.Resposta(eRegra.FaseAnterior, eResposta.TituloAnteriorObrigatorio) ?? new TituloModeloResposta()).Valor);

                        if (item.EmitidoPorInterno)
                        {
                            adicionouTituloAnterior = (item.TituloAnteriorId.GetValueOrDefault(0) > 0) || (!String.IsNullOrWhiteSpace(item.TituloAnteriorNumero));
                        }
                        else
                        {
                            adicionouTituloAnterior = (!String.IsNullOrWhiteSpace(item.TituloModeloAnteriorTexto)) || (!String.IsNullOrWhiteSpace(item.TituloAnteriorNumero)) || (!String.IsNullOrWhiteSpace(item.OrgaoExpedidor));
                        }

                        validarTituloAnterior = validarTituloAnterior || adicionouTituloAnterior;

                        if (modelo.Regra(eRegra.FaseAnterior) && validarTituloAnterior)
                        {
                            List <TituloModeloResposta> respostas = modelo.Respostas(eRegra.FaseAnterior, eResposta.Modelo);

                            if (respostas == null || respostas.Count < 1)
                            {
                                Validacao.Add(Msg.TituloNaoEhFaseAnterior(item.TituloModeloTexto, local));
                            }

                            if (item.EmitidoPorInterno)
                            {
                                if (item.TituloModeloAnteriorId != null && item.TituloModeloAnteriorId != 0)
                                {
                                    if (respostas.SingleOrDefault(x => x.Valor.ToString() == item.TituloModeloAnteriorId.ToString()) == null)
                                    {
                                        Validacao.Add(Msg.TituloNaoTemTituloAnterior(item.TituloModeloTexto, item.TituloModeloAnteriorTexto, local));
                                    }
                                }

                                if (string.IsNullOrWhiteSpace(item.TituloAnteriorNumero))
                                {
                                    Validacao.Add(Msg.NumeroAnteriorObrigatorio(item.TituloModeloTexto, atividade.NomeAtividade));
                                }
                                else
                                {
                                    if (!(ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(item.TituloAnteriorNumero) ||
                                          ValidacoesGenericasBus.ValidarNumero(item.TituloAnteriorNumero, 12)))
                                    {
                                        Validacao.Add(Msg.TituloAnteriorNumeroInvalido);
                                    }
                                    else
                                    {
                                        if (ValidacoesGenericasBus.ValidarNumero(item.TituloAnteriorNumero, 12) &&
                                            _da.ValidarNumeroSemAnoExistente(item.TituloAnteriorNumero, item.TituloModeloAnteriorId.GetValueOrDefault()))
                                        {
                                            Validacao.Add(Msg.TituloNumeroSemAnoEncontrado);
                                        }
                                    }
                                }

                                CarregarTituloAnteriorSigla(item);
                            }
                            else
                            {
                                ValidarTituloNumeroOrgaoTexto(item, atividade);
                            }
                        }

                        #endregion
                    }
                    #endregion
                }

                #endregion
            }

            return(Validacao.EhValido);
        }