|
@@ -269,9 +269,10 @@ class Attendance
|
|
|
$weight_calification = floatval($this->attendance_weight);
|
|
|
|
|
|
$value_calification = 0;
|
|
|
-
|
|
|
+ $aid = $this->get_last_attendance_id($course_id)+1;
|
|
|
$sql = "INSERT INTO $tbl_attendance SET
|
|
|
c_id = $course_id,
|
|
|
+ id = $aid,
|
|
|
name ='".Database::escape_string($this->name)."',
|
|
|
description = '".Database::escape_string($this->description)."',
|
|
|
attendance_qualify_title = '$title_gradebook',
|
|
@@ -282,14 +283,14 @@ class Attendance
|
|
|
$last_id = 0;
|
|
|
if (!empty($affected_rows)) {
|
|
|
// save inside item property table
|
|
|
- $last_id = Database::insert_id();
|
|
|
+ $last_id = $aid;
|
|
|
api_item_property_update($course_info, TOOL_ATTENDANCE, $last_id, "AttendanceAdded", $user_id);
|
|
|
}
|
|
|
// add link to gradebook
|
|
|
if ($link_to_gradebook && !empty($this->category_id)) {
|
|
|
$description = '';
|
|
|
$link_info = is_resource_in_course_gradebook($course_code, 7, $last_id, $session_id);
|
|
|
- $link_id = $link_info['id'];
|
|
|
+ $link_id = $link_info['id'];
|
|
|
if (!$link_info) {
|
|
|
add_resource_to_course_gradebook($this->category_id, $course_code, 7, $last_id, $title_gradebook,$weight_calification,$value_calification,$description,1,$session_id);
|
|
|
} else {
|
|
@@ -719,8 +720,10 @@ class Attendance
|
|
|
Database::query($sql);
|
|
|
} else {
|
|
|
// insert new result
|
|
|
+ $aid = $this->get_last_attendance_result_id($course_id)+1;
|
|
|
$sql = "INSERT INTO $tbl_attendance_result SET
|
|
|
c_id = $course_id ,
|
|
|
+ id = $aid ,
|
|
|
user_id = '$uid',
|
|
|
attendance_id = '$attendance_id',
|
|
|
score = '$count_presences'";
|
|
@@ -762,8 +765,9 @@ class Attendance
|
|
|
}
|
|
|
|
|
|
// save data
|
|
|
- $ins = "INSERT INTO $tbl_attendance_sheet_log(c_id, attendance_id, lastedit_date, lastedit_type, lastedit_user_id, calendar_date_value)
|
|
|
- VALUES ($course_id, $attendance_id, '$lastedit_date', '$lastedit_type', $lastedit_user_id, '$calendar_date_value')";
|
|
|
+ $aid = $this->get_last_attendance_sheet_log_id($course_id)+1;
|
|
|
+ $ins = "INSERT INTO $tbl_attendance_sheet_log(c_id, id, attendance_id, lastedit_date, lastedit_type, lastedit_user_id, calendar_date_value)
|
|
|
+ VALUES ($course_id, $aid, $attendance_id, '$lastedit_date', '$lastedit_type', $lastedit_user_id, '$calendar_date_value')";
|
|
|
$result = Database::query($ins);
|
|
|
return Database::affected_rows($result);
|
|
|
}
|
|
@@ -1217,12 +1221,14 @@ class Attendance
|
|
|
$calendar_info = $this->get_attendance_calendar_data_by_date($attendance_id, $this->date_time);
|
|
|
|
|
|
if ($calendar_info == false) {
|
|
|
+ $aid = $this->get_last_attendance_calendar_id($course_id)+1;
|
|
|
$sql = "INSERT INTO $tbl_attendance_calendar SET
|
|
|
c_id = $course_id,
|
|
|
+ id = $aid,
|
|
|
date_time = '".Database::escape_string($this->date_time)."',
|
|
|
attendance_id = '$attendance_id'";
|
|
|
$result = Database::query($sql);
|
|
|
- $cal_id = Database::insert_id();
|
|
|
+ $cal_id = $aid;
|
|
|
$affected_rows = Database::affected_rows($result);
|
|
|
}
|
|
|
|
|
@@ -1508,4 +1514,92 @@ class Attendance
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * Gets the last attendance ID for this course (helper for auto_increment substitution)
|
|
|
+ * @param int Course ID (if not provided, will be guessed from context)
|
|
|
+ * @result int 0 if none, the max "id" value for this course, if found
|
|
|
+ */
|
|
|
+ function get_last_attendance_id($course_id=null)
|
|
|
+ {
|
|
|
+ $tbl_attendance = Database :: get_course_table(TABLE_ATTENDANCE);
|
|
|
+ if (empty($course_id)) {
|
|
|
+ $course_id = api_get_course_int_id();
|
|
|
+ } else {
|
|
|
+ $course_id = filter_var($course_id, FILTER_SANITIZE_NUMBER_INT);
|
|
|
+ }
|
|
|
+ $id = 0;
|
|
|
+ $sql = "SELECT max(id) FROM $tbl_attendance WHERE c_id = $course_id";
|
|
|
+ $res = Database::query($sql);
|
|
|
+ if ($res === false or Database::num_rows($res)===0) {
|
|
|
+ return $id;
|
|
|
+ } //else
|
|
|
+ $row = Database::fetch_row($res);
|
|
|
+ return $row[0];
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * Gets the last attendance result ID for this course (helper for auto_increment substitution)
|
|
|
+ * @param int Course ID (if not provided, will be guessed from context)
|
|
|
+ * @result int 0 if none, the max "id" value for this course, if found
|
|
|
+ */
|
|
|
+ function get_last_attendance_result_id($course_id=null)
|
|
|
+ {
|
|
|
+ $tbl_attendance = Database :: get_course_table(TABLE_ATTENDANCE_RESULT);
|
|
|
+ if (empty($course_id)) {
|
|
|
+ $course_id = api_get_course_int_id();
|
|
|
+ } else {
|
|
|
+ $course_id = filter_var($course_id, FILTER_SANITIZE_NUMBER_INT);
|
|
|
+ }
|
|
|
+ $id = 0;
|
|
|
+ $sql = "SELECT max(id) FROM $tbl_attendance WHERE c_id = $course_id";
|
|
|
+ $res = Database::query($sql);
|
|
|
+ if ($res === false or Database::num_rows($res)===0) {
|
|
|
+ return $id;
|
|
|
+ } //else
|
|
|
+ $row = Database::fetch_row($res);
|
|
|
+ return $row[0];
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * Gets the last attendance sheet log ID for this course (helper for auto_increment substitution)
|
|
|
+ * @param int Course ID (if not provided, will be guessed from context)
|
|
|
+ * @result int 0 if none, the max "id" value for this course, if found
|
|
|
+ */
|
|
|
+ function get_last_attendance_sheet_log_id($course_id=null)
|
|
|
+ {
|
|
|
+ $tbl_attendance = Database :: get_course_table(TABLE_ATTENDANCE_SHEET_LOG);
|
|
|
+ if (empty($course_id)) {
|
|
|
+ $course_id = api_get_course_int_id();
|
|
|
+ } else {
|
|
|
+ $course_id = filter_var($course_id, FILTER_SANITIZE_NUMBER_INT);
|
|
|
+ }
|
|
|
+ $id = 0;
|
|
|
+ $sql = "SELECT max(id) FROM $tbl_attendance WHERE c_id = $course_id";
|
|
|
+ $res = Database::query($sql);
|
|
|
+ if ($res === false or Database::num_rows($res)===0) {
|
|
|
+ return $id;
|
|
|
+ } //else
|
|
|
+ $row = Database::fetch_row($res);
|
|
|
+ return $row[0];
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * Gets the last attendance calendar ID for this course (helper for auto_increment substitution)
|
|
|
+ * @param int Course ID (if not provided, will be guessed from context)
|
|
|
+ * @result int 0 if none, the max "id" value for this course, if found
|
|
|
+ */
|
|
|
+ function get_last_attendance_calendar_id($course_id=null)
|
|
|
+ {
|
|
|
+ $tbl_attendance = Database :: get_course_table(TABLE_ATTENDANCE_CALENDAR);
|
|
|
+ if (empty($course_id)) {
|
|
|
+ $course_id = api_get_course_int_id();
|
|
|
+ } else {
|
|
|
+ $course_id = filter_var($course_id, FILTER_SANITIZE_NUMBER_INT);
|
|
|
+ }
|
|
|
+ $id = 0;
|
|
|
+ $sql = "SELECT max(id) FROM $tbl_attendance WHERE c_id = $course_id";
|
|
|
+ $res = Database::query($sql);
|
|
|
+ if ($res === false or Database::num_rows($res)===0) {
|
|
|
+ return $id;
|
|
|
+ } //else
|
|
|
+ $row = Database::fetch_row($res);
|
|
|
+ return $row[0];
|
|
|
+ }
|
|
|
}
|