function _makeLetterGrade($percent, $course_period_id = 0, $staff_id = 0, $ret = 'TITLE') { global $programconfig, $_ROSARIO; if (!$course_period_id) { $course_period_id = UserCoursePeriod(); } if (!$staff_id) { $staff_id = User('STAFF_ID'); } if (!$programconfig[$staff_id]) { $config_RET = DBGet(DBQuery("SELECT TITLE,VALUE FROM PROGRAM_USER_CONFIG WHERE USER_ID='" . $staff_id . "' AND PROGRAM='Gradebook'"), array(), array('TITLE')); if (count($config_RET)) { foreach ($config_RET as $title => $value) { $programconfig[$staff_id][$title] = $value[1]['VALUE']; } } else { $programconfig[$staff_id] = true; } } if (!$_ROSARIO['_makeLetterGrade']['courses'][$course_period_id]) { $_ROSARIO['_makeLetterGrade']['courses'][$course_period_id] = DBGet(DBQuery("SELECT DOES_BREAKOFF,GRADE_SCALE_ID FROM COURSE_PERIODS WHERE COURSE_PERIOD_ID='" . $course_period_id . "'")); } $does_breakoff = $_ROSARIO['_makeLetterGrade']['courses'][$course_period_id][1]['DOES_BREAKOFF']; $grade_scale_id = $_ROSARIO['_makeLetterGrade']['courses'][$course_period_id][1]['GRADE_SCALE_ID']; $percent *= 100; if ($does_breakoff == 'Y') { if ($programconfig[$staff_id]['ROUNDING'] == 'UP') { $percent = ceil($percent); } elseif ($programconfig[$staff_id]['ROUNDING'] == 'DOWN') { $percent = floor($percent); } elseif ($programconfig[$staff_id]['ROUNDING'] == 'NORMAL') { $percent = round($percent); } } else { $percent = round($percent); } // school default if ($ret == '%') { return $percent; } if (!$_ROSARIO['_makeLetterGrade']['grades'][$grade_scale_id]) { $_ROSARIO['_makeLetterGrade']['grades'][$grade_scale_id] = DBGet(DBQuery("SELECT TITLE,ID,BREAK_OFF,COMMENT FROM REPORT_CARD_GRADES WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "' AND GRADE_SCALE_ID='{$grade_scale_id}' ORDER BY BREAK_OFF IS NOT NULL DESC,BREAK_OFF DESC,SORT_ORDER")); } //$grades = array('A+','A','A-','B+','B','B-','C+','C','C-','D+','D','D-','F'); foreach ($_ROSARIO['_makeLetterGrade']['grades'][$grade_scale_id] as $grade) { if ($does_breakoff == 'Y' ? $percent >= $programconfig[$staff_id][$course_period_id . '-' . $grade['ID']] && is_numeric($programconfig[$staff_id][$course_period_id . '-' . $grade['ID']]) : $percent >= $grade['BREAK_OFF']) { //modif Francois: use Report Card Grades comments //return $ret=='ID' ? $grade['ID'] : $grade['TITLE']; return $grade[$ret]; } } }
function _makeLetterGrade($percent, $course_period_id = 0, $staff_id = 0, $ret = '') { global $programconfig, $_openSIS; if (!$course_period_id) { $course_period_id = UserCoursePeriod(); } if (!$staff_id) { $staff_id = User('STAFF_ID'); } if (!$programconfig[$staff_id]) { $config_RET = DBGet(DBQuery('SELECT TITLE,VALUE FROM program_user_config WHERE USER_ID=\'' . $staff_id . '\' AND PROGRAM=\'Gradebook\''), array(), array('TITLE')); if (count($config_RET)) { foreach ($config_RET as $title => $value) { $programconfig[$staff_id][$title] = $value[1]['VALUE']; } } else { $programconfig[$staff_id] = true; } } if (!$_openSIS['_makeLetterGrade']['courses'][$course_period_id]) { $_openSIS['_makeLetterGrade']['courses'][$course_period_id] = DBGet(DBQuery('SELECT DOES_BREAKOFF,GRADE_SCALE_ID FROM course_periods WHERE COURSE_PERIOD_ID=\'' . $course_period_id . '\'')); } $does_breakoff = $_openSIS['_makeLetterGrade']['courses'][$course_period_id][1]['DOES_BREAKOFF']; $grade_scale_id = $_openSIS['_makeLetterGrade']['courses'][$course_period_id][1]['GRADE_SCALE_ID']; $percent *= 100; // if ($does_breakoff=='Y') // { if ($programconfig[$staff_id]['ROUNDING'] == 'UP') { $percent = ceil($percent); } elseif ($programconfig[$staff_id]['ROUNDING'] == 'DOWN') { $percent = floor($percent); } elseif ($programconfig[$staff_id]['ROUNDING'] == 'NORMAL') { $percent = round($percent, 2); } else { $percent = round($percent, 2); } // school default if ($ret == '%') { return $percent; } if (!$_openSIS['_makeLetterGrade']['grades'][$grade_scale_id]) { $_openSIS['_makeLetterGrade']['grades'][$grade_scale_id] = DBGet(DBQuery('SELECT TITLE,ID,BREAK_OFF FROM report_card_grades WHERE SYEAR=\'' . UserSyear() . '\' AND SCHOOL_ID=\'' . UserSchool() . '\' AND GRADE_SCALE_ID=\'' . $grade_scale_id . '\' ORDER BY BREAK_OFF IS NOT NULL DESC,BREAK_OFF DESC,SORT_ORDER')); } //$grades = array('A+','A','A-','B+','B','B-','C+','C','C-','D+','D','D-','F'); foreach ($_openSIS['_makeLetterGrade']['grades'][$grade_scale_id] as $grade) { if ($does_breakoff == 'Y' ? $percent >= $programconfig[$staff_id][$course_period_id . '-' . $grade['ID']] && is_numeric($programconfig[$staff_id][$course_period_id . '-' . $grade['ID']]) : $percent >= $grade['BREAK_OFF']) { return $ret == 'ID' ? $grade['ID'] : $grade['TITLE']; } } }
function core_calendar_create_calendar_events_object() { //first, gather the necessary variables global $columns; //then, convert variables for the Moodle object: /* list of ( //event object { name string //event name description string Default to "null" //Description format int Default to "1" //description format (1 = HTML, 0 = MOODLE, 2 = PLAIN or 4 = MARKDOWN) courseid int Default to "0" //course id groupid int Default to "0" //group id repeats int Default to "0" //number of repeats eventtype string Default to "user" //Event type timestart int Default to "1370827707" //timestart timeduration int Default to "0" //time duration (in minutes) visible int Default to "1" //visible sequence int Default to "1" //sequence } ) */ $name = $columns['TITLE']; $description = (!empty($columns['ASSIGNED_DATE']) ? _('Assigned Date') . ': ' . ProperDate($columns['ASSIGNED_DATE']) . '<br />' : '') . $columns['DESCRIPTION']; $format = 1; //gather the Moodle course ID $courseid = DBGet(DBQuery("SELECT moodle_id FROM moodlexrosario WHERE rosario_id='" . UserCoursePeriod() . "' AND \"column\"='course_period_id'")); if (count($courseid)) { $courseid = (int) $courseid[1]['MOODLE_ID']; } else { return null; } $eventtype = 'course'; $timestart = strtotime($columns['DUE_DATE']); $events = array(array('name' => $name, 'description' => $description, 'format' => $format, 'courseid' => $courseid, 'timestart' => $timestart, 'eventtype' => $eventtype)); return array($events); }
function _makePercentGrade($grade_id, $course_period_id = 0, $staff_id = 0) { global $programconfig, $_openSIS; if (!$course_period_id) { $course_period_id = UserCoursePeriod(); } if (!$staff_id) { $staff_id = User('STAFF_ID'); } if (!$programconfig[$staff_id]) { $config_RET = DBGet(DBQuery('SELECT TITLE,VALUE FROM program_user_config WHERE USER_ID=\'' . $staff_id . '\' AND PROGRAM=\'Gradebook\''), array(), array('TITLE')); if (count($config_RET)) { foreach ($config_RET as $title => $value) { $programconfig[$staff_id][$title] = $value[1]['VALUE']; } } else { $programconfig[$staff_id] = true; } } if (!$_openSIS['_makeLetterGrade']['courses'][$course_period_id]) { $_openSIS['_makeLetterGrade']['courses'][$course_period_id] = DBGet(DBQuery('SELECT DOES_BREAKOFF,GRADE_SCALE_ID FROM course_periods WHERE COURSE_PERIOD_ID=\'' . $course_period_id . '\'')); } $does_breakoff = $_openSIS['_makeLetterGrade']['courses'][$course_period_id][1]['DOES_BREAKOFF']; $grade_scale_id = $_openSIS['_makeLetterGrade']['courses'][$course_period_id][1]['GRADE_SCALE_ID']; if (!$_openSIS['_makeLetterGrade']['grades'][$grade_scale_id]) { $_openSIS['_makeLetterGrade']['grades'][$grade_scale_id] = DBGet(DBQuery('SELECT TITLE,ID,BREAK_OFF FROM report_card_grades WHERE SYEAR=\'' . UserSyear() . '\' AND SCHOOL_ID=\'' . UserSchool() . '\' AND GRADE_SCALE_ID=\'' . $grade_scale_id . '\' ORDER BY BREAK_OFF IS NOT NULL DESC,BREAK_OFF DESC,SORT_ORDER')); } //$grades = array('A+','A','A-','B+','B','B-','C+','C','C-','D+','D','D-','F'); foreach ($_openSIS['_makeLetterGrade']['grades'][$grade_scale_id] as $grade) { $prev = $crnt; $crnt = $does_breakoff == 'Y' ? $programconfig[$staff_id][$course_period_id . '-' . $grade['ID']] : $grade['BREAK_OFF']; if (is_numeric($grade_id) ? $grade_id == $grade['ID'] : strtoupper($grade_id) == strtoupper($grade['TITLE'])) { return ($crnt + ($crnt > $prev ? 100 : $prev)) / 2; } } return 0; }
function Widgets($item, &$myextra = null) { global $extra, $_ROSARIO, $RosarioModules; if (isset($myextra)) { $extra =& $myextra; } if (!is_array($_ROSARIO['Widgets'])) { $_ROSARIO['Widgets'] = array(); } if (!is_array($extra['functions'])) { $extra['functions'] = array(); } if ((User('PROFILE') == 'admin' || User('PROFILE') == 'teacher') && !$_ROSARIO['Widgets'][$item]) { switch ($item) { case 'all': $extra['search'] .= '<TR><TD colspan="2"><TABLE class="width-100p cellpadding-2" style="border-collapse:separate; border-spacing: 2px">'; if ($RosarioModules['Students'] && (!$_ROSARIO['Widgets']['calendar'] || !$_ROSARIO['Widgets']['next_year'] || !$_ROSARIO['Widgets']['enrolled'] || !$_ROSARIO['Widgets']['rolled'])) { //modif Francois: css WPadmin $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'enrollment_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="enrollment_table_arrow" height="12"> <B>' . _('Enrollment') . '</B></A><BR /><TABLE id="enrollment_table" style="display:none;" class="widefat width-100p cellspacing-0">'; Widgets('calendar', $extra); Widgets('next_year', $extra); Widgets('enrolled', $extra); Widgets('rolled', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } if ($RosarioModules['Scheduling'] && (!$_ROSARIO['Widgets']['course'] || !$_ROSARIO['Widgets']['request']) && User('PROFILE') == 'admin') { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'scheduling_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="scheduling_table_arrow" height="12"> <B>' . _('Scheduling') . '</B></A><BR /><TABLE id="scheduling_table" style="display:none;" class="widefat width-100p cellspacing-0">'; Widgets('course', $extra); //Widgets('request',$extra); $extra['search'] .= '</TABLE></TD></TR>'; } if ($RosarioModules['Attendance'] && !$_ROSARIO['Widgets']['absences']) { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'absences_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="absences_table_arrow" height="12"> <B>' . _('Attendance') . '</B></A><BR /><TABLE id="absences_table" style="display:none;" class="widefat width-100p cellspacing-0">'; Widgets('absences', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } if ($RosarioModules['Grades'] && (!$_ROSARIO['Widgets']['gpa'] || !$_ROSARIO['Widgets']['class_rank'] || !$_ROSARIO['Widgets']['letter_grade'])) { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'grades_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="grades_table_arrow" height="12"> <B>' . _('Grades') . '</B></A><BR /><TABLE style="padding:5px;" id="grades_table" style="display:none;" class="widefat width-100p cellspacing-0">'; Widgets('gpa', $extra); Widgets('class_rank', $extra); Widgets('letter_grade', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } if ($RosarioModules['Eligibility'] && (!$_ROSARIO['Widgets']['eligibility'] || !$_ROSARIO['Widgets']['activity'])) { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'eligibility_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="eligibility_table_arrow" height="12"> <B>' . _('Eligibility') . '</B></A><BR /><TABLE id="eligibility_table" style="display:none;" class="widefat width-100p cellspacing-0">'; Widgets('eligibility', $extra); Widgets('activity', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } if ($RosarioModules['Food_Service'] && (!$_ROSARIO['Widgets']['fsa_balance'] || !$_ROSARIO['Widgets']['fsa_discount'] || !$_ROSARIO['Widgets']['fsa_status'] || !$_ROSARIO['Widgets']['fsa_barcode'])) { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'food_service_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="food_service_table_arrow" height="12"> <B>' . _('Food Service') . '</B></A><BR /><TABLE id="food_service_table" style="display:none;" class="widefat width-100p cellspacing-0">'; Widgets('fsa_balance', $extra); Widgets('fsa_discount', $extra); Widgets('fsa_status', $extra); Widgets('fsa_barcode', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } if ($RosarioModules['Discipline'] && !$_ROSARIO['Widgets']['discipline']) { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'discipline_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="discipline_table_arrow" height="12"> <B>' . _('Discipline') . '</B></A><BR /><TABLE id="discipline_table" style="display:none;" class="widefat width-100p cellspacing-0">'; Widgets('discipline', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } if ($RosarioModules['Student_Billing'] && !$_ROSARIO['Widgets']['balance']) { $extra['search'] .= '<TR><TD colspan="2"> <A onclick="switchMenu(\'billing_table\');" href="#"><IMG SRC="assets/arrow_right.gif" id="billing_table_arrow" height="12"> <B>' . _('Student Billing') . '</B></A><BR /><TABLE id="billing_table" style="display:none;" class="widefat width-100p cellspacing-0">'; Widgets('balance', $extra); $extra['search'] .= '</TABLE></TD></TR>'; } $extra['search'] .= '</TABLE></TD></TR>'; break; case 'user': $widgets_RET = DBGet(DBQuery("SELECT TITLE FROM PROGRAM_USER_CONFIG WHERE USER_ID='" . User('STAFF_ID') . "' AND PROGRAM='WidgetsSearch'" . (count($_ROSARIO['Widgets']) ? " AND TITLE NOT IN ('" . implode("','", array_keys($_ROSARIO['Widgets'])) . "')" : ''))); foreach ($widgets_RET as $widget) { Widgets($widget['TITLE'], $extra); } break; case 'course': if ($RosarioModules['Scheduling'] && User('PROFILE') == 'admin') { if ($_REQUEST['w_course_period_id']) { if ($_REQUEST['w_course_period_id_which'] == 'course') { $course = DBGet(DBQuery("SELECT c.TITLE AS COURSE_TITLE,cp.TITLE,cp.COURSE_ID FROM COURSE_PERIODS cp,COURSES c WHERE c.COURSE_ID=cp.COURSE_ID AND cp.COURSE_PERIOD_ID='" . $_REQUEST['w_course_period_id'] . "'")); $extra['FROM'] .= ",SCHEDULE w_ss"; $extra['WHERE'] .= " AND w_ss.STUDENT_ID=s.STUDENT_ID AND w_ss.SYEAR=ssm.SYEAR AND w_ss.SCHOOL_ID=ssm.SCHOOL_ID AND w_ss.COURSE_ID='" . $course[1]['COURSE_ID'] . "' AND ('" . DBDate() . "' BETWEEN w_ss.START_DATE AND w_ss.END_DATE OR w_ss.END_DATE IS NULL)"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Course')) . ' </b>' . $course[1]['COURSE_TITLE'] . '<BR />'; } } else { $extra['FROM'] .= ",SCHEDULE w_ss"; $extra['WHERE'] .= " AND w_ss.STUDENT_ID=s.STUDENT_ID AND w_ss.SYEAR=ssm.SYEAR AND w_ss.SCHOOL_ID=ssm.SCHOOL_ID AND w_ss.COURSE_PERIOD_ID='" . $_REQUEST['w_course_period_id'] . "' AND ('" . DBDate() . "' BETWEEN w_ss.START_DATE AND w_ss.END_DATE OR w_ss.END_DATE IS NULL)"; $course = DBGet(DBQuery("SELECT c.TITLE AS COURSE_TITLE,cp.TITLE,cp.COURSE_ID FROM COURSE_PERIODS cp,COURSES c WHERE c.COURSE_ID=cp.COURSE_ID AND cp.COURSE_PERIOD_ID='" . $_REQUEST['w_course_period_id'] . "'")); if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Course Period')) . ' </b>' . $course[1]['COURSE_TITLE'] . ': ' . $course[1]['TITLE'] . '<BR />'; } } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Course') . "</TD><TD><DIV id=course_div></DIV> <A HREF=# onclick='window.open(\"Modules.php?modname=misc/ChooseCourse.php\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'>" . _('Choose') . '</A></TD></TR>'; } break; case 'request': if ($RosarioModules['Scheduling'] && User('PROFILE') == 'admin') { // PART OF THIS IS DUPLICATED IN PrintRequests.php if ($_REQUEST['request_course_id']) { $course = DBGet(DBQuery("SELECT c.TITLE FROM COURSES c WHERE c.COURSE_ID='" . $_REQUEST['request_course_id'] . "'")); if (!$_REQUEST['not_request_course']) { $extra['FROM'] .= ",SCHEDULE_REQUESTS sr"; $extra['WHERE'] .= " AND sr.STUDENT_ID=s.STUDENT_ID AND sr.SYEAR=ssm.SYEAR AND sr.SCHOOL_ID=ssm.SCHOOL_ID AND sr.COURSE_ID='" . $_REQUEST['request_course_id'] . "' "; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Request')) . ' </b>' . $course[1]['TITLE'] . '<BR />'; } } else { $extra['WHERE'] .= " AND NOT EXISTS (SELECT '' FROM SCHEDULE_REQUESTS sr WHERE sr.STUDENT_ID=ssm.STUDENT_ID AND sr.SYEAR=ssm.SYEAR AND sr.COURSE_ID='" . $_REQUEST['request_course_id'] . "' ) "; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Missing Request')) . ' </b>' . $course[1]['TITLE'] . '<BR />'; } } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px">' . _('Request') . '</TD><TD><DIV id="request_div"></DIV> <A HREF="#" onclick=\'window.open("Modules.php?modname=misc/ChooseRequest.php","","scrollbars=yes,resizable=yes,width=800,height=400");\'>' . _('Choose') . '</A></TD></TR>'; } break; case 'absences': if ($RosarioModules['Attendance']) { if (is_numeric($_REQUEST['absences_low']) && is_numeric($_REQUEST['absences_high'])) { if ($_REQUEST['absences_low'] > $_REQUEST['absences_high']) { $temp = $_REQUEST['absences_high']; $_REQUEST['absences_high'] = $_REQUEST['absences_low']; $_REQUEST['absences_low'] = $temp; } if ($_REQUEST['absences_low'] == $_REQUEST['absences_high']) { $extra['WHERE'] .= " AND (SELECT sum(1-STATE_VALUE) AS STATE_VALUE FROM ATTENDANCE_DAY ad WHERE ssm.STUDENT_ID=ad.STUDENT_ID AND ad.SYEAR=ssm.SYEAR AND ad.MARKING_PERIOD_ID IN (" . GetChildrenMP($_REQUEST['absences_term'], UserMP()) . ")) = '{$_REQUEST['absences_low']}'"; } else { $extra['WHERE'] .= " AND (SELECT sum(1-STATE_VALUE) AS STATE_VALUE FROM ATTENDANCE_DAY ad WHERE ssm.STUDENT_ID=ad.STUDENT_ID AND ad.SYEAR=ssm.SYEAR AND ad.MARKING_PERIOD_ID IN (" . GetChildrenMP($_REQUEST['absences_term'], UserMP()) . ")) BETWEEN '{$_REQUEST['absences_low']}' AND '{$_REQUEST['absences_high']}'"; } switch ($_REQUEST['absences_term']) { case 'FY': $term = _('this school year to date'); break; case 'SEM': $term = _('this semester to date'); break; case 'QTR': $term = _('this marking period to date'); break; } if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Days Absent') . ' ' . $term . ' ' . _('Between') . ' </b>' . $_REQUEST['absences_low'] . ' & ' . $_REQUEST['absences_high'] . '<BR />'; } } //modif Francois: add <label> on radio $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Days Absent') . '<BR /><label><INPUT type="radio" name="absences_term" value="FY" checked /> ' . _('YTD') . '</label> <label><INPUT type="radio" name="absences_term" value="SEM"> ' . GetMP(GetParentMP('SEM', UserMP()), 'SHORT_NAME') . '</label> <label><INPUT type="radio" name="absences_term" value="QTR"> ' . GetMP(UserMP(), 'SHORT_NAME') . '</label></TD><TD>' . _('Between') . ' <INPUT type="text" name="absences_low" size="3" maxlength="5"> & <INPUT type="text" name="absences_high" size="3" maxlength="5"></TD></TR>'; } break; case 'gpa': if ($RosarioModules['Grades']) { if (is_numeric($_REQUEST['gpa_low']) && is_numeric($_REQUEST['gpa_high'])) { if ($_REQUEST['gpa_low'] > $_REQUEST['gpa_high']) { $temp = $_REQUEST['gpa_high']; $_REQUEST['gpa_high'] = $_REQUEST['gpa_low']; $_REQUEST['gpa_low'] = $temp; } if ($_REQUEST['list_gpa']) { //modif Francois: remove STUDENT_GPA_CALCULATED table /*$extra['SELECT'] .= ',sgc.WEIGHTED_GPA,sgc.UNWEIGHTED_GPA'; $extra['columns_after']['WEIGHTED_GPA'] = _('Weighted GPA'); $extra['columns_after']['UNWEIGHTED_GPA'] = _('Unweighted GPA');*/ $extra['SELECT'] .= ',sms.CUM_WEIGHTED_FACTOR,sms.CUM_UNWEIGHTED_FACTOR'; $extra['columns_after']['CUM_WEIGHTED_FACTOR'] = _('Weighted GPA'); $extra['columns_after']['CUM_UNWEIGHTED_FACTOR'] = _('Unweighted GPA'); } /*if(mb_strpos($extra['FROM'],'STUDENT_GPA_CALCULATED sgc')===false) { $extra['FROM'] .= ",STUDENT_GPA_CALCULATED sgc"; $extra['WHERE'] .= " AND sgc.STUDENT_ID=s.STUDENT_ID AND sgc.MARKING_PERIOD_ID='".$_REQUEST['gpa_term']."'"; }*/ if (mb_strpos($extra['FROM'], 'STUDENT_MP_STATS sms') === false) { $extra['FROM'] .= ",STUDENT_MP_STATS sms"; $extra['WHERE'] .= " AND sms.STUDENT_ID=s.STUDENT_ID AND sms.MARKING_PERIOD_ID='" . $_REQUEST['gpa_term'] . "'"; } //$extra['WHERE'] .= " AND sgc.".(($_REQUEST['weighted']=='Y')?'WEIGHTED_':'')."GPA BETWEEN '$_REQUEST[gpa_low]' AND '$_REQUEST[gpa_high]' AND sgc.MARKING_PERIOD_ID='".$_REQUEST['gpa_term']."'"; $extra['WHERE'] .= " AND sms.CUM_" . ($_REQUEST['weighted'] == 'Y' ? '' : 'UN') . "WEIGHTED_FACTOR*(SELECT GP_SCALE FROM REPORT_CARD_GRADE_SCALES WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "') BETWEEN '{$_REQUEST['gpa_low']}' AND '{$_REQUEST['gpa_high']}'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . ($_REQUEST['gpa_weighted'] == 'Y' ? _('Weighted GPA') . ' ' : _('Unweighted GPA') . ' ') . Localize('colon', _('Between')) . ' </b>' . $_REQUEST['gpa_low'] . ' & ' . $_REQUEST['gpa_high'] . '<BR />'; } } //modif Francois: add <label> on checkbox //modif Francois: replace Cumulative by Full Year //$extra['search'] .= "<TR><TD style="text-align:right; width:120px:">"._('GPA')."<BR /><label><INPUT type=checkbox name=gpa_weighted value=Y> "._('Weighted').'</label><BR /><label><INPUT type="radio" name="gpa_term" value=CUM checked /> '._('Cumulative').'</label> <label><INPUT type="radio" name="gpa_term" value="'.GetParentMP('SEM',UserMP()).'"> '.GetMP(GetParentMP('SEM',UserMP()),'SHORT_NAME').'</label> <label><INPUT type="radio" name="gpa_term" value="'.UserMP().'"> '.GetMP(UserMP(),'SHORT_NAME')."</label></TD><TD>"._('Between')." <INPUT type="text" name=gpa_low size=3 maxlength=5> & <INPUT type="text" name=gpa_high size=3 maxlength=5></TD></TR>"; $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('GPA') . '<BR /><label><INPUT type="checkbox" name="weighted" value="Y"> ' . _('Weighted') . '</label><BR />' . (GetMP($MPfy = GetParentMP('FY', GetParentMP('SEM', UserMP())), 'DOES_GRADES') == 'Y' ? '<label><INPUT type="radio" name="gpa_term" value="' . $MPfy . '" checked /> ' . GetMP($MPfy, 'SHORT_NAME') . '</label> ' : '') . (GetMP($MPsem = GetParentMP('SEM', UserMP()), 'DOES_GRADES') == 'Y' ? '<label><INPUT type="radio" name="gpa_term" value="' . $MPsem . '"> ' . GetMP($MPsem, 'SHORT_NAME') . '</label> ' : '') . (GetMP($MPtrim = UserMP(), 'DOES_GRADES') == 'Y' ? '<label><INPUT type="radio" name="gpa_term" value="' . $MPtrim . '" checked /> ' . GetMP($MPtrim, 'SHORT_NAME') . '</label>' : '') . '</TD><TD>' . _('Between') . ' <INPUT type="text" name="gpa_low" size="3" maxlength="5"> & <INPUT type="text" name="gpa_high" size="3" maxlength="5"></TD></TR>'; } break; case 'class_rank': if ($RosarioModules['Grades']) { if (is_numeric($_REQUEST['class_rank_low']) && is_numeric($_REQUEST['class_rank_high'])) { if ($_REQUEST['class_rank_low'] > $_REQUEST['class_rank_high']) { $temp = $_REQUEST['class_rank_high']; $_REQUEST['class_rank_high'] = $_REQUEST['class_rank_low']; $_REQUEST['class_rank_low'] = $temp; } //modif Francois: remove STUDENT_GPA_CALCULATED table /*if(mb_strpos($extra['FROM'],'STUDENT_GPA_CALCULATED sgc')===false) { $extra['FROM'] .= ",STUDENT_GPA_CALCULATED sgc"; $extra['WHERE'] .= " AND sgc.STUDENT_ID=s.STUDENT_ID AND sgc.MARKING_PERIOD_ID='".$_REQUEST['class_rank_term']."'"; }*/ if (mb_strpos($extra['FROM'], 'STUDENT_MP_STATS sms') === false) { $extra['FROM'] .= ",STUDENT_MP_STATS sms"; $extra['WHERE'] .= " AND sms.STUDENT_ID=s.STUDENT_ID AND sms.MARKING_PERIOD_ID='" . $_REQUEST['class_rank_term'] . "'"; } //$extra['WHERE'] .= " AND sgc.CLASS_RANK BETWEEN '$_REQUEST[class_rank_low]' AND '$_REQUEST[class_rank_high]'"; $extra['WHERE'] .= " AND sms.CUM_RANK BETWEEN '{$_REQUEST['class_rank_low']}' AND '{$_REQUEST['class_rank_high']}'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Class Rank')) . ' ' . _('Between') . '</b>' . $_REQUEST['class_rank_low'] . ' & ' . $_REQUEST['class_rank_high'] . '<BR />'; } } //modif Francois: replace Cumulative by Full Year //$extra['search'] .= "<TR><TD style="text-align:right; width:120px:">"._('Class Rank').'<BR /><label><INPUT type="radio" name="class_rank_term" value=CUM checked /> '._('Cumulative').'</label> <label><INPUT type="radio" name="class_rank_term" value="'.GetParentMP('SEM',UserMP()).'"> '.GetMP(GetParentMP('SEM',UserMP()),'SHORT_NAME').'</label> <label><INPUT type="radio" name="class_rank_term" value="'.UserMP().'"> '.GetMP(UserMP(),'SHORT_NAME'); $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Class Rank') . '<BR />' . (GetMP($MPfy = GetParentMP('FY', GetParentMP('SEM', UserMP())), 'DOES_GRADES') == 'Y' ? '<label><INPUT type="radio" name="class_rank_term" value="' . $MPfy . '"> ' . GetMP($MPfy, 'SHORT_NAME') . '</label> ' : '') . (GetMP($MPsem = GetParentMP('SEM', UserMP()), 'DOES_GRADES') == 'Y' ? '<label><INPUT type="radio" name="class_rank_term" value="' . $MPsem . '"> ' . GetMP($MPsem, 'SHORT_NAME') . '</label> ' : '') . (GetMP($MPtrim = UserMP(), 'DOES_GRADES') == 'Y' ? '<label><INPUT type="radio" name="class_rank_term" value="' . $MPtrim . '" checked /> ' . GetMP($MPtrim, 'SHORT_NAME') . '</label>' : ''); if (mb_strlen($pros = GetChildrenMP('PRO', UserMP()))) { $pros = explode(',', str_replace("'", '', $pros)); foreach ($pros as $pro) { $extra['search'] .= '<label><INPUT type="radio" name="class_rank_term" value="' . $pro . '"> ' . GetMP($pro, 'SHORT_NAME') . '</label> '; } } $extra['search'] .= '</TD><TD>' . _('Between') . ' <INPUT type="text" name="class_rank_low" size="3" maxlength="5"> & <INPUT type="text" name="class_rank_high" size="3" maxlength="5"></TD></TR>'; } break; case 'letter_grade': if ($RosarioModules['Grades']) { if (count($_REQUEST['letter_grade'])) { if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . ($_REQUEST['letter_grade_exclude'] == 'Y' ? _('Without') : _('With')) . ' ' . _('Report Card Grade') . ': </b>'; } $letter_grades_RET = DBGet(DBQuery("SELECT ID,TITLE FROM REPORT_CARD_GRADES WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "'"), array(), array('ID')); foreach ($_REQUEST['letter_grade'] as $grade => $Y) { $letter_grades .= ",'{$grade}'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= $letter_grades_RET[$grade][1]['TITLE'] . ', '; } } if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] = mb_substr($_ROSARIO['SearchTerms'], 0, -2) . '<BR />'; } $extra['WHERE'] .= " AND " . ($_REQUEST['letter_grade_exclude'] == 'Y' ? 'NOT ' : '') . "EXISTS (SELECT '' FROM STUDENT_REPORT_CARD_GRADES sg3 WHERE sg3.STUDENT_ID=ssm.STUDENT_ID AND sg3.SYEAR=ssm.SYEAR AND sg3.REPORT_CARD_GRADE_ID IN (" . mb_substr($letter_grades, 1) . ") AND sg3.MARKING_PERIOD_ID='" . $_REQUEST['letter_grade_term'] . "' )"; } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Grade') . '<BR /><label><INPUT type="checkbox" name="letter_grade_exclude" value="Y"> ' . _('Did not receive') . '</label><BR /><label><INPUT type="radio" name="letter_grade_term" value="' . GetParentMP('SEM', UserMP()) . '"> ' . GetMP(GetParentMP('SEM', UserMP()), 'SHORT_NAME') . '</label> <label><INPUT type="radio" name="letter_grade_term" value="' . UserMP() . '"> ' . GetMP(UserMP(), 'SHORT_NAME') . '</label>'; if (mb_strlen($pros = GetChildrenMP('PRO', UserMP()))) { $pros = explode(',', str_replace("'", '', $pros)); foreach ($pros as $pro) { $extra['search'] .= '<label><INPUT type="radio" name="letter_grade_term" value="' . $pro . '"> ' . GetMP($pro, 'SHORT_NAME') . '</label> '; } } $extra['search'] .= "</TD><TD>"; //modif Francois: fix error Invalid argument supplied for foreach() if ($_REQUEST['search_modfunc'] == 'search_fnc' || !$_REQUEST['search_modfunc']) { $letter_grades_RET = DBGet(DBQuery("SELECT rg.ID,rg.TITLE,rg.GRADE_SCALE_ID FROM REPORT_CARD_GRADES rg,REPORT_CARD_GRADE_SCALES rs WHERE rg.SCHOOL_ID='" . UserSchool() . "' AND rg.SYEAR='" . UserSyear() . "' AND rs.ID=rg.GRADE_SCALE_ID" . (User('PROFILE') == 'teacher' ? ' AND rg.GRADE_SCALE_ID=(SELECT GRADE_SCALE_ID FROM COURSE_PERIODS WHERE COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\')' : '') . " ORDER BY rs.SORT_ORDER,rs.ID,rg.BREAK_OFF IS NOT NULL DESC,rg.BREAK_OFF DESC,rg.SORT_ORDER"), array(), array('GRADE_SCALE_ID')); foreach ($letter_grades_RET as $grades) { $i = 0; if (count($grades)) { foreach ($grades as $grade) { if ($i % 9 == 0) { $extra['search'] .= '<BR />'; } $extra['search'] .= '<label><INPUT type="checkbox" value="Y" name="letter_grade[' . $grade['ID'] . ']"> ' . $grade['TITLE'] . '</label> '; $i++; } } } } $extra['search'] .= '</TD></TR>'; } break; case 'eligibility': if ($RosarioModules['Eligibility']) { if ($_REQUEST['ineligible'] == 'Y') { $start_end_RET = DBGet(DBQuery("SELECT TITLE,VALUE FROM PROGRAM_CONFIG WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "' AND PROGRAM='eligibility' AND TITLE IN ('START_DAY','END_DAY')")); if (count($start_end_RET)) { foreach ($start_end_RET as $value) { ${$value}['TITLE'] = $value['VALUE']; } } switch (date('D')) { case 'Mon': $today = 1; break; case 'Tue': $today = 2; break; case 'Wed': $today = 3; break; case 'Thu': $today = 4; break; case 'Fri': $today = 5; break; case 'Sat': $today = 6; break; case 'Sun': $today = 7; break; } $start_date = mb_strtoupper(date('d-M-y', time() - ($today - $START_DAY) * 60 * 60 * 24)); $end_date = mb_strtoupper(date('d-M-y', time())); $extra['WHERE'] .= " AND (SELECT count(*) FROM ELIGIBILITY e WHERE ssm.STUDENT_ID=e.STUDENT_ID AND e.SYEAR=ssm.SYEAR AND e.SCHOOL_DATE BETWEEN '{$start_date}' AND '{$end_date}' AND e.ELIGIBILITY_CODE='FAILING') > '0'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Eligibility')) . ' </b>' . _('Ineligible') . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:"></TD><TD><label><INPUT type="checkbox" name="ineligible" value="Y"> ' . _('Ineligible') . '</label></TD></TR>'; } break; case 'activity': if ($RosarioModules['Eligibility']) { if ($_REQUEST['activity_id']) { $extra['FROM'] .= ",STUDENT_ELIGIBILITY_ACTIVITIES sea"; $extra['WHERE'] .= " AND sea.STUDENT_ID=s.STUDENT_ID AND sea.SYEAR=ssm.SYEAR AND sea.ACTIVITY_ID='" . $_REQUEST['activity_id'] . "'"; $activity = DBGet(DBQuery("SELECT TITLE FROM ELIGIBILITY_ACTIVITIES WHERE ID='" . $_REQUEST['activity_id'] . "'")); if (!$extra['NoSearchTerms']) { //modif Francois: add translation $_ROSARIO['SearchTerms'] .= '<b>' . _('Activity') . ': </b>' . $activity[1]['TITLE'] . '<BR />'; } } if ($_REQUEST['search_modfunc'] == 'search_fnc' || !$_REQUEST['search_modfunc']) { $activities_RET = DBGet(DBQuery("SELECT ID,TITLE FROM ELIGIBILITY_ACTIVITIES WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "'")); } $select = '<SELECT name="activity_id"><OPTION value="">' . _('Not Specified') . '</OPTION>'; if (count($activities_RET)) { foreach ($activities_RET as $activity) { $select .= '<OPTION value="' . $activity['ID'] . '">' . $activity['TITLE'] . '</OPTION>'; } } $select .= '</SELECT>'; $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Activity') . '</TD><TD>' . $select . '</TD></TR>'; } break; case 'mailing_labels': if ($_REQUEST['mailing_labels'] == 'Y') { $extra['SELECT'] .= ',coalesce(sam.ADDRESS_ID,-ssm.STUDENT_ID) AS ADDRESS_ID,sam.ADDRESS_ID AS MAILING_LABEL'; $extra['FROM'] = " LEFT OUTER JOIN STUDENTS_JOIN_ADDRESS sam ON (sam.STUDENT_ID=ssm.STUDENT_ID AND sam.MAILING='Y'" . ($_REQUEST['residence'] == 'Y' ? " AND sam.RESIDENCE='Y'" : '') . ")" . $extra['FROM']; $extra['functions'] += array('MAILING_LABEL' => 'MailingLabel'); } $extra['search'] .= '<TR><TD style="text-align:right; width:130px"><label>' . _('Mailing Labels') . ' <INPUT type="checkbox" name="mailing_labels" value="Y"></label></TD>'; break; case 'balance': if ($RosarioModules['Student_Billing']) { if (is_numeric($_REQUEST['balance_low']) && is_numeric($_REQUEST['balance_high'])) { if ($_REQUEST['balance_low'] > $_REQUEST['balance_high']) { $temp = $_REQUEST['balance_high']; $_REQUEST['balance_high'] = $_REQUEST['balance_low']; $_REQUEST['balance_low'] = $temp; } $extra['WHERE'] .= " AND (coalesce((SELECT sum(p.AMOUNT) FROM BILLING_PAYMENTS p WHERE p.STUDENT_ID=ssm.STUDENT_ID AND p.SYEAR=ssm.SYEAR AND (p.LUNCH_PAYMENT!='Y' OR p.LUNCH_PAYMENT IS NULL)),0)-coalesce((SELECT sum(f.AMOUNT) FROM BILLING_FEES f WHERE f.STUDENT_ID=ssm.STUDENT_ID AND f.SYEAR=ssm.SYEAR),0)) BETWEEN '{$_REQUEST['balance_low']}' AND '{$_REQUEST['balance_high']}' "; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Student Billing Balance')) . ' </b>' . _('Between') . ' ' . $_REQUEST['balance_low'] . ' & ' . $_REQUEST['balance_high'] . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Balance') . '<BR /></TD><TD>' . _('Between') . ' <INPUT type="text" name="balance_low" size="5" maxlength="10"> & <INPUT type="text" name="balance_high" size="5" maxlength="10"></TD></TR>'; } break; case 'discipline': if ($RosarioModules['Discipline']) { if (is_array($_REQUEST['discipline'])) { foreach ($_REQUEST['discipline'] as $key => $value) { if (!$value) { unset($_REQUEST['discipline'][$key]); } } } if ($_REQUEST['month_discipline_entry_begin'] && $_REQUEST['day_discipline_entry_begin'] && $_REQUEST['year_discipline_entry_begin']) { $_REQUEST['discipline_entry_begin'] = $_REQUEST['day_discipline_entry_begin'] . '-' . $_REQUEST['month_discipline_entry_begin'] . '-' . $_REQUEST['year_discipline_entry_begin']; if (!VerifyDate($_REQUEST['discipline_entry_begin'])) { unset($_REQUEST['discipline_entry_begin']); } unset($_REQUEST['day_discipline_entry_begin']); unset($_REQUEST['month_discipline_entry_begin']); unset($_REQUEST['year_discipline_entry_begin']); } if ($_REQUEST['month_discipline_entry_end'] && $_REQUEST['day_discipline_entry_end'] && $_REQUEST['year_discipline_entry_end']) { $_REQUEST['discipline_entry_end'] = $_REQUEST['day_discipline_entry_end'] . '-' . $_REQUEST['month_discipline_entry_end'] . '-' . $_REQUEST['year_discipline_entry_end']; if (!VerifyDate($_REQUEST['discipline_entry_end'])) { unset($_REQUEST['discipline_entry_end']); } unset($_REQUEST['day_discipline_entry_end']); unset($_REQUEST['month_discipline_entry_end']); unset($_REQUEST['year_discipline_entry_end']); } if ($_REQUEST['discipline_reporter'] || $_REQUEST['discipline_entry_begin'] || $_REQUEST['discipline_entry_end'] || count($_REQUEST['discipline']) || count($_REQUEST['discipline_begin']) || count($_REQUEST['discipline_end'])) { $extra['WHERE'] .= ' AND dr.STUDENT_ID=ssm.STUDENT_ID AND dr.SYEAR=ssm.SYEAR AND dr.SCHOOL_ID=ssm.SCHOOL_ID '; $extra['FROM'] .= ',DISCIPLINE_REFERRALS dr '; } $users_RET = DBGet(DBQuery("SELECT STAFF_ID,FIRST_NAME,LAST_NAME,MIDDLE_NAME FROM STAFF WHERE SYEAR='" . UserSyear() . "' AND (SCHOOLS IS NULL OR SCHOOLS LIKE '%," . UserSchool() . ",%') AND (PROFILE='admin' OR PROFILE='teacher') ORDER BY LAST_NAME,FIRST_NAME,MIDDLE_NAME"), array(), array('STAFF_ID')); if ($_REQUEST['discipline_reporter']) { $extra['WHERE'] .= " AND dr.STAFF_ID='{$_REQUEST['discipline_reporter']}' "; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Reporter') . ': </b>' . $users_RET[$_REQUEST['discipline_reporter']][1]['LAST_NAME'] . ', ' . $users_RET[$_REQUEST['discipline_reporter']][1]['FIRST_NAME'] . ' ' . $users_RET[$_REQUEST['discipline_reporter']][1]['MIDDLE_NAME'] . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Reporter') . '</TD><TD>'; $extra['search'] .= '<SELECT name=discipline_reporter><OPTION value="">' . _('Not Specified') . '</OPTION>'; foreach ($users_RET as $id => $user) { $extra['search'] .= '<OPTION value=' . $id . '>' . $user[1]['LAST_NAME'] . ', ' . $user[1]['FIRST_NAME'] . ' ' . $user[1]['MIDDLE_NAME'] . '</OPTION>'; } $extra['search'] .= '</SELECT>'; $extra['search'] .= '</TD></TR>'; $discipline_entry_begin_for_ProperDate = $_REQUEST['discipline_entry_begin']; if (mb_strlen($_REQUEST['discipline_entry_begin']) > 10) { //date = LAST_LOGIN = date + time $discipline_entry_begin_for_ProperDate = mb_substr($_REQUEST['discipline_entry_begin'], 0, 10); } if ($_REQUEST['discipline_entry_begin'] && $_REQUEST['discipline_entry_end']) { $extra['WHERE'] .= " AND dr.ENTRY_DATE BETWEEN '{$_REQUEST['discipline_entry_begin']}' AND '{$_REQUEST['discipline_entry_end']}' "; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Incident Date') . ' ' . _('Between') . ': </b>' . ProperDate($discipline_entry_begin_for_ProperDate) . '<b> ' . _('and') . ' </b>' . ProperDate($_REQUEST['discipline_entry_end']) . '<BR />'; } } elseif ($_REQUEST['discipline_entry_begin']) { $extra['WHERE'] .= " AND dr.ENTRY_DATE>='{$_REQUEST['discipline_entry_begin']}' "; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Incident Entered') . ' ' . _('On or After') . ' </b>' . ProperDate($discipline_entry_begin_for_ProperDate) . '<BR />'; } } elseif ($_REQUEST['discipline_entry_end']) { $extra['WHERE'] .= " AND dr.ENTRY_DATE<='{$_REQUEST['discipline_entry_end']}' "; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Incident Entered') . ' ' . _('On or Before') . ' </b>' . ProperDate($_REQUEST['discipline_entry_end']) . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Incident Date') . '</TD><TD><table class="cellpadding-0 cellspacing-0"><tr><td><span class="sizep2">≥</span> </td><td>' . PrepareDate('', '_discipline_entry_begin', true, array('short' => true)) . '</td></tr><tr><td><span class="sizep2">≤</span> </td><td>' . PrepareDate('', '_discipline_entry_end', true, array('short' => true)) . '</td></tr></table></TD></TR>'; } /*break; case 'discipline_categories':*/ if ($RosarioModules['Discipline']) { $categories_RET = DBGet(DBQuery("SELECT f.ID,u.TITLE,f.DATA_TYPE,u.SELECT_OPTIONS FROM DISCIPLINE_FIELDS f,DISCIPLINE_FIELD_USAGE u WHERE u.DISCIPLINE_FIELD_ID=f.ID AND u.SYEAR='" . UserSyear() . "' AND u.SCHOOL_ID='" . UserSchool() . "' AND f.DATA_TYPE!='textarea'")); foreach ($categories_RET as $category) { if ($category['DATA_TYPE'] != 'date') { $extra['search'] .= '<TR><TD width="150">' . $category['TITLE'] . '</TD><TD>'; switch ($category['DATA_TYPE']) { case 'text': $extra['search'] .= '<INPUT type="text" name="discipline[' . $category['ID'] . ']" />'; if ($_REQUEST['discipline'][$cateogory['ID']]) { $extra['WHERE'] .= " AND dr.CATEGORY_" . $category['ID'] . " LIKE '" . $_REQUEST['discipline'][$cateogory['ID']] . "%' "; } break; case 'checkbox': $extra['search'] .= '<INPUT type="checkbox" name="discipline[' . $category['ID'] . ']" value="Y" />'; if ($_REQUEST['discipline'][$cateogory['ID']]) { $extra['WHERE'] .= " AND dr.CATEGORY_" . $category['ID'] . " = 'Y' "; } break; case 'numeric': $extra['search'] .= '<small>' . _('Between') . ' </small><INPUT type="text" name="discipline_begin[' . $category['ID'] . ']" size="3" maxlength="11" /> & <INPUT type="text" name="discipline_end[' . $category['ID'] . ']" size="3" maxlength="11" />'; if ($_REQUEST['discipline_begin'][$cateogory['ID']] && $_REQUEST['discipline_begin'][$cateogory['ID']]) { $extra['WHERE'] .= " AND dr.CATEGORY_" . $category['ID'] . " BETWEEN '" . $_REQUEST['discipline_begin'][$cateogory['ID']] . "' AND '" . $_REQUEST['discipline_end'][$cateogory['ID']] . "' "; } break; case 'multiple_checkbox': case 'multiple_radio': case 'select': $category['SELECT_OPTIONS'] = str_replace("\n", "\r", str_replace("\r\n", "\r", $category['SELECT_OPTIONS'])); $category['SELECT_OPTIONS'] = explode("\r", $category['SELECT_OPTIONS']); $extra['search'] .= '<SELECT name="discipline[' . $category['ID'] . ']"><OPTION value="">' . _('N/A') . '</OPTION>'; foreach ($category['SELECT_OPTIONS'] as $option) { $extra['search'] .= '<OPTION value="' . $option . '">' . $option . '</OPTION>'; } $extra['search'] .= '</SELECT>'; if (($category['DATA_TYPE'] == 'multiple_radio' || $category['DATA_TYPE'] == 'select') && $_REQUEST['discipline'][$category['ID']]) { $extra['WHERE'] .= " AND dr.CATEGORY_" . $category['ID'] . " = '" . $_REQUEST['discipline'][$category['ID']] . "' "; } elseif ($category['DATA_TYPE'] == 'multiple_checkbox' && $_REQUEST['discipline'][$category['ID']]) { $extra['WHERE'] .= " AND dr.CATEGORY_" . $category['ID'] . " LIKE '%||" . $_REQUEST['discipline'][$category['ID']] . "||%' "; } break; } $extra['search'] .= '</TD></TR>'; } } } break; case 'next_year': if ($RosarioModules['Students']) { $schools_RET = DBGet(DBQuery("SELECT ID,TITLE FROM SCHOOLS WHERE ID!='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "'"), array(), array('ID')); if ($_REQUEST['next_year'] == '!') { $extra['WHERE'] .= " AND ssm.NEXT_SCHOOL IS NULL"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Next Year')) . ' </b>' . _('No Value') . '<BR />'; } } elseif ($_REQUEST['next_year'] != '') { $extra['WHERE'] .= " AND ssm.NEXT_SCHOOL='" . $_REQUEST['next_year'] . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . Localize('colon', _('Next Year')) . ' </b>' . ($_REQUEST['next_year'] == UserSchool() ? 'Next grade at current school' : ($_REQUEST['next_year'] == '0' ? 'Retain' : ($_REQUEST['next_year'] == '-1' ? 'Do not enroll after this school year' : $schools_RET[$_REQUEST['next_year']][1]['TITLE']))) . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Next Year') . '</TD><TD><SELECT name="next_year"><OPTION value="">' . _('N/A') . '</OPTION><OPTION value="!">' . _('No Value') . '</OPTION><OPTION value="' . UserSchool() . '">' . _('Next grade at current school') . '</OPTION><OPTION value="0">' . _('Retain') . '</OPTION><OPTION value="-1">' . _('Do not enroll after this school year') . '</OPTION>'; foreach ($schools_RET as $id => $school) { $extra['search'] .= '<OPTION value=' . $id . '>' . $school[1]['TITLE'] . '</OPTION>'; } $extra['search'] .= '</SELECT></TD></TR>'; } break; case 'calendar': if ($RosarioModules['Students']) { $calendars_RET = DBGet(DBQuery("SELECT CALENDAR_ID,TITLE FROM ATTENDANCE_CALENDARS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "' ORDER BY DEFAULT_CALENDAR ASC"), array(), array('CALENDAR_ID')); if ($_REQUEST['calendar'] == '!') { $extra['WHERE'] .= " AND ssm.CALENDAR_ID IS " . ($_REQUEST['calendar_not'] == 'Y' ? 'NOT ' : '') . "NULL"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Calendar') . ': </b>' . ($_REQUEST['calendar_not'] == 'Y' ? _('Any Value') : _('No Value')) . '<BR />'; } } elseif ($_REQUEST['calendar'] != '') { $extra['WHERE'] .= " AND ssm.CALENDAR_ID" . ($_REQUEST['calendar_not'] == 'Y' ? '!' : '') . "='" . $_REQUEST['calendar'] . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Calendar') . ': </b>' . ($_REQUEST['calendar_not'] == 'Y' ? _('Not') . ' ' : '') . $calendars_RET[$_REQUEST['calendar']][1]['TITLE'] . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Calendar') . '</TD><TD><label><INPUT type="checkbox" name="calendar_not" value="Y"> ' . _('Not') . ' </label><SELECT name="calendar"><OPTION value="">' . _('N/A') . '</OPTION><OPTION value="!">' . _('No Value') . '</OPTION>'; foreach ($calendars_RET as $id => $calendar) { $extra['search'] .= '<OPTION value="' . $id . '">' . $calendar[1]['TITLE'] . '</OPTION>'; } $extra['search'] .= '</SELECT></TD></TR>'; } break; case 'enrolled': if ($RosarioModules['Students']) { if ($_REQUEST['month_enrolled_begin'] && $_REQUEST['day_enrolled_begin'] && $_REQUEST['year_enrolled_begin']) { $_REQUEST['enrolled_begin'] = $_REQUEST['day_enrolled_begin'] . '-' . $_REQUEST['month_enrolled_begin'] . '-' . $_REQUEST['year_enrolled_begin']; if (!VerifyDate($_REQUEST['enrolled_begin'])) { unset($_REQUEST['enrolled_begin']); } } if ($_REQUEST['month_enrolled_end'] && $_REQUEST['day_enrolled_end'] && $_REQUEST['year_enrolled_end']) { $_REQUEST['enrolled_end'] = $_REQUEST['day_enrolled_end'] . '-' . $_REQUEST['month_enrolled_end'] . '-' . $_REQUEST['year_enrolled_end']; if (!VerifyDate($_REQUEST['enrolled_end'])) { unset($_REQUEST['enrolled_end']); } } if ($_REQUEST['enrolled_begin'] && $_REQUEST['enrolled_end']) { $extra['WHERE'] .= " AND ssm.START_DATE BETWEEN '" . $_REQUEST['enrolled_begin'] . "' AND '" . $_REQUEST['enrolled_end'] . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Enrolled') . ' ' . _('Between') . ': </b>' . ProperDate($_REQUEST['enrolled_begin']) . ' and ' . ProperDate($_REQUEST['enrolled_end']) . '<BR />'; } } elseif ($_REQUEST['enrolled_begin']) { $extra['WHERE'] .= " AND ssm.START_DATE>='" . $_REQUEST['enrolled_begin'] . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Enrolled') . ' ' . _('On or After') . ': </b>' . ProperDate($_REQUEST['enrolled_begin']) . '<BR />'; } } if ($_REQUEST['enrolled_end']) { $extra['WHERE'] .= " AND ssm.START_DATE<='" . $_REQUEST['enrolled_end'] . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Enrolled') . ' ' . _('On or Before') . ': </b>' . ProperDate($_REQUEST['enrolled_end']) . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Attendance Start') . '</TD><TD><table class="cellpadding-0 cellspacing-0"><tr><td><span class="sizep2">≥</span> </td><td>' . PrepareDate('', '_enrolled_begin', true, array('short' => true)) . '</td></tr><tr><td><span class="sizep2">≤</span> </td><td>' . PrepareDate('', '_enrolled_end', true, array('short' => true)) . '</td></tr></table></TD></TR>'; } break; case 'rolled': if ($RosarioModules['Students']) { if ($_REQUEST['rolled']) { $extra['WHERE'] .= " AND " . ($_REQUEST['rolled'] == 'Y' ? '' : 'NOT ') . "exists (SELECT '' FROM STUDENT_ENROLLMENT WHERE STUDENT_ID=ssm.STUDENT_ID AND SYEAR<ssm.SYEAR)"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Previously Enrolled') . ': </b>' . ($_REQUEST['rolled'] == 'Y' ? _('Yes') : _('No')) . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Previously Enrolled') . '</TD><TD><label><INPUT type="radio" value="" name="rolled" checked /> ' . _('N/A') . '</label> <label><INPUT type="radio" value="Y" name="rolled"> ' . _('Yes') . '</label> <label><INPUT type="radio" value="N" name="rolled"> ' . _('No') . '</label></TD></TR>'; } break; case 'fsa_balance_warning': $value = $GLOBALS['warning']; $item = 'fsa_balance'; case 'fsa_balance': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_balance'] != '') { if (!mb_strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ',FOOD_SERVICE_STUDENT_ACCOUNTS fssa'; $extra['WHERE'] .= ' AND fssa.STUDENT_ID=s.STUDENT_ID'; } $extra['FROM'] .= ",FOOD_SERVICE_ACCOUNTS fsa"; $extra['WHERE'] .= " AND fsa.ACCOUNT_ID=fssa.ACCOUNT_ID AND fsa.BALANCE" . ($_REQUEST['fsa_bal_ge'] == 'Y' ? '>=' : '<') . "'" . round($_REQUEST['fsa_balance'], 2) . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Food Service Balance') . ': </b><span class="sizep2">' . ($_REQUEST['fsa_bal_ge'] == 'Y' ? '≥' : '<') . number_format($_REQUEST['fsa_balance'], 2) . '</span><BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Balance') . '</TD><TD><table class="cellpadding-0 cellspacing-0"><tr><td><label><span class="sizep2"><</span> <INPUT type="radio" name="fsa_bal_ge" value="" checked /></label></td><td rowspan="2"><INPUT type="text" name="fsa_balance" size=10' . ($value ? ' value="' . $value . '"' : '') . '></label></td></tr><tr><td><label><span class="sizep2">≥</span> <INPUT type="radio" name="fsa_bal_ge" value=Y></label></td></tr></table></TD></TR>'; } break; case 'fsa_discount': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_discount']) { if (!mb_strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ",FOOD_SERVICE_STUDENT_ACCOUNTS fssa"; $extra['WHERE'] .= " AND fssa.STUDENT_ID=s.STUDENT_ID"; } if ($_REQUEST['fsa_discount'] == 'Full') { $extra['WHERE'] .= " AND fssa.DISCOUNT IS NULL"; } else { $extra['WHERE'] .= " AND fssa.DISCOUNT='" . $_REQUEST['fsa_discount'] . "'"; } if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Food Service Discount') . ': </b>' . $_REQUEST['fsa_discount'] . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Discount') . '</TD><TD><SELECT name=fsa_discount><OPTION value="">' . _('Not Specified') . '</OPTION><OPTION value="Full">' . _('Full') . '</OPTION><OPTION value="Reduced">' . _('Reduced') . '</OPTION><OPTION value="Free">' . _('Free') . '</OPTION></SELECT></TD></TR>'; } break; case 'fsa_status_active': $value = 'active'; $item = 'fsa_status'; case 'fsa_status': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_status']) { if (!mb_strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ",FOOD_SERVICE_STUDENT_ACCOUNTS fssa"; $extra['WHERE'] .= " AND fssa.STUDENT_ID=s.STUDENT_ID"; } if ($_REQUEST['fsa_status'] == 'Active') { $extra['WHERE'] .= " AND fssa.STATUS IS NULL"; } else { $extra['WHERE'] .= " AND fssa.STATUS='" . $_REQUEST['fsa_status'] . "'"; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Account Status') . '</TD><TD><SELECT name=fsa_status><OPTION value="">' . _('Not Specified') . '</OPTION><OPTION value="Active"' . ($value == 'active' ? ' SELECTED="SELECTED"' : '') . '>' . _('Active') . '</OPTION><OPTION value="Inactive">' . _('Inactive') . '</OPTION><OPTION value="Disabled">' . _('Disabled') . '</OPTION><OPTION value="Closed">' . _('Closed') . '</OPTION></SELECT></TD></TR>'; } break; case 'fsa_barcode': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_barcode']) { if (!mb_strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ",FOOD_SERVICE_STUDENT_ACCOUNTS fssa"; $extra['WHERE'] .= " AND fssa.STUDENT_ID=s.STUDENT_ID"; } $extra['WHERE'] .= " AND fssa.BARCODE='" . $_REQUEST['fsa_barcode'] . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Food Service Barcode') . ': </b>' . $_REQUEST['fsa_barcode'] . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Barcode') . '</TD><TD><INPUT type="text" name="fsa_barcode" size="15"></TD></TR>'; } break; case 'fsa_account_id': if ($RosarioModules['Food_Service']) { if ($_REQUEST['fsa_account_id']) { if (!mb_strpos($extra['FROM'], 'fssa')) { $extra['FROM'] .= ",FOOD_SERVICE_STUDENT_ACCOUNTS fssa"; $extra['WHERE'] .= " AND fssa.STUDENT_ID=s.STUDENT_ID"; } $extra['WHERE'] .= " AND fssa.ACCOUNT_ID='" . ($_REQUEST['fsa_account_id'] + 0) . "'"; if (!$extra['NoSearchTerms']) { $_ROSARIO['SearchTerms'] .= '<b>' . _('Food Service Account ID') . ': </b>' . ($_REQUEST['fsa_account_id'] + 0) . '<BR />'; } } $extra['search'] .= '<TR><TD style="text-align:right; width:120px:">' . _('Account ID') . '</TD><TD><INPUT type="text" name="fsa_account_id" size="15"></TD></TR>'; } break; } $_ROSARIO['Widgets'][$item] = true; } }
} } if ($_SESSION['miss_attn'] == 1) { $get_profile_type = DBGet(DBQuery('SELECT PROFILE FROM user_profiles WHERE ID=' . UserProfileID())); if ($_REQUEST['username'] == 'admin' || $get_profile_type[1]['PROFILE'] == 'admin') { $note1 = '<a href=Modules.php?modname=users/TeacherPrograms.php?include=attendance/MissingAttendance.php&From=' . $From . '&to=' . $to . '><< Back to Missing Attendance List </a>'; } } } if (optional_param('attn', PARAM_NOTGAS) == 'miss') { DrawHeaderHome('<A HREF="Modules.php?modname=miscellaneous/Portal.php?back_mssn_attn_list=Y">Back to Missing Attendance List</A>'); } echo "<FORM ACTION=Modules.php?modname=" . strip_tags(trim($_REQUEST[modname])) . "&table=" . strip_tags(trim($_REQUEST[table])) . "&username="******"&From={$From}&to={$to}&attn=" . strip_tags(trim($_REQUEST[attn])) . " method=POST>"; $profile = DBGet(DBQuery('SELECT PROFILE FROM staff WHERE STAFF_ID=' . UserID())); if ($profile[1]['PROFILE'] != "admin" && UserCoursePeriod() != '') { $QI = DBQuery('SELECT DISTINCT cpv.ID,cpv.PERIOD_ID,cp.COURSE_PERIOD_ID,sp.TITLE,sp.SHORT_NAME,cp.MARKING_PERIOD_ID,cpv.DAYS,sp.SORT_ORDER,c.TITLE AS COURSE_TITLE FROM course_periods cp,course_period_var cpv, school_periods sp,courses c WHERE c.COURSE_ID=cp.COURSE_ID AND cpv.PERIOD_ID=sp.PERIOD_ID AND cp.COURSE_PERIOD_ID=cpv.COURSE_PERIOD_ID AND cpv.COURSE_PERIOD_ID=' . UserCoursePeriod() . ' AND cp.SYEAR=\'' . UserSyear() . '\' AND cp.SCHOOL_ID=\'' . UserSchool() . '\' AND (cp.TEACHER_ID=\'' . User('STAFF_ID') . '\' OR cp.SECONDARY_TEACHER_ID=\'' . User('STAFF_ID') . '\') ORDER BY sp.SORT_ORDER '); $RET = DBGet($QI); $period_select = "Choose Period: <SELECT name=period onChange='this.form.submit();'>"; $period_select .= "<OPTION value='na' selected>N/A</OPTION>"; $fi = array(); foreach ($RET as $period) { $date1 = ucfirst(date("l", strtotime($redate))); $fi = str_split($period['DAYS']); $days_arr = array("Monday" => 'M', "Tuesday" => 'T', "Wednesday" => 'W', "Thursday" => 'H', "Friday" => 'F', "Saturday" => 'S', "Sunday" => 'U'); $d = $days_arr[$date1]; $period_select .= "<OPTION value={$period['ID']}" . (in_array($d, $fi) ? ' SELECTED' : '') . ">" . $period['SHORT_NAME'] . ($period['MARKING_PERIOD_ID'] != $fy_id ? ' ' . GetMP($period['MARKING_PERIOD_ID'], 'SHORT_NAME') : '') . (strlen($period['DAYS']) < 5 ? ' ' . $period['DAYS'] : '') . ' - ' . $period['COURSE_TITLE'] . "</OPTION>"; if (CpvId() == $period['ID']) { $_SESSION['UserPeriod'] = $period['PERIOD_ID']; } } $period_select .= "</SELECT>";
if (User('PROFILE') == 'admin') { $courses_RET = DBGet(DBQuery("SELECT TITLE,COURSE_ID FROM COURSES WHERE SCHOOL_ID='" . UserSchool() . "' AND SYEAR='" . UserSyear() . "' AND COURSE_ID IN (SELECT DISTINCT COURSE_ID FROM COURSE_PERIODS WHERE GRADE_SCALE_ID IS NOT NULL) ORDER BY TITLE")); if (!$_REQUEST['course_id']) { $_REQUEST['course_id'] = $courses_RET[1]['COURSE_ID']; } $course_select = '<SELECT name=course_id onchange="document.location.href=\'Modules.php?modname=' . $_REQUEST['modname'] . '&course_id=\'+this.options[selectedIndex].value">'; foreach ($courses_RET as $course) { $course_select .= '<OPTION value=' . $course['COURSE_ID'] . ($_REQUEST['course_id'] == $course['COURSE_ID'] ? ' SELECTED' : '') . '>' . $course['TITLE'] . '</OPTION>'; } $course_select .= '</SELECT>'; } else { $course_period_RET = DBGet(DBQuery('SELECT GRADE_SCALE_ID,DOES_BREAKOFF,TEACHER_ID FROM COURSE_PERIODS WHERE COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\'')); if (!$course_period_RET[1]['GRADE_SCALE_ID']) { ErrorMessage(array('This course is not graded.'), 'fatal'); } $courses_RET = DBGet(DBQuery("SELECT TITLE,COURSE_ID FROM COURSES WHERE COURSE_ID=(SELECT COURSE_ID FROM COURSE_PERIODS WHERE COURSE_PERIOD_ID='" . UserCoursePeriod() . "')")); //$course_select = $courses_RET[1]['TITLE']; $_REQUEST['course_id'] = $courses_RET[1]['COURSE_ID']; } if ($_REQUEST['tab_id'] != '0' && $_REQUEST['tab_id'] != 'new') { $_REQUEST['tab_id'] = $_REQUEST['course_id']; } $course_RET = DBGet(DBQuery("SELECT TITLE FROM COURSES WHERE COURSE_ID='{$_REQUEST['course_id']}'")); $tabs = array(1 => array('title' => $course_RET[1]['TITLE'], 'link' => "Modules.php?modname={$_REQUEST['modname']}&course_id={$_REQUEST['course_id']}&tab_id={$_REQUEST['course_id']}"), 2 => array('title' => 'All Courses', 'link' => "Modules.php?modname={$_REQUEST['modname']}&course_id={$_REQUEST['course_id']}&tab_id=0"), 3 => array('title' => 'General', 'link' => "Modules.php?modname={$_REQUEST['modname']}&course_id={$_REQUEST['course_id']}&tab_id=new")); if ($_REQUEST['tab_id'] != 'new') { if ($_REQUEST['tab_id']) { $sql = 'SELECT * FROM REPORT_CARD_COMMENTS WHERE COURSE_ID=\'' . $_REQUEST['tab_id'] . '\' ORDER BY SORT_ORDER'; } else { // need to be more specific since course_period_id=0 is not unique $sql = 'SELECT * FROM REPORT_CARD_COMMENTS WHERE COURSE_ID=\'' . $_REQUEST['tab_id'] . '\' AND SYEAR=\'' . UserSyear() . '\' AND SCHOOL_ID=\'' . UserSchool() . '\' ORDER BY SORT_ORDER'; }
$course_periods = DBGet(DBQuery('select marking_period_id from course_periods where course_period_id=' . UserCoursePeriod())); if ($course_periods[1]['MARKING_PERIOD_ID'] == NULL) { $school_years = DBGet(DBQuery('select marking_period_id from school_years where syear=' . UserSyear() . ' and school_id=' . UserSchool())); $fy_mp_id = $school_years[1]['MARKING_PERIOD_ID']; $sql = 'SELECT a.TITLE,a.ASSIGNED_DATE,a.DUE_DATE, t.ASSIGNMENT_TYPE_ID, t.FINAL_GRADE_PERCENT,g.POINTS,a.POINTS AS TOTAL_POINTS,g.COMMENT,g.POINTS AS LETTER_GRADE,CASE WHEN (a.ASSIGNED_DATE IS NULL OR CURRENT_DATE>=a.ASSIGNED_DATE) AND (a.DUE_DATE IS NULL OR CURRENT_DATE>=a.DUE_DATE) THEN \'Y\' ELSE NULL END AS DUE FROM gradebook_assignment_types t,gradebook_assignments a LEFT OUTER JOIN gradebook_grades g ON (a.ASSIGNMENT_ID=g.ASSIGNMENT_ID AND g.STUDENT_ID=\'' . $student['STUDENT_ID'] . '\' AND g.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\') WHERE a.ASSIGNMENT_TYPE_ID=t.ASSIGNMENT_TYPE_ID AND (a.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\' OR a.COURSE_ID=\'' . $course_id . '\' AND a.STAFF_ID=\'' . User('STAFF_ID') . '\') AND t.COURSE_ID=\'' . $course_id . '\' AND (a.MARKING_PERIOD_ID=\'' . UserMP() . '\' OR a.MARKING_PERIOD_ID=\'' . $fy_mp_id . '\')'; } else { $sql = 'SELECT a.TITLE,a.ASSIGNED_DATE,a.DUE_DATE, t.ASSIGNMENT_TYPE_ID, t.FINAL_GRADE_PERCENT,g.POINTS,a.POINTS AS TOTAL_POINTS,g.COMMENT,g.POINTS AS LETTER_GRADE,CASE WHEN (a.ASSIGNED_DATE IS NULL OR CURRENT_DATE>=a.ASSIGNED_DATE) AND (a.DUE_DATE IS NULL OR CURRENT_DATE>=a.DUE_DATE) THEN \'Y\' ELSE NULL END AS DUE FROM gradebook_assignment_types t,gradebook_assignments a LEFT OUTER JOIN gradebook_grades g ON (a.ASSIGNMENT_ID=g.ASSIGNMENT_ID AND g.STUDENT_ID=\'' . $student['STUDENT_ID'] . '\' AND g.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\') WHERE a.ASSIGNMENT_TYPE_ID=t.ASSIGNMENT_TYPE_ID AND (a.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\' OR a.COURSE_ID=\'' . $course_id . '\' AND a.STAFF_ID=\'' . User('STAFF_ID') . '\') AND t.COURSE_ID=\'' . $course_id . '\' AND a.MARKING_PERIOD_ID=\'' . UserMP() . '\''; } } else { $course_periods = DBGet(DBQuery('select marking_period_id from course_periods where course_period_id=' . UserCoursePeriod())); if ($course_periods[1]['MARKING_PERIOD_ID'] == NULL) { $school_years = DBGet(DBQuery('select marking_period_id from school_years where syear=' . UserSyear() . ' and school_id=' . UserSchool())); $fy_mp_id = $school_years[1]['MARKING_PERIOD_ID']; $sql = 'SELECT a.TITLE,a.ASSIGNED_DATE,a.DUE_DATE,\'-1\' AS ASSIGNMENT_TYPE_ID,\'1\' AS FINAL_GRADE_PERCENT,g.POINTS,a.POINTS AS TOTAL_POINTS,g.COMMENT,g.POINTS AS LETTER_GRADE,CASE WHEN (a.ASSIGNED_DATE IS NULL OR CURRENT_DATE>=a.ASSIGNED_DATE) AND (a.DUE_DATE IS NULL OR CURRENT_DATE>=a.DUE_DATE) THEN \'Y\' ELSE NULL END AS DUE FROM gradebook_assignments a LEFT OUTER JOIN gradebook_grades g ON (a.ASSIGNMENT_ID=g.ASSIGNMENT_ID AND g.STUDENT_ID=\'' . $student[STUDENT_ID] . '\' AND g.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\') WHERE (a.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\' OR a.COURSE_ID=\'' . $course_id . '\' AND a.STAFF_ID=\'' . User('STAFF_ID') . '\') AND (a.MARKING_PERIOD_ID=\'' . UserMP() . '\' OR a.MARKING_PERIOD_ID=\'' . $fy_mp_id . '\')'; } else { $sql = 'SELECT a.TITLE,a.ASSIGNED_DATE,a.DUE_DATE,\'-1\' AS ASSIGNMENT_TYPE_ID,\'1\' AS FINAL_GRADE_PERCENT,g.POINTS,a.POINTS AS TOTAL_POINTS,g.COMMENT,g.POINTS AS LETTER_GRADE,CASE WHEN (a.ASSIGNED_DATE IS NULL OR CURRENT_DATE>=a.ASSIGNED_DATE) AND (a.DUE_DATE IS NULL OR CURRENT_DATE>=a.DUE_DATE) THEN \'Y\' ELSE NULL END AS DUE FROM gradebook_assignments a LEFT OUTER JOIN gradebook_grades g ON (a.ASSIGNMENT_ID=g.ASSIGNMENT_ID AND g.STUDENT_ID=\'' . $student[STUDENT_ID] . '\' AND g.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\') WHERE (a.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\' OR a.COURSE_ID=\'' . $course_id . '\' AND a.STAFF_ID=\'' . User('STAFF_ID') . '\') AND a.MARKING_PERIOD_ID=\'' . UserMP() . '\''; } } if ($_REQUEST['exclude_notdue'] == 'Y') { $sql .= ' AND ((a.ASSIGNED_DATE IS NULL OR CURRENT_DATE>=a.ASSIGNED_DATE) AND (a.DUE_DATE IS NULL OR CURRENT_DATE>=DUE_DATE) OR g.POINTS IS NOT NULL)'; } if ($_REQUEST['exclude_ec'] == 'Y') { $sql .= ' AND (a.POINTS!=\'0\' OR g.POINTS IS NOT NULL AND g.POINTS!=\'-1\')'; } $sql .= ' AND a.DUE_DATE>=\'' . $student[START_DATE] . '\' ORDER BY a.ASSIGNMENT_ID'; $grades_RET = DBGet(DBQuery($sql), array('ASSIGNED_DATE' => '_removeSpaces', 'DUE_DATE' => '_removeSpaces', 'TITLE' => '_removeSpaces', 'POINTS' => '_makeExtra', 'LETTER_GRADE' => '_makeExtra')); $sum_points = $sum_percent = 0; $flag = false; foreach ($percent_weights as $assignment_type_id => $percent) { $flag = true; $sum_points += $student_points[$assignment_type_id] * $percent_weights[$assignment_type_id] / $total_points[$assignment_type_id];
if ($_REQUEST['allow_edit'] == 'Y' || !$_REQUEST['tab_id']) { $LO_columns += array('ASSIGNMENT_TYPE_ID' => _('Type')); } $link['add']['html'] = array('TITLE' => _makeAssnInput('', 'TITLE'), 'POINTS' => _makeAssnInput('', 'POINTS'), 'ASSIGNED_DATE' => _makeAssnInput('', 'ASSIGNED_DATE'), 'DUE_DATE' => _makeAssnInput('', 'DUE_DATE'), 'COURSE_ID' => _makeAssnInput('', 'COURSE_ID'), 'DESCRIPTION' => _makeAssnInput('', 'DESCRIPTION')); if (!$_REQUEST['tab_id']) { $link['add']['html'] += array('ASSIGNMENT_TYPE_ID' => _makeAssnInput('', 'ASSIGNMENT_TYPE_ID')); } $link['remove']['link'] = "Modules.php?modname={$_REQUEST['modname']}&modfunc=remove&tab_id={$_REQUEST['tab_id']}&allow_edit={$_REQUEST['allow_edit']}"; $link['remove']['variables'] = array('id' => 'ASSIGNMENT_ID'); $link['add']['html']['remove'] = button('add'); $link['add']['first'] = 1; // number before add link moves to top $tabs[] = array('title' => button('add'), 'link' => "Modules.php?modname={$_REQUEST['modname']}&tab_id=new&allow_edit={$_REQUEST['allow_edit']}"); $subject = 'Assignments'; } else { $sql = "SELECT ASSIGNMENT_TYPE_ID,TITLE,FINAL_GRADE_PERCENT,SORT_ORDER,COLOR FROM GRADEBOOK_ASSIGNMENT_TYPES WHERE STAFF_ID='" . User('STAFF_ID') . "' AND COURSE_ID=(SELECT COURSE_ID FROM COURSE_PERIODS WHERE COURSE_PERIOD_ID='" . UserCoursePeriod() . "') ORDER BY SORT_ORDER,TITLE"; $functions = array('TITLE' => '_makeTypeInput', 'SORT_ORDER' => '_makeTypeInput', 'COLOR' => '_makeColorInput'); if (Preferences('WEIGHT', 'Gradebook') == 'Y') { $functions['FINAL_GRADE_PERCENT'] = '_makeTypeInput'; } $LO_ret = DBGet(DBQuery($sql), $functions); $LO_columns = array('TITLE' => _('Type')); if (Preferences('WEIGHT', 'Gradebook') == 'Y') { $LO_columns += array('FINAL_GRADE_PERCENT' => _('Percent')); } $LO_columns += array('SORT_ORDER' => _('Sort Order'), 'COLOR' => _('Color')); $link['add']['html'] = array('TITLE' => _makeTypeInput('', 'TITLE'), 'SORT_ORDER' => _makeTypeInput('', 'SORT_ORDER'), 'COLOR' => _makeColorInput('', 'COLOR')); if (Preferences('WEIGHT', 'Gradebook') == 'Y') { $link['add']['html']['FINAL_GRADE_PERCENT'] = _makeTypeInput('', 'FINAL_GRADE_PERCENT'); } $link['remove']['link'] = "Modules.php?modname={$_REQUEST['modname']}&modfunc=remove&tab_id=new&allow_edit={$_REQUEST['allow_edit']}";
function GetStuListAttn(&$extra) { global $contacts_RET, $view_other_RET, $_openSIS; if ((!$extra['SELECT_ONLY'] || strpos($extra['SELECT_ONLY'], 'GRADE_ID') !== false) && !$extra['functions']['GRADE_ID']) { $functions = array('GRADE_ID' => 'GetGrade'); } else { $functions = array(); } if ($extra['functions']) { $functions += $extra['functions']; } if (!$extra['DATE']) { $queryMP = UserMP(); $extra['DATE'] = DBDate(); } else { $queryMP = UserMP(); } if ($_REQUEST['expanded_view'] == 'true') { if (!$extra['columns_after']) { $extra['columns_after'] = array(); } ############################################################################################# //Commented as it crashing for Linux due to Blank Database tables ############################################################################################# $view_address_RET = DBGet(DBQuery('SELECT VALUE FROM program_user_config WHERE PROGRAM=\'StudentFieldsView\' AND TITLE=\'ADDRESS\' AND USER_ID=\'' . User('STAFF_ID') . '\'')); $view_address_RET = $view_address_RET[1]['VALUE']; $view_other_RET = DBGet(DBQuery('SELECT TITLE,VALUE FROM program_user_config WHERE PROGRAM=\'StudentFieldsView\' AND TITLE IN (\'CONTACT_INFO\',\'HOME_PHONE\',\'GUARDIANS\',\'ALL_CONTACTS\') AND USER_ID=\'' . User('STAFF_ID') . '\''), array(), array('TITLE')); if (!count($view_fields_RET) && !isset($view_address_RET) && !isset($view_other_RET['CONTACT_INFO'])) { $extra['columns_after'] = array('CONTACT_INFO' => '<IMG SRC=assets/down_phone_button.gif border=0>', 'gender' => 'Gender', 'ethnicity' => 'Ethnicity', 'ADDRESS' => 'Mailing Address', 'CITY' => 'City', 'STATE' => 'State', 'ZIPCODE' => 'Zipcode') + $extra['columns_after']; $select = ',s.STUDENT_ID AS CONTACT_INFO,s.GENDER,s.ETHNICITY,a.STREET_ADDRESS_1 as ADDRESS,a.CITY,a.STATE,a.ZIPCODE'; $extra['FROM'] = ' LEFT OUTER JOIN student_address a ON (ssm.STUDENT_ID=a.STUDENT_ID AND a.TYPE=\'Mail\') ' . $extra['FROM']; $functions['CONTACT_INFO'] = 'makeContactInfo'; // if gender is converted to codeds type //$functions['CUSTOM_200000000'] = 'DeCodeds'; $extra['singular'] = 'Student Address'; $extra['plural'] = 'Student Addresses'; $extra2['NoSearchTerms'] = true; $extra2['SELECT_ONLY'] = 'ssm.STUDENT_ID,p.STAFF_ID AS PERSON_ID,p.FIRST_NAME,p.LAST_NAME,sjp.RELATIONSHIP as STUDENT_RELATION,p.TITLE,s.PHONE,a.ID AS ADDRESS_ID '; $extra2['FROM'] .= ',student_address a LEFT OUTER JOIN students_join_people sjp ON (a.STUDENT_ID=sjp.STUDENT_ID AND (p.CUSTODY=\'Y\' OR sjp.IS_EMERGENCY=\'Y\')) LEFT OUTER JOIN people p ON (p.STAFF_ID=sjp.PERSON_ID) '; $extra2['WHERE'] .= ' AND a.STUDENT_ID=sjp.STUDENT_ID AND sjp.STUDENT_ID=ssm.STUDENT_ID '; $extra2['ORDER_BY'] .= 'COALESCE(p.CUSTODY,\'N\') DESC'; $extra2['group'] = array('STUDENT_ID', 'PERSON_ID'); // EXPANDED VIEW AND ADDR BREAKS THIS QUERY ... SO, TURN 'EM OFF if (!$_REQUEST['_openSIS_PDF']) { $expanded_view = $_REQUEST['expanded_view']; $_REQUEST['expanded_view'] = false; $addr = $_REQUEST['addr']; unset($_REQUEST['addr']); $contacts_RET = GetStuList($extra2); $_REQUEST['expanded_view'] = $expanded_view; $_REQUEST['addr'] = $addr; } else { unset($extra2['columns_after']['CONTACT_INFO']); } } else { if ($view_other_RET['CONTACT_INFO'][1]['VALUE'] == 'Y' && !$_REQUEST['_openSIS_PDF']) { $select .= ',NULL AS CONTACT_INFO '; $extra['columns_after']['CONTACT_INFO'] = '<IMG SRC=assets/down_phone_button.gif border=0>'; $functions['CONTACT_INFO'] = 'makeContactInfo'; $extra2 = $extra; $extra2['NoSearchTerms'] = true; $extra2['SELECT'] = ''; $extra2['SELECT_ONLY'] = 'ssm.STUDENT_ID,p.STAFF_ID AS PERSON_ID,p.FIRST_NAME,p.LAST_NAME,sjp.RELATIONSHIP AS STUDENT_RELATION,p.TITLE,s.PHONE,a.ID AS ADDRESS_ID,COALESCE(p.CUSTODY,\'N\') '; $extra2['FROM'] .= ',student_address a LEFT OUTER JOIN students_join_people sjp ON (a.STUDENT_ID=sjp.STUDENT_ID AND (p.CUSTODY=\'Y\' OR sjp.IS_EMERGENCY=\'Y\')) LEFT OUTER JOIN people p ON (p.STAFF_ID=sjp.PERSON_ID) '; $extra2['WHERE'] .= ' AND a.STUDENT_ID=sjp.STUDENT_ID AND sjp.STUDENT_ID=ssm.STUDENT_ID '; $extra2['ORDER_BY'] .= 'COALESCE(p.CUSTODY,\'N\') DESC'; $extra2['group'] = array('STUDENT_ID', 'PERSON_ID'); $extra2['functions'] = array(); $extra2['link'] = array(); // EXPANDED VIEW AND ADDR BREAKS THIS QUERY ... SO, TURN 'EM OFF $expanded_view = $_REQUEST['expanded_view']; $_REQUEST['expanded_view'] = false; $addr = $_REQUEST['addr']; unset($_REQUEST['addr']); $contacts_RET = GetStuList($extra2); $_REQUEST['expanded_view'] = $expanded_view; $_REQUEST['addr'] = $addr; } foreach ($view_fields_RET as $field) { $extra['columns_after']['CUSTOM_' . $field['ID']] = $field['TITLE']; if ($field['TYPE'] == 'date') { $functions['CUSTOM_' . $field['ID']] = 'ProperDate'; } elseif ($field['TYPE'] == 'numeric') { $functions['CUSTOM_' . $field['ID']] = 'removeDot00'; } elseif ($field['TYPE'] == 'codeds') { $functions['CUSTOM_' . $field['ID']] = 'DeCodeds'; } $select .= ',s.CUSTOM_' . $field['ID']; } if ($view_address_RET) { if ($view_address_RET == 'RESIDENCE') { $extra['FROM'] = ' LEFT OUTER JOIN student_address a ON (ssm.STUDENT_ID=a.STUDENT_ID AND a.TYPE=\'Home Address\') ' . $extra['FROM']; } elseif ($view_address_RET == 'MAILING') { $extra['FROM'] = ' LEFT OUTER JOIN student_address a ON (ssm.STUDENT_ID=a.STUDENT_ID AND a.TYPE=\'Mail\') ' . $extra['FROM']; } elseif ($view_address_RET == 'BUS_PICKUP') { $extra['FROM'] = ' LEFT OUTER JOIN student_address a ON (a.STUDENT_ID=a.STUDENT_ID AND a.BUS_PICKUP=\'Y\') ' . $extra['FROM']; } else { $extra['FROM'] = ' LEFT OUTER JOIN student_address a ON (a.STUDENT_ID=a.STUDENT_ID AND a.BUS_DROPOFF=\'Y\') ' . $extra['FROM']; } $extra['columns_after'] += array('ADDRESS' => ucwords(strtolower(str_replace('_', ' ', $view_address_RET))) . ' Address', 'CITY' => 'City', 'STATE' => 'State', 'ZIPCODE' => 'Zipcode'); $select .= ',a.ID AS ADDRESS_ID,a.STREET_ADDRESS_1 as ADDRESS,a.CITY,a.STATE,a.ZIPCODE,s.PHONE,ssm.STUDENT_ID AS PARENTS'; $extra['singular'] = 'Student Address'; $extra['plural'] = 'Student Addresses'; if ($view_other_RET['HOME_PHONE'][1]['VALUE'] == 'Y') { $functions['PHONE'] = 'makePhone'; $extra['columns_after']['PHONE'] = 'Home Phone'; } if ($view_other_RET['GUARDIANS'][1]['VALUE'] == 'Y' || $view_other_RET['ALL_CONTACTS'][1]['VALUE'] == 'Y') { $functions['PARENTS'] = 'makeParents'; if ($view_other_RET['ALL_CONTACTS'][1]['VALUE'] == 'Y') { $extra['columns_after']['PARENTS'] = 'Contacts'; } else { $extra['columns_after']['PARENTS'] = 'Guardians'; } } } elseif ($_REQUEST['addr'] || $extra['addr']) { $extra['FROM'] = ' LEFT OUTER JOIN student_address a ON (ssm.STUDENT_ID=a.STUDENT_ID) ' . $extra['FROM']; $distinct = 'DISTINCT '; } } $extra['SELECT'] .= $select; } elseif ($_REQUEST['addr'] || $extra['addr']) { $extra['FROM'] = ' LEFT OUTER JOIN student_address a ON (ssm.STUDENT_ID=a.STUDENT_ID) ' . $extra['FROM']; $distinct = 'DISTINCT '; } switch (User('PROFILE')) { case 'admin': $sql = 'SELECT '; if ($extra['SELECT_ONLY']) { $sql .= $extra['SELECT_ONLY']; } else { if (Preferences('NAME') == 'Common') { $sql .= 'CONCAT(s.LAST_NAME,\', \',coalesce(s.COMMON_NAME,s.FIRST_NAME)) AS FULL_NAME,'; } else { $sql .= 'CONCAT(s.LAST_NAME,\', \',s.FIRST_NAME,\' \',COALESCE(s.MIDDLE_NAME,\' \')) AS FULL_NAME,'; } $sql .= 's.LAST_NAME,s.FIRST_NAME,s.MIDDLE_NAME,s.STUDENT_ID,ssm.SCHOOL_ID AS LIST_SCHOOL_ID,ssm.GRADE_ID ' . $extra['SELECT']; if ($_REQUEST['include_inactive'] == 'Y') { $sql .= ',' . db_case(array('(ssm.SYEAR=\'' . UserSyear() . '\' AND (ssm.START_DATE IS NOT NULL AND (\'' . date('Y-m-d', strtotime($extra['DATE'])) . '\'<=ssm.END_DATE OR ssm.END_DATE IS NULL)))', 'true', "'<FONT color=green>Active</FONT>'", "'<FONT color=red>Inactive</FONT>'")) . ' AS ACTIVE '; } } $sql .= ' FROM students s,student_enrollment ssm ' . $extra['FROM'] . ' WHERE ssm.STUDENT_ID=s.STUDENT_ID '; if ($_REQUEST['include_inactive'] == 'Y') { $sql .= ' AND ssm.ID=(SELECT ID FROM student_enrollment WHERE STUDENT_ID=ssm.STUDENT_ID AND SYEAR<=\'' . UserSyear() . '\' ORDER BY START_DATE DESC LIMIT 1)'; } else { $sql .= ' AND ssm.SYEAR=\'' . UserSyear() . '\' AND (ssm.START_DATE IS NOT NULL AND (\'' . date('Y-m-d', strtotime($extra['DATE'])) . '\'<=ssm.END_DATE OR ssm.END_DATE IS NULL)) '; } if (UserSchool() && $_REQUEST['_search_all_schools'] != 'Y') { $sql .= ' AND ssm.SCHOOL_ID=\'' . UserSchool() . '\''; } else { // $sql .= ' AND ssm.SCHOOL_ID IN (' . GetUserSchools(UserID(), true) . ') '; $extra['columns_after']['LIST_SCHOOL_ID'] = 'School'; $functions['LIST_SCHOOL_ID'] = 'GetSchool'; } if (!$extra['SELECT_ONLY'] && $_REQUEST['include_inactive'] == 'Y') { $extra['columns_after']['ACTIVE'] = 'Status'; } break; case 'teacher': $sql = 'SELECT '; if ($extra['SELECT_ONLY']) { $sql .= $extra['SELECT_ONLY']; } else { if (Preferences('NAME') == 'Common') { $sql .= 'CONCAT(s.LAST_NAME,\', \',coalesce(s.COMMON_NAME,s.FIRST_NAME)) AS FULL_NAME,'; } else { $sql .= 'CONCAT(s.LAST_NAME,\', \',s.FIRST_NAME,\' \',COALESCE(s.MIDDLE_NAME,\' \')) AS FULL_NAME,'; } $sql .= 's.LAST_NAME,s.FIRST_NAME,s.MIDDLE_NAME,s.STUDENT_ID,ssm.SCHOOL_ID,ssm.GRADE_ID ' . $extra['SELECT']; if ($_REQUEST['include_inactive'] == 'Y') { $sql .= ',' . db_case(array('(ssm.START_DATE IS NOT NULL AND (\'' . $extra['DATE'] . '\'<=ssm.END_DATE OR ssm.END_DATE IS NULL))', 'true', "'<FONT color=green>Active</FONT>'", "'<FONT color=red>Inactive</FONT>'")) . ' AS ACTIVE'; $sql .= ',' . db_case(array('(\'' . $extra['DATE'] . '\'>=ss.START_DATE AND (\'' . $extra['DATE'] . '\'<=ss.END_DATE OR ss.END_DATE IS NULL))', 'true', "'<FONT color=green>Active</FONT>'", "'<FONT color=red>Inactive</FONT>'")) . ' AS ACTIVE_SCHEDULE'; } } // $sql .= ' FROM students s,course_periods cp,schedule ss,student_enrollment ssm,course_period_var cpv ' . $extra['FROM'] . ' WHERE ssm.STUDENT_ID=s.STUDENT_ID AND cpv.COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID AND cpv.ID="' . $extra['ID'] . '" AND ssm.STUDENT_ID=ss.STUDENT_ID AND ssm.SCHOOL_ID=\'' . UserSchool() . '\' AND ssm.SYEAR=\'' . UserSyear() . '\' AND ssm.SYEAR=cp.SYEAR AND ssm.SYEAR=ss.SYEAR AND ' . db_case(array(User('STAFF_ID'), 'cp.teacher_id', ' cp.teacher_id=' . User('STAFF_ID'), 'cp.secondary_teacher_id', ' cp.secondary_teacher_id=' . User('STAFF_ID'), 'cp.course_period_id IN(SELECT course_period_id from teacher_reassignment tra WHERE cp.course_period_id=tra.course_period_id AND tra.pre_teacher_id=' . User('STAFF_ID') . ')')) . ' AND cp.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\' AND cp.COURSE_ID=ss.COURSE_ID AND cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID'; if ($extra['cpvdate'] != '') { $sql .= $extra['cpvdate']; } if ($_REQUEST['include_inactive'] == 'Y') { $sql .= ' AND ssm.ID=(SELECT ID FROM student_enrollment WHERE STUDENT_ID=ssm.STUDENT_ID AND SYEAR=ssm.SYEAR ORDER BY START_DATE DESC LIMIT 1)'; $sql .= ' AND ss.START_DATE=(SELECT START_DATE FROM schedule WHERE STUDENT_ID=ssm.STUDENT_ID AND SYEAR=ssm.SYEAR AND MARKING_PERIOD_ID IN (' . GetAllMP('', $queryMP) . ') AND COURSE_ID=cp.COURSE_ID AND COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID ORDER BY START_DATE DESC LIMIT 1)'; } else { $sql .= ' AND (ssm.START_DATE IS NOT NULL AND \'' . $extra['DATE'] . '\'>=ssm.START_DATE AND (\'' . $extra['DATE'] . '\'<=ssm.END_DATE OR ssm.END_DATE IS NULL))'; $sql .= ' AND (\'' . $extra['DATE'] . '\'>=ss.START_DATE AND (\'' . $extra['DATE'] . '\'<=ss.END_DATE OR ss.END_DATE IS NULL))'; } if (!$extra['SELECT_ONLY'] && $_REQUEST['include_inactive'] == 'Y') { $extra['columns_after']['ACTIVE'] = 'School Status'; $extra['columns_after']['ACTIVE_SCHEDULE'] = 'Course Status'; } break; case 'parent': case 'student': $sql = 'SELECT '; if ($extra['SELECT_ONLY']) { $sql .= $extra['SELECT_ONLY']; } else { if (Preferences('NAME') == 'Common') { $sql .= 'CONCAT(s.LAST_NAME,\', \',coalesce(s.COMMON_NAME,s.FIRST_NAME)) AS FULL_NAME,'; } else { $sql .= 'CONCAT(s.LAST_NAME,\', \',s.FIRST_NAME,\' \',COALESCE(s.MIDDLE_NAME,\' \')) AS FULL_NAME,'; } $sql .= 's.LAST_NAME,s.FIRST_NAME,s.MIDDLE_NAME,s.STUDENT_ID,ssm.SCHOOL_ID,ssm.GRADE_ID ' . $extra['SELECT']; } $sql .= ' FROM students s,student_enrollment ssm ' . $extra['FROM'] . ' WHERE ssm.STUDENT_ID=s.STUDENT_ID AND ssm.SYEAR=\'' . UserSyear() . '\' AND ssm.SCHOOL_ID=\'' . UserSchool() . '\' AND (\'' . DBDate() . '\' BETWEEN ssm.START_DATE AND ssm.END_DATE OR (ssm.END_DATE IS NULL AND \'' . DBDate() . '\'>ssm.START_DATE)) AND ssm.STUDENT_ID' . ($extra['ASSOCIATED'] ? ' IN (SELECT STUDENT_ID FROM students_join_users WHERE STAFF_ID=\'' . $extra['ASSOCIATED'] . '\')' : '=\'' . UserStudentID() . '\''); break; default: exit('Error'); } $sql = appendSQL($sql, $extra); $sql .= $extra['WHERE'] . ' '; $sql .= CustomFields('where'); if ($extra['GROUP']) { $sql .= ' GROUP BY ' . $extra['GROUP']; } if (!$extra['ORDER_BY'] && !$extra['SELECT_ONLY']) { if (Preferences('SORT') == 'Grade') { $sql .= ' ORDER BY (SELECT SORT_ORDER FROM school_gradelevels WHERE ID=ssm.GRADE_ID),FULL_NAME'; } else { $sql .= ' ORDER BY FULL_NAME'; } $sql .= $extra['ORDER']; } elseif ($extra['ORDER_BY']) { $sql .= ' ORDER BY ' . $extra['ORDER_BY']; } if ($extra['DEBUG'] === true) { echo '<!--' . $sql . '-->'; } return DBGet(DBQuery($sql), $functions, $extra['group']); }
function _makeGrade($value, $column) { global $THIS_RET, $current_RET, $import_RET, $grades_RET, $grades_select, $student_count, $tabindex; $tc_grade = 'n'; if ($column == 'REPORT_CARD_GRADE') { if (!isset($_REQUEST['_openSIS_PDF'])) { $student_count++; $tabindex = $student_count; if ($import_RET[$THIS_RET['STUDENT_ID']]) { $select = $import_RET[$THIS_RET['STUDENT_ID']][1]['REPORT_CARD_GRADE_ID']; $extra_select = array($select => $grades_select[$import_RET[$THIS_RET['STUDENT_ID']][1]['REPORT_CARD_GRADE_ID']]); $div = false; } else { if ($current_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT'] != '') { $select = _makeLetterGrade($current_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT'] / 100, "", User('STAFF_ID'), "%"); } $rounding = DBGet(DBQuery('SELECT VALUE FROM program_user_config WHERE USER_ID=\'' . User('STAFF_ID') . '\' AND TITLE=\'ROUNDING\' AND PROGRAM=\'Gradebook\' ')); if (count($rounding)) { $_SESSION['ROUNDING'] = $rounding[1]['VALUE']; } else { $_SESSION['ROUNDING'] = ''; } if ($_SESSION['ROUNDING'] == 'UP') { $select = ceil($select); } elseif ($_SESSION['ROUNDING'] == 'DOWN') { $select = floor($select); } elseif ($_SESSION['ROUNDING'] == 'NORMAL') { $select = round($select); } $dbf = DBGet(DBQuery('SELECT DOES_BREAKOFF,GRADE_SCALE_ID FROM course_periods WHERE COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\'')); if ($dbf[1]['DOES_BREAKOFF'] == 'Y' && $select !== '') { $get_details = DBGet(DBQuery('SELECT TITLE,VALUE FROM program_user_config WHERE TITLE LIKE \'' . UserCoursePeriod() . '-%' . '\' AND USER_ID=\'' . User('STAFF_ID') . '\' AND PROGRAM=\'Gradebook\' ORDER BY VALUE DESC ')); if (count($get_details)) { foreach ($get_details as $i => $d) { if ($select >= $d['VALUE']) { $id = $i; break; } } $grade_id = explode('-', $get_details[$id]['TITLE']); $select = $grade_id[1]; $tc_grade = 'y'; } } if ($tc_grade == 'n') { $select = $current_RET[$THIS_RET['STUDENT_ID']][1]['REPORT_CARD_GRADE_ID']; } $extra_select = array(); $div = true; } if ($_REQUEST['modfunc'] == 'clearall') { $select = ''; } $return = SelectInput($select, 'values[' . $THIS_RET['STUDENT_ID'] . '][grade]', '', $extra_select + $grades_select, false, 'tabindex=' . $tabindex, $div); } else { if ($import_RET[$THIS_RET['STUDENT_ID']]) { $select = $import_RET[$THIS_RET['STUDENT_ID']][1]['REPORT_CARD_GRADE_ID']; } else { $select = $current_RET[$THIS_RET['STUDENT_ID']][1]['REPORT_CARD_GRADE_ID']; } $return = '<b>' . $grades_RET[$select][1]['TITLE'] . '</b>'; } } elseif ($column == 'GRADE_PERCENT') { if ($import_RET[$THIS_RET['STUDENT_ID']]) { $select = $import_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT']; } else { $select = $current_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT']; $rounding = DBGet(DBQuery('SELECT VALUE FROM program_user_config WHERE USER_ID=\'' . User('STAFF_ID') . '\' AND TITLE=\'ROUNDING\' AND PROGRAM=\'Gradebook\' ')); if (count($rounding)) { $_SESSION['ROUNDING'] = $rounding[1]['VALUE']; } else { $_SESSION['ROUNDING'] = ''; } if ($_SESSION['ROUNDING'] == 'UP') { $select = ceil($select); } elseif ($_SESSION['ROUNDING'] == 'DOWN') { $select = floor($select); } elseif ($_SESSION['ROUNDING'] == 'NORMAL') { $select = round($select); } $return = $select == '' ? '' : $select + 0 . '%'; } } return $return; }
} } $current_RET = DBGet(DBQuery("SELECT ATTENDANCE_TEACHER_CODE,ATTENDANCE_CODE,ATTENDANCE_REASON,STUDENT_ID,ADMIN,COURSE_PERIOD_ID FROM ATTENDANCE_PERIOD WHERE SCHOOL_DATE='" . $date . "'"), array(), array('STUDENT_ID', 'COURSE_PERIOD_ID')); unset($_REQUEST['attendance']); } if ($_REQUEST['search_modfunc'] || $_REQUEST['student_id'] || UserStudentID() || User('PROFILE') == 'parent' || User('PROFILE') == 'student') { $PHP_tmp_SELF = PreparePHP_SELF(); $period_select = "<SELECT name=period_id onchange='this.form.submit();'><OPTION value=\"\">" . _('Daily') . "</OPTION>"; if (!UserStudentID() && !$_REQUEST['student_id']) { if (User('PROFILE') == 'admin') { $periods_RET = DBGet(DBQuery("SELECT sp.PERIOD_ID,sp.TITLE FROM SCHOOL_PERIODS sp WHERE sp.SYEAR='" . UserSyear() . "' AND sp.SCHOOL_ID='" . UserSchool() . "' AND (SELECT count(1) FROM COURSE_PERIODS WHERE position(',0,' IN DOES_ATTENDANCE)>0 AND PERIOD_ID=sp.PERIOD_ID AND SYEAR=sp.SYEAR AND SCHOOL_ID=sp.SCHOOL_ID)>0 ORDER BY sp.SORT_ORDER")); foreach ($periods_RET as $period) { $period_select .= "<OPTION value=" . $period['PERIOD_ID'] . ($_REQUEST['period_id'] == $period['PERIOD_ID'] ? ' SELECTED' : '') . ">" . $period['TITLE'] . '</OPTION>'; } } else { $periods_RET = DBGet(DBQuery("SELECT sp.PERIOD_ID,sp.TITLE FROM SCHOOL_PERIODS sp,COURSE_PERIODS cp WHERE position(',0,' IN cp.DOES_ATTENDANCE)>0 AND sp.PERIOD_ID=cp.PERIOD_ID AND cp.COURSE_PERIOD_ID='" . UserCoursePeriod() . "'")); if ($periods_RET) { $period_select .= "<OPTION value=" . $periods_RET[1]['PERIOD_ID'] . ($_REQUEST['period_id'] == $periods_RET[1]['PERIOD_ID'] || !isset($_REQUEST['period_id']) ? ' SELECTED' : '') . ">" . $periods_RET[1]['TITLE'] . '</OPTION>'; if (!isset($_REQUEST['period_id'])) { $_REQUEST['period_id'] = $periods_RET['PERIOD_ID']; } } } } else { $period_select .= '<OPTION value="PERIOD"' . ($_REQUEST['period_id'] ? ' SELECTED' : '') . '>' . _('By Period') . '</OPTION>'; } $period_select .= '</SELECT>'; echo "<FORM action={$PHP_tmp_SELF} method=POST>"; DrawHeader(PrepareDate($start_date, '_start') . ' - ' . PrepareDate($end_date, '_end') . ' : ' . $period_select . ' : <INPUT type=submit value=' . _('Go') . '>'); } $cal_RET = DBGet(DBQuery("SELECT DISTINCT SCHOOL_DATE,'_'||to_char(SCHOOL_DATE,'yyyymmdd') AS SHORT_DATE FROM ATTENDANCE_CALENDAR WHERE SCHOOL_ID='" . UserSchool() . "' AND SCHOOL_DATE BETWEEN '{$start_date}' AND '{$end_date}' ORDER BY SCHOOL_DATE"));
function makeGradesInput($value, $name) { global $THIS_RET, $grade_scale_select, $teacher_id, $config_RET; if ($THIS_RET['ID']) { $id = $THIS_RET['ID']; } else { $id = 'new'; } if ($name == 'GRADE_SCALE_ID') { return SelectInput($value, "values[{$id}][{$name}]", '', $grade_scale_select, false); } elseif ($name == 'COMMENT') { $extra = 'size=15 maxlength=100'; } elseif ($name == 'GPA_VALUE') { $extra = 'size=5 maxlength=5'; } elseif ($name == 'SORT_ORDER') { $extra = 'size=5 maxlength=5'; } elseif ($name == 'BREAK_OFF' && $teacher_id && $config_RET[UserCoursePeriod() . '-' . $THIS_RET['ID']][1]['VALUE'] != '') { return '<FONT color=blue>' . $config_RET[UserCoursePeriod() . '-' . $THIS_RET['ID']][1]['VALUE'] . '</FONT>'; } else { $extra = 'size=5 maxlength=5'; } return TextInput($value, "values[{$id}][{$name}]", '', $extra); }
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # #*************************************************************************************** #DrawHeader('Gradebook - '.ProgramTitle()); /* $course_id = DBGet(DBQuery("SELECT COURSE_ID,COURSE_PERIOD_ID FROM course_periods WHERE TEACHER_ID='".User('STAFF_ID')."' AND PERIOD_ID='".UserPeriod()."' AND MARKING_PERIOD_ID IN (".GetAllMP('QTR',UserMP()).')')); $course_period_id = $course_id[1]['COURSE_PERIOD_ID']; $course_id = $course_id[1]['COURSE_ID']; */ include '../../Redirect_modules.php'; $course_period_id = UserCoursePeriod(); $course_id = DBGet(DBQuery('SELECT COURSE_ID FROM course_periods WHERE COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\'')); $course_id = $course_id[1]['COURSE_ID']; $_openSIS['allow_edit'] = true; unset($_SESSION['_REQUEST_vars']['assignment_type_id']); unset($_SESSION['_REQUEST_vars']['assignment_id']); $config_RET = DBGet(DBQuery('SELECT TITLE,VALUE FROM program_user_config WHERE USER_ID=\'' . User('STAFF_ID') . '\' AND PROGRAM=\'Gradebook\''), array(), array('TITLE')); if (count($config_RET)) { foreach ($config_RET as $title => $value) { $programconfig[$title] = $value[1]['VALUE']; } } else { $programconfig = true; } //echo '<pre>';print_r($_REQUEST['day_tables']);echo'</pre>'; if (clean_param($_REQUEST['day_tables'], PARAM_NOTAGS) && ($_POST['day_tables'] || $_REQUEST['ajax'])) { foreach ($_REQUEST['day_tables'] as $id => $values) {
$extra['SELECT'] .= ",(SELECT cp.ROOM FROM COURSE_PERIODS cp WHERE cp.COURSE_PERIOD_ID='{$_REQUEST['w_course_period_id']}') AS ROOM"; } } else { if ($_REQUEST['teacher']) { $extra['SELECT'] .= ",(SELECT st.FIRST_NAME||' '||st.LAST_NAME FROM STAFF st,COURSE_PERIODS cp,SCHOOL_PERIODS p,SCHEDULE ss WHERE st.STAFF_ID=cp.TEACHER_ID AND cp.PERIOD_id=p.PERIOD_ID AND p.ATTENDANCE='Y' AND cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID AND ss.STUDENT_ID=s.STUDENT_ID AND ss.SYEAR='" . UserSyear() . "' AND ss.MARKING_PERIOD_ID IN(" . GetAllMP('QTR', GetCurrentMP('QTR', DBDate(), false)) . ") AND (ss.START_DATE<='" . DBDate() . "' AND (ss.END_DATE>='" . DBDate() . "' OR ss.END_DATE IS NULL)) ORDER BY p.SORT_ORDER LIMIT 1) AS TEACHER"; } if ($_REQUEST['room']) { $extra['SELECT'] .= ",(SELECT cp.ROOM FROM COURSE_PERIODS cp,SCHOOL_PERIODS p,SCHEDULE ss WHERE cp.PERIOD_id=p.PERIOD_ID AND p.ATTENDANCE='Y' AND cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID AND ss.STUDENT_ID=s.STUDENT_ID AND ss.SYEAR='" . UserSyear() . "' AND ss.MARKING_PERIOD_ID IN(" . GetAllMP('QTR', GetCurrentMP('QTR', DBDate(), false)) . ") AND (ss.START_DATE<='" . DBDate() . "' AND (ss.END_DATE>='" . DBDate() . "' OR ss.END_DATE IS NULL)) ORDER BY p.SORT_ORDER LIMIT 1) AS ROOM"; } } } else { if ($_REQUEST['teacher']) { $extra['SELECT'] .= ",(SELECT st.FIRST_NAME||' '||st.LAST_NAME FROM STAFF st,COURSE_PERIODS cp WHERE st.STAFF_ID=cp.TEACHER_ID AND cp.COURSE_PERIOD_ID='" . UserCoursePeriod() . "') AS TEACHER"; } if ($_REQUEST['room']) { $extra['SELECT'] .= ",(SELECT cp.ROOM FROM COURSE_PERIODS cp WHERE cp.COURSE_PERIOD_ID='" . UserCoursePeriod() . "') AS ROOM"; } } $RET = GetStuList($extra); if (count($RET)) { $skipRET = array(); for ($i = ($_REQUEST['start_row'] - 1) * $max_cols + $_REQUEST['start_col']; $i > 1; $i--) { $skipRET[-$i] = array('LAST_NAME' => ' '); } $handle = PDFstart(); echo '<!-- MEDIA SIZE 8.5x11in -->'; echo '<!-- MEDIA TOP 0.5in -->'; echo '<!-- MEDIA BOTTOM 0.25in -->'; echo '<!-- MEDIA LEFT 0.25in -->'; echo '<!-- MEDIA RIGHT 0.25in -->'; echo '<!-- FOOTER RIGHT "" -->';
if (User('PROFILE') == 'admin') { $courses_RET = DBGet(DBQuery('SELECT TITLE,COURSE_ID FROM courses WHERE SCHOOL_ID=\'' . UserSchool() . '\' AND SYEAR=\'' . UserSyear() . '\' AND COURSE_ID IN (SELECT DISTINCT COURSE_ID FROM course_periods WHERE GRADE_SCALE_ID IS NOT NULL) ORDER BY TITLE')); if (!$_REQUEST['course_id']) { $_REQUEST['course_id'] = $courses_RET[1]['COURSE_ID']; } $course_select = '<SELECT name=course_id onchange="document.location.href=\'Modules.php?modname=' . $_REQUEST['modname'] . '&course_id=\'+this.options[selectedIndex].value">'; foreach ($courses_RET as $course) { $course_select .= '<OPTION value=' . $course['COURSE_ID'] . ($_REQUEST['course_id'] == $course['COURSE_ID'] ? ' SELECTED' : '') . '>' . $course['TITLE'] . '</OPTION>'; } $course_select .= '</SELECT>'; } else { $course_period_RET = DBGet(DBQuery('SELECT GRADE_SCALE_ID,DOES_BREAKOFF,TEACHER_ID FROM course_periods WHERE COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\'')); if (!$course_period_RET[1]['GRADE_SCALE_ID']) { ErrorMessage(array('This course is not graded.'), 'fatal'); } $courses_RET = DBGet(DBQuery('SELECT TITLE,COURSE_ID FROM courses WHERE COURSE_ID=(SELECT COURSE_ID FROM course_periods WHERE COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\')')); $_REQUEST['course_id'] = $courses_RET[1]['COURSE_ID']; } if ($_REQUEST['tab_id'] != '0' && $_REQUEST['tab_id'] != 'new') { $_REQUEST['tab_id'] = $_REQUEST['course_id']; } $course_RET = DBGet(DBQuery("SELECT TITLE FROM courses WHERE COURSE_ID='{$_REQUEST['course_id']}'")); $tabs = array(1 => array('title' => $course_RET[1]['TITLE'], 'link' => "Modules.php?modname={$_REQUEST['modname']}&course_id={$_REQUEST['course_id']}&tab_id={$_REQUEST['course_id']}"), 2 => array('title' => 'All Courses', 'link' => "Modules.php?modname={$_REQUEST['modname']}&course_id={$_REQUEST['course_id']}&tab_id=0"), 3 => array('title' => 'General', 'link' => "Modules.php?modname={$_REQUEST['modname']}&course_id={$_REQUEST['course_id']}&tab_id=new")); if ($_REQUEST['tab_id'] != 'new') { if ($_REQUEST['tab_id']) { $sql = 'SELECT * FROM report_card_comments WHERE COURSE_ID=\'' . $_REQUEST['tab_id'] . '\' ORDER BY SORT_ORDER'; } else { // need to be more specific since course_period_id=0 is not unique $sql = 'SELECT * FROM report_card_comments WHERE COURSE_ID=\'' . $_REQUEST['tab_id'] . '\' AND SYEAR=\'' . UserSyear() . '\' AND SCHOOL_ID=\'' . UserSchool() . '\' ORDER BY SORT_ORDER'; } $functions = array('TITLE' => 'makeCommentsInput', 'SORT_ORDER' => 'makeCommentsInput');
} } } echo '<TD valign=top>'; $columns = array('TITLE' => _('Assignment Type'), 'SORT_ORDER' => _('Order')); $link = array(); $link['TITLE']['link'] = "Modules.php?modname={$_REQUEST['modname']}&modfunc={$_REQUEST['modfunc']}"; $link['TITLE']['variables'] = array('assignment_type_id' => 'ASSIGNMENT_TYPE_ID'); $link['add']['link'] = "Modules.php?modname={$_REQUEST['modname']}&assignment_type_id=new"; $link['add']['first'] = 5; // number before add link moves to top ListOutput($types_RET, $columns, _('Assignment Type'), _('Assignment Types'), $link, array(), $LO_options); echo '</TD>'; // ASSIGNMENTS if ($_REQUEST['assignment_type_id'] && $_REQUEST['assignment_type_id'] != 'new' && count($types_RET)) { $sql = "SELECT ASSIGNMENT_ID,TITLE,POINTS FROM GRADEBOOK_ASSIGNMENTS WHERE STAFF_ID='" . User('STAFF_ID') . "' AND (COURSE_ID=(SELECT COURSE_ID FROM COURSE_PERIODS WHERE COURSE_PERIOD_ID='" . UserCoursePeriod() . "') OR COURSE_PERIOD_ID='" . UserCoursePeriod() . "') AND ASSIGNMENT_TYPE_ID='" . $_REQUEST['assignment_type_id'] . "' AND MARKING_PERIOD_ID='" . UserMP() . "' ORDER BY " . Preferences('ASSIGNMENT_SORTING', 'Gradebook') . " DESC"; $QI = DBQuery($sql); $assn_RET = DBGet($QI); if (count($assn_RET)) { if ($_REQUEST['assignment_id'] && $_REQUEST['assignment_id'] != 'new') { foreach ($assn_RET as $key => $value) { if ($value['ASSIGNMENT_ID'] == $_REQUEST['assignment_id']) { $assn_RET[$key]['row_color'] = Preferences('HIGHLIGHT'); } } } } echo '<TD valign=top>'; $columns = array('TITLE' => 'Assignment', 'POINTS' => 'Points'); $link = array(); $link['TITLE']['link'] = "Modules.php?modname={$_REQUEST['modname']}&assignment_type_id={$_REQUEST['assignment_type_id']}";
<?php if ($_REQUEST['month_date'] && $_REQUEST['day_date'] && $_REQUEST['year_date']) { while (!VerifyDate($date = $_REQUEST['day_date'] . '-' . $_REQUEST['month_date'] . '-' . $_REQUEST['year_date'])) { $_REQUEST['day_date']--; } } else { $_REQUEST['day_date'] = date('d'); $_REQUEST['month_date'] = strtoupper(date('M')); $_REQUEST['year_date'] = date('y'); $date = $_REQUEST['day_date'] . '-' . $_REQUEST['month_date'] . '-' . $_REQUEST['year_date']; } DrawHeader(ProgramTitle()); $course_RET = DBGet(DBQuery("SELECT DOES_FS_COUNTS,DAYS,CALENDAR_ID,MP,MARKING_PERIOD_ID FROM COURSE_PERIODS WHERE COURSE_PERIOD_ID='" . UserCoursePeriod() . "'")); //echo '<pre>'; var_dump($course_RET); echo '</pre>'; if (!trim($course_RET[1]['DOES_FS_COUNTS'], ',')) { ErrorMessage(array(_('You cannot take meal counts for this period.')), 'fatal'); } // the following query is for when doea_fs_counts is a comma quoted string of meal_id's, ex. ,1,2,4, //$menus_RET = DBGet(DBQuery('SELECT MENU_ID,TITLE FROM FOOD_SERVICE_MENUS WHERE SCHOOL_ID=\''.UserSchool().'\' AND MENU_ID IN ('.trim($course_RET[1]['DOES_FS_COUNTS'],',').') ORDER BY SORT_ORDER'),array(),array('MENU_ID')); // use all meal_id's for now $menus_RET = DBGet(DBQuery('SELECT MENU_ID,TITLE FROM FOOD_SERVICE_MENUS WHERE SCHOOL_ID=\'' . UserSchool() . '\' ORDER BY SORT_ORDER'), array(), array('MENU_ID')); //echo '<pre>'; var_dump($menus_RET); echo '</pre>'; if (!$_REQUEST['menu_id']) { if (!$_SESSION['FSA_menu_id'] || !$menus_RET[$_SESSION['FSA_menu_id']]) { if (count($menus_RET)) { $_REQUEST['menu_id'] = $_SESSION['FSA_menu_id'] = key($menus_RET); } else { ErrorMessage(array(_('You cannot take meal counts for this period.')), 'fatal'); } } else {
if (count($default_RET)) { $_REQUEST['calendar_id'] = $default_RET[1]['CALENDAR_ID']; } else { $calendars_RET = DBGet(DBQuery("SELECT CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'")); if (count($calendars_RET)) { $_REQUEST['calendar_id'] = $calendars_RET[1]['CALENDAR_ID']; } else { $error = array('There are no calendars yet setup.'); } } unset($_REQUEST['modfunc']); unset($_SESSION['_REQUEST_vars']['modfunc']); } } if (User('PROFILE') != 'admin') { $course_RET = DBGet(DBQuery("SELECT CALENDAR_ID FROM COURSE_PERIODS WHERE COURSE_PERIOD_ID='" . UserCoursePeriod() . "'")); if ($course_RET[1]['CALENDAR_ID']) { $_REQUEST['calendar_id'] = $course_RET[1]['CALENDAR_ID']; } else { $default_RET = DBGet(DBQuery("SELECT CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "' AND DEFAULT_CALENDAR='Y'")); $_REQUEST['calendar_id'] = $default_RET[1]['CALENDAR_ID']; } } elseif (!$_REQUEST['calendar_id']) { $default_RET = DBGet(DBQuery("SELECT CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "' AND DEFAULT_CALENDAR='Y'")); if (count($default_RET)) { $_REQUEST['calendar_id'] = $default_RET[1]['CALENDAR_ID']; } else { $calendars_RET = DBGet(DBQuery("SELECT CALENDAR_ID FROM ATTENDANCE_CALENDARS WHERE SYEAR='" . UserSyear() . "' AND SCHOOL_ID='" . UserSchool() . "'")); if (count($calendars_RET)) { $_REQUEST['calendar_id'] = $calendars_RET[1]['CALENDAR_ID']; } else {
function _makeStandards($value, $column) { global $THIS_RET, $current_RET, $import_comments_RET, $course_RET, $tabindex; // $standard_exists=DBGet(DBQuery("SELECT COUNT(*) AS TOTAL FROM student_standards WHERE STUDENT_ID=".$THIS_RET['STUDENT_ID']." AND MARKING_PERIOD_ID=".UserMP()." AND COURSE_PERIOD_ID=".UserCoursePeriod())); $standard_exists = DBGet(DBQuery("SELECT COUNT(*) AS TOTAL FROM student_standards WHERE STUDENT_ID=" . $THIS_RET['STUDENT_ID'] . " AND MARKING_PERIOD_ID=" . $_REQUEST['mp'] . " AND COURSE_PERIOD_ID=" . UserCoursePeriod())); #echo '<pre>'; print_r($course_RET);echo '</pre>';$course_RET[1]['COURSE_ID'] if ($standard_exists[1]['TOTAL'] > 0) { // return "<center><a href=# onclick='window.open(\"for_window.php?modname=$_REQUEST[modname]&modfunc=enter_standards&process=edit&student_id=".$THIS_RET['STUDENT_ID']."&course_period_id=".UserCoursePeriod()."&course_id=".$course_RET[1]['COURSE_ID']."&mp=".$_REQUEST['mp']."\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'><img src='assets/edit.png' title='Edit' /></a></center>"; return "<center><a href=# onclick='window.open(\"for_window.php?modname={$_REQUEST['modname']}&modfunc=enter_standards&process=edit&student_id=" . $THIS_RET['STUDENT_ID'] . "&course_period_id=" . UserCoursePeriod() . "&course_id=" . $course_RET[1]['COURSE_ID'] . "&mp=" . $_REQUEST['mp'] . "\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'><img src='assets/edit_button.gif' title='Edit' /></a></center>"; } else { #return 'no'.$THIS_RET['STUDENT_ID'].UserCoursePeriod(); // return "<center><a href=# onclick='window.open(\"for_window.php?modname=$_REQUEST[modname]&modfunc=enter_standards&process=add&student_id=".$THIS_RET['STUDENT_ID']."&course_period_id=".UserCoursePeriod()."&course_id=".$course_RET[1]['COURSE_ID']."&mp=".$_REQUEST['mp']."\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'><img src='assets/add.png' title='Add' /></a></center>"; return "<center><a href=# onclick='window.open(\"for_window.php?modname={$_REQUEST['modname']}&modfunc=enter_standards&process=add&student_id=" . $THIS_RET['STUDENT_ID'] . "&course_period_id=" . UserCoursePeriod() . "&course_id=" . $course_RET[1]['COURSE_ID'] . "&mp=" . $_REQUEST['mp'] . "\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'><img src='assets/add_button.gif' title='Add' /></a></center>"; } }
function _makeRadioSelected($value, $title) { global $THIS_RET, $current_RET; $colors = array('P' => '#00FF00', 'A' => '#FF0000', 'H' => '#FFCC00', 'T' => '#0000FF'); $colors1 = array('P' => '#DDFFDD', 'A' => '#FFDDDD', 'H' => '#FFEEDD', 'T' => '#DDDDFF'); if ($current_RET[$THIS_RET['STUDENT_ID']][1]['ATTENDANCE_TEACHER_CODE'] != '') { if ($current_RET[$THIS_RET['STUDENT_ID']][1]['ATTENDANCE_TEACHER_CODE'] == mb_substr($title, 5)) { return '<TABLE style="margin:0 auto; ' . ($current_RET[$THIS_RET['STUDENT_ID']][1]['COURSE_PERIOD_ID'] == UserCoursePeriod() ? $colors[$value] ? ' background-color:' . $colors[$value] . ';' : '' : ' background-color:#000000;') . '"><TR><TD><INPUT type="radio" name="attendance[' . $THIS_RET['STUDENT_ID'] . ']" value="' . $title . '" checked /></TD></TR></TABLE>'; } else { return '<TABLE style="margin:0 auto;"><TR><TD><INPUT type="radio" name="attendance[' . $THIS_RET['STUDENT_ID'] . ']" value="' . $title . '"' . (AllowEdit() ? '' : ' disabled') . '></TD></TR></TABLE>'; } } else { return '<TABLE style="margin:0 auto; ' . ($colors1[$value] ? ' background-color:' . $colors1[$value] . ';' : '') . '"><TR><TD><INPUT type="radio" name="attendance[' . $THIS_RET['STUDENT_ID'] . ']" value="' . $title . '" checked /></TD></TR></TABLE>'; } }
$extra['SELECT'] .= ',(SELECT cp.ROOM FROM course_periods cp WHERE cp.COURSE_PERIOD_ID=\'' . $_REQUEST[w_course_period_id] . '\') AS ROOM'; } } else { if ($_REQUEST['teacher']) { $extra['SELECT'] .= ',(SELECT CONCAT(st.FIRST_NAME,\'' . ' ' . '\',st.LAST_NAME) FROM staff st,course_periods cp,school_periods p,schedule ss WHERE st.STAFF_ID=cp.TEACHER_ID AND cp.PERIOD_id=p.PERIOD_ID AND p.ATTENDANCE=\'' . 'Y' . '\' AND cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID AND ss.STUDENT_ID=s.STUDENT_ID AND ss.SYEAR=\'' . UserSyear() . '\' AND ss.MARKING_PERIOD_ID IN(' . $qtr . ') AND (ss.START_DATE<=\'' . DBDate() . '\' AND (ss.END_DATE>=\'' . DBDate() . '\' OR ss.END_DATE IS NULL)) ORDER BY p.SORT_ORDER LIMIT 1) AS TEACHER'; } if ($_REQUEST['room']) { $extra['SELECT'] .= ',(SELECT cp.ROOM FROM course_periods cp,school_periods p,schedule ss WHERE cp.PERIOD_id=p.PERIOD_ID AND p.ATTENDANCE=\'' . 'Y' . '\' AND cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID AND ss.STUDENT_ID=s.STUDENT_ID AND ss.SYEAR=\'' . UserSyear() . '\' AND ss.MARKING_PERIOD_ID IN(' . $qtr . ') AND (ss.START_DATE<=\'' . DBDate() . '\' AND (ss.END_DATE>=\'' . DBDate() . '\' OR ss.END_DATE IS NULL)) ORDER BY p.SORT_ORDER LIMIT 1) AS ROOM'; } } } else { if ($_REQUEST['teacher']) { $extra['SELECT'] .= ',(SELECT CONCAT(st.FIRST_NAME,\'' . ' ' . '\',st.LAST_NAME) FROM staff st,course_periods cp WHERE st.STAFF_ID=cp.TEACHER_ID AND cp.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\') AS TEACHER'; } if ($_REQUEST['room']) { $extra['SELECT'] .= ',(SELECT cp.ROOM FROM course_periods cp WHERE cp.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\') AS ROOM'; } } $RET = GetStuList($extra); if (count($RET)) { $skipRET = array(); for ($i = ($_REQUEST['start_row'] - 1) * $max_cols + $_REQUEST['start_col']; $i > 1; $i--) { $skipRET[-$i] = array('LAST_NAME' => ' '); } $handle = PDFstart(); $cols = 0; $rows = 0; echo "<meta charset='UTF-8'><table width=100% border=0 style=\" font-family:Arial; font-size:12px;\" >"; echo "<meta charset='UTF-8'><tr><td width=105>" . DrawLogo() . "</td><td style=\"font-size:15px; font-weight:bold; padding-top:20px;\">" . GetSchool(UserSchool()) . "<div style=\"font-size:12px;\">" . _('Student Labels') . "</div></td><td align=right style=\"padding-top:20px;\">" . ProperDate(DBDate()) . "<br \\>" . _('Powered by openSIS') . "</td></tr><tr><td colspan=3 style=\"border-top:1px solid #333;\"> </td></tr></table>"; echo '<table width="100%" border="0" cellspacing="0" cellpadding="0" style=font-family:Arial; font-size:12px;>'; foreach ($skipRET + $RET as $i => $student) {
} if (optional_param('ma_day', '', PARAM_NOTAGS) || optional_param('ma_month', '', PARAM_NOTAGS) || optional_param('ma_year', '', PARAM_NOTAGS) || optional_param('med_alrt_title', '', PARAM_NOTAGS) || $_SESSION['sma']) { $admin_COMMON_FROM .= " ,student_medical_alerts sma "; $admin_COMMON_WHERE .= " AND sma.STUDENT_ID=s.STUDENT_ID "; $_SESSION['sma'] = '1'; } if (optional_param('nv_day', '', PARAM_NOTAGS) || optional_param('nv_month', '', PARAM_NOTAGS) || optional_param('nv_year', '', PARAM_NOTAGS) || optional_param('reason', '', PARAM_NOTAGS) || optional_param('result', '', PARAM_NOTAGS) || optional_param('med_vist_comments', '', PARAM_NOTAGS) || $_SESSION['smv']) { $admin_COMMON_FROM .= " ,student_medical_visits smv "; $admin_COMMON_WHERE .= " AND smv.STUDENT_ID=s.STUDENT_ID "; $_SESSION['smv'] = '1'; } $admin_COMMON = $admin_COMMON_FROM . $admin_COMMON_WHERE; } if (User('PROFILE') == 'teacher') { $teacher_COMMON_FROM = " FROM students s, student_enrollment ssm, course_periods cp,\r\n\tschedule ss,student_address a "; $teacher_COMMON_WHERE = " WHERE a.STUDENT_ID=s.STUDENT_ID AND a.TYPE='Home Address' AND s.STUDENT_ID=ssm.STUDENT_ID AND ssm.STUDENT_ID=ss.STUDENT_ID AND ssm.SYEAR=cp.SYEAR AND ssm.SYEAR=ss.SYEAR AND cp.COURSE_ID=ss.COURSE_ID AND cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID AND ss.MARKING_PERIOD_ID IN (" . GetAllMP('', $queryMP) . ")\r\n\t\t\t\t\t\tAND (cp.TEACHER_ID='" . User('STAFF_ID') . "' OR cp.SECONDARY_TEACHER_ID='" . User('STAFF_ID') . "') AND cp.COURSE_PERIOD_ID='" . UserCoursePeriod() . "' AND (ssm.START_DATE IS NOT NULL AND ('" . DBDate() . "'<=ssm.END_DATE OR ssm.END_DATE IS NULL)) AND ssm.SYEAR=" . UserSyear() . " AND ssm.SCHOOL_ID=" . UserSchool() . " "; if (optional_param('mp_comment', '', PARAM_SPCL) || $_SESSION['smc']) { $teacher_COMMON_FROM .= " ,student_mp_comments smc"; $teacher_COMMON_WHERE .= " AND smc.STUDENT_ID=s.STUDENT_ID "; $_SESSION['smc'] = '1'; } if (optional_param('goal_description', '', PARAM_SPCL) || optional_param('goal_title', '', PARAM_SPCL) || $_SESSION['g']) { $teacher_COMMON_FROM .= " ,student_goal g "; $teacher_COMMON_WHERE .= " AND g.STUDENT_ID=s.STUDENT_ID "; $_SESSION['g'] = '1'; } if (optional_param('progress_name', '', PARAM_NOTAGS) || optional_param('progress_description', '', PARAM_NOTAGS) || $_SESSION['p']) { $teacher_COMMON_FROM .= " ,student_goal_progress p "; $teacher_COMMON_WHERE .= " AND p.STUDENT_ID=s.STUDENT_ID "; $_SESSION['p'] = '1'; }
$absences_RET = DBGet(DBQuery('SELECT ap.STUDENT_ID,ap.PERIOD_ID,ap.SCHOOL_DATE,ac.SHORT_NAME,ad.STATE_VALUE,ad.COMMENT AS OFFICE_COMMENT,ap.COMMENT AS TEACHER_COMMENT,ac.STATE_CODE FROM attendance_period ap,attendance_day ad,attendance_codes ac,course_periods cp WHERE ap.COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID AND ' . ($_REQUEST['myclasses'] == 'my_classes' ? '(cp.TEACHER_ID=\'' . User('STAFF_ID') . '\' OR cp.SECONDARY_TEACHER_ID=\'' . User('STAFF_ID') . '\')' : 'cp.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\'') . ' AND ap.STUDENT_ID=ad.STUDENT_ID AND ap.SCHOOL_DATE=ad.SCHOOL_DATE AND ap.ATTENDANCE_CODE=ac.ID AND ap.STUDENT_ID=\'' . UserStudentID() . '\' AND ap.SCHOOL_DATE BETWEEN \'' . $start_date . '\' AND \'' . $end_date . '\''), array(), array('SCHOOL_DATE', 'PERIOD_ID')); } else { $absences_RET = DBGet(DBQuery('SELECT ap.STUDENT_ID,ap.PERIOD_ID,ap.SCHOOL_DATE,ac.SHORT_NAME,ad.STATE_VALUE,ad.COMMENT AS OFFICE_COMMENT,ap.COMMENT AS TEACHER_COMMENT,ac.STATE_CODE FROM attendance_period ap,attendance_day ad,attendance_codes ac WHERE ap.STUDENT_ID=ad.STUDENT_ID AND ap.SCHOOL_DATE=ad.SCHOOL_DATE AND ap.ATTENDANCE_CODE=ac.ID AND ap.STUDENT_ID=\'' . UserStudentID() . '\' AND ap.SCHOOL_DATE BETWEEN \'' . $start_date . '\' AND \'' . $end_date . '\''), array(), array('SCHOOL_DATE', 'PERIOD_ID')); } foreach ($absences_RET as $school_date => $absences) { $i++; $days_RET[$i]['SCHOOL_DATE'] = ProperDate($school_date); $days_RET[$i]['DAILY'] = _makeStateValue($absences[key($absences)][1]['STATE_VALUE']); $days_RET[$i]['OFFICE_COMMENT'] = $absences[key($absences)][1]['OFFICE_COMMENT']; $days_RET[$i]['TEACHER_COMMENT'] = $absences[key($absences)][1]['TEACHER_COMMENT']; foreach ($absences as $period_id => $absence) { $days_RET[$i][$period_id] = $absence[1]['STATE_CODE'] != 'P' ? $absence[1]['SHORT_NAME'] : ''; } } if ($_REQUEST['myclasses'] != '') { $periods_RET = DBGet(DBQuery('SELECT sp.PERIOD_ID,sp.SHORT_NAME FROM school_periods sp,schedule s,course_periods cp,course_period_var cpv WHERE sp.SCHOOL_ID=\'' . UserSchool() . '\' AND sp.SYEAR=\'' . UserSyear() . '\' AND cp.COURSE_PERIOD_ID=cpv.COURSE_PERIOD_ID AND s.STUDENT_ID=\'' . UserStudentID() . '\' AND ' . ($_REQUEST['myclasses'] == 'my_classes' ? '(cp.TEACHER_ID=\'' . User('STAFF_ID') . '\' OR cp.SECONDARY_TEACHER_ID=\'' . User('STAFF_ID') . '\')' : 'cp.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\'') . ' AND cp.COURSE_PERIOD_ID=s.COURSE_PERIOD_ID AND cpv.PERIOD_ID=sp.PERIOD_ID AND cpv.DOES_ATTENDANCE=\'Y\' ORDER BY sp.SORT_ORDER')); } else { $periods_RET = DBGet(DBQuery('SELECT sp.PERIOD_ID,sp.SHORT_NAME FROM school_periods sp,schedule s,course_periods cp,course_period_var cpv WHERE sp.SCHOOL_ID=\'' . UserSchool() . '\' AND sp.SYEAR=\'' . UserSyear() . '\' AND cp.COURSE_PERIOD_ID=cpv.COURSE_PERIOD_ID AND s.STUDENT_ID=\'' . UserStudentID() . '\' AND cp.COURSE_PERIOD_ID=s.COURSE_PERIOD_ID AND cpv.PERIOD_ID=sp.PERIOD_ID AND cpv.DOES_ATTENDANCE=\'Y\' ORDER BY sp.SORT_ORDER')); } $columns['SCHOOL_DATE'] = 'Date'; $columns['DAILY'] = 'Present'; $columns['OFFICE_COMMENT'] = 'Office Comment'; $columns['TEACHER_COMMENT'] = 'Teacher Comment'; foreach ($periods_RET as $period) { $columns[$period['PERIOD_ID']] = $period['SHORT_NAME']; } ListOutput($days_RET, $columns, 'Day', 'Days'); } function _makeStateValue($value) { global $THIS_RET, $date;
function GetStuList(&$extra = array()) { global $contacts_RET, $view_other_RET, $_ROSARIO; if ((empty($extra['SELECT_ONLY']) || mb_strpos($extra['SELECT_ONLY'], 'GRADE_ID') !== false) && !isset($extra['functions']['GRADE_ID'])) { $functions = array('GRADE_ID' => 'GetGrade'); } else { $functions = array(); } if (isset($extra['functions'])) { $functions += $extra['functions']; } if (!isset($extra['MP']) && !isset($extra['DATE'])) { $extra['MP'] = UserMP(); $extra['DATE'] = DBDate(); } elseif (!$extra['MP']) { $extra['MP'] = GetCurrentMP('QTR', $extra['DATE'], false); } elseif (!$extra['DATE']) { $extra['DATE'] = DBDate(); } if (isset($_REQUEST['expanded_view']) && $_REQUEST['expanded_view'] == 'true') { if (!$extra['columns_after']) { $extra['columns_after'] = array(); } $view_fields_RET = DBGet(DBQuery("SELECT cf.ID,cf.TYPE,cf.TITLE FROM CUSTOM_FIELDS cf WHERE ((SELECT VALUE FROM PROGRAM_USER_CONFIG WHERE TITLE=cast(cf.ID AS TEXT) AND PROGRAM='StudentFieldsView' AND USER_ID='" . User('STAFF_ID') . "')='Y'" . ($extra['student_fields']['view'] ? " OR cf.ID IN (" . $extra['student_fields']['view'] . ")" : '') . ") ORDER BY cf.SORT_ORDER,cf.TITLE")); $view_address_RET = DBGet(DBQuery("SELECT VALUE FROM PROGRAM_USER_CONFIG WHERE PROGRAM='StudentFieldsView' AND TITLE='ADDRESS' AND USER_ID='" . User('STAFF_ID') . "'")); $view_address_RET = $view_address_RET[1]['VALUE']; $view_other_RET = DBGet(DBQuery("SELECT TITLE,VALUE FROM PROGRAM_USER_CONFIG WHERE PROGRAM='StudentFieldsView' AND TITLE IN ('CONTACT_INFO','HOME_PHONE','GUARDIANS','ALL_CONTACTS') AND USER_ID='" . User('STAFF_ID') . "'"), array(), array('TITLE')); if (!count($view_fields_RET) && !isset($view_address_RET) && !isset($view_other_RET['CONTACT_INFO'])) { //modif Francois: add translation $extra['columns_after'] = array('CONTACT_INFO' => '<IMG SRC="assets/down_phone_button.png" width="24">', 'CUSTOM_200000000' => _('Gender'), 'CUSTOM_200000001' => _('Ethnicity'), 'ADDRESS' => _('Mailing Address'), 'CITY' => _('City'), 'STATE' => _('State'), 'ZIPCODE' => _('Zipcode')) + $extra['columns_after']; $select = ',ssm.STUDENT_ID AS CONTACT_INFO,s.CUSTOM_200000000,s.CUSTOM_200000001,coalesce(a.MAIL_ADDRESS,a.ADDRESS) AS ADDRESS,coalesce(a.MAIL_CITY,a.CITY) AS CITY,coalesce(a.MAIL_STATE,a.STATE) AS STATE,coalesce(a.MAIL_ZIPCODE,a.ZIPCODE) AS ZIPCODE '; $extra['FROM'] = " LEFT OUTER JOIN STUDENTS_JOIN_ADDRESS sam ON (ssm.STUDENT_ID=sam.STUDENT_ID AND sam.RESIDENCE='Y') LEFT OUTER JOIN ADDRESS a ON (sam.ADDRESS_ID=a.ADDRESS_ID) " . $extra['FROM']; $functions['CONTACT_INFO'] = 'makeContactInfo'; $RET = DBGet(DBQuery("SELECT ID,TYPE FROM CUSTOM_FIELDS WHERE ID IN ('200000000','200000001')"), array(), array('ID')); // if gender and ethnicity are converted to codeds or exports type if ($RET['200000000'][1]['TYPE'] == 'codeds' || $RET['200000000'][1]['TYPE'] == 'exports') { $functions['CUSTOM_200000000'] = 'DeCodeds'; } if ($RET['200000001'][1]['TYPE'] == 'codeds' || $RET['200000001'][1]['TYPE'] == 'exports') { $functions['CUSTOM_200000001'] = 'DeCodeds'; } $extra['singular'] = 'Student Address'; $extra['plural'] = 'Student Addresses'; $extra2['NoSearchTerms'] = true; $extra2['SELECT_ONLY'] = 'ssm.STUDENT_ID,p.PERSON_ID,p.FIRST_NAME,p.LAST_NAME,sjp.STUDENT_RELATION,pjc.TITLE,pjc.VALUE,a.PHONE,sjp.ADDRESS_ID '; $extra2['FROM'] .= ',ADDRESS a,STUDENTS_JOIN_ADDRESS sja LEFT OUTER JOIN STUDENTS_JOIN_PEOPLE sjp ON (sja.STUDENT_ID=sjp.STUDENT_ID AND sja.ADDRESS_ID=sjp.ADDRESS_ID AND (sjp.CUSTODY=\'Y\' OR sjp.EMERGENCY=\'Y\')) LEFT OUTER JOIN PEOPLE p ON (p.PERSON_ID=sjp.PERSON_ID) LEFT OUTER JOIN PEOPLE_JOIN_CONTACTS pjc ON (pjc.PERSON_ID=p.PERSON_ID) '; $extra2['WHERE'] .= ' AND a.ADDRESS_ID=sja.ADDRESS_ID AND sja.STUDENT_ID=ssm.STUDENT_ID '; $extra2['ORDER_BY'] .= 'sjp.CUSTODY'; $extra2['group'] = array('STUDENT_ID', 'PERSON_ID'); // EXPANDED VIEW AND ADDR BREAKS THIS QUERY ... SO, TURN 'EM OFF if (!isset($_REQUEST['_ROSARIO_PDF'])) { $expanded_view = $_REQUEST['expanded_view']; $_REQUEST['expanded_view'] = false; $addr = $_REQUEST['addr']; unset($_REQUEST['addr']); $contacts_RET = GetStuList($extra2); $_REQUEST['expanded_view'] = $expanded_view; $_REQUEST['addr'] = $addr; } else { unset($extra2['columns_after']['CONTACT_INFO']); } } else { if ($view_other_RET['CONTACT_INFO'][1]['VALUE'] == 'Y' && !isset($_REQUEST['_ROSARIO_PDF'])) { $select .= ',ssm.STUDENT_ID AS CONTACT_INFO '; $extra['columns_after']['CONTACT_INFO'] = '<IMG SRC="assets/down_phone_button.png" width="24">'; $functions['CONTACT_INFO'] = 'makeContactInfo'; $extra2 = $extra; $extra2['NoSearchTerms'] = true; $extra2['SELECT'] = ''; $extra2['SELECT_ONLY'] = 'ssm.STUDENT_ID,p.PERSON_ID,p.FIRST_NAME,p.LAST_NAME,sjp.STUDENT_RELATION,pjc.TITLE,pjc.VALUE,a.PHONE,sjp.ADDRESS_ID '; $extra2['FROM'] .= ',ADDRESS a,STUDENTS_JOIN_ADDRESS sja LEFT OUTER JOIN STUDENTS_JOIN_PEOPLE sjp ON (sja.STUDENT_ID=sjp.STUDENT_ID AND sja.ADDRESS_ID=sjp.ADDRESS_ID AND (sjp.CUSTODY=\'Y\' OR sjp.EMERGENCY=\'Y\')) LEFT OUTER JOIN PEOPLE p ON (p.PERSON_ID=sjp.PERSON_ID) LEFT OUTER JOIN PEOPLE_JOIN_CONTACTS pjc ON (pjc.PERSON_ID=p.PERSON_ID) '; $extra2['WHERE'] .= ' AND a.ADDRESS_ID=sja.ADDRESS_ID AND sja.STUDENT_ID=ssm.STUDENT_ID '; $extra2['ORDER_BY'] .= 'sjp.CUSTODY'; $extra2['group'] = array('STUDENT_ID', 'PERSON_ID'); $extra2['functions'] = array(); $extra2['link'] = array(); // EXPANDED VIEW AND ADDR BREAKS THIS QUERY ... SO, TURN 'EM OFF $expanded_view = $_REQUEST['expanded_view']; $_REQUEST['expanded_view'] = false; $addr = $_REQUEST['addr']; unset($_REQUEST['addr']); $contacts_RET = GetStuList($extra2); $_REQUEST['expanded_view'] = $expanded_view; $_REQUEST['addr'] = $addr; } foreach ($view_fields_RET as $field) { $extra['columns_after']['CUSTOM_' . $field['ID']] = $field['TITLE']; if ($field['TYPE'] == 'date') { $functions['CUSTOM_' . $field['ID']] = 'ProperDate'; } elseif ($field['TYPE'] == 'numeric') { $functions['CUSTOM_' . $field['ID']] = 'removeDot00'; } elseif ($field['TYPE'] == 'codeds') { $functions['CUSTOM_' . $field['ID']] = 'DeCodeds'; } elseif ($field['TYPE'] == 'exports') { $functions['CUSTOM_' . $field['ID']] = 'DeCodeds'; } $select .= ',s.CUSTOM_' . $field['ID']; } if ($view_address_RET) { $extra['FROM'] = " LEFT OUTER JOIN STUDENTS_JOIN_ADDRESS sam ON (ssm.STUDENT_ID=sam.STUDENT_ID AND sam." . $view_address_RET . "='Y') LEFT OUTER JOIN ADDRESS a ON (sam.ADDRESS_ID=a.ADDRESS_ID) " . $extra['FROM']; $extra['columns_after'] += array('ADDRESS' => _(ucwords(mb_strtolower(str_replace('_', ' ', $view_address_RET)))) . ' ' . _('Address'), 'CITY' => _('City'), 'STATE' => _('State'), 'ZIPCODE' => _('Zipcode')); if ($view_address_RET != 'MAILING') { $select .= ",a.ADDRESS_ID,a.ADDRESS,a.CITY,a.STATE,a.ZIPCODE,a.PHONE,ssm.STUDENT_ID AS PARENTS"; } else { $select .= ",a.ADDRESS_ID,coalesce(a.MAIL_ADDRESS,a.ADDRESS) AS ADDRESS,coalesce(a.MAIL_CITY,a.CITY) AS CITY,coalesce(a.MAIL_STATE,a.STATE) AS STATE,coalesce(a.MAIL_ZIPCODE,a.ZIPCODE) AS ZIPCODE,a.PHONE,ssm.STUDENT_ID AS PARENTS "; } $extra['singular'] = 'Student Address'; $extra['plural'] = 'Student Addresses'; if ($view_other_RET['HOME_PHONE'][1]['VALUE'] == 'Y') { $functions['PHONE'] = 'makePhone'; $extra['columns_after']['PHONE'] = _('Home Phone'); } if ($view_other_RET['GUARDIANS'][1]['VALUE'] == 'Y' || $view_other_RET['ALL_CONTACTS'][1]['VALUE'] == 'Y') { $functions['PARENTS'] = 'makeParents'; if ($view_other_RET['ALL_CONTACTS'][1]['VALUE'] == 'Y') { $extra['columns_after']['PARENTS'] = _('Contacts'); } else { $extra['columns_after']['PARENTS'] = _('Guardians'); } } } elseif ($_REQUEST['addr'] || $extra['addr']) { $extra['FROM'] = " LEFT OUTER JOIN STUDENTS_JOIN_ADDRESS sam ON (ssm.STUDENT_ID=sam.STUDENT_ID " . $extra['STUDENTS_JOIN_ADDRESS'] . ") LEFT OUTER JOIN ADDRESS a ON (sam.ADDRESS_ID=a.ADDRESS_ID) " . $extra['FROM']; $distinct = 'DISTINCT '; } } $extra['SELECT'] .= $select; } else { if (isset($extra['student_fields']['view'])) { if (!$extra['columns_after']) { $extra['columns_after'] = array(); } $view_fields_RET = DBGet(DBQuery("SELECT cf.ID,cf.TYPE,cf.TITLE FROM CUSTOM_FIELDS cf WHERE cf.ID IN (" . $extra['student_fields']['view'] . ") ORDER BY cf.SORT_ORDER,cf.TITLE")); foreach ($view_fields_RET as $field) { $extra['columns_after']['CUSTOM_' . $field['ID']] = $field['TITLE']; if ($field['TYPE'] == 'date') { $functions['CUSTOM_' . $field['ID']] = 'ProperDate'; } elseif ($field['TYPE'] == 'numeric') { $functions['CUSTOM_' . $field['ID']] = 'removeDot00'; } elseif ($field['TYPE'] == 'codeds') { $functions['CUSTOM_' . $field['ID']] = 'DeCodeds'; } elseif ($field['TYPE'] == 'exports') { $functions['CUSTOM_' . $field['ID']] = 'DeCodeds'; } $select .= ',s.CUSTOM_' . $field['ID']; } $extra['SELECT'] .= $select; } if (!empty($_REQUEST['addr']) || !empty($extra['addr'])) { $extra['FROM'] = " LEFT OUTER JOIN STUDENTS_JOIN_ADDRESS sam ON (ssm.STUDENT_ID=sam.STUDENT_ID " . $extra['STUDENTS_JOIN_ADDRESS'] . ") LEFT OUTER JOIN ADDRESS a ON (sam.ADDRESS_ID=a.ADDRESS_ID) " . $extra['FROM']; $distinct = 'DISTINCT '; } } switch (User('PROFILE')) { case 'admin': $sql = 'SELECT '; //$sql = 'SELECT '.$distinct; if (isset($extra['SELECT_ONLY'])) { $sql .= $extra['SELECT_ONLY']; } else { $sql .= "s.LAST_NAME||', '||s.FIRST_NAME||' '||coalesce(s.MIDDLE_NAME,' ') AS FULL_NAME,"; $sql .= 's.LAST_NAME,s.FIRST_NAME,s.MIDDLE_NAME,s.STUDENT_ID,ssm.SCHOOL_ID,ssm.SCHOOL_ID AS LIST_SCHOOL_ID,ssm.GRADE_ID ' . $extra['SELECT']; if (isset($_REQUEST['include_inactive']) && $_REQUEST['include_inactive'] == 'Y') { $sql .= ',' . db_case(array("(ssm.SYEAR='" . UserSyear() . "' AND ('" . $extra['DATE'] . "'>=ssm.START_DATE AND ('" . $extra['DATE'] . "'<=ssm.END_DATE OR ssm.END_DATE IS NULL)))", 'TRUE', '\'<span style="color:green">' . _('Active') . '</span>\'', '\'<span style="color:red">' . _('Inactive') . '</span>\'')) . ' AS ACTIVE'; } } $sql .= " FROM STUDENTS s JOIN STUDENT_ENROLLMENT ssm ON (ssm.STUDENT_ID=s.STUDENT_ID"; if (isset($_REQUEST['include_inactive']) && $_REQUEST['include_inactive'] == 'Y') { //$sql .= " AND ssm.ID=(SELECT max(ID) FROM STUDENT_ENROLLMENT WHERE STUDENT_ID=ssm.STUDENT_ID AND SYEAR<='".UserSyear()."')"; $sql .= " AND ssm.ID=(SELECT ID FROM STUDENT_ENROLLMENT WHERE STUDENT_ID=ssm.STUDENT_ID AND SYEAR<='" . UserSyear() . "' ORDER BY SYEAR DESC,START_DATE DESC LIMIT 1)"; } else { $sql .= " AND ssm.SYEAR='" . UserSyear() . "' AND ('" . $extra['DATE'] . "'>=ssm.START_DATE AND (ssm.END_DATE IS NULL OR '" . $extra['DATE'] . "'<=ssm.END_DATE))"; } if (UserSchool() && $_REQUEST['_search_all_schools'] != 'Y') { $sql .= " AND ssm.SCHOOL_ID='" . UserSchool() . "'"; } else { if (User('SCHOOLS')) { $sql .= " AND ssm.SCHOOL_ID IN (" . mb_substr(str_replace(',', "','", User('SCHOOLS')), 2, -2) . ") "; } $extra['columns_after']['LIST_SCHOOL_ID'] = 'School'; $functions['LIST_SCHOOL_ID'] = 'GetSchool'; } $sql .= ")" . $extra['FROM'] . " WHERE TRUE"; if (empty($extra['SELECT_ONLY']) && isset($_REQUEST['include_inactive']) && $_REQUEST['include_inactive'] == 'Y') { $extra['columns_after']['ACTIVE'] = _('Status'); } break; case 'teacher': $sql = 'SELECT '; //$sql = 'SELECT '.$distinct; if ($extra['SELECT_ONLY']) { $sql .= $extra['SELECT_ONLY']; } else { $sql .= "s.LAST_NAME||', '||s.FIRST_NAME||' '||coalesce(s.MIDDLE_NAME,' ') AS FULL_NAME,"; $sql .= 's.LAST_NAME,s.FIRST_NAME,s.MIDDLE_NAME,s.STUDENT_ID,ssm.SCHOOL_ID,ssm.GRADE_ID ' . $extra['SELECT']; if ($_REQUEST['include_inactive'] == 'Y') { $sql .= ',' . db_case(array("('" . $extra['DATE'] . "'>=ssm.START_DATE AND (ssm.END_DATE IS NULL OR '" . $extra['DATE'] . "'<=ssm.END_DATE))", 'TRUE', '\'<span style="color:green">' . _('Active') . '</span>\'', '\'<span style="color:red">' . _('Inactive') . '</span>\'')) . ' AS ACTIVE'; $sql .= ',' . db_case(array("('" . $extra['DATE'] . "'>=ss.START_DATE AND (ss.END_DATE IS NULL OR '" . $extra['DATE'] . "'<=ss.END_DATE)) AND ss.MARKING_PERIOD_ID IN (" . GetAllMP($extra['MPTable'], $extra['MP']) . ")", 'TRUE', '\'<span style="color:green">' . _('Active') . '</span>\'', '\'<span style="color:red">' . _('Inactive') . '</span>\'')) . ' AS ACTIVE_SCHEDULE'; } } $sql .= " FROM STUDENTS s JOIN SCHEDULE ss ON (ss.STUDENT_ID=s.STUDENT_ID AND ss.SYEAR='" . UserSyear() . "'"; if ($_REQUEST['include_inactive'] == 'Y') { $sql .= " AND ss.START_DATE=(SELECT START_DATE FROM SCHEDULE WHERE STUDENT_ID=s.STUDENT_ID AND SYEAR=ss.SYEAR AND COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID ORDER BY START_DATE DESC LIMIT 1)"; } else { $sql .= " AND ss.MARKING_PERIOD_ID IN (" . GetAllMP($extra['MPTable'], $extra['MP']) . ") AND ('" . $extra['DATE'] . "'>=ss.START_DATE AND ('" . $extra['DATE'] . "'<=ss.END_DATE OR ss.END_DATE IS NULL))"; } $sql .= ") JOIN COURSE_PERIODS cp ON (cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID AND " . ($extra['all_courses'] == 'Y' ? "cp.TEACHER_ID='" . User('STAFF_ID') . "'" : "cp.COURSE_PERIOD_ID='" . UserCoursePeriod() . "'") . ")\n\t\t\t\tJOIN STUDENT_ENROLLMENT ssm ON (ssm.STUDENT_ID=s.STUDENT_ID AND ssm.SYEAR=ss.SYEAR AND ssm.SCHOOL_ID='" . UserSchool() . "'"; if ($_REQUEST['include_inactive'] == 'Y') { $sql .= " AND ssm.ID=(SELECT ID FROM STUDENT_ENROLLMENT WHERE STUDENT_ID=ssm.STUDENT_ID AND SYEAR=ssm.SYEAR ORDER BY START_DATE DESC LIMIT 1)"; } else { $sql .= " AND ('" . $extra['DATE'] . "'>=ssm.START_DATE AND (ssm.END_DATE IS NULL OR '" . $extra['DATE'] . "'<=ssm.END_DATE))"; } $sql .= ")" . $extra['FROM'] . " WHERE TRUE"; if (!$extra['SELECT_ONLY'] && $_REQUEST['include_inactive'] == 'Y') { $extra['columns_after']['ACTIVE'] = _('School Status'); $extra['columns_after']['ACTIVE_SCHEDULE'] = _('Course Status'); } break; case 'parent': case 'student': $sql = 'SELECT '; if ($extra['SELECT_ONLY']) { $sql .= $extra['SELECT_ONLY']; } else { $sql .= "s.LAST_NAME||', '||s.FIRST_NAME||' '||coalesce(s.MIDDLE_NAME,' ') AS FULL_NAME,"; $sql .= 's.LAST_NAME,s.FIRST_NAME,s.MIDDLE_NAME,s.STUDENT_ID,ssm.SCHOOL_ID,ssm.GRADE_ID ' . $extra['SELECT']; } $sql .= " FROM STUDENTS s JOIN STUDENT_ENROLLMENT ssm ON (ssm.STUDENT_ID=s.STUDENT_ID AND ssm.SYEAR='" . UserSyear() . "' AND ssm.SCHOOL_ID='" . UserSchool() . "'\n\t\t\t\t\tAND ('" . $extra['DATE'] . "'>=ssm.START_DATE AND (ssm.END_DATE IS NULL OR '" . $extra['DATE'] . "'<=ssm.END_DATE)) AND s.STUDENT_ID" . ($extra['ASSOCIATED'] ? " IN (SELECT STUDENT_ID FROM STUDENTS_JOIN_USERS WHERE STAFF_ID='" . $extra['ASSOCIATED'] . "')" : "='" . UserStudentID() . "'"); $sql .= ")" . $extra['FROM'] . " WHERE TRUE"; break; default: exit(_('Error')); } //$sql = appendSQL($sql,array('NoSearchTerms'=>$extra['NoSearchTerms'])); $sql .= ' ' . $extra['WHERE'] . ' '; if (isset($extra['GROUP'])) { $sql .= ' GROUP BY ' . $extra['GROUP']; } if (!isset($extra['ORDER_BY']) && !isset($extra['SELECT_ONLY'])) { $sql .= ' ORDER BY '; if (Preferences('SORT') == 'Grade') { $sql .= '(SELECT SORT_ORDER FROM SCHOOL_GRADELEVELS WHERE ID=ssm.GRADE_ID),'; } // it would be easier to sort on full_name but postgres sometimes yields strange results $sql .= 's.LAST_NAME,s.FIRST_NAME,s.MIDDLE_NAME'; $sql .= $extra['ORDER']; } elseif (isset($extra['ORDER_BY'])) { $sql .= ' ORDER BY ' . $extra['ORDER_BY']; } //modif Francois: bugfix if PDF, dont echo SQL if (!isset($_REQUEST['_ROSARIO_PDF']) && 0) { //activate only for debug purpose echo '<!--' . $sql . '-->'; } return DBGet(DBQuery($sql), $functions, $extra['group']); }
function GetStaffList(&$extra) { global $profiles_RET, $_CENTRE; $functions = array('PROFILE' => 'makeProfile'); switch (User('PROFILE')) { case 'admin': case 'teacher': if ($_REQUEST['expanded_view'] == 'true') { $select = ',LAST_LOGIN'; $extra['columns_after']['LAST_LOGIN'] = _('Last Login'); $functions['LAST_LOGIN'] = '******'; $view_fields_RET = DBGet(DBQuery("SELECT cf.ID,cf.TYPE,cf.TITLE FROM STAFF_FIELDS cf WHERE ((SELECT VALUE FROM PROGRAM_USER_CONFIG WHERE TITLE=cast(cf.ID AS TEXT) AND PROGRAM='StaffFieldsView' AND USER_ID='" . User('STAFF_ID') . "')='Y'" . ($extra['staff_fields']['view'] ? " OR cf.ID IN (" . $extra['staff_fields']['view'] . ")" : '') . ") ORDER BY cf.SORT_ORDER,cf.TITLE")); foreach ($view_fields_RET as $field) { $extra['columns_after']['CUSTOM_' . $field['ID']] = $field['TITLE']; if ($field['TYPE'] == 'date') { $functions['CUSTOM_' . $field['ID']] = 'ProperDate'; } elseif ($field['TYPE'] == 'numeric') { $functions['CUSTOM_' . $field['ID']] = 'removeDot00'; } elseif ($field['TYPE'] == 'codeds') { $functions['CUSTOM_' . $field['ID']] = 'StaffDeCodeds'; } elseif ($field['TYPE'] == 'exports') { $functions['CUSTOM_' . $field['ID']] = 'StaffDeCodeds'; } $select .= ',s.CUSTOM_' . $field['ID']; } $extra['SELECT'] .= $select; } else { if (!$extra['columns_after']) { $extra['columns_after'] = array(); } if ($extra['staff_fields']['view']) { $view_fields_RET = DBGet(DBQuery("SELECT cf.ID,cf.TYPE,cf.TITLE FROM STAFF_FIELDS cf WHERE cf.ID IN (" . $extra['staff_fields']['view'] . ") ORDER BY cf.SORT_ORDER,cf.TITLE")); foreach ($view_fields_RET as $field) { $extra['columns_after']['CUSTOM_' . $field['ID']] = $field['TITLE']; if ($field['TYPE'] == 'date') { $functions['CUSTOM_' . $field['ID']] = 'ProperDate'; } elseif ($field['TYPE'] == 'numeric') { $functions['CUSTOM_' . $field['ID']] = 'removeDot00'; } elseif ($field['TYPE'] == 'codeds') { $functions['CUSTOM_' . $field['ID']] = 'StaffDeCodeds'; } elseif ($field['TYPE'] == 'exports') { $functions['CUSTOM_' . $field['ID']] = 'StaffDeCodeds'; } $select .= ',s.CUSTOM_' . $field['ID']; } $extra['SELECT'] .= $select; } } if (User('PROFILE') != 'admin') { $extra['WHERE'] .= " AND (s.STAFF_ID='" . User('STAFF_ID') . "' OR s.PROFILE='parent' AND exists(SELECT '' FROM STUDENTS_JOIN_USERS _sju,STUDENT_ENROLLMENT _sem,SCHEDULE _ss WHERE _sju.STAFF_ID=s.STAFF_ID AND _sem.STUDENT_ID=_sju.STUDENT_ID AND _sem.SYEAR='" . UserSYEAR() . "' AND _ss.STUDENT_ID=_sem.STUDENT_ID AND _ss.COURSE_PERIOD_ID='" . UserCoursePeriod() . "'"; if ($_REQUEST['include_inactive'] != 'Y') { $extra['WHERE'] .= " AND _ss.MARKING_PERIOD_ID IN (" . GetAllMP('QTR', UserMP()) . ") AND ('" . DBDate() . "'>=_sem.START_DATE AND ('" . DBDate() . "'<=_sem.END_DATE OR _sem.END_DATE IS NULL)) AND ('" . DBDate() . "'>=_ss.START_DATE AND ('" . DBDate() . "'<=_ss.END_DATE OR _ss.END_DATE IS NULL))"; } $extra['WHERE'] .= "))"; } $profiles_RET = DBGet(DBQuery("SELECT * FROM USER_PROFILES"), array(), array('ID')); $sql = "SELECT\n\t\t\t\t\ts.LAST_NAME||', '||s.FIRST_NAME||' '||COALESCE(s.MIDDLE_NAME,' ') AS FULL_NAME,\n\t\t\t\t\ts.PROFILE,s.PROFILE_ID,s.STAFF_ID,s.SCHOOLS " . $extra['SELECT'] . "\n\t\t\t\tFROM\n\t\t\t\t\tSTAFF s " . $extra['FROM'] . "\n\t\t\t\tWHERE\n\t\t\t\t\ts.SYEAR='" . UserSyear() . "'"; //$sql = appendStaffSQL($sql,array('NoSearchTerms'=>$extra['NoSearchTerms'])); if ($_REQUEST['_search_all_schools'] != 'Y') { $sql .= " AND (s.SCHOOLS LIKE '%," . UserSchool() . ",%' OR s.SCHOOLS IS NULL OR s.SCHOOLS='') "; } $sql .= $extra['WHERE'] . ' '; //$sql .= CustomFields('where','staff',array('NoSearchTerms'=>$extra['NoSearchTerms'])); // it would be easier to sort on full_name but postgres sometimes yields strange results $sql .= 'ORDER BY s.LAST_NAME,s.FIRST_NAME,s.MIDDLE_NAME'; if ($extra['functions']) { $functions += $extra['functions']; } return DBGet(DBQuery($sql), $functions); break; } }
#*************************************************************************************** $var1 = explode("?", $_SERVER['REQUEST_URI']); include "functions/ParamLib.php"; $url = validateQueryString($var1[1]); if ($url === FALSE || !$var1[1]) { header('Location: index.php'); } //echo $_SERVER['REQUEST_URI']; //exit; error_reporting(1); include "./Warehouse.php"; $tmp_REQUEST = $_REQUEST; $_SESSION['Side_PHP_SELF'] = "Side.php"; $old_school = UserSchool(); $old_syear = UserSyear(); $old_period = UserCoursePeriod(); //$btnn = $_REQUEST['btnn']; $btnn = optional_param('btnn', '', PARAM_SPCL); //$nsc = $_REQUEST['nsc']; $nsc = optional_param('nsc', '', PARAM_SPCL); unset($_SESSION['smc']); unset($_SESSION['g']); unset($_SESSION['p']); unset($_SESSION['smn']); unset($_SESSION['sm']); unset($_SESSION['sma']); unset($_SESSION['smv']); unset($_SESSION['s']); unset($_SESSION['_search_all']); unset($_SESSION['custom_count_sql']); unset($_SESSION['inactive_stu_filter']);
$extra['SELECT'] .= ',(SELECT r.TITLE AS ROOM FROM course_period_var cpv,rooms r WHERE cpv.ROOM_ID=r.ROOM_ID AND cpv.COURSE_PERIOD_ID=\'' . $_REQUEST[w_course_period_id] . '\') AS ROOM'; } } else { if ($_REQUEST['teacher']) { $extra['SELECT'] .= ',(SELECT CONCAT(st.FIRST_NAME,\'' . ' ' . '\',st.LAST_NAME) FROM staff st,course_periods cp,school_periods p,schedule ss,course_period_var cpv WHERE cp.COURSE_PERIOD_ID=cpv.COURSE_PERIOD_ID AND st.STAFF_ID=cp.TEACHER_ID AND cpv.PERIOD_ID=p.PERIOD_ID AND p.ATTENDANCE=\'' . 'Y' . '\' AND cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID AND ss.STUDENT_ID=s.STUDENT_ID AND ss.SYEAR=\'' . UserSyear() . '\' AND ss.MARKING_PERIOD_ID IN(' . $qtr . ') AND (ss.START_DATE<=\'' . DBDate() . '\' AND (ss.END_DATE>=\'' . DBDate() . '\' OR ss.END_DATE IS NULL)) ORDER BY p.SORT_ORDER LIMIT 1) AS TEACHER'; } if ($_REQUEST['room']) { $extra['SELECT'] .= ',(SELECT r.TITLE AS ROOM FROM course_periods cp,school_periods p,schedule ss,course_period_var cpv,rooms r WHERE cpv.ROOM_ID=r.ROOM_ID AND cpv.COURSE_PERIOD_ID=cp.COURSE_PERIOD_ID AND cpv.PERIOD_ID=p.PERIOD_ID AND p.ATTENDANCE=\'' . 'Y' . '\' AND cp.COURSE_PERIOD_ID=cpv.COURSE_PERIOD_ID AND cp.COURSE_PERIOD_ID=ss.COURSE_PERIOD_ID AND ss.STUDENT_ID=s.STUDENT_ID AND ss.SYEAR=\'' . UserSyear() . '\' AND ss.MARKING_PERIOD_ID IN(' . $qtr . ') AND (ss.START_DATE<=\'' . DBDate() . '\' AND (ss.END_DATE>=\'' . DBDate() . '\' OR ss.END_DATE IS NULL)) ORDER BY p.SORT_ORDER LIMIT 1) AS ROOM'; } } } else { if ($_REQUEST['teacher']) { $extra['SELECT'] .= ',(SELECT CONCAT(st.FIRST_NAME,\'' . ' ' . '\',st.LAST_NAME) FROM staff st,course_periods cp WHERE st.STAFF_ID=cp.TEACHER_ID AND cp.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\') AS TEACHER'; } if ($_REQUEST['room']) { $extra['SELECT'] .= ',(SELECT r.TITLE AS ROOM FROM course_period_var cpv,rooms r WHERE cpv.ROOM_ID=r.ROOM_ID AND cpv.COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\') AS ROOM'; } } $RET = GetStuList($extra); if (count($RET)) { $skipRET = array(); for ($i = ($_REQUEST['start_row'] - 1) * $max_cols + $_REQUEST['start_col']; $i > 1; $i--) { $skipRET[-$i] = array('LAST_NAME' => ' '); } $handle = PDFstart(); $cols = 0; $rows = 0; echo "<table width=100% border=0 style=\" font-family:Arial; font-size:12px;\" >"; echo "<tr><td width=105>" . DrawLogo() . "</td><td style=\"font-size:15px; font-weight:bold; padding-top:20px;\">" . GetSchool(UserSchool()) . "<div style=\"font-size:12px;\">Student Labels</div></td><td align=right style=\"padding-top:20px;\">" . ProperDate(DBDate()) . "<br \\>Powered by openSIS</td></tr><tr><td colspan=3 style=\"border-top:1px solid #333;\"> </td></tr></table>"; echo '<table width="100%" border="0" cellspacing="0" cellpadding="0" style=font-family:Arial; font-size:12px;>'; foreach ($skipRET + $RET as $i => $student) {
$code = 'BORDERLINE'; } else { $code = 'PASSING'; } if ($current_RET[$student_id]) { $sql = 'UPDATE eligibility SET ELIGIBILITY_CODE=\'' . $code . '\' WHERE SCHOOL_DATE BETWEEN \'' . $start_date . '\' AND \'' . $end_date . '\' AND COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\' AND STUDENT_ID=\'' . $student_id . '\''; } else { $sql = 'INSERT INTO eligibility (STUDENT_ID,SCHOOL_DATE,SYEAR,PERIOD_ID,COURSE_PERIOD_ID,ELIGIBILITY_CODE) values(\'' . $student_id . '\',\'' . DBDate() . '\',\'' . UserSyear() . '\',\'' . UserPeriod() . '\',\'' . $course_period_id . '\',\'' . $code . '\')'; } DBQuery($sql); } $current_RET = DBGet(DBQuery('SELECT ELIGIBILITY_CODE,STUDENT_ID FROM eligibility WHERE SCHOOL_DATE BETWEEN \'' . $start_date . '\' AND \'' . $end_date . '\' AND COURSE_PERIOD_ID=\'' . UserCoursePeriod() . '\''), array(), array('STUDENT_ID')); } } if ($_REQUEST['values'] && ($_POST['values'] || $_REQUEST['ajax'])) { $course_period_id = UserCoursePeriod(); foreach ($_REQUEST['values'] as $student_id => $value) { if ($current_RET[$student_id]) { $sql = 'UPDATE eligibility SET ELIGIBILITY_CODE=\'' . $value . '\' WHERE SCHOOL_DATE BETWEEN \'' . $start_date . '\' AND \'' . $end_date . '\' AND PERIOD_ID=\'' . UserPeriod() . '\' AND STUDENT_ID=\'' . $student_id . '\''; } else { $sql = 'INSERT INTO eligibility (STUDENT_ID,SCHOOL_DATE,SYEAR,PERIOD_ID,COURSE_PERIOD_ID,ELIGIBILITY_CODE) values(\'' . $student_id . '\',\'' . DBDate() . '\',\'' . UserSyear() . '\',\'' . UserPeriod() . '\',\'' . $course_period_id . '\',\'' . $value . '\')'; } DBQuery($sql); } $RET = DBGet(DBQuery('SELECT \'completed\' AS COMPLETED FROM eligibility_completed WHERE STAFF_ID=\'' . User('STAFF_ID') . '\' AND SCHOOL_DATE BETWEEN \'' . $start_date . '\' AND \'' . $end_date . '\' AND PERIOD_ID=\'' . UserPeriod() . '\'')); if (!count($RET)) { DBQuery('INSERT INTO eligibility_completed (STAFF_ID,SCHOOL_DATE,PERIOD_ID) values(\'' . User('STAFF_ID') . '\',\'' . DBDate() . '\',\'' . UserPeriod() . '\')'); } $current_RET = DBGet(DBQuery('SELECT ELIGIBILITY_CODE,STUDENT_ID FROM eligibility WHERE SCHOOL_DATE BETWEEN \'' . $start_date . '\' AND \'' . $end_date . '\' AND PERIOD_ID=\'' . UserPeriod() . '\''), array(), array('STUDENT_ID')); } $extra['SELECT'] .= ",'' AS PASSING,'' AS BORDERLINE,'' AS FAILING,'' AS INCOMPLETE";
if (!UserPeriod()) { $_SESSION['UserPeriod'] = $RET[1]['PERIOD_ID']; } if (!UserCoursePeriod()) { $_SESSION['UserCoursePeriod'] = $RET[1]['COURSE_PERIOD_ID']; } $incl_page = $_REQUEST['include']; if ($incl_page != 'Attendance/Missing_Attendance.php') { if (!$_SESSION['take_mssn_attn']) { $period_select = "Choose Period: <SELECT name=period onChange='document.forms[1].submit();'>"; $period_select .= "<OPTION value='na' selected>N/A</OPTION>"; } else { $period_select = "<SELECT name=period onChange='document.forms[1].submit();' style='visibility:hidden;'>"; } foreach ($RET as $period) { $period_select .= "<OPTION value={$period['COURSE_PERIOD_ID']}" . (UserCoursePeriod() == $period['COURSE_PERIOD_ID'] ? ' SELECTED' : '') . ">" . $period['SHORT_NAME'] . ($period['MARKING_PERIOD_ID'] != $fy_id ? ' ' . GetMP($period['MARKING_PERIOD_ID'], 'SHORT_NAME') : '') . (strlen($period['DAYS']) < 5 ? ' ' . $period['DAYS'] : '') . ' - ' . $period['COURSE_TITLE'] . "</OPTION>"; if (UserCoursePeriod() == $period['COURSE_PERIOD_ID']) { $_SESSION['UserPeriod'] = $period['PERIOD_ID']; } } $period_select .= "</SELECT>"; } DrawHeader($period_select); echo '</FORM><BR>'; unset($_openSIS['DrawHeader']); $_openSIS['allow_edit'] = AllowEdit($_REQUEST['modname']); $_openSIS['User'] = array(1 => array('STAFF_ID' => UserStaffID(), 'NAME' => GetTeacher(UserStaffID()), 'USERNAME' => GetTeacher(UserStaffID(), '', 'USERNAME'), 'PROFILE' => 'teacher', 'SCHOOLS' => ',' . UserSchool() . ',', 'SYEAR' => UserSyear())); echo '<CENTER><TABLE width=100% ><TR><TD>'; include 'modules/' . $_REQUEST['include']; echo '</TD></TR></TABLE></CENTER>'; }