diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index 9cf4330a60038db5ac041202f023721b1b667573..7c6fb115edffdf6c1e598af807512977cc54736e 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -888,9 +888,10 @@ DROP PROCEDURE IF EXISTS GetDisciplinesForStudent// CREATE PROCEDURE `GetDisciplinesForStudent`(IN `StudentID` INT) NO SQL BEGIN - DECLARE groupID, semID INT; + DECLARE groupID, semID, examRate INT; SELECT students.StudyGroupID INTO groupID FROM `students` WHERE students.ID = StudentID LIMIT 1; SET semID = GetCurSemesterID(); + SELECT DISTINCT disciplines.ID AS 'DisciplineID', subjects.ID AS 'SubjectID', @@ -899,8 +900,10 @@ BEGIN teachers.LastName AS 'TeacherLast', teachers.FirstName AS 'TeacherFirst', teachers.SecondName AS 'TeacherSecond', - GetRateForDisc(StudentID, `disciplines`.`ID` ) AS 'Rate', - GetMaxRateForDisc(StudentID, `disciplines`.`ID` ) AS 'MaxCurrentRate' + GetRateForDisc(StudentID, `disciplines`.`ID` ) AS 'Rate', + GetMaxRateForDisc(StudentID, `disciplines`.`ID` ) AS 'MaxCurrentRate', + ( modules2.ID IS NOT NULL ) AS 'isMapCreated', + rating_table.Rate AS 'ExamRate' FROM `disciplines` INNER JOIN `subjects` ON disciplines.SubjectID = subjects.ID INNER JOIN `teachers` ON disciplines.AuthorID = teachers.ID @@ -908,6 +911,12 @@ BEGIN disciplines_groups.StudyGroupID = groupID LEFT JOIN `disciplines_students` ON disciplines_students.DisciplineID = disciplines.ID AND disciplines_students.StudentID = StudentID + LEFT JOIN `modules` ON disciplines.ID = modules.DisciplineID AND + modules.isExam = 1 + LEFT JOIN `submodules` ON modules.ID = submodules.ModuleID + LEFT JOIN `rating_table` ON submodules.ID = rating_table.SubModuleID AND + rating_table.StudentID = StudentID + LEFT JOIN `modules` modules2 ON modules2.DisciplineID = disciplines.ID WHERE disciplines.SemesterID = semID AND ( disciplines_students.Type = 'attach' OR ( ( disciplines_students.Type IS NULL OR disciplines_students.Type != 'detach' ) AND