public function executeUpdateOptional(sfWebRequest $request) { $this->career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByPk($request->getParameter('id')); if (null === $this->career_subject_school_year) { $this->getUser()->setFlash('error', 'Debe seleccionar una materia para editar sus opciones'); $this->redirect('@career_school_year'); } $this->form = new OptionalCareerSubjectManyForm($this->career_subject_school_year); $this->processForm($request, $this->form); $this->setTemplate('optional'); }
public function save($con = null) { if (!$this->isValid()) { throw $this->getErrorSchema(); } if (is_null($con)) { $con = Propel::getConnection(CareerSubjectSchoolYearPeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } try { $con->beginTransaction(); $values = $this->getValues(); // TODO: ver si se puede mejorar esto: $fields = array("final_examination_required", "course_required", "course_minimun_mark", "course_examination_count", "max_previous", "evaluation_method", "course_type", "attendance_type"); $to_save = array(); foreach ($fields as $field) { $to_save[$field] = isset($values[$field]) ? $values[$field] : null; unset($values[$field]); } foreach ($values as $career_subject_school_year_id) { $career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByPk($career_subject_school_year_id, $con); $subject_configuration = $career_subject_school_year->getSubjectConfigurationOrCreate(); foreach ($to_save as $field => $value) { if (!is_null($value)) { $method = "set" . sfInflector::camelize($field); $subject_configuration->{$method}($value); } } $career_subject_school_year->setSubjectConfiguration($subject_configuration); $subject_configuration->setCourseMarks(BaseCustomOptionsHolder::getInstance('CourseType')->getMarksFor($subject_configuration->getCourseType())); $subject_configuration->setEvaluationMethod(BaseCustomOptionsHolder::getInstance('CourseType')->getEvaluationMethodFor($subject_configuration->getCourseType())); $subject_configuration->save($con); } $con->commit(); } catch (Exception $e) { $con->rollBack(); throw $e; } return $this->object; }
public function createCourse($career_subject_school_year_id, PropelPDO $con = null) { $career_subject_school_year = CareerSubjectSchoolYearPeer::retrieveByPk($career_subject_school_year_id); $course = new Course(); $course->setName($this->getName() . ' ' . $career_subject_school_year->getCareerSubject()->getSubjectName()); $course->setDivision($this); $course->setSchoolYear($career_subject_school_year->getSchoolYear()); $course->save($con); $career_subject_school_year->createCourseSubject($course, $con); }