====== Especificação Funcional: Finalização do período letivo por curso ====== ===== Resumo ===== Esta funcionalidade permite ao usuário finalizar todos os dados do período letivo, para cada curso cadastrado no sistema e que possua alunos matriculados. ===== Descrição ===== A finalização de um período letivo por curso faz com que todos os alunos e turmas sejam finalizados, sendo dessa forma, gerados automaticamente pelo sistema todos os históricos e atas de resultados finais do curso. ==== Finalização do período letivo ==== Ao acessar o módulo de Ferramentas / Finalizar período letivo..., o sistema deve exibir a tela de finalização do período letivo do curso selecionado. Ao acessar o módulo de Cursos, o sistema deve exibir uma lista com os cursos cadastrados. Para finalizar o período letivo de um curso, basta selecionar o curso na lista e acessar a funcionalidade “Finalizar período letivo” na opção Ferramentas, no clique do botão direito do mouse na linha do curso na listagem ou utilizar as teclas de atalho Ctrl+Z, na visão Padrão; o sistema deverá então exibir a tela de finalização do período letivo do curso. Ao clicar no botão Avançar, o sistema deve exibir outra tela ao usuário, a qual permitirá acompanhar todo o processo de finalização, onde cada ação descrita no processo deve ser cumprida e seguir a ordem em que são apresentadas na lista. À medida que o sistema executa cada ação, é exibida uma imagem na cor verde (como um confere) para identificar ao usuário que foi realizada com sucesso, caso alguma das ações apresente algum erro e não consiga ser executada, o sistema exibirá uma outra imagem na cor vermelha (como um X) para identificar ao usuário que a ação não foi realizada, e neste caso, o processo de finalização é interrompido e deve ser cancelado pelo usuário. Após o processo de finalização, caso ele seja todo concluído com sucesso, o sistema irá finalizar o período letivo de todos os alunos matriculados para o curso informado. ==== Dados da Finalização do período letivo ==== Na finalização do período letivo deve existir os seguintes campos: |< 100% 29% 50% 7% 7% 7%>| ^ Campo ^ Descrição ^ Tipo ^ Tamanho ^ Obrigatório? ^ |Curso |Nome do curso que deseja finalizar | Texto | - | Sim | |Excluir históricos existentes do curso |Indica se serão excluídos os históricos existentes do curso na finalização do ano letivo ou não | - | - | Não | |Calendário escolar (atual) |Calendário escolar atual do curso que será finalizado | Texto | - | Sim | |Calendário escolar (próximo) |Próximo calendário escolar do curso que será finalizado | Texto | - | Sim | |**__Opções de rematrícula para alunos com pré-matrícula/rematrícula__** ||||| |Matricular/rematricular alunos automaticamente ao finalizar o ano letivo |Indica se os alunos serão rematriculados automaticamente ou não | - | - | Não | |Matricular alunos cadastrados automaticamente ao finalizar o ano letivo |Indica se os alunos cadastrados serão matriculados automaticamente ou não | - | - | Não | |Utilizar a data da pré-matrícula como data da matrícula |Indica se será utilizada a data da pré-matrícula como data da matrícula ou não | - | - | Não | |Data da matrícula |Data da rematrícula dos alunos para o próximo ano letivo (Caso a opção de Utilizar a data da pré-matrícula não for marcada) | - | - | Não | ==== Dados dos alunos nas atas de resultados finais finalizadas ==== Ao finalizar o período letivo e gerar as atas de resultados finais das turmas do curso, o sistema deve salvar os seguintes dados dos alunos no banco de dados, na tabela de alunos nas atas (TabAlunoAta): |< 100% 25% 75%>| ^ Campo ^ Origem ^ |CODIGOINSTALACAOELETRICA | Campo CODIGOINSTALACAOELETRICA da tabela TabAluno. | |BAIRRO | Campo BAIRRO da tabela TabAluno. | |ZONARESIDENCIA | Campo ZONARESIDENCIA da tabela TabAluno. | |UTILIZATRANSPORTE | Campo UTILIZATRANSPORTE da tabela TabAluno. | |TRANSPORTEPUBLICO | Campo TRANSPORTEPUBLICO da tabela TabAluno. | |TRANSPORTEMUNICIPAL | Campo TRANSPORTEMUNICIPAL da tabela TabAluno. | |LOCALIDADETRANSPORTE | Campo LOCALIDADETRANSPORTE da tabela TabAluno. | |NOMETRANSPORTADOR | Campo NOMETRANSPORTADOR da tabela TabAluno. | |ROTA | Campo ROTA da tabela TabAluno. | |BOLSAFAMILIA | Campo BOLSAFAMILIA da tabela TabAluno. | |POSSUIDEFICIENCIA | Campo POSSUIDEFICIENCIA da tabela TabAluno. | |ENVIADOCENSO | Valor recuperado de acordo com os dados dos alunos nas turmas, tabela TabAlunosTurmas, em relação à data de referência do censo. | |ENVIADOCENSOFINAL | Valor recuperado de acordo com o campo EnviadoCenso e o campo PeriodoLetivo da tabela TabCalendarios (Anos letivos de 2º semestre não são enviados ao censo final) | ===== Configurações e preferências do usuário ===== Não se aplica. ===== Pontos de verificação ===== ==== Na tela inicial ==== * Todos os campos obrigatórios devem ser preenchidos; * O sistema deve exibir o campo Curso preenchido com o nome do curso selecionado para realizar a finalização; o campo deve estar sempre desabilitado; * De acordo com o curso, o sistema deve: * Exibir habilitada a opção "Excluir históricos existentes do curso", apenas se o curso possuir o campo "Gerar históricos automaticamente" desmarcado; * Exibir o título do calendário atual do curso, no campo "Atual" da guia "Calendários escolares"; este campo deve estar sempre desabilitado; * O sistema deve exibir habilitado o botão "Localizar um calendário", para que através dele, seja exibida a tela "Localizar calendário", contendo a lista de todos os calendários escolares cadastrados no sistema; * Ao marcar a opção "Rematricular alunos automaticamente ao finalizar o ano letivo", o campo "Data da rematrícula" deve tornar-ser habilitado e obrigatório; * A data da rematrícula não pode ser menor que a data de início ou ser maior que a data de término do próximo ano letivo; * Quando a opção "Rematricular alunos automaticamente ao finalizar o ano letivo" estiver marcada: * O sistema deverá rematricular todos os alunos matriculados no curso; * O sistema deve habilitar as opções "Matricular alunos cadastrados automaticamente ao finalizar o ano letivo", "Utilizar a data da pré-matrícula como data da matrícula" e "Data da rematrícula"; * Quando a opção "Rematricular alunos automaticamente ao finalizar o ano letivo" estiver desmarcada: * O sistema deve desabilitar as opções "Matricular alunos cadastrados automaticamente ao finalizar o ano letivo", "Utilizar a data da pré-matrícula como data da matrícula" e "Data da rematrícula"; * Quando a opção "Matricular alunos cadastrados automaticamente ao finalizar o ano letivo" estiver marcada: * O sistema deve matricular todos os alunos cadastrados, que possuam pré-matrícula cadastrada no curso que está sendo finalizado; * Quando a opção "Utilizar a data da pré-matrícula como data da matrícula" estiver marcada: * O sistema deve utilizar a data da pré-matrícula de cada aluno, como a data da matrícula para o próximo ano letivo; * O sistema deve desabilitar o campo "Data da rematrícula"; * Quando a opção "Utilizar a data da pré-matrícula como data da matrícula" estiver desmarcada: * O sistema deve habilitar o campo "Data da rematrícula" e obrigar seu preenchimento; * O sistema deve utilizar o valor do campo "Data da rematrícula", como a data da matrícula para todos os alunos que serão rematriculados para o próximo ano letivo; * O botão "Avançar" deve manter-se desabilitado até que todos os campos obrigatórios estejam preenchidos; Ao clicá-lo, o sistema deve exibir a tela seguinte, a qual conclui o processo de finalização do ano letivo; ==== Na tela final ==== * A tela deve ser exibida contendo uma lista de ações que serão executadas durante o processo de finalização do período letivo, todas com as imagens em branco; * O botão "Concluir" deve ser exibido habilitado, para que o usuário possa dar início ao processo; * Após clicado no botão, o sistema deverá verificar se existe algum aluno matriculado e sem pré-matrícula cadastrada, e dessa forma então, avisar ao usuário que os alunos sem pré-matrícula não serão rematriculados e perguntar se deseja continuar a finalização. Caso o usuário clique em Sim, o sistema continuará o processo e de fato manterá esses alunos sem matrícula realizada (estará excluindo a matrícula dos alunos), mas com a pré-matrícula ainda cadastrada; caso clique em Não, o sistema deve cancelar a operação e desabilitar o botão "Concluir"; * Caso a ação seja executada com sucesso, sua imagem deve ser alterada para verde; Caso alguma ação não consiga ser executada, sua imagem deve ser alterada para um X na cor vermelha e o sistema deve interromper o processo, alertando ao usuário que cancele a operação; * Após concluir todas as ações com sucesso, o sistema deve exibir uma mensagem ao usuário que o ano letivo foi finalizado; * Segue abaixo cada ação que o sistema deverá executar durante a finalização do período letivo (deve existir pelo menos 1 aluno matriculado): === Verifica se o curso está liberado === * O sistema deve verificar se todos os alunos matriculados no curso estão com resultado final gerado, ou seja, diferente de Cursando; * Caso exista um ou mais alunos matriculados no curso, com resultado final igual a Cursando, o sistema deve cancelar a finalização do ano letivo, marcando a ação com a imagem (X - vermelho) e informar que o curso possui alunos pendentes; * Caso todos os alunos matriculados no curso possuam resultado gerado, o sistema deve então verificar se todos os alunos matriculados no curso possuem histórico. Essa verificação só deve ocorrer caso o curso gere históricos; * Caso um ou mais alunos não possuam histórico do curso, o sistema deve cancelar a finalização do ano letivo, marcando a ação com a imagem (X - vermelho) e informar que o curso possui alunos sem históricos cadastrados; * Caso o curso não gere históricos ou gere históricos e todos os alunos possuam históricos, o sistema deve liberar a ação marcando-a com a imagem (Confere - Verde); === Gera o backup dos dados === * O sistema deve gerar uma cópia do arquivo do banco de dados e armazená-lo no mesmo caminho do banco de dados, que é salvo no campo CaminhoBanco nas configurações do sistema; * O arquivo deve ser nomeado da seguinte forma: "School Backup" + data + "_" + hora; === Inclui o período letivo 'xxxx' na tabela de anos letivos === * O sistema deve verificar se o próximo ano letivo já foi incluído realmente no banco; * Caso o próximo período letivo não tenha sido incluído ainda, o sistema deve cancelar a finalização do período letivo, marcando a ação com a imagem (X - vermelho) e informar que não foi possível incluir o período letivo (selecionado pelo usuário, como próximo período letivo); * Caso o próximo período letivo tenha sido incluído, o sistema deve liberar a ação marcando-a com a imagem (Confere - Verde); === Atualiza a série cursada nos históricos dos alunos matriculados === * Para os cursos que geram históricos: * O sistema deve finalizar a série cursada nos históricos de todos os alunos matriculados no curso. Todos os dados da série no histórico devem ser atualizados, incluindo as disciplinas e o resultado dos alunos em cada uma (notas, aulas dadas, faltas...); * Os alunos que tiverem sido: Evadido, Desistente, Transferido ou Falecido no final do ano letivo, não possuirão suas séries nos históricos atualizadas e sim excluídas; * Esse processo deve ser todo realizado diretamente no banco de dados, através do procedimento: ProcGerarHistoricos; e caso algum erro ou exceção ocorra durante a execução desse processo, o sistema deve cancelar a finalização do ano letivo, marcando a ação com a imagem (X - vermelho) e informar que não possível atualizar os históricos dos alunos matriculados; * Caso todos os históricos tenham sido atualizados, o sistema deve liberar a ação marcando-a com a imagem (Confere - Verde); * Para os cursos que não geram históricos: * Se a opção "Excluir históricos existentes do curso" estiver marcada, o sistema deve excluir todos os históricos existentes para o curso; * Se a opção "Excluir históricos existentes do curso" estiver desmarcada, o sistema deve excluir as séries cursadas de todos os históricos existentes para o curso; * Caso algum erro ou exceção ocorra durante a execução desse processo, o sistema deve cancelar a finalização do ano letivo, marcando a ação com a imagem (X - vermelho) e informar respectivamente que: não foi possível excluir os históricos existentes do curso ou excluir as séries cursadas nos históricos; * Caso todos os históricos ou séries sejam excluídas, o sistema deve liberar a ação marcando-a com a imagem (Confere - Verde); === Gera as atas de resultados finais das turmas === * O sistema deve gerar e finalizar todas as atas de resultados finais para todas as turmas do curso; * Esse processo deve ser todo realizado diretamente no banco de dados, através do procedimento: ProcGerarAtas; e caso algum erro ou exceção ocorra durante a execução desse processo, o sistema deve cancelar a finalização do ano letivo, marcando a ação com a imagem (X - vermelho) e informar que não possível gerar as atas de resultados finais das turmas; * Caso todas as atas sejam geradas, o sistema deve liberar a ação marcando-a com a imagem (Confere - Verde); === Atualiza a situação do ano anterior de todos os alunos === * O sistema deve atualizar para todos os alunos matriculados: * O campo "Ano anterior" deve receber o valor do campo Resultado final atual do aluno; * No campo "Observações" deve ser adicionado a data de matrícula do aluno do ano letivo que está sendo finalizado; * O sistema deve atualizar para todos os alunos cadastrados: * O campo "Ano anterior" deve receber o valor "NÃO FREQUENTOU"; * O sistema deve atualizar para todos os alunos matriculados, o campo "Ano anterior" com o mesmo valor do campo "Resultado final" do aluno na ata, exceto quando o campo "Tipo resultado" do cadastro de aluno ata, for igual a: Avançado, Classificado, Reclassificado ou Remanejado; * Caso algum erro ou exceção ocorra durante a execução desse processo, o sistema deve cancelar a finalização do ano letivo, marcando a ação com a imagem (X - vermelho) e informar que não foi possível atualizar a situação do ano anterior dos alunos; * Caso todos os alunos matriculados e cadastrados sejam atualizados, o sistema deve liberar a ação marcando-a com a imagem (Confere - Verde); === Limpa os dados para inclusão de outros do novo ano letivo === * O sistema deve limpar todos os dados no banco de dados, referentes ao ano letivo letivo e curso que estão sendo finalizados; * Os dados que devem ser excluídos são os seguintes: * Todos os dados das tabelas TabNota, TabSubNota, TabMedia, TabAlunosDesempenhos, TabAlunosDesempFinais, TabAlunosTurmas, TabAulaDada e TabTurmaProfessor; * Os campos CodigoServidor e Aulas Dadas da tabela TabTurma_Disciplina_Professor; * Os campos CargaHoraria e Situacao (deve receber o valor "EM ABERTA") da tabela TabTurma; * Esse processo deve ser todo realizado diretamente no banco de dados, através do procedimento: ProcLimparDadosPeriodoLetivo; e caso algum erro ou exceção ocorra durante a execução desse processo, o sistema deve cancelar a finalização do ano letivo, marcando a ação com a imagem (X - vermelho) e informar que não possível limpar os dados; * Caso todos os dados sejam limpos, o sistema deve liberar a ação marcando-a com a imagem (Confere - Verde); === Rematricula ou desvincula os alunos das turmas === * Se a opção "Rematricular alunos automaticamente ao finalizar o ano letivo" estiver marcada: * O sistema deve habilitar todos os campos referentes à opção na tela; * O sistema deve desmatricular todos os alunos matriculados que estiverem sem pré-matrícula; * O sistema deve gerar a rematrícula de todos os alunos matriculados que possuem pré-matrícula cadastrada, independente do resultado final do aluno: Aprovado, Promovido, Reprovado, Retido, Transferido, Evadido e Desistente; * O sistema deve gerar a rematrícula com base nos dados informados na pré-matrícula de cada aluno, sem nenhuma verificação de escola, curso, série ou turma; ou seja, o que estiver informado, será realizado no momento da rematrícula na finalização do ano letivo; * Ao realizar a matrícula do aluno (com base nos dados da pré-matrícula), o campo "Protocolo de pré-matrícula web" da matrícula é atualizado com o valor do mesmo campo informado na pré-matrícula. Como os dados da pré-matrícula são apagados após a realização da matrícula, o valor desse campo também é removido, mantendo-o apenas na matrícula; * O sistema deve criar os históricos dos alunos que ainda não possuem o documento, para o curso no qual estão sendo rematriculados. Por exemplo, ao finalizar o curso de Educação infantil: para os alunos das turmas de 5 anos (que é a série final do curso) que foram pré-matriculados no ensino fundamental, o sistema deve criar os históricos do curso de Ensino fundamental (caso esteja marcada a opção "Gerar históricos automaticamente" no curso) no momento da finalização do curso de Educação infantil; o sistema deve criar também a série da rematrícula ou matrícula nos históricos de todos os alunos; * O sistema não deve gerar a rematrícula apenas para os alunos Falecidos, para esses alunos, os dados da pré-matrícula também deverão ser apagados; * Se a opção "Matricular alunos cadastrados automaticamente ao finalizar o ano letivo" estiver marcada: * O sistema deve gerar a matrícula de todos os alunos cadastrados que possuem pré-matricula cadastrada; * Se a opção "Matricular alunos cadastrados automaticamente ao finalizar o ano letivo" estiver desmarcada: * O sistema não deve gerar matrícula para nenhum aluno cadastrado que possuir pré-matrícula cadastrada; * Se a opção "Utilizar a data da pré-matrícula como data da matrícula" estiver marcada: * O sistema deve desabilitar o campo "Data da rematrícula"; * O sistema deve utilizar a data informada na pré-matrícula de cada aluno, como a data da matrícula; * Se a opção "Utilizar a data da pré-matrícula como data da matrícula" estiver desmarcada: * O sistema deve habilitar o campo "Data da rematrícula" e obrigar seu preenchimento; * O sistema deve utilizar a data da rematrícula informada no campo, para todos os alunos que serão rematriculados, como a data da matrícula; * Se a opção "Rematricular alunos automaticamente ao finalizar o ano letivo" estiver desmarcada: * O sistema deve desabilitar todos os campos referentes à opção na tela; * O sistema deve desmatricular todos os alunos matriculados; ==== Após a finalização ==== * Após finalizado o ano letivo, todos os alunos que não foram rematriculados, mas que possuíam pré-matrículas cadastradas, são listados no módulo de Alunos na visão "Pré-matrículas"; e devem possuir valor igual a "SIM" para o campo "Pré-matriculado" da listagem de alunos; para os demais alunos que foram rematriculados, estes devem possuir valor igual a "NÃO" para o campo "Pré-matriculado", pois durante a finalização do ano letivo, o sistema deve limpar os dados da pré-matrícula para todos os alunos que são rematriculados pelo sistema; * Se o curso gerar históricos automaticamente, todos os alunos matriculados devem ter seus históricos finalizados para o ano letivo, contendo suas séries cursadas com seus respectivos resultados, somente se o aluno atingiu resultados finais como: Aprovado, Promovido, Reprovado, Retido ou Avançado; para os demais resultados, não deve existir a série no histórico para o ano letivo finalizado; * Todas as atas de resultados finais devem ser geradas pelo sistema, contendo todos os alunos matriculados em suas respectivas turmas; * No cadastro do curso finalizado, o período letivo deve estar conforme o próximo ano letivo informado durante a finalização; * Todos os dados dos alunos e turmas para o novo ano letivo devem estar limpos; ===== Observações ===== ~~DISCUSSION|Sugira mudanças, aponte falhas ou contribua de alguma forma aqui:~~