Esempio n. 1
0
function core_role_unassign_roles_object()
{
    //first, gather the necessary variables
    global $student_id, $_SESSION;
    //then, convert variables for the Moodle object:
    /*
    list of ( 
    	object {
    		roleid int   //Role to assign to the user
    		userid int   //The user that is going to be assigned
    		contextid int   //The context to unassign the user role from
    	} 
    )
    */
    //gather the Moodle user ID
    $userid = DBGet(DBQuery("SELECT moodle_id FROM moodlexrosario WHERE rosario_id='" . $student_id . "' AND \"column\"='student_id'"));
    if (count($userid)) {
        $userid = (int) $userid[1]['MOODLE_ID'];
    } else {
        return null;
    }
    //student's roleid = student = 5
    $roleid = 5;
    //get contextid:
    global $moodle_contextlevel, $moodle_instance;
    $moodle_contextlevel = CONTEXT_COURSE;
    $rosario_id = $_SESSION['MassDrops.php']['course_period_id'];
    //gather the Moodle course ID
    $moodle_instance = DBGet(DBQuery("SELECT moodle_id FROM moodlexrosario WHERE rosario_id='" . $rosario_id . "' AND \"column\"='course_period_id'"));
    if (count($moodle_instance)) {
        $moodle_instance = (int) $moodle_instance[1]['MOODLE_ID'];
    } else {
        return null;
    }
    $contexts = Moodle('Global/functions.php', 'local_getcontexts_get_contexts');
    $contextid = $contexts[0]['id'];
    $unassignments = array(array('roleid' => $roleid, 'userid' => $userid, 'contextid' => $contextid));
    return array($unassignments);
}
Esempio n. 2
0
function core_role_unassign_roles_object()
{
    //first, gather the necessary variables
    global $_REQUEST;
    //then, convert variables for the Moodle object:
    /*
    list of ( 
    	object {
    		roleid int   //Role to assign to the user
    		userid int   //The user that is going to be assigned
    		contextid int   //The context to unassign the user role from
    	} 
    )*/
    //gather the Moodle user ID
    $userid = DBGet(DBQuery("SELECT moodle_id FROM moodlexrosario WHERE rosario_id='" . $_REQUEST['staff_id'] . "' AND \"column\"='staff_id'"));
    if (count($userid)) {
        $userid = (int) $userid[1]['MOODLE_ID'];
    } else {
        return null;
    }
    //get the contextid
    global $moodle_contextlevel, $moodle_instance;
    $moodle_contextlevel = CONTEXT_USER;
    //gather the Moodle user ID
    $moodle_instance = DBGet(DBQuery("SELECT moodle_id FROM moodlexrosario WHERE rosario_id='" . UserStudentID() . "' AND \"column\"='student_id'"));
    if (count($moodle_instance)) {
        $moodle_instance = (int) $moodle_instance[1]['MOODLE_ID'];
    } else {
        return null;
    }
    $contexts = Moodle('Global/functions.php', 'local_getcontexts_get_contexts');
    $contextid = $contexts[0]['id'];
    $roleid = MOODLE_PARENT_ROLE_ID;
    $unassignments = array(array('roleid' => $roleid, 'userid' => $userid, 'contextid' => $contextid));
    return array($unassignments);
}
Esempio n. 3
0
             if ($course_mp_table == 'FY' || $course_mp == $_REQUEST['marking_period_id'] || mb_strpos(GetChildrenMP($course_mp_table, $course_mp), "'" . $_REQUEST['marking_period_id'] . "'") !== false) {
                 $mp_table = GetMP($_REQUEST['marking_period_id'], 'MP');
                 //$current_RET = DBGet(DBQuery("SELECT STUDENT_ID FROM SCHEDULE WHERE COURSE_PERIOD_ID='".$_SESSION['MassDrops.php']['course_period_id']."' AND SYEAR='".UserSyear()."' AND (('".$start_date."' BETWEEN START_DATE AND END_DATE OR END_DATE IS NULL) AND '".$start_date."'>=START_DATE)"),array(),array('STUDENT_ID'));
                 $current_RET = DBGet(DBQuery("SELECT STUDENT_ID FROM SCHEDULE WHERE COURSE_PERIOD_ID='" . $_SESSION['MassDrops.php']['course_period_id'] . "' "));
                 foreach ($_REQUEST['student'] as $student_id => $yes) {
                     if ($current_RET[$student_id]) {
                         DBQuery("UPDATE SCHEDULE SET END_DATE='" . $END_DATE . "' WHERE STUDENT_ID='" . $student_id . "' AND COURSE_PERIOD_ID='" . $_SESSION['MassDrops.php']['course_period_id'] . "'");
                         //echo "<b>student:</b>  $student_id ";
                         //$start_end_RET = DBGet(DBQuery("SELECT START_DATE,END_DATE FROM SCHEDULE WHERE STUDENT_ID='".UserStudentID()."' AND COURSE_PERIOD_ID='".$course_period_id."' AND END_DATE<START_DATE"));
                         $start_end_RET = DBGet(DBQuery("SELECT START_DATE,END_DATE FROM SCHEDULE WHERE STUDENT_ID='" . $student_id . "' AND COURSE_PERIOD_ID='" . $_SESSION['MassDrops.php']['course_period_id'] . "' AND END_DATE<START_DATE"));
                         if (count($start_end_RET)) {
                             //DBQuery("DELETE FROM SCHEDULE WHERE STUDENT_ID='".UserStudentID()."' AND END_DATE IS NOT NULL AND END_DATE<START_DATE");
                             DBQuery("DELETE FROM SCHEDULE WHERE STUDENT_ID='" . $student_id . "' AND COURSE_PERIOD_ID='" . $_SESSION['MassDrops.php']['course_period_id'] . "'");
                         }
                         //modif Francois: Moodle integrator
                         $moodleError .= Moodle($_REQUEST['modname'], 'core_role_unassign_roles');
                     }
                 }
                 $note[] = '<IMG SRC="assets/check.png" class="alignImg">&nbsp;' . _('This course has been dropped for the selected students\' schedules.');
             } else {
                 $error[] = _('You cannot schedule a student into that course during this marking period.') . ' ' . sprintf(_('This course meets on %s.'), GetMP($course_mp));
             }
         } else {
             $error[] = _('The date you entered is not valid');
         }
     } else {
         $error[] = _('You must choose at least one student.');
     }
 } else {
     $error[] = _('You must choose a course.');
 }
