|
@ -186,25 +186,24 @@ class mod_attendance_summary { |
|
|
$where .= ' AND ats.groupid = 0'; |
|
|
$where .= ' AND ats.groupid = 0'; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
$sql = "SELECT userid, COUNT(*) AS numtakensessions, SUM(grade) AS points, SUM(maxgrade) AS maxpoints |
|
|
$sql = " SELECT atl.studentid AS userid, COUNT(DISTINCT ats.id) AS numtakensessions, |
|
|
FROM (SELECT atl.studentid AS userid, ats.id AS sessionid, stg.grade, stm.maxgrade |
|
|
SUM(stg.grade) AS points, SUM(stm.maxgrade) AS maxpoints |
|
|
FROM {attendance_sessions} ats |
|
|
FROM {attendance_sessions} ats |
|
|
JOIN {attendance_log} atl ON (atl.sessionid = ats.id) |
|
|
JOIN {attendance_log} atl ON (atl.sessionid = ats.id) |
|
|
JOIN {attendance_statuses} stg ON (stg.id = atl.statusid AND stg.deleted = 0 AND stg.visible = 1) |
|
|
JOIN {attendance_statuses} stg ON (stg.id = atl.statusid AND stg.deleted = 0 AND stg.visible = 1) |
|
|
JOIN (SELECT setnumber, MAX(grade) AS maxgrade |
|
|
JOIN (SELECT setnumber, MAX(grade) AS maxgrade |
|
|
FROM {attendance_statuses} |
|
|
FROM {attendance_statuses} |
|
|
WHERE attendanceid = :attid2 |
|
|
WHERE attendanceid = :attid2 |
|
|
AND deleted = 0 |
|
|
AND deleted = 0 |
|
|
AND visible = 1 |
|
|
AND visible = 1 |
|
|
GROUP BY setnumber) stm |
|
|
GROUP BY setnumber) stm |
|
|
ON (stm.setnumber = ats.statusset) |
|
|
ON (stm.setnumber = ats.statusset) |
|
|
{$joingroup} |
|
|
{$joingroup} |
|
|
WHERE ats.attendanceid = :attid |
|
|
WHERE ats.attendanceid = :attid |
|
|
AND ats.sessdate >= :cstartdate |
|
|
AND ats.sessdate >= :cstartdate |
|
|
AND ats.lasttakenby != 0 |
|
|
AND ats.lasttakenby != 0 |
|
|
{$where} |
|
|
{$where} |
|
|
) sess |
|
|
GROUP BY atl.studentid"; |
|
|
GROUP BY userid"; |
|
|
|
|
|
$this->userspoints = $DB->get_records_sql($sql, $params); |
|
|
$this->userspoints = $DB->get_records_sql($sql, $params); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|