Serviço externo padrão MentorWeb - Solicitação de matrícula em disciplinas reprovadas


Este serviço externo é utilizado da forma “Instrução SQL”. Ao executar esse serviço via requerimento, o sistema irá adicionar a disciplina reprovada por nota na matrícula atual do aluno como o tipo de matrícula na disciplina: “Dependência por nota”.
Para saber mais sobre serviços externos clique aqui.

Nome do serviço externo: recuperaDisciplinasReprovadasPorNota.

SQL Utilizado:

SELECT 
DISTINCT 
CUR_ID, CUR_NOMCUR,
TDI_OFERTA.TDI_TURDISID,
TUR_OFERTA.TUR_PERID, TUR_OFERTA.TUR_CODTUR, TUR_OFERTA.TUR_ID, TUR_OFERTA.TUR_FASE, 
DIS_DISID, DIS_DISTEL, DIS_DESDIS
FROM TB_INGRESSO ING1
INNER JOIN TB_PESSOA PES1 ON PES1.PES_ID = ING1.ING_PESID
INNER JOIN TB_MESTRE_ALUNO MAL_REPROV ON MAL_REPROV.MAL_INGID = ING1.ING_ID
INNER JOIN TB_MESTRE_DISCIPLINA MDI_REPROV ON MDI_REPROV.MDI_MALID = MAL_REPROV.MAL_ID
INNER JOIN TB_TURMA TUR_REPROV ON TUR_REPROV.TUR_ID = MAL_REPROV.MAL_TURID
INNER JOIN TB_CURSO CUR1 ON CUR1.CUR_ID = ING1.ING_CURID
INNER JOIN TB_TURMA_DISCIP TDI_REPROV ON TDI_REPROV.TDI_TURDISID = MDI_REPROV.MDI_TURDISID AND TDI_REPROV.TDI_TURID = TUR_REPROV.TUR_ID
INNER JOIN TB_PERIODO_LETIVO PEL_REPROV ON PEL_REPROV.PEL_PERID = TUR_REPROV.TUR_PERID
INNER JOIN TB_DISCIPLINA DIS1 ON DIS1.DIS_DISID = TDI_REPROV.TDI_DISCID
INNER JOIN TB_SITUACAO_RESULTADO SRD1 ON SRD1.SRD_ID = MDI_REPROV.MDI_RESID
 
/* PRECISA TER UMA TURMA SENDO OFERTANDO PARA A MESMA DISCIPLINA/FASE/TURNO NO PERÍODO LETIVO DA SOLICITACAO DO REQUERIMENTO 
O TIPO DE COMPONENTE CURRICULAR DA TURMA/DISCIPLINA NÃO PODE SER DE ITINERARIO E NÃO PODE SER ELETIVA
*/ 
INNER JOIN TB_TURMA_DISCIP TDI_OFERTA ON TDI_OFERTA.TDI_DISCID = DIS1.DIS_DISID
INNER JOIN TB_TURMA TUR_OFERTA ON TUR_OFERTA.TUR_ID = TDI_OFERTA.TDI_TURID AND
								  TUR_OFERTA.TUR_FASE = TUR_REPROV.TUR_FASE	AND
								  TUR_OFERTA.TUR_TURNO = TUR_REPROV.TUR_TURNO AND
								  TUR_OFERTA.TUR_PERID = :PERID 
INNER JOIN TB_TIPO_DISCIPLINA TIPDIS ON TIPDIS.TDG_ID = TDI_OFERTA.TDI_TDGID AND TIPDIS.TDG_ELETIVA = 0 AND TIPDIS.TDG_ITINERARIO IS NULL 
 
/*  PRECISA TER MATRÍCULA NO PERÍODO LETIVO OFERTADO (PERÍODO LETIVO DE SOLICITAÇÃO DO REQUERIMENTO). 
NO DEFERIMENTO DO REQUERIMENTO SERÁ INCLUIDO A(S) DISCIPLINA(S) NESTE PERÍODO
*/ 
INNER JOIN TB_MESTRE_ALUNO MAL_ATUAL ON MAL_ATUAL.MAL_INGID = ING1.ING_ID AND MAL_ATUAL.MAL_SITMAT = 'ATIVO'
INNER JOIN TB_TURMA TUR_ATUAL ON TUR_ATUAL.TUR_PERID = :PERID
 
/* SOMENTE QUE REPROVOU POR MÉDIA */
WHERE SRD1.SRD_CODAPR = 'RME' 
AND ING1.ING_PESID = :PESID
AND ING1.ING_STATUS = 'ATIVO'
 
/* QUE TENHA INGRESSO NO CURSO DE SOLICITAÇÃO DO REQUERIMENTO OU INGRESSO EM UM CURSO QUE O PRÓXIMO CURSO SEJA DO REQUERIMENTO */
AND (CUR1.CUR_ID = :CURID OR CUR1.CUR_PROXCURSO = :CURID)
 
/* A DISCIPLINA REPROVADA PRECISA SER EM PERÍODO INFERIOR AO PERIODO_LETIVO OFERTADO (PERÍODO LETIVO DE SOLICITAÇÃO DO REQUERIMENTO)  */
 AND PEL_REPROV.PEL_SEQUENCIA < (SELECT PEL_SEQUENCIA FROM TB_PERIODO_LETIVO WHERE PEL_PERID = :PERID)  
 
 
/*  NÃO PODE TER NO INGRESSO A DISCIPLINA/FASE REPROVADA POR NOTA JÁ APROVADA OU CURSANDO */ 
AND (SELECT COUNT(1) FROM TB_MESTRE_DISCIPLINA MDI2
     INNER JOIN TB_MESTRE_ALUNO MAL2 ON MAL2.MAL_ID = MDI2.MDI_MALID
	 INNER JOIN TB_TURMA_DISCIP TDI2 ON TDI2.TDI_TURDISID = MDI2.MDI_TURDISID
	 INNER JOIN TB_TURMA TUR2 ON TUR2.TUR_ID = TDI2.TDI_TURID
	 INNER JOIN TB_SITUACAO_RESULTADO SRD2 ON SRD2.SRD_ID = MDI2.MDI_RESID
	 INNER JOIN TB_DISCIPLINA DIS2 ON DIS2.DIS_DISID = TDI2.TDI_DISCID
	 WHERE MAL2.MAL_INGID = ING1.ING_ID
	 AND TUR2.TUR_FASE = TUR_REPROV.TUR_FASE
	 AND DIS2.DIS_DISID = DIS1.DIS_DISID
	 AND SRD2.SRD_CODAPR IN ('APR','CUR')
	) = 0
ORDER BY TUR_OFERTA.TUR_FASE, DIS1.DIS_DESDIS

Voltar