Notificação Relatório de Extensão
Esta caso de uso é responsável por enviar uma notificação aos coordenadores de ações de extensão que serão finalizadas no período de 30 dias, informando a necessidade do envio do relatório final para análise.
Descrição do Caso de Uso
O timer verifica as ações de extensão que estão vigentes e que faltam 1 mês para o prazo de fim de preenchimento dos relatórios finais.
Serão notificados o seguintes envolvidos no estágio:
- Coordenador da Ação de Extensão
O Email deve seguir o seguinte modelo:
Mensagem Gerada pelo ##siglaSistema## - ##nomeSistema##
Caro(a) Coordenador(a) ##nomeCoordenador##
A ação de Extensão: ##codigoTituloAtividade##
será finalizada em menos de 30 dias. Não esqueça de cadastrar os relatórios parciais e/ou finais desta ação.
Principais Regras de Negócio
- RN01 - O processamento será iniciado a cada 30 dias.
Classes Persistentes e Tabelas Envolvidas
Classe | Tabela |
---|---|
br.ufrn.sigaa.pessoa.dominio.Projeto | projetos.projeto |
br.ufrn.sigaa.pessoa.dominio.Pessoa | sigaa.comum.pessoa |
br.ufrn.sigaa.dominio.Usuario | sigaa.comum.usuario |
br.ufrn.sigaa.estagio.dominio.MembroProjeto | projetos.membro_projeto |
br.ufrn.sigaa.estagio.dominio.AtividadeExtensao | extensao.atividade |
br.ufrn.sigaa.estagio.dominio.RelatorioAcaoExtensao | extensao.relatorio_acao_extensao |
Plano de Teste
Sistema: SIGAA
Módulo: -
Link(s): -
Usuário: -
Papel que usuário deve ter: -
Cenários de Teste
Primeira Alternativa
- Realizar novos cadastro de Projetos de Extensão
- Esses projetos devem conter uma data final inferior a 30 dias em relação com a data atual para que o timer seja ativado.
- Verificar se as notificações de envio de relatório final foram enviadas corretamente aos coordenadores dos projetos.
Segunda Alternativa
- Utilizar os dados de projetos de extensão existente no banco.
- Verificar se as notificações de envio de relatório final foram enviadas corretamente aos coordenadores dos projetos.
Dados para o Teste
--Consultar os projetos que estão pendentes de relatório SELECT a.id_atividade, a.sequencia, a.id_tipo_atividade_extensao, projeto.titulo, projeto.ano, usuario.email AS emailCoordenador, pessoa.nome AS nomeCoordenador FROM extensao.atividade a INNER JOIN projetos.projeto projeto ON a.id_atividade = projeto.id_projeto INNER JOIN projetos.membro_projeto coordenador ON coordenador.id_membro_projeto = projeto.id_coordenador INNER JOIN comum.pessoa pessoa ON pessoa.id_pessoa = coordenador.id_pessoa INNER JOIN comum.usuario usuario ON usuario.id_pessoa = pessoa.id_pessoa WHERE projeto.data_fim > now() AND ( ( projeto.data_fim - now() ) <= CAST('30 day' AS INTERVAL) ) AND a.id_atividade NOT IN ( SELECT id_atividade FROM extensao.relatorio_acao_extensao WHERE id_atividade = a.id_atividade AND id_tipo_relatorio = 2 AND ativo ) AND usuario.inativo = falseValue()