[[sigaa:graduacao:documentacao_tecnica:aba_administracao| << Voltar]] echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Notificação Acadêmica ====== Esse caso de uso é utilizado pelos administradores para cadastrar notificações para discentes, as notificações aparecerão para os discentes antes dele se logar. ===== Descrição do Caso de Uso ===== Este caso de uso inicia quando o usuário acessa a opção: //SIGAA -> Graduação -> Administração -> Notificações Acadêmicas -> Notificação Acadêmica//. ===Passo 1=== Ao acessar o caso de uso o sistema exibe uma lista com os seguintes dados: * Lista de Notificações * **__Descrição__**: Tipo - TEXTO. * **__Ano-Período__**: Tipo - SELECT ITENS. * **__Exige Confirmação__**: Tipo - TEXTO. O sistema disponibiliza as seguintes opções: * [[desenvolvimento:especificacoes:sigaa:area_administrativa:casos_de_uso:administracao:administracao:notificacao_academica:cadastrar|Cadastrar]]: esta opção permite que o usuário cadastre os dados da notificação. * //[ Box para selecionar a notificação ]//: esta opção permite o usuário marca a notificação. * //Alterar//: esta opção permite que o usuário alterar os dados da notificação. * //Remover//: esta opção permite que o usuário remover a notificação. A baixo da lista também existe o botão de notificar os discentes. * //Notificar//: Esta opção envia o docente para a tela de confirmação da notificação ===Passo 2=== Após clicar em Notificar o sistema exibe as notificações selecionadas * Lista de Notificações Selecionadas * **__Descrição__**: Tipo - TEXTO. (Ao lado da descrição é exibido o total de discentes que serão notificados) * **__Ano-Período__**: Tipo - SELECT ITENS. * **__Exige Confirmação__**: Tipo - TEXTO. * **__Total de Discentes__**: Tipo - INTEIRO. Ao lado da descrição será mostrado a quantidade de alunos que poderão ser notificados. Ao clicar no número de alunos que poderão ser notificados, embaixo da notificação serão exibidos tais discentes. * //Confirmar//: Esta opção envia as notificações para os alunos O caso de uso é finalizado. ===== Principais Regras de Negócio ===== * **RN01**: Caso o usuário remova uma notificação, no qual ele já enviou para os discentes, as mensagens de notificações dos discentes que já foram enviadas não são removidas. * **RN02**: Caso o usuário altera uma notificação, no qual ele já enviou para os discentes, as mensagens de notificações dos discentes que já foram enviadas não são alteradas. ==== Resoluções/Legislações Associadas ==== Não se aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela | | br.ufrn.sigaa.ensino.dominio.NotificacaoAcademica | sigaa.academico.ensino.notificacao_academica | | br.ufrn.sigaa.ensino.dominio.NotificacaoAcademicaDiscente | sigaa.academico.ensino.notificacao_academica_discente | ====== Plano de Teste ====== Sistema: SIGAA Módulo: Graduação Link(s): Graduação -> Administração -> Notificação Acadêmica Usuários: adelardo Papel que usuário deve ter: SigaaPapeis.ADMINISTRADOR_DAE ===== Cenários de Teste ===== Cadastrar uma notificação acadêmica, notificar e verificar se os discentes que foram notificados receberam a notificação corretamente. ===== Dados para o Teste ===== -- Seleciona discentes com prazo de conclusão em 2012.1 select d.id_discente , d.prazo_conclusao from discente d where d.status = 1 and d.prazo_conclusao = 20121 -- Seleciona discentes que não foram aprovados em 2011.1 select d.id_discente from discente d join ensino.movimentacao_aluno m using (id_discente) where d.nivel = 'G' and (d.ano_ingresso < 2011 or (d.ano_ingresso = 2011 and d.periodo_ingresso = 1)) and d.prazo_conclusao <= 20111 and m.ano_referencia = 2011 and m.periodo_referencia = 1 and m.id_tipo_movimentacao_aluno not in (101,1) and d.id_discente not in ( select d.id_discente from discente d inner join ensino.matricula_componente m on m.id_discente = d.id_discente where m.id_situacao_matricula in (4) and m.ano = 2011 and m.periodo = 1 group by d.id_discente ) -- Seleciona discentes que não se matricularam em 2011.1 select d.id_discente from discente d join ensino.movimentacao_aluno m using (id_discente) where d.nivel = 'G' and (d.ano_ingresso < 2011 or (d.ano_ingresso = 2011 and d.periodo_ingresso = 1)) and d.prazo_conclusao <= 20111 and m.ano_referencia = 2011 and m.periodo_referencia = 1 and m.id_tipo_movimentacao_aluno not in (101,1) and d.id_discente not in ( select m.id_discente from ensino.matricula_componente m where m.ano = 2011 and m.periodo = 1 group by m.id_discente ) -- Seleciona discentes que serão jubilados em 2011.1 ( SELECT d.id_discente FROM discente d INNER JOIN graduacao.discente_graduacao dg ON d.id_discente = dg.id_discente_graduacao INNER JOIN comum.pessoa p ON d.id_pessoa = p.id_pessoa JOIN curso c ON d.id_curso = c.id_curso WHERE d.ano_ingresso || '' || d.periodo_ingresso < '20112' AND d.status in ( 1,8 ) AND d.nivel = 'G' AND c.nivel = 'G' AND c.id_convenio is null AND c.id_modalidade_educacao = 2 AND not exists ( select me.id_mobilidade_estudantil from ensino.mobilidade_estudantil me where me.id_discente = d.id_discente and ( (20111 between soma_semestres(ano,periodo,0) and soma_semestres(ano,periodo,numero_periodos-1)) )) AND not exists ( select id_movimentacao_aluno from ensino.movimentacao_aluno ma where ma.id_discente = d.id_discente and ma.id_tipo_movimentacao_aluno = 101 and ( (ma.ano_referencia =2011 and ma.periodo_referencia =1) )) AND not exists ( select mc.id_matricula_componente from ensino.matricula_componente mc where mc.id_discente = d.id_discente and ( (mc.ano=2011 and mc.periodo=1) )) ) UNION ( SELECT d.id_discente FROM discente d INNER JOIN graduacao.discente_graduacao dg ON d.id_discente = dg.id_discente_graduacao INNER JOIN comum.pessoa p ON d.id_pessoa = p.id_pessoa JOIN curso c ON d.id_curso = c.id_curso WHERE d.ano_ingresso || '' || d.periodo_ingresso < '20112' AND d.status in ( 1,8 ) AND d.nivel = 'G' AND c.nivel = 'G' AND c.id_convenio is null AND c.id_modalidade_educacao = 2 AND not exists ( select me.id_mobilidade_estudantil from ensino.mobilidade_estudantil me where me.id_discente = d.id_discente and ( (20111 between soma_semestres(ano,periodo,0) and soma_semestres(ano,periodo,numero_periodos-1)) )) AND not exists ( select id_movimentacao_aluno from ensino.movimentacao_aluno ma where ma.id_discente = d.id_discente and ma.id_tipo_movimentacao_aluno = 101 and ( (ma.ano_referencia =2011 and ma.periodo_referencia =1) )) AND exists ( select mc.id_matricula_componente from ensino.matricula_componente mc join ensino.situacao_matricula sm ON sm.id_situacao_matricula = mc.id_situacao_matricula where mc.id_discente = d.id_discente and mc.id_situacao_matricula NOT IN ( 2,4 ) and not exists ( select id_matricula_componente from ensino.matricula_componente where id_discente = d.id_discente and id_situacao_matricula IN ( 2,4 ) and ( (ano = 2011 and periodo = 1) )) and sm.matricula_valida_no_semestre = trueValue() and ( (mc.ano = 2011 and mc.periodo = 1) )) )