/** * @param CTerm $year * @param $alias * @return CRate */ public static function getRateByAliasAndYear(CTerm $year, $alias) { if (!self::getCacheRates()->hasElement($year->getId() . "_" . $alias)) { $q = new CQuery(); $q->select("r.*")->from(TABLE_RATES . " as r")->condition("r.year_id = " . $year->getId() . " AND r.alias='" . $alias . "'"); foreach ($q->execute()->getItems() as $ar) { $rate = new CRate(new CActiveRecord($ar)); self::addToCache($rate); } } return self::getCacheRates()->getItem($year->getId() . "_" . $alias); }
/** * Учебные группы по году * * @static * @param CTerm $year * @return CArrayList */ public static function getStudentGroupsByYear(CTerm $year) { $groups = new CArrayList(); foreach (CActiveRecordProvider::getWithCondition(TABLE_STUDENT_GROUPS, "year_id=" . $year->getId(), "name asc")->getItems() as $ar) { $group = new CStudentGroup($ar); $groups->add($group->getId(), $group); self::getCacheGroups()->add($group->getId(), $group); } return $groups; }
/** * Билеты по определенной специальности и за определенный год * * @static * @param CTerm $year * @param CTerm $speciality * @return array */ public static function getTicketsByYearAndSpecialityList(CTerm $year, CTerm $speciality) { $q = "speciality_id=" . $speciality->getId() . " AND year_id=" . $year->getId(); if (!self::getCacheTickets()->hasElement($q)) { $arr = array(); foreach (CActiveRecordProvider::getWithCondition(TABLE_SEB_TICKETS, $q)->getItems() as $ar) { $ticket = new CSEBTicket($ar); $arr[$ticket->getId()] = $ticket->getNumber(); self::getCacheTickets()->add($ticket->getId(), $ticket); } self::getCacheTickets()->add($q, $arr); } return self::getCacheTickets()->getItem($q); }
public function actionImport() { $thisYear = new CArrayList(); // импортируем показатели должностей $index = new CRatingIndex(); $index->title = "Должность"; $index->manager_class = "CTaxonomyManager"; $index->manager_method = "getPosts()"; $index->person_method = "getPost()"; $index->year_id = CUtils::getCurrentYear()->getId(); $index->isMultivalue = 0; $index->save(); $thisYear->add($index->getId(), $index); foreach (CActiveRecordProvider::getAllFromTable("spr_dolzhnost")->getItems() as $item) { $post = CTaxonomyManager::getPostById($item->getItemValue("id")); if (!is_null($post)) { $value = new CRatingIndexValue(); $value->index_id = $index->id; $value->fromTaxonomy = 1; $value->title = $post->getId(); $value->value = $item->getItemValue("rate"); $value->save(); } } // показатели размножаем на все года foreach (CTaxonomyManager::getYearsList() as $key => $value) { $year = CTaxonomyManager::getYear($key); if ($year->getId() !== $index->year_id) { $newIndex = new CRatingIndex(); $newIndex->title = $index->title; $newIndex->manager_class = $index->manager_class; $newIndex->manager_method = $index->manager_method; $newIndex->person_method = $index->person_method; $newIndex->year_id = $year->getId(); $newIndex->isMultivalue = $index->isMultivalue; $newIndex->save(); foreach ($index->getIndexValues()->getItems() as $value) { $newValue = new CRatingIndexValue(); $newValue->index_id = $newIndex->getId(); $newValue->fromTaxonomy = $value->fromTaxonomy; $newValue->title = $value->title; $newValue->value = $value->value; $newValue->save(); } } } // звания $index = new CRatingIndex(); $index->title = "Звание"; $index->manager_class = "CTaxonomyManager"; $index->manager_method = "getTitles()"; $index->year_id = CUtils::getCurrentYear()->getId(); $index->isMultivalue = 0; $index->person_method = "getTitle()"; $index->save(); $thisYear->add($index->getId(), $index); foreach (CActiveRecordProvider::getAllFromTable("spr_zvanie")->getItems() as $item) { $post = CTaxonomyManager::getTitle($item->getItemValue("id")); if (!is_null($post)) { $value = new CRatingIndexValue(); $value->index_id = $index->id; $value->fromTaxonomy = 1; $value->title = $post->getId(); $value->value = $item->getItemValue("rate"); $value->save(); } } // показатели размножаем на все года foreach (CTaxonomyManager::getYearsList() as $key => $value) { $year = CTaxonomyManager::getYear($key); if ($year->getId() !== $index->year_id) { $newIndex = new CRatingIndex(); $newIndex->title = $index->title; $newIndex->manager_class = $index->manager_class; $newIndex->manager_method = $index->manager_method; $newIndex->year_id = $year->getId(); $newIndex->isMultivalue = $index->isMultivalue; $newIndex->person_method = $index->person_method; $newIndex->save(); foreach ($index->getIndexValues()->getItems() as $value) { $newValue = new CRatingIndexValue(); $newValue->index_id = $newIndex->getId(); $newValue->fromTaxonomy = $value->fromTaxonomy; $newValue->title = $value->title; $newValue->value = $value->value; $newValue->save(); } } } // научно-методическая работа $taxonomy = new CTaxonomy(); $taxonomy->name = "Виды научно-методической и учебной работы"; $taxonomy->alias = "scientificWork"; $taxonomy->save(); $index = new CRatingIndex(); $index->title = "Научно-методическая и учебная работа"; $index->manager_class = "CTaxonomyManager"; $index->manager_method = 'getTaxonomy("scientificWork")->getTerms()'; $index->year_id = CUtils::getCurrentYear()->getId(); $index->isMultivalue = 1; $index->save(); $thisYear->add($index->getId(), $index); foreach (CActiveRecordProvider::getAllFromTable("spr_nauch_met_uch_rab")->getItems() as $item) { $term = new CTerm(); $term->taxonomy_id = $taxonomy->getId(); $term->name = $item->getItemValue("name"); $term->save(); $value = new CRatingIndexValue(); $value->index_id = $index->id; $value->fromTaxonomy = 1; $value->title = $term->getId(); $value->value = $item->getItemValue("rate"); $value->save(); } // показатели размножаем на все года foreach (CTaxonomyManager::getYearsList() as $key => $value) { $year = CTaxonomyManager::getYear($key); if ($year->getId() !== $index->year_id) { $newIndex = new CRatingIndex(); $newIndex->title = $index->title; $newIndex->manager_class = $index->manager_class; $newIndex->manager_method = $index->manager_method; $newIndex->year_id = $year->getId(); $newIndex->isMultivalue = $index->isMultivalue; $newIndex->save(); foreach ($index->getIndexValues()->getItems() as $value) { $newValue = new CRatingIndexValue(); $newValue->index_id = $newIndex->getId(); $newValue->fromTaxonomy = $value->fromTaxonomy; $newValue->title = $value->title; $newValue->value = $value->value; $newValue->save(); } } } // вычеты $taxonomy = new CTaxonomy(); $taxonomy->name = "Виды вычетов"; $taxonomy->alias = "takeouts"; $taxonomy->save(); $index = new CRatingIndex(); $index->title = "Вычеты"; $index->manager_class = "CTaxonomyManager"; $index->manager_method = 'getTaxonomy("takeouts")->getTerms()'; $index->year_id = CUtils::getCurrentYear()->getId(); $index->isMultivalue = 1; $index->save(); $thisYear->add($index->getId(), $index); foreach (CActiveRecordProvider::getAllFromTable("spr_vichet")->getItems() as $item) { $term = new CTerm(); $term->taxonomy_id = $taxonomy->getId(); $term->name = $item->getItemValue("name"); $term->save(); $value = new CRatingIndexValue(); $value->index_id = $index->id; $value->fromTaxonomy = 1; $value->title = $term->getId(); $value->value = $item->getItemValue("rate"); $value->save(); } // показатели размножаем на все года foreach (CTaxonomyManager::getYearsList() as $key => $value) { $year = CTaxonomyManager::getYear($key); if ($year->getId() !== $index->year_id) { $newIndex = new CRatingIndex(); $newIndex->title = $index->title; $newIndex->manager_class = $index->manager_class; $newIndex->manager_method = $index->manager_method; $newIndex->year_id = $year->getId(); $newIndex->isMultivalue = $index->isMultivalue; $newIndex->save(); foreach ($index->getIndexValues()->getItems() as $value) { $newValue = new CRatingIndexValue(); $newValue->index_id = $newIndex->getId(); $newValue->fromTaxonomy = $value->fromTaxonomy; $newValue->title = $value->title; $newValue->value = $value->value; $newValue->save(); } } } }
/** * Список вопросов по дисциплине * * @static * @param CTerm $discipline * @return CArrayList */ public static function getQuestionsByDiscipline(CTerm $discipline) { $arr = new CArrayList(); foreach (CActiveRecordProvider::getWithCondition(TABLE_SEB_QUESTIONS, "discipline_id=" . $discipline->getId())->getItems() as $i) { $q = new CSEBQuestion($i); $arr->add($q->getId(), $q); self::getCacheQuestions()->add($q->getId(), $q); } return $arr; }
/** * @param CTerm $year * @return CArrayList */ public function getSABOrdersByYear(CTerm $year) { $result = new CArrayList(); foreach ($this->ordersSAB->getItems() as $order) { if ($year->getId() == $order->year_id) { $result->add($order->getId(), $order); } } return $result; }
/** * Специальность * * @param CTerm $value */ public function setSpeciality(CTerm $value) { $this->_speciality = $value; $this->getRecord()->setItemValue("speciality_id", $value->getId()); }
/** * @param CTerm $value */ public function setYear(CTerm $value) { $this->_year = $value; $this->getRecord()->setItemValue("year_id", $value->getId()); }
/** * Все показатели в указанном году * * @static * @param CTerm $year * @return CArrayList */ public static function getRatingIndexesByYear(CTerm $year) { $res = new CArrayList(); foreach (self::getAllRatingIndexes()->getItems() as $item) { if ($item->year_id == $year->getId()) { $res->add($item->getId(), $item); } } return $res; }
public function setMark(CTerm $mark) { $this->_mark = $mark; $this->getRecord()->setItemValue("mark_id", $mark->getId()); }
public function actionSaveTerm() { $term = new CTerm(); $term->setAttributes(CRequest::getArray(CTerm::getClassName())); if ($term->validate()) { $term->save(); if ($this->continueEdit()) { $this->redirect("?action=editTerm&id=" . $term->getId()); } else { $this->redirect("?action=index&id=" . $term->getParentTaxonomy()->getId()); } } $this->setData("term", $term); $this->renderView("_taxonomy/editTerm.tpl"); }