/** * Hook performing actual save * * @param string $newCode * @param int $userId * @return $changed */ public function setReceptionCode($newCode, $userId) { $oldCode = $this->respondentTrack->getReceptionCode(); if (!$newCode instanceof \Gems_Util_ReceptionCode) { $newCode = $this->util->getReceptionCode($newCode); } // Use the repesondent track function as that cascades the consent code $changed = $this->respondentTrack->setReceptionCode($newCode, $this->formData['gr2t_comment'], $userId); if ($this->unDelete) { $this->addMessage($this->_('Track restored.')); if (isset($this->formData['restore_tokens']) && $this->formData['restore_tokens']) { $count = $this->respondentTrack->restoreTokens($oldCode, $newCode); $this->addMessage(sprintf($this->plural('%d token reception codes restored.', '%d tokens reception codes restored.', $count), $count)); } } else { if ($newCode->isStopCode()) { $this->addMessage($this->_('Track stopped.')); } else { $this->addMessage($this->_('Track deleted.')); } } return $changed; }