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');
     }
 }
Esempio n. 2
0
 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";
             }
         }
     }
 }