From e7d0bc00dbfe5a0bf137db1f2fbea14b6623f355 Mon Sep 17 00:00:00 2001
From: PavelBegunkov <asml.Silence@gmail.com>
Date: Tue, 9 Jun 2015 09:04:18 +0300
Subject: [PATCH] sql GetStudentsForDiscipline: --param semesterID

---
 db/StoredFunctions.sql                             | 4 ++--
 db/StoredProcedures.sql                            | 8 +++++---
 ~dev_rating/application/classes/Model/Students.php | 5 ++---
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/db/StoredFunctions.sql b/db/StoredFunctions.sql
index 3340ea0cc..4cb4778b2 100644
--- a/db/StoredFunctions.sql
+++ b/db/StoredFunctions.sql
@@ -1286,9 +1286,9 @@ CREATE FUNCTION `Discipline_Delegate` (
 ) RETURNS int(11)
     NO SQL
 BEGIN
-    DECLARE EXIT HANDLER FOR SQLEXCEPTION RETURN -1;
-  
     DECLARE vTemp INT DEFAULT 0;
+    DECLARE EXIT HANDLER FOR SQLEXCEPTION RETURN -1;
+
     SET vTemp = Discipline_BindTeacher(pDisciplineID, pNewAuthorID);
 
     UPDATE `disciplines`
diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index d7aedae59..9f60484e0 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -495,11 +495,13 @@ END //
 # all students in general groups, that take course (with attached and detached)
 DROP PROCEDURE IF EXISTS GetStudentsForDiscipline//
 CREATE PROCEDURE `GetStudentsForDiscipline` (
-        IN `pDisciplineID` INT,
-        IN `pSemesterID` INT
+        IN `pDisciplineID` INT
     )
     NO SQL
 BEGIN
+    DECLARE vSemesterID INT DEFAULT -1;
+    SET vSemesterID = GetDisciplineSemesterID(pDisciplineID);
+
     SELECT  view_disciplines_students.StudentID AS 'ID',
             view_disciplines_students.LastName,
             view_disciplines_students.FirstName,
@@ -512,7 +514,7 @@ BEGIN
             view_disciplines_students.AttachType AS 'AttachType'
     FROM `view_disciplines_students`
     WHERE view_disciplines_students.DisciplineID = pDisciplineID AND
-          view_disciplines_students.SemesterID = pSemesterID
+          view_disciplines_students.SemesterID = vSemesterID
     ORDER BY    (view_disciplines_students.AttachType IS NULL OR
                     view_disciplines_students.AttachType = 'detach') DESC,
         view_disciplines_students.GradeID ASC,
diff --git a/~dev_rating/application/classes/Model/Students.php b/~dev_rating/application/classes/Model/Students.php
index d4c501ae7..0d313df4c 100644
--- a/~dev_rating/application/classes/Model/Students.php
+++ b/~dev_rating/application/classes/Model/Students.php
@@ -2,9 +2,8 @@
 
 class Model_Students extends Model
 {
-    public static function ofDiscipline($id, $semesterID = null) {
-        $semesterID = $semesterID ? $semesterID : User::instance()->SemesterID;;
-        $sql = "CALL `GetStudentsForDiscipline`('$id', $semesterID); ";
+    public static function ofDiscipline($id) {
+        $sql = "CALL `GetStudentsForDiscipline`('$id'); ";
         return DB::query(Database::SELECT, $sql)->execute();
     }
 
-- 
GitLab