diff --git a/main/attendance/index.php b/main/attendance/index.php index 0830d074ea..444d6d65d6 100755 --- a/main/attendance/index.php +++ b/main/attendance/index.php @@ -5,6 +5,8 @@ * Template (front controller in MVC pattern) used for distpaching to the controllers depend on the current action * @author Christian Fasanando * @author Carlos Vargas (link to attendance tool ) +* @author Julio Montoya Bug fixing, sql improvements +* * @package chamilo.attendance */ @@ -179,25 +181,33 @@ if (isset($_POST['action']) && $_POST['action'] == 'attendance_delete_select') { // distpacher actions to controller switch ($action) { - case 'attendance_list' : $attendance_controller->attendance_list(); - break; - case 'attendance_add' : $attendance_controller->attendance_add(); - break; - case 'attendance_edit' : $attendance_controller->attendance_edit($attendance_id); - break; - case 'attendance_delete' : $attendance_controller->attendance_delete($attendance_id); - break; - case 'attendance_sheet_list' : $attendance_controller->attendance_sheet($action, $attendance_id, $student_id); - break; - case 'attendance_sheet_add' : $attendance_controller->attendance_sheet($action, $attendance_id); - break; - case 'calendar_list' : - case 'calendar_add' : - case 'calendar_edit' : - case 'calendar_all_delete' : - case 'calendar_delete' : $attendance_controller->attendance_calendar($action, $attendance_id, $calendar_id); - break; - default : $attendance_controller->attendance_list(); + case 'attendance_list' : + $attendance_controller->attendance_list(); + break; + case 'attendance_add' : + $attendance_controller->attendance_add(); + break; + case 'attendance_edit' : + $attendance_controller->attendance_edit($attendance_id); + break; + case 'attendance_delete': + $attendance_controller->attendance_delete($attendance_id); + break; + case 'attendance_sheet_list': + $attendance_controller->attendance_sheet($action, $attendance_id, $student_id); + break; + case 'attendance_sheet_add' : + $attendance_controller->attendance_sheet($action, $attendance_id); + break; + case 'calendar_list' : + case 'calendar_add' : + case 'calendar_edit' : + case 'calendar_all_delete': + case 'calendar_delete' : + $attendance_controller->attendance_calendar($action, $attendance_id, $calendar_id); + break; + default : + $attendance_controller->attendance_list(); } ?> \ No newline at end of file diff --git a/main/inc/lib/attendance.lib.php b/main/inc/lib/attendance.lib.php index fe9039c64d..866809ac49 100755 --- a/main/inc/lib/attendance.lib.php +++ b/main/inc/lib/attendance.lib.php @@ -499,7 +499,8 @@ class Attendance public function get_faults_average_inside_courses($user_id) { // get all courses of current user - $courses = CourseManager::get_courses_list_by_user_id($user_id, true); + $courses = CourseManager::get_courses_list_by_user_id($user_id, true); + $user_id = intval($user_id); $results = array(); $total_faults = $total_weight = $porcent = 0; @@ -507,13 +508,13 @@ class Attendance //$course_code = $course['code']; //$course_info = api_get_course_info($course_code); $tbl_attendance_result = Database::get_course_table(TABLE_ATTENDANCE_RESULT, $course['db_name']); + $attendances_by_course = $this->get_attendances_list($course['db_name']); - foreach ($attendances_by_course as $attendance) { - // get total faults and total weight - $attendance_id = $attendance['id']; + 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 user_id='$user_id' AND attendance_id='$attendance_id'"; + $sql = "SELECT score FROM $tbl_attendance_result WHERE user_id=$user_id AND attendance_id=".$attendance['id']; $rs = Database::query($sql); $score = 0; if (Database::num_rows($rs) > 0) { @@ -553,10 +554,9 @@ class Attendance $attendances_by_course = $this->get_attendances_list($course_info['dbName'], $session_id); foreach ($attendances_by_course as $attendance) { - // get total faults and total weight - $attendance_id = $attendance['id']; + // Get total faults and total weight $total_done_attendance = $attendance['attendance_qualify_max']; - $sql = "SELECT score FROM $tbl_attendance_result WHERE user_id='$user_id' AND attendance_id='$attendance_id'"; + $sql = "SELECT score FROM $tbl_attendance_result WHERE user_id=$user_id AND attendance_id=".$attendance['id']; $rs = Database::query($sql); $score = 0; if (Database::num_rows($rs) > 0) { @@ -587,8 +587,7 @@ class Attendance global $dateTimeFormatLong; $tbl_attendance_sheet = Database::get_course_table(TABLE_ATTENDANCE_SHEET); $tbl_attendance_calendar= Database::get_course_table(TABLE_ATTENDANCE_CALENDAR); - $attendance_id = intval($attendance_id); - + $attendance_calendar = $this->get_attendance_calendar($attendance_id); $calendar_ids = array(); // get all dates from calendar by current attendance