|
|
|
@ -1349,11 +1349,19 @@ class CourseManager |
|
|
|
|
$sql .= ' LEFT JOIN ' . Database::get_main_table(TABLE_MAIN_ACCESS_URL_REL_USER) . ' au ON (au.user_id = user.user_id) '; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$extraFieldWasAdded = false; |
|
|
|
|
if ($return_count && $resumed_report) { |
|
|
|
|
foreach ($extra_field as $extraField) { |
|
|
|
|
$extraFieldInfo = UserManager::get_extra_field_information_by_name($extraField); |
|
|
|
|
$sql .= ' LEFT JOIN ' . Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES) . ' as ufv |
|
|
|
|
ON (user.user_id = ufv.user_id AND (field_id = ' . $extraFieldInfo['id'] . ' OR field_id IS NULL ) )'; |
|
|
|
|
if (!empty($extraFieldInfo)) { |
|
|
|
|
$fieldValuesTable = Database::get_main_table(TABLE_MAIN_USER_FIELD_VALUES); |
|
|
|
|
$sql .= ' LEFT JOIN '.$fieldValuesTable.' as ufv |
|
|
|
|
ON ( |
|
|
|
|
user.user_id = ufv.user_id AND |
|
|
|
|
(field_id = '.$extraFieldInfo['id'].' OR field_id IS NULL) |
|
|
|
|
)'; |
|
|
|
|
$extraFieldWasAdded = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1364,7 +1372,7 @@ class CourseManager |
|
|
|
|
$sql .= " AND (access_url_id = $current_access_url_id ) "; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ($return_count && $resumed_report) { |
|
|
|
|
if ($return_count && $resumed_report && $extraFieldWasAdded) { |
|
|
|
|
$sql .= ' AND field_id IS NOT NULL GROUP BY field_value '; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1427,29 +1435,38 @@ class CourseManager |
|
|
|
|
$course_code = isset($user['code']) ? $user['code'] : null; |
|
|
|
|
|
|
|
|
|
if ($add_reports) { |
|
|
|
|
|
|
|
|
|
if ($resumed_report) { |
|
|
|
|
foreach ($extra_fields as $extra) { |
|
|
|
|
if (in_array($extra['1'], $extra_field)) { |
|
|
|
|
$user_data = UserManager::get_extra_user_data_by_field($user['user_id'], $extra['1']); |
|
|
|
|
break; |
|
|
|
|
$extra = array(); |
|
|
|
|
|
|
|
|
|
if (!empty($extra_fields)) { |
|
|
|
|
foreach ($extra_fields as $extra) { |
|
|
|
|
if (in_array($extra['1'], $extra_field)) { |
|
|
|
|
$user_data = UserManager::get_extra_user_data_by_field( |
|
|
|
|
$user['user_id'], |
|
|
|
|
$extra['1'] |
|
|
|
|
); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (empty($user_data[$extra['1']])) { |
|
|
|
|
$row_key = '-1'; |
|
|
|
|
$name = '-'; |
|
|
|
|
} else { |
|
|
|
|
$row_key = $user_data[$extra['1']]; |
|
|
|
|
$name = $user_data[$extra['1']]; |
|
|
|
|
$row_key = '-1'; |
|
|
|
|
$name = '-'; |
|
|
|
|
|
|
|
|
|
if (!empty($extra)) { |
|
|
|
|
if (!empty($user_data[$extra['1']])) { |
|
|
|
|
$row_key = $user_data[$extra['1']]; |
|
|
|
|
$name = $user_data[$extra['1']]; |
|
|
|
|
$users[$row_key]['extra_'.$extra['1']] = $name; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$users[$row_key]['extra_' . $extra['1']] = $name; |
|
|
|
|
$users[$row_key]['training_hours'] += Tracking::get_time_spent_on_the_course( |
|
|
|
|
$user['user_id'], |
|
|
|
|
$courseId, |
|
|
|
|
$sessionId |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$users[$row_key]['count_users'] += $counter; |
|
|
|
|
|
|
|
|
|
$registered_users_with_extra_field = 0; |
|
|
|
@ -1518,6 +1535,7 @@ class CourseManager |
|
|
|
|
null, |
|
|
|
|
$sessionId |
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
$report_info['certificate'] = Display::label(get_lang('No')); |
|
|
|
|
if (isset($category[0]) && $category[0]->is_certificate_available($user['user_id'])) { |
|
|
|
|
$report_info['certificate'] = Display::label(get_lang('Yes'), 'success'); |
|
|
|
|