public function gravaDadosProvaPerguntaRespondidaDAO(ProvaRespondida $prova) { $banco = $this->getBancoDados(); $query = "SELECT tbl_prova_aluno.data_inicio FROM tbl_prova_aluno JOIN tbl_prova USING(prova) WHERE prova = ".$prova->getProva()->getId()." AND tbl_prova.liberada > tbl_prova.data_inicio AND tbl_prova_aluno.data_inicio IS NOT NULL"; $retorno = $banco->executaSQL($query); if ($banco->numRows($retorno) > 0){ throw new Exception("Prova não pode ser alterada pois a mesma já foi liberado e/ou alunos já resolveu."); } $query = " DELETE FROM tbl_prova_aluno_resposta WHERE prova_aluno_pergunta IN ( SELECT prova_aluno_pergunta FROM tbl_prova_aluno_pergunta WHERE prova = ".$prova->getProva()->getId()." AND aluno = ".$prova->getAluno()->getId()." )"; if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir APAGAR RESPOSTA DA PROVA. ($query) "); } $query = " DELETE FROM tbl_prova_aluno_pergunta WHERE prova = ".$prova->getProva()->getId()." AND aluno = ".$prova->getAluno()->getId(); if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir APAGAR RESPOSTA DA PROVA. ($query) "); } for ($i=0; $i<$prova->getQtdePerguntasRespondida();$i++){ #print "<hr>LINHA: $i<br>"; $aux_prova_pergunta = $prova->getPerguntaRespondida($i); $prova_aluno_pergunta = $aux_prova_pergunta[0]; $prova_pergunta = $aux_prova_pergunta[1]; $valor_corrigido = $aux_prova_pergunta[2]; if (strlen($valor_corrigido)==0){ $valor_corrigido = " NULL "; } $query = " INSERT INTO tbl_prova_aluno_pergunta ( prova, aluno, prova_pergunta, valor_corrigido )VALUES( ".$prova->getProva()->getId().", ".$prova->getAluno()->getId().", ".$prova_pergunta.", ".$valor_corrigido." )"; #echo nl2br($query); if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir APAGAR PERGUNTA DA PROVA. ($query) "); } $prova_aluno_pergunta = $banco->insert_id(); $respotas_as_perguntas = $prova->getRespostasPergunta($prova_pergunta); #print "Qtde Perguntas: ".count($respotas_as_perguntas)." <br>"; #print "Id Pergunta: $prova_pergunta <br>"; for ($j=0; $j<count($respotas_as_perguntas);$j++){ $aux_prova_resposta = $respotas_as_perguntas[$j]; $prova_aluno_resposta = $aux_prova_resposta[0]; $prova_pergunta = $aux_prova_resposta[1]; $prova_resposta = $aux_prova_resposta[2]; $resposta_texto = $aux_prova_resposta[3]; $resposta_correta = $aux_prova_resposta[4]; $resposta_valor = $aux_prova_resposta[5]; if (strlen($resposta_valor)==0){ $resposta_valor = " NULL "; } $query = " INSERT INTO tbl_prova_aluno_resposta ( prova_aluno_pergunta, prova_resposta, resposta_texto, resposta_correta, valor )VALUES( ".$prova_aluno_pergunta.", ".$prova_resposta.", '".$resposta_texto."', '".$resposta_correta."', ".$resposta_valor." )"; #echo "<br>".nl2br($query); if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir APAGAR PERGUNTA DA PROVA. ($query) "); } } } $query = "SELECT count(*) AS qtde_perguntas_sem_nota FROM tbl_prova_aluno JOIN tbl_prova_aluno_pergunta USING(prova) WHERE tbl_prova_aluno.prova = ".$prova->getProva()->getId()." AND tbl_prova_aluno.aluno = ".$prova->getAluno()->getId()." AND tbl_prova_aluno_pergunta.valor_corrigido IS NULL"; $retorno = $banco->executaSQL($query); if ($banco->numRows($retorno) > 0){ $linha = $banco->fetchArray($retorno); #echo "1)".nl2br($query); if ($linha["qtde_perguntas_sem_nota"] == 0){ #echo "11)".nl2br($query); $prova->setNotaLiberada(date('d/m/Y H:i')); #echo "2)".nl2br($query); } } #echo "2)".nl2br($query); }