I cloned an opensource project called opensis and I want to modify it to suit my use. In the table called student_report_card_grades i added the columns for CA marks and exam marks since this table enabled the user to either enter a grade for the student or the final percentage for a student in that subject. I have succeeded to create these fields but the function which i defined which is allow a user input CA marks and Exam marks is not working as I tested the software and I am unable to add CA marks and exam marks
I defined two functions makeCAMarks and _makeExamMarks function which is supposed to make the fields in such a way that the user input CA marks as well as exam marks but my function is not working as I am not able to input these marks. Here is a snippet of my code below
$columns = array('FULL_NAME' =>_student,
'STUDENT_ID' =>_studentId,
'CA_MARKS' => 'CA Marks',
'EXAM_MARKS' => 'Exam Marks',
);
$columns += array(
'CA_MARKS' => '_makeCAMarks',
'EXAM_MARKS' => '_makeExamMarks',
);
if ($_REQUEST['include_inactive'] == 'Y')
$columns += array('ACTIVE' =>_schoolStatus,
'ACTIVE_SCHEDULE' =>_courseStatus,
);
if ($_REQUEST['use_percents'] != 'true')
$columns += array('GRADE_PERCENT' =>_percent,
'REPORT_CARD_GRADE' =>_assignGrade,
);
elseif ($not_graded)
$columns += array('GRADE_PERCENT' =>_assignPercent,
);
else
$columns += array('REPORT_CARD_GRADE' =>_grade,
'GRADE_PERCENT' =>_assignPercent,
);
if (substr($_REQUEST['mp'], 0, 1) != 'E' && GetMP($_REQUEST['mp'], 'DOES_COMMENTS') == 'Y') {
foreach ($commentsA_RET as $value)
$columns += array('CA' . $value['ID'] => $value['TITLE']);
for ($i = 1; $i <= $max_current_commentsB; $i++)
$columns += array('CB' . $i => 'Comment ' . $i);
if (count($commentsB_select) && AllowEdit() && !isset($_REQUEST['_openSIS_PDF']))
$columns += array('CB' . $i =>_addComment);
$columns += array('COMMENT' =>_comment);
}
if(isset($_SESSION['GGG_FLAG']) && $_SESSION['GGG_FLAG'] == 1)
{
foreach($stu_RET as $one_ret_key => $one_ret)
{
if(isset($import_RET[$one_ret['STUDENT_ID']][1]['GRADE_PERCENT']) && $import_RET[$one_ret['STUDENT_ID']][1]['GRADE_PERCENT'] != '')
{
$this_letter_grade = "<b>". _makeLetterGrade(($import_RET[$one_ret['STUDENT_ID']][1]['GRADE_PERCENT']/100)) ."</b>";
}
else
{
$this_letter_grade = "";
}
$stu_RET[$one_ret_key]['REPORT_CARD_GRADE'] = $this_letter_grade;
}
$_SESSION['GGG_FLAG'] = '';
unset($_SESSION['GGG_FLAG']);
}
// echo "<pre>";print_r($stu_RET);echo "</pre>";
ListOutput($stu_RET, $columns, _student, _students, false, false, array('yscroll' =>true));
if (count($stu_RET) != 0) {
echo '<div class="panel-footer">' . SubmitButton(_save, 'submit[save]', 'class="btn btn-primary" onclick="self_disable(this);"') . '</div>';
}
echo "</FORM>";
echo '</div>'; //.panel-body
echo '</div>'; //.panel
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\' AND VALUE LIKE \'%_' . UserCoursePeriod() . '\''));
if (count($rounding))
$_SESSION['ROUNDING'] = rtrim($rounding[1]['VALUE'], '_' . UserCoursePeriod());
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 USER_ID=\'' . User('STAFF_ID') . '\' AND PROGRAM=\'Gradebook\' AND VALUE LIKE \'%_' . UserCoursePeriod() . '\' ORDER BY VALUE DESC '));
if (count($get_details)) {
$tgs_total = DBGet(DBQuery('SELECT COUNT(*) as RET_EX FROM program_user_config WHERE USER_ID=\'' . User('STAFF_ID') . '\' AND PROGRAM=\'Gradebook\' AND VALUE LIKE \'%_' . UserCoursePeriod() . '\''));
$tgs_total = $tgs_total[1]['RET_EX'];
$tgs_ac_total = DBGet(DBQuery('SELECT COUNT(*) as RET_EX FROM program_user_config WHERE USER_ID=\'' . User('STAFF_ID') . '\' AND PROGRAM=\'Gradebook\' AND VALUE LIKE \'%_' . UserCoursePeriod() . '\' AND VALUE IS NOT NULL'));
$tgs_ac_total = $tgs_ac_total[1]['RET_EX'];
if ($tgs_ac_total == $tgs_total) {
foreach ($get_details as $i => $d) {
$unused_var = explode('_', $d['VALUE']);
$unused_var2 = explode('-', $d['TITLE']);
if ($select >= $unused_var[0] && is_numeric($unused_var[0]) && $unused_var2[0] == UserCoursePeriod()) {
$id = $i;
break;
}
}
$grade_id = explode('-', $get_details[$id]['TITLE']);
$select = $grade_id[1];
} else
$select = '';
$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\' AND VALUE LIKE \'%_' . UserCoursePeriod() . '\''));
if (count($rounding))
$_SESSION['ROUNDING'] = rtrim($rounding[1]['VALUE'], '_' . UserCoursePeriod());
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) . '%';
}
if ($_REQUEST['modfunc'] == 'clearall')
$return = '<input type="hidden" name="values[' . $THIS_RET[STUDENT_ID] . '][percent]" value="" />';
}
return $return;
}
function _makeCAMarks($value, $column) {
// Text input for user to enter CA marks
return TextInput($value, "values[{$THIS_RET['STUDENT_ID']}][ca_marks]", '$value', 'size=4');
}
function _makeExamMarks($value) {
// Text input for user to enter exam marks
return TextInput($value, "values[{$THIS_RET['STUDENT_ID']}][exam_marks]", '', 'size=4');
}
function _makePercent($value, $column) {
global $THIS_RET, $current_RET, $grades_RET, $student_count, $tabindex, $import_RET;
if ($column == 'GRADE_PERCENT') {
if (!isset($_REQUEST['_openSIS_PDF'])) {
$student_count++;
$tabindex = $student_count;
if ($import_RET[$THIS_RET['STUDENT_ID']])
$return = TextInput($import_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT'] == '' ? '' : (_makeLetterGrade($import_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT'] / 100, "", User('STAFF_ID'), "%") + 0) . '%', "values[$THIS_RET[STUDENT_ID]][percent]", '', (0 ? 'readonly ' : '') . 'size=6 maxlength=6 tabindex=' . $tabindex, false);
else
$return = TextInput($current_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT'] == '' ? '' : (_makeLetterGrade($current_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT'] / 100, "", User('STAFF_ID'), "%") + 0) . '%', "values[$THIS_RET[STUDENT_ID]][percent]", '', (0 ? 'readonly ' : '') . 'size=6 maxlength=6 tabindex=' . $tabindex, !$current_RET[$THIS_RET['STUDENT_ID']][1]['DIV']);
} else
$return = $current_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT'] == '' ? '' : (_makeLetterGrade($current_RET[$THIS_RET['STUDENT_ID']][1]['GRADE_PERCENT'] / 100, "", User('STAFF_ID'), "%") + 0) . '%';
}
elseif ($column == 'REPORT_CARD_GRADE') {
if ($current_RET[$THIS_RET['STUDENT_ID']][1]['REPORT_CARD_GRADE_ID'] == '' && $import_RET[$THIS_RET['STUDENT_ID']]) {
$return = '<b>' . $grades_RET[$import_RET[$THIS_RET['STUDENT_ID']][1]['REPORT_CARD_GRADE_ID']][1]['TITLE'] . '</b>';
} else
$return = '<b>' . $grades_RET[$current_RET[$THIS_RET['STUDENT_ID']][1]['REPORT_CARD_GRADE_ID']][1]['TITLE'] . '</b>';
}
return $return;
}