Exemple #1
0
	public function distruiProvaAluno(Prova $prova){

		$banco			= $this->getBancoDados(); 
		$sessionFacade	= new SessionFacade($banco); 

		$query = " DELETE FROM tbl_prova_aluno_email
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}
		
		$query = " DELETE FROM tbl_prova_aluno_resposta
					WHERE prova_aluno_pergunta IN (
							SELECT prova_aluno_pergunta
							FROM tbl_prova_aluno_pergunta
							WHERE tbl_prova_aluno_pergunta.prova = ".$prova->getId()."
					)";
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}

		$query = " DELETE FROM tbl_prova_aluno_pergunta
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) "); 
		}

		$query = " DELETE FROM tbl_prova_aluno
					WHERE prova = ".$prova->getId();
		if(!$banco->updateSQL($query)) {
			throw new Exception("Erro ao excluir PROVA. ($query) ".$banco->mysql_error()); 
		}

		/* Apaga se a prova já foi gravado uma vez (para nao duplicar) */
		$sql = "DELETE FROM tbl_prova_aluno WHERE prova = ".$prova->getId(); 
		$retorno = $banco->executaSQL($sql);

		$sql = "INSERT INTO tbl_prova_aluno (prova,aluno) 
				SELECT prova, aluno 
				FROM tbl_prova 
				JOIN tbl_disciplina_aluno USING(disciplina) 
				WHERE tbl_prova.prova = ".$prova->getId(); 
		$retorno = $banco->executaSQL($sql);
		if($retorno == NULL) {
			throw new Exception("Erro em query de gerar prova / aluno (SQL: $sql)"); 
		}
		$query="SELECT  tbl_aluno.aluno,
						tbl_aluno.nome,
						tbl_aluno.email,
						tbl_aluno.ra,
						tbl_aluno.senha
				FROM   tbl_prova_aluno
				JOIN   tbl_aluno USING(aluno)
				WHERE  tbl_prova_aluno.prova = ".$prova->getId();
		$retorno = $banco->executaSQL($query); 
		if($retorno != NULL) {

			if ($banco->numRows($retorno) == 0){
				throw new Exception("Não consta nenhum aluno para esta prova. Verifique o cadastro dos alunos e se existem alunos cadastrados para este curso/disciplina.",0);
			}

			while($linha = $banco->fetchArray($retorno)) { 
				$nome_aluno  = $linha["nome"];
				$email_aluno = $linha["email"];
				$ra_aluno    = $linha["ra"];
				$senha_aluno = $linha["senha"];

				if (getRealIpAddr() != '127.0.0.1' AND 1==2){
					$mail             = new PHPMailer();

					$body             = $mail->getFile('emails/prova_aluno.html');

					$variaveis = array("{ALUNO}","{PROFESSOR}","{PROVA_TITULO}",'{PROVA_INICIO}','{PROVA_TERMINO}', "{LOGIN}", "{SENHA}","{KEY}","{P}","{A}");
					$valores   = array(	$nome_aluno, 
										$prova->getProfessor()->getNome(),
										$prova->getTitulo(),
										$prova->getDataInicio(),
										$prova->getDataTermino(),
										$email_aluno, 
										$senha_aluno,
										md5($linha['aluno'].$linha['email']),
										'',
										$linha['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->AddBCC('*****@*****.**', 'Suporte TesteNet');
					$mail->Send();
				}
			}
		}
	}
	function gravarProva(Prova $prova){

		if (strlen($prova->getTitulo())==0){
			throw new Exception('Informe o título da prova!');
		}else{
			$prova->Xtitulo = "'".$prova->getTitulo()."'";
		}

		if (!is_object($prova->getDisciplina())){
			throw new Exception('A disciplina é obrigatória');
		}else{
			$prova->Xdisciplina = $prova->getDisciplina()->getId();
		}

		if (!is_object($prova->getProfessor())){
			throw new Exception('Selecione o professor');
		}else{
			$prova->Xprofessor = $prova->getProfessor()->getId();
		}

		if (strlen($prova->getNumeroPerguntas())==0 or $prova->getNumeroPerguntas() == 0){
			#$prova->Xnumero_perguntas = " NULL ";
			throw new Exception('Informe a quantidade de perguntas para a aprova!');
		}else{
			$prova->Xnumero_perguntas = $prova->getNumeroPerguntas();
		}

		if (strlen($prova->getData())==0){
			throw new Exception('Informe a data da prova!');
		}else{
			$prova->Xdata = ConverteData($prova->getData(),"'");
		}

		if (strlen($prova->getDataInicio())==0){
			throw new Exception('Informe a data de início da prova!');
		}else{
			$prova->Xdata_inicio = ConverteData($prova->getDataInicio(),"'");
		}

		if (strlen($prova->getDataTermino())==0){
			throw new Exception('Informe a data de término da prova!');
		}else{
			$prova->Xdata_termino = ConverteData($prova->getDataTermino(),"'");
		}

		if (strlen($prova->getDificuldade())==0){
			$prova->Xdificuldade = " NULL ";
		}else{
			$prova->Xdificuldade = $prova->getDificuldade();
		}

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

		$provaDAO = new ProvaDAO(); 
		$provaDAO->setBancoDados($this->banco); 
		$provaDAO->gravaDadosProva($prova); 
	}