Galera sou novato em java e estou com o seguinte problema, tenho que gerar uma pre-matricula para uma turma, mais antes de mover esta turma antiga para uma turma nova tenho que fazer os seguintes passos
verificar se há parcela em aberto
verificar se há depedencia por aluno
verificar se tem turma nova liberada
verificar se há disciplina cadastrada na turma nova
sendo assim alguem poderia me dar uma ajuda para formular as verificações necessarias como montar um for
tenho o exemplo abaixo que está em sql mais não conseguir fazer
SET TERM ^ ;
CREATE PROCEDURE SP_REN_SAA (
i_idsa4_a varchar(10), /<em>TURMA ATUAL</em>/
i_anosa4_a varchar(4), /<em>ANO ATUAL</em>/
i_semsa4_a char(1), /<em>SEMESTRE ATUAL</em>/
i_idsa4_n varchar(10), /<em>TURMA NOVA</em>/
i_anosa4_n varchar(4), /<em>ANO NOVO</em>/
i_semsa4_n char(1)) /<em>SEMESTRE NOVO</em>/
as
declare variable v_idsa1 integer;
declare variable v_idtursaa varchar(10);
declare variable v_modalsaa char(1);
declare variable v_idsa2_sa4 integer;
declare variable v_turnsa4 char(1);
declare variable v_qtdedis integer;
declare variable v_bolren char(2);
declare variable v_numdep integer;
declare variable v_idtursa8 varchar(10);
declare variable v_iddissa8 integer;
declare variable v_idsa7 integer;
declare variable v_iddissa9 integer;
declare variable v_idpersa9 integer;
declare variable v_idcursa9 integer;
declare variable v_modalsa9 char(2);
declare variable v_statussa9 char(2);
declare variable v_idturda varchar(10);
declare variable v_idsa7da integer;
BEGIN
V_IDTURDA = ‘’;
SELECT CFG_CONTEUDO
FROM CFG02
WHERE CFG_PARAM = ‘BOLETOREN’ INTO :v_BOLREN; /BOLETO VERIFICA��O PARCELA/
SELECT CFG_CONTEUDO
FROM CFG02
WHERE CFG_PARAM = ‘NUMDEP’ INTO :V_NUMDEP; /NUMERO DE DEPENDENCIAS PO ALUNO/
IF (NOT EXISTS(SELECT COUNT(1) FROM SA501
WHERE SA501.A5_IDTURMA = :I_IDSA4_N
AND SA501.A5_ANO = :I_ANOSA4_N
AND SA501.A5_SEMESTRE = :I_SEMSA4_N)) THEN
EXCEPTION EXCEPT08; /VERIFICA SE TURMA NOVA ESTA LIBERADA "TABELA TURMA LIBERA"/
IF (NOT EXISTS(SELECT COUNT(1) FROM SA801
WHERE SA801.A8_IDTURMA = :I_IDSA4_N
AND SA801.A8_ANO = :I_ANOSA4_N
AND SA801.A8_SEMESTRE = :I_SEMSA4_N
AND SA801.A8_FILIAL = ‘00’)) THEN
EXCEPTION EXCEPT09; /VERIFICA SE TURMA NOVA TEM HORARIO “TB DISCIPLINA TURMA”/
FOR SELECT SAA01.AA_IDALUNO, SAA01.AA_IDTURMA, SAA01.AA_MODAL, /SAA01 = MATRICULA/
(SELECT SA401.A4_IDCURSO FROM SA401 /SA401 = TURMA/
WHERE SA401.A4_ID = SAA01.AA_IDTURMA) A4_IDCURSO,
(SELECT SA401.A4_TURNO FROM SA401
WHERE SA401.A4_ID = SAA01.AA_IDTURMA) A4_TURNO
FROM SAA01
WHERE SAA01.AA_IDTURMA = :i_idsa4_a
AND SAA01.AA_FILIAL = ‘00’
AND SAA01.AA_MODAL = ‘N’
and saa01.aa_idaluno = 9721
AND SAA01.AA_ANO = :i_anosa4_a
AND SAA01.AA_SEMESTRE = :i_semsa4_a
AND NOT EXISTS (SELECT 1 FROM SAA01 SAA012
WHERE SAA012.AA_IDALUNO = SAA01.AA_IDALUNO
AND SAA012.AA_FILIAL = ‘00’
AND SAA012.AA_ANO = :i_anosa4_n
AND SAA012.AA_SEMESTRE = :i_semsa4_n
AND SAA012.AA_MODAL = ‘N’ ) INTO :v_idsa1,:v_idtursaa,
:v_modalsaa, :v_idsa2_sa4,
:v_turnsa4
DO
BEGIN
EXECUTE PROCEDURE SBA01_IU(‘00’,:V_IDSA1,:I_ANOSA4_N,:I_SEMSA4_N,:V_MODALSAA,:I_IDSA4_N,CURRENT_DATE,’’,NULL,0,’’);
/PROCEDURE ACIMA INCLUI DADOS NA PR�-MATRICULA, SISTEMA NOVO SER� TABELA MATRICULA PR�-MATRICULA = TRUE/
FOR SELECT DISTINCT SA801.A8_IDDISC, SA801.A8_IDTURMA, /*RETORNA DISCIPLINAS A SEREM INCLUIDAS*/
(SELECT SA401.A4_IDGRADE FROM SA401 WHERE SA401.A4_ID = SA801.A8_IDTURMA) AS A4_IDGRADE
FROM SA801 /*SA801 = TURMA DISCIPLINA*/
WHERE SA801.A8_IDTURMA = :I_IDSA4_N
AND SA801.A8_ANO = :I_ANOSA4_N
AND SA801.A8_SEMESTRE = :I_SEMSA4_N INTO :V_IDDISSA8, :V_IDTURSA8,:V_IDSA7
DO
BEGIN
EXECUTE PROCEDURE SBB01_IU('00',:V_IDSA1,:I_ANOSA4_N,:I_SEMSA4_N, :V_IDDISSA8,
:V_MODALSAA,:V_IDTURSA8,0,'',:V_IDSA7,'');
/*PROCEDURE ACIMA INCLUI DADOS NA DISCIPLINA MATRICULA*/
END
SELECT COUNT (SA901.A9_IDALUNO) /*SA901 = TB_HIST�RICO*/
FROM SA901
WHERE SA901.A9_IDALUNO = :V_IDSA1
AND SA901.A9_IDCURSO = :V_IDSA2_SA4
AND SA901.A9_FILIAL = '00'
AND ((SA901.A9_STATUS IN ('RR', 'RF')) OR
(SA901.A9_STATUS = 'NC' AND SA901.A9_MODAL = 'D' )) AND
NOT EXISTS (SELECT 1
FROM SA901 SA9012
WHERE SA9012.A9_IDALUNO = :V_IDSA1
AND SA9012.A9_IDCURSO = :V_IDSA2_SA4
AND SA9012.A9_IDDISC = SA901.A9_IDDISC
AND SA9012.A9_FILIAL = '00'
AND (SA9012.A9_STATUS IN ('AP', 'AD'))) INTO :V_QTDEDIS;
/*O SELECT ACIMA RETORNA NUMERO DE DISCIPLINAS QUE SER� INCLUIDAS COMO DEPENDENCIA E ADAPTA��O*/
IF (:V_QTDEDIS > 0 ) THEN
BEGIN
FOR SELECT DISTINCT sa901.a9_iddisc, sa901.a9_idcurso, sa901.a9_idperiodo,
sa901.a9_modal, sa901.a9_status
FROM sa901 /*FOR SELECT PERCORRE OS DADOS RETORNADOS LOOP*/
WHERE sa901.a9_idaluno = :v_idsa1
AND sa901.a9_idcurso = :v_idsa2_sa4
AND sa901.a9_filial = '00'
AND ((sa901.a9_status IN ('RR', 'RF')) OR
(sa901.a9_status = 'NC' AND sa901.a9_modal IN('D','A'))) AND
NOT EXISTS (SELECT 1
FROM sa901 sa9012
WHERE sa9012.a9_idaluno = :v_idsa1
AND sa9012.a9_iddisc = sa901.a9_iddisc
AND sa9012.a9_idcurso = :v_idsa2_sa4
AND sa9012.a9_filial = '00'
AND (sa9012.a9_status IN ('AP', 'AD')))
ORDER BY sa901.a9_iddisc, sa901.a9_ano, sa901.a9_semestre into
:v_iddissa9, :v_idcursa9, :v_idpersa9, :v_modalsa9, :v_statussa9
do /*O SELECT ACIMA RETORNA AS DISCIPLINAS QUE SER� INCLUIDAS COMO DEPENDENCIA E ADAPTA��O*/
BEGIN
SELECT FIRST 1 SA401.A4_ID, SA401.A4_IDGRADE
FROM SA401
INNER JOIN SA501 ON (SA401.A4_FILIAL = SA501.A5_FILIAL) AND
(SA401.A4_ID = SA501.A5_IDTURMA)
WHERE SA401.A4_IDPERIODO = :V_IDPERSA9
AND SA401.A4_IDCURSO = :V_IDCURSA9
AND SA401.A4_TURNO = :V_TURNSA4
AND SA501.A5_ANO = :I_ANOSA4_N
AND SA501.A5_SEMESTRE = :I_SEMSA4_N INTO :V_IDTURDA, :v_idsa7da;
/*SELECT ACIMA RETORNA TURMA DE DEPENDENCIA E ADAPTA��O NO TURNO DO ALUNO*/
if (:v_idturda = '') then
BEGIN
SELECT FIRST 1 SA401.A4_ID, SA401.A4_IDGRADE
FROM SA401
INNER JOIN SA501 ON (SA401.A4_FILIAL = SA501.A5_FILIAL) AND
(SA401.A4_ID = SA501.A5_IDTURMA)
WHERE SA401.A4_IDPERIODO = :V_IDPERSA9
AND SA401.A4_IDCURSO = :V_IDCURSA9
AND SA501.A5_ANO = :I_ANOSA4_N
AND SA501.A5_SEMESTRE = :I_SEMSA4_N INTO :V_IDTURDA, :v_idsa7da;
END
/*SELECT ACIMA RETORNA TURMA DE DEPENDENCIA E ADAPTA��O DO ALUNO QUE EXISTIR*/
if (:v_idturda = '') then
BEGIN
v_idturda = :i_idsa4_a; /*SE FURAR NOS SELECTS ACIMA SETA OS DADOS DA TURMA ATUAL*/
v_idsa7da = :v_idsa7;
END
if ((:v_modalsa9 = 'A') and (:v_statussa9 = 'NC')) then
v_modalsa9 = 'A'; /*SE A DISCIPLINA FOR DE ADAPTA��O E N�O CURSADA MODALIDADE ADAPTA��O*/
else
v_modalsa9 = 'D'; /*SEN�O MODALIDADE DEPEND�NCIA*/
EXECUTE PROCEDURE SBB01_IU('00',:V_IDSA1,:I_ANOSA4_N,:I_SEMSA4_N, :v_iddissa9,
:v_modalsa9,:v_idturda,0,'',:v_idsa7da,'');
/*COMANDO ACIMA INCLUI A DISCIPLINA NA TB_DISCIPLINA_MATRICULA*/
END
END
EXECUTE PROCEDURE sp_conf_sba(:v_idsa1,:i_anosa4_n,:i_semsa4_n,:v_bolren,:v_modalsaa);
END
END^
SET TERM ; ^