public function initExecution($questionnaireId, $userId) { $execution = $this->getExecutionByUserAndQuestionnaire($questionnaireId, $userId); $programaId = Zend_Registry::get('configDb')->competitionId; if (!$execution) { $executionNew = DbTable_Execution::getInstance()->createRow()->setUserId($userId)->setQuestionnaireId($questionnaireId)->setProgramaId($programaId)->setStart(date('Y-m-d H:i:s'))->setStatus('E'); $executionNew->save(); } return true; }
public function setExecutionProgress($QstnId, $UserId) { $qtdTotal = DbTable_Questionnaire::getInstance()->getQuestionnaireTotalQuestions($QstnId)->getQtdTotal(); $qtdFaltante = count(DbTable_Questionnaire::getInstance()->needToFinish($QstnId, $UserId)->toArray()); $qtdRealizado = $qtdTotal - $qtdFaltante; $pctRealizado = round($qtdRealizado / $qtdTotal * 100, 0); $executionRow = DbTable_Execution::getInstance()->fetchRow(array('UserId = ?' => $UserId, 'QuestionnaireId = ?' => $QstnId)); if (!$executionRow) { $Execution = new Model_Execution(); $executionRow = $Execution->initExecution($QstnId, $UserId); } $executionRow->setProgress($pctRealizado); $executionRow->save(); return true; }