summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Manager/ScormManager.php20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Manager/ScormManager.php b/src/Manager/ScormManager.php
index 5f3287b..085284d 100644
--- a/src/Manager/ScormManager.php
+++ b/src/Manager/ScormManager.php
@@ -384,6 +384,26 @@ class ScormManager
->firstOrFail();
}
+ public function checkUserIsCompletedScorm($scormId, $userId) {
+
+ $completedSco = [];
+ $scos = ScormScoModel::where('scorm_id', $scormId)->get();
+
+ foreach ($scos as $sco) {
+ $scoTracking = ScormScoTrackingModel::where('sco_id', $sco->id)->where('user_id', $userId)->first();
+
+ if ($scoTracking && ($scoTracking->lesson_status == 'passed' || $scoTracking->lesson_status == 'completed')) {
+ $completedSco[] = true;
+ }
+ }
+
+ if (count($completedSco) == $scos->count()) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
public function updateScoTracking($scoUuid, $userId, $data)
{
$tracking = $this->createScoTracking($scoUuid, $userId);