Fix function get_number_of_attendance_calendar see BT#9428

1.10.x
Julio Montoya 10 years ago
parent e14b2f2436
commit 79a220bd70
  1. 54
      main/inc/lib/attendance.lib.php

@ -1345,37 +1345,49 @@ 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)
{
$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(a.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);
$course_id = api_get_course_int_id();
if (empty($groupId)) {
$sql = "SELECT count(a.id)
FROM $tbl_attendance_calendar a
WHERE
c_id = $course_id AND
attendance_id = '$attendance_id' AND
id NOT IN (
SELECT calendar_id FROM $calendarRelGroup
WHERE
c_id = $course_id AND
group_id != 0 AND
group_id IS NOT NULL
)
";
} else {
$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
group_id = $groupId
";
}
$rs = Database::query($sql);
$row = Database::fetch_row($rs);
$count = $row[0];
$rs = Database::query($sql);
$row = Database::fetch_row($rs);
$count = $row[0];
return $count;
}
return $count;
}
/**
/**
* Get count dates inside attendance calendar by attendance id
* @param int $attendance_id
* @return int count of dates

Loading…
Cancel
Save