From c28eb52862ee8d4cb75fde970b2d21081b169ec1 Mon Sep 17 00:00:00 2001 From: Gedion Woldeselassie Date: Tue, 21 Jul 2015 14:24:16 -0500 Subject: [PATCH] MDL-50894 lib/conditionlib: Occasional cron error Inhibit division by zero error warnings when rawgrademax and rawgrademin are equal. The change does not affect existing functional behavior. --- availability/condition/grade/classes/condition.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/availability/condition/grade/classes/condition.php b/availability/condition/grade/classes/condition.php index 8a4bd5bb996..440683cb05b 100644 --- a/availability/condition/grade/classes/condition.php +++ b/availability/condition/grade/classes/condition.php @@ -228,7 +228,9 @@ class condition extends \core_availability\condition { WHERE gi.courseid = ?', array($userid, $courseid)); foreach ($rs as $record) { - if (is_null($record->finalgrade)) { + // This function produces division by zero error warnings when rawgrademax and rawgrademin + // are equal. Below change does not affect function behavior, just avoids the warning. + if (is_null($record->finalgrade) || $record->rawgrademax == $record->rawgrademin) { // No grade = false. $cachedgrades[$record->id] = false; } else { @@ -249,7 +251,9 @@ class condition extends \core_availability\condition { // Just get current grade. $record = $DB->get_record('grade_grades', array( 'userid' => $userid, 'itemid' => $gradeitemid)); - if ($record && !is_null($record->finalgrade)) { + // This function produces division by zero error warnings when rawgrademax and rawgrademin + // are equal. Below change does not affect function behavior, just avoids the warning. + if ($record && !is_null($record->finalgrade) && $record->rawgrademax != $record->rawgrademin) { $score = (($record->finalgrade - $record->rawgrademin) * 100) / ($record->rawgrademax - $record->rawgrademin); } else {