|
|
|
@ -427,8 +427,8 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Restore attendance |
|
|
|
|
* @param int|array one or many attendances id |
|
|
|
|
* @return int affected rows |
|
|
|
|
* @param int|array one or many attendances id |
|
|
|
|
* @return int affected rows |
|
|
|
|
*/ |
|
|
|
|
public function attendance_restore($attendance_id) |
|
|
|
|
{ |
|
|
|
@ -477,8 +477,8 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Delete attendances |
|
|
|
|
* @param int|array $attendance_id one or many attendances id |
|
|
|
|
* @return int affected rows |
|
|
|
|
* @param int|array $attendance_id one or many attendances id |
|
|
|
|
* @return int affected rows |
|
|
|
|
*/ |
|
|
|
|
public function attendance_delete($attendance_id) |
|
|
|
|
{ |
|
|
|
@ -529,10 +529,10 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Changes visibility |
|
|
|
|
* @param int|array $attendanceId one or many attendances id |
|
|
|
|
* @param int status |
|
|
|
|
* @param int|array $attendanceId one or many attendances id |
|
|
|
|
* @param int $status |
|
|
|
|
* |
|
|
|
|
* @return int affected rows |
|
|
|
|
* @return int affected rows |
|
|
|
|
*/ |
|
|
|
|
public function changeVisibility($attendanceId, $status = 1) |
|
|
|
|
{ |
|
|
|
@ -590,6 +590,8 @@ class Attendance |
|
|
|
|
* Lock or unlock an attendance |
|
|
|
|
* @param int attendance id |
|
|
|
|
* @param bool True to lock or false otherwise |
|
|
|
|
* |
|
|
|
|
* @return int |
|
|
|
|
*/ |
|
|
|
|
public function lock_attendance($attendance_id, $lock = true) |
|
|
|
|
{ |
|
|
|
@ -618,16 +620,15 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get registered users inside current course |
|
|
|
|
* @param int $attendance_id attendance id for showing attendance result field (optional) |
|
|
|
|
* @param int $attendance_id attendance id for showing attendance result field (optional) |
|
|
|
|
* @param int $groupId |
|
|
|
|
* @return array users data |
|
|
|
|
* @return array users data |
|
|
|
|
*/ |
|
|
|
|
public function get_users_rel_course($attendance_id = 0, $groupId = null) |
|
|
|
|
{ |
|
|
|
|
$current_session_id = api_get_session_id(); |
|
|
|
|
$current_course_id = api_get_course_id(); |
|
|
|
|
$currentCourseIntId = api_get_course_int_id(); |
|
|
|
|
|
|
|
|
|
$studentInGroup = array(); |
|
|
|
|
|
|
|
|
|
if (!empty($current_session_id)) { |
|
|
|
@ -697,7 +698,11 @@ class Attendance |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!empty($attendance_id)) { |
|
|
|
|
$user_faults = $this->get_faults_of_user($uid, $attendance_id, $groupId); |
|
|
|
|
$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']; |
|
|
|
|
} |
|
|
|
@ -719,10 +724,10 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* add attendances sheet inside table |
|
|
|
|
* @param int $calendar_id attendance calendar id |
|
|
|
|
* @param array $users_present present users during current class |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @return int affected rows |
|
|
|
|
* @param int $calendar_id attendance calendar id |
|
|
|
|
* @param array $users_present present users during current class |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @return int affected rows |
|
|
|
|
*/ |
|
|
|
|
public function attendance_sheet_add($calendar_id, $users_present, $attendance_id) |
|
|
|
|
{ |
|
|
|
@ -829,9 +834,8 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* update users' attendance results |
|
|
|
|
* @param array $user_ids registered users inside current course |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @return void |
|
|
|
|
* @param array $user_ids registered users inside current course |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
*/ |
|
|
|
|
public function update_users_results($user_ids, $attendance_id) |
|
|
|
|
{ |
|
|
|
@ -967,8 +971,8 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get number of done attendances inside current sheet |
|
|
|
|
* @param int attendance id |
|
|
|
|
* @return int number of done attendances |
|
|
|
|
* @param int attendance id |
|
|
|
|
* @return int number of done attendances |
|
|
|
|
*/ |
|
|
|
|
public static function get_done_attendance_calendar($attendance_id) |
|
|
|
|
{ |
|
|
|
@ -994,7 +998,8 @@ class Attendance |
|
|
|
|
* @param int $user_id |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @param int $groupId |
|
|
|
|
* @return array results containing number of faults, total done attendance, |
|
|
|
|
* |
|
|
|
|
* @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, $groupId = null) |
|
|
|
@ -1050,8 +1055,8 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get results of faults average for all courses by user |
|
|
|
|
* @param int $user_id |
|
|
|
|
* @return array results containing number of faults, total done attendance, |
|
|
|
|
* @param int $user_id |
|
|
|
|
* @return array results containing number of faults, total done attendance, |
|
|
|
|
* percentage of faults and color depend on result (red, orange) |
|
|
|
|
*/ |
|
|
|
|
public function get_faults_average_inside_courses($user_id) |
|
|
|
@ -1092,7 +1097,7 @@ class Attendance |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$porcent = $total_weight > 0 ? round(($total_faults * 100) / $total_weight, 0) : 0; |
|
|
|
|
$results['faults'] = $total_faults; |
|
|
|
|
$results['faults'] = $total_faults; |
|
|
|
|
$results['total'] = $total_weight; |
|
|
|
|
$results['porcent'] = $porcent; |
|
|
|
|
|
|
|
|
@ -1101,14 +1106,17 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get results of faults average by course |
|
|
|
|
* @param int $user_id |
|
|
|
|
* @param string $course_code |
|
|
|
|
* @param int Session id (optional) |
|
|
|
|
* @return array results containing number of faults, |
|
|
|
|
* @param int $user_id |
|
|
|
|
* @param string $course_code |
|
|
|
|
* @param int Session id (optional) |
|
|
|
|
* @return array results containing number of faults, |
|
|
|
|
* total done attendance, porcent of faults and color depend on result (red, orange) |
|
|
|
|
*/ |
|
|
|
|
public function get_faults_average_by_course($user_id, $course_code, $session_id = null) |
|
|
|
|
{ |
|
|
|
|
public function get_faults_average_by_course( |
|
|
|
|
$user_id, |
|
|
|
|
$course_code, |
|
|
|
|
$session_id = null |
|
|
|
|
) { |
|
|
|
|
// Database tables and variables |
|
|
|
|
$course_info = api_get_course_info($course_code); |
|
|
|
|
$tbl_attendance_result = Database::get_course_table(TABLE_ATTENDANCE_RESULT); |
|
|
|
@ -1138,7 +1146,7 @@ class Attendance |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$porcent = $total_weight > 0 ? round(($total_faults * 100) / $total_weight, 0) : 0; |
|
|
|
|
$results['faults'] = $total_faults; |
|
|
|
|
$results['faults'] = $total_faults; |
|
|
|
|
$results['total'] = $total_weight; |
|
|
|
|
$results['porcent'] = $porcent; |
|
|
|
|
|
|
|
|
@ -1147,16 +1155,23 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get registered users' attendance sheet inside current course |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @param int $user_id for showing data for only one user (optional) |
|
|
|
|
* @return array users attendance sheet data |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @param int $user_id for showing data for only one user (optional) |
|
|
|
|
* @return array users attendance sheet data |
|
|
|
|
*/ |
|
|
|
|
public function get_users_attendance_sheet($attendance_id, $user_id = 0, $groupId = null) |
|
|
|
|
{ |
|
|
|
|
public function get_users_attendance_sheet( |
|
|
|
|
$attendance_id, |
|
|
|
|
$user_id = 0, |
|
|
|
|
$groupId = null |
|
|
|
|
) { |
|
|
|
|
$tbl_attendance_sheet = Database::get_course_table(TABLE_ATTENDANCE_SHEET); |
|
|
|
|
$tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
|
|
|
|
|
$attendance_calendar = $this->get_attendance_calendar($attendance_id, 'all', null, $groupId); |
|
|
|
|
$attendance_calendar = $this->get_attendance_calendar( |
|
|
|
|
$attendance_id, |
|
|
|
|
'all', |
|
|
|
|
null, |
|
|
|
|
$groupId |
|
|
|
|
); |
|
|
|
|
$calendar_ids = array(); |
|
|
|
|
// get all dates from calendar by current attendance |
|
|
|
|
foreach ($attendance_calendar as $cal) { |
|
|
|
@ -1215,16 +1230,16 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get next attendance calendar without presences (done attendances) |
|
|
|
|
* @param int attendance id |
|
|
|
|
* @return int attendance calendar id |
|
|
|
|
* @param int attendance id |
|
|
|
|
* @return int attendance calendar id |
|
|
|
|
*/ |
|
|
|
|
public function get_next_attendance_calendar_id($attendance_id) |
|
|
|
|
{ |
|
|
|
|
$tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
$table = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
$attendance_id = intval($attendance_id); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
|
|
|
|
|
$sql = "SELECT id FROM $tbl_attendance_calendar |
|
|
|
|
$sql = "SELECT id FROM $table |
|
|
|
|
WHERE |
|
|
|
|
c_id = $course_id AND |
|
|
|
|
attendance_id = '$attendance_id' AND |
|
|
|
@ -1243,15 +1258,15 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get next attendance calendar datetime without presences (done attendances) |
|
|
|
|
* @param int attendance id |
|
|
|
|
* @return int UNIX time format datetime |
|
|
|
|
* @param int attendance id |
|
|
|
|
* @return int UNIX time format datetime |
|
|
|
|
*/ |
|
|
|
|
public function get_next_attendance_calendar_datetime($attendance_id) |
|
|
|
|
{ |
|
|
|
|
$tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
$table = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
$attendance_id = intval($attendance_id); |
|
|
|
|
$sql = "SELECT id, date_time FROM $tbl_attendance_calendar |
|
|
|
|
$sql = "SELECT id, date_time FROM $table |
|
|
|
|
WHERE |
|
|
|
|
c_id = $course_id AND |
|
|
|
|
attendance_id = '$attendance_id' AND |
|
|
|
@ -1318,15 +1333,15 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get attendance calendar data by id |
|
|
|
|
* @param int attendance calendar id |
|
|
|
|
* @return array attendance calendar data |
|
|
|
|
* @param int attendance calendar id |
|
|
|
|
* @return array attendance calendar data |
|
|
|
|
*/ |
|
|
|
|
public function get_attendance_calendar_by_id($calendar_id) |
|
|
|
|
{ |
|
|
|
|
$tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
$table = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
$calendar_id = intval($calendar_id); |
|
|
|
|
$course_id = api_get_course_int_id(); |
|
|
|
|
$sql = "SELECT * FROM $tbl_attendance_calendar |
|
|
|
|
$sql = "SELECT * FROM $table |
|
|
|
|
WHERE c_id = $course_id AND id = '$calendar_id' "; |
|
|
|
|
$rs = Database::query($sql); |
|
|
|
|
$data = array(); |
|
|
|
@ -1342,13 +1357,13 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Get all attendance calendar data inside current attendance |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @param string $type |
|
|
|
|
* @param int $calendar_id |
|
|
|
|
* @param int $groupId |
|
|
|
|
* @param bool $showAll = false show group calendar items or not |
|
|
|
|
* |
|
|
|
|
* @return array attendance calendar data |
|
|
|
|
* @return array attendance calendar data |
|
|
|
|
*/ |
|
|
|
|
public function get_attendance_calendar( |
|
|
|
|
$attendance_id, |
|
|
|
@ -1443,8 +1458,12 @@ class Attendance |
|
|
|
|
* @param int $groupId |
|
|
|
|
* @return int number of dates in attendance calendar |
|
|
|
|
*/ |
|
|
|
|
public static function get_number_of_attendance_calendar($attendance_id, $groupId = 0, $done_attendance = NULL, $userId = 0) |
|
|
|
|
{ |
|
|
|
|
public static function get_number_of_attendance_calendar( |
|
|
|
|
$attendance_id, |
|
|
|
|
$groupId = 0, |
|
|
|
|
$done_attendance = null, |
|
|
|
|
$userId = 0 |
|
|
|
|
) { |
|
|
|
|
$tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); |
|
|
|
|
$calendarRelGroup = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR_REL_GROUP); |
|
|
|
|
$tbl_groupRelUser = Database::get_course_table(TABLE_GROUP_USER); |
|
|
|
@ -1570,8 +1589,9 @@ class Attendance |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* check if an attendance is locked |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @param bool |
|
|
|
|
* @param int $attendance_id |
|
|
|
|
* @param bool |
|
|
|
|
* @return bool |
|
|
|
|
*/ |
|
|
|
|
public static function is_locked_attendance($attendance_id) |
|
|
|
|
{ |
|
|
|
@ -1628,8 +1648,8 @@ class Attendance |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* @param int $calendarId |
|
|
|
|
* @param int $courseId |
|
|
|
|
* @param int $calendarId |
|
|
|
|
* @param int $courseId |
|
|
|
|
* @param array $groupList |
|
|
|
|
*/ |
|
|
|
|
public function addAttendanceCalendarToGroup($calendarId, $courseId, $groupList) |
|
|
|
@ -1665,7 +1685,7 @@ class Attendance |
|
|
|
|
/** |
|
|
|
|
* @param int $calendarId |
|
|
|
|
* @param int $courseId |
|
|
|
|
* @param int $groupId |
|
|
|
|
* |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|
public function getGroupListByAttendanceCalendar($calendarId, $courseId) |
|
|
|
@ -1705,7 +1725,6 @@ class Attendance |
|
|
|
|
/** |
|
|
|
|
* @param int $calendarId |
|
|
|
|
* @param int $courseId |
|
|
|
|
* @param int $groupId |
|
|
|
|
* |
|
|
|
|
* @return array |
|
|
|
|
*/ |
|
|
|
|