public function deleteAnnualResult($annualResultRow) { // utilizar transaction externa. (OFF) DbTable_AnnualResult::getInstance()->getAdapter()->beginTransaction(); try { /* Deletar : * 'AnnualResultData', */ $whereDeleteAnnualResultData = array('AnnualResultId = ?' => $annualResultRow->getId()); DbTable_AnnualResultData::getInstance()->delete($whereDeleteAnnualResultData); $annualResultRow->delete(); DbTable_AnnualResult::getInstance()->getAdapter()->commit(); return array('status' => true); } catch (Vtx_UserException $e) { DbTable_AnnualResult::getInstance()->getAdapter()->rollBack(); return array('status' => false, 'messageError' => $e->getMessage()); } catch (Exception $e) { DbTable_AnnualResult::getInstance()->getAdapter()->rollBack(); throw new Exception($e); } }
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); } }