Segue abaixo o script para os bancos de dados MSSQL e Oracle, com o intuito de popular os novos campos do histórico, e todos os novos campos referentes a minutos de falta.
Quando no critério de avaliação da disciplina está configurado que frequência é por frequência diária, esse deverá levar em consideração a soma dos minutos do cronograma (separando teórico e prático) diminuindo os minutos registrados de falta no histórico (respectivamente teórico e prático).
Se frequência não for por frequência diária, o campo “HIS_MINFAL_TEO, HIS_MINFAL_PRA, HIS_MINFAL_COMP_TEO, HIS_MINFAL_COMP_PRA” da “TB_HISTORICO” não será populado.

Atenção!

  • TODAS as Instituições que foram utilizar a carga hora relógio, obrigatoriamente terão que executar os script para atualizar novos campos do histórico manualmente.
  • Aconselhamos realizar a execução do script fora do horário de “pico” da Instituição, ou de preferência que ninguém esteja utilizando o sistema, pois devido a grande quantidade de dados manipulados, a execução do script pode demorar algumas horas ou causar lentidão/travamento do sistema.
  • Banco de dados MSSQL
sript_historico_sqlServer.sql
UPDATE TB_HISTORICO SET 
​
HIS_MINFAL_TEO = (SELECT SUM(CAU_MINUTOS) FROM TB_MESTRE_DISCIPLINA
INNER JOIN TB_TURMA_DISCIP ON TDI_TURDISID = MDI_TURDISID
INNER JOIN TB_TURMA ON TUR_ID = TDI_TURID
INNER JOIN TB_REGISTRO_FALTAS ON RFA_MDIID = MDI_ID
INNER JOIN TB_CRONOGRAMA_AULA ON CAU_ID = RFA_CAUID
INNER JOIN TB_CRONOGRAMA_AULA_DATA ON CAD_ID = CAU_CADID
WHERE MDI_ID = HIS_MDIID
AND CAU_TIPAUL = 'TEORICA'
AND (SELECT COUNT(*) FROM
dbo.FUNC_GET_PERIODOS(tdi_turdisid,
HIS_TNPID, 1, CAD_DATA, CAD_DATA, 0)) > 0),
​
HIS_MINFAL_PRA = (SELECT SUM(CAU_MINUTOS) FROM TB_MESTRE_DISCIPLINA
INNER JOIN TB_TURMA_DISCIP ON TDI_TURDISID = MDI_TURDISID
INNER JOIN TB_TURMA ON TUR_ID = TDI_TURID
INNER JOIN TB_REGISTRO_FALTAS ON RFA_MDIID = MDI_ID
INNER JOIN TB_CRONOGRAMA_AULA ON CAU_ID = RFA_CAUID
INNER JOIN TB_CRONOGRAMA_AULA_DATA ON CAD_ID = CAU_CADID
WHERE MDI_ID = HIS_MDIID
AND CAU_TIPAUL = 'PRATICA'
AND (SELECT COUNT(*) FROM
dbo.FUNC_GET_PERIODOS(tdi_turdisid,
HIS_TNPID, 1, CAD_DATA, CAD_DATA, 0)) > 0),
​
HIS_MINFAL_COMP_TEO = (SELECT SUM(CAU_MINUTOS) FROM TB_MESTRE_DISCIPLINA
INNER JOIN TB_TURMA_DISCIP ON TDI_TURDISID = MDI_TURDISID
INNER JOIN TB_TURMA ON TUR_ID = TDI_TURID
INNER JOIN TB_REGISTRO_FALTAS ON RFA_MDIID = MDI_ID
INNER JOIN TB_CRONOGRAMA_AULA ON CAU_ID = RFA_CAUID
INNER JOIN TB_CRONOGRAMA_AULA_DATA ON CAD_ID = CAU_CADID
WHERE MDI_ID = HIS_MDIID
AND CAU_TIPAUL = 'TEORICA'
AND RFA_FALABO = 1
AND (SELECT COUNT(*) FROM
dbo.FUNC_GET_PERIODOS(tdi_turdisid,
HIS_TNPID, 1, CAD_DATA, CAD_DATA, 0)) > 0),
​
HIS_MINFAL_COMP_PRA = (SELECT SUM(CAU_MINUTOS) FROM TB_MESTRE_DISCIPLINA
INNER JOIN TB_TURMA_DISCIP ON TDI_TURDISID = MDI_TURDISID
INNER JOIN TB_TURMA ON TUR_ID = TDI_TURID
INNER JOIN TB_REGISTRO_FALTAS ON RFA_MDIID = MDI_ID
INNER JOIN TB_CRONOGRAMA_AULA ON CAU_ID = RFA_CAUID
INNER JOIN TB_CRONOGRAMA_AULA_DATA ON CAD_ID = CAU_CADID
WHERE MDI_ID = HIS_MDIID
AND CAU_TIPAUL = 'PRATICA'
AND RFA_FALABO = 1
AND (SELECT COUNT(*) FROM
dbo.FUNC_GET_PERIODOS(tdi_turdisid,
HIS_TNPID, 1, CAD_DATA, CAD_DATA, 0)) > 0)WHERE HIS_ID IN (SELECT his_id FROM tb_historico
	INNER JOIN TB_PADDIS_TIPNOT ON TNP_ID = HIS_TNPID
		INNER JOIN TB_PADRONIZACAO_DIS ON PDI_ID = TNP_PDIID
WHERE HIS_FALTA IS NOT NULL AND HIS_FALTA > 0 
AND PDI_FORDIGFRE = 'FALDATHOR'
AND HIS_MDIID IN 
(SELECT RFA_MDIID FROM TB_REGISTRO_FALTAS))


  • Banco de dados Oracle
