From dccff557a5bff29fc99119b2f9a74e3a215e76f8 Mon Sep 17 00:00:00 2001
From: jfvanass <jeanfrancois@cblue.be>
Date: Fri, 23 Feb 2018 14:09:45 +0100
Subject: [PATCH] issue 161 : check if scoremax and scoremin are not 0

---
 .../src/Events/ScormScoreRawSubmitted.php     | 20 +++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/lib/translator/src/Events/ScormScoreRawSubmitted.php b/lib/translator/src/Events/ScormScoreRawSubmitted.php
index 8b601eb..379bb35 100644
--- a/lib/translator/src/Events/ScormScoreRawSubmitted.php
+++ b/lib/translator/src/Events/ScormScoreRawSubmitted.php
@@ -26,12 +26,24 @@ class ScormScoreRawSubmitted extends ScormEvent {
      * @override ModuleViewed
      */
     public function read(array $opts) {
-        $scoremax = $opts['scorm_scoes_track']['scoremax'];
-        $scoreraw = $opts['cmi_data']['cmivalue'];
-        $scoremin = $opts['scorm_scoes_track']['scoremin'];
+        $scoremax = null;
+        $scoreraw = null;
+        $scoremin = null;
         $scorescaled = null;
 
-        $scorescaled = $scoreraw >= 0 ? ($scoreraw / $scoremax) : ($scoreraw / $scoremin);
+        if (isset($opts['scorm_scoes_track']['scoremax'])) {
+            $scoremax = $opts['scorm_scoes_track']['scoremax'];
+        }
+        if (isset($opts['cmi_data']['cmivalue'])) {
+            $scoremax = $opts['cmi_data']['cmivalue'];
+        }
+        if (isset($opts['scorm_scoes_track']['scoremin'])) {
+            $scoremin = $opts['scorm_scoes_track']['scoremin'];
+        }
+
+        if ($scoremax !=0 && $scoremin !=0) {
+            $scorescaled = $scoreraw >= 0 ? ($scoreraw / $scoremax) : ($scoreraw / $scoremin);
+        }
 
         return [array_merge(parent::read($opts)[0], [
             'recipe' => 'scorm_scoreraw_submitted',
-- 
GitLab