====== Especificação funcional: Dados do Período Letivo ====== ===== Resumo ===== Os dados do período letivo definem informações importantes sobre os períodos letivos de um diário. ===== Descrição ===== Um diário de classe é basicamente o registro das atividades de uma turma em um ano letivo específico. Esse ano letivo é dividido em períodos letivos menores (bimestres, trimestres, etc). Esses períodos letivos são definidos e organizados pela escola/município e, posteriormente, documentados através do calendário escolar do ano letivo. Para que o diário eletrônico funcione corretamente, é necessário que algumas informações sobre os períodos letivos sejam fornecidas pelo usuário. Um arquivo de diários já possui as informações básicas de um ano letivo e todos os períodos letivos que o compõem. Entretanto, as seguintes informações precisam ser informadas pelo usuário: * Data de início do período letivo: A data do primeiro dia letivo do período letivo. Essa data não pode ser menor do que a data de início do ano letivo e também não pode ser menor ou igual à data de término do período letivo anterior; * Data de término do período letivo: A data do último dia do período letivo. Essa data não pode ser maior ou igual à data de início do período letivo seguinte, nem maiores do que o último dia do ano seguinte ao ano letivo atual; * Dias previstos/Aulas previstas: Quantidade de aulas previstas no período letivo. * Dias cumpridos/Aulas dadas: Quantidade de aulas dadas. Esse número deve ser calculado automaticamente à medida em que o usuário inclui/exclui aulas no período letivo. As datas de início e término de um período letivo são necessárias para realizar a validação das datas dos eventos realizados durante esse período letivo (aulas, avaliações, etc). Para que esses dados sejam registrados corretamente, o sistema deve impedir o lançamento de dados até que o usuário informe essas datas. O sistema também deve verificar os dados já cadastrados no período letivo todas as vezes em que o usuário modificar as datas de início e término do período letivo. Ao abrir um diário pela primeira vez, o sistema deve tentar identificar as datas de início e término dos períodos letivos, utilizando para isso o calendário escolar, se este estiver configurado e seus eventos presentes no arquivo de diários. Uma vez identificadas, as datas serão exibidas e persistidas normalmente, como se houvessem sido informadas pelo usuário. A partir do momento em que essas datas são preenchidas, seja manual ou automaticamente, o sistema não deve atualiza-las, ou seja, mesmo que os eventos de início e término do período letivo sejam modificados no calendário escolar as datas devem permanecer as mesmas. O sistema também deve prevenir a inconsistência dessas datas caso os eventos de início e término do período letivo não tenham sido configurados corretamente no calendário escolar. Em caso de conflito de datas, o sistema deve deixar essas informações em branco para não gerar um estado de inconsistência que o usuário não poderá solucionar sem a ajuda do Suporte Técnico. Sempre que um diário for aberto o sistema deve exibir o primeiro período letivo do diário. Não é permitido alterar os dados do período letivo (data de início, término e aulas previstas) quando o usuário selecionar um período já importado pelo school. Para que o usuário identifique os períodos já importados, o sistema deve exibir, na frente do nome do período letivo, o texto "somente leitura" entre parênteses. **Observação:** As recuperações finais também são consideradas como períodos letivos, e em alguns casos essas recuperações podem ser aplicadas após o término do ano letivo. Por isso, o sistema não impede que a data de início ou de término de um período letivo seja maior ou igual à data de término do ano letivo. ===== Pontos de verificação ===== * O sistema deve identificar o período letivo corrente ao abrir (se as datas de início e término do período letivo estiverem preenchidas); * A quantidade de aulas previstas deve ser um número inteiro válido maior ou igual a zero; * As datas de início e término do período letivo devem ser datas válidas; * A data de término de um período letivo não pode ser menor do que sua data inicial; * A data de início do primeiro período letivo não pode ser menor do que a data de início do ano letivo; * A data de início de um período letivo deve ser maior do que a data de término do período letivo anterior; * A data de término de um período letivo deve ser menor do que a data de início do período letivo posterior; * O sistema deve impedir que o usuário lance os dados de um período letivo antes de informar as datas de início e término do período letivo; * O sistema deve impedir que o usuário mude as datas do período letivo caso alguma informação (aula, avaliação, ect) seja conflitante com as novas datas definidas; * O sistema deve impedir a alteração da data de início, data de término e aulas previstas quando o período já estiver sido importado; * O sistema deve exibir o texto "(somente leitura)" junto com o nome do período letivo quando o período já estiver sido importado; * O sistema deve verificar os dados biométricos dos alunos sempre que as datas do período letivo forem modificadas; * O sistema deve incrementar a quantidade de aulas dadas sempre que uma aula for incluída no período letivo; * O sistema deve decrementar a quantidade de aulas dadas sempre que uma aula for excluída do período letivo. ===== Observações =====