====== Especificação Funcional: Períodos ====== ===== Resumo ===== Essa funcionalidade será responsável por manter o cadastro de períodos de pré-matrícula. ===== Descrição ===== Através desta funcionalidade o usuário será capaz de incluir, excluir e alterar os períodos de pré-matrícula. Estes períodos servem para definir quando determinado tipo de pré-matrícula estará disponível para acesso. === Modelo da Tela === {{:softwares:schoolweb:requisitos:prematricula:periodos:listaperiodos.png|}} A lista de período de pré-matrícula é exibida desta maneira, ordenada pela data de início em ordem crescente, sendo que ela só é exibida caso exista ao menos um período cadastrado. As opções de exclusão e alteração ficam disponíveis em cada item. === Inclusão === {{:softwares:schoolweb:requisitos:prematricula:periodos:inclusaodeperiodo.png|}} Um período pode ser inserido através do botão "Incluir" abaixo do título da funcionalidade. Ao acionar este botão será exibida uma tela para o usuário onde o mesmo deverá digitar todas as informações necessárias e clicar no botão "Salvar" para salvar o período ou "Cancelar" para desistir da inclusão. Ao clicar em "Salvar", o sistema realiza uma série de validações para que seja inserido somente um período válido. As informações contidas no combo de "Ano letivo" são: o ano atual e o ano posterior o atual (ex.: 2020 e 2021). === Alteração === {{:softwares:schoolweb:requisitos:prematricula:periodos:alteracaodeperiodo.png|}} Um período pode ser editado através do botão "Alterar" no final da linha do registro. Ao acionar este botão será exibida uma tela para o usuário onde o mesmo deverá alterar todas as informações necessárias e clicar no botão "Salvar alterações" para salvar as alterações do período ou "Cancelar" para desistir da alteração. Ao clicar em "Salvar alterações", o sistema realiza uma série de validações para que o período seja salvo somente com alterações validas. === Exclusão === {{:softwares:schoolweb:requisitos:prematricula:periodos:excluirperiodo.png|}} Um período pode ser excluído através do botão "Excluir" no final da linha do registro. Ao acionar este botão será exibido um alerta para o usuário onde o mesmo deverá confirmar se tem certeza ou não da exclusão do período. Caso confirme o registro será excluído. === Motivos === Os motivos de pré-matrícula são cadastrados diretamente em cada período, eles podem estar habilitados ou desabilitados também de acordo com o período, ou seja, eu posso ter dois períodos que exigem que o responsável informe um motivo no momento da pré-matrícula e um período que não exija isso. Caso o gestor no momento do cadastro do período informe que o mesmo possui motivos, no momento do cadastro da pré-matrícula por parte do responsável, o sistema irá solicitar que o mesmo informe qual o motivo do responsável estar fazendo a pré-matrícula. A lista que será exibida para o responsável é a lista de motivos cadastrados de acordo com o período. Se o período não exigir que o responsável informe um motivo no momento da pré-matrícula o sistema deverá permitir o cadastro sem um motivo informado. Na lista de pré-matrículas deve ser exibido uma coluna com o motivo de cada pré-matrícula, se a pré-matrícula não possuir motivo a coluna irá vir com o valor vazio. === Impedir que alunos já alocados em períodos anteriores participem do período atual === Caso a opção esteja marcada, o sistema deve verificar todos os períodos anteriores, do mesmo ano letivo, e não permitir a inclusão de uma opção caso encontre o aluno já alocado em um período anterior. Lembrando que muitos municípios fazem a etapa de rematrícula através do School+ (desktop). Então o sistema deve verificar, além dos períodos da web, as rematrículas do desktop para verificar se o aluno já tem alguma opção aceita. Caso a opção esteja desmarcada, o sistema deve permitir que o aluno participe da fase atual, independentemente de ter ou não uma rematrícula/transferência interna/pré-matrícula aceita nas fases anteriores, inclusive no desktop. === Validações === {{:softwares:schoolweb:requisitos:prematricula:periodos:validacaoperiodo.png|}} Ao realizar uma inclusão ou alteração de período, o sistema só permite que a operação seja concluída caso os dados passem por uma série de validações. As validações são essas: * As datas inicial e final não podem estar em branco; * As datas de um período não devem se sobrepor as datas de um período já cadastrado; * O período to tipo "Rematrícula" não deve permitir a edição do limite de opções (deve ser sempre 1); * O sistema não deve permitir que mais de um período do mesmo tipo seja criado;