public function save() { parent::save(); /** * У сотрудников, которых нет приказов по * ГАК в году комиссии автоматически устанавливается * приказ от комиссии */ if ($this->order_id !== 0) { $persons = new CArrayList(); foreach ($this->members->getItems() as $person) { $persons->add($person->getId(), $person); } if (!is_null($this->manager)) { $persons->add($this->manager->getId(), $this->manager); } foreach ($persons->getItems() as $person) { if (is_null($person->getSABOrdersByYear($this->year))) { $ar = new CActiveRecord(array("id" => null, "person_id" => $person->getId(), "year_id" => $this->year->getId(), "order_id" => $this->order_id)); $ar->setTable(TABLE_SAB_PERSON_ORDERS); $ar->insert(); } } } }
public function actionIndex() { $selectedType = null; $set = new CRecordSet(true, true); $query = new CQuery(); $set->setQuery($query); /** * Исходный запрос */ $query->select("person.*")->from(TABLE_PERSON . " as person")->leftJoin(TABLE_PERSON_BY_TYPES . " as types", "types.kadri_id = person.id")->leftJoin(TABLE_TYPES . " as person_types", "types.person_type_id = person_types.id")->leftJoin(TABLE_GENDERS . " as pol", "person.pol = pol.id")->leftJoin(TABLE_TAXONOMY_TERMS . " as term", "person.department_role_id = term.id")->leftJoin(TABLE_LANGUAGES . " as lang", "person.language1 = lang.id")->leftJoin(TABLE_POSTS . " as post", "person.dolgnost = post.id")->leftJoin(TABLE_TITLES . " as zvanie", "person.zvanie = zvanie.id")->leftJoin(TABLE_DEGREES . " as stepen", "person.stepen = stepen.id")->order("person.fio asc"); $isAll = false; if (CRequest::getInt("isAll") == "1") { $isAll = true; } if (CRequest::getInt("type") != 0) { $selectedType = CRequest::getInt("type"); } elseif (!$isAll and is_null(CRequest::getString("filterClass"))) { $query->condition("(types.person_type_id = 1 or types.person_type_id = 3)"); } $typesQuery = new CQuery(); $typesQuery->select("types.*")->from(TABLE_TYPES . " as types")->order("types.name asc"); $types = array(); foreach ($typesQuery->execute()->getItems() as $ar) { $type = new CActiveModel(new CActiveRecord($ar)); $types[$type->getId()] = $type->name; } /** * Набираем выборку */ $persons = new CArrayList(); foreach ($set->getPaginated()->getItems() as $ar) { $person = new CPerson($ar); $persons->add($person->getId(), $person); } $this->setData("paginator", $set->getPaginator()); $this->setData("persons", $persons); $this->setData("types", $types); $this->setData("isAll", $isAll); $this->setData("selectedType", $selectedType); /** * Генерация меню */ $this->addActionsMenuItem(array(array("title" => "Добавить сотрудника", "link" => "index.php?action=add", "icon" => "actions/list-add.png"), array("title" => "Печать по шаблону", "link" => "#", "icon" => "devices/printer.png", "template" => "formset_person"))); /** * Отображение представления */ $this->renderView("_staff/person/index.tpl"); }
public function remove() { foreach ($this->getWorks()->getItems() as $ar) { $ar->remove(); } parent::remove(); }
public function remove() { foreach (CActiveRecordProvider::getWithCondition(TABLE_DIPLOM_PREVIEW_MEMBERS, "comm_id=" . $this->getId())->getItems() as $ar) { $ar->remove(); } parent::remove(); }
public function validate() { if (!parent::validate()) { return parent::validate(); } $user = CStaffManager::getUser($this->credential); if (is_null($user)) { $this->getValidationErrors()->add("credential", "Пользователя с указанными данными не существует"); return false; } return true; }
public function save() { parent::save(); // берем все старые записи об участии и создаем их заново $q = new CQuery(); $q->remove(TABLE_EVENT_MEMBERSHIP)->condition("event_id=" . $this->getId())->execute(); // добавляем заново foreach ($this->getMembers()->getItems() as $item) { $q = new CQuery(); $q->insert(TABLE_EVENT_MEMBERSHIP, array("resource_id" => $item->getId(), "event_id" => $this->getId(), "calendar_id" => $this->getCalendar()->getId())); $q->execute(); } }
/** * @param CActiveModel $model * @param bool $exportTasks * @param bool $isMain * @return SolrInputDocument */ private static function createSolrInputDocument(CActiveModel $model, $exportTasks = false, $isMain = false) { $doc = new SolrInputDocument(); $doc->addField("id", $model->getRecord()->getTable() . "_" . $model->getId()); $doc->addField("_doc_id_", $model->getId()); /** * Выгружаем дополнительные выгружаемые поля */ $metaModel = CCoreObjectsManager::getCoreModel(get_class($model)); if (!is_null($metaModel)) { foreach ($metaModel->fields->getItems() as $field) { if ($field->isExportable()) { $name = $field->field_name; $doc->addField($name, $model->{$name}); } } } /** * Выгружаем список задач, с которыми связана модель */ if ($exportTasks) { foreach ($metaModel->tasks->getItems() as $task) { $doc->addField("_tasks_", $task->getId()); } } /** * Класс модели */ $doc->addField("_class_", $metaModel->class_name); /** * Модель является основной */ if ($isMain) { $doc->addField("_is_main_", "1"); } else { $doc->addField("_is_main_", "0"); } return $doc; }
public function remove() { /** * Удаляем записи о том, где пользователь состоял */ foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_IN_GROUPS, "user_id = " . $this->getId())->getItems() as $ar) { $ar->remove(); } /** * Удаляем личные права */ foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_HAS_ROLES, "user_id = " . $this->getId())->getItems() as $ar) { $ar->remove(); } /** * Удаляем самого пользователя */ parent::remove(); }
public function actionUpdate() { $plan = CWorkPlanManager::getWorkplan(CRequest::getInt("plan_id")); if (!is_null($plan->corriculumDiscipline)) { foreach (CActiveRecordProvider::getWithCondition(TABLE_CORRICULUM_DISCIPLINE_SECTIONS, "discipline_id=" . $plan->corriculumDiscipline->getId())->getItems() as $ar) { $term = new CActiveModel($ar); $object = new CWorkPlanTerm(); $object->plan_id = $plan->getId(); $object->number = $term->getId(); $object->save(); } } $this->redirect("workplanterms.php?action=index&plan_id=" . $plan->getId()); }
public function save() { parent::save(); if (!CTaxonomyManager::getCacheTaxonomy()->hasElement($this->getId())) { CTaxonomyManager::getCacheTaxonomy()->add($this->getId(), $this); CTaxonomyManager::getCacheTaxonomy()->add($this->getAlias(), $this); } }
/** * Обновление прав доступа к таблице по умолчанию * * @param CActiveModel $model * @param array $entries * @param int $level */ private function updateDefaultAccess(CActiveModel $model, array $entries, $level = 1) { // 1. удаляем старые записи доступа foreach (CActiveRecordProvider::getWithCondition(TABLE_ACL_DEFAULTS, "table_id=" . $model->getId())->getItems() as $item) { $obj = new CActiveModel($item); $obj->remove(); } // 2. создаем новые записи уровня сущностей foreach ($entries["id"] as $key => $value) { $entry = new CActiveModel(); $entry->getRecord()->setTable(TABLE_ACL_DEFAULTS); $entry->table_id = $model->getId(); $entry->level = $level; $entry->entry_type = $entries["type"][$key]; $entry->entry_id = $value; $entry->save(); } }
public function toJsonObject($relations = true) { $object = parent::toJsonObject($relations); $object->name = $this->getName(); return $object; }
/** * Сохранялка новая, групповая. * Блин, как я задолбался уже это писать... */ public function save() { if ($this->getId() != 0) { // удаляем старые вопросы $q = new CQuery(); $q->remove(TABLE_SEB_QUSTIONS_IN_TICKETS)->condition("ticket_id=" . $this->getId())->execute(); } parent::save(); // сохраняем новые вопросы foreach ($this->getQuestions()->getItems() as $i) { $q = new CQuery(); $q->insert(TABLE_SEB_QUSTIONS_IN_TICKETS, array("ticket_id" => $this->getId(), "question_id" => $i->getId()))->execute(); } }
/** * Удаление группы вместе с потрохами */ public function remove() { foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_GROUP_HAS_ROLES, "user_group_id = " . $this->getId())->getItems() as $ar) { $ar->remove(); } foreach (CActiveRecordProvider::getWithCondition(TABLE_USER_IN_GROUPS, "group_id = " . $this->getId())->getItems() as $ar) { $ar->remove(); } parent::remove(); }
public function copy() { /** * Клонируем саму рабочую программу */ $newPlan = parent::copy(); $newPlan->title = "Копия " . $newPlan->title; /** * Клонируем профили рабочей программы */ foreach ($this->profiles->getItems() as $profile) { $newPlan->profiles->add($profile->getId(), $profile->getId()); } /** * Клонируем предшествующие дисциплины рабочей программы */ foreach ($this->disciplinesBefore->getItems() as $disciplineBefore) { $newPlan->disciplinesBefore->add($disciplineBefore->getId(), $disciplineBefore->getId()); } /** * Клонируем последующие дисциплины рабочей программы */ foreach ($this->disciplinesAfter->getItems() as $disciplineAfter) { $newPlan->disciplinesAfter->add($disciplineAfter->getId(), $disciplineAfter->getId()); } /** * Клонируем авторов рабочей программы */ foreach ($this->authors->getItems() as $author) { $newPlan->authors->add($author->getId(), $author->getId()); } $newPlan->save(); /** * Клонируем цели рабочей программы */ foreach ($this->goals->getItems() as $goal) { $newGoal = $goal->copy(); $newGoal->plan_id = $newPlan->getId(); $newGoal->save(); /** * Клонируем задачи целей рабочей программы */ foreach ($goal->tasks->getItems() as $task) { $newTask = $task->copy(); $newTask->plan_id = $newPlan->getId(); $newTask->goal_id = $newGoal->getId(); $newTask->save(); } } /** * Клонируем компетенции рабочей программы */ foreach ($this->competentions->getItems() as $competention) { $newCompetention = $competention->copy(); $newCompetention->plan_id = $newPlan->getId(); /** * Копируем знания из компетенций * @var CTerm $knowledge */ foreach ($competention->knowledges->getItems() as $knowledge) { $newCompetention->knowledges->add($knowledge->getId(), $knowledge->getId()); } /** * Копируем умения из компетенций * @var CTerm $skill */ foreach ($competention->skills->getItems() as $skill) { $newCompetention->skills->add($skill->getId(), $skill->getId()); } /** * Копируем навыки из компетенций * @var CTerm $experience */ foreach ($competention->experiences->getItems() as $experience) { $newCompetention->experiences->add($experience->getId(), $experience->getId()); } /** * Копируем умеет использовать из компетенций * @var CTerm $canUse */ foreach ($competention->canUse->getItems() as $canUse) { $newCompetention->canUse->add($canUse->getId(), $canUse->getId()); } $newCompetention->save(); } /** * Клонируем семестры рабочей программы */ $termsMapping = array(); foreach ($this->terms->getItems() as $term) { $newTerm = $term->copy(); $newTerm->plan_id = $newPlan->getId(); $newTerm->save(); $termsMapping[$term->getId()] = $newTerm->getId(); } /** * Клонируем категории рабочей программы */ foreach ($this->categories->getItems() as $categorie) { $newCategorie = $categorie->copy(); $newCategorie->plan_id = $newPlan->getId(); $newCategorie->save(); /** * Копируем разделы из категорий * @var CWorkPlanContentSection $section */ foreach ($categorie->sections->getItems() as $section) { $newSection = $section->copy(); $newSection->category_id = $newCategorie->getId(); /** * Копируем формы контроля из разделов * @var CTerm $control */ foreach ($section->controls->getItems() as $control) { $newSection->controls->add($control->getId(), $control->getId()); } $newSection->save(); /** * Копируем нагрузку из разделов * @var CWorkPlanContentSectionLoad $load */ foreach ($section->loads->getItems() as $load) { $newLoad = $load->copy(); $newLoad->section_id = $newSection->getId(); $newLoad->term_id = $termsMapping[$load->term_id]; $newLoad->save(); /** * Копируем темы из нагрузки * @var CWorkPlanContentSectionLoadTopic $topic */ foreach ($load->topics->getItems() as $topic) { $newTopic = $topic->copy(); $newTopic->load_id = $newLoad->getId(); $newTopic->save(); } /** * Копируем технологии из нагрузки * @var CWorkPlanContentSectionLoadTechnology $technologie */ foreach ($load->technologies->getItems() as $technologie) { $newTechnologie = $technologie->copy(); $newTechnologie->load_id = $newLoad->getId(); $newTechnologie->save(); } /** * Копируем вопросы самоподготовки из нагрузки * @var CWorkPlanSelfEducationBlock $selfEducation */ foreach ($load->selfEducations->getItems() as $selfEducation) { $newSelfEducation = $selfEducation->copy(); $newSelfEducation->load_id = $newLoad->getId(); $newSelfEducation->save(); } } /** * Копируем виды контроля из разделов * @var CWorkPlanControlTypes $controlType */ foreach ($section->controlTypes->getItems() as $controlType) { $newControlType = $controlType->copy(); $newControlType->section_id = $newSection->getId(); $newControlType->save(); /** * Копируем баллы из видов контроля * @var CWorkPlanMarkStudyActivity $mark */ foreach ($controlType->marks->getItems() as $mark) { $newMark = $mark->copy(); $newMark->activity_id = $newControlType->getId(); $newMark->save(); } } /** * Копируем фонд оценочных средств из разделов */ foreach ($section->fundMarkTypes->getItems() as $fundMarkType) { $newFundMarkType = $fundMarkType->copy(); $newFundMarkType->plan_id = $newPlan->getId(); $newFundMarkType->section_id = $newSection->getId(); /** * Копируем компетенции из фонда оценочных средств * @var CTerm $competention */ foreach ($fundMarkType->competentions->getItems() as $competention) { $newFundMarkType->competentions->add($competention->getId(), $competention->getId()); } /** * Копируем уровни освоения из фонда оценочных средств * @var CTerm $level */ foreach ($fundMarkType->levels->getItems() as $level) { $newFundMarkType->levels->add($level->getId(), $level->getId()); } /** * Копируем оценочные средства из фонда оценочных средств * @var CTerm $control */ foreach ($fundMarkType->controls->getItems() as $control) { $newFundMarkType->controls->add($control->getId(), $control->getId()); } $newFundMarkType->save(); } } } /** * Клонируем темы курсовых и РГР рабочей программы */ foreach ($this->projectThemes->getItems() as $projectTheme) { $newProjectTheme = $projectTheme->copy(); $newProjectTheme->plan_id = $newPlan->getId(); $newProjectTheme->save(); } /** * Клонируем самостоятельное изучение рабочей программы */ foreach ($this->selfEducations->getItems() as $selfEducation) { $newSelfEducation = $selfEducation->copy(); $newSelfEducation->plan_id = $newPlan->getId(); $newSelfEducation->save(); } /** * Клонируем балльно-рейтинговую систему рабочей программы */ foreach ($this->BRS->getItems() as $BRS) { $newBRS = $BRS->copy(); $newBRS->plan_id = $newPlan->getId(); $newBRS->save(); } /** * Клонируем оценочные средства рабочей программы */ foreach ($this->markTypes->getItems() as $markTypes) { $newMarkTypes = $markTypes->copy(); $newMarkTypes->plan_id = $newPlan->getId(); /** * Копируем фонды оценочных средств из перечня оченочных средств * @var CTerm $fund */ foreach ($markTypes->funds->getItems() as $fund) { $newMarkTypes->funds->add($fund->getId(), $fund->getId()); } /** * Копируем места размещения оценочных средств из перечня оченочных средств * @var CTerm $place */ foreach ($markTypes->places->getItems() as $place) { $newMarkTypes->places->add($place->getId(), $place->getId()); } $newMarkTypes->save(); } /** * Клонируем литературу рабочей программы */ foreach ($this->literature->getItems() as $literature) { $newLiterature = $literature->copy(); $newLiterature->plan_id = $newPlan->getId(); $newLiterature->save(); } /** * Клонируем программное обеспечение рабочей программы */ foreach ($this->software->getItems() as $software) { $newSoftware = $software->copy(); $newSoftware->plan_id = $newPlan->getId(); $newSoftware->save(); } /** * Клонируем доп. обеспечение рабочей программы */ foreach ($this->additionalSupply->getItems() as $additionalSupply) { $newAdditionalSupply = $additionalSupply->copy(); $newAdditionalSupply->plan_id = $newPlan->getId(); $newAdditionalSupply->save(); } /** * Клонируем итоговый контроль рабочей программы */ foreach ($this->finalControls->getItems() as $finalControl) { $newFinalControl = $finalControl->copy(); $newFinalControl->plan_id = $newPlan->getId(); $newFinalControl->save(); } /** * Клонируем вопросы к экзамену и зачету рабочей программы */ foreach ($this->questions->getItems() as $question) { $newQuestion = $question->copy(); $newQuestion->plan_id = $newPlan->getId(); $newQuestion->save(); } /** * Клонируем оценочные материалы рабочей программы */ foreach ($this->materialsOfEvaluation->getItems() as $materialOfEvaluation) { $newMaterialOfEvaluation = $materialOfEvaluation->copy(); $newMaterialOfEvaluation->plan_id = $newPlan->getId(); $newMaterialOfEvaluation->save(); } /** * Клонируем оценочные критерии рабочей программы */ foreach ($this->criteria->getItems() as $criteria) { $newCriteria = $criteria->copy(); $newCriteria->plan_id = $newPlan->getId(); $newCriteria->save(); } return $newPlan; }
/** * Удаление пункта меню. Если у него есть дочки, то их * надо перепривязать к родителю */ public function remove() { $parent = $this->getParent(); // если вдруг это родительский пункт меню - перестраиваем все меню if (is_null($parent)) { foreach ($this->getChilds()->getItems() as $i) { $i->setParentId(0); $i->save(); } } else { foreach ($this->getChilds()->getItems() as $i) { $i->setParent($parent); $i->save(); } } parent::remove(); }
public function __construct(CActiveRecord $aRecord = null) { parent::__construct($aRecord); $this->language_id = CSettingsManager::getSettingValue("system_language_default"); }
/** * Сохранялка новая, групповая. */ public function save() { if ($this->getId() != 0) { // удаляем старых членов ГАК вместе с председателем $q = new CQuery(); $q->remove(TABLE_SEB_PROTOCOL_MEMBERS)->condition("protocol_id=" . $this->getId())->execute(); } parent::save(); // сохраняем новыех участников foreach ($this->getMembers()->getItems() as $member) { $q = new CQuery(); $q->insert(TABLE_SEB_PROTOCOL_MEMBERS, array("protocol_id" => $this->getId(), "person_id" => $member->getId(), "isMaster" => 0))->execute(); } // председателя тоже сохраняем if (!is_null($this->getBoardMaster())) { $q = new CQuery(); $q->insert(TABLE_SEB_PROTOCOL_MEMBERS, array("protocol_id" => $this->getId(), "person_id" => $this->getBoardMaster()->getId(), "isMaster" => 1))->execute(); } }