public function executeSaveTerm() { $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'); $course_schedule = CourseSchedulePeer::retrieveByPk($this->getRequestParameter('course_id')); $this->forward404Unless($course_schedule); $cur13_ki = Cur13KiPeer::retrieveByPK($this->getRequestParameter('cur13_ki_id')); $this->forward404Unless($cur13_ki); if ($action_type == $action_i18n || !$this->getRequestParameter('id')) { $cur13_term = new Cur13Term(); $cur13_term->setId($this->getRequestParameter('id')); $cur13_term->setCourseScheduleId($course_schedule->getId()); $cur13_term->setCur13KiId($cur13_ki->getId()); $cur13_term->setCode($this->getRequestParameter('code')); $cur13_term->setName($this->getRequestParameter('name')); $cur13_term->setDescription($this->getRequestParameter('description')); $cur13_term->save(); } else { $cur13_term = Cur13TermPeer::retrieveByPk($this->getRequestParameter('id')); $this->forward404Unless($cur13_term); $cur13_term->setId($this->getRequestParameter('id')); $cur13_term->setCourseScheduleId($course_schedule->getId()); $cur13_term->setCur13KiId($cur13_ki->getId()); $cur13_term->setCode($this->getRequestParameter('code')); $cur13_term->setName($this->getRequestParameter('name')); $cur13_term->setDescription($this->getRequestParameter('description')); $cur13_term->save(); ## Simpan Komponen Penilaian $subs = $this->getRequestParameter('sub'); $bobot = $this->getRequestParameter('bobot'); foreach ($subs as $m => $sub) { $ids = split('_', $m); $ct = new Criteria(); $ct->add(Cur13TermSpecPeer::CUR13_TERM_ID, $ids[1]); $ct->add(Cur13TermSpecPeer::GRADE_SPEC_ID, $ids[0]); $ga_spec = Cur13TermSpecPeer::doSelectOne($ct); if ($ga_spec == null) { $ga_spec = new Cur13TermSpec(); } $ga_spec->setCur13TermId($ids[1]); $ga_spec->setGradeSpecId($ids[0]); $ga_spec->setBobot($bobot[$m]); $ga_spec->save(); } ## Hapus Komponen $delsubs = $this->getRequestParameter('delsub'); foreach ($delsubs as $m => $delsub) { $ids = split('_', $m); $ct = new Criteria(); $ct->add(Cur13TermSpecPeer::CUR13_TERM_ID, $ids[1]); $ct->add(Cur13TermSpecPeer::GRADE_SPEC_ID, $ids[0]); $ga_spec = Cur13TermSpecPeer::doSelectOne($ct); if ($ga_spec != null) { $ga_spec->delete(); } } } return $this->redirect('course_sd/listTerm?course_id=' . $course_schedule->getId() . '&cur13_ki_id=' . $cur13_ki->getId()); }