From d77a14f8c15f4efa0294be7c00f9a637f3d50777 Mon Sep 17 00:00:00 2001
From: PavelBegunkov <asml.Silence@gmail.com>
Date: Tue, 9 Jun 2015 09:31:57 +0300
Subject: [PATCH] php session semesterID refactoring

---
 db/StoredFunctions.sql                        | 40 +++++--------------
 db/StoredProcedures.sql                       |  3 +-
 .../modules/account/classes/Kohana/User.php   | 18 ++-------
 3 files changed, 16 insertions(+), 45 deletions(-)

diff --git a/db/StoredFunctions.sql b/db/StoredFunctions.sql
index 4cb4778b2..7022f4512 100644
--- a/db/StoredFunctions.sql
+++ b/db/StoredFunctions.sql
@@ -28,7 +28,12 @@ DROP FUNCTION IF EXISTS ChangeMail//
 
 DROP FUNCTION IF EXISTS GetRateForDisc//
 
-drop function if exists InternalIsTeacherBound//
+drop function if exists InternalIsTeacherBounded//
+DROP FUNCTION IF EXISTS SetSemesterID//
+DROP FUNCTION IF EXISTS AddDiscipline//
+
+DROP FUNCTION IF EXISTS GetMaxRateForDisc//
+
 
 
 # -------------------------------------------------------------------------------------------
@@ -262,7 +267,7 @@ BEGIN
     INSERT INTO faculties
         (Name, Abbr) VALUES(pFacultyName, pFacultyAbbr);
     RETURN 0;
-END //
+END//
 
 # -------------------------------------------------------------------------------------------
 # Label: departments
@@ -284,7 +289,6 @@ BEGIN
             departments.ID = LAST_INSERT_ID(departments.ID);
 
     RETURN LAST_INSERT_ID();
-
 END //
 
 # -------------------------------------------------------------------------------------------
@@ -308,9 +312,9 @@ BEGIN
     DECLARE EXIT HANDLER FOR SQLEXCEPTION RETURN -1;
 
     INSERT INTO `grades`
-    (Num, Degree) VALUES (pGradeNum, pDegree)
-    ON DUPLICATE KEY UPDATE
-        grades.ID = LAST_INSERT_ID(grades.ID);
+        (Num, Degree) VALUES (pGradeNum, pDegree)
+        ON DUPLICATE KEY UPDATE
+            grades.ID = LAST_INSERT_ID(grades.ID);
 
     RETURN LAST_INSERT_ID();
 END //
@@ -343,8 +347,6 @@ BEGIN
 END //
 
 
-
-
 DROP FUNCTION IF EXISTS GetGroup//
 CREATE FUNCTION `GetGroup` (
         `pGradeID` INT,
@@ -811,7 +813,7 @@ BEGIN
     RETURN vSemesterID;
 END //
 
-DROP FUNCTION IF EXISTS AddDiscipline//
+
 DROP FUNCTION IF EXISTS Discipline_Create//
 CREATE FUNCTION `Discipline_Create` (
     `pTeacherID` INT,
@@ -2039,26 +2041,6 @@ END //
 # Label: rating
 # -------------------------------------------------------------------------------------------
 
-# TODO: kill
-DROP FUNCTION IF EXISTS GetMaxRateForDisc//
-CREATE FUNCTION `GetMaxRateForDisc` (
-        `pDisciplineID` INT
-    ) RETURNS int(11)
-    NO SQL
-BEGIN
-    DECLARE vResult INT DEFAULT 0;
-
-    SELECT SUM(submodules.MaxRate)
-        INTO vResult
-        FROM `modules`
-        LEFT JOIN `submodules` ON   submodules.ModuleID = modules.ID
-        WHERE   modules.DisciplineID = pDisciplineID AND
-                submodules.IsUsed != 0 AND
-                (modules.Type = 1 OR ( modules.Type = 2 AND submodules.OrderNum = 1))
-        LIMIT 1;
-    RETURN  (vResult);
-END //
-
 
 # Вычисление максимального балла для submodule
 DROP FUNCTION IF EXISTS CalculateMaxRateForExtra//
diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index 9f60484e0..53f5cfa7a 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -732,8 +732,7 @@ END //
 DROP PROCEDURE IF EXISTS GetRatesForGroup//
 CREATE PROCEDURE `GetRatesForGroup` (
     IN `pDisciplineID` INT,
-    IN `pGroupID` INT
-)
+    IN `pGroupID` INT)
     NO SQL
 BEGIN
     DECLARE vChecker BOOLEAN DEFAULT FALSE;
diff --git a/~dev_rating/modules/account/classes/Kohana/User.php b/~dev_rating/modules/account/classes/Kohana/User.php
index 216a76af7..ae116ee91 100644
--- a/~dev_rating/modules/account/classes/Kohana/User.php
+++ b/~dev_rating/modules/account/classes/Kohana/User.php
@@ -59,7 +59,6 @@ class Kohana_User implements ArrayAccess
         $this->_config['hash_key'] = $this->_model->getHashKey();
         $this->_config['hash_method'] = 'sha256';
         $isSignedIn = $this->isSignedIn();
-        $this->_PrepareSemester();
 
         if ($isSignedIn) {
             $id = $this->_session->get('ID');
@@ -73,19 +72,6 @@ class Kohana_User implements ArrayAccess
     }
 
 
-    protected function _PrepareSemester() {
-        $semesterID = $this->_session->get("SemesterID");
-        if (!$semesterID) {
-            $semesterID = $this->_model->GetCurSemesterID();
-        }
-        $this->SetSemester($semesterID);
-    }
-
-    public function SetSemester($semesterID) {
-        $this->_session->set("SemesterID", "$semesterID");
-    }
-
-
     /**
      * Регистрирует нового пользователя и осуществляет вход.
      * Проверяет корректность кода активации и существование
@@ -151,6 +137,10 @@ class Kohana_User implements ArrayAccess
         $this->_session->set('UserHash', $this->hash($userHash));
         $this->_session->set('PasswordHash', $passwordHash);
         $this->_session->set('start_time', time());
+
+        $semesterID = $this->_model->GetCurSemesterID();
+        $this->_session->set("SemesterID", "$semesterID");
+
         return true;
     }
 
-- 
GitLab