|
@@ -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
|