Script para atualizar novos campos do histórico
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.