Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
SIGES WEB
/**
* DOCUMENTACAO
* Um aluno está inscrito numa disciplina na tabela T_INSCRI
* Se o aluno frequentar uma unidade extracurrilar do plano de outro curso não há forma
* de associar essa cadeira ao curso certo. A associação no SIGES é feita criando um grupo
* especial com a Turma e usando os planos de estudos mas não fica nenhuma associação
* entre turmas e cursos, nem entre grupos e cursos uma vez que os funcionaros criam muitas
* vezes grupos especiais para as extracurriculares
* A Turma pode também ela não ter associação ao curso precisamente para poderem ser colocados
* alunos de cadeiras extracurriculares
*
* Solução:
*
* A tabela T_INSCRI tem as inscrições dos alunos nas disciplinas, no entanto o codigo de curso é
* sempre o curso do aluno e não o curtsdo onde está a cadeira extracurricular
* A inscrição tem o campo CD_TIPDIS que tem o valor 6 no caso das extracurriculares. Quando
* o campo tem 1 significa inscrição regular e nesse caso o PAR turma, Curso está correcto
* A turma é sempre escrita no campo TURMA_T mas existe o campo TURMA_P e TURMA_L
* Vamos manter configuravel o campo TURMA_T mas na chamada do WEB-SERVICE
* Assim saberemos que Turma está em que curso
*
* De seguida quando importamos as inscrições vamos sacar o curso mas também a turma
* e dessa forma o cliente poderá fazer o que quiser com essa informação
*
* Para sacar as cadeiras de um curso excluimos a chamada pelo CD_TIPDIS = 1
* Para sacar alunos escrevemos toda a informação incluindo a TURMA_T e o código do curso
* e o código CD_TIPDIS e o cliente decide o que fazer com isso
*
* Nas cadeiras de um CURSO vamos enviar também o código da TURMA_T, TURMA_P e TURMA_L e TURMA_TP
* para o cliente executar como quiser e poder inclusivamente criar várias cadeiras
* uma por turma se necessário.
*
* Portanto a turma vai ser o PONTO chave de todas as importações
*
* notas:
* Nos alunos o CD_SITUA_PAR significa situação parcial servia para identificar bacharelatos no passado
* CSE.T_INSCRI.CD_STATUS <>5 para evitar anuladas
* CSE.T_INSCRI.CD_TIPDIS = 6 significa extracurricular
* CSE.T_INSCRI.CD_TIPDIS = 1 significa regular
*
* CD_TIPDISC = 1 Inscricoes normais
* CD_TIPDISC = 2 Nao conta para media
* CD_TIPDISC = 3 Qualitativa
* CD_TIPDISC = 4 Equivalencia
* CD_TIPDISC = 5 Equivalencia sem nota
* CD_TIPDISC = 6 Extra Curricular
* CD_TIPDISC = 7 Suplemento Diploma
* CD_TIPDISC = 8 Integracao ou refazimento do plano de estudos
*
* */
/***
NOTAS SOBRE BASE DE DADOS DE INSCRICOES
***/
Existem Cursos Ficticios na ESTG
Erasmus
Cadeiras a Vulso
Vasco da Gama
que são cursos que apesar de os alunos terem inscrições normais tem de ser mapeadas
ao verdadeiro curso indo buscar o curso pela turma indo buscar os pares Turma Curso
######################
REVISAO DESCRICAO DO PROCESSO DE IMPORTACOES 2/3/2016
######################
ImportCoursesService (REVISTO 1/03/2016)
1.1 - Dada a Instituicao e o Ano - O sistema vai buscar todas as disciplinas diferenciando-as por Turma, Codigo, Ano, Semestre, Curso
considerando as Inscrições de alunos T_INSCR Regulares codigo Tipo 1 e 2
obtendo o resto da info da TB_DISCIP
(codigo em oracle/DisciplinaDao)
1.2 - O Sistema cria uma unidade por cada saida do ponto anterior
ImportTeachersService (REVISTO 1/03/2016)
2.1 - (REVISTO 1/03/2016) Dada a Instituicao e o Ano - Obtem-se os codigos de todos os docentes
da instituição para a partir da Tabela T_DOC_TURMA que associa docentes a turmas e junta-se
à tabela disciplina para obter da instituição certa e filtra-se pelo Ano na T_DOC_TURMA
2.2 - Para cada docente proveniente da listagem anterior obtem-se os seus dados pessoais da tabela funcionario
e as unidades onde este está subscrito como docente.
As unidades são obtidas novamente da tabela T_DOC_TURMA
Existem casos em que o codigo de Curso nao vem preenchido na T_DOC_TURMA, vem a NULL
Isto acontece porque o sistema do Academicos nao permite associar Curso sempre o professor dá a cadeira
a mais que um curso naquela turma. Nestes casos considera-se que o docente tem as cadeiras todas
que no BACO têm o CODIGO de CADEIRA, ANO, SEMESTRE ignorando o código de curso.
2.3 - São adicionadas ao docente as cadeiras em falta encontradas na lista anterior que nao tenham sido
removidas pelos administradores locais no sistema local
2.4 - Sao removidas as que nao vieram do SIGES e que existe localmente associadas e que não foram adicionadas
localmente o que significa que as ações de adição ou remoção locais prevalecem sempre.
2.5 - TODO: Quanto a Topologias: A politica de escolha da tipologia está por decidir. Deverá
ser feita neste ponto mas a ser decidida. Hipoteses:
a) Considerar os sumários (Horario de Trabalho e o campo CD_TIPO_AULA na tabela
T_SUMARIOS_AULAS)) limitado a 1,2,3,4,5,6,7,8 mas é um campo antigo
deveria ter texto e não tem correspondencia em tabela nenhuma, desconfia-se que os tipos
estão na Combobox HardCoded e não servem para mais nada
b) Considerar o campo CD_TIPO_AULA no Horario de Referência do Docente,
que corresponde à tabela T_OCUPACOES, neste caso perde-se tudo
o que não tenha horario de referência criado como por exemplo estágios
c) considerar o mesmo campo nos DETALHE_AULAS dos sumários, Horario de Trabalho
mas ai temos informação a mais e a politica poderá ser dizer o que é ou não considerado
e ignoramos o resto.
TO BE (Todas as associações Turma Docente são necessárias como a cola entre os alunos e o
professor, sem isto é impossivel saber que alunos estão com que professor)
ImportStudentsService (REVISTO 2/03/2016)
3.1 - São importados todos os estudantes com inscrições na tabela T_INSCRI com
Código da Situação Parcial do Aluno = 1 e Código do Status da Inscrição <> 5
para evitar inscrições anuladas
((CSE.T_ALUNOS.CD_SITUA_PAR)=1) AND ((CSE.T_INSCRI.CD_STATUS)<>5))
3.2 - Quando se obtém as disciplinas dos alunos existem dois casos possiveis quando
uma cadeira é importada tipo de inscrição = 1 ou 2 ou 6.
CSE.T_INSCRI.CD_TIPDIS = 2 OR CSE.T_INSCRI.CD_TIPDIS = 1 OR CSE.T_INSCRI.CD_TIPDIS = 6
- Caso a inscrição seja de tipo 1 ou 2 a cadeira escolhida do BACO com uma filtragem
dos campos provenientes da tabela T_INSCRI (Curso, Semestre, Ano, Codigo, Instituição)
- Caso a inscrição seja de tipo 6 (Extracurricular) ou caso o Codigo de Curso seja um
curso ficticio 19,4,0,22 (Vasco da Gama, Cadeiras a Vulso, Erasmus, etc) Vamos buscar
o código de curso real do curso da seguinte forma:
- Obtemos uma tabela de relações de turmas x curso real a partir da tabela inscrição
considerando todas as ocorrencias unicas de inscrições de tipo 1 e status <> 5
CSE.T_INSCRI.CD_TIPDIS = 1 AND CSE.T_INSCRI.CD_STATUS<>5
- Desta forma temos uma tabela de pares curso turma
- Caso exista mais que um curso para o mesmo código de turma escolhemos aleatóriamente
um dos códigos de curso . Obtrmos a unidade do Baco com uma filtragem dos campos
(Código de Curso Real, Semestre, Ano, Codigo, Instituição)
- Um aviso é emitido nestes casos
3.3 - Obtidas as unidades do BACO onde iremos colocar o aluno guardamos as associações entre
essas cadeiras e suas respetivas turmas identificadas na T_INSCRI para mais tarde
colocar o aluno na turma certa (Modelo de Turmas será adicional no BACO, atualmente
o aluno é apenas associado à unidade, isso irá continuar mas será adicionado ao modelo
de dados um relacionamento entre a unidade a turma e os alunos que será consistida
após cada atualização dos alunos)
3.4 - É usado o histórico dos alunos para verificar a situação de propinas em Dia
3.5 - As cadeiras são adicionadas ao aluno em mais 3 passos
- São retiradas da lista as unidades que foram removidas pelo administrador local
- São adicionadas ao docente as cadeiras em falta encontradas na lista anterior que nao tenham sido
removidas pelos administradores locais no sistema local
- Sao removidas as que nao vieram do SIGES e que existem localmente associadas e que não foram adicionadas
localmente o que significa que as ações de adição ou remoção locais prevalecem sempre.
3.6 - Serão consistidas as associações dos alunos e das turmas nas unidades respectivas
ImportSumariesService (REVISTO 2/03/2016)
4.1 - São importados unidade a unidade a partir das tabelas T_SUMARIOS_AULAS,
T_DETALHE_AULA, T_OCUPACAO e T_DETALHE_OCUPACAO e T_TURMA.
As junções das tabelas foram revistas na documentação do SIGES pelas
chaves estrangeiras de campos multiplos identificadas para relacionar as tabelas.
Com estas tabelas é possivel obter os sumários do horario de trabalho das
unidades filtrando cada unidade, ano, semestre e curso. O código de turma e o docente tb são importados
portanto consegue-se saber a que docente e a que turma pertence cada sumário. E desta forma
é possivel obter as tipologias de aula, Docente, Turma, Tipologia.
CSH.T_DETALHE_AULA.CD_DISCIP = " + codigoUnidade
AND CSH.T_DETALHE_AULA.CD_LECTIVO = '" + anolectivo + "'"
AND CSH.T_DETALHE_AULA.CD_PERIODO = '" + semestre + "'"
AND (CSE.T_TURMA.CD_CURSO = '" + codigoCurso + "' OR CSE.T_TURMA.CD_CURSO is NULL)"
######################
REVISAO
DESCRICAO DO PROCESSO DE IMPORTACOES
######################
Sumarios T_SUMARIOSAULAS.CD_ESTADO
1 Lançado
2 Faltou
3 Cancelado
4 Pré-lançado
importa tudo
Para o Json vai apenas aquilo que tem
Numero Aula > -1 e
que tem menos de 48 horas
e que tem titulo ou descricao e
ESTADO = 1;
Para o PDF vai apenas o que tem
numero de aula > -1
e estado do Sumário = 1
o tipo 1 apenas