public function selecionaPerguntas(Prova $prova){ $banco = $this->getBancoDados(); $sessionFacade = new SessionFacade($banco); /* $ppt = $prova->getNumeroPerguntas() / $prova->getQtdeTopico(); $ppt = number_format($ppt,0); if ($ppt < 1 ){ $ppt = 1; } $topicos = array(); $lista_topicos = array(); for ($i=0; $i<$prova->getQtdeTopico();$i++){ array_push($lista_topicos,$prova->getTopico($i)->getId()); } $topicos = $sessionFacade->recuperarPerguntaTopicoOrdenadoDAO($lista_topicos); for ($i=0; $i<count($topicos);$i++){ echo "<br>Tópico: ".$topicos[$i][0]->getDescricao()." / Qtde Perguntas: ".$topicos[$i][1]; $perguntas = $sessionFacade->recuperarPerguntaTopicoDAO($prova->getTopico($i), $prova->getDificuldade()); for ($j=0; $j<count($perguntas);$j++){ $prova->addPergunta($perguntas[$j]); echo "<br>Pergunta: ".$perguntas[$j]->getTitulo(); } } */ $qtde_por_vez = 1; $sem_pergunta = 1; $perguntas_inseridas = array(); $x_qtde_perguntas = $prova->getNumeroPerguntas(); $qtde_perguntas = $prova->getNumeroPerguntas(); while ($qtde_perguntas > 0 AND $sem_pergunta > 0){ $sem_pergunta = 0; for ($i=0; $i<$prova->getQtdeTopico();$i++){ #echo "<br>Tópico: ".$prova->getTopico($i)->getDescricao(); $perguntas = $sessionFacade->recuperarPerguntaTopicoDAO($prova->getTopico($i), $prova->getDificuldade(), $qtde_por_vez, $perguntas_inseridas); for ($j=0; $j<count($perguntas); $j++ ) { $perg = $perguntas[$j]; if ($qtde_perguntas>0){ $perg_aux = new ProvaPergunta(); $perg_aux->setTopico($perg->getTopico()); $perg_aux->setTipoPergunta($perg->getTipoPergunta()); $perg_aux->setTitulo($perg->getTitulo()); $perg_aux->setDificuldade($perg->getDificuldade()); $perg_aux->setFonte($perg->getFonte()); $perg_aux->setPeso( round(10 / $x_qtde_perguntas, 2)); $perg_aux->setPerguntaOrigem($perg->getId()); #echo "Qtde: ".$perg->getQtdeResposta(); for ($w=0;$w<$perg->getQtdeResposta();$w++){ $perg->getResposta($w)->setId(NULL); if (is_object($perg->getResposta($w)->getRespostaFilho())) { $perg->getResposta($w)->getRespostaFilho()->setId(NULL); } $perg_aux->addResposta($perg->getResposta($w)); } $prova->addPergunta($perg_aux); array_push($perguntas_inseridas,$perguntas[$j]->getId()); $qtde_perguntas--; $sem_pergunta++; } #echo "<br>Pergunta: ".$perguntas[0]->getTitulo(); #echo "<hr>"; } } } }
function selecionaPerguntas(Prova $prova){ if ($prova->getQtdeTopico()==0){ throw new Exception('Para criar uma prova, é precisa selecionar pelo menos 1 tópico!'); } if ($prova->getNumeroPerguntas()==0){ throw new Exception('Informe o número de perguntas!'); }else{ $prova->Xnumero_perguntas = $prova->getNumeroPerguntas(); } if (strlen($prova->getDificuldade())==0){ throw new Exception('Informe o nível de dificuldade da prova!'); }else{ $prova->Xdificuldade = $prova->getDificuldade(); } $provaDAO = new ProvaDAO(); $provaDAO->setBancoDados($this->banco); $provaDAO->selecionaPerguntas($prova); }