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
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//
CREATE FUNCTION `SetCurSemesterID` ( `SemesterID` INT
......@@ -1922,7 +1934,7 @@ BEGIN
INNER JOIN `subjects` ON disciplines.SubjectID = subjects.ID
INNER JOIN `teachers` ON disciplines.AuthorID = teachers.ID
INNER JOIN `departments` ON teachers.DepartmentID = departments.ID
WHERE GetCurSemesterID() = disciplines.SemesterID AND
WHERE @CurrentSemesterID = disciplines.SemesterID AND
disciplines.FacultyID = FacultyID
ORDER BY departments.Name ASC;
END //
......@@ -1954,7 +1966,7 @@ BEGIN
TeacherID = disciplines_teachers.TeacherID
INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID
LEFT JOIN `study_groups` ON study_groups.ID = disciplines_groups.StudyGroupID
WHERE disciplines.SemesterID = GetCurSemesterID()
WHERE disciplines.SemesterID = @CurrentSemesterID
ORDER BY grades.ID ASC,
subjects.Name ASC,
disciplines.ID ASC,
......@@ -1980,7 +1992,7 @@ BEGIN
FROM `disciplines`
INNER JOIN `subjects` ON disciplines.SubjectID = subjects.ID
INNER JOIN `teachers` ON disciplines.AuthorID = teachers.ID
WHERE GetCurSemesterID() = disciplines.SemesterID AND
WHERE @CurrentSemesterID = disciplines.SemesterID AND
InternalIsStudentAttached(StudentID, disciplines.ID)
ORDER BY disciplines.ExamType ASC, Rate DESC;
END //
......@@ -2203,7 +2215,7 @@ BEGIN
disciplines.SemesterID,
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();
INSERT INTO `disciplines_teachers`
......@@ -2873,7 +2885,7 @@ CREATE FUNCTION `RestrictAfterMilestoneForCredits` ( `TeacherID` INT,
BEGIN
DECLARE semID INT;
SET semID = GetCurSemesterID();
SET semID = @CurrentSemesterID;
UPDATE `disciplines`
SET disciplines.MilestoneDate = CURDATE(),
......@@ -4175,7 +4187,7 @@ CREATE PROCEDURE `GetFinalFormInfo` ( IN `DisciplineID` INT,
NO SQL
BEGIN
DECLARE curSem INT;
SET curSem = GetCurSemesterID();
SET curSem = @CurrentSemesterID;
SELECT study_groups.GroupNum AS 'GroupNum',
study_groups.Name AS 'GroupName',
......
......@@ -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 {
$this->_config['hash_key'] = $this->_model->getHashKey();
$this->_config['hash_method'] = 'sha256';
$isSignedIn = $this->isSignedIn();
$this->_PrepareSemester($isSignedIn);
if($isSignedIn) {
$id = $this->_session->get('ID');
$this->_userInfo = $this->_getInfoFromDB($id);
$this->_userInfo = $this->_getInfoFromDB($id);
if (self::$_flag != true) {
$this->_session->regenerate();
$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
}
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