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); }