@ -383,7 +383,8 @@ class Attendance
if (is_array($attendance_id)) {
foreach ($attendance_id as $id) {
$id = intval($id);
$sql = "UPDATE $tbl_attendance SET active = 1 WHERE c_id = $course_id AND id = '$id'";
$sql = "UPDATE $tbl_attendance SET active = 1
WHERE c_id = $course_id AND id = '$id'";
Database::query($sql);
$affected_rows = Database::affected_rows();
if (!empty($affected_rows)) {
@ -393,7 +394,8 @@ class Attendance
}
} else {
$attendance_id = intval($attendance_id);
$sql = "UPDATE $tbl_attendance SET active = 1 WHERE c_id = $course_id AND id = '$attendance_id'";
$sql = "UPDATE $tbl_attendance SET active = 1
WHERE c_id = $course_id AND id = '$attendance_id'";
Database::query($sql);
$affected_rows = Database::affected_rows();
if (!empty($affected_rows)) {
@ -419,7 +421,8 @@ class Attendance
if (is_array($attendance_id)) {
foreach ($attendance_id as $id) {
$id = intval($id);
$sql = "UPDATE $tbl_attendance SET active = 0 WHERE c_id = $course_id AND id = '$id'";
$sql = "UPDATE $tbl_attendance SET active = 0
WHERE c_id = $course_id AND id = '$id'";
Database::query($sql);
$affected_rows = Database::affected_rows();
if (!empty($affected_rows)) {
@ -429,7 +432,8 @@ class Attendance
}
} else {
$attendance_id = intval($attendance_id);
$sql = "UPDATE $tbl_attendance SET active = 0 WHERE c_id = $course_id AND id = '$attendance_id'";
$sql = "UPDATE $tbl_attendance SET active = 0
WHERE c_id = $course_id AND id = '$attendance_id'";
Database::query($sql);
$affected_rows = Database::affected_rows();
if (!empty($affected_rows)) {
@ -685,13 +689,18 @@ class Attendance
if (count($calendar_ids) > 0) {
$sql = "SELECT count(presence) as count_presences
FROM $tbl_attendance_sheet
WHERE c_id = $course_id AND user_id = '$uid' AND attendance_calendar_id IN(".implode(',',$calendar_ids).") AND presence = 1";
WHERE
c_id = $course_id AND
user_id = '$uid' AND
attendance_calendar_id IN(".implode(',',$calendar_ids).") AND
presence = 1";
$rs_count = Database::query($sql);
$row_count = Database::fetch_array($rs_count);
$count_presences = $row_count['count_presences'];
}
// save results
$sql = "SELECT id FROM $tbl_attendance_result WHERE c_id = $course_id AND user_id='$uid' AND attendance_id='$attendance_id'";
$sql = "SELECT id FROM $tbl_attendance_result
WHERE c_id = $course_id AND user_id='$uid' AND attendance_id='$attendance_id'";
$rs_check_result = Database::query($sql);
if (Database::num_rows($rs_check_result) > 0) {
// update result
@ -839,8 +848,12 @@ class Attendance
foreach ($attendances_by_course as $attendance) {
// get total faults and total weight
$total_done_attendance = $attendance['attendance_qualify_max'];
$sql = "SELECT score FROM $tbl_attendance_result
WHERE c_id = $course_id AND user_id = $user_id AND attendance_id = ".$attendance['id'];
$sql = "SELECT score
FROM $tbl_attendance_result
WHERE
c_id = $course_id AND
user_id = $user_id AND
attendance_id = ".$attendance['id'];
$rs = Database::query($sql);
$score = 0;
if (Database::num_rows($rs) > 0) {
@ -884,7 +897,10 @@ class Attendance
// Get total faults and total weight
$total_done_attendance = $attendance['attendance_qualify_max'];
$sql = "SELECT score FROM $tbl_attendance_result
WHERE c_id = {$course_info['real_id']} AND user_id=$user_id AND attendance_id=".$attendance['id'];
WHERE
c_id = {$course_info['real_id']} AND
user_id = $user_id AND
attendance_id=".$attendance['id'];
$rs = Database::query($sql);
$score = 0;
if (Database::num_rows($rs) > 0) {
@ -1014,7 +1030,7 @@ class Attendance
attendance_id = '$attendance_id' AND
done_attendance = 0
ORDER BY date_time
limit 1";
LIMIT 1";
$rs = Database::query($sql);
$next_calendar_datetime = 0;
if (Database::num_rows($rs) > 0) {
@ -1331,10 +1347,14 @@ class Attendance
$course_id = api_get_course_int_id();
// check if datetime already exists inside the table
$sql = "SELECT id FROM $tbl_attendance_calendar
WHERE c_id = $course_id AND date_time = '".Database::escape_string($this->date_time)."' AND attendance_id = '$attendance_id'";
WHERE
c_id = $course_id AND
date_time = '".Database::escape_string($this->date_time)."' AND
attendance_id = '$attendance_id'";
$rs = Database::query($sql);
if (Database::num_rows($rs) == 0) {
$sql = "UPDATE $tbl_attendance_calendar SET date_time='".Database::escape_string($this->date_time)."'
$sql = "UPDATE $tbl_attendance_calendar
SET date_time='".Database::escape_string($this->date_time)."'
WHERE c_id = $course_id AND id = '".intval($calendar_id)."'";
Database::query($sql);
$affected_rows = Database::affected_rows();
@ -1361,7 +1381,7 @@ class Attendance
{
$tbl_attendance_calendar = Database::get_course_table(TABLE_ATTENDANCE_CALENDAR);
$tbl_attendance_sheet = Database::get_course_table(TABLE_ATTENDANCE_SHEET);
$session_id = api_get_session_id();
$attendance_id = intval($attendance_id);
// get all registered users inside current course
$users = $this->get_users_rel_course();
@ -1464,22 +1484,22 @@ class Attendance
return $this->date_time;
}
public function get_name($name )
public function get_name()
{
return $this->name;
}
public function get_description($description )
public function get_description()
{
return $this->description;
}
public function get_attendance_qualify_title($attendance_qualify_title )
public function get_attendance_qualify_title()
{
return $this->attendance_qualify_title;
}
public function get_attendance_weight($attendance_weight )
public function get_attendance_weight()
{
return $this->attendance_weight;
}
@ -1488,10 +1508,16 @@ class Attendance
* @param string $startDate in UTC time
* @param string $endDate in UTC time
*
* @return string
* @return array
*/
public function getAttendanceLogins ($startDate, $endDate)
public function getAttendanceLogin($startDate, $endDate)
{
if (empty($startDate) || $startDate == '0000-00-00' ||
empty($endDate) || $endDate == '0000-00-00'
) {
return false;
}
$sessionId = api_get_session_id();
$courseCode = api_get_course_id();
if (!empty($sessionId)) {
@ -1499,14 +1525,16 @@ class Attendance
$courseCode,
$sessionId,
'',
'lastname'
'lastname',
0
);
} else {
$users = CourseManager:: get_user_list_from_course_code(
$courseCode,
0,
'',
'lastname'
'lastname',
STUDENT
);
}
@ -1544,6 +1572,33 @@ class Attendance
}
}
return array(
'users' => $users,
'dateList' => $dateList,
'headers' => $headers,
'results' => $results
);
}
/**
* @param string $startDate in UTC time
* @param string $endDate in UTC time
*
* @return string
*/
public function getAttendanceLoginTable($startDate, $endDate)
{
$data = $this->getAttendanceLogin($startDate, $endDate);
if (!$data) {
return null;
}
$headers = $data['headers'];
$dateList = $data['dateList'];
$users = $data['users'];
$results = $data['results'];
$table = new HTML_Table(array('class' => 'data_table'));
$row = 0;
$column = 0;
@ -1580,4 +1635,67 @@ class Attendance
return $table->toHtml();
}
/**
* @param string $startDate in UTC time
* @param string $endDate in UTC time
*
* @return string
*/
public function exportAttendanceLogin($startDate, $endDate)
{
$data = $this->getAttendanceLogin($startDate, $endDate);
if (!$data) {
return null;
}
$users = $data['users'];
$results = $data['results'];
$table = new HTML_Table(array('class' => 'data_table'));
$table->setHeaderContents(0, 0, get_lang('User'));
$table->setHeaderContents(0, 1, get_lang('Date'));
$row = 1;
foreach ($users as $user) {
$table->setCellContents(
$row,
0,
$user['lastname'].' '.$user['firstname'].' ('.$user['username'].')'
);
$row++;
}
$table->setColAttributes(0, array('style' => 'width:28%'));
$row = 1;
foreach ($users as $user) {
if (isset($results[$user['user_id']]) & &
!empty($results[$user['user_id']])
) {
$dates = implode(', ', array_keys($results[$user['user_id']]));
$table->setCellContents($row, 1, $dates);
}
$row++;
}
//$tableToString = null;
//$sessionInfo = api_get_session_info(api_get_session_id());
//if (!empty($sessionInfo)) {
/*$tableToString .= '< strong > '.get_lang('PeriodToDisplay').'< / strong > : '.
sprintf(get_lang('FromDateXToDateY'), $startDate, $endDate);*/
//}
$tableToString = $table->toHtml();
$params = array(
'filename' => get_lang('Attendance') . '_' . api_get_utc_datetime(),
'pdf_title' => get_lang('Attendance'),
'course_code' => api_get_course_id(),
'show_real_course_teachers' => true
);
$pdf = new PDF('A4', null, $params);
$pdf->html_to_pdf_with_template($tableToString);
}
}