$sql .= 'COMMENT=\'' . str_replace("'", "''", $columns['comment']) . ' \' '; } #if(isset($columns['comment'])) # $sql .= $sep."COMMENT='".str_replace("\'","''",$columns['comment'])."'"; if ($sql) { $sql = 'UPDATE student_report_card_grades SET ' . $sql . ' WHERE STUDENT_ID=\'' . $student_id . '\' AND COURSE_PERIOD_ID=\'' . $course_period_id . '\' AND MARKING_PERIOD_ID=\'' . $_REQUEST['mp'] . '\''; } } elseif ($columns['grade'] || $columns['percent'] != '' || $columns['comment']) { $grade = $percent = ''; if ($columns['grade']) { if (substr($columns['grade'], -1) == '%') { $percent = substr($columns['grade'], 0, -1); $grade = _makeLetterGrade($percent / 100, $course_period_id, 0, 'ID'); } else { $grade = $columns['grade']; $percent = _makePercentGrade($grade, $course_period_id); } } elseif ($columns['percent'] != '') { $percent = rtrim($columns['percent'], '%') + 0; if ($percent > 999.9) { $percent = 999.9; } elseif ($percent < 0) { $percent = 0; } $grade = _makeLetterGrade($percent / 100, $course_period_id, 0, 'ID'); } //$grade_id = DBGet(DBQuery('SELECT '.db_seq_nextval('STUDENT_REPORT_CARD_GRADES_SEQ').' AS ID '.FROM_DUAL)); $id = DBGet(DBQuery("SHOW TABLE STATUS LIKE 'student_report_card_grades'")); $grade_id[1]['ID'] = $id[1]['AUTO_INCREMENT']; $ngrade_id = $grade_id[1]['ID']; if (stripos($_SERVER['SERVER_SOFTWARE'], 'linux')) {
} } elseif ($columns['percent'] != '' || $columns['grade'] || $columns['comment']) { if ($columns['percent'] != '') { $percent = rtrim($columns['percent'], '%'); if ($percent > 999.9) { $percent = '999.9'; } elseif ($percent < 0) { $percent = '0'; } if ($columns['grade']) { $grade = $columns['grade']; } else { $grade = $percent != '' ? _makeLetterGrade($percent / 100, $course_period_id, 0, 'ID') : ''; } } elseif ($columns['grade']) { $percent = _makePercentGrade($columns['grade'], $course_period_id); $grade = $columns['grade']; $letter = $grades_RET[$grade][1]['TITLE']; $weighted = $grades_RET[$grade][1]['WEIGHTED_GP']; $unweighted = $grades_RET[$grade][1]['UNWEIGHTED_GP']; $scale = $grades_RET[$grade][1]['GP_SCALE']; } else { $percent = $grade = $letter = $weighted = $unweighted = $scale = ''; } $sql = "INSERT INTO STUDENT_REPORT_CARD_GRADES (SYEAR,SCHOOL_ID,STUDENT_ID,COURSE_PERIOD_ID,MARKING_PERIOD_ID,REPORT_CARD_GRADE_ID,GRADE_PERCENT,COMMENT,GRADE_LETTER,WEIGHTED_GP,UNWEIGHTED_GP,GP_SCALE,COURSE_TITLE,CREDIT_ATTEMPTED,CREDIT_EARNED)\n\t\t\t\tvalues('" . UserSyear() . "','" . UserSchool() . "','" . $student_id . "','" . $course_period_id . "','" . $_REQUEST['mp'] . "','" . $grade . "','" . $percent . "','" . str_replace("\\'", "''", $columns['comment']) . "','" . $grades_RET[$grade][1]['TITLE'] . "','" . $weighted . "','" . $unweighted . "','" . $scale . "','" . $course_RET[1]['COURSE_NAME'] . "','" . $course_RET[1]['CREDITS'] . "','" . ($weighted && $weighted > 0 ? $course_RET[1]['CREDITS'] : '0') . "')"; } else { $percent = $grade = ''; } if ($sql) { DBQuery($sql); }
} } } } if (clean_param($_REQUEST['values'], PARAM_NOTAGS) && ($_POST['values'] || $_REQUEST['ajax']) && $_SESSION['assignment_id'] == clean_param($_REQUEST['assignment_id'], PARAM_INT)) { foreach ($_REQUEST['values'] as $student_id => $assignments) { foreach ($assignments as $assignment_id => $columns) { if ($columns['POINTS']) { if ($columns['POINTS'] == '*') { $columns['POINTS'] = '-1'; } else { $columns['POINTS'] = clean_param($columns['POINTS'], PARAM_PERCENT); if (substr($columns['POINTS'], -1) == '%') { $columns['POINTS'] = substr($columns['POINTS'], 0, -1) * $total_points[$assignment_id] / 100; } elseif (!is_numeric($columns['POINTS'])) { $columns['POINTS'] = _makePercentGrade($columns['POINTS'], $course_period_id) * $total_points[$assignment_id] / 100; } if ($columns['POINTS'] < 0) { $columns['POINTS'] = '0'; } elseif ($columns['POINTS'] > 9999.99) { $columns['POINTS'] = '9999.99'; } } } $sql = ''; if ($current_RET[$student_id][$assignment_id]) { $sql = "UPDATE gradebook_grades SET "; foreach ($columns as $column => $value) { if ($column == 'COMMENT') { $value = str_replace("'", "\\'", $value); }
$current_RET[UserStudentID()] = DBGet(DBQuery("SELECT g.ASSIGNMENT_ID FROM GRADEBOOK_GRADES g,GRADEBOOK_ASSIGNMENTS a WHERE a.ASSIGNMENT_ID=g.ASSIGNMENT_ID AND a.MARKING_PERIOD_ID='" . UserMP() . "' AND g.STUDENT_ID='" . UserStudentID() . "' AND g.COURSE_PERIOD_ID='" . UserCoursePeriod() . "'" . ($_REQUEST['assignment_id'] == 'all' ? '' : " AND g.ASSIGNMENT_ID='{$_REQUEST['assignment_id']}'")), array(), array('ASSIGNMENT_ID')); } elseif ($_REQUEST['assignment_id'] == 'all') { $current_RET = DBGet(DBQuery("SELECT g.STUDENT_ID,g.ASSIGNMENT_ID,g.POINTS FROM GRADEBOOK_GRADES g,GRADEBOOK_ASSIGNMENTS a WHERE a.ASSIGNMENT_ID=g.ASSIGNMENT_ID AND a.MARKING_PERIOD_ID='" . UserMP() . "' AND g.COURSE_PERIOD_ID='" . UserCoursePeriod() . "'"), array(), array('STUDENT_ID', 'ASSIGNMENT_ID')); } else { $current_RET = DBGet(DBQuery("SELECT STUDENT_ID,POINTS,COMMENT,ASSIGNMENT_ID FROM GRADEBOOK_GRADES WHERE ASSIGNMENT_ID='{$_REQUEST['assignment_id']}' AND COURSE_PERIOD_ID='" . UserCoursePeriod() . "'"), array(), array('STUDENT_ID', 'ASSIGNMENT_ID')); } foreach ($_REQUEST['values'] as $student_id => $assignments) { foreach ($assignments as $assignment_id => $columns) { if ($columns['POINTS']) { if ($columns['POINTS'] == '*') { $columns['POINTS'] = '-1'; } else { if (mb_substr($columns['POINTS'], -1) == '%') { $columns['POINTS'] = mb_substr($columns['POINTS'], 0, -1) * $assignments_RET[$assignment_id][1]['POINTS'] / 100; } elseif (!is_numeric($columns['POINTS'])) { $columns['POINTS'] = _makePercentGrade($columns['POINTS'], UserCoursePeriod()) * $assignments_RET[$assignment_id][1]['POINTS'] / 100; } if ($columns['POINTS'] < 0) { $columns['POINTS'] = '0'; } elseif ($columns['POINTS'] > 9999.99) { $columns['POINTS'] = '9999.99'; } } } $sql = ''; if ($current_RET[$student_id][$assignment_id]) { $sql = "UPDATE GRADEBOOK_GRADES SET "; foreach ($columns as $column => $value) { $sql .= $column . "='" . $value . "',"; } $sql = mb_substr($sql, 0, -1) . " WHERE STUDENT_ID='{$student_id}' AND ASSIGNMENT_ID='{$assignment_id}' AND COURSE_PERIOD_ID='" . UserCoursePeriod() . "'";