Exemplo n.º 1
0
 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;
 }
Exemplo n.º 3
0
 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);
 }