|
|
|
@ -651,7 +651,7 @@ class Attendance |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!empty($attendance_id)) { |
|
|
|
|
$user_faults = $this->get_faults_of_user($uid, $attendance_id); |
|
|
|
|
$user_faults = $this->get_faults_of_user($uid, $attendance_id, $groupId); |
|
|
|
|
$value['attendance_result'] = $user_faults['faults'].'/'.$user_faults['total'].' ('.$user_faults['faults_porcent'].'%)'; |
|
|
|
|
$value['result_color_bar'] = $user_faults['color_bar']; |
|
|
|
|
} |
|
|
|
@ -935,19 +935,20 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get results of faults (absents) by user |
|
|
|
|
* @param int user id |
|
|
|
|
* @param int attendance id |
|
|
|
|
* @param int $user_id |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @param int $groupId |
|
|
|
|
* @return array results containing number of faults, total done attendance, |
|
|
|
|
* percent of faults and color depend on result (red, orange) |
|
|
|
|
*/ |
|
|
|
|
public function get_faults_of_user($user_id, $attendance_id) |
|
|
|
|
public function get_faults_of_user($user_id, $attendance_id, $groupId = null) |
|
|
|
|
{ |
|
|
|
|
// initializing database table and variables |
|
|
|
|
$user_id = intval($user_id); |
|
|
|
|
$attendance_id = intval($attendance_id); |
|
|
|
|
$results = array(); |
|
|
|
|
$attendance_data = $this->get_attendance_by_id($attendance_id); |
|
|
|
|
$calendar_count = self::get_number_of_attendance_calendar($attendance_id); |
|
|
|
|
$calendar_count = self::get_number_of_attendance_calendar($attendance_id, $groupId); |
|
|
|
|
$total_done_attendance = $attendance_data['attendance_qualify_max']; |
|
|
|
|
$attendance_user_score = $this->get_user_score($user_id, $attendance_id); |
|
|
|
|
|
|
|
|
@ -1323,15 +1324,32 @@ class Attendance |
|
|
|
|
/** |
|
|
|
|
* Get number of attendance calendar inside current attendance |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @return int number of dates in attendance calendar |
|
|
|
|
* @param int $groupId |
|
|
|
|
* @return int number of dates in attendance calendar |
|
|
|
|
*/ |
|
|
|
|
public static function get_number_of_attendance_calendar($attendance_id) |
|
|
|
|
public static function get_number_of_attendance_calendar($attendance_id, $groupId = 0) |
|
|
|
|
{ |
|
|
|
|
$tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
$calendarRelGroup = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR_REL_GROUP); |
|
|
|
|
$attendance_id = intval($attendance_id); |
|
|
|
|
$groupId = intval($groupId); |
|
|
|
|
|
|
|
|
|
$groupCondition = " group_id = $groupId "; |
|
|
|
|
if (empty($groupId)) { |
|
|
|
|
$groupCondition = "group_id IS NULL OR group_id = 0 "; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
$sql = "SELECT count(id) FROM $tbl_attendance_calendar |
|
|
|
|
WHERE c_id = $course_id AND attendance_id = '$attendance_id'"; |
|
|
|
|
$sql = "SELECT count(a.id) |
|
|
|
|
FROM $tbl_attendance_calendar a |
|
|
|
|
INNER JOIN $calendarRelGroup g |
|
|
|
|
ON (a.id = g.calendar_id AND a.c_id = g.c_id) |
|
|
|
|
WHERE |
|
|
|
|
a.c_id = $course_id AND |
|
|
|
|
attendance_id = '$attendance_id' AND |
|
|
|
|
$groupCondition |
|
|
|
|
"; |
|
|
|
|
|
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
$row = Database::fetch_row($rs); |
|
|
|
|
$count = $row[0]; |
|
|
|
|