protected function execute($arguments = array(), $options = array()) { // initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection(); // add your code here $courses = CoursePeer::doSelect(new Criteria()); foreach ($courses as $course) { $division = new Division(); $division->setName($course->getName()); $division->setSchoolYearId($course->getSchoolYearId()); foreach ($course->getCourseSubjects() as $course_subject) { $course_students = $course->getCourseStudents(); if (isset($course_students[0])) { $division->setCareerId($course_students[0]->getCareerSubject()->getCareerId()); } else { $division->setCareerId(1); } $new_course = new Course(); $course->copyInto($new_course); $new_course->setName($course_subject->getSubject() . ' - ' . $course->getName()); $new_course->save(); $new_course_subject = new CourseSubject(); $course_subject->copyInto($new_course_subject); $new_course_subject->setCourseId($new_course->getId()); $new_course_subject->setCourseId($new_course->getId()); $new_course_subject->save(); $course_subject->delete(); $c = new Criteria(); $c->add(CourseStudentPeer::COURSE_ID, $course->getId()); $c->addJoin(CourseStudentPeer::CAREER_SUBJECT_ID, CareerSubjectPeer::ID); $c->add(CareerSubjectPeer::SUBJECT_ID, $new_course_subject->getSubjectId()); $course_students = CourseStudentPeer::doSelect($c); foreach ($course_students as $course_student) { $new_course_student = new CourseStudent(); $course_student->copyInto($new_course_student); $new_course_student->setCourseId($new_course->getId()); $new_course_student->save(); $course_student->delete(); } $division_course = new DivisionCourse(); $division_course->setCourse($new_course); $division->addDivisionCourse($division_course); } try { $course->delete(); } catch (Exception $e) { } try { $division->save(); } catch (Exception $e) { } $this->logSection('division+', 'Division ' . $division . ' created'); } }
public static function getPotentialStudentIds($subject_id, $course_id, $potential_student_ids) { $criteria = new Criteria(); $criteria->add(self::SUBJECT_ID, $subject_id, Criteria::EQUAL); $criteria->add(self::COURSE_ID, $course_id, Criteria::NOT_EQUAL); $same_stundent_ids = array(); foreach (self::doSelect($criteria) as $course_subject) { $students = CourseStudentPeer::getStudentForCourse($course_subject->getCourseId()); foreach ($students as $student) { if (in_array($student->getId(), $potential_student_ids)) { $same_stundent_ids[] = $student->getId(); } } } $student_ids = array_diff($potential_student_ids, $same_stundent_ids); return $student_ids; }
protected function execute($arguments = array(), $options = array()) { // Initialize the database connection $databaseManager = new sfDatabaseManager($this->configuration); $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection(); echo "Leyendo cursos en la base de datos...[No se puede hacer mas lento :)]\n"; foreach (CoursePeer::doSelect(new Criteria()) as $course) { echo "Arreglando curso '" . $course . "'...\n"; $students_ids = array(); foreach ($course->getCourseStudents() as $course_student) { if (!in_array($course_student->getStudentId(), $students_ids)) { $students_ids[] = $course_student->getStudentId(); } $course_student->delete(); } foreach ($students_ids as $id) { if (!CourseStudentPeer::generateInscriptionToCourse($id, $course->getId())) { echo "Error. Curso con cupo maximo superado o inscripcion ya existente.\n"; } } } }