Example #1
0
 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);
     }
 }
Example #2
0
 public function deleteAllByQuestionId($questionId)
 {
     // utilizar transaction externa.
     $whereDeleteQuestionTip = array('QuestionId = ?' => $questionId);
     DbTable_QuestionTip::getInstance()->delete($whereDeleteQuestionTip);
     return array('status' => true);
 }