DES:ACADEMUS:Pré-requisitos:ClrMatricula

De Wiki Unioeste NTI
Ir para: navegação, pesquisa

VoltarVoltar a página Inicial - Documentação Técnica


Matrícula de Calouros - Alterações

Dezembro/13: Adaptação para fazer matrícula dos ingressantes via SiSU

Março/14; Atualizado em 11/01/2017, pois não havia sido implementado: Ajustes, considerando o módulo web Docente
Desenvolvido por:

  • Se for necessário cancelar a matrícula, seja pela Unioeste ou pelo próprio calouro, considerando o Módulo web Docente, os acadêmicos podem ter registro feito pelos docentes, como frequência e/ou nota, e, desta forma, será necessário modificar o procedimento.
  • Verificar se tem dados lançados (no caso de Notas e/ou Frequências, ver o procedimento já existente no Cadastro de Matrículas):
    • Frequência de Usuário: Verificar se tem frequência atribuída pelo docente em AcdMtrEnsFrequencia: AulaFrq_Codigo -> AulaFrequencia.AulaFrq_TpUso = 'U'
    • Frequência de Sistema: Verificar se tem frequência de sistema em AcdMtrEnsFrequencia: AulaFrequencia.AulaFrq_TpUso = 'S'
    • Nota de Usuário: deve haver algum registro em AcdMtrNtComposta.AcdMtrNtCmp_Nota IS NOT NULL
    • Nota de Sistema: deve haver algum registro em AcdMtrNtComposta.AcdMtrNtCmp_Nota IS NULL
    • Ingresso: Verificar se já existe registro de ingresso em AcdDdsVestibular, via Vst_Codigo, Vst_cdgCurso, Vst_CndInscricao
  • Se a Situação foi alterada para "Confirmada" (11)
    • se não houver registro de Ingresso, manter o que já existe
    • caso contrário:
      • exibir mensagem: "Já existe registro de ingresso para este processo seletivo. Assim, será inserida uma Situação Atual igual a CURSANDO e, se houver matrículas canceladas, elas serão ativadas." Opções: OK e Cancelar
      • É necessário revisar todo o ingresso do calouro, especialmente as matrículas, a fim de conferir se todas as disciplinas de 1ª série da grade tem matrícula, data da matrícula, grade atual em cursos por acadêmico e etc. ;
      • AcdMatricula: ativar disciplinas canceladas: alterar situação da Matrícula de "Cancelada" (Cnc) para "Ativa" (Atv); limpar Data da Situação; remover matrícula que não existe na grde curricular atual
      • AcdSituacao e AcdStcAtual: se situação atual não for "cursando", inserí-la em AcdSituacao e torná-la a situação ativa em AcdStcAtual
  • Senão, se houver dados de Frequência e/ou Notas:
    • Se a situação foi alterada para "Cancelada pela Unioeste" (22) ou para "Cancelada por solicitação do calouro" (2):
      • Se não houver Frequência de Usuário e nem Nota de Usuário, excluir todos os registros referente ao ingresso: AcdMtrEnsFrequencia, AcdMtrNtComposta, AcdMtrNota, AcdMtrEnsalamento, AcdMatricula, e etc...
      • senão,
        • exibir mensagem: Já existe registro de frequência e/ou nota para este calouro e o ingresso não poderá ser excluído. Assim, será inserida uma Situação Atual igual a CANCELADO e as matrículas ativas serão canceladas; Opções: OK e Cancelar
        • Solicitar que o usuário informe a Data de Cancelamento
        • AcdMatricula: cancelar matriculas ativas (alterar situação da Matrícula de "Ativa" (Atv) para "Cancelada" (Cnc); Data da Situação = Data de Cancelamento
        • AcdSituacao e AcdStcAtual: inserir a situação "cancelada" (Cnc) no Prd.Letivo do Processo Seletivo em AcdSituacao e torná-la a situação ativa em AcdStcAtual; Data da Situação = Data de Cancelamento
    • Senão, (é diferente de 2 e 22)
      • Se não houver Frequência de Usuário e nem Nota de Usuário, excluir todos os registros referente ao ingresso: AcdMtrEnsFrequencia, AcdMtrNtComposta, AcdMtrNota, AcdMtrEnsalamento, AcdMatricula, e etc...
      • Senão, exibir mensagem e abortar o procedimento: Já existem Notas e/ou Frequências e a Situação Confirmada só pode ser alterada para CANCELADA (Unioeste ou pelo acadêmico); Para outra situação, primeiro o docente deverá remover os lançamentos já efetuados


Agosto/14: Adaptação considerando que PROGRAD solicitou para diferenciar os ingressantes do vestibular Unioeste. Até então o tipo de ingresso era somente 'vestibular', mas agora será necessário considerar 'ENEM' também, considerando o preenchimento de vagas remanescentes de interessados que participaram do ENEM

  • Cursos por Acadêmico - Tipo de Ingresso:
    • Se vVestibular.Vst_Origem = 'Sisu' então 'ENEM'
    • Se vVestibular.Vst_Origem = 'Unioeste'
      • Se vVstCandidato.Cnd_Origem = 'Unioeste' então 'Vst' (esta informação só está preenchida quando a Origem for Unioeste; 02/08/16: a implementação no Delphi estava errada e foi corrigida; o erro fez com que todos ficassem com 'Vst, mas arrumei a partir de 2016)
      • Senão, 'ENEM'


Matrícula de Calouros

Análise por: Liége em 21/08/09.
Desenvolvido por:

Tabelas a serem gravadas/modificadas: ClrMatricula, PssFisica, Endereco, Rlc_PssFisca_Vinculo, Academico, AcdCurso, AcdSituacao, AcdStcAtual AcdDdsVestibular e AcdMatricula.

Objetivo:
Cadastrar os calouros convocados em chamadas e que compareceram para efetuar pré-matrícula, confirmação de matrícula, cancelamento, ... Estas informações são gravadas na tabela ClrMatricula. Quando a matrícula é confirmada, é gerada matrícula real em tabelas do Academus.
Campos de ClrMatricula:

  • Vestibular: Caso encontrar em vVestibular (Vst_Codigo), exibir na tela Prd. Letivo, Descrição do Vestibular, Dt. Início e Dt. Término de Vst.

F6:

SELECT Vst_Codigo, PrdLtv_PrdLetivo, CntCnc_Descricao, CntCnc_DtInicio, CntCnc_DtTermino
FROM vVestibular WHERE Vst_Ativo = 'S' AND vVestibular.Vst_Codigo in (SELECT DISTINCT VstChamada.Vst_Codigo FROM VstChamada) ORDER BY vVestibular.Vst_Codigo
  • Sequência da Chamada (não obrigatório): Exibir na tela Descrição da Chamada, Data e Documento de VstChamada.

F6:

SELECT VstChm_Sequencia, VstChm_Descricao, VstChm_DcmData, VstChm_Documento
FROM VstChamada WHERE Vst_Codigo=? ORDER BY VstChm_DcmData DESC
  • Curso (não obrigatório): Caso encontrar em vVstCurso (Vst_Codigo e Crs_Codigo), exibir na tela Nome do Curso, Vagas, Campus e Turno.

F6:

SELECT vVstCurso.Crs_Codigo, vVstCurso.Crs_Descricao, vVstCurso.Crs_CdgCtrAcademico, vVstCurso.Crs_QntVaga,  vVstCampus.Cmp_Descricao, vVstTpTurno.TpTrn_Descricao 
FROM vVstCurso INNER JOIN vVstTpTurno ON vVstCurso.TpTrn_Codigo = vVstTpTurno.TpTrn_Codigo
INNER JOIN vVstCampus ON vVstCurso.Cmp_Codigo = vVstCampus.Cmp_Codigo
WHERE Vst_Codigo=?
AND vVstCurso.Vst_Codigo in (SELECT DISTINCT VstChamada.Vst_Codigo FROM VstChamada)
  • Calouro: Caso encontrar em vVstCandidato e vVstCndCurso (Vst_Codigo, Crs_Codigo e Cnd_NmrInscricao), exibir na tela Nome do calouro, CPF, Classificação, Inscrição como Cotista, Classificado como Cotista e Ocupa Vaga de Cotista.

F6:

SELECT vVstCndCurso.Crs_Codigo, VstChmCalouro.VstChm_Sequencia, vVstCndCurso.Cnd_NmrInscricao, vVstCandidato.Cnd_Nome, vVstCandidato.Cnd_CPF, 
vVstCndCurso.ClsCndCrs_Classificacao, vVstCandidato.Cnd_Cotista, vVstCndCurso.CndCrs_ClsCotista, vVstCndCurso.CndStc_Codigo, VstChmCalouro.VstChmClr_OcpVgaCotista
FROM vVstCandidato
INNER JOIN vVstCndCurso
ON vVstCandidato.Vst_Codigo = vVstCndCurso.Vst_Codigo
AND vVstCandidato.Cnd_NmrInscricao = vVstCndCurso.Cnd_NmrInscricao
INNER JOIN VstChmCalouro
ON VstChmCalouro.Vst_Codigo = vVstCndCurso.Vst_Codigo
AND VstChmCalouro.Vst_CndInscricao = vVstCndCurso.Cnd_NmrInscricao
AND VstChmCalouro.Vst_CdgCurso = vVstCndCurso.Crs_Codigo
WHERE vVstCndCurso.Vst_Codigo = ?
AND vVstCndCurso.Crs_Codigo = ? (opcional)
AND VstChmCalouro.VstChm_Sequencia = ? (opcional)


F9:

SELECT Vst_Codigo, VstChm_Sequencia, Vst_CdgCurso, Vst_CndInscricao FROM ClrMatricula 
ORDER BY Vst_Codigo, VstChm_Sequencia, Vst_CdgCurso, Vst_CndInscricao
  • Situação: Exibir em um combo: Código e Descrição da Situação (SELECT TblGrlItm_Codigo, TblGrlItm_ClrMtrSituacao FROM TblGrlClrMtrSituacao ORDER BY TblGrlItm_ClrMtrSituacao).
  • Período Letivo Matrícula: Habilitar o campo somente se Situação = 11 (confirmada) e popular inicialmente com vVestibular.PrdLtv_PrdLetivo

F6: SELECT PrdLtv_PrdLetivo, PrdLtv_Formatacao, PrdLtv_FrmPrdInteiro, PrdLtv_FrmPrdMeio, PrdLtv_Grupo, PrdLtv_GrpItem FROM PrdLetivo
WHERE PrdLetivo.PrdLtv_Grupo IN
(SELECT t1.PrdLtv_Grupo FROM PrdLetivo t1 where t1.PrdLtv_PrdLetivo = ?)
=> ?=vVestibular.PrdLtv_PrdLetivo

  • Observações
  • Data/Hora da Inclusão: Gravar Datetime no momento da Inclusão da linha na tabela e exibir na tela;
  • Data/Hora da Alteração: Gravar Datetime a cada Alteração da linha na tabela e exibir na tela;

Instruções:

  • Se Situação = '11' (confirmada):
    • Os dados do calouro deverão estar nas visões do vestibular;
    • No caso de atualização de dados (tabelas do Vestibular x tabelas do Academus), o usuário deverá assinalar quais campos deseja atualizar;
    • Iniciar um passo a passo para efetivar a matrícula, sendo que em todas as telas deverá ter um cabeçalho com o Nome, Inscrição e CPF do calouro
    • Antes de gerar os dados nas tabelas, verificar se já existe:
SELECT 1 from AcdDdsVestibular WHERE Vst_Codigo=? AND VstChm_Sequencia=? AND Vst_CdgCurso=? AND Vst_CndInscricao=?

OU

SELECT 1 FROM PssFisica INNER JOIN AcdCurso ON PssFisica.PssFsc_Codigo=AcdCurso.PssFsc_CdgAcademico INNER JOIN PrdLetivo ON AcdCurso.PrdLtv_Ingresso = PrdLetivo.PrdLetivo
WHERE PssFisica.PssFsc_CPF=? AND PrdLetivo.PrdLtvGrupo = ?(Grupo do vVestibular.PrdLtv_PrdLetivo) AND AcdCurso.Crs_codigo=?(vVstCurso.Crs_CdgCtrAcademico)
Se existir, informar numa tela os dados encontrados: Acadêmico, Cdg. PssFisica, Nome, Sqn. Formação, Prd. Letivo Ingresso, Cdg. e Descrição do Curso. Informar que já existe matrícula no Academus e que não será alterada...
Se não existir,
  • Tela 1: Exibir e permitir edição no seguintes campos:
Dados pessoais:
Nome do Calouro (vVstCandidato.Cnd_Nome): obrigatório > PssFsc_Nome
Sexo (vVstCandidato.Cnd_Sexo): obrigatório > PssFsc_Sexo
Nome da Mãe (vVstCandidato.Cnd_NmMae): obrigatório > PssFsc_NmMae
CPF (vVstCandidato.Cnd_CPF): obrigatório > PssFsc_CPF
Data de Nascimento (vVstCandidato.Cnd_DtNascimento): obrigatório > PssFsc_DtNascimento
Documento (vVstCandidato.Cnd_NmrDocumento): > PssFsc_RG
Órgão Expedidor do Documento: > OrgExp_RGCodigo
Exibir dados do Órgão Expedidor de vVstOrgExpedidor, vVstCandidato.Cnd_UFDocumento e mover vVstOrgExpedidor.OrgExp_RGCodigo para um campo editável. Ler a descrição deste Código em OrgExpedidor do Academus e exibir a descrição ao lado. Caso o usuário quiser, ele pode pesquisar e informar outro código. O Vestibular possui uma tabela de Órgão Expedidor (tabela OrgExpedidor, mesmo nome) e, desta forma, os códigos podem ser diferentes. A princípio, são iguais, motivo pelo qual deverão ser feitos os procedimentos descritos.
e-mail (vVstCandidato.Cnd_Email): > PssFsc_Email
Nacionalidade (vVstCandidato.Ncn_Codigo): obrigatório > Ncn_Codigo
Através do CPF, verificar se o mesmo já tem cadastro em PssFisica; Se não encontrar pelo CPF, pesquisar pelo Nome. Caso encontrar em alguma busca, exibir os dados encontrados e, caso tenha mais de 1, o usuário deverá selecionar apenas 1. Exibir os dados encontrados e os dados do Vestibular lado a lado para comparação. Solicitar ao usuário confirmação de que é a mesma pessoa; Se confirmar, atualizar PssFisica, conforme dados marcados pelo usuário. Se não confirmar, será necessário gerar PssFisica. Caso não exista Rlc_PssFisica_Vinculo com Vnc_Codigo=6 (Acadêmico), gerar registro.
  • Tela 2: Exibir e permitir edição nos seguintes campos:
Dados de Endereço: Opção para o usuário gerar ou não Endereço
Sqn. do Endereço: SELECT End_Codigo + 1 FROM Endereco WEHRE PssFsc_Codigo=? > End_Codigo
Tipo do Endereço: fixo 1 (residencial), mas pode ser modificado > TpEnd_Codigo
Logradouro (vVstCandidato.Cnd_EndLogradouro): obrigatório > End_Logradouro
Número (vVstCandidato.Cnd_EndNumero): > End_Numero
Complemento (vVstCandidato.Cnd_EndComplemento): > End_Complemento
Bairro (vVstCandidato.Cnd_EndBairro): > End_Bairro
Cx.Postal (vVstCandidato.Cnd_EndCxPostal): > End_CxPostal
CEP (vVstCandidato.Cnd_EndCEP): obrigatório > End_CEP
Município* (vVstCandidato.Cnd_EndMunicipio e vVstCandidato.Cnd_EndUF): obrigatório > Mnc_Codigo
Exibir os dados do vestibular (texto, não tem código) e o usuário deverá fazer F6 para achar o código
Telefone Residencial** (vVstCandidato.Cnd_DDDFnResidencial e vVstCandidato.Cnd_FnResidencial): End_DDDFone e End_Fone
Telefone Celular** (vVstCandidato.Cnd_DDDFnCelular e vVstCandidato.Cnd_FnCelular): End_DDDCelular e End_Celular
  • Tela 3:
Acadêmico: Antes de gerar registro na tabela Academico, verificar se existe o Acadêmico; Se existir, atualizar; Caso contrário, gravar.
Município de Procedência* (vVstCandidato.Mnc_Procedencia (Código), o qual é preenchido na tabela Candidato do Vestibular a partir do Município do Endereço - vVstCandidato.Cnd_EndMunicipio): obrigatório > Mnc_CdgProcedencia
Exibir os dados do vestibular vVstCandidato.Cnd_EndMunicipio (texto) e o usuário deverá fazer F6 para achar o código, caso esteja errado ou faltando
Cursos por Acadêmico: gerar AcdCurso, AcdSituacao, AcdStcAtual, AcdDdsVestibular e AcdMatricula:
AcdCurso:
  • AcdCrs_SqnFormacao: SELECT AcdCrs_SqnFormacao + 1 FROM AcdCurso WEHRE PssFsc_CdgAcademico=?
  • AcdCrs_DcmNome: vVstCandidato.Cnd_Nome ou PssFisica.PssFsc_Nome
  • TblGrl_CdgIngresso: fixo 'CdgIngresso'
  • TblGrlItm_CdgIngresso: fixo 'Vst'
  • Crs_Codigo: vVstCurso.CdgCtrAcademico
  • GrdCrr_Codigo: SELECT GrdCrr_Codigo FROM GrdCrrCalouro INNER JOIN PrdLetivo ON GrdCrrCalouro.PrdLtv_PrdLetivo = PrdLetivo.PrdLtv_PrdLetivo WHERE Crs_Codigo=vVstCurso.CdgCtrAcademico AND PrdLetivo.PrdLtv_Grupo = Grupo do vVestibular.PrdLtv_PrdLetivo
  • GrdCrrSr_Codigo: fixo 1
  • PrdLtv_Ingresso: Prd. Letivo matrícula (tela)
AcdSituacao:
  • TblGrl_StcAcademico: fixo 'StcAcademico'
  • TblGrlItm_StcAcademico: fixo 'Crs'
  • AcdStc_Data: GETDATE()
AcdStcAtual: Gravar o registro gravado em AcdSituacao
AcdDdsVestibular:
  • TblGrl_CdgTurno: fixo 'CdgTurno'
  • TblGrlItm_CdgTurno: SELECT TblGrlItm_CdgTurno FROM Curso WHERE Crs_Codigo=vVstCurso.CdgCtrAcademico
  • AcdDdsVst_VstInterno: fixo 'T'
  • Ins_Codigo: SELECT Ins_codigo from Instituicao where Str_CdgCmpEquivalente = vVstCampus.Cmp_CdgCtrAcademico
  • CrsExt_Codigo: Curso.CrsExt_codigo
  • AcdDdsVst_PrdInicial: vVestibular.CntCnc_DtInicio
  • AcdDdsVst_PrdFinal: vVestibular.CntCnc_DtTermino
  • AcdDdsVst_NmrVagas: vVstCurso.Crs_QntVaga
  • AcdDdsVst_TtlPontos: vVstCndCurso.ClsCndCrs_EscPndTotal
  • AcdDdsVst_Classificacao: vVstCndCurso.ClsCndCrs_Classificacao
  • AcdDdsVst_Cotista: vVstCandidato.Cnd_Coptista
  • AcdDdsVst_OcpVgaCotista: VstChmCalouro.VstChmClr_OcpVgaCotista
AcdMatricula:
  • AcdMtr_SqnMatricula: SELECT AcdMtr_SqnMatricula + 1 FROM AcdMatricula WHERE PssFsc_CdgAcademico=? AND AcdCrs_SqnFormacao=?
  • PrdLtv_PrdLetivo: Prd. Letivo matrícula (tela)
  • Crs_Codigo: vVstCurso.CdgCtrAcademico
  • GrdCrr_Codigo: mesmo SELECT feito na geração de AcdCurso
  • GrdCrrSr_Codigo: 1
  • Dsc_Codigo: Gerar 1 registro em AcdMatricula para cada disciplina: (SELECT Dsc_Codigo FROM GrdCrrDisciplina WHERE Crs_Codigo=? AND GrdCrr_Codigo=? AND GrdCrrSr_codigo=?)
  • AcdMtr_TpMatricula: fixo 'N' (normal)
  • TblGrl_CdgStcDscMatricula: fixo 'CdgStcDscMatricula'
  • TblGrlItm_CdgStcDscMatricula: fixo 'Mtr' (matriculada)
AcdMatricula: Nesta tabela SEMPRE Alterar/Gravar os dados.
* Estes campos são textuais no Vestibular e, no Academus, são codificados. Desta forma, fazer interação com usuário pedindo o Código.
** Obrigar ao menos 1 telefone
  • Se Situação <> '11' (confirmada):
Verificar se existe dados na tabela AcdCurso:
SELECT 1 from AcdDdsVestibular WHERE Vst_Codigo=? AND VstChm_Sequencia=? AND Vst_CdgCurso=? AND Vst_CndInscricao=?

OU

SELECT 1 FROM PssFisica INNER JOIN AcdCurso ON PssFisica.PssFsc_Codigo=AcdCurso.PssFsc_CdgAcademico INNER JOIN PrdLetivo ON AcdCurso.PrdLtv_Ingresso = PrdLetivo.PrdLetivo WHERE PssFisica.PssFsc_CPF=? AND PrdLetivo.Grupo = ?(Grupo do vVestibular.PrdLtv_PrdLetivo) AND AcdCurso.Crs_codigo=?(vVstCurso.Crs_CdgCtrAcademico)
Se existir, informar numa tela os dados encontrados: Acadêmico, Cdg. PssFisica, Nome, Sqn. Formação, Prd. Letivo Ingresso, Cdg. e Descrição do Curso; Solicitar confirmação para remover os dados, informando que apenas com situação "confirmada" pode haver matrícula no Academus; Em caso de confirmação, remover dados (Academico/Sqn. Formação), na ordem de dependência entre as tabelas (pode ser que não existam dados em todas as tabelas):
  • nível 5: AcdMtrNtComposta e AcdHstMtrNtComposta
  • nível 4: AcdMtrNota e AcdHstMtrNota
  • nível 3: AcdVstProva, AcdStcAtual, AcdMtrEnsalamento, AcdHstMtrEnsalamento, AcdHstEquivalencia, AcdHstDscAproveitamento
  • nível 2: AcdSituacao, AcdRglJubilamento, AcdMatricula, AcdHistorico, AcdExmNcnCurso, AcdDdsVestibular, AcdCrsDocumentacao, AcdAtvComplementares
  • nível 1: AcdCurso
  • nível 0: Na tabela Academico, remover apenas se não restar registro algum em AcdCurso para este Cdg Acadêmico.
AcdMatricula: Nesta tabela SEMPRE Alterar/Gravar os dados.

Observações:

  • A gravação/alteração de todas as tabelas deverá estar dentro de uma Transação; Caso ocorra problema em alguma tabela, desfazer os processos já feitos em outras;
  • As visões do vestibular são transitórias, sendo que em determinado momento, os dados de determinado vestibular poderão estar indisponíveis.

Menu do Sistema: Calouros (logo após Acadêmico)

Ferramentas pessoais
Espaços nominais
Variantes
Ações
Navegação
Ferramentas