public function executeSave() { $i18n = new sfI18N(); $i18n->initialize($this->getContext()); $i18n->setCulture($this->getUser()->getCulture()); $action_i18n = $i18n->globalMessageFormat->format('save as new'); $action_type = $this->getRequestParameter('action_type'); $subject_curr_id = $this->getRequestParameter('subject_curr_id'); $subject_curr = SubjectCurrPeer::retrieveByPK($subject_curr_id); $this->forward404Unless($subject_curr); $academic_calendar_id = $this->getRequestParameter('accal_id'); $academic_calendar = AcademicCalendarPeer::retrieveByPK($academic_calendar_id); $this->forward404Unless($academic_calendar); $class_group_id = $this->getRequestParameter('class_group_id'); $class_group = ClassGroupPeer::retrieveByPK($class_group_id); $this->forward404Unless($class_group); $bobotki3 = $this->getRequestParameter('bobotki3'); $bobotki4 = $this->getRequestParameter('bobotki4'); $kis = $this->getRequestParameter('ki'); foreach ($kis as $m => $ki) { $subs = $this->getRequestParameter('sub'); foreach ($subs as $k => $sub) { $c = new Criteria(); $c->add(CourseSchedulePeer::CLASS_GROUP_ID, $k); $c->add(CourseSchedulePeer::SUBJECT_CURR_ID, $subject_curr->getId()); $c->add(CourseSchedulePeer::ACADEMIC_CALENDAR_ID, $academic_calendar->getId()); $course_sched = CourseSchedulePeer::doSelectOne($c); if ($course_sched) { $cur13_term = new Cur13Term(); $cur13_term->setCourseScheduleId($course_sched->getId()); $cur13_term->setCode($this->getRequestParameter('code')); $cur13_term->setName($this->getRequestParameter('name')); $cur13_term->setDescription($this->getRequestParameter('description')); $cur13_term->setCur13KiId($m); $cur13_term->save(); ##KI.3 if ($m == ScoreRule::THREE) { $spki3s = $this->getRequestParameter('spki3'); foreach ($spki3s as $l => $spki3) { $ct = new Criteria(); $ct->add(Cur13TermSpecPeer::CUR13_TERM_ID, $cur13_term->getId()); $ct->add(Cur13TermSpecPeer::GRADE_SPEC_ID, $l); $cur13_ts = Cur13TermSpecPeer::doSelectOne($ct); if ($cur13_ts == null) { $cur13_ts = new Cur13TermSpec(); } $cur13_ts->setCur13TermId($cur13_term->getId()); $cur13_ts->setGradeSpecId($l); $cur13_ts->setBobot($bobotki3[$l]); $cur13_ts->save(); } ##KI.4 } elseif ($m == ScoreRule::FOUR) { $spki4s = $this->getRequestParameter('spki4'); foreach ($spki4s as $l => $spki4) { $ct = new Criteria(); $ct->add(Cur13TermSpecPeer::CUR13_TERM_ID, $cur13_term->getId()); $ct->add(Cur13TermSpecPeer::GRADE_SPEC_ID, $l); $cur13_ts = Cur13TermSpecPeer::doSelectOne($ct); if ($cur13_ts == null) { $cur13_ts = new Cur13TermSpec(); } $cur13_ts->setCur13TermId($cur13_term->getId()); $cur13_ts->setGradeSpecId($l); $cur13_ts->setBobot($bobotki4[$l]); $cur13_ts->save(); } } } else { if (SF_ENVIRONMENT == 'dev') { echo 'course schedule not found'; die; } } } } return $this->redirect('cur13_term/getSubject?subject_curr_id=' . $subject_curr->getId() . '&accal_id=' . $academic_calendar->getId() . '&class_group_id=' . $class_group->getId()); }