/** * Create a new Enrollment instance. * * @param int $idCourse * @param int $idUser * @return int $idEnrollment */ public static function enroll($idCourse, $idUser, $end_at = Null) { $app = \Slim\Slim::getInstance(); $user = UserController::findUser($idUser); $course = CourseController::getCourseDetails($idCourse); if ($end_at && date('Y-m-d H:i:s') > $end_at) { $app->halt("400", json_encode("Enrollment already expired. Please check the end date.")); } $data = array('user_id' => $idUser, 'course_id' => $idCourse); $enrollment = Enrollment::firstOrNew($data); // if there is scorm cloud id then enroll in scorm cloud if (isset($course->scorm_id)) { $scormRegistrationId = ScormCloudAPIController::register($idCourse, $idUser); if (isset($scormRegistrationId)) { $enrollment->scorm_registration_id = $scormRegistrationId; $enrollment->scorm_status = "enrolled"; } } if (!$enrollment->id) { $enrollment->isSafety = $course->safety; $enrollment->end_at = $end_at; $enrollment->save(); } else { $enrollment->end_at = $end_at; //echo $enrollment->end_at; $enrollment->save(); } return $enrollment->id; }