====== Especificação Funcional: Cadastro de Cursos ======
===== Resumo =====
Esta especificação descreve os requisitos utilizados como base para o desenvolvimento do módulo de Cadastro de Cursos do software Tecsystem School e suas principais operações.
===== Descrição =====
O Cadastro de Cursos reúne todas as informações dos cursos (dados gerais, modalidade e etapa de ensino, resultados, conceitos, áreas de conhecimento, séries, modelos de históricos, regras de arredondamento e outras informações) e constitui um módulo centralizado para a realização de todas as operações relativas aos mesmos. Através deste módulo é possível incluir novos cursos, excluir um curso cadastrado, editar e visualizar os dados dos cursos cadastrados, entre outras.
Ao acessar este módulo, o sistema deve exibir uma lista com os cursos já cadastrados para facilitar as operações de exclusão, edição e visualização dos dados, já que para isso é necessário indicar qual é o curso que será utilizado. Esta lista, que deve exibir os dados mais importantes de cada curso, também deve permitir a organização e o filtro dos dados por qualquer campo que esteja visível, além de permitir que o usuário oculte/exiba campos, imprima e exporte o conteúdo da lista.
==== Dados do Curso ====
Um curso deve possuir os seguintes campos:
|< 100% 29% 45% 7% 7% 7%>|
^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^
|**Dados gerais** |||||
|Nome |Nome do curso | Texto | 60 | Sim |
|Calendário escolar |Calendário escolar do curso | Texto | - | Sim |
|Ativo |Utilizado para identificar se o curso está ativo | Marcar/Desmarcar | - | Não |
|Gerar históricos automaticamente |Utilizado para identificar se o curso gera históricos automaticamente | Marcar/Desmarcar | - | Não |
|**Etapa** |||||
|Etapa |Etapa do ensino do curso | Texto | - | Sim |
|Área profissional |Nome da área profissional do curso | Texto | 60 | Não |
|Curso profissional |Nome do curso profissional | Texto | 200 | Não |
|**Conceitos** |||||
|Conceito |Sigla ou nome do conceito do curso | Texto | 08 | Não |
|Descrição |Descrição do conceito do curso | Texto | 20 | Não |
|**Resultados** |||||
|Tipo do resultado |Resultado pré-definido utilizado pelo sistema | Texto | - | Sim |
|Resultado final |Descrição do resultado utilizado pelo usuário | Texto | 20 | Sim |
|**Áreas de conhecimento** |||||
|Área de conhecimento |Nome da área de conhecimento | Texto | 30 | Não |
|Divisão da área de conhecimento |Nome da divisão da área de conhecimento | Texto | 80 | Não |
|**Séries** |||||
|N° de Séries |Quantidade de séries do curso | Número | - | Sim |
|Ordem |Ordem da série do curso | Texto | - | Sim |
|Nome |Nome da série do curso | Texto | - | Sim |
|Tipo de carga horária |Tipo da carga horária da série do curso | Texto | - | Sim |
|Carga horária |Total da carga horária da série do curso | Número | - | Sim |
|**Modelos de documentos** |||||
|Modelo de histórico |Tipo de modelo que será utilizado na impressão dos históricos | Texto | - | Não |
|Modelo de ata de resultado final |Tipo de modelo que será utilizado na impressão das atas de resultados finais | Texto | - | Não |
|Modelo de ficha de matrícula |Tipo de modelo que será utilizado na impressão das fichas de matrícula de alunos | Texto | - | Não |
|Modelo de ficha individual |Tipo de modelo que será utilizado na impressão das fichas individuais de alunos | Texto | - | Não |
|Modelo de boletim |Tipo de modelo que será utilizado na impressão dos boletins | Texto | - | Não |
|Modelo de carteira estudantil |Tipo de modelo que será utilizado na impressão das carteiras estudantis | Texto | - | Não |
|**Regras de Arredondamento** |||||
|Aplicar as regras de arredondamento|Utilizado para identificar se são aplicadas ou não as regras de arredondamento nas notas| Texto | - | Sim |
|Arredondar a última casa decimal de 0 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 0 | Número | - | Sim |
|Arredondar a última casa decimal de 1 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 1 | Número | - | Sim |
|Arredondar a última casa decimal de 2 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 2 | Número | - | Sim |
|Arredondar a última casa decimal de 3 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 3 | Número | - | Sim |
|Arredondar a última casa decimal de 4 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 4 | Número | - | Sim |
|Arredondar a última casa decimal de 5 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 5 | Número | - | Sim |
|Arredondar a última casa decimal de 6 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 6 | Número | - | Sim |
|Arredondar a última casa decimal de 7 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 7 | Número | - | Sim |
|Arredondar a última casa decimal de 8 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 8 | Número | - | Sim |
|Arredondar a última casa decimal de 9 para |Utilizado para identificar qual valor será arredondada a nota quando a última casa decimal for 9 | Número | - | Sim |
|**Informações adicionais** |||||
|Observações |Observações do curso | Texto | 1000 | Não |
==== Inclusão, alteração e exclusão de cursos ====
Todo ensino pode ser cadastrado como um curso no sistema, desde que possua o conjunto mínimo de dados (campos obrigatórios) necessários. O sistema também deve permitir que os dados de um curso previamente cadastrado sejam modificados.
A exclusão de um curso também deverá ser permitida, desde que este não possua nenhum aluno matriculado ou turma cadastrada. Caso possua, o sistema deverá avisar ao usuário que o curso está vinculado a um aluno ou à uma turma e não deve permitir sua exclusão.
==== Dados dos Resultados do Curso ====
Um resultado do curso deve possuir os seguintes campos:
|< 100% 29% 45% 7% 7% 7%>|
^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^
|Tipo do resultado |Resultado pré-definido utilizado pelo sistema | Texto | 20 | Sim |
|Resultado final |Descrição do resultado utilizado pelo usuário | Texto | 20 | Sim |
==== Inclusão, alteração e exclusão de resultados do curso ====
Todos os resultados de um curso são previamente cadastrados ao instalar o sistema. O sistema deve permitir que os dados de um resultado do curso sejam modificados, exceto os dados do campo "Tipo do resultado", uma vez que são utilizados pelo sistema.
A exclusão de um resultado do curso não deve ser permitida.
===== Configurações e preferências do usuário =====
==== Comportamento das janelas ====
**Fechar janelas ao incluir**: Esta opção de configuração não é específica do Cadastro de Cursos mas, quando estiver ativa, o sistema deve fechar a tela de Cadastro do Curso assim que concluir a inclusão do mesmo; quando a opção estiver desativa, o sistema deve manter aberta a tela de Cadastro do Curso até que o usuário decida encerrar a inclusão de cursos. Por padrão esta opção deve estar ativa;
===== Pontos de verificação =====
==== Na inclusão/alteração de cursos:====
* Após a inclusão de um curso este deverá ser exibido imediatamente na lista de cursos cadastrados;
* Após a alteração de um curso este deverá ser exibido imediatamente nos dados do curso na lista de cursos cadastrados;
* O sistema não deve permitir que o usuário salve um curso sem que todos os campos obrigatórios estejam preenchidos;
=== Dados gerais ===
* O sistema não deve permitir que o usuário salve um curso com nome que já está sendo usado por outro curso;
* O sistema não deve permitir que o usuário desmarque o campo "Ativo", caso o mesmo esteja vinculado e ativo em alguma escola cadastrada no sistema, para isso o sistema deve exibir uma mensagem ao usuário;
* Ao marcar o campo "Gerar históricos automaticamente", o sistema deve:
* Gerar os históricos para todos os alunos do curso no momento da matrícula;
* Gerar os históricos (caso ainda não existam) e suas respectivas séries no momento da finalização do ano letivo (caso esteja marcada a opção de rematrícula automática);
* Excluir para os alunos matriculados no curso, os históricos (caso exista apenas a série da matrícula) ou apenas as séries dos históricos (caso existam outras séries no histórico), no momento do cancelamento da matrícula;
* Ao desmarcar o campo "Gerar históricos automaticamente", o sistema não deve realizar nenhuma operação nos históricos dos alunos matriculados no curso;
* O sistema exibe o campo "Gerar históricos automaticamente" habilitado/desabilitado, de acordo com as etapas/modalidades selecionadas para o curso:
* Para a etapa de "Educação infantil": o campo deve estar habilitado, permitindo então que o usuário marque ou desmarque a opção;
* Para as modalidades "AEE" e "Atividade complementar": o campo deve estar desabilitado e desmarcado, para garantir que na finalização não seja gerado nenhum histórico para esses cursos;
* Para os demais cursos, o campo será sempre exibido desabilitado e marcado.
=== Calendário escolar ===
* O campo "Calendário escolar" e o botão "Localizar um calendário escolar" devem ser exibidos desabilitados, quando algum aluno matriculado no curso possua resultado final calculado (Aprovado ou Reprovado) ou já tenha sido finalizado no período letivo.
* No caso do botão "Localizar um calendário escolar" ser exibido habilitado, o sistema permitirá a alteração deste dependendo dos dados do novo calendário selecionado:
* O sistema permitirá a alteração quando o novo calendário possuir os mesmos campos "Ano letivo" e "Período do ano" do calendário atual, nesse caso será exibida uma mensagem ao usuário informando que existem históricos e/ou atas de resultados finais vinculados ao calendário já existente no curso e se deseja continuar a alteração:
* Caso o usuário queira realizar a alteração, o sistema atualizará o novo calendário em todas as séries dos históricos vinculadas ao curso, bem como atualizará os próprios históricos e atas com os dados de vínculo curso e calendário;
* Quando o novo calendário não possuir os campos iguais (citados acima), o sistema realizará outra verificação:
* O sistema permitirá a alteração quando nenhuma série do histórico, vinculada ao calendário existente do curso, possuir o resultado final Cursando; isso é uma indicativa que o calendário existente no curso já foi finalizado, podendo o curso receber outro calendário escolar;
* Caso existam séries do histórico, vinculadas ao calendário existente no curso, com resultado final Cursando, o sistema não permitirá a alteração para o novo calendário, informando ao usuário que não é possível alterar para um calendário distinto sem o atual ter sido concluído.
=== Etapa ===
* O campo Etapa deve ser exibido habilitado, porém sem edição; a etapa deve ser selecionada através da tela "Localizar etapa", acessada pelo botão "Localizar uma etapa";
* Os campos "Área profissional" e "Curso profissional" devem ser exibidos desabilitados, quando o ensino da etapa do curso for diferente de "Educação profissional";
* Os campos da guia Etapa devem ser exibidos desabilitados, quando o curso possuir alguma série cadastrada.
=== Séries ===
* A quantidade de séries cadastradas não deve ser superior à quantidade informada para o curso.
==== Na exclusão de cursos:====
* O sistema deve solicitar que o usuário confirme a exclusão de um curso;
* O sistema não deve permitir que um curso seja excluído caso ele possua alunos matriculados ou históricos vinculados;
* Após a exclusão de um curso este deverá ser eliminado imediatamente na lista de cursos cadastrados.
===== Observações =====
Nenhuma informação adicional.
~~DISCUSSION|Sugira mudanças, aponte falhas ou contribua de alguma forma aqui:~~