public function actionWizardCompleted() { $speciality = CTaxonomyManager::getCacheSpecialities()->getItem(CRequest::getInt("speciality_id")); $year = CTaxonomyManager::getCacheYears()->getItem(CRequest::getInt("year_id")); $protocol = CProtocolManager::getDepProtocol(CRequest::getInt("protocol_id")); $signer = CStaffManager::getPersonById(CRequest::getInt("signer_id")); $disciplines = new CArrayList(); foreach (CRequest::getArray("discipline") as $i) { $disciplines->add($disciplines->getCount(), CDisciplinesManager::getDiscipline($i)); } // бегаем по циклу столько раз, сколько нам билетов нужно for ($i = 1; $i <= CRequest::getInt("count"); $i++) { $ticket = CFactory::createSebTicket(); $ticket->setSpeciality($speciality); $ticket->setYear($year); $ticket->setProtocol($protocol); $ticket->setSigner($signer); $ticket->setNumber($i); foreach ($disciplines->getItems() as $disc) { if ($disc->getQuestions()->getCount() == 0) { break; } $question = $disc->getQuestions()->getShuffled()->getFirstItem(); $disc->getQuestions()->removeItem($question->getId()); $ticket->addQuestion($question); } $ticket->save(); } $this->redirect("?action=index"); }
/** * Учебный год * * @return CTerm */ public function getYear() { if (is_null($this->_year)) { $this->_year = CTaxonomyManager::getCacheYears()->getItem($this->getRecord()->getItemValue("year_id")); } return $this->_year; }