Skip to content
Snippets Groups Projects
Commit cd5af73e authored by Silence's avatar Silence
Browse files

ADD: semester switch

parent 33962bc8
Branches
Tags
No related merge requests found
...@@ -434,6 +434,18 @@ BEGIN ...@@ -434,6 +434,18 @@ BEGIN
END // END //
DROP FUNCTION IF EXISTS SetSemesterID//
CREATE FUNCTION `SetSemesterID` ( `SemesterID` INT
) RETURNS int(11)
NO SQL
BEGIN
SET @CurrentSemesterID = SemesterID;
RETURN 0;
END //
DROP FUNCTION IF EXISTS SetCurSemesterID// DROP FUNCTION IF EXISTS SetCurSemesterID//
CREATE FUNCTION `SetCurSemesterID` ( `SemesterID` INT CREATE FUNCTION `SetCurSemesterID` ( `SemesterID` INT
...@@ -1922,7 +1934,7 @@ BEGIN ...@@ -1922,7 +1934,7 @@ BEGIN
INNER JOIN `subjects` ON disciplines.SubjectID = subjects.ID INNER JOIN `subjects` ON disciplines.SubjectID = subjects.ID
INNER JOIN `teachers` ON disciplines.AuthorID = teachers.ID INNER JOIN `teachers` ON disciplines.AuthorID = teachers.ID
INNER JOIN `departments` ON teachers.DepartmentID = departments.ID INNER JOIN `departments` ON teachers.DepartmentID = departments.ID
WHERE GetCurSemesterID() = disciplines.SemesterID AND WHERE @CurrentSemesterID = disciplines.SemesterID AND
disciplines.FacultyID = FacultyID disciplines.FacultyID = FacultyID
ORDER BY departments.Name ASC; ORDER BY departments.Name ASC;
END // END //
...@@ -1954,7 +1966,7 @@ BEGIN ...@@ -1954,7 +1966,7 @@ BEGIN
TeacherID = disciplines_teachers.TeacherID TeacherID = disciplines_teachers.TeacherID
INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID
LEFT JOIN `study_groups` ON study_groups.ID = disciplines_groups.StudyGroupID LEFT JOIN `study_groups` ON study_groups.ID = disciplines_groups.StudyGroupID
WHERE disciplines.SemesterID = GetCurSemesterID() WHERE disciplines.SemesterID = @CurrentSemesterID
ORDER BY grades.ID ASC, ORDER BY grades.ID ASC,
subjects.Name ASC, subjects.Name ASC,
disciplines.ID ASC, disciplines.ID ASC,
...@@ -1980,7 +1992,7 @@ BEGIN ...@@ -1980,7 +1992,7 @@ BEGIN
FROM `disciplines` FROM `disciplines`
INNER JOIN `subjects` ON disciplines.SubjectID = subjects.ID INNER JOIN `subjects` ON disciplines.SubjectID = subjects.ID
INNER JOIN `teachers` ON disciplines.AuthorID = teachers.ID INNER JOIN `teachers` ON disciplines.AuthorID = teachers.ID
WHERE GetCurSemesterID() = disciplines.SemesterID AND WHERE @CurrentSemesterID = disciplines.SemesterID AND
InternalIsStudentAttached(StudentID, disciplines.ID) InternalIsStudentAttached(StudentID, disciplines.ID)
ORDER BY disciplines.ExamType ASC, Rate DESC; ORDER BY disciplines.ExamType ASC, Rate DESC;
END // END //
...@@ -2203,7 +2215,7 @@ BEGIN ...@@ -2203,7 +2215,7 @@ BEGIN
disciplines.SemesterID, disciplines.SemesterID,
disciplines.FacultyID disciplines.FacultyID
) )
VALUES ( TeacherID, GradeID, SubjectID, ExamType, LectionCount, PracticeCount, LabCount, GetCurSemesterID(), FacultyID ); VALUES ( TeacherID, GradeID, SubjectID, ExamType, LectionCount, PracticeCount, LabCount, @CurrentSemesterID, FacultyID );
SET DisciplineID = LAST_INSERT_ID(); SET DisciplineID = LAST_INSERT_ID();
INSERT INTO `disciplines_teachers` INSERT INTO `disciplines_teachers`
...@@ -2873,7 +2885,7 @@ CREATE FUNCTION `RestrictAfterMilestoneForCredits` ( `TeacherID` INT, ...@@ -2873,7 +2885,7 @@ CREATE FUNCTION `RestrictAfterMilestoneForCredits` ( `TeacherID` INT,
BEGIN BEGIN
DECLARE semID INT; DECLARE semID INT;
SET semID = GetCurSemesterID(); SET semID = @CurrentSemesterID;
UPDATE `disciplines` UPDATE `disciplines`
SET disciplines.MilestoneDate = CURDATE(), SET disciplines.MilestoneDate = CURDATE(),
...@@ -4175,7 +4187,7 @@ CREATE PROCEDURE `GetFinalFormInfo` ( IN `DisciplineID` INT, ...@@ -4175,7 +4187,7 @@ CREATE PROCEDURE `GetFinalFormInfo` ( IN `DisciplineID` INT,
NO SQL NO SQL
BEGIN BEGIN
DECLARE curSem INT; DECLARE curSem INT;
SET curSem = GetCurSemesterID(); SET curSem = @CurrentSemesterID;
SELECT study_groups.GroupNum AS 'GroupNum', SELECT study_groups.GroupNum AS 'GroupNum',
study_groups.Name AS 'GroupName', study_groups.Name AS 'GroupName',
......
...@@ -94,4 +94,13 @@ class Controller_Handler_Settings extends Controller_Handler { ...@@ -94,4 +94,13 @@ class Controller_Handler_Settings extends Controller_Handler {
{ {
} }
public function action_setSemesterID()
{
$this->post
->rule('semesterID', 'not_empty')
->rule('semesterID', 'digit');
$semesterID = $this->post->offsetGet('semesterID');
User::instance()->SetSemester($semesterID);
}
} }
\ No newline at end of file
...@@ -33,17 +33,36 @@ class Kohana_User implements ArrayAccess { ...@@ -33,17 +33,36 @@ class Kohana_User implements ArrayAccess {
$this->_config['hash_key'] = $this->_model->getHashKey(); $this->_config['hash_key'] = $this->_model->getHashKey();
$this->_config['hash_method'] = 'sha256'; $this->_config['hash_method'] = 'sha256';
$isSignedIn = $this->isSignedIn(); $isSignedIn = $this->isSignedIn();
$this->_PrepareSemester($isSignedIn);
if($isSignedIn) { if($isSignedIn) {
$id = $this->_session->get('ID'); $id = $this->_session->get('ID');
$this->_userInfo = $this->_getInfoFromDB($id); $this->_userInfo = $this->_getInfoFromDB($id);
if (self::$_flag != true) { if (self::$_flag != true) {
$this->_session->regenerate(); $this->_session->regenerate();
$this->_session->set('start_time', time()); $this->_session->set('start_time', time());
} }
} }
} }
protected function _PrepareSemester($isSignedIn) {
if ($isSignedIn) {
$semesterID = $this->_session->get("SemesterID");
} else {
$semesterID = $this->_model->GetCurSemesterID();
}
$this->SetSemester($semesterID);
}
public function SetSemester($semesterID) {
$this->_model->SetSemesterID($semesterID);
$this->_session->set("SemesterID", $semesterID);
}
/** /**
* Регистрирует нового пользователя и осуществляет вход. * Регистрирует нового пользователя и осуществляет вход.
* Проверяет корректность кода активации и существование аккаунтов с такими же авторизационными данными. * Проверяет корректность кода активации и существование аккаунтов с такими же авторизационными данными.
......
...@@ -160,4 +160,24 @@ class Model_Kohana_Account extends Model ...@@ -160,4 +160,24 @@ class Model_Kohana_Account extends Model
} }
return $id; return $id;
} }
public function GetCurSemesterID()
{
$sql = "SELECT `GetCurSemesterID`() AS `Num`; ";
$res = DB::query(Database::SELECT, $sql)->execute();
foreach ($res as $value) {
$id = $value['Num'];
}
return $id;
}
public function SetSemesterID($semesterID)
{
$sql = "SELECT `SetSemesterID`('$semesterID') AS `Num`; ";
$res = DB::query(Database::SELECT, $sql)->execute();
foreach ($res as $value) {
$id = $value['Num'];
}
return $id;
}
} }
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment