public function gravaDadosProvaPergunta(Prova $prova){ $banco = $this->getBancoDados(); $query = " DELETE FROM tbl_prova_resposta WHERE prova_pergunta IN (SELECT prova_pergunta FROM tbl_prova_pergunta WHERE prova = ".$prova->getId()." AND tbl_prova_pergunta.prova_pergunta NOT IN (".$prova->perguntasNaoExcluidas.") )"; #echo nl2br($query); if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir APAGAR RESPOSTA DA PROVA. ($query) "); } $query = " DELETE FROM tbl_prova_pergunta_imagem WHERE prova_pergunta IN (SELECT prova_pergunta FROM tbl_prova_pergunta WHERE prova = ".$prova->getId()." AND tbl_prova_pergunta.prova_pergunta NOT IN (".$prova->perguntasNaoExcluidas.") )"; if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir APAGAR IMAGEM DA PROVA. ($query) "); } $query = " DELETE FROM tbl_prova_pergunta WHERE prova = ".$prova->getId(). " AND prova_pergunta NOT IN (".$prova->perguntasNaoExcluidas.") "; if(!$banco->updateSQL($query)) { throw new Exception("Erro ao atualizar / inserir APAGAR PERGUNTA DA PROVA. ($query) "); } $sessionFacade = new SessionFacade($banco); for ($i=0; $i<$prova->getQtdePerguntas();$i++){ /* PERGUNTA */ //$prova->getPergunta($i)->setId(NULL); $prova->getPergunta($i)->setProvaId($prova->getId()); $obj_perg = $sessionFacade->gravarProvaPergunta($prova->getPergunta($i)); } $query = " SELECT SUM(peso) AS soma FROM tbl_prova_pergunta WHERE prova = ".$prova->getId(); $retorno = $banco->executaSQL($query); if($retorno != NULL) { $linha = $banco->fetchArray($retorno); if ($linha["soma"] > 10 ){ throw new Exception("Soma dos pesos das peguntas não pode ser superior a 10.",0); } }else{ throw new Exception("Erro ao verificar somatória de valores de perguntas.",0); } }
function gravaDadosProvaPerguntas(Prova $prova){ if ($prova->getQtdePerguntas()==0){ throw new Exception('Nenhuma pergunta selecionada'); } $provaDAO = new ProvaDAO(); $provaDAO->setBancoDados($this->banco); $provaDAO->gravaDadosProvaPergunta($prova); }