if (scormcloud_hascapabilitytolaunch($scormcloud->course) && $USER->id == $reg->userid) {
     // Get the results from the cloud.
     $scormservice = scormcloud_get_service();
     $regservice = $scormservice->getRegistrationService();
     $resultsxml = $regservice->GetRegistrationResult($regid, 0, 'xml');
     $results = simplexml_load_string($resultsxml);
     $score = $results->registrationreport->score;
     if ($score == 'unknown') {
         $score = 0;
     }
     $log->logDebug('Updating Moodle gradebook ' . $reg->userid . ' - ' . $scormcloud->course . ' - ' . $score);
     if (scormcloud_grade_item_update($reg->userid, $reg->scormcloudid, $score)) {
         $log->logInfo('Updated Moodle gradebook for course ' . $scormcloud->course);
     } else {
         $log->logWarn('Error updating Moodle gradebook for course ' . $scormcloud->course . '. Retrying.');
         if (scormcloud_grade_item_update($reg->userid, $reg->scormcloudid, $score)) {
             $log->logInfo('Updated Moodle gradebook for course ' . $scormcloud->course . ' after successful retry.');
         } else {
             $log->logError('Second attempt to update Moodle gradebook for course ' . $scormcloud->course . ' failed.');
         }
     }
     $log->logDebug('Updating local scormcloud_registrations.');
     $log->logDebug('registrationreport->complete = ' . $results->registrationreport->complete);
     $reg->completion = scormcloud_getcomp($results->registrationreport->complete);
     $log->logDebug('registrationreport->sucess = ' . $results->registrationreport->success);
     $reg->satisfaction = scormcloud_getsat($results->registrationreport->success);
     $reg->totaltime = (int) $results->registrationreport->totaltime;
     $reg->score = (int) $results->registrationreport->score;
     if ($result = $DB->update_record('scormcloud_registrations', $reg)) {
         $log->logInfo('Updated scormcloud_registration.');
     } else {
if ($regid != null) {
    $log->logInfo('rollupregistration.php called : regid = ' . $regid);
    if ($reg = $DB->get_record("scormcloud_registrations", array("regid" => $regid))) {
        $log->logInfo('Found scormcloud_registration ' . $regid);
        if ($scormcloud = $DB->get_record("scormcloud", array("id" => $reg->scormcloudid))) {
            if (!scormcloud_hascapabilitytolaunch($scormcloud->course)) {
                error("You do not have permission to launch this course.");
            }
            $log->logInfo('Found scormcloud id ' . $reg->scormcloudid);
            // Get the results from the cloud.
            $scormservice = scormcloud_get_service();
            $regservice = $scormservice->getRegistrationService();
            $resultsxml = $regservice->GetRegistrationResult($regid, 0, 'xml');
            $results = simplexml_load_string($resultsxml);
            $log->logInfo('updating Moodle gradebook ' . $reg->userid . ' - ' . $scormcloud->course . ' - ' . $results->registrationreport->score);
            scormcloud_grade_item_update($reg->userid, $reg->scormcloudid, $results->registrationreport->score);
            $log->logInfo('attempting to update local scormcloud_registrations table');
            // Repopulate the $reg we got above to update it here.
            $reg->completion = scormcloud_getcomp($results->registrationreport->complete);
            $reg->satisfaction = scormcloud_getsat($results->registrationreport->success);
            $reg->totaltime = (int) $results->registrationreport->totaltime;
            $reg->score = (int) $results->registrationreport->score;
            if ($result = $DB->update_record('scormcloud_registrations', $reg)) {
                $log->logInfo('scormcloud_registrations updated');
            } else {
                $log->logInfo('error updating scormcloud_registrations');
            }
        }
    } else {
        $log->logInfo('ERROR : get_record("scormcloud_registrations", "regid", "' . $regid . '")');
    }