ORDER BY g.userid";
// group the results by userid and aggregate the grades for this user
- if ($rs = $DB->get_recordset_sql($sql, $params)) {
+ $rs = $DB->get_recordset_sql($sql, $params);
+ if ($rs->valid()) {
$prevuser = 0;
$grade_values = array();
$excluded = array();
$oldgrade = $used;
}
}
- $rs->close();
$this->aggregate_grades($prevuser, $items, $grade_values, $oldgrade, $excluded);//the last one
}
+ $rs->close();
return true;
}
$now = time(); // no rounding needed, this is not supposed to be called every 10 seconds
list($usql, $params) = $DB->get_in_or_equal($items);
$params[] = $now;
- if ($rs = $DB->get_recordset_select('grade_grades', "itemid $usql AND locked = 0 AND locktime > 0 AND locktime < ?", $params)) {
- foreach ($rs as $grade) {
- $grade_grade = new grade_grade($grade, false);
- $grade_grade->locked = time();
- $grade_grade->update('locktime');
- }
- $rs->close();
+ $rs = $DB->get_recordset_select('grade_grades', "itemid $usql AND locked = 0 AND locktime > 0 AND locktime < ?", $params);
+ foreach ($rs as $grade) {
+ $grade_grade = new grade_grade($grade, false);
+ $grade_grade->locked = time();
+ $grade_grade->update('locktime');
}
+ $rs->close();
}
/**
$return = true;
// group the grades by userid and use formula on the group
- if ($rs = $DB->get_recordset_sql($sql, $params)) {
+ $rs = $DB->get_recordset_sql($sql, $params);
+ if ($rs->valid()) {
$prevuser = 0;
$grade_records = array();
$oldgrade = null;
}
$grade_records['gi'.$used->itemid] = $used->finalgrade;
}
- $rs->close();
if (!$this->use_formula($prevuser, $grade_records, $useditems, $oldgrade)) {
$return = false;
}
}
+ $rs->close();
return $return;
}