Esempio n. 4
0
 db_trans_start($connection);
 $date = DBDate();
 $course_period_temp = '';
 $student_id_temp = '';
 $scount = 0;
 $bad_locked = 0;
 foreach ($schedule as $student_id => $periods) {
     $course_periods_temp = array();
     foreach ($periods as $course_periods) {
         foreach ($course_periods as $period_id => $course_period) {
             $scount++;
             //modif Francois: multiple school periods for a course period
             if (empty($locked_RET[$student_id][$course_period['REQUEST_ID']]) && !in_array($course_period['COURSE_PERIOD_ID'], $course_periods_temp)) {
                 db_trans_query($connection, "INSERT INTO SCHEDULE (SYEAR,SCHOOL_ID,STUDENT_ID,START_DATE,COURSE_ID,COURSE_PERIOD_ID,MP,MARKING_PERIOD_ID) values('" . UserSyear() . "','" . UserSchool() . "','" . $student_id . "','" . $date . "','" . $course_period['COURSE_ID'] . "','" . $course_period['COURSE_PERIOD_ID'] . "','" . $course_period['MP'] . "','" . $course_period['MARKING_PERIOD_ID'] . "');");
                 //modif Francois: Moodle integrator
                 $moodleError .= Moodle($_REQUEST['modname'], 'enrol_manual_enrol_users');
             } else {
                 $bad_locked++;
             }
             //	db_trans_query($connection,"INSERT INTO SCHEDULE (SYEAR,SCHOOL_ID,STUDENT_ID,START_DATE,COURSE_ID,COURSE_PERIOD_ID,MP,MARKING_PERIOD_ID) values('".UserSyear()."','".UserSchool()."','".$student_id."','".$date."','".$course_period['COURSE_ID']."','".$course_period['COURSE_PERIOD_ID']."','".$course_period['MP']."','".$course_period['MARKING_PERIOD_ID']."');");
             //modif Francois: multiple school periods for a course period
             $course_periods_temp[] = $course_period['COURSE_PERIOD_ID'];
         }
     }
 }
 echo '<!-- Bad Locked ' . $scount . ' -->';
 echo '<!-- Schedule Count() ' . $scount . '-->';
 //echo 'Empty Courses:';
 foreach ($cp_parent_RET as $parent_id => $course_period) {
     $course_period = $course_period[1];
     //if($course_period['AVAILABLE_SEATS']<='0')
Esempio n. 5
0
<?php

require 'config.inc.php';
if (!MOODLE_INTEGRATOR) {
    exit;
}
require 'database.inc.php';
//modif Francois: remove IgnoreFiles
// Load functions.
/*if($handle = opendir('functions'))
{
	if(!is_array($IgnoreFiles))
		$IgnoreFiles=Array();

	while (false !== ($file = readdir($handle)))
	{
		// if filename isn't '.' '..' or in the Ignore list... load it.
		if($file!='.' && $file!='..' && !in_array($file,$IgnoreFiles))
			require_once('functions/'.$file);
	}
}*/
$functions = scandir('functions/');
foreach ($functions as $function) {
    //filter PHP files
    if (mb_strrchr($function, '.') == '.php') {
        require_once 'functions/' . $function;
    }
}
echo Moodle($_POST['modname'], 'core_files_upload');
Esempio n. 6
0
function core_files_upload_object()
{
    //first, gather the necessary variables
    global $_POST;
    //then, convert variables for the Moodle object:
    /*
    [contextid] => int
    [component] => string
    [filearea] => string
    [itemid] => int
    [filepath] => string
    [filename] => string
    [filecontent] => string
    */
    //For a User Avatar, looking at mdl_files table for example:
    /*
    contextid = 5 (context = USER, userid = instance = 2), use local_getcontexts_get_contexts function
    component = user
    filearea = draft
    itemid = 230987549 or 1
    filepath = /
    filename = xxx.jpeg
    filecontent = base64_encode
    */
    //For the moment, component = user && filearea = private is hardcoded...
    // see http://tracker.moodle.org/browse/MDL-31116
    return null;
    global $moodle_contextlevel, $moodle_instance;
    $moodle_contextlevel = CONTEXT_USER;
    $rosario_id = $_POST['userId'];
    //gather the Moodle user ID
    $column = mb_strpos($_POST['modname'], 'Users') !== false ? 'staff_id' : 'student_id';
    $moodle_instance = DBGet(DBQuery("SELECT moodle_id FROM moodlexrosario WHERE rosario_id='" . $rosario_id . "' AND \"column\"='" . $column . "'"));
    if (count($moodle_instance)) {
        $moodle_instance = (int) $moodle_instance[1]['MOODLE_ID'];
    } else {
        return null;
    }
    //get contextid first:
    $contexts = Moodle('Global/functions.php', 'local_getcontexts_get_contexts');
    $contextid = $contexts[0]['id'];
    $component = 'user';
    $filearea = 'draft';
    $itemid = 1;
    $filepath = '/';
    $filename = $_POST['userId'] . '.jpg';
    function base64_encode_file($file)
    {
        $filename = file_exists($file) ? htmlentities($file) : die('File name does not exist');
        $filetype = pathinfo($filename, PATHINFO_EXTENSION);
        $filebinary = fread(fopen($filename, "r"), filesize($filename));
        return base64_encode($filebinary);
    }
    global $wkhtmltopdfAssetsPath;
    $filecontent = base64_encode_file($wkhtmltopdfAssetsPath . str_replace('assets/', '', $_POST['photoPath']) . $_POST['sYear'] . '/' . $_POST['userId'] . '.jpg');
    $file = array($contextid, $component, $filearea, $itemid, $filepath, $filename, $filecontent);
    return $file;
}
Esempio n. 7
0
             $password_RET = DBGet(DBQuery("SELECT PASSWORD FROM STAFF WHERE STAFF_ID='" . User('STAFF_ID') . "' AND SYEAR='" . UserSyear() . "'"));
         }
         //modif Francois: add password encryption
         //			if(mb_strtolower($password_RET[1]['PASSWORD'])!=mb_strtolower($current_password))
         if (!match_password($password_RET[1]['PASSWORD'], $current_password)) {
             $error = _('Your current password was incorrect.');
         } else {
             //				DBQuery("UPDATE STAFF SET PASSWORD='******' WHERE STAFF_ID='".User('STAFF_ID')."' AND SYEAR='".UserSyear()."'");
             if (User('PROFILE') == 'student') {
                 DBQuery("UPDATE STUDENTS SET PASSWORD='******' WHERE STUDENT_ID='" . UserStudentID() . "'");
             } else {
                 DBQuery("UPDATE STAFF SET PASSWORD='******' WHERE STAFF_ID='" . User('STAFF_ID') . "' AND SYEAR='" . UserSyear() . "'");
             }
             $note = _('Your new password was saved.');
             //modif Francois: Moodle integrator
             $moodleError = Moodle($_REQUEST['modname'], 'core_user_update_users');
         }
     }
 } else {
     $current_RET = DBGet(DBQuery("SELECT TITLE,VALUE,PROGRAM FROM PROGRAM_USER_CONFIG WHERE USER_ID='" . User('STAFF_ID') . "' AND PROGRAM IN ('Preferences','StudentFieldsSearch','StudentFieldsView','WidgetsSearch','StaffFieldsSearch','StaffFieldsView','StaffWidgetsSearch')"), array(), array('PROGRAM', 'TITLE'));
     if ($_REQUEST['tab'] == 'student_listing' && $_REQUEST['values']['Preferences']['SEARCH'] != 'Y') {
         $_REQUEST['values']['Preferences']['SEARCH'] = 'N';
     }
     if ($_REQUEST['tab'] == 'student_listing' && $_REQUEST['values']['Preferences']['E_CODEDS'] != 'Y') {
         $_REQUEST['values']['Preferences']['E_CODEDS'] = 'N';
     }
     if ($_REQUEST['tab'] == 'student_listing' && $_REQUEST['values']['Preferences']['E_EXPORTS'] != 'Y') {
         $_REQUEST['values']['Preferences']['E_EXPORTS'] = 'N';
     }
     if ($_REQUEST['tab'] == 'student_listing' && User('PROFILE') == 'admin' && $_REQUEST['values']['Preferences']['DEFAULT_FAMILIES'] != 'Y') {
         $_REQUEST['values']['Preferences']['DEFAULT_FAMILIES'] = 'N';
Esempio n. 8
0
    }
    unset($_REQUEST['values']);
    unset($_SESSION['_REQUEST_vars']['values']);
    unset($_REQUEST['profiles']);
    unset($_SESSION['_REQUEST_vars']['profiles']);
}
DrawHeader(ProgramTitle());
if ($_REQUEST['modfunc'] == 'remove' && AllowEdit()) {
    if (DeletePrompt(_('Note'))) {
        //modif Francois: file attached to portal notes
        $file_to_remove = DBGet(DBQuery("SELECT FILE_ATTACHED FROM PORTAL_NOTES WHERE ID='{$_REQUEST['id']}'"));
        @unlink($file_to_remove[1]['FILE_ATTACHED']);
        DBQuery("DELETE FROM PORTAL_NOTES WHERE ID='{$_REQUEST['id']}'");
        //modif Francois: Moodle integrator
        if (MOODLE_INTEGRATOR) {
            $moodleError = Moodle($_REQUEST['modname'], 'core_notes_delete_notes');
        }
        unset($_REQUEST['modfunc']);
    }
}
if ($_REQUEST['modfunc'] != 'remove') {
    //modif Francois: file attached to portal notes
    $sql = "SELECT ID,SORT_ORDER,TITLE,CONTENT,START_DATE,END_DATE,PUBLISHED_PROFILES,FILE_ATTACHED,CASE WHEN END_DATE IS NOT NULL AND END_DATE<CURRENT_DATE THEN 'Y' ELSE NULL END AS EXPIRED FROM PORTAL_NOTES WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' ORDER BY EXPIRED DESC,SORT_ORDER,PUBLISHED_DATE DESC";
    $QI = DBQuery($sql);
    $notes_RET = DBGet($QI, array('TITLE' => '_makeTextInput', 'CONTENT' => '_makeContentInput', 'SORT_ORDER' => '_makeTextInput', 'FILE_ATTACHED' => '_makeFileAttached', 'START_DATE' => '_makePublishing'));
    $columns = array('TITLE' => _('Title'), 'CONTENT' => _('Note'), 'SORT_ORDER' => _('Sort Order'), 'FILE_ATTACHED' => _('File Attached'), 'START_DATE' => _('Publishing Options'));
    //,'START_TIME'=>'Start Time','END_TIME'=>'End Time'
    $link['add']['html'] = array('TITLE' => _makeTextInput('', 'TITLE'), 'CONTENT' => _makeContentInput('', 'CONTENT'), 'SHORT_NAME' => _makeTextInput('', 'SHORT_NAME'), 'SORT_ORDER' => _makeTextInput('', 'SORT_ORDER'), 'FILE_ATTACHED' => _makeFileAttached('', 'FILE_ATTACHED'), 'START_DATE' => _makePublishing('', 'START_DATE'));
    $link['remove']['link'] = "Modules.php?modname={$_REQUEST['modname']}&modfunc=remove";
    $link['remove']['variables'] = array('id' => 'ID');
    echo '<FORM action="Modules.php?modname=' . $_REQUEST[modname] . '&modfunc=update" method="POST" enctype="multipart/form-data">';
Esempio n. 9
0
                         }
                     }
                 }
                 $i++;
             } while (is_numeric($_REQUEST['REPEAT']) && $i <= $_REQUEST['REPEAT']);
         }
         echo '<SCRIPT type="text/javascript">opener.document.location = "Modules.php?modname=' . $_REQUEST['modname'] . '&year=' . $_REQUEST['year'] . '&month=' . MonthNWSwitch($_REQUEST['month'], 'tochar') . '"; window.close();</script>';
         unset($_REQUEST['values']);
         unset($_SESSION['_REQUEST_vars']['values']);
     }
 } elseif ($_REQUEST['button'] == _('Delete')) {
     if (DeletePrompt(_('Event'))) {
         DBQuery("DELETE FROM CALENDAR_EVENTS WHERE ID='" . $_REQUEST['event_id'] . "'");
         //modif Francois: Moodle integrator
         if (MOODLE_INTEGRATOR) {
             $moodleError = Moodle($_REQUEST['modname'], 'core_calendar_delete_calendar_events');
             if (!empty($moodleError)) {
                 echo $moodleError;
                 exit;
             }
         }
         echo '<SCRIPT type="text/javascript">opener.document.location = "Modules.php?modname=' . $_REQUEST['modname'] . '&year=' . $_REQUEST['year'] . '&month=' . MonthNWSwitch($_REQUEST['month'], 'tochar') . '"; window.close();</script>';
         unset($_REQUEST['values']);
         unset($_SESSION['_REQUEST_vars']['values']);
         unset($_REQUEST['button']);
         unset($_SESSION['_REQUEST_vars']['button']);
     }
 } else {
     if ($_REQUEST['event_id']) {
         if ($_REQUEST['event_id'] != 'new') {
             $RET = DBGet(DBQuery("SELECT TITLE,DESCRIPTION,to_char(SCHOOL_DATE,'dd-MON-yy') AS SCHOOL_DATE FROM CALENDAR_EVENTS WHERE ID='{$_REQUEST['event_id']}'"));
Esempio n. 10
0
function Rollover($table)
{
    global $next_syear, $RosarioModules, $moodleError;
    switch ($table) {
        case 'SCHOOLS':
            DBQuery("DELETE FROM SCHOOLS WHERE SYEAR='{$next_syear}'");
            DBQuery("INSERT INTO SCHOOLS (SYEAR,ID,TITLE,ADDRESS,CITY,STATE,ZIPCODE,PHONE,PRINCIPAL,WWW_ADDRESS,SCHOOL_NUMBER,SHORT_NAME,REPORTING_GP_SCALE,NUMBER_DAYS_ROTATION) SELECT SYEAR+1,ID,TITLE,ADDRESS,CITY,STATE,ZIPCODE,PHONE,PRINCIPAL,WWW_ADDRESS,SCHOOL_NUMBER,SHORT_NAME,REPORTING_GP_SCALE,NUMBER_DAYS_ROTATION FROM SCHOOLS WHERE SYEAR='" . UserSyear() . "'");
            break;
        case 'STAFF':
            $user_custom = '';
            $fields_RET = DBGet(DBQuery("SELECT ID FROM STAFF_FIELDS"));
            foreach ($fields_RET as $field) {
                $user_custom .= ',CUSTOM_' . $field['ID'];
            }
            if ($RosarioModules['Food_Service']) {
                DBQuery("UPDATE FOOD_SERVICE_STAFF_ACCOUNTS SET STAFF_ID=(SELECT ROLLOVER_ID FROM STAFF WHERE STAFF_ID=FOOD_SERVICE_STAFF_ACCOUNTS.STAFF_ID) WHERE exists(SELECT * FROM STAFF WHERE STAFF_ID=FOOD_SERVICE_STAFF_ACCOUNTS.STAFF_ID AND ROLLOVER_ID IS NOT NULL AND SYEAR='{$next_syear}')");
                DBQuery("DELETE FROM FOOD_SERVICE_STAFF_ACCOUNTS WHERE exists(SELECT * FROM STAFF WHERE STAFF_ID=FOOD_SERVICE_STAFF_ACCOUNTS.STAFF_ID AND SYEAR='{$next_syear}')");
            }
            DBQuery("DELETE FROM STUDENTS_JOIN_USERS WHERE STAFF_ID IN (SELECT STAFF_ID FROM STAFF WHERE SYEAR='{$next_syear}')");
            DBQuery("DELETE FROM STAFF_EXCEPTIONS WHERE USER_ID IN (SELECT STAFF_ID FROM STAFF WHERE SYEAR='{$next_syear}')");
            DBQuery("DELETE FROM PROGRAM_USER_CONFIG WHERE USER_ID IN (SELECT STAFF_ID FROM STAFF WHERE SYEAR='{$next_syear}')");
            DBQuery("DELETE FROM STAFF WHERE SYEAR='{$next_syear}'");
            DBQuery("INSERT INTO STAFF (STAFF_ID,SYEAR,CURRENT_SCHOOL_ID,TITLE,FIRST_NAME,LAST_NAME,MIDDLE_NAME,NAME_SUFFIX,USERNAME,PASSWORD,PHONE,EMAIL,PROFILE,HOMEROOM,LAST_LOGIN,SCHOOLS,PROFILE_ID,ROLLOVER_ID{$user_custom}) SELECT " . db_seq_nextval('STAFF_SEQ') . ",SYEAR+1,CURRENT_SCHOOL_ID,TITLE,FIRST_NAME,LAST_NAME,MIDDLE_NAME,NAME_SUFFIX,USERNAME,PASSWORD,PHONE,EMAIL,PROFILE,HOMEROOM,NULL,SCHOOLS,PROFILE_ID,STAFF_ID{$user_custom} FROM STAFF WHERE SYEAR='" . UserSyear() . "'");
            //modif Francois: Moodle integrator
            if (MOODLE_INTEGRATOR) {
                $staff_RET = DBGet(DBQuery("SELECT STAFF_ID,ROLLOVER_ID FROM STAFF WHERE SYEAR='{$next_syear}' AND ROLLOVER_ID IS NOT NULL"));
                foreach ($staff_RET as $value) {
                    DBQuery("UPDATE MOODLEXROSARIO SET ROSARIO_ID='{$value['STAFF_ID']}' WHERE ROSARIO_ID='{$value['ROLLOVER_ID']}' AND \"COLUMN\"='staff_id' AND SCHOOL_ID='" . UserSchool() . "'");
                }
            }
            DBQuery("INSERT INTO PROGRAM_USER_CONFIG (USER_ID,PROGRAM,TITLE,VALUE) SELECT s.STAFF_ID,puc.PROGRAM,puc.TITLE,puc.VALUE FROM STAFF s,PROGRAM_USER_CONFIG puc WHERE puc.USER_ID=s.ROLLOVER_ID AND puc.PROGRAM='Preferences' AND s.SYEAR='{$next_syear}'");
            DBQuery("INSERT INTO STAFF_EXCEPTIONS (USER_ID,MODNAME,CAN_USE,CAN_EDIT) SELECT STAFF_ID,MODNAME,CAN_USE,CAN_EDIT FROM STAFF,STAFF_EXCEPTIONS WHERE USER_ID=ROLLOVER_ID AND SYEAR='{$next_syear}'");
            DBQuery("INSERT INTO STUDENTS_JOIN_USERS (STUDENT_ID,STAFF_ID) SELECT j.STUDENT_ID,s.STAFF_ID FROM STAFF s,STUDENTS_JOIN_USERS j WHERE j.STAFF_ID=s.ROLLOVER_ID AND s.SYEAR='{$next_syear}'");
            break;
        case 'SCHOOL_PERIODS':
            DBQuery("DELETE FROM SCHOOL_PERIODS WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='{$next_syear}'");
            DBQuery("INSERT INTO SCHOOL_PERIODS (PERIOD_ID,SYEAR,SCHOOL_ID,SORT_ORDER,TITLE,SHORT_NAME,LENGTH,ATTENDANCE,ROLLOVER_ID) SELECT " . db_seq_nextval('SCHOOL_PERIODS_SEQ') . ",SYEAR+1,SCHOOL_ID,SORT_ORDER,TITLE,SHORT_NAME,LENGTH,ATTENDANCE,PERIOD_ID FROM SCHOOL_PERIODS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            break;
        case 'ATTENDANCE_CALENDARS':
            DBQuery("DELETE FROM ATTENDANCE_CALENDARS WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='{$next_syear}'");
            DBQuery("INSERT INTO ATTENDANCE_CALENDARS (CALENDAR_ID,SYEAR,SCHOOL_ID,TITLE,DEFAULT_CALENDAR,ROLLOVER_ID) SELECT " . db_seq_nextval('CALENDARS_SEQ') . ",SYEAR+1,SCHOOL_ID,TITLE,DEFAULT_CALENDAR,CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            break;
        case 'ATTENDANCE_CODES':
            DBQuery("DELETE FROM ATTENDANCE_CODE_CATEGORIES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("DELETE FROM ATTENDANCE_CODES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("INSERT INTO ATTENDANCE_CODE_CATEGORIES (ID,SYEAR,SCHOOL_ID,TITLE,SORT_ORDER,ROLLOVER_ID) SELECT " . db_seq_nextval('ATTENDANCE_CODE_CATEGORIES_SEQ') . ",SYEAR+1,SCHOOL_ID,TITLE,SORT_ORDER,ID FROM ATTENDANCE_CODE_CATEGORIES WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("INSERT INTO ATTENDANCE_CODES (ID,SYEAR,SCHOOL_ID,TITLE,SHORT_NAME,TYPE,STATE_CODE,DEFAULT_CODE,TABLE_NAME,SORT_ORDER) SELECT " . db_seq_nextval('ATTENDANCE_CODES_SEQ') . ",c.SYEAR+1,c.SCHOOL_ID,c.TITLE,c.SHORT_NAME,c.TYPE,c.STATE_CODE,c.DEFAULT_CODE," . db_case(array('c.TABLE_NAME', "'0'", "'0'", '(SELECT ID FROM ATTENDANCE_CODE_CATEGORIES WHERE SCHOOL_ID=c.SCHOOL_ID AND ROLLOVER_ID=c.TABLE_NAME)')) . ",c.SORT_ORDER FROM ATTENDANCE_CODES c WHERE c.SYEAR='" . UserSyear() . "' AND c.SCHOOL_ID='" . UserSchool() . "'");
            break;
        case 'SCHOOL_MARKING_PERIODS':
            DBQuery("DELETE FROM SCHOOL_MARKING_PERIODS WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("INSERT INTO SCHOOL_MARKING_PERIODS (MARKING_PERIOD_ID,PARENT_ID,SYEAR,MP,SCHOOL_ID,TITLE,SHORT_NAME,SORT_ORDER,START_DATE,END_DATE,POST_START_DATE,POST_END_DATE,DOES_GRADES,DOES_COMMENTS,ROLLOVER_ID) SELECT " . db_seq_nextval('MARKING_PERIOD_SEQ') . ",PARENT_ID,SYEAR+1,MP,SCHOOL_ID,TITLE,SHORT_NAME,SORT_ORDER,START_DATE+365,END_DATE+365,POST_START_DATE+365,POST_END_DATE+365,DOES_GRADES,DOES_COMMENTS,MARKING_PERIOD_ID FROM SCHOOL_MARKING_PERIODS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("UPDATE SCHOOL_MARKING_PERIODS SET PARENT_ID=(SELECT mp.MARKING_PERIOD_ID FROM SCHOOL_MARKING_PERIODS mp WHERE mp.SYEAR=school_marking_periods.SYEAR AND mp.SCHOOL_ID=school_marking_periods.SCHOOL_ID AND mp.ROLLOVER_ID=school_marking_periods.PARENT_ID) WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            //modif Francois: ROLL Gradebook Config's Final Grading Percentages
            $db_case_array = array('puc.TITLE');
            $mp_next = DBGet(DBQuery("SELECT MARKING_PERIOD_ID,ROLLOVER_ID,MP FROM SCHOOL_MARKING_PERIODS WHERE (MP='QTR' OR MP='SEM') AND SYEAR='" . $next_syear . "' AND SCHOOL_ID='" . UserSchool() . "' ORDER BY SORT_ORDER"));
            foreach ($mp_next as $mp) {
                $db_case_array[] = "'FY-" . $mp['ROLLOVER_ID'] . "'";
                $db_case_array[] = "'FY-" . $mp['MARKING_PERIOD_ID'] . "'";
                if ($mp['MP'] == 'QTR') {
                    $db_case_array[] = "'SEM-" . $mp['ROLLOVER_ID'] . "'";
                    $db_case_array[] = "'SEM-" . $mp['MARKING_PERIOD_ID'] . "'";
                }
            }
            DBQuery("UPDATE PROGRAM_USER_CONFIG puc SET TITLE=(SELECT (" . db_case($db_case_array) . ") FROM STAFF s WHERE (puc.TITLE LIKE 'FY-%' OR puc.TITLE LIKE 'SEM-%') AND puc.PROGRAM='Gradebook' AND puc.USER_ID=s.STAFF_ID AND s.SYEAR='{$next_syear}') FROM STAFF s WHERE (puc.TITLE LIKE 'FY-%' OR puc.TITLE LIKE 'SEM-%') AND puc.PROGRAM='Gradebook' AND puc.USER_ID=s.STAFF_ID AND s.SYEAR='{$next_syear}'");
            break;
        case 'COURSES':
            DBQuery("DELETE FROM COURSE_SUBJECTS WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("DELETE FROM COURSES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("DELETE FROM COURSE_PERIOD_SCHOOL_PERIODS cpsp WHERE EXISTS (SELECT COURSE_PERIOD_ID FROM COURSE_PERIODS cp WHERE cp.COURSE_PERIOD_ID=cpsp.COURSE_PERIOD_ID AND cp.SYEAR='{$next_syear}' AND cp.SCHOOL_ID='" . UserSchool() . "');");
            DBQuery("DELETE FROM COURSE_PERIODS WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            // ROLL COURSE_SUBJECTS
            DBQuery("INSERT INTO COURSE_SUBJECTS (SYEAR,SCHOOL_ID,SUBJECT_ID,TITLE,SHORT_NAME,SORT_ORDER,ROLLOVER_ID) SELECT SYEAR+1,SCHOOL_ID," . db_seq_nextval('COURSE_SUBJECTS_SEQ') . ",TITLE,SHORT_NAME,SORT_ORDER,SUBJECT_ID FROM COURSE_SUBJECTS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            //modif Francois: Moodle integrator
            if (MOODLE_INTEGRATOR) {
                $course_subjects_RET = DBGet(DBQuery("SELECT SUBJECT_ID,ROLLOVER_ID FROM COURSES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "' AND ROLLOVER_ID IS NOT NULL"));
                foreach ($course_subjects_RET as $value) {
                    DBQuery("UPDATE MOODLEXROSARIO SET ROSARIO_ID={$value['SUBJECT_ID']} WHERE ROSARIO_ID={$value['ROLLOVER_ID']} AND \"COLUMN\"='subject_id' AND SCHOOL_ID='" . UserSchool() . "'");
                }
            }
            // ROLL COURSES
            DBQuery("INSERT INTO COURSES (SYEAR,COURSE_ID,SUBJECT_ID,SCHOOL_ID,GRADE_LEVEL,TITLE,SHORT_NAME,ROLLOVER_ID) SELECT SYEAR+1," . db_seq_nextval('COURSES_SEQ') . ",(SELECT SUBJECT_ID FROM COURSE_SUBJECTS s WHERE s.SCHOOL_ID=c.SCHOOL_ID AND s.ROLLOVER_ID=c.SUBJECT_ID),SCHOOL_ID,GRADE_LEVEL,TITLE,SHORT_NAME,COURSE_ID FROM COURSES c WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            //modif Francois: Moodle integrator
            if (MOODLE_INTEGRATOR) {
                $courses_RET = DBGet(DBQuery("SELECT COURSE_ID,ROLLOVER_ID FROM COURSES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "' AND ROLLOVER_ID IS NOT NULL"));
                foreach ($courses_RET as $value) {
                    DBQuery("UPDATE MOODLEXROSARIO SET ROSARIO_ID='{$value['COURSE_ID']}' WHERE ROSARIO_ID='{$value['ROLLOVER_ID']}' AND \"COLUMN\"='course_id' AND SCHOOL_ID='" . UserSchool() . "'");
                }
            }
            // ROLL COURSE_PERIODS
            DBQuery("INSERT INTO COURSE_PERIODS (SYEAR,SCHOOL_ID,COURSE_PERIOD_ID,COURSE_ID,TITLE,SHORT_NAME,MP,MARKING_PERIOD_ID,TEACHER_ID,ROOM,TOTAL_SEATS,FILLED_SEATS,DOES_ATTENDANCE,GRADE_SCALE_ID,DOES_HONOR_ROLL,DOES_CLASS_RANK,DOES_BREAKOFF,GENDER_RESTRICTION,HOUSE_RESTRICTION,CREDITS,AVAILABILITY,HALF_DAY,PARENT_ID,CALENDAR_ID,ROLLOVER_ID) SELECT SYEAR+1,SCHOOL_ID," . db_seq_nextval('COURSE_PERIODS_SEQ') . ",(SELECT COURSE_ID FROM COURSES c WHERE c.SCHOOL_ID=p.SCHOOL_ID AND c.ROLLOVER_ID=p.COURSE_ID),TITLE,SHORT_NAME,MP,(SELECT MARKING_PERIOD_ID FROM SCHOOL_MARKING_PERIODS n WHERE n.MP=p.MP AND n.SCHOOL_ID=p.SCHOOL_ID AND n.ROLLOVER_ID=p.MARKING_PERIOD_ID),(SELECT STAFF_ID FROM STAFF n WHERE n.ROLLOVER_ID=p.TEACHER_ID),ROOM,TOTAL_SEATS,0 AS FILLED_SEATS,DOES_ATTENDANCE,(SELECT ID FROM REPORT_CARD_GRADE_SCALES WHERE SCHOOL_ID=p.SCHOOL_ID AND ROLLOVER_ID=p.GRADE_SCALE_ID),DOES_HONOR_ROLL,DOES_CLASS_RANK,DOES_BREAKOFF,GENDER_RESTRICTION,HOUSE_RESTRICTION,CREDITS,AVAILABILITY,HALF_DAY,PARENT_ID,(SELECT CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE SCHOOL_ID=p.SCHOOL_ID AND ROLLOVER_ID=p.CALENDAR_ID),COURSE_PERIOD_ID FROM COURSE_PERIODS p WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("UPDATE COURSE_PERIODS SET PARENT_ID=(SELECT cp.COURSE_PERIOD_ID FROM COURSE_PERIODS cp WHERE cp.ROLLOVER_ID=course_periods.PARENT_ID) WHERE PARENT_ID IS NOT NULL AND SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            $categories_RET = DBGet(DBQuery("SELECT ID,ROLLOVER_ID FROM ATTENDANCE_CODE_CATEGORIES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "' AND ROLLOVER_ID IS NOT NULL"));
            foreach ($categories_RET as $value) {
                DBQuery("UPDATE COURSE_PERIODS SET DOES_ATTENDANCE=replace(DOES_ATTENDANCE,',{$value['ROLLOVER_ID']},',',{$value['ID']},') WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            }
            //modif Francois: Moodle integrator
            if (MOODLE_INTEGRATOR) {
                $course_periods_RET = DBGet(DBQuery("SELECT cp.COURSE_PERIOD_ID, cp.COURSE_ID, cp.SHORT_NAME, cp.MARKING_PERIOD_ID, cp.TEACHER_ID FROM COURSE_PERIODS cp, MOODLEXROSARIO mxc WHERE cp.SYEAR='{$next_syear}' AND cp.SCHOOL_ID='" . UserSchool() . "' AND cp.ROLLOVER_ID IS NOT NULL AND cp.ROLLOVER_ID=mxc.ROSARIO_ID AND mxc.\"COLUMN\"='course_period_id'"));
                foreach ($course_periods_RET as $rolled_course_period) {
                    $moodleError .= Moodle($_REQUEST['modname'], 'core_course_create_courses');
                    $moodleError .= Moodle($_REQUEST['modname'], 'enrol_manual_enrol_users');
                }
            }
            //modif Francois: multiple school periods for a course period
            // ROLL COURSE_PERIOD_SCHOOL_PERIODS
            DBQuery("INSERT INTO COURSE_PERIOD_SCHOOL_PERIODS (COURSE_PERIOD_SCHOOL_PERIODS_ID,COURSE_PERIOD_ID,PERIOD_ID,DAYS) SELECT " . db_seq_nextval('COURSE_PERIOD_SCHOOL_PERIODS_SEQ') . ",(SELECT COURSE_PERIOD_ID FROM COURSE_PERIODS cp WHERE cpsp.COURSE_PERIOD_ID=cp.ROLLOVER_ID),(SELECT PERIOD_ID FROM SCHOOL_PERIODS n WHERE n.ROLLOVER_ID=cpsp.PERIOD_ID),DAYS FROM COURSE_PERIOD_SCHOOL_PERIODS cpsp, COURSE_PERIODS cp WHERE cp.SYEAR='" . UserSyear() . "' AND cp.SCHOOL_ID='" . UserSchool() . "' AND cpsp.COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID");
            break;
        case 'STUDENT_ENROLLMENT':
            $next_start_date = DBDate();
            DBQuery("DELETE FROM STUDENT_ENROLLMENT WHERE SYEAR='{$next_syear}' AND LAST_SCHOOL='" . UserSchool() . "'");
            // ROLL STUDENTS TO NEXT GRADE
            //modif Francois: do NOT roll students where next grade is NULL
            DBQuery("INSERT INTO STUDENT_ENROLLMENT (ID,SYEAR,SCHOOL_ID,STUDENT_ID,GRADE_ID,START_DATE,END_DATE,ENROLLMENT_CODE,DROP_CODE,CALENDAR_ID,NEXT_SCHOOL,LAST_SCHOOL) SELECT " . db_seq_nextval('STUDENT_ENROLLMENT_SEQ') . ",SYEAR+1,SCHOOL_ID,STUDENT_ID,(SELECT NEXT_GRADE_ID FROM SCHOOL_GRADELEVELS g WHERE g.ID=e.GRADE_ID),'{$next_start_date}' AS START_DATE,NULL AS END_DATE,(SELECT ID FROM STUDENT_ENROLLMENT_CODES WHERE SYEAR=e.SYEAR+1 AND TYPE='Add' AND DEFAULT_CODE='Y') AS ENROLLMENT_CODE,NULL AS DROP_CODE,(SELECT CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE ROLLOVER_ID=e.CALENDAR_ID),SCHOOL_ID,SCHOOL_ID FROM STUDENT_ENROLLMENT e WHERE e.SYEAR='" . UserSyear() . "' AND e.SCHOOL_ID='" . UserSchool() . "' AND (('" . DBDate() . "' BETWEEN e.START_DATE AND e.END_DATE OR e.END_DATE IS NULL) AND '" . DBDate() . "'>=e.START_DATE) AND e.NEXT_SCHOOL='" . UserSchool() . "' AND (SELECT NEXT_GRADE_ID FROM SCHOOL_GRADELEVELS g WHERE g.ID=e.GRADE_ID) IS NOT NULL");
            // ROLL STUDENTS WHO ARE TO BE RETAINED
            DBQuery("INSERT INTO STUDENT_ENROLLMENT (ID,SYEAR,SCHOOL_ID,STUDENT_ID,GRADE_ID,START_DATE,END_DATE,ENROLLMENT_CODE,DROP_CODE,CALENDAR_ID,NEXT_SCHOOL,LAST_SCHOOL) SELECT " . db_seq_nextval('STUDENT_ENROLLMENT_SEQ') . ",SYEAR+1,SCHOOL_ID,STUDENT_ID,GRADE_ID,'{$next_start_date}' AS START_DATE,NULL AS END_DATE,(SELECT ID FROM STUDENT_ENROLLMENT_CODES WHERE SYEAR=e.SYEAR+1 AND TYPE='Add' AND DEFAULT_CODE='Y') AS ENROLLMENT_CODE,NULL AS DROP_CODE,(SELECT CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE ROLLOVER_ID=e.CALENDAR_ID),SCHOOL_ID,SCHOOL_ID FROM STUDENT_ENROLLMENT e WHERE e.SYEAR='" . UserSyear() . "' AND e.SCHOOL_ID='" . UserSchool() . "' AND (('" . DBDate() . "' BETWEEN e.START_DATE AND e.END_DATE OR e.END_DATE IS NULL) AND '" . DBDate() . "'>=e.START_DATE) AND e.NEXT_SCHOOL='0'");
            // ROLL STUDENTS TO NEXT SCHOOL
            DBQuery("INSERT INTO STUDENT_ENROLLMENT (ID,SYEAR,SCHOOL_ID,STUDENT_ID,GRADE_ID,START_DATE,END_DATE,ENROLLMENT_CODE,DROP_CODE,CALENDAR_ID,NEXT_SCHOOL,LAST_SCHOOL) SELECT " . db_seq_nextval('STUDENT_ENROLLMENT_SEQ') . ",SYEAR+1,NEXT_SCHOOL,STUDENT_ID,(SELECT g.ID FROM SCHOOL_GRADELEVELS g WHERE g.SORT_ORDER=1 AND g.SCHOOL_ID=e.NEXT_SCHOOL),'{$next_start_date}' AS START_DATE,NULL AS END_DATE,(SELECT ID FROM STUDENT_ENROLLMENT_CODES WHERE SYEAR=e.SYEAR+1 AND TYPE='Add' AND DEFAULT_CODE='Y') AS ENROLLMENT_CODE,NULL AS DROP_CODE,(SELECT CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE ROLLOVER_ID=e.CALENDAR_ID),NEXT_SCHOOL,SCHOOL_ID FROM STUDENT_ENROLLMENT e WHERE e.SYEAR='" . UserSyear() . "' AND e.SCHOOL_ID='" . UserSchool() . "' AND (('" . DBDate() . "' BETWEEN e.START_DATE AND e.END_DATE OR e.END_DATE IS NULL) AND '" . DBDate() . "'>=e.START_DATE) AND e.NEXT_SCHOOL NOT IN ('" . UserSchool() . "','0','-1')");
            break;
        case 'REPORT_CARD_GRADES':
            DBQuery("DELETE FROM REPORT_CARD_GRADE_SCALES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("DELETE FROM REPORT_CARD_GRADES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("INSERT INTO REPORT_CARD_GRADE_SCALES (ID,SYEAR,SCHOOL_ID,TITLE,COMMENT,HR_GPA_VALUE,HHR_GPA_VALUE,SORT_ORDER,ROLLOVER_ID,GP_SCALE,HRS_GPA_VALUE) SELECT " . db_seq_nextval('REPORT_CARD_GRADE_SCALES_SEQ') . ",SYEAR+1,SCHOOL_ID,TITLE,COMMENT,HR_GPA_VALUE,HHR_GPA_VALUE,SORT_ORDER,ID,GP_SCALE,HRS_GPA_VALUE FROM REPORT_CARD_GRADE_SCALES WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("INSERT INTO REPORT_CARD_GRADES (ID,SYEAR,SCHOOL_ID,TITLE,COMMENT,BREAK_OFF,GPA_VALUE,GRADE_SCALE_ID,SORT_ORDER) SELECT " . db_seq_nextval('REPORT_CARD_GRADES_SEQ') . ",SYEAR+1,SCHOOL_ID,TITLE,COMMENT,BREAK_OFF,GPA_VALUE,(SELECT ID FROM REPORT_CARD_GRADE_SCALES WHERE ROLLOVER_ID=GRADE_SCALE_ID AND SCHOOL_ID=report_card_grades.SCHOOL_ID),SORT_ORDER FROM REPORT_CARD_GRADES WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            break;
        case 'REPORT_CARD_COMMENTS':
            DBQuery("DELETE FROM REPORT_CARD_COMMENT_CATEGORIES WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("DELETE FROM REPORT_CARD_COMMENTS WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("INSERT INTO REPORT_CARD_COMMENT_CATEGORIES (ID,SYEAR,SCHOOL_ID,TITLE,SORT_ORDER,COURSE_ID,ROLLOVER_ID) SELECT " . db_seq_nextval('REPORT_CARD_COMMENT_CATEGORIES_SEQ') . ",SYEAR+1,SCHOOL_ID,TITLE,SORT_ORDER," . db_case(array('COURSE_ID', "''", 'NULL', "(SELECT COURSE_ID FROM COURSES WHERE ROLLOVER_ID=rc.COURSE_ID)")) . ",ID FROM REPORT_CARD_COMMENT_CATEGORIES rc WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            DBQuery("INSERT INTO REPORT_CARD_COMMENTS (ID,SYEAR,SCHOOL_ID,TITLE,SORT_ORDER,COURSE_ID,CATEGORY_ID,SCALE_ID) SELECT " . db_seq_nextval('REPORT_CARD_COMMENTS_SEQ') . ",SYEAR+1,SCHOOL_ID,TITLE,SORT_ORDER," . db_case(array('COURSE_ID', "''", 'NULL', "(SELECT COURSE_ID FROM COURSES WHERE ROLLOVER_ID=rc.COURSE_ID)")) . "," . db_case(array('CATEGORY_ID', "''", 'NULL', "(SELECT ID FROM REPORT_CARD_COMMENT_CATEGORIES WHERE ROLLOVER_ID=rc.CATEGORY_ID)")) . ",SCALE_ID FROM REPORT_CARD_COMMENTS rc WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            break;
        case 'ELIGIBILITY_ACTIVITIES':
        case 'DISCIPLINE_CATEGORIES':
            //modif Francois: discipline_field_usage rollover
        //modif Francois: discipline_field_usage rollover
        case 'DISCIPLINE_FIELD_USAGE':
            DBQuery("DELETE FROM {$table} WHERE SYEAR='{$next_syear}' AND SCHOOL_ID='" . UserSchool() . "'");
            $table_properties = db_properties($table);
            $columns = '';
            foreach ($table_properties as $column => $values) {
                if ($column != 'ID' && $column != 'SYEAR') {
                    $columns .= ',' . $column;
                }
            }
            DBQuery("INSERT INTO {$table} (ID,SYEAR" . $columns . ") SELECT " . db_seq_nextval($table . '_SEQ') . ",SYEAR+1" . $columns . " FROM {$table} WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'");
            break;
            // DOESN'T HAVE A SCHOOL_ID
        // DOESN'T HAVE A SCHOOL_ID
        case 'STUDENT_ENROLLMENT_CODES':
            DBQuery("DELETE FROM {$table} WHERE SYEAR='{$next_syear}'");
            $table_properties = db_properties($table);
            $columns = '';
            foreach ($table_properties as $column => $values) {
                if ($column != 'ID' && $column != 'SYEAR') {
                    $columns .= ',' . $column;
                }
            }
            DBQuery("INSERT INTO {$table} (ID,SYEAR" . $columns . ") SELECT " . db_seq_nextval($table . '_SEQ') . ",SYEAR+1" . $columns . " FROM {$table} WHERE SYEAR='" . UserSyear() . "'");
            break;
        case 'FOOD_SERVICE_STAFF_ACCOUNTS':
            DBQuery("UPDATE FOOD_SERVICE_STAFF_ACCOUNTS SET STAFF_ID=(SELECT STAFF_ID FROM STAFF WHERE ROLLOVER_ID=FOOD_SERVICE_STAFF_ACCOUNTS.STAFF_ID) WHERE exists(SELECT * FROM STAFF WHERE ROLLOVER_ID=FOOD_SERVICE_STAFF_ACCOUNTS.STAFF_ID AND SYEAR='{$next_syear}')");
            break;
            //modif Francois: add School Configuration
        //modif Francois: add School Configuration
        case 'PROGRAM_CONFIG':
            DBQuery("DELETE FROM PROGRAM_CONFIG WHERE SYEAR='{$next_syear}'");
            DBQuery("INSERT INTO PROGRAM_CONFIG (SYEAR,SCHOOL_ID,PROGRAM,TITLE,VALUE) SELECT SYEAR+1,SCHOOL_ID,PROGRAM,TITLE,VALUE FROM PROGRAM_CONFIG WHERE SYEAR='" . UserSyear() . "'");
            break;
    }
}