public function gravaProvaCorrecaoDAO(ProvaRespondida $prova_respondida){

		$banco = $this->getBancoDados();
		$prova = $prova_respondida->getProva();

		$query = "SELECT tbl_prova_aluno.prova
					FROM tbl_prova_aluno 
					WHERE prova = ".$prova->getId()."
					AND   aluno = ".$prova->getId();
		$retorno = $banco->executaSQL($query); 
		if ($banco->numRows($retorno) == 0){
			throw new Exception("Erro ao atualizar nota da prova (SQL: $query) "); 
		}

		$query = " UPDATE tbl_prova_aluno SET
							nota          = ".$prova_respondida->getNota().",
							nota_liberada = ".$prova_respondida->getNotaLiberada()."
					WHERE prova = ".$prova->getId()."
					AND   aluno = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao atualizar nota PROVA RESPONDIDA. (SQL: $query) "); 
		}

		if (strlen($prova_respondida->getNotaLiberada())>0){
			if (getRealIpAddr() != '127.0.0.1' or 1==1){
				$mail             = new PHPMailer();

				$body             = $mail->getFile('emails/prova_corrigida_aluno.html');
				$variaveis = array("{ALUNO}","{PROFESSOR}","{NOME_INSTITUICAO}","{PROVA_TITULO}",'{PROVA_INICIO}','{PROVA_TERMINO}','{PROVA_NOTA}', "{LOGIN}", "{SENHA}");
				$valores   = array(	$nome_aluno, 
									$prova->getProfessor()->getNome(),
									$prova->getDisciplina()->getInstituicao()->getNome(),
									$prova->getTitulo(),
									$prova->getDataInicio(),
									$prova->getDataTermino(),
									$prova_respondida->getNota(),
									$ra_aluno, 
									$senha_aluno);
				$body      = str_replace($variaveis, $valores, $body);
				$mail->From       = "*****@*****.**";
				$mail->FromName   = "TesteNet";
				$mail->Subject    = "TesteNet - Nova Prova!";
				$mail->AltBody    = "To view the message, please use an HTML compatible email viewer!";
				$mail->MsgHTML($body);
				$mail->AddAddress($email_aluno, $nome_aluno);
				$mail->AddAddress('*****@*****.**', 'Suporte TesteNet');
				$mail->Send();
			}
		}
	}
	public function recuperarProvaRespondidaDAO($id_prova,$id_aluno){

		$banco				= $this->getBancoDados();
		$sessionFacade		= new SessionFacade($banco);
		$obj_prova			= $sessionFacade->recuperarProva($id_prova);
		$prova_respondida	= NULL;

		$query ="SELECT DATE_FORMAT(tbl_prova_aluno.data_inicio , '%d/%m/%Y %H:%i')  AS data_inicio,
						DATE_FORMAT(tbl_prova_aluno.data_termino , '%d/%m/%Y %H:%i') AS data_termino,
						tbl_prova_aluno.qtde_perguntas                               AS qtde_perguntas,
						tbl_prova_aluno.qtde_acertos                                 AS qtde_acertos,
						tbl_prova_aluno.nota                                         AS nota,
						tbl_prova_aluno.professor                                    AS professor,
						tbl_prova_aluno.nota_liberada                                AS nota_liberada
				FROM tbl_prova_aluno
				WHERE tbl_prova_aluno.prova = $id_prova 
				AND   tbl_prova_aluno.aluno = $id_aluno";

		$retorno = $banco->executaSQL($query); 
		if($retorno == NULL) {
			throw new Exception("Erro ao recuperar Prova do Aluno $id_aluno (SQL: $query)"); 
		}

		if ($banco->numRows($retorno) == 0){
			throw new Exception("Nenhuma prova encontrada.",0);
		}

		while($linha = $banco->fetchArray($retorno)) {

			$obj_professor	= $sessionFacade->recuperarProfessor($linha["professor"]);
			$obj_aluno		= $sessionFacade->recuperarAluno($id_aluno);

			$prova_respondida = new ProvaRespondida(); 
			$prova_respondida->setProva($obj_prova);
			$prova_respondida->setAluno($obj_aluno);
			$prova_respondida->setProfessor($obj_professor);
			$prova_respondida->setDataInicio($linha["data_inicio"]);
			$prova_respondida->setDataTermino($linha["data_termino"]);
			$prova_respondida->setQtdePerguntas($linha["qtde_perguntas"]);
			$prova_respondida->setQtdeAcertos($linha["qtde_acertos"]);
			$prova_respondida->setNota($linha["nota"]);
			$prova_respondida->setNotaLiberada($linha["nota_liberada"]);

			$query="SELECT	tbl_prova_aluno_pergunta.prova_aluno_pergunta AS prova_aluno_pergunta,
							tbl_prova_aluno_pergunta.prova_pergunta       AS prova_pergunta,
							tbl_prova_aluno_pergunta.valor_corrigido      AS valor_corrigido,
							tbl_prova_pergunta.tipo_pergunta              AS tipo_pergunta
					FROM tbl_prova_aluno_pergunta
					JOIN tbl_prova_pergunta USING(prova_pergunta)
					WHERE tbl_prova_aluno_pergunta.prova = ".$prova_respondida->getProva()->getId()."
					AND   tbl_prova_aluno_pergunta.aluno = ".$prova_respondida->getAluno()->getId();
			#echo nl2br($query);
			#echo "<hr>"; 
			$retorno_pergunta = $banco->executaSQL($query); 
			if($retorno_pergunta == NULL) {
				throw new Exception("Erro ao recuperar prova corrigida (SQL: $query)"); 
			}
			while($linha_pergunta = $banco->fetchArray($retorno_pergunta)) {

				$prova_respondida->addPerguntaRespondida(	$linha_pergunta["prova_aluno_pergunta"],
															$linha_pergunta["prova_pergunta"],
															$linha_pergunta["valor_corrigido"] );

				$query="SELECT	tbl_prova_aluno_resposta.prova_aluno_resposta AS prova_aluno_resposta,
								tbl_prova_aluno_resposta.prova_aluno_pergunta AS prova_aluno_pergunta,
								tbl_prova_aluno_resposta.prova_resposta       AS prova_resposta,
								tbl_prova_aluno_resposta.resposta_texto       AS resposta_texto,
								tbl_prova_aluno_pergunta.prova_pergunta       AS prova_pergunta,
								tbl_prova_aluno_resposta.resposta_correta     AS resposta_correta,
								tbl_prova_aluno_resposta.valor                AS valor
						FROM tbl_prova_aluno_resposta
						JOIN tbl_prova_aluno_pergunta ON tbl_prova_aluno_pergunta.prova_aluno_pergunta = tbl_prova_aluno_resposta.prova_aluno_pergunta 
						WHERE tbl_prova_aluno_resposta.prova_aluno_pergunta = ".$linha_pergunta["prova_aluno_pergunta"];
				#echo nl2br($query);
				#echo "<hr>";
				$retorno_item = $banco->executaSQL($query); 
				if($retorno_item == NULL) {
					throw new Exception("Erro ao recuperar prova corrigida (SQL: $query)"); 
				}
				while($linha_item = $banco->fetchArray($retorno_item)) {

					$prova_respondida->addResposta(	$linha_item["prova_aluno_resposta"],
													/*$linha_item["prova_aluno_pergunta"],*/
													$linha_item["prova_pergunta"],
													$linha_item["prova_resposta"],
													$linha_item["resposta_texto"],
													$linha_item["resposta_correta"],
													$linha_item["valor"] );
				}
			}
		}
		return $prova_respondida; 
	}
Example #3
0
	function gravaProvaCorrigir(ProvaRespondida $prova){
#var_dump($prova);
#echo "Nota::::::::::::::::(".$prova->getNota()."):::";
		if (strlen($prova->getNota())==0) {
			$prova->Xnota = ' NULL ';
		}else{
			$prova->Xnota = $prova->getNota();
		}

		if (strlen($prova->getNotaLiberada())==0){
			$prova->Xnota_liberada = ' NULL ';
		}else{
			$prova->Xnota_liberada = ConverteData($prova->getNotaLiberada(),"'");
		}

		$provaRespondidaDAO = new ProvaRespondidaDAO(); 
		$provaRespondidaDAO->setBancoDados($this->banco); 
		$provaRespondidaDAO->gravaProvaCorrigirDAO($prova); 
	}