|
|
|
|
@ -240,8 +240,6 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface |
|
|
|
|
$expendedTimeMax = $plugin->get('yearly_hours_limit'); |
|
|
|
|
$expendedTime = 0; |
|
|
|
|
|
|
|
|
|
$numberOfApprovedInductionSessions = 0; |
|
|
|
|
|
|
|
|
|
if (is_array($sessions) && count($sessions) > 0) { |
|
|
|
|
foreach ($sessions as $session) { |
|
|
|
|
$costField = $extra->get_values_by_handler_and_field_variable($session['id'], 'cost'); |
|
|
|
|
@ -249,45 +247,6 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface |
|
|
|
|
|
|
|
|
|
$teachingHoursField = $extra->get_values_by_handler_and_field_variable($session['id'], 'teaching_hours'); |
|
|
|
|
$expendedTime += $teachingHoursField['field_value']; |
|
|
|
|
|
|
|
|
|
$inductionField = $extra->get_values_by_handler_and_field_variable( |
|
|
|
|
$session['id'], |
|
|
|
|
'is_induccion_session' |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if ($inductionField === false) { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$isInductionSession = boolval($inductionField['field_value']); |
|
|
|
|
|
|
|
|
|
if ($isInductionSession) { |
|
|
|
|
$numberOfApprovedCourses = 0; |
|
|
|
|
$sessionCourses = SessionManager::get_course_list_by_session_id($session['id']); |
|
|
|
|
|
|
|
|
|
foreach ($sessionCourses as $course) { |
|
|
|
|
$courseCategories = Category::load( |
|
|
|
|
null, |
|
|
|
|
null, |
|
|
|
|
$course['code'], |
|
|
|
|
null, |
|
|
|
|
null, |
|
|
|
|
$session['id'], |
|
|
|
|
false |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
count($courseCategories) > 0 && |
|
|
|
|
Category::userIsApprovedInCourse($userId, $courseCategories[0]) |
|
|
|
|
) { |
|
|
|
|
$numberOfApprovedCourses++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($numberOfApprovedCourses === count($sessionCourses)) { |
|
|
|
|
$numberOfApprovedInductionSessions++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -334,6 +293,7 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$checkInduction = $plugin->get('check_induction'); |
|
|
|
|
$numberOfApprovedInductionSessions = $this->getApprovedInductionSessions($userId); |
|
|
|
|
$completedInduction = $numberOfApprovedInductionSessions > 0; |
|
|
|
|
|
|
|
|
|
if ($checkInduction == 'true' && !$completedInduction) { |
|
|
|
|
@ -1312,4 +1272,59 @@ class AdvancedSubscriptionPlugin extends Plugin implements HookPluginInterface |
|
|
|
|
|
|
|
|
|
return $templateContent; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get the count of approved induction sessions by a user |
|
|
|
|
* @param int $userId The user id |
|
|
|
|
* @return int The count of approved sessions |
|
|
|
|
*/ |
|
|
|
|
private function getApprovedInductionSessions($userId) |
|
|
|
|
{ |
|
|
|
|
$sql = "SELECT s.id FROM session AS s " |
|
|
|
|
. "INNER JOIN session_field_values AS sfv ON s.id = sfv.session_id " |
|
|
|
|
. "INNER JOIN session_field AS sf ON sfv.field_id = sf.id " |
|
|
|
|
. "INNER JOIN session_rel_user AS su ON s.id = su.id_session " |
|
|
|
|
. "WHERE sf.field_variable = 'is_induccion_session' " |
|
|
|
|
. "AND su.relation_type = 0 " |
|
|
|
|
. "AND su.id_user = " . intval($userId); |
|
|
|
|
|
|
|
|
|
$result = Database::query($sql); |
|
|
|
|
|
|
|
|
|
if ($result === false) { |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$numberOfApproved = 0; |
|
|
|
|
|
|
|
|
|
while ($session = Database::fetch_assoc($result)) { |
|
|
|
|
$numberOfApprovedCourses = 0; |
|
|
|
|
$courses = SessionManager::get_course_list_by_session_id($session['id']); |
|
|
|
|
|
|
|
|
|
foreach ($courses as $course) { |
|
|
|
|
$courseCategories = Category::load( |
|
|
|
|
null, |
|
|
|
|
null, |
|
|
|
|
$course['code'], |
|
|
|
|
null, |
|
|
|
|
null, |
|
|
|
|
$session['id'], |
|
|
|
|
false |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
if ( |
|
|
|
|
count($courseCategories) > 0 && |
|
|
|
|
Category::userIsApprovedInCourse($userId, $courseCategories[0]) |
|
|
|
|
) { |
|
|
|
|
$numberOfApprovedCourses++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($numberOfApprovedCourses === count($courses)) { |
|
|
|
|
$numberOfApproved++; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return $numberOfApproved; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|