Fix sql errors see BT#9433

1.10.x
Julio Montoya 10 years ago
parent 1ad28f79eb
commit 1ae6b8bbc5
  1. 48
      main/inc/lib/course.lib.php

@ -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');

Loading…
Cancel
Save