/** * @param int $event_id * * @return bool */ public function canUpdate($event_id) { // FIXME: Correspondence locking is suspended while draft usage is discussed return true; $letter = ElementLetter::model()->find('event_id=?', array($event_id)); return $letter->isEditable(); }
/** * Sets a letter element to print when it's next viewed. * * @param $id * * @return bool * * @throws Exception */ protected function setPrintForEvent($id) { if (!($letter = ElementLetter::model()->find('event_id=?', array($id)))) { throw new Exception("Letter not found for event id: {$id}"); } $letter->print = 1; $letter->draft = 0; if (@$_GET['all']) { $letter->print_all = 1; } if (!$letter->save()) { throw new Exception('Unable to save letter: ' . print_r($letter->getErrors(), true)); } if (!($event = Event::model()->findByPk($id))) { throw new Exception("Event not found: {$id}"); } $event->info = ''; if (!$event->save()) { throw new Exception('Unable to save event: ' . print_r($event->getErrors(), true)); } return true; }