public function executeSave() { $score_rule_id = $this->getRequestParameter('id'); $score_rule = ScoreRulePeer::retrieveByPK($score_rule_id); $this->forward404Unless($score_rule); $subs = $this->getRequestParameter('sub'); foreach ($subs as $m => $sub) { $ids = split('_', $m); ## $ids [0] == Subject Curr Id ## $ids [1] == Score Rule Id $c = new Criteria(); $c->add(ScoreRuleSubjectPeer::SCORE_RULE_ID, $ids[1]); $c->add(ScoreRuleSubjectPeer::SUBJECT_CURR_ID, $ids[0]); $score_rule_subject = ScoreRuleSubjectPeer::doSelectOne($c); if ($score_rule_subject == null) { $score_rule_subject = new ScoreRuleSubject(); } $score_rule_subject->setSubjectCurrId($ids[0]); $score_rule_subject->setScoreRuleId($ids[1]); $score_rule_subject->setPublished(1); $score_rule_subject->save(); } $sequences = $this->getRequestParameter('sequence'); foreach ($sequences as $m => $sequence) { $ids = split('_', $m); ## $ids [0] == Subject Curr Id ## $ids [1] == Score Rule Id $c = new Criteria(); $c->add(ScoreRuleSubjectPeer::SCORE_RULE_ID, $ids[1]); $c->add(ScoreRuleSubjectPeer::SUBJECT_CURR_ID, $ids[0]); $score_rule_subject = ScoreRuleSubjectPeer::doSelectOne($c); if ($score_rule_subject == null) { $score_rule_subject = new ScoreRuleSubject(); } $score_rule_subject->setSubjectCurrId($ids[0]); $score_rule_subject->setScoreRuleId($ids[1]); $score_rule_subject->setSequence($sequence); $score_rule_subject->save(); } $parents = $this->getRequestParameter('parent'); foreach ($parents as $m => $parent) { if ($parent != null) { $ids = split('_', $m); ## $ids [0] == Subject Curr Id ## $ids [1] == Score Rule Id $c = new Criteria(); $c->add(ScoreRuleSubjectPeer::SCORE_RULE_ID, $ids[1]); $c->add(ScoreRuleSubjectPeer::SUBJECT_CURR_ID, $ids[0]); $score_rule_subject = ScoreRuleSubjectPeer::doSelectOne($c); if ($score_rule_subject == null) { $score_rule_subject = new ScoreRuleSubject(); } $score_rule_subject->setSubjectCurrId($ids[0]); $score_rule_subject->setScoreRuleId($ids[1]); $score_rule_subject->setParent($parent); $score_rule_subject->save(); } } $tipes = $this->getRequestParameter('tipe'); foreach ($tipes as $m => $tipe) { $ids = split('_', $m); ## $ids [0] == Subject Curr Id ## $ids [1] == Score Rule Id $c = new Criteria(); $c->add(ScoreRuleSubjectPeer::SCORE_RULE_ID, $ids[1]); $c->add(ScoreRuleSubjectPeer::SUBJECT_CURR_ID, $ids[0]); $score_rule_subject = ScoreRuleSubjectPeer::doSelectOne($c); if ($score_rule_subject == null) { $score_rule_subject = new ScoreRuleSubject(); } $score_rule_subject->setSubjectCurrId($ids[0]); $score_rule_subject->setScoreRuleId($ids[1]); $score_rule_subject->setSubjectType($tipe); $score_rule_subject->save(); } $delsubs = $this->getRequestParameter('delsub'); foreach ($delsubs as $m => $delsub) { $ids = split('_', $m); ## $ids [0] == Subject Curr Id ## $ids [1] == Score Rule Id $c = new Criteria(); $c->add(ScoreRuleSubjectPeer::SCORE_RULE_ID, $ids[1]); $c->add(ScoreRuleSubjectPeer::SUBJECT_CURR_ID, $ids[0]); $score_rule_subject = ScoreRuleSubjectPeer::doSelectOne($c); if ($score_rule_subject != null) { $score_rule_subject->delete(); } } return $this->redirect('score_rule_new/listSubject?rule_id=' . $score_rule->getId()); }
public function addScoreRuleSubjectRelatedByParent(ScoreRuleSubject $l) { $this->collScoreRuleSubjectsRelatedByParent[] = $l; $l->setScoreRuleSubjectRelatedByParent($this); }