Skip to content
Snippets Groups Projects

Updated course file import format

Merged Mihaela Bobaru requested to merge updatedCourseFileImportFormat into master
+ 83
17
Compare changes
  • Side-by-side
  • Inline
Files
+ 82
16
@@ -457,10 +457,14 @@ function update_credit_tardy_etc_fix( $local_db )
'JOIN people USING ( nuid ) ' .
'WHERE people.nuid < 10000000 ' .
'AND ( ( '.
'enrollments.course_id=CONCAT( \'20\', LPAD(events.semester_code, 3, 0), \'.MUSR068001\' ) ' .
'(enrollments.course_id=CONCAT( \'20\', LPAD(events.semester_code, 3, 0), \'.MUSR068001\' ) ' .
'OR enrollments.course_id=CONCAT( events.semester_code, \'.MUSR068001\' ) ' .
'OR enrollments.course_id=CONCAT( \'MUSR-68-001.\', events.semester_code )) ' .
'AND events.ugrad_credit=\'true\' ' .
') OR ( ' .
'enrollments.course_id=CONCAT( \'20\', LPAD(events.semester_code, 3, 0), \'.MUSR068002\' ) ' .
'(enrollments.course_id=CONCAT( \'20\', LPAD(events.semester_code, 3, 0), \'.MUSR068002\' ) ' .
'OR enrollments.course_id=CONCAT( events.semester_code, \'.MUSR068002\' ) ' .
'OR enrollments.course_id=CONCAT( \'MUSR-68-002.\', events.semester_code )) ' .
'AND events.grad_credit=\'true\' ' .
') )';
$local_db->Execute( $sql );
@@ -710,6 +714,36 @@ function get_course($courseId) {
return DB::get_instance()->GetRow("SELECT * FROM courses WHERE course_id=?", array($courseId));
}
function get_old_course($dept, $number, $section, $semester) {
$courseOldId = $semester . '.' . $dept . $number . $section;
return DB::get_instance()->GetRow("SELECT * FROM courses WHERE course_id=?", array($courseOldId));
}
function parseCourseInfo($courseId)
{
$parts = explode("-", $courseId);
if (sizeof($parts) < 3) return null;
$section_semester = explode(".", $parts[2]);
if (sizeof($section_semester) < 2) return null;
$dept = $parts[0];
$course = $parts[1];
$section = $section_semester[0];
$semester = $section_semester[1];
$data = array(
'course_id' => $courseId,
'department' => $dept,
'course_number' => $course,
'section' => $section,
'semester_code' => $semester
);
return $data;
}
function load_courses($db, $filesBaseDir)
{
$courseFile = $filesBaseDir . "/MusicCourse.txt";
@@ -729,20 +763,30 @@ function load_courses($db, $filesBaseDir)
$courseId = trim($lineItems[1]);
$data = array(
'course_id' => $courseId,
'department' => substr($courseId, 5, 4),
'course_number' => substr($courseId, 9, strlen($courseId)-12),
'section' => substr($courseId, -3, 3),
'semester_code' => substr($courseId, 0, 4)
);
$data = parseCourseInfo($courseId);
if (!$data) continue;
if (!get_course($courseId)) {
$semester = $data['semester_code'];
$dept = $data['department'];
$number = $data['course_number'];
$section = $data['section'];
$newCourse = get_course($courseId);
$courseOldId = $semester . '.' . $dept . $number . $section;
$oldCourse = get_old_course($dept, $number, $section, $semester);
if (!$newCourse && !$oldCourse) {
auto_insert($db, 'courses', $data);
}
else {
else if ($newCourse)
{
auto_update($db, 'courses', $data, 'course_id', $courseId);
}
else if ($oldCourse)
{
auto_update($db, 'courses', $data, 'course_id', $courseOldId);
}
}
fclose($handle);
} else {
@@ -775,11 +819,22 @@ function load_enrol($db, $filesBaseDir)
'nuid' => $nuid
);
$courseData = parseCourseInfo($courseId);
if (!$courseData) continue;
$semester = $courseData['semester_code'];
$dept = $courseData['department'];
$number = $courseData['course_number'];
$section = $courseData['section'];
$courseOldId = $semester . '.' . $dept . $number . $section;
$findPeople = "SELECT nuid FROM people WHERE nuid = ?";
$findEnrol = "SELECT enrollment_id FROM enrollments WHERE course_id = ? AND nuid = ?";
$findEnrol = "SELECT enrollment_id FROM enrollments WHERE (course_id = ? OR course_id = ?) AND nuid = ?";
$existingPerson = $db->GetOne($findPeople, array($nuid));
$existingEnrol = $db->GetOne($findEnrol, array($courseId, $nuid));
$existingEnrol = $db->GetOne($findEnrol, array($courseId, $courseOldId, $nuid));
if ($lineItems[2] != 'W') {
if ( !$existingPerson)
@@ -831,11 +886,22 @@ function load_staff($db, $filesBaseDir)
'nuid' => $nuid
);
$courseData = parseCourseInfo($courseId);
if (!$courseData) continue;
$semester = $courseData['semester_code'];
$dept = $courseData['department'];
$number = $courseData['course_number'];
$section = $courseData['section'];
$courseOldId = $semester . '.' . $dept . $number . $section;
$findPeople = "SELECT nuid FROM people WHERE nuid = ?";
$findStaff = "SELECT assignment_id FROM staff_assignments WHERE course_id = ? AND nuid = ?";
$findStaff = "SELECT assignment_id FROM staff_assignments WHERE (course_id = ? Or course_id = ?) AND nuid = ?";
$existingPerson = $db->GetOne($findPeople, array($nuid));
$existingStaff = $db->GetOne($findStaff, array($courseId, $nuid));
$existingStaff = $db->GetOne($findStaff, array($courseId, $courseOldId, $nuid));
if ( !$existingPerson )
{
@@ -844,7 +910,7 @@ function load_staff($db, $filesBaseDir)
if ($existingStaff)
{
auto_update($db, 'staff_assignments', $staffData, 'assignment_id', $existingStaff['assignment_id']);
auto_update($db, 'staff_assignments', $staffData, 'assignment_id', $existingStaff['assignment_id']);
}
else if ($existingPerson)
{
Loading