| 
					
				 | 
			
			
				@@ -22,7 +22,8 @@ type Teacher struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	SubjectsByClass map[uint][]*Subject `gorm:"-"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	Hours int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	Hours       int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	ActualHours int `gorm:"-"` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 var ( 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -51,6 +52,10 @@ WHERE (activities.teacher_id=? OR activities.supply_teacher_id=?) AND (activitie 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 SELECT teachers.*,1 as supply FROM activities  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 INNER JOIN teachers on teachers.id=activities.teacher_id  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 WHERE supply_teacher_id <> 0 ORDER BY surname,name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	countActualTeacherHours = ` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ SELECT sum(hours) as actual_hours FROM activities WHERE (teacher_id=? OR supply_teacher_id=?); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ` 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -85,6 +90,15 @@ func GetTeacherAll(args map[string]string) (interface{}, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var result struct { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		ActualHours int 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if err := DB().Raw(countActualTeacherHours, id, id).Scan(&result).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	teacher.ActualHours = result.ActualHours 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err := DB().Preload("SupplyTeacher").Preload("Teacher").Preload("Subject").Preload("Student").Preload("Class").Where("teacher_id=? OR supply_teacher_id=?", id, id).Find(&teacher.Activities).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -127,6 +141,11 @@ func GetTeachersAll(args map[string]string) (interface{}, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			teacher.SubjectsByClass[c.ID] = subjects 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// if err := DB().Raw(countActualTeacherHours, teacher.ID, teacher.ID).Scan(&teacher.ActualHours).Error; err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// 	return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	return teachers, nil 
			 |