public static function getCourses($widget, $values)
 {
     $career_school_year_id = sfContext::getInstance()->getUser()->getAttribute('career_school_year_id');
     $c2 = new Criteria();
     $c2->add(CareerSubjectPeer::YEAR, $values);
     $c2->add(CareerSubjectPeer::HAS_OPTIONS, false);
     $c2->addAnd(CareerSubjectPeer::IS_OPTION, false);
     $c2->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $c2->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id);
     $c2->addSelectColumn(CareerSubjectSchoolYearPeer::ID);
     $stmt2 = CareerSubjectSchoolYearPeer::doSelectStmt($c2);
     $no_options = $stmt2->fetchAll();
     $c = new Criteria();
     $c->add(CareerSubjectPeer::YEAR, $values);
     $c->add(CareerSubjectPeer::HAS_OPTIONS, false);
     $c->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $c->add(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, $career_school_year_id);
     $c->addJoin(CareerSubjectPeer::SUBJECT_ID, SubjectPeer::ID);
     $c->addJoin(CareerSubjectPeer::ID, CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID);
     $c->addJoin(OptionalCareerSubjectPeer::CHOICE_CAREER_SUBJECT_SCHOOL_YEAR_ID, CareerSubjectSchoolYearPeer::ID);
     $c->clearSelectColumns();
     $c->addSelectColumn(CareerSubjectSchoolYearPeer::ID);
     $stmt = CareerSubjectSchoolYearPeer::doSelectStmt($c);
     $options = $stmt->fetchAll();
     $all = array_merge($options, $no_options);
     $choice = array();
     foreach ($all as $echa) {
         $choice[] = $echa['ID'];
     }
     $criteria = new Criteria();
     $criteria->add(CareerSubjectSchoolYearPeer::ID, $choice, Criteria::IN);
     $criteria->addJoin(CareerSubjectSchoolYearPeer::CAREER_SUBJECT_ID, CareerSubjectPeer::ID);
     $criteria->addJoin(CareerSubjectPeer::SUBJECT_ID, SubjectPeer::ID);
     $criteria->addAscendingOrderByColumn(SubjectPeer::NAME);
     $widget->setOption('criteria', $criteria);
 }
Beispiel #2
0
 public function getErrorsWithCourseSubjectsStudent($career_school_year)
 {
     $c = new Criteria();
     $c->add(CareerSchoolYearPeer::ID, $career_school_year->getId());
     $c->addJoin(CareerSubjectSchoolYearPeer::CAREER_SCHOOL_YEAR_ID, CareerSchoolYearPeer::ID);
     $c->addJoin(CareerSubjectSchoolYearPeer::ID, CourseSubjectPeer::CAREER_SUBJECT_SCHOOL_YEAR_ID);
     $c->addJoin(CourseSubjectStudentPeer::COURSE_SUBJECT_ID, CourseSubjectPeer::ID);
     $c->add(CourseSubjectStudentPeer::STUDENT_ID, $this->getId());
     $c->clearSelectColumns();
     $c->addSelectColumn(CareerSubjectSchoolYearPeer::ID);
     $stmt = CareerSubjectSchoolYearPeer::doSelectStmt($c);
     //me quedo solo con los IDs de los CareerSubjectSchoolYear
     $array = $stmt->fetchAll(PDO::FETCH_COLUMN);
     unset($stmt);
     //ordeno de mayot a menor
     arsort($array);
     //armo un arreglo con las claves de los CareerSubjectSchoolYear->ID y
     //valor la cantidad de veces que esta adentro del arreglo
     $array_count = array_count_values($array);
     unset($array);
     //Filtro los valores que son menores a 1
     $array_filtered = array_filter($array_count, create_function('$each', 'return $each>1;'));
     CareerSubjectSchoolYearPeer::clearInstancePool();
     unset($array_count);
     if (!empty($array_filtered)) {
         $array_filtered = SchoolBehaviourFactory::getEvaluatorInstance()->evaluateErrorsWithCareerSubjectSchoolYear($array_filtered);
     }
     return $array_filtered;
 }