Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Tenho um sistema para escolas, nele tenho uma classe que verifica se tem modelos de relatórios para 1 aluno, depois faz uma série de ações.
É possível fazer isso direto no banco com uma procedure?
<?php
//################################################################################################################
//VERIFICA SE TEM ALGUM MODELO DISPONIVEL PARA ESSE CICLO E CRIA PARA O ALUNO
//CASO O RELATORIO JA EXISTA ENTAO ATUALIZA AS MATERIAS E COMPETENCIAS
//################################################################################################################
function Cria_Relatorios($aluno,$turma){
$sql = "SELECT modelos.* FROM modelos INNER JOIN ciclos ON ciclos.Cic_id=modelos.Mod_ciclo INNER JOIN turmas ON turmas.Tur_ciclo=ciclos.Cic_id WHERE turmas.Tur_id=". $turma;
$dados = mysql_query($sql);
if ( mysql_num_rows($dados) > 0 ) {
while($modelo = mysql_fetch_array($dados)){
//### consulta se já existe algum relatório para esse modelo e aluno
$sql = "SELECT relatorios.* FROM relatorios WHERE Rel_modelo=". $modelo["Mod_id"] ." AND Rel_aluno=". $aluno;
$dados2 = mysql_query($sql);
if ( mysql_num_rows($dados2) == 0 ){
//Nao tendo nenhum, entao cria um novo
$x = mysql_query("INSERT INTO relatorios (Rel_modelo,Rel_aluno,Rel_ciclo,Rel_turma,Rel_tipo,Rel_data) VALUES (". $modelo["Mod_id"] .",". $aluno .",". $modelo["Mod_ciclo"] .",". $turma .",". $modelo["Mod_tipo"] .",now());");
if($x){
$relatorio_novo = mysql_insert_id();
//############################### COPIA AS MATERIAS ##########################
//NÃO CÓPIA AS MÁTERIAS OPCIONAIS
$sql = "SELECT modelos_materias.* FROM modelos_materias LEFT JOIN materias ON materias.Mat_id=modelos_materias.Mat_materia WHERE modelos_materias.Mat_modelo=". $modelo["Mod_id"] ." AND materias.Mat_opcional='0'";
$dados3 = mysql_query($sql);
if ( mysql_num_rows($dados3) > 0 ) {
while($materia = mysql_fetch_array($dados3)){
$y = mysql_query("INSERT INTO relatorios_materias (Mat_relatorio,Mat_modelo,Mat_materia,Mat_professores) VALUES (". $relatorio_novo .",". $materia["Mat_id"] .",". $materia["Mat_materia"] .",'". $materia["Mat_professores"] ."');");
if($y){
$materia_novo = mysql_insert_id();
//############################### COPIA OS DETALHES ###################################
$sql = "SELECT * FROM modelos_materias_detalhes WHERE Det_materia=". $materia["Mat_id"];
$dados4 = mysql_query($sql);
if ( mysql_num_rows($dados4) > 0 ) {
while($detalhes = mysql_fetch_array($dados4)){
$y = mysql_query("INSERT INTO relatorios_materias_detalhes (Det_materia,Det_detalhe,Det_semestre,Det_nome,Det_ordem) VALUES (". $materia_novo .",". $detalhes["Det_id"] .",". $detalhes["Det_semestre"] .",'". $detalhes["Det_nome"] ."',". $detalhes["Det_ordem"] .");");
if($y){
//
} else {
echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0101</div>";
}
}//while($materia = mysql_fetch_array($dados3)){
//} else {
// echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0102</div>";
}//if ( mysql_num_rows($dados4) > 0 ) {
} else {
echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0103</div>";
}//if($y){
}//while($materia = mysql_fetch_array($dados3)){
}//if ( mysql_num_rows($dados3) > 0 ) {
} else {
echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0104</div>";
}//if($x){
} else {
//CASO JA TENHA RELATORIO, VERIFICA E ATUALIZA AS MATERIAS
while($relatorios = mysql_fetch_array($dados2)){
$relatorio_atual = $relatorios["Rel_id"];
//############################### COPIA AS MATERIAS ##########################
//NÃO CÓPIA AS MÁTERIAS OPCIONAIS
$sql = "SELECT modelos_materias.* FROM modelos_materias LEFT JOIN materias ON materias.Mat_id=modelos_materias.Mat_materia WHERE modelos_materias.Mat_modelo=". $modelo["Mod_id"] ." AND materias.Mat_opcional='0'";
$dados3 = mysql_query($sql);
if ( mysql_num_rows($dados3) > 0 ) {
while($materia = mysql_fetch_array($dados3)){
//VERIFICA SE A MATERIA JA EXISTE
$sql = "SELECT * FROM relatorios_materias WHERE Mat_relatorio=". $relatorio_atual ." AND Mat_modelo=". $materia["Mat_id"];
$dados5 = mysql_query($sql);
if ( mysql_num_rows($dados5) == 0 ){
//Caso a materia ainda nao exista entao copia para o relatorio
$y = mysql_query("INSERT INTO relatorios_materias (Mat_relatorio,Mat_modelo,Mat_materia,Mat_professores) VALUES (". $relatorio_atual .",". $materia["Mat_id"] .",". $materia["Mat_materia"] .",'". $materia["Mat_professores"] ."');");
if($y){
$materia_novo = mysql_insert_id();
//############################### COPIA OS DETALHES ###################################
$sql = "SELECT * FROM modelos_materias_detalhes WHERE Det_materia=". $materia["Mat_id"];
$dados4 = mysql_query($sql);
if ( mysql_num_rows($dados4) > 0 ) {
while($detalhes = mysql_fetch_array($dados4)){
$y = mysql_query("INSERT INTO relatorios_materias_detalhes (Det_materia,Det_detalhe,Det_semestre,Det_nome,Det_ordem) VALUES (". $materia_novo .",". $detalhes["Det_id"] .",". $detalhes["Det_semestre"] .",'". $detalhes["Det_nome"] ."',". $detalhes["Det_ordem"] .");");
if($y){
//
} else {
echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0111</div>";
}
}//while($materia = mysql_fetch_array($dados3)){
//} else {
// echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0112</div>";
}//if ( mysql_num_rows($dados4) > 0 ) {
//############################### COPIA OS DETALHES ##################################
} else {
echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0113</div>";
}//if($y){
} else {
//caso a materia ja exista entao atualiza as competencias
while($materia_atual = mysql_fetch_array($dados5)){
$sql = "SELECT * FROM modelos_materias_detalhes WHERE Det_materia=". $materia["Mat_id"];
$dados4 = mysql_query($sql);
if ( mysql_num_rows($dados4) > 0 ) {
while($detalhes = mysql_fetch_array($dados4)){
//verifica se a competencia ja existe
$sql = "SELECT * FROM relatorios_materias_detalhes WHERE Det_materia=". $materia_atual["Mat_id"] ." AND Det_detalhe=". $detalhes["Det_id"];
$dados6 = mysql_query($sql);
if ( mysql_num_rows($dados6) == 0 ){
//############################### COPIA OS DETALHES ###################################
$y = mysql_query("INSERT INTO relatorios_materias_detalhes (Det_materia,Det_detalhe,Det_semestre,Det_nome,Det_ordem) VALUES (". $materia_atual["Mat_id"] .",". $detalhes["Det_id"] .",". $detalhes["Det_semestre"] .",'". $detalhes["Det_nome"] ."',". $detalhes["Det_ordem"] .");");
if($y){
//
} else {
echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0121</div>";
}
//############################### COPIA OS DETALHES ##################################
} //if ( mysql_num_rows($dados6) > 0 ) {
}//while($materia = mysql_fetch_array($dados3)){
//} else {
// echo ---
}//if ( mysql_num_rows($dados4) > 0 ) {
}//while($materia_atual = mysql_fetch_array($dados5)){
}//if ( mysql_num_rows($dados5) == 0 ){
}//while($materia = mysql_fetch_array($dados3)){
}//if ( mysql_num_rows($dados3) > 0 ) {
}//while($relatorios = mysql_fetch_array($dados2)){
}//if ( mysql_num_rows($dados2) == 0 ){
}//while($modelo = mysql_fetch_array($dados)){
} else {
echo "<div id='atencao'>Erro<br>Houve um erro na geração do relatório. Informe o suporte para analisar. COD: 0115</div>";
}//if ( mysql_num_rows($dados) > 0 ) {
}//function Cria_Relatorios(aluno,turma){
//################################################################################################################
//################################################################################################################
?>
Carregando comentários...