From 90d460a1adfd5bf9154eb4331819b9bd6fbb4522 Mon Sep 17 00:00:00 2001
From: PavelBegunkov <asml.Silence@gmail.com>
Date: Sun, 31 Aug 2014 01:24:01 +0400
Subject: [PATCH] GetDisciplinesForStudent: ++isMapCreated(out),
 ++ExamRate(out)

---
 db/StoredProcedures.sql | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index 9cf4330a6..7c6fb115e 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 
-- 
GitLab