public function actionDelete()
 {
     $object = CCorriculumsManager::getCompetention(CRequest::getInt("id"));
     $discipline_id = $object->discipline_id;
     $object->remove();
     $this->redirect("disciplines.php?action=edit&id=" . $discipline_id);
 }
 public function actionDel()
 {
     $p = CCorriculumsManager::getPractice(CRequest::getInt("id"));
     $c = $p->corriculum_id;
     $p->remove();
     $this->redirect("index.php?action=edit&id=" . $c);
 }
 public function actionDel()
 {
     $cycle = CCorriculumsManager::getCycle(CRequest::getInt("id"));
     $id = $cycle->corriculum_id;
     $cycle->remove();
     $this->redirect("index.php?action=view&id=" . $id);
 }
 public function actionDelete()
 {
     $object = CCorriculumsManager::getAttestation(CRequest::getInt("id"));
     $id = $object->corriculum_id;
     $object->remove();
     $this->redirect("index.php?action=edit&id=" . $id);
 }
 public function execute($contextObject)
 {
     $result = "";
     if (!is_null(CCorriculumsManager::getDiscipline($contextObject->corriculum_discipline_id)->cycle->corriculum->nisChairman)) {
         $result = CCorriculumsManager::getDiscipline($contextObject->corriculum_discipline_id)->cycle->corriculum->nisChairman->getNameShort();
     }
     return $result;
 }
 public function execute($contextObject)
 {
     $result = "";
     $corriculum = CCorriculumsManager::getCorriculum($contextObject->cycle->corriculum->getId());
     if (!is_null($corriculum->speciality_direction)) {
         $result = $corriculum->speciality_direction->getValue();
     }
     return $result;
 }
 public function actionGetItem($id)
 {
     $result = array();
     $discipline = CCorriculumsManager::getDiscipline($id);
     if (!is_null($discipline)) {
         $result[$discipline->getId()] = $discipline->discipline->getValue();
     }
     return $result;
 }
 public function actionDel()
 {
     $labor = CCorriculumsManager::getLabor(CRequest::getInt("id"));
     if (is_null($labor->section)) {
         $id = $labor->discipline_id;
     } else {
         $id = $labor->section->discipline_id;
     }
     $labor->remove();
     $this->redirect("disciplines.php?action=edit&id=" . $id);
 }
 public function actionGetViewData()
 {
     $result = array();
     $plan = CWorkPlanManager::getWorkplan(CRequest::getInt("plan_id"));
     $discipline = CCorriculumsManager::getDiscipline($plan->corriculum_discipline_id);
     $query = new CQuery();
     $query->select("term.id as id, term.title as name")->from(TABLE_CORRICULUM_DISCIPLINE_SECTIONS . " as term")->condition("discipline_id=" . $discipline->getId());
     foreach ($query->execute()->getItems() as $item) {
         $result[$item["id"]] = $item["name"];
     }
     return $result;
 }
 public function actionGetViewData()
 {
     $result = array();
     $plan = CWorkPlanManager::getWorkplan(CRequest::getInt("plan_id"));
     $discipline = CCorriculumsManager::getDiscipline($plan->corriculum_discipline_id);
     $corriculum = $discipline->cycle->corriculum;
     $query = new CQuery();
     $query->select("discipline.id as id, subject.name as name")->from(TABLE_CORRICULUM_DISCIPLINES . " as discipline")->innerJoin(TABLE_CORRICULUM_CYCLES . " as cycle", "discipline.cycle_id = cycle.id")->innerJoin(TABLE_DISCIPLINES . " as subject", "discipline.discipline_id = subject.id")->condition("cycle.corriculum_id=" . $corriculum->getId());
     foreach ($query->execute()->getItems() as $item) {
         $result[$item["id"]] = $item["name"];
     }
     return $result;
 }
 public function actionDelete()
 {
     $object = CCorriculumsManager::getCompetention(CRequest::getInt("id"));
     $discipline_id = $object->discipline_id;
     if (!is_null($object)) {
         $object->remove();
     }
     $items = CRequest::getArray("selectedInView");
     foreach ($items as $id) {
         $object = CCorriculumsManager::getCompetention($id);
         $object->remove();
     }
     $this->redirect("disciplines.php?action=edit&id=" . $discipline_id);
 }
 public function execute($contextObject)
 {
     $corriculumDiscipline = $contextObject->corriculumDiscipline;
     $corriculum = CCorriculumsManager::getCorriculum($corriculumDiscipline->cycle->corriculum->getId());
     //массив последующих дисциплин из текущей рабочей программы
     $disciplinesAfter = array();
     if (!is_null($contextObject->disciplinesAfter)) {
         foreach ($contextObject->disciplinesAfter->getItems() as $disciplineAfter) {
             $disciplinesAfter[$disciplineAfter->getId()] = $disciplineAfter->discipline->getValue();
         }
     }
     //массив с ключами дисциплин, у которых название семестра больше либо равно названию семестра текущей дисциплины
     $disciplines = array();
     //получаем все дисциплины учебного плана
     foreach ($corriculum->getDisciplines() as $disc) {
         //получаем семестры дисциплин
         foreach ($disc->sections as $section) {
             //получаем семестры текущей дисциплины учебного плана
             foreach ($corriculumDiscipline->sections->getItems() as $currentSection) {
                 //проверяем, что название текущего семестра меньше либо равно названию семестров всех дисциплин учебного плана
                 if ($currentSection->title <= $section->title) {
                     $disciplines[$section->discipline_id] = $section->title;
                 }
             }
         }
     }
     //массив с ключами дисциплин с нужными компетенциями
     $competentions = array();
     foreach ($corriculum->getDisciplines() as $disc) {
         //получаем компетенции всех дисциплин учебного плана
         foreach ($disc->competentions as $competention) {
             //получаем компетенции текущей дисциплины учебного плана
             //foreach ($corriculumDiscipline->competentions->getItems() as $currentCompetention) {
             //проверяем, что компетенции текущей дисциплины совпадают с компетенциями других дисциплин учебного плана
             //if ($currentCompetention->competention_id == $competention->competention_id) {
             $competentions[$competention->discipline_id] = $competention->competention_id;
             //}
             //}
         }
     }
     //получаем нужные дисциплины учебного плана
     $disciplinesCorriculum = array();
     foreach ($disciplines as $section_id => $section) {
         foreach ($competentions as $comp_id => $competention) {
             //сравниваем массив $disciplines с нужными семестрами с массивом $competentions с нужными компетенциями по совпадающим ключам дисциплин
             if ($section_id == $comp_id) {
                 //массив дисциплин, отобранных по семестру и компетенциям, ключ - id дисциплины, значение - id компетенции
                 $disciplinesCorriculum[$comp_id] = $competention;
             }
         }
     }
     //массив, по которому будем выводить компетенции в шаблон
     $items = array();
     //сравниваем по совпадающим ключам массив последующих дисциплин с массивом дисциплин, отобранных по семестру и компетенциям
     foreach (array_intersect_key($disciplinesAfter, $disciplinesCorriculum) as $key => $value) {
         //записываем в массив $items id отобранных дисциплин
         $items[] = $key;
     }
     $result = array();
     foreach ($items as $value) {
         $discipl = CCorriculumsManager::getDiscipline($value);
         foreach ($discipl->competentions->getItems() as $comp) {
             $dataRow = array();
             $dataRow[0] = count($result) + 1;
             if (!is_null($comp->competention)) {
                 $str = $comp->competention->getValue();
                 //удаляем текст в скобках - код компетенции
                 $text = preg_replace("|\\(.*?\\)|is", "", $str);
                 //удаляем последний символ пробела из строки
                 $rest = substr($text, 0, -1);
                 $dataRow[1] = $rest;
                 //берем код компетенции - текст из скобок
                 preg_match('/\\((.+)\\)/', $str, $m);
                 $dataRow[2] = $m[1];
             }
             if (!is_null($comp->level)) {
                 $dataRow[3] = $comp->level->getValue();
             }
             if (!is_null($comp->discipline)) {
                 $dataRow[4] = $comp->discipline->discipline->getValue();
             }
             $result[] = $dataRow;
         }
     }
     return $result;
 }
 public function actionDown()
 {
     $discipline = CCorriculumsManager::getDiscipline(CRequest::getInt("id"));
     /**
      * Проверим, вдруг это первый запуск и ничего не отсортировано еще
      */
     if (is_null($discipline->ordering)) {
         $cycle = $discipline->cycle;
         if (!is_null($cycle)) {
             $i = 1;
             foreach ($cycle->disciplines->getItems() as $d) {
                 $d->ordering = $i;
                 $d->save();
                 $i++;
             }
         }
     }
     /**
      * Двигаем только если текущая не последняя
      */
     $cycle = $discipline->cycle;
     if (!is_null($cycle)) {
         if ($discipline->ordering < $cycle->disciplines->getCount()) {
             $curr = $discipline->ordering;
             $d = $cycle->getNthDiscipline($curr + 1);
             if (!is_null($d)) {
                 $d->ordering = $curr;
                 $discipline->ordering = $curr + 1;
                 $discipline->save();
                 $d->save();
             }
         }
     }
     /**
      * Возвращаем обратно
      */
     $this->redirect("cycles.php?action=edit&id=" . $discipline->cycle_id);
 }
 public function actionAdd()
 {
     /**
      * получим дисциплину, по которой делаем рабочую программу
      * @var CCorriculumDiscipline $discipline
      * @var CCorriculum $corriculum
      */
     $discipline = CCorriculumsManager::getDiscipline(CRequest::getInt("id"));
     $corriculum = $discipline->cycle->corriculum;
     //
     $plan = new CWorkPlan();
     $plan->title = "Наименование не указано";
     $plan->title_display = $plan->title;
     // дисциплина из учебного плана
     $plan->corriculum_discipline_id = $discipline->getId();
     // дисциплина из справочника
     if (!is_null($discipline->discipline)) {
         $plan->discipline_id = $discipline->discipline->getId();
     }
     // копируем информацию из учебного плана
     if (!is_null($corriculum)) {
         $plan->direction_id = $corriculum->speciality_direction_id;
         $plan->qualification_id = $corriculum->qualification_id;
         $plan->education_form_id = $corriculum->form_id;
     }
     $plan->year = date("Y");
     $plan->authors = new CArrayList();
     $plan->authors->add(CSession::getCurrentPerson()->getId(), CSession::getCurrentPerson()->getId());
     // место дисциплины в структуре плана
     if (!is_null($discipline->cycle)) {
         $plan->position = "Дисциплина относится к базовой части учебного цикла " . $discipline->cycle->title;
     }
     $plan->save();
     /**
      * Скопируем компетенции из плана
      * @var CCorriculumDisciplineCompetention $competention
      */
     foreach ($discipline->competentions->getItems() as $competention) {
         $planCompetention = new CWorkPlanCompetention();
         $planCompetention->plan_id = $plan->getId();
         $planCompetention->allow_delete = 0;
         $planCompetention->competention_id = $competention->competention_id;
         if ($competention->knowledge_id != 0) {
             $planCompetention->knowledges->add($competention->knowledge_id, $competention->knowledge_id);
         }
         if ($competention->skill_id != 0) {
             $planCompetention->skills->add($competention->skill_id, $competention->skill_id);
         }
         if ($competention->experience_id != 0) {
             $planCompetention->experiences->add($competention->experience_id, $competention->experience_id);
         }
         $planCompetention->save();
     }
     $this->redirect("?action=edit&id=" . $plan->getId());
 }
 /**
  * 
  * @return CArrayList
  */
 private static function getCacheAttestations()
 {
     if (is_null(self::$_cacheAttestations)) {
         self::$_cacheAttestations = new CArrayList();
     }
     return self::$_cacheAttestations;
 }
 /**
  * Копирование списка рабочих программ в другой учебный план
  */
 public function actionCopyInCorriculum()
 {
     $bean = self::getStatefullBean();
     $corriculum = CRequest::getArray("selected");
     $plans = explode(":", $bean->getItem("selected"));
     $corriculum = CCorriculumsManager::getCorriculum($corriculum[0]);
     foreach ($plans as $id) {
         $plan = CWorkPlanManager::getWorkplan($id);
         foreach ($corriculum->getDisciplines() as $discipline) {
             if ($plan->corriculumDiscipline->discipline->getValue() == $discipline->discipline->getValue()) {
                 $newPlan = $plan->copy();
                 $newPlan->corriculum_discipline_id = $discipline->getId();
                 $newPlan->save();
             }
         }
     }
     $this->redirect("workplans.php");
 }
 public function actionDelete()
 {
     $object = CCorriculumsManager::getDisciplineSection(CRequest::getInt("id"));
     $object->remove();
     $this->redirect("disciplineSections.php?action=index");
 }
 public function actionDelete()
 {
     $corriculum = CCorriculumsManager::getCorriculum(CRequest::getInt("id"));
     /**
      * Удаляем практики из плана
      */
     foreach ($corriculum->practices->getItems() as $practice) {
         $practice->remove();
     }
     /**
      * Удаляем циклы
      */
     foreach ($corriculum->cycles->getItems() as $cycle) {
         /**
          * Удаляем дисциплины из циклов
          */
         foreach ($cycle->disciplines->getItems() as $discipline) {
             /**
              * Удаляем нагрузку из дисциплин
              */
             foreach ($discipline->labors->getItems() as $labor) {
                 $labor->remove();
             }
             $discipline->remove();
         }
         $cycle->remove();
     }
     /**
      * Удаляем сам учебный план
      */
     $corriculum->remove();
     /**
      * Все, редирект на страницу со списком
      */
     $this->redirect("index.php?action=index");
 }