GIF89a; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 134.29.175.74 / Your IP : 216.73.216.160 Web Server : nginx/1.10.2 System : Windows NT CST-WEBSERVER 10.0 build 19045 (Windows 10) i586 User : Administrator ( 0) PHP Version : 7.1.0 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/nginx/html/Scheduler/Schedule/ScheduleImportClasses/ |
Upload File : |
<? // Schedule/ScheduleImportClasses/ImportParsedClasses.phpinc // Import classes into this schedule. t_Begin(true); // Begin TRACKing ImportParsedClasses.phpinc. // DELETE existing scheduleclasses (start with a clean slate). d_Var("\$_SESSION['user']['scheduleId']",$_SESSION['user']['scheduleId']); d_Var("\$_SESSION['user']",$_SESSION['user']); $query = " DELETE FROM `scheduleclass` WHERE scheduleId = ".$_SESSION['user']['scheduleId']." "; d_Var('scheduleclassDELETE',$query,'q'); $scheduleclassDELETE = query_do($query); d_Var('$scheduleclassDELETE',$scheduleclassDELETE,'l'); $importedClasses = array(); // Get current session info. d_V(); unset($f['departmentId']); require('../Schedule/getSchedule.phpinc'); require('../Schedule/getSession.phpinc'); d_Var('$sessionInfo',$sessionInfo); // Get departmentIds. $query = " SELECT departmentId FROM `department` WHERE departmentInactive = 0 ORDER BY departmentName "; d_Var('departmentResult',$query,'q'); $departmentResult = query_do($query); $departmentCount = $GLOBALS['_QUERY']['count']; $departmentIds = query_to_array($departmentResult); d_Var('$departmentIds',$departmentIds,''); // Apply department filters. filter_department_15 foreach ( $departmentIds as $departmentId ) { formArray('filter_department',$departmentId); } d_V(); // Get classes in import session. $query = " SELECT classId , departmentCode , courseNumber , courseTitle , class.YRTR , classQId , course.courseId , classSection , classEnr , classMax , classStartDate , classEndDate , courseinsttypeId FROM `class` JOIN `course` on class.courseId = course.courseId JOIN `department` on course.departmentId = department.departmentId WHERE class.YRTR = '". $sessionInfo['YRTR']."' AND department.departmentId IN ( 0"; foreach ( $f['filter_department'] AS $departmentId => $selected ) { if ( $selected ) { $query .= ", ".$departmentId; } } $query .= " ) ORDER BY classQId "; d_Var('classResult',$query,'q'); $classResult = query_do($query); $classCount = $GLOBALS['_QUERY']['count']; d_Var('$classResult',$classResult,'k'); if ( $classCount ) { // Are there any classes to import? // Yes. Import the classes. query_seek($classResult, 0); while ($classInfo = query_row($classResult)) { // Loop thru classes to import. $thisCLASS = array(); $thisCLASS['course'] = $classInfo['departmentCode'].$classInfo['courseNumber']; d_Line($thisCLASS['course'].'-'.$classInfo['classSection'],'/b'); if ( in_array($thisCLASS['course'],$importedClasses) === true ) { d_Line('New section: '.$classInfo['classSection'],'a'); $newSection = true; } else { $importedClasses[] = $thisCLASS['course']; $newSection = false; } ##d_Var('$classInfo',$classInfo,'l'); $thisCLASS['YRTR'] = $classInfo['YRTR']; $thisCLASS['scheduleclassQId'] = $classInfo['classQId']; $thisCLASS['courseId'] = $classInfo['courseId']; $thisCLASS['scheduleclassEnr'] = $classInfo['classEnr']; $thisCLASS['scheduleclassMax'] = $classInfo['classMax']; $thisCLASS['scheduleclassStartDate'] = $classInfo['classStartDate']; $thisCLASS['scheduleclassEndDate'] = $classInfo['classEndDate']; $thisCLASS['courseinsttypeId'] = $classInfo['courseinsttypeId']; $thisCLASS['scheduleclassOnline'] = 0; // Begin with not online. $thisCLASS['scheduleclassSection'] = $classInfo['classSection']; $thisCLASS['meeting'] = array(); $thisCLASSmeetingIndex = 0; $previousCLASSmeetingIndex = 0; // Need scheduleId. // Get classmeetings. Note: classmeetingOnOff; NULL = neither, 1 = Online, 0 = Off Campus. $query = " SELECT classmeetingId , classmeetingStartDate , classmeetingEndDate , classmeetingBeginTime , classmeetingEndTime , classmeetingOnOff , roomId FROM `classmeeting` WHERE classId = ".$classInfo['classId']." ORDER BY classmeetingStartDate "; //d_Var('classmeetingResult',$query,'q'); $classmeetingResult = query_do($query); $classmeetingCount = $GLOBALS['_QUERY']['count']; ##d_Var('$classmeetingResult',$classmeetingResult,''); if ( $classmeetingCount ) { // Are there any classmeetings? query_seek($classmeetingResult, 0); $thisClassMeetingIdentifier = ''; $previousClassMeetingIdentifier = '_'; while ($classmeetingInfo = query_row($classmeetingResult)) { // Loop thru classmeeting. ##d_Var('$thisCLASSmeetingIndex',$thisCLASSmeetingIndex,'/a'); $thisCLASS['meeting'][$thisCLASSmeetingIndex] = array(); $thisCLASS['meeting'][$thisCLASSmeetingIndex]['days'] = array(); $thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'] = array(); $thisCLASS['meeting'][$thisCLASSmeetingIndex]['instructors'] = array(); $thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingStartDate'] = $classmeetingInfo['classmeetingStartDate']; $thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingEndDate'] = $classmeetingInfo['classmeetingEndDate']; $thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingBeginTime'] = $classmeetingInfo['classmeetingBeginTime']; $thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingEndTime'] = $classmeetingInfo['classmeetingEndTime']; // Note: classmeetingOnOff; NULL = neither (on campus), 1 = Online, 0 = Off Campus. d_Var("\$classmeetingInfo['classmeetingOnOff']",$classmeetingInfo['classmeetingOnOff']); if ( $classmeetingInfo['classmeetingOnOff'] == 1 ) { // Is the meeting online? $thisCLASS['scheduleclassOnline'] = 1; // The class is online. $thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus'] = 'NULL'; } elseif ( !is_null($classmeetingInfo['classmeetingOnOff']) && $classmeetingInfo['classmeetingOnOff'] == 0 ) { // Is this meeting off campus? $thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus'] = 0; // off campus } else { $thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus'] = 1; // on campus } ##d_Var("\$thisCLASS['scheduleclassOnline']",$thisCLASS['scheduleclassOnline']); ##d_Var("\$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus']",$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingOnCampus']); $thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][] = $classmeetingInfo['roomId']; ##d_Var("\$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms']",$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'],''); // Need scheduleclassId on INSERT // Get days. $query = " SELECT classmeetingId , weekdayId FROM `classmeetingweekday` WHERE classmeetingId = ".$classmeetingInfo['classmeetingId']." "; //d_Var('classmeetingweekdayResult',$query,'q'); $classmeetingweekdayResult = query_do($query); $classmeetingweekdayCount = $GLOBALS['_QUERY']['count']; //d_Var('$classmeetingweekdayResult',$classmeetingweekdayResult); if ( $classmeetingweekdayCount ) { query_seek($classmeetingweekdayResult, 0); while ($classmeetingweekdayInfo = query_row($classmeetingweekdayResult)) { $thisCLASS['meeting'][$thisCLASSmeetingIndex]['days'][] = $classmeetingweekdayInfo['weekdayId']; } } // Get instructors. $query = " SELECT classmeetingId , userId FROM `classmeetinginstructor` WHERE classmeetingId = ".$classmeetingInfo['classmeetingId']." "; //d_Var('classmeetinginstructorResult',$query,'q'); $classmeetinginstructorResult = query_do($query); $classmeetinginstructorCount = $GLOBALS['_QUERY']['count']; //d_Var('$classmeetinginstructorResult',$classmeetinginstructorResult); if ( $classmeetinginstructorCount ) { query_seek($classmeetinginstructorResult, 0); while ($classmeetinginstructorInfo = query_row($classmeetinginstructorResult)) { $thisCLASS['meeting'][$thisCLASSmeetingIndex]['instructors'][] = $classmeetinginstructorInfo['userId']; } } // Is this class meeting the same as ANY previous class meeting. if ( $thisCLASSmeetingIndex > 0 ) { // Are there previous meetings? $thisClassMeetingIdentifier = 'StartDate:'.$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingStartDate'] . '_EndDate:'.$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingEndDate'] . '_BeginTime:'.$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingBeginTime'] . '_EndTime:'.$thisCLASS['meeting'][$thisCLASSmeetingIndex]['scheduleclassmeetingEndTime'] ; $thisClassMeetingIdentifier .= '_days:'; $prefix = ''; foreach ($thisCLASS['meeting'][$thisCLASSmeetingIndex]['days'] as $weekdayId ) { $thisClassMeetingIdentifier .= $prefix.$weekdayId; $prefix = ','; } $thisClassMeetingIdentifier .= '_instructors:'; $prefix = ''; foreach ($thisCLASS['meeting'][$thisCLASSmeetingIndex]['instructors'] as $userId ) { $thisClassMeetingIdentifier .= $prefix.$userId; $prefix = ','; } ##d_Var('$previousCLASSmeetingIndex',$previousCLASSmeetingIndex,''); ##d_Var('thisCLASSmeetingIndex',$thisCLASSmeetingIndex,''); $newMeeting = false; for ( $i=0; $i < $thisCLASSmeetingIndex; $i++ ) { // Loop thru previous meetings. ##d_Line('Previous meeting: '.$i,'/a'); $previousClassMeetingIdentifier = 'StartDate:'.$thisCLASS['meeting'][$i]['scheduleclassmeetingStartDate'] . '_EndDate:'.$thisCLASS['meeting'][$i]['scheduleclassmeetingEndDate'] . '_BeginTime:'.$thisCLASS['meeting'][$i]['scheduleclassmeetingBeginTime'] . '_EndTime:'.$thisCLASS['meeting'][$i]['scheduleclassmeetingEndTime']; $previousClassMeetingIdentifier .= '_days:'; $prefix = ''; foreach ($thisCLASS['meeting'][$i]['days'] as $weekdayId ) { $previousClassMeetingIdentifier .= $prefix.$weekdayId; $prefix = ','; } $previousClassMeetingIdentifier .= '_instructors:'; $prefix = ''; foreach ($thisCLASS['meeting'][$i]['instructors'] as $userId ) { $previousClassMeetingIdentifier .= $prefix.$userId; $prefix = ','; } //if ( $thisCLASS['scheduleclassQId'] == '000744' ) { ##d_Var('thisClassMeetingIdentifier',$thisClassMeetingIdentifier,''); ##d_Var('previousClassMeetingIdentifier',$previousClassMeetingIdentifier,''); if ($thisClassMeetingIdentifier == $previousClassMeetingIdentifier) { ##d_Line('Same','w'); } else { ##d_Line('New','a'); } //} if ($thisClassMeetingIdentifier == $previousClassMeetingIdentifier) { // Does this match a previous meeting? $newMeeting = false; break; //$thisCLASSmeetingIndex--; } else { // Does this match a previous meeting? // No, keep meeting and continue to next one. $newMeeting = true; } // Does this match a previous meeting? } // Loop thru previous meetings. ##d_Var('$newMeeting',$newMeeting,'a'); if ( $newMeeting ) { $previousCLASSmeetingIndex = $thisCLASSmeetingIndex; $thisCLASSmeetingIndex++; ##d_Var('Meeting does not match $previousCLASSmeetingIndex',$previousCLASSmeetingIndex,''); ##d_Var('Meeting does not match $thisCLASSmeetingIndex',$thisCLASSmeetingIndex,''); } else { // Yes, just add thisCLass room to previous rooms. ##d_Line('Meeting matches',''); ##d_Var("\$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][0]",$thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][0],''); ##d_Var("\$thisCLASS['meeting'][$i]['rooms']",$thisCLASS['meeting'][$i]['rooms'],''); if ( in_array($thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][0],$thisCLASS['meeting'][$i]['rooms']) === false ) { ##d_line('Add room','a'); $thisCLASS['meeting'][$i]['rooms'][] = $thisCLASS['meeting'][$thisCLASSmeetingIndex]['rooms'][0]; ##d_Var("\$thisCLASS['meeting'][$i]['rooms']",$thisCLASS['meeting'][$i]['rooms'],''); } else { ##d_Line('Room in array.','w'); } ##d_Var('$previousCLASSmeetingIndex',$previousCLASSmeetingIndex,''); ##d_Var('$thisCLASSmeetingIndex',$thisCLASSmeetingIndex,''); unset($thisCLASS['meeting'][$thisCLASSmeetingIndex]); } } else { ##d_Line('No previous meeting, meeting added','w'); $previousCLASSmeetingIndex = $thisCLASSmeetingIndex; $thisCLASSmeetingIndex++; ##d_Var('No previous meeting $previousCLASSmeetingIndex',$previousCLASSmeetingIndex,''); ##d_Var('No previous meeting $thisCLASSmeetingIndex',$thisCLASSmeetingIndex,''); } // Are there previous meetings? } // Loop thru classmeeting. } // Are there any classmeetings? // INSERT $thisCLASS d_Var("\$thisCLASS['scheduleclassSection']",$thisCLASS['scheduleclassSection']); d_Var('$thisCLASS',$thisCLASS,''); @d_Var('$thisClassMeetingIdentifier',$thisClassMeetingIdentifier); d_Var('$newSection',$newSection,'a'); if ( $newSection ) { // Is this a new section of a class? // Yes, see if thisCLASS matches existing scheduleclass. require('Schedule/ScheduleImportClasses/ImportParsedClasses_MatchesExistingSection.phpinc'); // Returns $newClass. } else { $newClass = true; } d_Var('$newClass',$newClass,'a'); $forceINSERT = false; #$forceINSERT = true; // ***** UNCOMMENT to force $newClass. if ( $forceINSERT || $newClass ) { // Is this a new class? // Yes, INSERT the new class. // INSERT scheduleclass. require('Schedule/ScheduleImportClasses/InsertNewClass.phpinc'); } else { // Is this a new class? // No, INSERT the scheduleclassSection into scheduleclasssection for the existing class. d_Var("\$f['scheduleclassId']",$f['scheduleclassId'],'a'); d_Var("\$thisCLASS['scheduleclassSection']",$thisCLASS['scheduleclassSection'],'a'); // INSERT the scheduleclasssection. $query = " INSERT INTO `scheduleclasssection` ( scheduleclassId , scheduleclassSection ) VALUES ( ".$f['scheduleclassId']." , '".query_safe($thisCLASS['scheduleclassSection'])."' ) "; d_Var('scheduleclasssectionINSERT',$query,'q'); $scheduleclasssectionINSERT = query_do($query); d_Var('$scheduleclasssectionINSERT',$scheduleclasssectionINSERT,'l'); } // Is this a new class? } // Loop thru classes to import. } // Are there any classes to import? #d_On(); #pageFooter(); // listClean($list, $separator=',') // Returns the list sorted, with only unique elemants, and without any empty elements. // $list = the list to parse. // $separator = the list separator. Default is a comma ','. function listClean($list, $separator=',') { $listClean = listSort(listUnique(listNonEmpty($list,false,$separator),$separator)); return $listClean; } t_End(); // End TRACKing ImportParsedClasses.phpinc. ?>