Ejemplo n.º 1
0
Archivo: lib.php Proyecto: rrusso/EARS
 /**
  * PROCESS ENROLLMENT FILE
  * Expects a file of format: Semester|Student PawsID|Campus|Department|Course #|Section #|Status Code|HRS|Real Date|EFFECTIVE DATE|FERP
  */
 function parse_enrollfile($now, $line)
 {
     $fields = array_map('addslashes', array_map('trim', explode('|', $line)));
     // Process only if we have the correct number of fields
     if (count($fields) != 11) {
         $a->file = $this->files['enrollfile'];
         $a->line = $line;
         $this->errorlog[] = get_string('malformed', 'block_courseprefs', $a);
         return;
     }
     // Lookup necessary foreign keys for enrollment lookup; throw exception if any are missing
     list($year, $semester_name) = $this->parse_semester($fields[0]);
     $semester = CoursePrefsSemester::findByUnique($year, $semester_name, $fields[2]);
     if (!$semester) {
         $this->errorlog[] = 'Unable to lookup semester entry for enrollment in ' . $this->files['enrollfile'] . ': ' . $line;
         return;
     }
     $user = CoursePrefsUser::findByUnique($fields[1]);
     if (!$user) {
         $this->errorlog[] = 'Unable to lookup user entry for enrollment in ' . $this->files['enrollfile'] . ': ' . $line;
         return;
     }
     $course = CoursePrefsCourse::findByUnique($fields[3], $fields[4]);
     if (!$course) {
         $this->errorlog[] = 'Unable to lookup course entry for enrollment in ' . $this->files['enrollfile'] . ': ' . $line;
         return;
     }
     $section = CoursePrefsSection::findByUnique($semester->getId(), $course->getId(), $fields[5]);
     if (!$section) {
         $this->errorlog[] = 'Unable to lookup section entry for enrollment in ' . $this->files['enrollfile'] . ': ' . $line;
         return;
     }
     try {
         $new_fields = array(1, $fields[6], $fields[8], $fields[9], $fields[7]);
         $this->process_enrollment($user, $section, $new_fields);
     } catch (Exception $e) {
         $this->errorlog[] = $e->getMessage() . ' from ' . $this->files['enrollfile'] . ': ' . $line;
     }
     $user->setFerpa($fields[10]);
     try {
         $user->save();
     } catch (Exception $e) {
         $this->errorlog[] = $e->getMessage() . ' from ' . $this->files['enrollfile'] . ': ' . $line;
     }
 }