
--CADASTRAR ANTES A ORIENTACAO EDUCACIONAL VIA APLICAÇÃO e atribuir às turmas
do $$
declare 
	turma_serieX record;
	codigoTurmaLE numeric;
	idOrientacaoEducacional numeric;
	discenteX record;
	idMatriculaComponente numeric;
	idMatriculaDiscenteSerie numeric;
	codigoDisciplina text;
    idSerie numeric;
    idCurriculoMedio numeric;
begin 
	
	---====INFORME OS PARÂMETROS PARA CADA SÉRIE AQUI, NÃO MEXER APÓS ESTE TRECHO
	--select 'OE211' into codigoDisciplina;
	--select 5 into idSerie; --5 para 1o, 6 para 2o. 
	--select 21 into idCurriculoMedio; --21 para 1o, 22 para 2o.
	
	select 'OE221' into codigoDisciplina;
	select 6 into idSerie; --5 para 1o, 6 para 2o. 
	select 22 into idCurriculoMedio;  --21 para 1o, 22 para 2o.
	
	
	--pegando código da disciplina cadastrada pela app
	select id_disciplina into idOrientacaoEducacional from ensino.componente_curricular where codigo=codigoDisciplina;

	--Iterando em cada turma da série em questão
	for turma_serieX in (select * from  medio.turma_serie  where ano=2019  and id_serie=idSerie and ativo=true) 
	loop
	raise notice 'Iterando para cadastrar...';
	raise notice 'turma_serie = %', turma_serieX.id_turma_serie;
	select tsa.id_turma into codigoTurmaLE from ensino.turma t inner join ensino.componente_curricular cc on t.id_disciplina=cc.id_disciplina 
		inner join medio.turma_serie_ano tsa on t.id_turma=tsa.id_turma where tsa.id_turma_serie=turma_serieX.id_turma_serie and cc.codigo=codigoDisciplina;	
		
		--Discentes matriculados da turma que está iterando
		for discenteX in  
		(select distinct id_discente from ensino.matricula_componente where id_turma in
			(select id_turma from medio.turma_serie_ano where id_turma_serie=turma_serieX.id_turma_serie and ativo=true) and id_situacao_matricula=2)
		loop
		
			select nextval('ensino.matricula_componente_seq') into idMatriculaComponente; 
		
			--Inserindo matricula em LE para cada discente
			INSERT INTO ensino.matricula_componente
				(id_situacao_matricula, id_discente, media_final, 
				numero_faltas, id_matricula_componente, codmerg, 
				id_turma, id_recuperacao, apto, 
				codmergpa, id_registro_atividade, id_registro_entrada, 
				data_cadastro, id_conceito_nota_apagar, foiretificada, 
				codmergpapos, ano, periodo, 
				id_componente_curricular, id_restricoes, tipo_integralizacao, 
				id_componente_detalhes, recuperacao, conceito_apagar, 
				mes, mes_fim, ano_fim, 
				processamento_rematricula, observacao, codmergppgeec, 
				id_usuario_consolidacao, data_consolidacao, rematricula, 
				ano_inicio, id_serie, porcentagem_frequencia, 
				consolidacao_sem_notas, dependencia, consolidado_pendente_divulgacao, 
				nota_minima, em_regime_observacao, prioritario)
			VALUES(2, discenteX.id_discente, NULL, 
					NULL, idMatriculaComponente, NULL,
				    codigoTurmaLE, NULL, NULL, 
				   NULL, NULL, null, 
				  now(), NULL, NULL, 
				 NULL, 2019, 0, 
				idOrientacaoEducacional, NULL, NULL, 
			   (select id_componente_detalhes from ENSINO.componente_curricular_detalhes cd where cd.id_componente=idOrientacaoEducacional), NULL, NULL,
			    1, NULL, NULL, 
			   NULL, NULL, NULL, 
			   NULL, NULL, NULL, 
			   2019, turma_serieX.id_serie, NULL,
			  false, NULL, NULL, 
			 NULL, false, NULL);
			
			raise notice 'cadastro matricula_componente para o discente %', discenteX.id_discente;
					
			if (select count(*) from medio.matricula_discente_serie where id_discente=discenteX.id_discente and id_turma_serie = turma_serieX.id_turma_serie) = 0
			 then
			 
			 	select nextval('hibernate_sequence') into idMatriculaDiscenteSerie;
			 
				INSERT INTO medio.matricula_discente_serie
					(id_matricula_discente_serie, id_discente, id_situacao_matricula_serie, 
						situacao_final, id_turma_serie, id_curriculo_medio, 
						dependencia, id_registro_entrada, data_cadastro, 
						num_chamada, compulsoria, id_escola, 
						media_final, frequencia_anual)
					VALUES(idMatriculaDiscenteSerie, discenteX.id_discente, 1,
				     		NULL, turma_serieX.id_turma_serie, idCurriculoMedio, 
				     		false, null, now(), 
				     		NULL, false, NULL, 
				     		NULL, NULL);
				     	raise notice 'Cadastrado                     matricula_discente_serie para o discente %', discenteX.id_discente;
		
					INSERT INTO medio.matricula_componente_serie
						(id_matricula_componente_serie, id_matricula_discente_serie, id_matricula_componente,
						 ativo, data_cadastro, id_registro_entrada, 
						 dependencia)
						VALUES((select nextval('hibernate_sequence')), idMatriculaDiscenteSerie, idMatriculaComponente, 
								true, now(), null, 
								false);
							raise notice 'Cadastrado medio.matricula_componente_serie para o discente %', discenteX.id_discente;
						
				else 
				
					select id_matricula_discente_serie into idMatriculaDiscenteSerie from medio.matricula_discente_serie 
						where id_discente=discenteX.id_discente and id_turma_serie = turma_serieX.id_turma_serie;
					
					INSERT INTO medio.matricula_componente_serie
						(id_matricula_componente_serie, id_matricula_discente_serie, id_matricula_componente,
						 ativo, data_cadastro, id_registro_entrada, 
						 dependencia)
						VALUES((select nextval('hibernate_sequence')), idMatriculaDiscenteSerie, idMatriculaComponente, 
								true, now(), null, 
								false);
							raise notice 'Cadastrado medio.matricula_componente_serie para o discente %', discenteX.id_discente;
				end if;
			
			
		end loop;
	end loop;
