====== Especificação funcional: Importar pré-matrículas/rematrículas ====== ===== Resumo ===== A importação de pré-matrículas e rematrículas salva os dados das pré-matrículas de alunos (contidos no arquivo), no banco de dados do sistema. ===== Descrição ===== Para facilitar a inclusão das pré-matrículas e rematrículas, a importação desses dados se faz necessária, uma vez que o sistema de Pré-matrículas exporta esse arquivo. Um usuário do sistema de Pré-matrículas deve gerar um arquivo de pré-matrícula/rematrícula dos alunos (arquivo .transferencia), esse arquivo deve estar de acordo com um layout predefinido, contendo as informações dos alunos. Após gerar esse arquivo, o usuário pode realizar a importação das pré-matrículas e rematrículas no sistema. De posse desse arquivo, o usuário do sistema deverá abrir o arquivo, através da funcionalidade de Importar pré-matrículas/rematrículas na visão de Pré-matrículas/rematrículas do módulo de alunos, processar os dados contidos no arquivo. O sistema deve, então, realizar as importações dos dados, fazendo com que cada aluno seja cadastrado no sistema (caso ainda não seja) e seja pré-matriculado na escola, curso e série contidos no arquivo; e de acordo com a turma selecionada no sistema. ==== Estrutura do arquivo de pré-matrículas/rematrículas ==== O arquivo de pré-matrículas/rematrículas deve ser escrito no formato XML, conforme as especificações predefinidas no [[http://intranet.tecsystem.com.br/conhecimento/doku.php?id=softwares:school:requisitos:layouts:schematransferencia15|layout do arquivo]] e de acordo com as regras definidas no esquema (arquivo .xsd) adequado. ==== Validações realizadas antes da importação ==== Para garantir que a importação ocorra da maneira correta, algumas verificações devem ser realizadas pelo sistema antes de processar o arquivo: - Abrir o arquivo, em modo texto, e verificar a presença de alguns elementos que indiquem que o documento é um arquivo de pré-matrículas/rematrículas: - O indicador de que o arquivo se trata de um documento xml; - O nó raiz do arquivo; - A versão do layout do arquivo; - A indicação do nome do schema que deve ser usado para validar o arquivo. - Verificar se o arquivo está definido como somente leitura; - Validar o arquivo de acordo com o Schema adequado, na versão adequada; Caso alguma das validações falhe, o sistema não deverá processar o arquivo e o usuário deverá ser informado para que possa providenciar um arquivo de pré-matrículas/rematrículas válido ou resolver os problemas encontrados. ==== Geração da lista de alunos de pré-matrículas/rematrículas ==== Assim que um arquivo de pré-matrículas/rematrículas válido for aberto, o sistema deve carregar os dados dos campos Escola e Curso. Como cada arquivo possuirá dados apenas de uma escola, o nome da escola já será exibido no campo Escola. O usuário poderá então selecionar o curso desejado e assim o sistema carregará a lista de séries contida no arquivo para o curso selecionado. Após selecionar a série, a lista de alunos deverá ser exibida para que o usuário visualize cada pré-matrícula dos alunos existentes para serem importadas. Somente após a seleção do usuário para a turma e pré-matrículas desejadas, o sistema deverá processar efetivamente as operações no arquivo de pré-matrículas/rematrículas. O sistema deve realizar a inclusão do aluno (caso ainda não esteja cadastrado no sistema) para que então possa importar sua pré-matrícula. Enquanto não existir turma selecionada, o sistema não deverá realizar a operação, mantendo o botão Importar desabilitado. ==== Sequência de verificação ==== === Escola === * O sistema deve verificar se a escola do arquivo existe no banco de dados, através dos campos Nome ou Código escola INEP; * Quando a escola do arquivo for localizada no sistema, o nome da escola deve ser exibido no campo Escola; * Quando a escola do arquivo não for localizada no sistema, o campo deve permanecer vazio, assim como os demais campos, não sendo possível realizar a importação; === Curso === * O sistema deve verificar se o curso do arquivo existe no banco de dados, através dos campos Modalidade, Ensino e Etapa; * Quando o curso do arquivo for localizado no sistema, o nome do curso deve ser exibido no campo Curso; * Quando o curso do arquivo já tiver sido localizado no sistema, mas não estiver vinculado no cadastro da escola, o nome do curso deve ser exibido no campo Curso, porém ao selecioná-lo o sistema deve exibir uma mensagem de alerta ao usuário informando-o que não é possível realizar a importação. Dessa forma, os demais campos Série e listagem de alunos referentes ao curso, não devem ser exibidos nos respectivos campos; * Quando o curso do arquivo não for localizado no sistema, o nome do curso não deve ser exibido no campo Curso, bem como os demais campos Série e listagem de alunos referentes ao curso, não devem ser exibidos nos respectivos campos; === Série === * O sistema deve verificar se a série do arquivo existe no banco de dados, através dos campos Etapa, Avaliação, Módulo e Ordem; * Quando a série do arquivo for localizada no sistema, o nome da série deve ser exibido no campo Série; * Quando a série do arquivo não for localizada no sistema, o nome da série não deve ser exibido no campo Série, bem como a listagem de alunos referente à série, não deve ser exibida no respectivo campo; === Alunos === * O sistema deve verificar se o aluno do arquivo existe no banco de dados, através dos campos Nome e Data de nascimento; * Quando o aluno do arquivo for localizado no sistema, seu nome e seus dados de pré-matrícula devem ser exibidos na listagem de alunos; * Quando o aluno do arquivo não for localizado no sistema, seu nome e seus dados de pré-matrícula devem ser exibidos na listagem de alunos (porém sua inclusão no sistema deve ser realizada); * Caso o aluno seja localizado, porém o campo Código INEP já esteja informado para outro aluno do sistema, seu nome e seus dados de pré-matrícula não devem ser exibidos na listagem de alunos; ===== Pontos de verificação ===== * O sistema deve processar apenas arquivos de alunos válidos, de acordo com o layout definido para arquivos de alunos; * O sistema deve exibir desabilitado o campo Escola (deve ser exibido apenas o nome da escola), assim que o arquivo for selecionado; * O sistema deve exibir os campos Curso e Série sempre habilitados, mesmo que estejam vazios; * O sistema deve recuperar a listagem de cursos existentes no arquivo, assim que o arquivo for selecionado; * O sistema deve exibir uma mensagem quando o curso selecionado do arquivo não estiver vinculado na escola no sistema; * O sistema deve recuperar a listagem de séries existentes no arquivo, assim que o curso for selecionado; * O sistema deve habilitar o campo Turma, assim que a série for selecionada; * O sistema deve listar na tela de localização de turmas, todas as turmas da série selecionada que estejam cadastradas na escola no sistema, para que o usuário possa decidir para qual turma as pré-matrículas/rematrículas serão importadas; * O sistema deve habilitar o botão Importar, assim que a turma for selecionada; * O sistema deve exibir uma imagem ao lado do nome do aluno que já possua pré-matrícula cadastrada no sistema, bem como a mesma imagem com tamanho maior e a informação "O aluno já possui pré-matrícula, seu cadastro será atualizado com os dados do arquivo." na tela, logo abaixo da listagem de alunos; * O sistema deve exibir uma mensagem, caso o usuário não tenha selecionado nenhuma pré-matrícula para ser importada; * O sistema deve realizar a importação desde que exista pré-matrícula selecionada na listagem de alunos; * O sistema deve realizar a importação apenas das pré-matrículas selecionadas na listagem de alunos; * O sistema deve realizar a inclusão dos alunos que ainda não estejam cadastrados no sistema, antes de realizar a importação de sua pré-matrícula; * O sistema deve informar ao usuário que a importação foi concluída ao final do processo; * O sistema deve salvar e fechar o arquivo de alunos após a importação; * O sistema não deve corromper o arquivo de alunos após a importação; * O sistema não deve apagar o arquivo de alunos após o processo; ===== Observações ===== Nenhuma.