function get_maxgrade($userid, $course)
{
    global $CFG, $DB;
    $sql = "SELECT l.id, l.statusid, l.statusset\n\t\t\tFROM {attendance_log} l\n\t\t\tJOIN {attendance_sessions} s\n\t\t\t  ON l.sessionid = s.id\n\t\t   WHERE l.studentid = ?\n\t\t     AND s.courseid  = ?\n\t\t     AND s.sessdate >= ?";
    $logs = $DB->get_records_sql($sql, array($userid, $course->id, $course->startdate));
    $maxgrade = 0;
    if ($logs) {
        $stat_grades = $DB->get_records_menu('attendance_statuses', array('courseid' => $course->id), 'id', 'id, grade');
        foreach ($logs as $log) {
            $ids = array_flip(explode(',', $log->statusset));
            //			$grades = array_intersect_key($stat_grades, $ids); // require PHP 5.1.0 and higher
            $grades = local_array_intersect_key($stat_grades, $ids);
            //temporary solution, for support PHP 4.3.0 which minimal requirement for Moodle 1.9.x
            $maxgrade += max($grades);
        }
    }
    return $maxgrade;
}
function get_maxgrade($userid, $course)
{
    global $CFG;
    $logs = get_records_sql("\n            SELECT l.id, l.statusid, l.statusset\n            FROM {$CFG->prefix}attendance_log l\n            JOIN {$CFG->prefix}attendance_sessions s\n            ON l.sessionid = s.id\n            WHERE l.studentid = {$userid}\n            AND s.courseid  = {$course->id}\n            AND s.sessdate >= {$course->startdate}");
    $maxgrade = 0;
    if ($logs) {
        $stat_grades = records_to_menu(get_records('attendance_statuses', 'courseid', $course->id), 'id', 'grade');
        foreach ($logs as $log) {
            $ids = array_flip(explode(',', $log->statusset));
            //			$grades = array_intersect_key($stat_grades, $ids); // require PHP 5.1.0 and higher
            $grades = local_array_intersect_key($stat_grades, $ids);
            //temporary solution, for support PHP 4.3.0 which minimal requirement for Moodle 1.9.x
            $maxgrade += max($grades);
        }
    }
    return $maxgrade;
}