end;
$$ language plpgsql;





--Script para alterar o curriculo da disciplina recem cadastrada
select id_disciplina from ensino.componente_curricular where codigo='OE161';
select * from MEDIO.curriculo_medio_componente where id_componente_curricular=309

---
update MEDIO.CURRICULO_MEDIO_COMPONENTE set ID_CURRICULO_MEDIO=19 
where id_componente_curricular=(select id_disciplina from ensino.componente_curricular where codigo='OE191');
---

select * from MEDIO.CURRICULO_MEDIO



--- conferindo quantidade
select * from ensino.matricula_componente where data_cadastro > '15/02/2019' and id_registro_entrada is null;

---
delete from ensino.matricula_componente where data_cadastro > '15/02/2019'
delete from ensino.matricula_componente where data_cadastro > '15/02/2019' 
select * from medio.turma_serie_ano;
select * from medio.matricula_discente_serie where  data_cadastro >= '15/02/2019';
delete from medio.matricula_discente_serie where  data_cadastro >= '15/02/2019';
select * from medio.matricula_componente_serie where id_matricula_componente=7544 
select * from medio.matricula_componente_serie where data_cadastro >= '15/02/2019'
delete from medio.matricula_componente_serie where data_cadastro >= '15/02/2019' 
select nextval('ensino.matricula_componente_seq')

select max(id_matricula_componente) from ensino.matricula_componente

select count(*) from medio.matricula_discente_serie where id_discente=discenteX.id_discente and id_turma_serie = turma_serieX.id_turma_serie
select * from medio.matricula_discente_serie where  id_discente=508 data_cadastro >= '15/02/2019';
delete from medio.matricula_componente_serie
delete from medio.matricula_discente_serie where

select * from medio.matricula_discente_serie where id_matricula_discente_serie=14342

select * from public.discente d inner join comum.pessoa p on d.id_pessoa=p.id_pessoa where p.nome like 'AGNES PEREIRA%'

--419

select * from ensino.matricula_componente where id_discente=419
medio.matricula_componente_serie
medio.matricula_discente_serie

update ENSINO.matricula_componente set media_final=null where id_discente=487

select * from pub

select 


select * from medio.matricula_discente_serie mds inner join public.discente d on mds.id_discente=d.id_discente where d.nivel='M' and d.matricula=20183003547
select * from ensino.matricula_componente where data_cadastro >= '2019-02-18 11:20:49' order by data_cadastro desc
delete from ensino.matricula_componente where data_cadastro >= '2019-02-18 11:20:49'

select * from medio.matricula_componente_serie where data_cadastro >= '2019-02-18' order by id_matricula_componente_serie desc

delete from medio.matricula_componente_serie where id_matricula_componente_serie>14490