sript_historico_oracle.sql
UPDATE TB_HISTORICO SET 
​
HIS_MINFAL_TEO = (SELECT SUM(CAU_MINUTOS) FROM TB_MESTRE_DISCIPLINA
INNER JOIN TB_TURMA_DISCIP ON TDI_TURDISID = MDI_TURDISID
INNER JOIN TB_TURMA ON TUR_ID = TDI_TURID
INNER JOIN TB_REGISTRO_FALTAS ON RFA_MDIID = MDI_ID
INNER JOIN TB_CRONOGRAMA_AULA ON CAU_ID = RFA_CAUID
INNER JOIN TB_CRONOGRAMA_AULA_DATA ON CAD_ID = CAU_CADID
WHERE MDI_ID = HIS_MDIID
AND CAU_TIPAUL = 'TEORICA'
AND (SELECT COUNT(*) FROM TABLE(FUNC_GET_PERIODOS(tdi_turdisid, HIS_TNPID, 1, CAD_DATA, CAD_DATA, 0))) > 0),
​
HIS_MINFAL_PRA = (SELECT SUM(CAU_MINUTOS) FROM TB_MESTRE_DISCIPLINA
INNER JOIN TB_TURMA_DISCIP ON TDI_TURDISID = MDI_TURDISID
INNER JOIN TB_TURMA ON TUR_ID = TDI_TURID
INNER JOIN TB_REGISTRO_FALTAS ON RFA_MDIID = MDI_ID
INNER JOIN TB_CRONOGRAMA_AULA ON CAU_ID = RFA_CAUID
INNER JOIN TB_CRONOGRAMA_AULA_DATA ON CAD_ID = CAU_CADID
WHERE MDI_ID = HIS_MDIID
AND CAU_TIPAUL = 'PRATICA'
AND (SELECT COUNT(*) FROM TABLE(FUNC_GET_PERIODOS(tdi_turdisid, HIS_TNPID, 1, CAD_DATA, CAD_DATA, 0))) > 0),
​
HIS_MINFAL_COMP_TEO = (SELECT SUM(CAU_MINUTOS) FROM TB_MESTRE_DISCIPLINA
INNER JOIN TB_TURMA_DISCIP ON TDI_TURDISID = MDI_TURDISID
INNER JOIN TB_TURMA ON TUR_ID = TDI_TURID
INNER JOIN TB_REGISTRO_FALTAS ON RFA_MDIID = MDI_ID
INNER JOIN TB_CRONOGRAMA_AULA ON CAU_ID = RFA_CAUID
INNER JOIN TB_CRONOGRAMA_AULA_DATA ON CAD_ID = CAU_CADID
WHERE MDI_ID = HIS_MDIID
AND CAU_TIPAUL = 'TEORICA'
AND RFA_FALABO = 1
AND (SELECT COUNT(*) FROM TABLE(FUNC_GET_PERIODOS(tdi_turdisid, HIS_TNPID, 1, CAD_DATA, CAD_DATA, 0))) > 0),
​
HIS_MINFAL_COMP_PRA = (SELECT SUM(CAU_MINUTOS) FROM TB_MESTRE_DISCIPLINA
INNER JOIN TB_TURMA_DISCIP ON TDI_TURDISID = MDI_TURDISID
INNER JOIN TB_TURMA ON TUR_ID = TDI_TURID
INNER JOIN TB_REGISTRO_FALTAS ON RFA_MDIID = MDI_ID
INNER JOIN TB_CRONOGRAMA_AULA ON CAU_ID = RFA_CAUID
INNER JOIN TB_CRONOGRAMA_AULA_DATA ON CAD_ID = CAU_CADID
WHERE MDI_ID = HIS_MDIID
AND CAU_TIPAUL = 'PRATICA'
AND RFA_FALABO = 1
AND (SELECT COUNT(*) FROM TABLE(FUNC_GET_PERIODOS(tdi_turdisid,HIS_TNPID, 1, CAD_DATA, CAD_DATA, 0))) > 0)WHERE HIS_ID IN (SELECT his_id FROM tb_historico
	INNER JOIN TB_PADDIS_TIPNOT ON TNP_ID = HIS_TNPID
		INNER JOIN TB_PADRONIZACAO_DIS ON PDI_ID = TNP_PDIID
WHERE HIS_FALTA IS NOT NULL AND HIS_FALTA > 0 
AND PDI_FORDIGFRE = 'FALDATHOR'
AND HIS_MDIID IN 
(SELECT RFA_MDIID FROM TB_REGISTRO_FALTAS));

Se você preferir retire suas dúvidas com o nosso suporte, clique aqui e abra um chamado para atendimento. :-)


Voltar

  • (edição externa)