private static function showForm($action) { // Postando? if (count($_POST) > 0) { /* @var $inscricao Inscricao */ $inscricao = Inscricoes::getInstance()->getById(get_query_var('avaliacao') / 13); /* @var $evento Evento */ $questionario = $inscricao->evento()->getQuestionarioAvaliacao(); $perguntas = $questionario->getPerguntas(); $jaRespondeu = $inscricao->hasAvaliacaoResposta(1); $mensagem = null; foreach ($perguntas as $pergunta) { $resp = trim($_POST['input_' . $pergunta->id]); // var_dump($resp); if ($pergunta->obrigatoria && $resp == '') { setFlashError("Por favor, responda as perguntas obrigatórias (marcadas com *)"); break; } if ($resp != '') { $resposta = Respostas::getInstance()->createResposta($pergunta, $inscricao, $resp); $mensagem .= $pergunta->titulo . ': ' . $resp . '<br>'; } } if (!hasFlashError()) { setFlash("sucesso"); // Enviar email com respostas // $mensagem="Respostas:<br><br>".$mensagem; // $inscricao->evento()->organizador()->enviarEmail( // $inscricao->evento()->organizador()->email, // "Resposta - ".$questionario->titulo." - ".$inscricao->evento()->titulo." - ". $inscricao->pessoa()->nome, // $mensagem // ); // Creditar o gamification if (TGO_EVENTO_GAMIFICATION === true && !$jaRespondeu) { Gamification::getInstance()->broadcast('event_feedback', $inscricao->id_pessoa, $inscricao); } } } else { // Obter inscrição $inscricao = Inscricoes::getInstance()->getById(get_query_var('avaliacao') / 13); if ($inscricao == null) { die("Inscrição não localizada"); } // Validar inscrição if ($inscricao->confirmado != '1') { die("Inscrição não confirmada"); } } return 'avaliacao.php'; }
public function createResposta(Pergunta $pergunta, Inscricao $inscricao, $resp) { // Certificar primeiro $resposta = Respostas::getInstance()->getByPerguntaInscricao($pergunta->id, $inscricao->id); $inserir = $resposta == null; // Criar if ($inserir) { $resposta = new Resposta(); } $resposta->id_questionario = $pergunta->id_questionario; $resposta->id_questionario_pergunta = $pergunta->id; $resposta->id_pessoa = $inscricao->id_pessoa; $resposta->id_inscricao = $inscricao->id; $resposta->resposta = $resp; if ($inserir) { $resposta = $this->insert($resposta); } else { $resposta = $this->save($resposta->id, $resposta); } return $resposta; }
/** Retorna a média das avaliações, da pergunta informada */ public function getAvaliacaoMediaPergunta($id_pergunta) { return Respostas::getInstance()->getMediaPerguntaEvento($this->id, $id_pergunta); }
/** * Diz se esta inscrição já deu alguma avaliação */ public function hasAvaliacao() { return Respostas::getInstance()->hasByInscricao($this->id); }