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