~~ODT~~ echo "
"; echo "Última atualização: "; ver('', false); echo "
";
====== Registrar Atividade Complementar IMD ====== Este caso de uso é utilizado pelo Discente do IMD e permite o envio de atividades complementares para o Módulo Integrador. ===== Descrição do Caso de Uso ===== Este caso de uso inicia quando o usuário acessa a opção: //SIGAA -> Portal do Discente -> Módulo Integrador -> Enviar Atividade Complementar//. Para enviar o registro, o usuário será redirecionado para o formulário onde deverá informar os seguintes campos: * **Categoria:*** Tipo - TEXTO. Refere-se ao Cadastro da [[desenvolvimento:especificacoes:sigaa:metropole_digital:casos_de_uso:modulo_integrador:categoria_atividade:cadastrar|Categoria de Atividade]]. * **Atividade a ser Contabilizada:*** Tipo - TEXTO. Refere-se ao Cadastro da [[desenvolvimento:especificacoes:sigaa:metropole_digital:casos_de_uso:modulo_integrador:atividade_contabilizada:cadastrar|Atividade Contabilizada]]. Ao fornecer os valores e selecionar a opção "Avançar", o sistema direcionará o usuário para o formulário de adição dos itens que irão compor o registro e deverá informar os dados: **__Registrar Atividade Complementar__** * **__Categoria__: *** Tipo - TEXTO. * **__Atividade contabilizada__: *** Tipo - TEXTO. * **__Ano/Período de referência__: *** Tipo - NUMÉRICO. * **__CH por atividade__: *** Tipo - NUMÉRICO * **__CH por semestre__: *** Tipo - NUMÉRICO. * **__CH total__: *** Tipo - DATA. * **__Descrição__: *** Tipo - TEXTO. * **__Documentos necessários__**: Tipo - TEXTO. __**Dados do Novo Item**__ * **Descrição***: Tipo - TEXTO. * **Carga Horária***: Tipo - NUMÉRICO. * **Período de atividade(Data Inicial)***: Tipo - DATA. * **Período de atividade(Data Final)***: Tipo - DATA. * **Comprovante***: Tipo - FILE. * **Li e concordo com os termos acima descritos**: Tipo - LÓGICO ([[#Principais Regras de Negocio|RN01]]). O sistema irá apresentar as seguintes opções: * **Adicionar Atividade: ** efetua o vínculo do item no registro da atividade complementar ([[#Principais Regras de Negocio|RN01]]). * **Voltar: ** retorna o usuário para o formulário anterior. * **Cancelar: ** efetua o cancelamento da operação ([[#Principais Regras de Negocio|RN03]]). * **Enviar para Validação: ** efetua o envio do registro para validação por parte da coordenação ([[#Principais Regras de Negocio|RN02]]). Abaixo do formulário, o sistema apresentará a listagem dos itens vinculados ao registro que está sendo criado, conforme o modelo abaixo: ^ Itens Associados (Qtde) ^^^^ ^ Descrição ^ Data início ^ Data fim ^ CH ^ | Palestra | 01/01/2014 | 01/01/2014 | 30h | | ---- | ---- |---- |---- | Ao clicar no botão Adicionar Atividade, o sistema deverá redirecionar para uma tela auxiliar para que o usuário anexe os comprovantes da atividade complementar. Essa tela possui as seguintes opções: * **Escolher Arquivo: ** Abre uma caixa de diálogo para que o usuário possa selecionar um arquivo para adicionar * **Anexar Arquivo: ** Adiciona como anexo o arquivo selecionado. Mais de um arquivo pode ser anexado a uma atividade * **Confirmar Anexo dos Arquivos: ** Confirma o anexo dos arquivos selecionados ao item de atividade complementar e redireciona para o formulário anterior, onde o usuário tem a possibilidade de finalizar o envio da atividade. O caso de uso é finalizado. ===== Principais Regras de Negócio ===== * **RN 01: ** A opção "Enviar para validação" só deverá ficar habilitada quando o discente indicar que leu e concordou com os termos informados. * **RN 02: ** A opção "Enviar para Validação" só deverá ficar habilitada quando o somatório dos itens do registro for maior ou igual a CH por Atividade a ser contabilizada. * **RN 03: ** Caso o discente não finalize o envio do registro, o sistema deverá armazenar o registro com o status "REGISTRADO" para um posterior envio. * **RN 04: ** Ao finalizar o envio do registro, o sistema deverá enviar um e-mail confirmando o registro para o discente e para o tutor do grupo no qual o discente está vinculado. * **RN 05: ** O discente não poderá registrar uma atividade complementar se houver um registro do mesmo tipo de atividade contabilizada criado e não enviado para validação. * **RN 06: ** O discente poderá anexar apenas arquivos com extensão .PDF. * **RN 07: ** O discente só poderá enviar um registro se estiver associado a um grupo do módulo integrador e fizer parte de uma turma do módulo avançado do IMD. ==== Resoluções/Legislações Associadas ==== Não se aplica. ===== Classes Persistentes e Tabelas Envolvidas ===== ^ Classe ^ Tabela ^ | br.ufrn.sigaa.ensino.metropoledigital.dominio.RegistroContabilizadorAtividadeComplementarIMD | sigaa.metropole_digital.registro_contabilizador_atividade_complementar_imd | | br.ufrn.sigaa.ensino.metropoledigital.dominio.ItemRegistroAtividadeComplementarIMD | sigaa.metropole_digital.item_registro_atividade_complementar_imd | ====== Plano de Teste ====== Sistema: SIGAA Módulo: Portal do Discente Link(s): Menu Módulo Integrador -> Enviar Atividade Complementar Usuários: brunominelli, alanjhone.ti, hudsonbrendon Papel que usuário deve ter: Discente IMD ===== Cenários de Teste ===== - [[desenvolvimento:especificacoes:sigaa:metropole_digital:casos_de_uso:modulo_integrador:projeto_pedagogico:cadastrar|Cadastrar Projeto Político Pedagógico]] - [[desenvolvimento:especificacoes:sigaa:metropole_digital:casos_de_uso:modulo_integrador:categoria_atividade:cadastrar|Cadastrar Categoria de Atividade]] - [[desenvolvimento:especificacoes:sigaa:metropole_digital:casos_de_uso:modulo_integrador:atividade_contabilizada:cadastrar|Cadastrar Atividade Contabilizada]] - [[desenvolvimento:especificacoes:sigaa:portal_do_discente:casos_de_uso:modulo_integrador:enviar_atividade_complementar|Enviar Atividade Complementar]] - [[desenvolvimento:especificacoes:sigaa:metropole_digital:casos_de_uso:modulo_integrador:validacao_de_atividades:validar|Validar Registro de Atividades]] ===== Dados para o Teste ===== -- DISCENTES IMD DO MÓDULO AVANÇADO QUE ESTÃO VINCULADOS A UM GRUPO DO MÓDULO INTEGRADOR SELECT u.login FROM tecnico.discente_tecnico dt INNER JOIN public.discente d ON d.id_discente = dt.id_discente INNER JOIN comum.pessoa pe ON pe.id_pessoa = d.id_pessoa INNER JOIN comum.usuario u ON u.id_pessoa = pe.id_pessoa INNER JOIN tecnico.turma_entrada_tecnico te ON te.id_turma_entrada = dt.id_turma_entrada INNER JOIN metropole_digital.dados_turma_imd dad ON dad.id_dados_turma_imd = te.id_dados_turma_imd INNER JOIN metropole_digital.cronograma_execucao cro ON cro.id_cronograma_execucao = dad.id_cronograma_execucao INNER JOIN tecnico.modulo m ON m.id_modulo = cro.id_modulo INNER JOIN metropole_digital.discente_grupo_mi dg ON d.id_discente = dg.id_discente WHERE d.nivel = 'T' AND d.id_curso = 96054058 AND d.ano_ingresso IN (2014, 2015) AND d.status NOT IN (2, 10, 13, 15) AND m.descricao LIKE '%AVANÇADO%'; -- DISCENTES IMD DO MÓDULO AVANÇADO SELECT u.login FROM tecnico.discente_tecnico dt INNER JOIN public.discente d ON d.id_discente = dt.id_discente INNER JOIN comum.pessoa pe ON pe.id_pessoa = d.id_pessoa INNER JOIN comum.usuario u ON u.id_pessoa = pe.id_pessoa INNER JOIN tecnico.turma_entrada_tecnico te ON te.id_turma_entrada = dt.id_turma_entrada INNER JOIN metropole_digital.dados_turma_imd dad ON dad.id_dados_turma_imd = te.id_dados_turma_imd INNER JOIN metropole_digital.cronograma_execucao cro ON cro.id_cronograma_execucao = dad.id_cronograma_execucao INNER JOIN tecnico.modulo m ON m.id_modulo = cro.id_modulo WHERE d.nivel = 'T' AND d.id_curso = 96054058 AND d.ano_ingresso IN (2014, 2015) AND d.status NOT IN (2, 10, 13, 15) AND m.descricao LIKE '%AVANÇADO%'; -- DISCENTES IMD QUE NÃO SÃO DO MÓDULO AVANÇADO SELECT u.login FROM tecnico.discente_tecnico dt INNER JOIN public.discente d ON d.id_discente = dt.id_discente INNER JOIN comum.pessoa pe ON pe.id_pessoa = d.id_pessoa INNER JOIN comum.usuario u ON u.id_pessoa = pe.id_pessoa INNER JOIN tecnico.turma_entrada_tecnico te ON te.id_turma_entrada = dt.id_turma_entrada INNER JOIN metropole_digital.dados_turma_imd dad ON dad.id_dados_turma_imd = te.id_dados_turma_imd INNER JOIN metropole_digital.cronograma_execucao cro ON cro.id_cronograma_execucao = dad.id_cronograma_execucao INNER JOIN tecnico.modulo m ON m.id_modulo = cro.id_modulo WHERE d.nivel = 'T' AND d.id_curso = 96054058 AND d.ano_ingresso IN (2014, 2015) AND d.status NOT IN (2, 10, 13, 15) AND m.descricao NOT LIKE '%AVANÇADO%'; -- DISCENTES IMD DO MÓDULO AVANÇADO QUE NÃO ESTÃO VINCULADOS A UM GRUPO DO MÓDULO INTEGRADOR SELECT u.login FROM tecnico.discente_tecnico dt INNER JOIN public.discente d ON d.id_discente = dt.id_discente INNER JOIN comum.pessoa pe ON pe.id_pessoa = d.id_pessoa INNER JOIN comum.usuario u ON u.id_pessoa = pe.id_pessoa INNER JOIN tecnico.turma_entrada_tecnico te ON te.id_turma_entrada = dt.id_turma_entrada INNER JOIN metropole_digital.dados_turma_imd dad ON dad.id_dados_turma_imd = te.id_dados_turma_imd INNER JOIN metropole_digital.cronograma_execucao cro ON cro.id_cronograma_execucao = dad.id_cronograma_execucao INNER JOIN tecnico.modulo m ON m.id_modulo = cro.id_modulo LEFT JOIN metropole_digital.discente_grupo_mi dg ON d.id_discente = dg.id_discente WHERE d.nivel = 'T' AND d.id_curso = 96054058 AND d.ano_ingresso IN (2014, 2015) AND d.status NOT IN (2, 10, 13, 15) AND m.descricao LIKE '%AVANÇADO%' AND dg.id_discente_grupo_mi IS NULL; -- DISCENTES IMD QUE NÃO SÃO DO MÓDULO AVANÇADO E QUE NÃO ESTÃO VINCULADOS A UM GRUPO DO MÓDULO INTEGRADOR SELECT u.login FROM tecnico.discente_tecnico dt INNER JOIN public.discente d ON d.id_discente = dt.id_discente INNER JOIN comum.pessoa pe ON pe.id_pessoa = d.id_pessoa INNER JOIN comum.usuario u ON u.id_pessoa = pe.id_pessoa INNER JOIN tecnico.turma_entrada_tecnico te ON te.id_turma_entrada = dt.id_turma_entrada INNER JOIN metropole_digital.dados_turma_imd dad ON dad.id_dados_turma_imd = te.id_dados_turma_imd INNER JOIN metropole_digital.cronograma_execucao cro ON cro.id_cronograma_execucao = dad.id_cronograma_execucao INNER JOIN tecnico.modulo m ON m.id_modulo = cro.id_modulo LEFT JOIN metropole_digital.discente_grupo_mi dg ON d.id_discente = dg.id_discente WHERE d.nivel = 'T' AND d.id_curso = 96054058 AND d.ano_ingresso IN (2014, 2015) AND d.status NOT IN (2, 10, 13, 15) AND m.descricao NOT LIKE '%AVANÇADO%' AND dg.id_discente_grupo_mi IS NULL; -- DISCENTES IMD QUE NÃO SÃO DO MÓDULO AVANÇADO E QUE ESTÃO VINCULADOS A UM GRUPO DO MÓDULO INTEGRADOR SELECT u.login FROM tecnico.discente_tecnico dt INNER JOIN public.discente d ON d.id_discente = dt.id_discente INNER JOIN comum.pessoa pe ON pe.id_pessoa = d.id_pessoa INNER JOIN comum.usuario u ON u.id_pessoa = pe.id_pessoa INNER JOIN tecnico.turma_entrada_tecnico te ON te.id_turma_entrada = dt.id_turma_entrada INNER JOIN metropole_digital.dados_turma_imd dad ON dad.id_dados_turma_imd = te.id_dados_turma_imd INNER JOIN metropole_digital.cronograma_execucao cro ON cro.id_cronograma_execucao = dad.id_cronograma_execucao INNER JOIN tecnico.modulo m ON m.id_modulo = cro.id_modulo INNER JOIN metropole_digital.discente_grupo_mi dg ON d.id_discente = dg.id_discente WHERE d.nivel = 'T' AND d.id_curso = 96054058 AND d.ano_ingresso IN (2014, 2015) AND d.status NOT IN (2, 10, 13, 15) AND m.descricao NOT LIKE '%AVANÇADO%';