global $DB;
if (!array_key_exists($userid, $this->userstatusesstat)) {
- $qry = "SELECT al.statusid, count(al.statusid) AS stcnt
+ if (!empty($this->cm->groupmode)) {
+ $qry = "SELECT al.statusid, count(al.statusid) AS stcnt
+ FROM {attendance_log} al
+ JOIN {attendance_sessions} ats ON al.sessionid = ats.id
+ JOIN {groups_members} gm ON gm.userid = al.studentid AND gm.groupid = ats.groupid
+ WHERE ats.attendanceid = :aid AND
+ ats.sessdate >= :cstartdate AND
+ al.studentid = :uid
+ GROUP BY al.statusid";
+ $params = array(
+ 'aid' => $this->id,
+ 'cstartdate' => $this->course->startdate,
+ 'uid' => $userid);
+ } else {
+ $qry = "SELECT al.statusid, count(al.statusid) AS stcnt
FROM {attendance_log} al
JOIN {attendance_sessions} ats
ON al.sessionid = ats.id
ats.sessdate >= :cstartdate AND
al.studentid = :uid
GROUP BY al.statusid";
- $params = array(
+ $params = array(
'aid' => $this->id,
'cstartdate' => $this->course->startdate,
'uid' => $userid);
+ }
$this->userstatusesstat[$userid] = $DB->get_records_sql($qry, $params);
}
} else {
$where = "ats.attendanceid = :aid AND ats.sessdate >= :csdate";
}
+ if (!empty($this->cm->groupmode)) {
+ $sql = "SELECT ats.id, ats.sessdate, ats.groupid, al.statusid, al.remarks
+ FROM {attendance_sessions} ats
+ JOIN {attendance_log} al ON ats.id = al.sessionid AND al.studentid = :uid
+ JOIN {groups_members} gm ON gm.userid = al.studentid AND gm.groupid = ats.groupid
+ WHERE $where
+ ORDER BY ats.sessdate ASC";
+
+ $params = array(
+ 'uid' => $userid,
+ 'aid' => $this->id,
+ 'csdate' => $this->course->startdate,
+ 'sdate' => $this->pageparams->startdate,
+ 'edate' => $this->pageparams->enddate);
- $sql = "SELECT ats.id, ats.sessdate, ats.groupid, al.statusid, al.remarks
+ } else {
+ $sql = "SELECT ats.id, ats.sessdate, ats.groupid, al.statusid, al.remarks
FROM {attendance_sessions} ats
JOIN {attendance_log} al
ON ats.id = al.sessionid AND al.studentid = :uid
WHERE $where
ORDER BY ats.sessdate ASC";
- $params = array(
+ $params = array(
'uid' => $userid,
'aid' => $this->id,
'csdate' => $this->course->startdate,
'sdate' => $this->pageparams->startdate,
'edate' => $this->pageparams->enddate);
+ }
$sessions = $DB->get_records_sql($sql, $params);
return $sessions;