ErrorMessage(array(_('You cannot take attendance for this course period.')), 'fatal'); } if ($_REQUEST['table'] == '') { $_REQUEST['table'] = $categories_RET[1]['ID']; } if ($_REQUEST['table'] == '0') { $table = 'ATTENDANCE_PERIOD'; } else { $table = 'LUNCH_PERIOD'; } //modif Francois: days numbered //modif Francois: multiple school periods for a course period if (SchoolInfo('NUMBER_DAYS_ROTATION') !== null) { $course_RET = DBGET(DBQuery("SELECT cp.HALF_DAY FROM ATTENDANCE_CALENDAR acc,COURSE_PERIODS cp,SCHOOL_PERIODS sp, COURSE_PERIOD_SCHOOL_PERIODS cpsp WHERE cp.COURSE_PERIOD_ID=cpsp.COURSE_PERIOD_ID AND acc.SYEAR='" . UserSyear() . "' AND cp.SCHOOL_ID=acc.SCHOOL_ID AND cp.SYEAR=acc.SYEAR AND acc.SCHOOL_DATE='{$date}' AND cp.CALENDAR_ID=acc.CALENDAR_ID AND cpsp.COURSE_PERIOD_SCHOOL_PERIODS_ID='" . UserCoursePeriodSchoolPeriod() . "'\n\tAND cp.MARKING_PERIOD_ID IN (SELECT MARKING_PERIOD_ID FROM SCHOOL_MARKING_PERIODS WHERE (MP='FY' OR MP='SEM' OR MP='QTR') AND SCHOOL_ID=acc.SCHOOL_ID AND acc.SCHOOL_DATE BETWEEN START_DATE AND END_DATE)\n\tAND sp.PERIOD_ID=cpsp.PERIOD_ID AND (sp.BLOCK IS NULL AND position(substring('MTWHFSU' FROM cast((SELECT CASE COUNT(school_date)% " . SchoolInfo('NUMBER_DAYS_ROTATION') . " WHEN 0 THEN " . SchoolInfo('NUMBER_DAYS_ROTATION') . " ELSE COUNT(school_date)% " . SchoolInfo('NUMBER_DAYS_ROTATION') . " END AS day_number FROM attendance_calendar WHERE school_date>=(SELECT start_date FROM school_marking_periods WHERE start_date<=acc.SCHOOL_DATE AND end_date>=acc.SCHOOL_DATE AND mp='QTR') AND school_date<=acc.SCHOOL_DATE) AS INT) FOR 1) IN cpsp.DAYS)>0\n\t\tOR sp.BLOCK IS NOT NULL AND acc.BLOCK IS NOT NULL AND sp.BLOCK=acc.BLOCK)\n\tAND position(',{$_REQUEST['table']},' IN cp.DOES_ATTENDANCE)>0")); } else { $course_RET = DBGET(DBQuery("SELECT cp.HALF_DAY FROM ATTENDANCE_CALENDAR acc,COURSE_PERIODS cp,SCHOOL_PERIODS sp, COURSE_PERIOD_SCHOOL_PERIODS cpsp WHERE cp.COURSE_PERIOD_ID=cpsp.COURSE_PERIOD_ID AND acc.SYEAR='" . UserSyear() . "' AND cp.SCHOOL_ID=acc.SCHOOL_ID AND cp.SYEAR=acc.SYEAR AND acc.SCHOOL_DATE='{$date}' AND cp.CALENDAR_ID=acc.CALENDAR_ID AND cpsp.COURSE_PERIOD_SCHOOL_PERIODS_ID='" . UserCoursePeriodSchoolPeriod() . "'\n\tAND cp.MARKING_PERIOD_ID IN (SELECT MARKING_PERIOD_ID FROM SCHOOL_MARKING_PERIODS WHERE (MP='FY' OR MP='SEM' OR MP='QTR') AND SCHOOL_ID=acc.SCHOOL_ID AND acc.SCHOOL_DATE BETWEEN START_DATE AND END_DATE)\n\tAND sp.PERIOD_ID=cpsp.PERIOD_ID AND (sp.BLOCK IS NULL AND position(substring('UMTWHFS' FROM cast(extract(DOW FROM acc.SCHOOL_DATE) AS INT)+1 FOR 1) IN cpsp.DAYS)>0\n\t\tOR sp.BLOCK IS NOT NULL AND acc.BLOCK IS NOT NULL AND sp.BLOCK=acc.BLOCK)\n\tAND position(',{$_REQUEST['table']},' IN cp.DOES_ATTENDANCE)>0")); } if (count($course_RET) == 0) { echo '<FORM action="Modules.php?modname=' . $_REQUEST['modname'] . '&table=' . $_REQUEST['table'] . '" method="POST">'; DrawHeader(PrepareDate($date, '_date', false, array('submit' => true))); echo '</FORM>'; ErrorMessage(array(_('You cannot take attendance for this period on this day.')), 'fatal'); } $qtr_id = GetCurrentMP('QTR', $date, false); if (!$qtr_id) { echo '<FORM action="Modules.php?modname=' . $_REQUEST['modname'] . '&table=' . $_REQUEST['table'] . '" method="POST">'; DrawHeader(PrepareDate($date, '_date', false, array('submit' => true))); echo '</FORM>'; ErrorMessage(array(_('The selected date is not in a school quarter.')), 'fatal'); } // if running as a teacher program then rosario[allow_edit] will already be set according to admin permissions
$_SESSION['unset_student'] = true; } echo '<BR /><SELECT name="period" onChange="document.forms[0].submit();" style="width:180px;">'; $optgroup = FALSE; foreach ($RET as $period) { //modif Francois: add optroup to group periods by course periods if (!empty($period['COURSE_TITLE']) && $optgroup != $period['COURSE_TITLE']) { echo '<optgroup label="' . $period['COURSE_TITLE'] . '">'; $optgroup = $period['COURSE_TITLE']; } if ($optgroup !== FALSE && $optgroup != $period['COURSE_TITLE']) { //close optgroup echo '</optgroup>'; } //if(UserCoursePeriod()==$period['COURSE_PERIOD_ID']) if (UserCoursePeriodSchoolPeriod() == $period['COURSE_PERIOD_SCHOOL_PERIODS_ID']) { $selected = ' SELECTED="SELECTED"'; $_SESSION['UserPeriod'] = $period['PERIOD_ID']; $found = true; } else { $selected = ''; } //modif Francois: days display to locale $days_convert = array('U' => _('Sunday'), 'M' => _('Monday'), 'T' => _('Tuesday'), 'W' => _('Wednesday'), 'H' => _('Thursday'), 'F' => _('Friday'), 'S' => _('Saturday')); //modif Francois: days numbered if (SchoolInfo('NUMBER_DAYS_ROTATION') !== null) { $days_convert = array('U' => '7', 'M' => '1', 'T' => '2', 'W' => '3', 'H' => '4', 'F' => '5', 'S' => '6'); } $period_days = ''; for ($i = 0; $i < mb_strlen($period['DAYS']); $i++) { $period_days .= mb_substr($days_convert[$period['DAYS'][$i]], 0, 3) . '.';
//if($_REQUEST['search_modfunc'] || $_REQUEST['student_id'] || UserStudentID() || User('PROFILE')=='parent' || User('PROFILE')=='student') if ($_REQUEST['search_modfunc'] || $_REQUEST['student_id'] || User('PROFILE') == 'parent' || User('PROFILE') == 'student') { $PHP_tmp_SELF = PreparePHP_SELF(); $period_select = '<SELECT name="period_id" onchange="this.form.submit();"><OPTION value=""' . (empty($_REQUEST['period_id']) ? ' SELECTED="SELECTED"' : '') . '>' . _('Daily') . '</OPTION>'; if (!UserStudentID() && !$_REQUEST['student_id']) { if (User('PROFILE') == 'admin') { //modif Francois: multiple school periods for a course period //$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")); $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 cp, COURSE_PERIOD_SCHOOL_PERIODS cpsp WHERE cp.COURSE_PERIOD_ID=cpsp.COURSE_PERIOD_ID AND position(',0,' IN cp.DOES_ATTENDANCE)>0 AND cpsp.PERIOD_ID=sp.PERIOD_ID AND cp.SYEAR=sp.SYEAR AND cp.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="SELECTED"' : '') . '>' . $period['TITLE'] . '</OPTION>'; } } else { //modif Francois: multiple school periods for a course period //$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()."'")); $periods_RET = DBGet(DBQuery("SELECT sp.PERIOD_ID,sp.TITLE FROM SCHOOL_PERIODS sp,COURSE_PERIODS cp, COURSE_PERIOD_SCHOOL_PERIODS cpsp WHERE cp.COURSE_PERIOD_ID=cpsp.COURSE_PERIOD_ID AND position(',0,' IN cp.DOES_ATTENDANCE)>0 AND sp.PERIOD_ID=cpsp.PERIOD_ID AND cpsp.COURSE_PERIOD_SCHOOL_PERIODS_ID='" . UserCoursePeriodSchoolPeriod() . "'")); 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="SELECTED"':'').">".$periods_RET[1]['TITLE'].'</OPTION>'; $period_select .= '<OPTION value="' . $periods_RET[1]['PERIOD_ID'] . '"' . ($_REQUEST['period_id'] == $periods_RET[1]['PERIOD_ID'] ? ' SELECTED="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="SELECTED"' : '') . '>' . _('By Period') . '</OPTION>'; } $period_select .= '</SELECT>'; echo '<FORM action="' . $PHP_tmp_SELF . '" method="POST">'; DrawHeader(_('Timeframe') . ':' . PrepareDate($start_date, '_start') . ' ' . _('to') . ' ' . PrepareDate($end_date, '_end') . ' : ' . $period_select . ' : <INPUT type="submit" value="' . _('Go') . '" />'); }
$start_date = '01-' . mb_strtoupper(date('M-y')); } if ($_REQUEST['day_end'] && $_REQUEST['month_end'] && $_REQUEST['year_end']) { while (!VerifyDate($end_date = $_REQUEST['day_end'] . '-' . $_REQUEST['month_end'] . '-' . $_REQUEST['year_end'])) { $_REQUEST['day_end']--; } } else { $end_date = DBDate(); } //if(User('PROFILE')=='teacher') // $_REQUEST['period_id'] = UserPeriod(); if ($_REQUEST['search_modfunc'] || UserStudentID() || $_REQUEST['student_id'] || User('PROFILE') == 'parent' || User('PROFILE') == 'student') { if (!UserStudentID() && !$_REQUEST['student_id']) { //modif Francois: multiple school periods for a course period //$periods_RET = DBGet(DBQuery("SELECT sp.PERIOD_ID,sp.TITLE FROM SCHOOL_PERIODS sp WHERE sp.SYEAR='".UserSyear()."' AND sp.SCHOOL_ID='".UserSchool()."' AND EXISTS(SELECT '' FROM COURSE_PERIODS cp WHERE cp.PERIOD_ID=sp.PERIOD_ID AND position(',0,' IN cp.DOES_ATTENDANCE)>0".(User('PROFILE')=='teacher'?" AND cp.PERIOD_ID='".UserPeriod()."'":'').") ORDER BY sp.SORT_ORDER")); $periods_RET = DBGet(DBQuery("SELECT sp.PERIOD_ID,sp.TITLE FROM SCHOOL_PERIODS sp WHERE sp.SYEAR='" . UserSyear() . "' AND sp.SCHOOL_ID='" . UserSchool() . "' AND EXISTS(SELECT '' FROM COURSE_PERIODS cp, COURSE_PERIOD_SCHOOL_PERIODS cpsp WHERE cp.COURSE_PERIOD_ID=cpsp.COURSE_PERIOD_ID AND cpsp.PERIOD_ID=sp.PERIOD_ID AND position(',0,' IN cp.DOES_ATTENDANCE)>0" . (User('PROFILE') == 'teacher' ? " AND cpsp.COURSE_PERIOD_SCHOOL_PERIODS_ID='" . UserCoursePeriodSchoolPeriod() . "'" : '') . ") ORDER BY sp.SORT_ORDER")); $period_select = '<SELECT name="period_id" onchange="this.form.submit();"><OPTION value="">' . _('Daily') . '</OPTION>'; if (count($periods_RET)) { foreach ($periods_RET as $period) { $period_select .= '<OPTION value="' . $period[PERIOD_ID] . '"' . ($_REQUEST['period_id'] == $period['PERIOD_ID'] ? ' SELECTED="SELECTED"' : '') . '>' . $period[TITLE] . '</OPTION>'; } } $period_select .= '</SELECT>'; } $PHP_tmp_SELF = PreparePHP_SELF(); echo '<FORM action="' . $PHP_tmp_SELF . '" method="POST">'; DrawHeader(_('Timeframe') . ':' . PrepareDate($start_date, '_start') . ' ' . _('to') . ' ' . PrepareDate($end_date, '_end') . ' : ' . $period_select . ' : <INPUT type="submit" value="' . _('Go') . '" />'); echo '</FORM>'; } if ($_REQUEST['period_id']) { $extra['SELECT'] .= ",(SELECT count(*) FROM ATTENDANCE_PERIOD ap,ATTENDANCE_CODES ac\n\t\t\t\t\t\tWHERE ac.ID=ap.ATTENDANCE_CODE AND (ac.STATE_CODE='A' OR ac.STATE_CODE='H') AND ap.STUDENT_ID=ssm.STUDENT_ID\n\t\t\t\t\t\tAND ap.PERIOD_ID='{$_REQUEST['period_id']}'\n\t\t\t\t\t\tAND ap.SCHOOL_DATE BETWEEN '{$start_date}' AND '{$end_date}' AND ac.SYEAR=ssm.SYEAR) AS STATE_ABS";