public bool RequerimentoAtividade(IEspecificidade especificidade, bool solicitado = true, bool jaAssociado = true, bool faseAnterior = false, bool apenasObrigatoriedade = false, bool atividadeAndamento = true)
        {
            if (especificidade.ProtocoloReq.RequerimentoId <= 0)
            {
                // Msg: O requerimento padrão é obrigatório.
                Validacao.Add(Mensagem.Especificidade.RequerimentoPradroObrigatoria);
            }

            if (especificidade.Atividades == null || especificidade.Atividades.Count == 0 || especificidade.Atividades[0].Id == 0)
            {
                // Msg: A atividade é obrigatória.
                Validacao.Add(Mensagem.Especificidade.AtividadeObrigatoria);
            }

            //Retorna se já encontrou erro de obrigatóriedade
            if (Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.RequerimentoPradroObrigatoria.Texto) || Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.AtividadeObrigatoria.Texto))
            {
                return(false);
            }

            //Verifica se o requerimento ainda está no protocolo
            if (!_da.ValidarRequerimentoAssociado(especificidade.ProtocoloReq.RequerimentoId, especificidade.Titulo.Protocolo.Id, especificidade.ProtocoloReq.Id))
            {
                // Msg: O processo/documento não tem requerimento.
                // Msg: O requerimento {0} não está mais associado ao processo/documento {1}.
                Validacao.Add(Mensagem.Especificidade.RequerimentoNaoAssociadoProcesso(especificidade.ProtocoloReq.RequerimentoId, especificidade.ProtocoloReq.Numero));
                return(false);
            }

            _da.ObterAtividadesNome(especificidade.Atividades);

            if (especificidade.Atividades != null)
            {
                foreach (var item in especificidade.Atividades)
                {
                    if (!item.Ativada)
                    {
                        Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade));
                    }
                }
            }

            if (apenasObrigatoriedade)
            {
                return(Validacao.EhValido);
            }

            if (faseAnterior)
            {
                // Msg: O título anterior deve estar encerrado.
                foreach (var atividadeEsp in especificidade.Atividades)
                {
                    if (!TituloAnteriorEncerrado(especificidade.ProtocoloReq.Id, atividadeEsp.Id))
                    {
                        return(false);
                    }
                }
            }

            bool ehValido = true;

            if (especificidade.Atividades != null)
            {
                object retorno = false;

                foreach (var item in especificidade.Atividades)
                {
                    if (jaAssociado)
                    {
                        //Validação da existencia de um outro título do mesmo modelo e atividade
                        // Msg: A atividade {2} não pode ser selecionada, pois já está associada ao título {0} - {1}.
                        // Msg: A atividade {1} não pode ser selecionada, pois já está associada a outro título \"{0}\".
                        if (!ValidarAtividadeJaAssociada(especificidade.ProtocoloReq.Id, especificidade.ProtocoloReq.IsProcesso, item.Id, especificidade.Titulo.Id, Convert.ToInt32(especificidade.Titulo.Modelo)))
                        {
                            ehValido = false;
                            continue;
                        }
                    }

                    retorno = _da.ValidarAtividade(item.Id, especificidade.ProtocoloReq.Id, 1);                    //Em andamento

                    //Validação da situação da atividade e se o protocolo ainda possui a atividade
                    if (Convert.GetTypeCode(retorno) == TypeCode.Boolean)
                    {
                        if (atividadeAndamento && !Convert.ToBoolean(retorno))
                        {
                            ehValido = false;
                            // Msg: A atividade \"{0}\" deve estar na situação \"em andamento\".
                            Validacao.Add(Mensagem.Especificidade.AtividadeSituacaoInvalida(item.NomeAtividade));
                        }
                    }
                    else
                    {
                        ehValido = false;
                        // Msg: A atividade \"{0}\" não está mais associada ao {2} {1}. Favor salvar as alterações no título.
                        Validacao.Add(Mensagem.Especificidade.AtividadeNaoAssociadaRequerimento(item.NomeAtividade, especificidade.ProtocoloReq.Numero, especificidade.ProtocoloReq.IsProcesso));
                        continue;
                    }

                    if (solicitado)
                    {
                        //Validação da solicitação do modelo/atividade no protocolo
                        // Msg: Este modelo de título não foi solicitado para a atividade \"{0}\".
                        retorno = ValidarModeloNaoRequisitado(especificidade.ProtocoloReq.Id, especificidade.ProtocoloReq.IsProcesso, item.Id, Convert.ToInt32(especificidade.Titulo.Modelo));

                        if (!Convert.ToBoolean(retorno))
                        {
                            ehValido = false;
                        }
                    }
                }
            }

            return(ehValido);
        }
Beispiel #2
0
        public bool DeclaratorioRequerimentoAtividade(IEspecificidade especificidade, bool solicitado = true, bool jaAssociado = true, bool apenasObrigatoriedade = false)
        {
            if (especificidade.RequerimentoId <= 0)
            {
                // Msg: O requerimento padrão é obrigatório.
                Validacao.Add(Mensagem.Especificidade.RequerimentoPradroObrigatoria);
            }

            if (especificidade.Atividades == null || especificidade.Atividades.Count == 0 || especificidade.Atividades[0].Id == 0)
            {
                // Msg: A atividade é obrigatória.
                Validacao.Add(Mensagem.Especificidade.AtividadeObrigatoria);
            }

            //Retorna se já encontrou erro de obrigatóriedade
            if (Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.RequerimentoPradroObrigatoria.Texto) || Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.AtividadeObrigatoria.Texto))
            {
                return(false);
            }

            _da.ObterAtividadesNome(especificidade.Atividades);

            if (!_da.RequerimentoPossuiEmpreendimento(especificidade.RequerimentoId))
            {
                Validacao.Add(Mensagem.Especificidade.RequerimentoEmpreendimentoObrigatorio(especificidade.Atividades.FirstOrDefault().NomeAtividade));
            }
            else
            {
                if (!_da.EmpreendimentoPossuiCaracterizacaoBarragemDis(especificidade.RequerimentoId))
                {
                    Validacao.Add(Mensagem.Especificidade.CaracterizacaoBarragemDisNaoCadastrada);
                }
            }

            if (especificidade.Atividades != null)
            {
                foreach (var item in especificidade.Atividades)
                {
                    if (!item.Ativada)
                    {
                        Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade));
                    }
                }
            }

            if (apenasObrigatoriedade)
            {
                return(Validacao.EhValido);
            }

            bool ehValido = true;

            if (especificidade.Atividades != null)
            {
                object retorno = false;

                foreach (var item in especificidade.Atividades)
                {
                    if (jaAssociado)
                    {
                        //Validação da existencia de um outro título do mesmo modelo e atividade para o mesmo empreendimento
                        if (!DeclaratorioValidarAtividadeJaAssociada(especificidade.RequerimentoId, item.Id, especificidade.Titulo.Id, Convert.ToInt32(especificidade.Titulo.Modelo)))
                        {
                            ehValido = false;
                            continue;
                        }
                    }

                    if (solicitado)
                    {
                        //Validação da solicitação do modelo/atividade no requerimento
                        retorno = DeclaratorioValidarModeloNaoRequisitado(especificidade.RequerimentoId, item.Id, Convert.ToInt32(especificidade.Titulo.Modelo));

                        if (!Convert.ToBoolean(retorno))
                        {
                            ehValido = false;
                        }
                    }
                }
            }

            return(ehValido);
        }