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;
 }
예제 #6
0
 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();
     }
 }
예제 #7
0
 /**
  * @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;
 }
예제 #8
0
 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());
 }
예제 #10
0
 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();
     }
 }
예제 #12
0
 public function toJsonObject($relations = true)
 {
     $object = parent::toJsonObject($relations);
     $object->name = $this->getName();
     return $object;
 }
예제 #13
0
 /**
  * Сохранялка новая, групповая.
  * Блин, как я задолбался уже это писать...
  */
 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();
     }
 }
예제 #14
0
 /**
  * Удаление группы вместе с потрохами
  */
 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();
 }
예제 #15
0
 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;
 }
예제 #16
0
 /**
  * Удаление пункта меню. Если у него есть дочки, то их
  * надо перепривязать к родителю
  */
 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");
 }
예제 #18
0
 /**
  * Сохранялка новая, групповая.
  */
 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();
     }
 }