Exemple #1
0
	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);
		}

	}