Преглед на файлове

Minor performance improvements

Julio Montoya преди 15 години
родител
ревизия
321f44886e
променени са 2 файла, в които са добавени 38 реда и са изтрити 29 реда
  1. 29 19
      main/attendance/index.php
  2. 9 10
      main/inc/lib/attendance.lib.php

+ 29 - 19
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 <christian1827@gmail.com>
 * @author Carlos Vargas (link to attendance tool )<litox84@gmail.com> 
+* @author Julio Montoya <gugli100@gmail.com> 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();
 }
 
 ?>

+ 9 - 10
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