Ejemplo n.º 1
0
 /**
  * Metodo que retorna um teste relacionado ao aluno e ao capítulo ou 
  * tópico informado. O capítulo é obtido por meio do tópico informado.
  *
  * @param Aluno $aluno O aluno alvo da busca
  * @param Model $model O capítulo relacionado a questão
  *
  * @return TesteCapitulo|bool Um objeto contendo os dados do teste 
  *                            ou FALSE caso não seja encontrado
  *
  * @throws TesteException
  */
 protected function deAlunoTopCap(Aluno $aluno, ConteudoInterno $model)
 {
     if (!$aluno->getId() || !$model->getId()) {
         throw new TesteException('O aluno ou capítulo informado é inválido');
     }
     if ($model instanceof Capitulo) {
         $fk = "pk_capitulo";
     } else {
         $fk = "pk_conteudo";
     }
     $resultset = $this->tg->selectObj($this->select()->distinct("pk_{$this->tabela}")->where(array("{$this->tabela}_pk_usuario" => $aluno->getId(), "{$this->tabela}_{$fk}" => $model->getId(), "{$this->tabela}_ano" => $this->anoLetivo)));
     if (!$resultset->rowCount()) {
         $return = false;
     } else {
         $teste = $resultset->fetch();
         $sqlQuestao = new SqlQuestao();
         $teste->setQuestoes($sqlQuestao->deTeste($teste)->fetchAll());
         $return = $teste;
     }
     return $return;
 }