get_filtered_sessions and get_user_statuses_stat as per community
authorJoseph Baxter <joseph.baxter@nottingham.ac.uk>
Tue, 3 Jun 2014 14:28:54 +0000 (15:28 +0100)
committerJoseph Baxter <joseph.baxter@nottingham.ac.uk>
Tue, 3 Jun 2014 14:28:54 +0000 (15:28 +0100)
locallib.php

index 1d829e5..5a4cc8f 100644 (file)
@@ -702,8 +702,6 @@ class attendance {
 
         if ($this->pageparams->startdate && $this->pageparams->enddate) {
             $where = "attendanceid = :aid AND sessdate >= :csdate AND sessdate >= :sdate AND sessdate < :edate";
-        } else if ($this->pageparams->enddate) {
-            $where = "attendanceid = :aid AND sessdate >= :csdate AND sessdate < :edate";
         } else {
             $where = "attendanceid = :aid AND sessdate >= :csdate";
         }
@@ -1188,32 +1186,16 @@ class attendance {
                            ats.sessdate >= :cstartdate AND
                            al.studentid = :uid".$period."
                   GROUP BY al.statusid";
-
+                
             }
-        }
 
-        // Make the filter array into a SQL string.
-        if (!empty($processed_filters)) {
-            $processed_filters = 'AND '.implode(' AND ', $processed_filters);
-        } else {
-            $processed_filters = '';
-        }
+            if ($filters !== null) { // We do not want to cache, or use a cached version of the results when a filter is set.
+                return $DB->get_records_sql($qry, $params);
+            } else if (!array_key_exists($userid, $this->userstatusesstat)) {
+                // Not filtered so if we do not already have them do the query.
+                $this->userstatusesstat[$userid] = $DB->get_records_sql($qry, $params);
+            }
 
-        $qry = "SELECT al.statusid, count(al.statusid) AS stcnt
-                    FROM {attendance_log} al
-                    JOIN {attendance_sessions} ats
-                      ON al.sessionid = ats.id
-                   WHERE ats.attendanceid = :aid AND
-                         ats.sessdate >= :cstartdate AND
-                         al.studentid = :uid
-                         $processed_filters
-                GROUP BY al.statusid";
-
-        if ($filters !== null) { // We do not want to cache, or use a cached version of the results when a filter is set.
-            return $DB->get_records_sql($qry, $params);
-        } else if (!array_key_exists($userid, $this->userstatusesstat)) {
-            // Not filtered so if we do not already have them do the query.
-            $this->userstatusesstat[$userid] = $DB->get_records_sql($qry, $params);
         }
 
         // Return the cached stats.