public function deleteQuestion($questionRow) { DbTable_Question::getInstance()->getAdapter()->beginTransaction(); try { // verifica se ha respostas para a questao $objIsAnswered = $this->dbTable_Question->isAnswered($questionRow->getId()); if ($objIsAnswered) { return array('status' => false, 'messageError' => 'Há respostas para esta questão.'); } // verifica se ha alternativas /* $query = DbTable_Alternative::getInstance()->select() ->from( array('a' => 'Alternative'), array('Question' => 'a.QuestionId') ) ->where('a.QuestionId = ?', $questionRow->getId()); $objResultAlternative = DbTable_Alternative::getInstance()->fetchRow($query); if ($objResultAlternative) { return array( 'status' => false, 'messageError' => 'Há alternativas nesta questão.' ); } */ /* Deleta todos os resultados anuais da questão */ $whereDeleteAnnualResult = array('QuestionId = ?' => $questionRow->getId()); DbTable_AnnualResult::getInstance()->delete($whereDeleteAnnualResult); /* Deleta todos as alternativas da questão */ $whereDeleteAlternative = array('QuestionId = ?' => $questionRow->getId()); DbTable_Alternative::getInstance()->delete($whereDeleteAlternative); /* Deleta todos as ajudas da questão */ $whereDeleteQuestionTip = array('QuestionId = ?' => $questionRow->getId()); DbTable_QuestionTip::getInstance()->delete($whereDeleteQuestionTip); $criterionId = $questionRow->getCriterionId(); $questionRow->delete(); DbTable_Question::getInstance()->getAdapter()->commit(); DbTable_Question::getInstance()->reorder($criterionId); return array('status' => true); } catch (Vtx_UserException $e) { DbTable_Question::getInstance()->getAdapter()->rollBack(); return array('status' => false, 'messageError' => $e->getMessage()); } catch (Exception $e) { DbTable_Question::getInstance()->getAdapter()->rollBack(); throw new Exception($e); } }
function getAnnualResultById($Id) { $tbAnnualResult = new DbTable_AnnualResult(); $objResultAnnualResult = $tbAnnualResult->fetchRow(array('Id = ?' => $Id)); return $objResultAnnualResult; }