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); }
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; }