public function actionSave() { $object = new CWorkPlanCompetention(); $object->setAttributes(CRequest::getArray($object::getClassName())); if ($object->validate()) { $object->save(); if ($this->continueEdit()) { $this->redirect("workplancompetentions.php?action=edit&id=" . $object->getId()); } else { $this->redirect("workplancompetentions.php?action=index&plan_id=" . $object->plan_id); } return true; } $this->setData("object", $object); $this->renderView("_corriculum/_workplan/competentions/edit.tpl"); }
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()); }
public function actionUpdate() { $plan = CWorkPlanManager::getWorkplan(CRequest::getInt("id")); $type = CRequest::getInt("type"); if ($type == 0) { if (!is_null($plan->corriculumDiscipline)) { foreach (CActiveRecordProvider::getWithCondition(TABLE_CORRICULUM_DISCIPLINE_COMPETENTIONS, "discipline_id=" . $plan->corriculumDiscipline->getId())->getItems() as $ar) { $newCompetention = new CActiveModel($ar); $object = new CWorkPlanCompetention(); $object->plan_id = $plan->getId(); $object->type = $type; $object->competention_id = $newCompetention->competention_id; $object->level_id = $newCompetention->level_id; foreach ($plan->corriculumDiscipline->competentions->getItems() as $competention) { foreach ($competention->knowledges->getItems() as $knowledge) { $object->knowledges->add($knowledge->getId(), $knowledge->getId()); } foreach ($competention->skills->getItems() as $skill) { $object->skills->add($skill->getId(), $skill->getId()); } foreach ($competention->experiences->getItems() as $experience) { $object->experiences->add($experience->getId(), $experience->getId()); } } $object->save(); } } } if ($type == 1) { if (!is_null($plan->disciplinesBefore)) { foreach ($plan->disciplinesBefore->getItems() as $item) { foreach (CActiveRecordProvider::getWithCondition(TABLE_CORRICULUM_DISCIPLINE_COMPETENTIONS, "discipline_id=" . $item->getId())->getItems() as $ar) { $competention = new CActiveModel($ar); $object = new CWorkPlanCompetention(); $object->plan_id = $plan->getId(); $object->type = $type; $object->competention_id = $competention->competention_id; $object->level_id = $competention->level_id; $object->discipline_id = $competention->discipline_id; $object->save(); } } } } if ($type == 2) { if (!is_null($plan->disciplinesAfter)) { foreach ($plan->disciplinesAfter->getItems() as $item) { foreach (CActiveRecordProvider::getWithCondition(TABLE_CORRICULUM_DISCIPLINE_COMPETENTIONS, "discipline_id=" . $item->getId())->getItems() as $ar) { $competention = new CActiveModel($ar); $object = new CWorkPlanCompetention(); $object->plan_id = $plan->getId(); $object->type = $type; $object->competention_id = $competention->competention_id; $object->level_id = $competention->level_id; $object->discipline_id = $competention->discipline_id; $object->save(); } } } } $this->redirect("workplancompetentions.php?action=index&plan_id=" . $plan->getId() . "&type=" . $type); }