From f6a8ae90833498f07df3c3f41b49d9f163a22631 Mon Sep 17 00:00:00 2001 From: PavelBegunkov <asml.Silence@gmail.com> Date: Sun, 8 Feb 2015 21:07:48 +0300 Subject: [PATCH] REF: sql fn - unresolved references --- db/StoredProcedures.sql | 1626 +++++++++++++++++---------------------- 1 file changed, 723 insertions(+), 903 deletions(-) diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index b00b2ebe2..ee2299ce6 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -16,27 +16,27 @@ DELIMITER // # "SetRate" stored procedure can change isLocked flag DROP FUNCTION IF EXISTS InternalIsMapLocked// CREATE FUNCTION `InternalIsMapLocked` - (`disciplineID` INT) RETURNS boolean + (`pDisciplineID` INT) RETURNS boolean NO SQL BEGIN - DECLARE checker INT DEFAULT -1; + DECLARE vChecker INT DEFAULT -1; SELECT disciplines.isLocked - INTO checker + INTO vChecker FROM `disciplines` - WHERE disciplines.ID = disciplineID + WHERE disciplines.ID = pDisciplineID LIMIT 1; - RETURN ( checker > 0 ); + RETURN ( vChecker > 0 ); END // # check, that student really take this course DROP FUNCTION IF EXISTS InternalIsStudentAttached// CREATE FUNCTION `InternalIsStudentAttached` - (`StudentID` INT, `DisciplineID` INT) RETURNS boolean + (`pStudentID` INT, `pDisciplineID` INT) RETURNS boolean NO SQL BEGIN - DECLARE checker boolean; + DECLARE vChecker boolean; # 1. student in main group and not detached OR # 2. student attached @@ -46,231 +46,212 @@ BEGIN ( disciplines_students.Type IS NULL OR disciplines_students.Type != 'detach' ) ) ) - INTO checker - FROM `students` - INNER JOIN `study_groups` ON students.StudyGroupID = study_groups.ID - LEFT JOIN `disciplines_students` ON StudentID = disciplines_students.StudentID AND - DisciplineID = disciplines_students.DisciplineID - LEFT JOIN `disciplines_groups` ON study_groups.ID = disciplines_groups.StudyGroupID AND - DisciplineID = disciplines_groups.DisciplineID - WHERE students.ID = StudentID - LIMIT 1; + INTO vChecker + FROM `students` + INNER JOIN `study_groups` ON students.StudyGroupID = study_groups.ID + LEFT JOIN `disciplines_students` ON disciplines_students.StudentID = pStudentID AND + disciplines_students.DisciplineID = pDisciplineID + LEFT JOIN `disciplines_groups` ON study_groups.ID = disciplines_groups.StudyGroupID AND + disciplines_groups.DisciplineID = pDisciplineID + WHERE students.ID = pStudentID + LIMIT 1; - RETURN (checker IS NOT NULL AND checker); + RETURN (vChecker IS NOT NULL AND vChecker); END // # check, that teacher teach this course drop function if exists InternalIsTeacherBinded// -CREATE FUNCTION `InternalIsTeacherBinded` ( `TeacherID` INT, - `DisciplineID` INT - ) RETURNS boolean +CREATE FUNCTION `InternalIsTeacherBinded` + ( `pTeacherID` INT, `pDisciplineID` INT) RETURNS boolean NO SQL BEGIN - DECLARE checker boolean DEFAULT FALSE; + DECLARE vChecker boolean DEFAULT FALSE; SELECT (disciplines_teachers.ID IS NOT NULL AND disciplines_teachers.ID > 0) - INTO checker - FROM `disciplines_teachers` - WHERE TeacherID = disciplines_teachers.TeacherID AND - DisciplineID = disciplines_teachers.DisciplineID - LIMIT 1; - RETURN (checker IS NOT NULL AND checker); + INTO vChecker + FROM `disciplines_teachers` + WHERE disciplines_teachers.TeacherID = pTeacherID AND + disciplines_teachers.DisciplineID = pDisciplineID + LIMIT 1; + RETURN vChecker; END // DROP FUNCTION IF EXISTS InternalIsTeacherAuthor// -CREATE FUNCTION `InternalIsTeacherAuthor` ( `TeacherID` INT, - `DisciplineID` INT - ) RETURNS boolean +CREATE FUNCTION `InternalIsTeacherAuthor` + ( `pTeacherID` INT, `pDisciplineID` INT) RETURNS boolean NO SQL BEGIN - DECLARE checker boolean; - SELECT (TeacherID = disciplines.AuthorID) - INTO checker - FROM `disciplines` - WHERE disciplines.ID = DisciplineID - LIMIT 1; - RETURN (checker IS NOT NULL AND checker); + DECLARE vChecker boolean DEFAULT FALSE; + SELECT (disciplines.AuthorID = pTeacherID) + INTO vChecker + FROM `disciplines` + WHERE disciplines.ID = pDisciplineID + LIMIT 1; + RETURN vChecker; END // DROP FUNCTION IF EXISTS GetDisciplineMaxRate// -CREATE FUNCTION `GetDisciplineMaxRate` ( `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `GetDisciplineMaxRate` + ( `pDisciplineID` INT) RETURNS int(11) NO SQL BEGIN - DECLARE vMax INT; - SET vMax = 0; + DECLARE vMaxRate INT DEFAULT 0; # discipline map consist of submodules, we sum all their max rates SELECT SUM(submodules.MaxRate) - INTO vMax - FROM `submodules` - INNER JOIN `modules` ON submodules.ModuleID = modules.ID AND - (modules.Type = 'regular' OR modules.Type = 'exam') - WHERE DisciplineID = modules.DisciplineID; + INTO vMaxRate + FROM `submodules` + INNER JOIN `modules` ON submodules.ModuleID = modules.ID AND + (modules.Type = 'regular' OR modules.Type = 'exam') + WHERE modules.DisciplineID = pDisciplineID; - RETURN vMax; + RETURN vMaxRate; END // DROP FUNCTION IF EXISTS GetRateForDisc// -CREATE FUNCTION `GetRateForDisc` ( `StudentID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `GetRateForDisc` + ( `pStudentID` INT, `pDisciplineID` INT) RETURNS int(11) NO SQL BEGIN - DECLARE rate INT; - SET rate = -1; + DECLARE vRate INT DEFAULT -1; SELECT SUM(rating_table.Rate) - INTO rate - FROM `rating_table` - INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID - INNER JOIN `modules` ON submodules.ModuleID = modules.ID AND - DisciplineID = modules.DisciplineID - WHERE rating_table.StudentID = StudentID AND + INTO vRate + FROM `rating_table` + INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID + INNER JOIN `modules` ON submodules.ModuleID = modules.ID AND + modules.DisciplineID = pDisciplineID + WHERE rating_table.StudentID = pStudentID AND ( modules.Type != 'exam' OR - submodules.ID = + submodules.ID = ( SELECT submodules.ID FROM `submodules` INNER JOIN `rating_table` ON rating_table.SubModuleID = submodules.ID WHERE submodules.ModuleID = modules.ID AND - rating_table.StudentID = StudentID + rating_table.StudentID = pStudentID ORDER BY submodules.OrderNum DESC LIMIT 1 - ) + ) ) - LIMIT 1; + LIMIT 1; - RETURN rate; + RETURN vRate; END // DROP FUNCTION IF EXISTS GetRateForDiscSemester// -CREATE FUNCTION `GetRateForDiscSemester` ( `StudentID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `GetRateForDiscSemester` + ( `pStudentID` INT, `pDisciplineID` INT) RETURNS int(11) NO SQL BEGIN - DECLARE rate INT; - SET rate = -1; + DECLARE vRate INT DEFAULT -1; SELECT SUM(rating_table.Rate) - INTO rate - FROM `rating_table` - INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE rating_table.StudentID = StudentID AND - DisciplineID = modules.DisciplineID AND - modules.Type = 'regular' - LIMIT 1; + INTO vRate + FROM `rating_table` + INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE rating_table.StudentID = pStudentID AND + modules.DisciplineID = pDisciplineID AND + modules.Type = 'regular' + LIMIT 1; - RETURN rate; + RETURN vRate; END // DROP FUNCTION IF EXISTS GetRateForDiscBonus// -CREATE FUNCTION `GetRateForDiscBonus` ( `StudentID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `GetRateForDiscBonus` + ( `pStudentID` INT, `pDisciplineID` INT) RETURNS int(11) NO SQL BEGIN - DECLARE rate INT; - SET rate = -1; - + DECLARE vRate INT DEFAULT -1; SELECT SUM(rating_table.Rate) - INTO rate - FROM `rating_table` - INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE rating_table.StudentID = StudentID AND - DisciplineID = modules.DisciplineID AND - modules.Type = 'bonus' - LIMIT 1; + INTO vRate + FROM `rating_table` + INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE rating_table.StudentID = pStudentID AND + modules.DisciplineID = pDisciplineID AND + modules.Type = 'bonus' + LIMIT 1; - RETURN rate; + RETURN vRate; END // DROP FUNCTION IF EXISTS GetRateForDiscExam// -CREATE FUNCTION `GetRateForDiscExam` ( `StudentID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `GetRateForDiscExam` + ( `pStudentID` INT, `pDisciplineID` INT) RETURNS int(11) NO SQL BEGIN - DECLARE rate INT; - SET rate = -1; - + DECLARE vRate INT DEFAULT -1; SELECT rating_table.Rate - INTO rate - FROM `rating_table` - INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE rating_table.StudentID = StudentID AND - DisciplineID = modules.DisciplineID AND - modules.Type = 'exam' - ORDER BY submodules.OrderNum DESC - LIMIT 1; + INTO vRate + FROM `rating_table` + INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE rating_table.StudentID = pStudentID AND + modules.DisciplineID = pDisciplineID AND + modules.Type = 'exam' + ORDER BY submodules.OrderNum DESC + LIMIT 1; - RETURN rate; + RETURN vRate; END // DROP FUNCTION IF EXISTS GetRateForDiscExamNum// -CREATE FUNCTION `GetRateForDiscExamNum` ( `StudentID` INT, - `DisciplineID` INT, - `OrderNum` INT - ) RETURNS int(11) +CREATE FUNCTION `GetRateForDiscExamNum` + ( `pStudentID` INT, `pDisciplineID` INT, `pOrderNum` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE rate INT; - SET rate = -1; - + DECLARE vRate INT DEFAULT -1; SELECT rating_table.Rate - INTO rate - FROM `rating_table` - INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE rating_table.StudentID = StudentID AND - DisciplineID = modules.DisciplineID AND - modules.Type = 'exam' AND - submodules.OrderNum = OrderNum - LIMIT 1; + INTO vRate + FROM `rating_table` + INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE rating_table.StudentID = pStudentID AND + modules.DisciplineID = pDisciplineID AND + modules.Type = 'exam' AND + submodules.OrderNum = pOrderNum + LIMIT 1; - RETURN rate; + RETURN vRate; END // DROP FUNCTION IF EXISTS GetRateForDiscExtra// -CREATE FUNCTION `GetRateForDiscExtra` ( `StudentID` INT, - `DisciplineID` INT, - `OrderNum` INT - ) RETURNS int(11) +CREATE FUNCTION `GetRateForDiscExtra` + ( `pStudentID` INT, `pDisciplineID` INT, `pOrderNum` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE rate INT; - SET rate = -1; - + DECLARE vRate INT DEFAULT -1; SELECT rating_table.Rate - INTO rate - FROM `rating_table` - INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE rating_table.StudentID = StudentID AND - DisciplineID = modules.DisciplineID AND - modules.Type = 'extra' AND - submodules.OrderNum = OrderNum - LIMIT 1; + INTO vRate + FROM `rating_table` + INNER JOIN `submodules` ON rating_table.SubmoduleID = submodules.ID + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE rating_table.StudentID = pStudentID AND + modules.DisciplineID = pDisciplineID AND + modules.Type = 'extra' AND + submodules.OrderNum = pOrderNum + LIMIT 1; - RETURN rate; + RETURN vRate; END // @@ -279,22 +260,22 @@ END // # check, if any module is created DROP FUNCTION IF EXISTS InternalIsMapCreated// -CREATE FUNCTION `InternalIsMapCreated` ( `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `InternalIsMapCreated` + ( `pDisciplineID` INT) RETURNS int(11) NO SQL -BEGIN - DECLARE res INT; +BEGIN + DECLARE vRes INT DEFAULT -1; SELECT SUM(submodules.MaxRate) - INTO res + INTO vRes FROM `modules` LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID - WHERE modules.DisciplineID = DisciplineID AND + WHERE modules.DisciplineID = pDisciplineID AND (modules.Type = 'regular' OR ( modules.Type = 'exam' AND submodules.OrderNum = 1)) LIMIT 1; - RETURN (res = 100); + RETURN (vRes = 100); END // @@ -365,7 +346,7 @@ BEGIN LIMIT 1; ELSE INSERT INTO `page_access` - (page_access.Pagename, page_access.Bitmask) + (Pagename, Bitmask) VALUES (pPagename, pMask); END IF; @@ -431,7 +412,7 @@ BEGIN IF semesters.ID <= 0 THEN INSERT INTO `general_settings` - (general_settings.ID, general_settings.Val) + (ID, Val) VALUES (1, pSemesterID); ELSE UPDATE `general_settings` @@ -633,36 +614,12 @@ BEGIN # create discipline INSERT INTO `study_groups` - (study_groups.GradeID, study_groups.GroupNum, study_groups.SpecializationID, study_groups.Name ) + (GradeID, GroupNum, SpecializationID, Name ) VALUES (pGradeID, pGroupNum, pSpecializationID, pGroupName); RETURN 0; END // -# TODO: check -# DROP PROCEDURE IF EXISTS GetStudyGroups// -# CREATE PROCEDURE `GetStudyGroups` ( IN `GradeID` INT, -# IN `FacultyID` INT -# ) -# NO SQL -# BEGIN -# SELECT study_groups.ID AS 'GroupID', -# study_groups.GroupNum AS 'GroupNum', -# specializations.ID AS 'SpecID', -# specializations.Name AS 'SpecName', -# specializations.Abbr AS 'SpecAbbr' -# FROM `study_groups` -# INNER JOIN `specializations` ON specializations.ID = study_groups.SpecializationID AND -# FacultyID = specializations.FacultyID -# WHERE GradeID = 0 OR -# study_groups.GradeID = GradeID -# ORDER BY specializations.ID ASC, -# study_groups.GradeID ASC, -# study_groups.GroupNum ASC; -# END // - - - DROP PROCEDURE IF EXISTS GetStudyGroups// CREATE PROCEDURE `GetStudyGroups` (IN `pGradeID` INT, IN `pFacultyID` INT) @@ -746,7 +703,7 @@ BEGIN # create subject INSERT INTO `subjects` - (subjects.Name, subjects.Abbr) + (Name, Abbr) VALUES (pSubjectName, pSubjectAbbr); # get it's id @@ -774,7 +731,7 @@ BEGIN # attach subject to faculty INSERT INTO `subjects_faculties` - (subjects_faculties.SubjectID, subjects_faculties.FacultyID) + (SubjectID, FacultyID) VALUES (vSubjectID, pFacultyID); RETURN 0; END // @@ -1053,7 +1010,7 @@ BEGIN FROM `accounts` WHERE accounts.EMail = pEMail LIMIT 1; - IF checker > 0 THEN + IF vChecker > 0 THEN RETURN -1; END IF; @@ -1089,7 +1046,7 @@ BEGIN # loging INSERT INTO `logs_signin` - (logs_signin.AccountID) + (AccountID) VALUES (vAccountID); RETURN vAccountID; @@ -1150,7 +1107,7 @@ DROP PROCEDURE IF EXISTS GetTeachersByFaculty// CREATE PROCEDURE `GetTeachersByFaculty` (IN `pFacultyID` INT) NO SQL BEGIN - SELECT view_teachers.Teacher AS 'ID', + SELECT view_teachers.TeacherID AS 'ID', view_teachers.LastName AS 'Last', view_teachers.FirstName AS 'First', view_teachers.SecondName AS 'Second', @@ -1169,7 +1126,7 @@ DROP PROCEDURE IF EXISTS GetTeachersByDepartment// CREATE PROCEDURE `GetTeachersByDepartment` (IN `pDepartmentID` INT) NO SQL BEGIN - SELECT view_teachers.Teacher AS 'ID', + SELECT view_teachers.TeacherID AS 'ID', view_teachers.LastName AS 'Last', view_teachers.FirstName AS 'First', view_teachers.SecondName AS 'Second', @@ -1225,8 +1182,7 @@ BEGIN # user role 2 - common teacher # add new account INSERT INTO `accounts` - ( accounts.Login , accounts.Password , accounts.EMail, - accounts.UserRoleID, accounts.ActivationCode ) + ( Login , Password , EMail, UserRoleID, ActivationCode ) VALUES ( NULL, NULL, NULL, 2, pActivationCode); @@ -1243,10 +1199,7 @@ BEGIN # add new teacher INSERT INTO `teachers` - ( teachers.AccountID, - teachers.LastName, teachers.FirstName, teachers.SecondName, - teachers.JobPositionID, teachers.DepartmentID - ) + ( AccountID, LastName, FirstName, SecondName, JobPositionID, DepartmentID) VALUES (vAccountID, pLastName, pFirstName, pSecondName, pJobPositionID, pDepartmentID); RETURN 0; END // @@ -1279,7 +1232,7 @@ BEGIN (pDepartmentName = '' AND departments.Name IS NULL) # or stub department record LIMIT 1; - IF DepID <= 0 THEN + IF vDepID <= 0 THEN RETURN -1; END IF; @@ -1305,8 +1258,7 @@ BEGIN # TODO: user roles INSERT INTO `accounts` - ( accounts.Login , accounts.Password , accounts.EMail, - accounts.UserRoleID, accounts.ActivationCode ) + ( Login , Password , EMail, UserRoleID, ActivationCode ) VALUES ( NULL, NULL, NULL, 2, pActivationCode); SET vAccountID = -1; @@ -1320,13 +1272,7 @@ BEGIN END IF; INSERT INTO `teachers` - ( teachers.AccountID, - teachers.LastName, - teachers.FirstName, - teachers.SecondName, - teachers.JobPositionID, - teachers.DepartmentID - ) + ( AccountID, LastName, FirstName, SecondName, JobPositionID, DepartmentID) VALUES (vAccountID, pLastName, pFirstName, pSecondName, 12, vDepID); RETURN 0; END // @@ -1392,7 +1338,7 @@ BEGIN CONCAT( view_teachers.LastName, view_teachers.FirstName, view_teachers.SecondName) - LIKE CONCAT("%",pFullName,"%") + LIKE CONCAT('%', pFullName, '%') ORDER BY view_teachers.FacultyID ASC, view_teachers.DepName ASC, view_teachers.LastName ASC, view_teachers.FirstName ASC; @@ -1448,38 +1394,6 @@ END // --- TODO: deprecated --- DROP PROCEDURE IF EXISTS GetStudentsByGradeID// --- CREATE PROCEDURE `GetStudentsByGradeID` ( IN `GradeID` INT, --- IN `FacultyID` INT ) --- NO SQL --- BEGIN --- SELECT DISTINCT students.ID AS 'StudentID', --- students.LastName As 'StudentLast', --- students.FirstName AS 'StudentFirst', --- students.SecondName AS 'StudentSecond', --- students.AccountID AS 'StudentAccID', --- study_groups.ID AS 'GroupID', --- grades.ID AS 'GradeID', --- grades.Num AS 'GroupGrade', --- grades.Degree AS 'GroupDegree', --- study_groups.GroupNum AS 'GroupNum', --- disciplines_students.Type AS 'Type' --- # where it's? --- FROM `students` --- INNER JOIN `study_groups` ON students.StudyGroupID = study_groups.ID AND --- GradeID = study_groups.GradeID --- INNER JOIN `specializations` ON study_groups.SpecializationID = specializations.ID AND --- FacultyID = specializations.FacultyID --- INNER JOIN `grades` ON study_groups.GradeID = grades.ID --- ORDER BY students.LastName ASC, --- students.FirstName ASC, --- students.SecondName ASC; --- END // - - - - DROP FUNCTION IF EXISTS CreateStudent// CREATE FUNCTION `CreateStudent` ( `pLastName` VARCHAR(30) CHARSET utf8, @@ -1522,8 +1436,7 @@ BEGIN # create new account INSERT INTO `accounts` - ( accounts.Login , accounts.Password , accounts.EMail, - accounts.UserRoleID, accounts.ActivationCode ) + ( Login , Password , EMail, UserRoleID, ActivationCode ) VALUES ( NULL, NULL, NULL, 1, pActivationCode); # get created account ID @@ -1539,7 +1452,7 @@ BEGIN # create student INSERT INTO `students` - (students.StudyGroupID, students.AccountID, students.LastName, students.FirstName, students.SecondName) + (StudyGroupID, AccountID, LastName, FirstName, SecondName) VALUES (vGroupID, vAccountID, pLastName, pFirstName, pSecondName); RETURN 0; END // @@ -1555,7 +1468,7 @@ CREATE FUNCTION `CreateStudentEx` `pDegree` VARCHAR(20) CHARSET utf8, `pSpecName` VARCHAR(50) CHARSET utf8, `pFacultyID` INT, - `pAtivationCode` VARCHAR(40) CHARSET utf8 + `pActivationCode` VARCHAR(40) CHARSET utf8 ) RETURNS int(11) NO SQL BEGIN @@ -1577,7 +1490,7 @@ BEGIN IF vGradeID <= 0 THEN # insert new grade with pGradeNum and pDegree INSERT INTO `grades` - (grades.Num, grades.Degree) + (Num, Degree) VALUES (pGradeNum, pDegree); # find inserted grade @@ -1609,7 +1522,7 @@ BEGIN IF vSpecID <= 0 THEN # create new specialization INSERT INTO `specializations` - (specializations.Name, specializations.Abbr, specializations.FacultyID ) + (Name, Abbr, FacultyID ) VALUES (pSpecName, NULL, pFacultyID); SET vSpecID = LAST_INSERT_ID(); @@ -1617,7 +1530,7 @@ BEGIN # create new group INSERT INTO `study_groups` - (study_groups.GradeID, study_groups.GroupNum, study_groups.SpecializationID) + (GradeID, GroupNum, SpecializationID) VALUES (vGradeID, pGroupNum, vSpecID); SET vGroupID = LAST_INSERT_ID(); @@ -1636,8 +1549,7 @@ BEGIN # TODO: user roles # create account INSERT INTO `accounts` - ( accounts.Login , accounts.Password , accounts.EMail, - accounts.UserRoleID, accounts.ActivationCode ) + ( Login , Password , EMail, UserRoleID, ActivationCode ) VALUES ( NULL, NULL, NULL, 1, pActivationCode); SET vAccountID = LAST_INSERT_ID(); @@ -1647,8 +1559,7 @@ BEGIN # create student INSERT INTO `students` - (students.StudyGroupID, students.AccountID, - students.LastName, students.FirstName, students.SecondName) + (StudyGroupID, AccountID, LastName, FirstName, SecondName) VALUES (vGroupID, vAccountID, pLastName, pFirstName, pSecondName); RETURN 0; END // @@ -1683,7 +1594,7 @@ BEGIN view_students.GradeID = pGradeID AND (view_students.GroupID = pGroupID OR pGroupID = 0) AND CONCAT(view_students.LastName, view_students.FirstName, view_students.SecondName) - LIKE CONCAT("%", pFullName,"%") AND + LIKE CONCAT('%', pFullName, '%') AND disciplines_groups.ID IS NULL AND (disciplines_students.Type IS NULL OR disciplines_students.Type != 'attach') ORDER BY view_students.GradeID ASC, @@ -1772,7 +1683,7 @@ BEGIN ON view_disciplines_results.DisciplineID = view_disciplines.DisciplineID WHERE view_disciplines.SemesterID = @CurrentSemesterID AND view_disciplines.FacultyID = pFacultyID - ORDER BY view_disciplines.DepName ASC; + ORDER BY view_disciplines.SubjectName ASC; END // @@ -1887,9 +1798,8 @@ END // DROP PROCEDURE IF EXISTS GetMapForStudentExam// -CREATE PROCEDURE `GetMapForStudentExam` ( IN `StudentID` INT, - IN `DisciplineID` INT - ) +CREATE PROCEDURE `GetMapForStudentExam` + ( IN `pStudentID` INT, IN `pDisciplineID` INT) NO SQL BEGIN SELECT view_rating.ModuleID, @@ -1938,8 +1848,8 @@ END // DROP PROCEDURE IF EXISTS GetMapForDisciplineExam// -CREATE PROCEDURE `GetMapForDisciplineExam` ( IN `TeacherID` INT, - IN `DisciplineID` INT +CREATE PROCEDURE `GetMapForDisciplineExam` + ( IN `pTeacherID` INT, IN `pDisciplineID` INT ) NO SQL BEGIN @@ -1955,7 +1865,7 @@ BEGIN view_roadmap.SubmoduleType AS 'SubmoduleControl' FROM `view_roadmap` INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = pDisciplineID - WHERE view_roadmap.DisciplineID = DisciplineID AND + WHERE view_roadmap.DisciplineID = pDisciplineID AND (view_roadmap.ModuleType = 'exam' OR view_roadmap.ModuleType = 'extra') ORDER BY view_roadmap.ModuleType ^ 1 ASC, # 1, 3, 2, 4 ASC @@ -2022,15 +1932,9 @@ BEGIN END IF; INSERT INTO `disciplines` - ( disciplines.AuthorID, - disciplines.GradeID, - disciplines.SubjectID, - disciplines.ExamType, - disciplines.LectionCount, - disciplines.PracticeCount, - disciplines.LabCount, - disciplines.SemesterID, - disciplines.FacultyID + ( AuthorID, GradeID, SubjectID, ExamType, + LectionCount, PracticeCount,LabCount, + SemesterID,FacultyID ) VALUES ( pTeacherID, pGradeID, pSubjectID, pExamType, pLectionCount, pPracticeCount, pLabCount, @@ -2038,12 +1942,10 @@ BEGIN SET vDisciplineID = LAST_INSERT_ID(); INSERT INTO `disciplines_teachers` - ( disciplines_teachers.DisciplineID, - disciplines_teachers.TeacherID - ) + ( DisciplineID,TeacherID ) VALUES (vDisciplineID, pTeacherID); - IF ExamType = 'exam' THEN + IF pExamType = 'exam' THEN SET vChecker = AddModuleExam(pTeacherID, vDisciplineID); END IF; SET vChecker = AddModuleExtra(pTeacherID, vDisciplineID); @@ -2059,7 +1961,7 @@ CREATE FUNCTION `ChangeDisciplineSubject` ( `TeacherID` INT, ) RETURNS int(11) NO SQL BEGIN - DECLARE checker INT; + DECLARE vChecker INT; IF NOT InternalIsTeacherAuthor(TeacherID, DisciplineID) OR InternalIsMapLocked(DisciplineID) @@ -2067,13 +1969,13 @@ BEGIN RETURN -1; END IF; - SET checker = -1; + SET vChecker = -1; SELECT subjects.ID - INTO checker + INTO vChecker FROM `subjects` WHERE subjects.ID = SubjectID LIMIT 1; - IF checker <= 0 THEN + IF vChecker <= 0 THEN RETURN -1; END IF; @@ -2087,154 +1989,141 @@ END // DROP FUNCTION IF EXISTS ChangeDisciplineGrade// -CREATE FUNCTION `ChangeDisciplineGrade` ( `TeacherID` INT, - `DisciplineID` INT, - `GradeID` INT - ) RETURNS int(11) +CREATE FUNCTION `ChangeDisciplineGrade` + ( `pTeacherID` INT, `pDisciplineID` INT, `pGradeID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker INT; - - SET checker = -1; + DECLARE vChecker INT DEFAULT -1; + SELECT grades.ID - INTO checker - FROM `grades` - WHERE grades.ID = GradeID - LIMIT 1; - IF checker <= 0 OR - InternalIsMapLocked(DisciplineID) OR - NOT InternalIsTeacherAuthor(TeacherID, DisciplineID) + INTO vChecker + FROM `grades` + WHERE grades.ID = pGradeID + LIMIT 1; + IF vChecker <= 0 OR + InternalIsMapLocked(pDisciplineID) OR + NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) THEN RETURN -1; END IF; SELECT disciplines.GradeID - INTO checker - FROM `disciplines` - WHERE disciplines.ID = DisciplineID - LIMIT 1; + INTO vChecker + FROM `disciplines` + WHERE disciplines.ID = pDisciplineID + LIMIT 1; - IF checker != GradeID THEN + IF vChecker != pGradeID THEN DELETE FROM `disciplines_groups` - WHERE disciplines_groups.DisciplineID = DisciplineID; + WHERE disciplines_groups.DisciplineID = pDisciplineID; DELETE FROM `disciplines_students` - WHERE disciplines_students.DisciplineID = DisciplineID; + WHERE disciplines_students.DisciplineID = pDisciplineID; END IF; - UPDATE `disciplines` - SET disciplines.GradeID = GradeID - WHERE disciplines.ID = DisciplineID - LIMIT 1; + SET disciplines.GradeID = GradeID + WHERE disciplines.ID = pDisciplineID + LIMIT 1; RETURN 0; END // DROP FUNCTION IF EXISTS ChangeDisciplineControl// -CREATE FUNCTION `ChangeDisciplineControl` ( `TeacherID` INT, - `DisciplineID` INT, - `ExamType` VARCHAR(30) charset utf8 - ) RETURNS int(11) +CREATE FUNCTION `ChangeDisciplineControl` + ( `pTeacherID` INT, `pDisciplineID` INT, + `pExamType` VARCHAR(30) charset utf8 + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, extraMax, vExtraID INT; + DECLARE vChecker, vExtraMax, vExtraID INT DEFAULT -1; - IF InternalIsMapLocked(DisciplineID) OR - NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) + IF InternalIsMapLocked(pDisciplineID) OR + NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) THEN RETURN -1; END IF; - SET checker = -1; SELECT disciplines.ExamType - INTO checker - FROM `disciplines` - WHERE disciplines.ID = DisciplineID - LIMIT 1; + INTO vChecker + FROM `disciplines` + WHERE disciplines.ID = pDisciplineID + LIMIT 1; # get Extra module id - SET vExtraID = -1; SELECT modules.ID - INTO vExtraID - FROM `modules` - WHERE modules.Type = 4 AND - modules.DisciplineID = DisciplineID - LIMIT 1; + INTO vExtraID + FROM `modules` + WHERE modules.Type = 'extra' AND + modules.DisciplineID = pDisciplineID + LIMIT 1; IF vExtraID <= 0 THEN RETURN -1; END IF; - IF (checker != ExamType) + IF (vChecker != pExamType) THEN - IF ExamType = 'exam' THEN - - SET extraMax = 7; - - SET checker = GetDisciplineMaxRate(DisciplineID); - IF checker >= 61 THEN + IF pExamType = 'exam' THEN + SET vExtraMax = 7; + SET vChecker = GetDisciplineMaxRate(pDisciplineID); + IF vChecker >= 61 THEN RETURN 1; END IF; - SET checker = AddModuleExam(TeacherID, DisciplineID); + SET vChecker = AddModuleExam(pTeacherID, pDisciplineID); # delete extra module from DELETE FROM `submodules` - WHERE submodules.OrderNum > 1 AND - submodules.ModuleID = vExtraID; - + WHERE submodules.OrderNum > 1 AND + submodules.ModuleID = vExtraID; ELSE - SET extraMax = 29; - - SET checker = DeleteModuleExam(TeacherID, DisciplineID); - SET checker = AddSubmodule(TeacherID, vExtraID, extraMax, '', NULL, 'LandmarkControl'); - + SET vExtraMax = 29; + SET vChecker = DeleteModuleExam(pTeacherID, pDisciplineID); + SET vChecker = AddSubmodule(pTeacherID, vExtraID, vExtraMax, '', NULL, 'LandmarkControl'); END IF; UPDATE `disciplines` - SET disciplines.ExamType = ExamType - WHERE DisciplineID = disciplines.ID; + SET disciplines.ExamType = ExamType + WHERE disciplines.ID = pDisciplineID; UPDATE `submodules` - SET submodules.MaxRate = extraMax + SET submodules.MaxRate = vExtraMax WHERE submodules.ModuleID = vExtraID; END IF; RETURN 0; END // DROP FUNCTION IF EXISTS ChangeDisciplineHours// -CREATE FUNCTION `ChangeDisciplineHours` ( `TeacherID` INT, - `DisciplineID` INT, - `Hours` INT, - `Type` INT - # Type: 0 - Practice Hours, 1 - Lection Hours, 2 - Lab Hours - ) RETURNS int(11) +CREATE FUNCTION `ChangeDisciplineHours` + ( `pTeacherID` INT, `pDisciplineID` INT, + `pHours` INT, `pType` INT + # Type: 0 - Practice Hours, 1 - Lecture Hours, 2 - Lab Hours + ) RETURNS int(11) NO SQL BEGIN - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) THEN RETURN -1; END IF; - # TODO: switch - IF Type = 0 THEN + CASE pType + WHEN 0 THEN UPDATE `disciplines` - SET disciplines.PracticeCount = Hours - WHERE disciplines.ID = DisciplineID - LIMIT 1; - END IF; - IF Type = 1 THEN + SET disciplines.PracticeCount = pHours + WHERE disciplines.ID = pDisciplineID + LIMIT 1; + WHEN 1 THEN UPDATE `disciplines` - SET disciplines.LectionCount = Hours - WHERE disciplines.ID = DisciplineID - LIMIT 1; - END IF; - IF Type = 2 THEN + SET disciplines.LectionCount = pHours + WHERE disciplines.ID = pDisciplineID + LIMIT 1; + WHEN 2 THEN UPDATE `disciplines` - SET disciplines.LabCount = Hours - WHERE disciplines.ID = DisciplineID - LIMIT 1; - END IF; + SET disciplines.LabCount = pHours + WHERE disciplines.ID = pDisciplineID + LIMIT 1; + END CASE; RETURN 0; END // @@ -2242,48 +2131,44 @@ END // DROP FUNCTION IF EXISTS BindGroup// -CREATE FUNCTION `BindGroup` ( `TeacherID` INT, - `DisciplineID` INt, - `StudyGroupID` INT - ) RETURNS int(11) +CREATE FUNCTION `BindGroup` + ( `pTeacherID` INT, `pDisciplineID` INT, `pStudyGroupID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker INT; + DECLARE vChecker INT DEFAULT -1; # 1. check if AccessedTeacher is author - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) OR - InternalIsMapLocked(disciplineID) + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) OR + InternalIsMapLocked(pDisciplineID) THEN RETURN -1; END IF; # 2. check if study group is bound to discipline - SET checker = -1; SELECT disciplines_groups.ID - INTO checker - FROM `disciplines_groups` - WHERE disciplines_groups.StudyGroupID = StudyGroupID AND - disciplines_groups.DisciplineID = DisciplineID - LIMIT 1; - IF checker > 0 THEN + INTO vChecker + FROM `disciplines_groups` + WHERE disciplines_groups.StudyGroupID = pStudyGroupID AND + disciplines_groups.DisciplineID = pDisciplineID + LIMIT 1; + IF vChecker > 0 THEN RETURN 1; END IF; # 3. delete students of this group which were bound to discipline before DELETE FROM `disciplines_students` - WHERE DisciplineID = disciplines_students.DisciplineID AND - disciplines_students.StudentID IN - ( SELECT students.ID - FROM `students` - WHERE students.StudyGroupID = StudyGroupID - ); + WHERE disciplines_students.DisciplineID = pDisciplineID AND + disciplines_students.StudentID IN + ( SELECT students.ID + FROM `students` + WHERE students.StudyGroupID = pStudyGroupID + ); # 4. bind whole group INSERT INTO `disciplines_groups` - ( disciplines_groups.DisciplineID, - disciplines_groups.StudyGroupID - ) - VALUES ( DisciplineID, StudyGroupID ); + (DisciplineID, StudyGroupID) + VALUES (DisciplineID, StudyGroupID ); RETURN 0; END // @@ -2291,61 +2176,54 @@ END // DROP FUNCTION IF EXISTS BindStudent// -CREATE FUNCTION `BindStudent` ( `TeacherID` INT, - `DisciplineID` INT, - `StudentID` INT - ) RETURNS int(11) +CREATE FUNCTION `BindStudent` + ( `pTeacherID` INT, `pDisciplineID` INT, `pStudentID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, SG, temp INT; + DECLARE vChecker, vGroupID, vTemp INT DEFAULT -1; # 1. check if AccessedTeacher is author - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) THEN RETURN -1; END IF; -# 2. check if student's group is bound yet - SET SG = -1; +# 2. check if student's group is bound yet SELECT students.StudyGroupID - INTO SG - FROM `students` - WHERE students.ID = StudentID - LIMIT 1; + INTO vGroupID + FROM `students` + WHERE students.ID = pStudentID + LIMIT 1; - SET checker = -1; SELECT disciplines_groups.ID - INTO checker - FROM `disciplines_groups` - WHERE DisciplineID = disciplines_groups.DisciplineID AND - SG = disciplines_groups.StudyGroupID - LIMIT 1; - IF checker > 0 THEN + INTO vChecker + FROM `disciplines_groups` + WHERE disciplines_groups.DisciplineID = pDisciplineID AND + disciplines_groups.StudyGroupID = vGroupID + LIMIT 1; + IF vChecker > 0 THEN DELETE FROM `disciplines_students` - WHERE DisciplineID = disciplines_students.DisciplineID AND - StudentID = disciplines_students.StudentID + WHERE disciplines_students.DisciplineID = pDisciplineID AND + disciplines_students.StudentID = pStudentID LIMIT 1; RETURN 0; END IF; # 3. check if student is bound - SET checker = -1; SELECT disciplines_students.ID - INTO checker - FROM `disciplines_students` - WHERE DisciplineID = disciplines_students.DisciplineID AND - StudentID = disciplines_students.StudentID - LIMIT 1; - IF checker > 0 THEN + INTO vChecker + FROM `disciplines_students` + WHERE disciplines_students.DisciplineID = pDisciplineID AND + disciplines_students.StudentID = pStudentID + LIMIT 1; + IF vChecker > 0 THEN RETURN 1; END IF; # 4. bind student INSERT INTO `disciplines_students` - ( disciplines_students.DisciplineID, - disciplines_students.StudentID, - disciplines_students.Type - ) + ( DisciplineID, StudentID, Type) VALUES ( DisciplineID, StudentID, 'attach'); RETURN 0; @@ -2354,29 +2232,28 @@ END // DROP FUNCTION IF EXISTS UnbindGroup// -CREATE FUNCTION `UnbindGroup` ( `TeacherID` INT, - `DisciplineID` INT, - `StudyGroupID` INT - ) RETURNS int(11) +CREATE FUNCTION `UnbindGroup` + ( `pTeacherID` INT, `pDisciplineID` INT, `pGroupID` INT + ) RETURNS int(11) NO SQL BEGIN - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) OR - InternalIsMapLocked(disciplineID) + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) OR + InternalIsMapLocked(pDisciplineID) THEN RETURN -1; END IF; DELETE FROM `disciplines_groups` - WHERE DisciplineID = disciplines_groups.DisciplineID AND - StudyGroupID = disciplines_groups.StudyGroupID + WHERE disciplines_groups.DisciplineID = pDisciplineID AND + disciplines_groups.StudyGroupID = pGroupID LIMIT 1; DELETE FROM `disciplines_students` - WHERE DisciplineID = disciplines_students.DisciplineID AND + WHERE disciplines_students.DisciplineID = pDisciplineID AND disciplines_students.StudentID IN ( SELECT students.ID FROM `students` - WHERE students.StudyGroupID = StudyGroupID + WHERE students.StudyGroupID = pGroupID ); RETURN 0; END // @@ -2384,47 +2261,41 @@ END // DROP FUNCTION IF EXISTS UnbindStudent// -CREATE FUNCTION `UnbindStudent` ( `TeacherID` INT, - `DisciplineID` INt, - `StudentID` INT - ) RETURNS int(11) +CREATE FUNCTION `UnbindStudent` + ( `pTeacherID` INT, `pDisciplineID` INT, `pStudentID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, SG INT; - - SET SG = -1; + DECLARE vChecker, vGroupID INT DEFAULT -1; + SELECT students.StudyGroupID - INTO SG - FROM `students` - WHERE students.ID = StudentID - LIMIT 1; - IF SG <= 0 OR - NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) + INTO vGroupID + FROM `students` + WHERE students.ID = pStudentID + LIMIT 1; + IF vGroupID <= 0 OR + NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) THEN RETURN -1; END IF; - SET checker = -1; SELECT disciplines_groups.ID - INTO checker - FROM `disciplines_groups` - WHERE DisciplineID = disciplines_groups.DisciplineID AND - SG = disciplines_groups.StudyGroupID - LIMIT 1; + INTO vChecker + FROM `disciplines_groups` + WHERE disciplines_groups.DisciplineID = pDisciplineID AND + disciplines_groups.StudyGroupID = vGroupID + LIMIT 1; - IF checker > 0 THEN + IF vChecker > 0 THEN INSERT INTO `disciplines_students` - ( disciplines_students.DisciplineID, - disciplines_students.StudentID, - disciplines_students.Type - ) - VALUES ( DisciplineID, StudentID, 'detach'); + (DisciplineID, StudentID, Type) + VALUES ( DisciplineID, StudentID, 'detach'); ELSE DELETE FROM `disciplines_students` - WHERE DisciplineID = disciplines_students.DisciplineID AND - StudentID = disciplines_students.StudentID + WHERE disciplines_students.DisciplineID = pDisciplineID AND + disciplines_students.StudentID = pStudentID LIMIT 1; END IF; RETURN 0; @@ -2439,16 +2310,16 @@ CREATE FUNCTION `BindTeacher`( `TeacherID` INT, ) RETURNS int(11) NO SQL BEGIN - DECLARE checker boolean; + DECLARE vChecker boolean; # 1. check if AccessedTeacher is author - SET checker = FALSE; + SET vChecker = FALSE; SELECT (TeacherID = disciplines.AuthorID) - INTO checker + INTO vChecker FROM `disciplines` WHERE DisciplineID = disciplines.ID LIMIT 1; - IF NOT checker THEN + IF NOT vChecker THEN RETURN -1; END IF; @@ -2460,9 +2331,7 @@ BEGIN # 3. insert BindingTeacher in access list INSERT INTO `disciplines_teachers` - ( disciplines_teachers.DisciplineID, - disciplines_teachers.TeacherID - ) + ( DisciplineID, TeacherID) VALUES ( DisciplineID, BindingTeacherID ); RETURN 0; END // @@ -2470,109 +2339,99 @@ END // DROP FUNCTION IF EXISTS UnbindTeacher// -CREATE FUNCTION `UnbindTeacher` ( `AuthorID` INT, - `BindingTeacher` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `UnbindTeacher` + ( `pAuthorID` INT, `pBindingTeacher` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker boolean; + DECLARE vChecker boolean DEFAULT FALSE; - IF AuthorID = BindingTeacher THEN + IF pAuthorID = pBindingTeacher THEN RETURN -1; END IF; - SET checker = FALSE; - SELECT (AuthorID = disciplines.AuthorID) - INTO checker - FROM `disciplines` - WHERE DisciplineID = disciplines.ID - LIMIT 1; - IF NOT checker THEN + SELECT (disciplines.AuthorID = pAuthorID) + INTO vChecker + FROM `disciplines` + WHERE disciplines.ID = pDisciplineID + LIMIT 1; + IF NOT vChecker THEN RETURN -1; END IF; DELETE FROM `disciplines_teachers` - WHERE DisciplineID = disciplines_teachers.DisciplineID AND - BindingTeacher = disciplines_teachers.TeacherID; + WHERE disciplines_teachers.DisciplineID = pDisciplineID AND + disciplines_teachers.TeacherID = pBindingTeacher; RETURN 0; - END // DROP FUNCTION IF EXISTS DelegateDiscipline// -CREATE FUNCTION `DelegateDiscipline` ( `AuthorID` INT, - `NewAuthorID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `DelegateDiscipline` + ( `pAuthorID` INT, `pNewAuthorID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker boolean; + DECLARE vChecker boolean DEFAULT FALSE; - IF AuthorID = NewAuthorID OR - NOT InternalIsTeacherAuthor(AuthorID, DisciplineID) + IF pAuthorID = pNewAuthorID OR + NOT InternalIsTeacherAuthor(pAuthorID, pDisciplineID) THEN RETURN -1; END IF; - SET checker = FALSE; SELECT (AuthorID = disciplines.AuthorID) - INTO checker - FROM `disciplines` - INNER JOIN `disciplines_teachers` ON DisciplineID = disciplines_teachers.DisciplineID AND - NewAuthorID = disciplines_teachers.TeacherID + INTO vChecker + FROM `disciplines` + INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = pDisciplineID AND + disciplines_teachers.TeacherID = pNewAuthorID WHERE DisciplineID = disciplines.ID AND - AuthorID = disciplines.AuthorID - LIMIT 1; - IF NOT checker THEN + disciplines.AuthorID = pAuthorID + LIMIT 1; + IF NOT vChecker THEN RETURN -1; END IF; UPDATE `disciplines` - SET disciplines.AuthorID = NewAuthorID - WHERE disciplines.ID = DisciplineID - LIMIT 1; + SET disciplines.AuthorID = pNewAuthorID + WHERE disciplines.ID = pDisciplineID + LIMIT 1; RETURN 0; END // DROP FUNCTION IF EXISTS ClearDiscipline// -CREATE FUNCTION `ClearDiscipline` ( `AuthorID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `ClearDiscipline` + ( `pAuthorID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL -BEGIN - DECLARE checker boolean; - DECLARE vtemp INT; - - IF NOT InternalIsTeacherAuthor(AuthorID, DisciplineID) THEN +BEGIN + IF NOT InternalIsTeacherAuthor(pAuthorID, pDisciplineID) THEN RETURN -1; END IF; DELETE FROM `logs_rating` - WHERE logs_rating.SubModuleID IN - ( - SELECT submodules.ID - FROM `submodules` - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE modules.DisciplineID = DisciplineID - ); + WHERE logs_rating.SubModuleID IN + (SELECT submodules.ID + FROM `submodules` + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE modules.DisciplineID = pDisciplineID + ); DELETE FROM `rating_table` - WHERE rating_table.SubModuleID IN - ( - SELECT submodules.ID - FROM `submodules` - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE modules.DisciplineID = DisciplineID - ); + WHERE rating_table.SubModuleID IN + (SELECT submodules.ID + FROM `submodules` + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE modules.DisciplineID = pDisciplineID + ); UPDATE `disciplines` - SET disciplines.isLocked = 0 - WHERE disciplines.ID = DisciplineID - LIMIT 1; + SET disciplines.isLocked = 0 + WHERE disciplines.ID = pDisciplineID + LIMIT 1; RETURN 0; END // @@ -2580,73 +2439,71 @@ END // DROP FUNCTION IF EXISTS DeleteDiscipline// -CREATE FUNCTION `DeleteDiscipline` ( `AuthorID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `DeleteDiscipline` + ( `pAuthorID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE vtemp INT; - IF NOT InternalIsTeacherAuthor(AuthorID, DisciplineID) THEN + DECLARE vTemp INT; + IF NOT InternalIsTeacherAuthor(pAuthorID, pDisciplineID) THEN RETURN -1; END IF; SELECT disciplines.isLocked - INTO vtemp - FROM `disciplines` - WHERE disciplines.ID = DisciplineID - LIMIT 1; + INTO vTemp + FROM `disciplines` + WHERE disciplines.ID = pDisciplineID + LIMIT 1; - IF vtemp != 0 THEN + IF vTemp != 0 THEN RETURN -1; END IF; - SET vtemp = CountRatings(AuthorID, DisciplineID); - IF vtemp > 0 THEN + SET vTemp = CountRatings(pAuthorID, pDisciplineID); + IF vTemp > 0 THEN RETURN -1; END IF; DELETE FROM `logs_rating` - WHERE logs_rating.SubModuleID IN - ( - SELECT submodules.ID - FROM `submodules` - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE modules.DisciplineID = DisciplineID - ); + WHERE logs_rating.SubModuleID IN + ( + SELECT submodules.ID + FROM `submodules` + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE modules.DisciplineID = pDisciplineID + ); DELETE FROM `rating_table` - WHERE rating_table.SubModuleID IN - ( - SELECT submodules.ID - FROM `submodules` - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE modules.DisciplineID = DisciplineID - ); + WHERE rating_table.SubModuleID IN + (SELECT submodules.ID + FROM `submodules` + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE modules.DisciplineID = pDisciplineID + ); DELETE FROM `submodules` - WHERE submodules.ModuleID IN - ( - SELECT modules.ID - FROM `modules` - WHERE modules.DisciplineID = DisciplineID - ); + WHERE submodules.ModuleID IN + (SELECT modules.ID + FROM `modules` + WHERE modules.DisciplineID = pDisciplineID + ); DELETE FROM `modules` - WHERE modules.DisciplineID = DisciplineID; + WHERE modules.DisciplineID = pDisciplineID; DELETE FROM `disciplines_teachers` - WHERE disciplines_teachers.DisciplineID = DisciplineID; + WHERE disciplines_teachers.DisciplineID = pDisciplineID; DELETE FROM `disciplines_students` - WHERE disciplines_students.DisciplineID = DisciplineID; + WHERE disciplines_students.DisciplineID = pDisciplineID; DELETE FROM `disciplines_groups` - WHERE disciplines_groups.DisciplineID = DisciplineID; + WHERE disciplines_groups.DisciplineID = pDisciplineID; DELETE FROM `disciplines` - WHERE disciplines.ID = DisciplineID - LIMIT 1; + WHERE disciplines.ID = pDisciplineID + LIMIT 1; RETURN 0; END // @@ -2654,64 +2511,59 @@ END // DROP FUNCTION IF EXISTS CountRatings// -CREATE FUNCTION `CountRatings` ( `TeacherID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `CountRatings` + ( `pTeacherID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE res boolean; + DECLARE vRes INT DEFAULT 0; - IF NOT InternalIsTeacherBinded(TeacherID, DisciplineID) THEN + IF NOT InternalIsTeacherBinded(pTeacherID, pDisciplineID) THEN RETURN -1; END IF; - SET res = 0; SELECT COUNT(rating_table.StudentID) - INTO res - FROM `rating_table` - INNER JOIN `submodules` ON rating_table.SubModuleID = submodules.ID - INNER JOIN `modules` ON submodules.ModuleID = modules.ID - WHERE modules.DisciplineID = DisciplineID - LIMIT 1; + INTO vRes + FROM `rating_table` + INNER JOIN `submodules` ON rating_table.SubModuleID = submodules.ID + INNER JOIN `modules` ON submodules.ModuleID = modules.ID + WHERE modules.DisciplineID = pDisciplineID + LIMIT 1; - RETURN res; + RETURN vRes; END // DROP FUNCTION IF EXISTS RestrictAfterMilestone// -CREATE FUNCTION `RestrictAfterMilestone` ( `TeacherID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `RestrictAfterMilestone` + ( `pTeacherID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN UPDATE `disciplines` - SET disciplines.MilestoneDate = CURDATE(), - disciplines.isMilestone = 1 - WHERE disciplines.ID = DisciplineID - LIMIT 1; + SET disciplines.MilestoneDate = CURDATE(), + disciplines.isMilestone = 1 + WHERE disciplines.ID = pDisciplineID + LIMIT 1; RETURN 0; END // DROP FUNCTION IF EXISTS RestrictAfterMilestoneForCredits// -CREATE FUNCTION `RestrictAfterMilestoneForCredits` ( `TeacherID` INT, - `FacultyID` INT +CREATE FUNCTION `RestrictAfterMilestoneForCredits` ( `pTeacherID` INT, + `pFacultyID` INT ) RETURNS int(11) NO SQL -BEGIN - DECLARE semID INT; - - SET semID = @CurrentSemesterID; - +BEGIN UPDATE `disciplines` - SET disciplines.MilestoneDate = CURDATE(), - disciplines.isMilestone = 1 - WHERE disciplines.SemesterID = semID AND - disciplines.ExamType = 'credit' AND - disciplines.FacultyID= FacultyID; + SET disciplines.MilestoneDate = CURDATE(), + disciplines.isMilestone = 1 + WHERE disciplines.SemesterID = @CurrentSemesterID AND + disciplines.ExamType = 'credit' AND + disciplines.FacultyID= pFacultyID; RETURN 0; END // @@ -2723,74 +2575,72 @@ END // DROP FUNCTION IF EXISTS ChangeModuleName// -CREATE FUNCTION `ChangeModuleName` ( `TeacherID` INT, - `ModuleID` INT, - `Name` VARCHAR(200) charset utf8 - ) RETURNS int(11) +CREATE FUNCTION `ChangeModuleName` + ( `pTeacherID` INT, `pModuleID` INT, + `pName` VARCHAR(200) charset utf8 + ) RETURNS int(11) NO SQL BEGIN - DECLARE DisciplineID INT; - - SET DisciplineID = -1; + DECLARE vDisciplineID INT DEFAULT -1; + SELECT disciplines.ID - INTO DisciplineID - FROM `modules` - INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID AND - TeacherID = disciplines.AuthorID - WHERE ModuleID = modules.ID AND - modules.Type = 1 - LIMIT 1; - IF DisciplineID <= 0 OR - InternalIsMapLocked(DisciplineID) THEN + INTO vDisciplineID + FROM `modules` + INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID AND + disciplines.AuthorID = pTeacherID + WHERE modules.ID = pModuleID AND + modules.Type = 'regular' + LIMIT 1; + IF vDisciplineID <= 0 OR + InternalIsMapLocked(vDisciplineID) + THEN RETURN -1; END IF; UPDATE `modules` - SET modules.Name = Name - WHERE modules.ID = ModuleID - LIMIT 1; + SET modules.Name = pName + WHERE modules.ID = pModuleID + LIMIT 1; RETURN 0; END // DROP FUNCTION IF EXISTS AddModule// -CREATE FUNCTION `AddModule` ( `TeacherID` INT, - `DisciplineID` INT, - `Name` VARCHAR(200) charset utf8 - ) RETURNS int(11) +CREATE FUNCTION `AddModule` + ( `pTeacherID` INT, `pDisciplineID` INT, + `pName` VARCHAR(200) charset utf8 + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker INT; + DECLARE vChecker INT DEFAULT 0; - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) OR - InternalIsMapLocked(DisciplineID) + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) OR + InternalIsMapLocked(pDisciplineID) THEN RETURN -1; END IF; - SET checker = 0; SELECT MAX(modules.OrderNum) - INTO checker - FROM `modules` - WHERE DisciplineID = modules.DisciplineID AND - modules.Type = 1 - LIMIT 1; - IF checker is NULL THEN - SET checker = 0; + INTO vChecker + FROM `modules` + WHERE modules.DisciplineID = pDisciplineID AND + modules.Type = 'regular' + LIMIT 1; + IF vChecker is NULL THEN + SET vChecker = 0; END IF; - SET checker = checker + 1; - + SET vChecker = vChecker + 1; INSERT INTO `modules` - ( modules.Name, modules.OrderNum, modules.DisciplineID ) - VALUES ( Name , checker , DisciplineID ); + (Name, OrderNum, DisciplineID ) + VALUES (Name , vChecker , DisciplineID ); - RETURN ( SELECT modules.ID + RETURN (SELECT modules.ID FROM `modules` - WHERE DisciplineID = modules.DisciplineID AND - checker = modules.OrderNum + WHERE modules.DisciplineID = pDisciplineID AND + vChecker = modules.OrderNum LIMIT 1 ); END // @@ -2798,88 +2648,82 @@ END // DROP FUNCTION IF EXISTS AddModuleExam// -CREATE FUNCTION `AddModuleExam` ( `TeacherID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `AddModuleExam` + ( `pTeacherID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, vModule INT; - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) OR - InternalIsMapLocked(DisciplineID) + DECLARE vChecker, vModule INT DEFAULT -1; + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) OR + InternalIsMapLocked(pDisciplineID) THEN RETURN -1; END IF; - SET checker = -1; SELECT modules.ID - INTO checker - FROM `modules` - WHERE DisciplineID = modules.DisciplineID AND - modules.Type = 2; - IF checker > 0 THEN + INTO vChecker + FROM `modules` + WHERE modules.DisciplineID = pDisciplineID AND + modules.Type = 'exam'; + IF vChecker > 0 THEN RETURN -2; END IF; - INSERT INTO `modules` - ( modules.Name, modules.OrderNum, modules.DisciplineID, modules.Type ) + ( Name, OrderNum, DisciplineID, Type ) VALUES ( 'Ðкзамен' , 3141692 , DisciplineID, 2 ); - SET vModule = -1; SELECT modules.ID - INTO vModule - FROM `modules` - WHERE DisciplineID = modules.DisciplineID AND - modules.Type = 2 - LIMIT 1; + INTO vModule + FROM `modules` + WHERE modules.DisciplineID = pDisciplineID AND + modules.Type = 'exam' + LIMIT 1; IF vModule <= 0 THEN RETURN -1; END IF; - SET checker = AddSubmodule(TeacherID, vModule, 40, '', NULL, 'LandmarkControl'); - SET checker = AddSubmodule(TeacherID, vModule, 40, '', NULL, 'LandmarkControl'); - SET checker = AddSubmodule(TeacherID, vModule, 40, '', NULL, 'LandmarkControl'); + SET vChecker = AddSubmodule(pTeacherID, vModule, 40, '', NULL, 'LandmarkControl'); + SET vChecker = AddSubmodule(pTeacherID, vModule, 40, '', NULL, 'LandmarkControl'); + SET vChecker = AddSubmodule(pTeacherID, vModule, 40, '', NULL, 'LandmarkControl'); RETURN vModule; END // DROP FUNCTION IF EXISTS AddModuleExtra// -CREATE FUNCTION `AddModuleExtra` ( `TeacherID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `AddModuleExtra` + ( `pTeacherID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, vModule, vType, vGap INT; - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) + DECLARE vChecker, vModule, vType, vGap INT DEFAULT -1; + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) THEN RETURN -1; END IF; - SET vType = -1; - SET checker = -1; SELECT modules.ID - INTO checker - FROM `modules` - WHERE DisciplineID = modules.DisciplineID AND - modules.Type = 4 - LIMIT 1; - IF checker > 0 THEN + INTO vChecker + FROM `modules` + WHERE modules.DisciplineID = pDisciplineID AND + modules.Type = 'extra' + LIMIT 1; + IF vChecker > 0 THEN RETURN -2; END IF; - INSERT INTO `modules` - ( modules.Name, modules.OrderNum, modules.DisciplineID, modules.Type ) - VALUES ( 'Добор баллов' , 2900666 , DisciplineID, 4 ); + (Name, OrderNum, DisciplineID, Type) + VALUES ('Добор баллов' , 2900666 , pDisciplineID, 'extra'); + - SET vModule = -1; SELECT modules.ID, disciplines.ExamType - INTO vModule, vType - FROM `modules` - INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID - WHERE DisciplineID = modules.DisciplineID AND - modules.Type = 4 - LIMIT 1; + INTO vModule, vType + FROM `modules` + INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID + WHERE modules.DisciplineID = pDisciplineID AND + modules.Type = 'extra' + LIMIT 1; IF vModule <= 0 THEN RETURN -1; END IF; @@ -2892,52 +2736,51 @@ BEGIN IF vType = 2 THEN # credit SET vGap = 29; - SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl'); + SET vChecker = AddSubmodule(pTeacherID, vModule, vGap, '', NULL, 'LandmarkControl'); END IF; - SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl'); + SET vChecker = AddSubmodule(pTeacherID, vModule, vGap, '', NULL, 'LandmarkControl'); RETURN vModule; END // DROP FUNCTION IF EXISTS DeleteModule// -CREATE FUNCTION `DeleteModule` ( `TeacherID` INT, - `ModuleID` INT - ) RETURNS int(11) +CREATE FUNCTION `DeleteModule` + ( `pTeacherID` INT, `pModuleID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker INT; + DECLARE vChecker INT DEFAULT -1; - SET checker = -1; SELECT disciplines.ID - INTO checker - FROM `modules` - INNER JOIN `disciplines` ON modules.DisciplineID = disciplines.ID AND - TeacherID = disciplines.AuthorID - WHERE ModuleID = modules.ID - LIMIT 1; - IF checker <= 0 THEN + INTO vChecker + FROM `modules` + INNER JOIN `disciplines` ON modules.DisciplineID = disciplines.ID AND + disciplines.AuthorID = pTeacherID + WHERE modules.ID = pModuleID + LIMIT 1; + IF vChecker <= 0 THEN RETURN -1; END IF; - IF NOT InternalIsTeacherAuthor(TeacherID,checker) OR - InternalIsMapLocked(checker) + IF NOT InternalIsTeacherAuthor(pTeacherID, vChecker) OR + InternalIsMapLocked(vChecker) THEN RETURN -1; END IF; DELETE FROM `submodules` - WHERE submodules.ModuleID = ModuleID; + WHERE submodules.ModuleID = pModuleID; DELETE FROM `modules` - WHERE ModuleID = modules.ID; + WHERE modules.ID = pModuleID; SET @counter = 0; UPDATE `modules` - SET modules.OrderNum = (@counter := @counter + 1) - WHERE modules.DisciplineID = checker AND - modules.Type = 1 # regular - ORDER BY modules.OrderNum ASC; + SET modules.OrderNum = (@counter := @counter + 1) + WHERE modules.DisciplineID = vChecker AND + modules.Type = 'regular' + ORDER BY modules.OrderNum ASC; RETURN 0; END // @@ -2945,35 +2788,34 @@ END // DROP FUNCTION IF EXISTS DeleteModuleExam// -CREATE FUNCTION `DeleteModuleExam` ( `TeacherID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `DeleteModuleExam` + ( `pTeacherID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE ExamModuleID INT; - IF NOT InternalIsTeacherAuthor(TeacherID, DisciplineID) OR - InternalIsMapLocked(DisciplineID) + DECLARE vExamModuleID INT DEFAULT -1; + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) OR + InternalIsMapLocked(pDisciplineID) THEN RETURN -1; END IF; - SET ExamModuleID = -1; SELECT modules.ID - INTO ExamModuleID - FROM `modules` - WHERE modules.Type = 2 AND - DisciplineID = modules.DisciplineID - LIMIT 1; - IF ExamModuleID <= 0 THEN + INTO vExamModuleID + FROM `modules` + WHERE modules.Type = 'exam' AND + modules.DisciplineID = pDisciplineID + LIMIT 1; + IF vExamModuleID <= 0 THEN RETURN -1; END IF; DELETE FROM `submodules` - WHERE ExamModuleID = submodules.ModuleID; + WHERE vExamModuleID = submodules.ModuleID; DELETE FROM `modules` - WHERE ExamModuleID = modules.ID - LIMIT 1; + WHERE vExamModuleID = modules.ID + LIMIT 1; RETURN 0; END // @@ -2981,54 +2823,51 @@ END // DROP FUNCTION IF EXISTS SwapModuleOrder// -CREATE FUNCTION `SwapModuleOrder` ( `TeacherID` INT, - `ModuleID1` INT, - `ModuleID2` INT - ) RETURNS int(11) +CREATE FUNCTION `SwapModuleOrder` + ( `pTeacherID` INT, `pModuleID1` INT, `pModuleID2` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, ord1, ord2, disc1, disc2 INT; + DECLARE vChecker, vOrder1, vOrder2, + vDisciplineID1, vDisciplineID2 INT DEFAULT -1; - - SET disc1 = -1; - SET disc2 = -1; SELECT modules.OrderNum, modules.DisciplineID - INTO ord1, disc1 - FROM `modules` - INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID - WHERE TeacherID = disciplines.AuthorID AND - modules.ID = ModuleID1 AND - modules.Type = 1 - LIMIT 1; + INTO vOrder1, vDisciplineID1 + FROM `modules` + INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID + WHERE disciplines.AuthorID = pTeacherID AND + modules.ID = pModuleID1 AND + modules.Type = 'regular' + LIMIT 1; SELECT modules.OrderNum, modules.DisciplineID - INTO ord2, disc2 - FROM `modules` - INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID - WHERE TeacherID = disciplines.AuthorID AND - modules.ID = ModuleID2 AND - modules.Type = 1 - LIMIT 1; - IF disc1 != disc2 OR disc1 <= 0 OR - InternalIsMapLocked(disc1) THEN + INTO vOrder2, vDisciplineID2 + FROM `modules` + INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID + WHERE disciplines.AuthorID = pTeacherID AND + modules.ID = pModuleID2 AND + modules.Type = 'regular' + LIMIT 1; + IF vDisciplineID1 != vDisciplineID2 OR vDisciplineID1 <= 0 OR + InternalIsMapLocked(vDisciplineID1) THEN RETURN -1; END IF; UPDATE `modules` - SET modules.OrderNum = 271828 - WHERE modules.ID = ModuleID1; + SET modules.OrderNum = 271828 + WHERE modules.ID = pModuleID1; UPDATE `modules` - SET modules.OrderNum = ord1 - WHERE modules.ID = ModuleID2 - LIMIT 1; + SET modules.OrderNum = vOrder1 + WHERE modules.ID = pModuleID2 + LIMIT 1; UPDATE `modules` - SET modules.OrderNum = ord2 - WHERE modules.ID = ModuleID1 - LIMIT 1; + SET modules.OrderNum = vOrder2 + WHERE modules.ID = pModuleID1 + LIMIT 1; RETURN 0; END // @@ -3036,80 +2875,76 @@ END // DROP FUNCTION IF EXISTS AddModuleBonus// -CREATE FUNCTION `AddModuleBonus` ( `TeacherID` INT, - `DisciplineID` INT - - ) RETURNS int(11) +CREATE FUNCTION `AddModuleBonus` + ( `pTeacherID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, vModule INT; - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) OR - InternalIsMapLocked(DisciplineID) + DECLARE vChecker, vModuleID INT DEFAULT -1; + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) OR + InternalIsMapLocked(pDisciplineID) THEN RETURN -1; END IF; - SET checker = -1; SELECT modules.ID - INTO checker - FROM `modules` - WHERE DisciplineID = modules.DisciplineID AND - modules.Type = 3; - IF checker > 0 THEN + INTO vChecker + FROM `modules` + WHERE modules.DisciplineID = pDisciplineID AND + modules.Type = 'bonus'; + IF vChecker > 0 THEN RETURN -2; END IF; INSERT INTO `modules` - ( modules.Name, modules.OrderNum, modules.DisciplineID, modules.Type ) - VALUES ( 'БонуÑные баллы' , 2141692 , DisciplineID, 3 ); + (Name, OrderNum, DisciplineID, Type) + VALUES ('БонуÑные баллы' , 2141692 , pDisciplineID, 3 ); - SET vModule = -1; SELECT modules.ID - INTO vModule - FROM `modules` - WHERE DisciplineID = modules.DisciplineID AND - modules.Type = 3 - LIMIT 1; - IF vModule <= 0 THEN + INTO vModuleID + FROM `modules` + WHERE modules.DisciplineID = pDisciplineID AND + modules.Type = 'bonus' + LIMIT 1; + IF vModuleID <= 0 THEN RETURN -1; END IF; - SET checker = AddSubmodule(TeacherID, vModule, 10, '', NULL, 'LandmarkControl'); + SET vChecker = AddSubmodule(pTeacherID, vModuleID, 10, '', NULL, 'LandmarkControl'); RETURN 0; END // DROP FUNCTION IF EXISTS DeleteModuleBonus// -CREATE FUNCTION `DeleteModuleBonus` ( `TeacherID` INT, - `DisciplineID` INT - ) RETURNS int(11) +CREATE FUNCTION `DeleteModuleBonus` + ( `pTeacherID` INT, `pDisciplineID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE BonusModuleID INT; - IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID) OR - InternalIsMapLocked(DisciplineID) + DECLARE vBonusModuleID INT DEFAULT -1; + IF NOT InternalIsTeacherAuthor(pTeacherID, pDisciplineID) OR + InternalIsMapLocked(pDisciplineID) THEN RETURN -1; END IF; - SET BonusModuleID = -1; SELECT modules.ID - INTO BonusModuleID + INTO vBonusModuleID FROM `modules` - WHERE modules.Type = 3 AND - DisciplineID = modules.DisciplineID + WHERE modules.Type = 'bonus' AND + modules.DisciplineID = pDisciplineID LIMIT 1; - IF BonusModuleID <= 0 THEN + IF vBonusModuleID <= 0 THEN RETURN -1; END IF; DELETE FROM `submodules` - WHERE BonusModuleID = submodules.ModuleID; + WHERE vBonusModuleID = submodules.ModuleID; DELETE FROM `modules` - WHERE BonusModuleID = modules.ID - LIMIT 1; + WHERE vBonusModuleID = modules.ID + LIMIT 1; RETURN 0; END // @@ -3130,20 +2965,20 @@ CREATE FUNCTION `ChangeSubmoduleMaxAndControl` ( `TeacherID` INT, ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, disciplineID INT; + DECLARE vChecker, disciplineID INT; - SET checker = -1; + SET vChecker = -1; SET disciplineID = -1; SELECT submodules.ID, disciplines.ID - INTO checker, disciplineID + INTO vChecker, disciplineID FROM `submodules` INNER JOIN `modules` ON submodules.ModuleID = modules.ID INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID WHERE TeacherID = disciplines.AuthorID AND SubmoduleID = submodules.ID LIMIT 1; - IF checker <= 0 OR + IF vChecker <= 0 OR disciplineID <= 0 OR InternalIsMapLocked(disciplineID) THEN RETURN -1; @@ -3167,20 +3002,20 @@ CREATE FUNCTION `ChangeSubmoduleName` ( `TeacherID` INT, ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, disciplineID INT; + DECLARE vChecker, disciplineID INT; SET disciplineID = -1; - SET checker = -1; + SET vChecker = -1; SELECT submodules.ID, disciplines.ID - INTO checker, disciplineID + INTO vChecker, disciplineID FROM `submodules` INNER JOIN `modules` ON submodules.ModuleID = modules.ID INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID WHERE TeacherID = disciplines.AuthorID AND SubmoduleID = submodules.ID LIMIT 1; - IF checker <= 0 OR + IF vChecker <= 0 OR disciplineID <= 0 OR InternalIsMapLocked(disciplineID) THEN RETURN -1; @@ -3202,20 +3037,20 @@ CREATE FUNCTION `ChangeSubmoduleDescription` ( `TeacherID` INT, ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, disciplineID INT; + DECLARE vChecker, disciplineID INT; - SET checker = -1; + SET vChecker = -1; SET disciplineID = -1; SELECT submodules.ID, disciplines.ID - INTO checker, disciplineID + INTO vChecker, disciplineID FROM `submodules` INNER JOIN `modules` ON submodules.ModuleID = modules.ID INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID WHERE TeacherID = disciplines.AuthorID AND SubmoduleID = submodules.ID LIMIT 1; - IF checker <= 0 OR + IF vChecker <= 0 OR disciplineID <= 0 OR InternalIsMapLocked(disciplineID) THEN RETURN -1; @@ -3232,49 +3067,47 @@ END // DROP FUNCTION IF EXISTS DeleteSubmodule// -CREATE FUNCTION `DeleteSubmodule` ( `TeacherID` INT, - `SubmoduleID` INT - ) RETURNS int(11) +CREATE FUNCTION `DeleteSubmodule` + ( `pTeacherID` INT, `pSubmoduleID` INT + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, ModID, disciplineID INT; + DECLARE vChecker, vModuleID, vDisciplineID INT DEFAULT -1; - SET checker = -1; - SET disciplineID = -1; SELECT submodules.ID, modules.ID, disciplines.ID - INTO checker, ModID, disciplineID - FROM `submodules` - INNER JOIN `modules` ON modules.ID = submodules.ModuleID - INNER JOIN `disciplines` ON modules.DisciplineID = disciplines.ID - WHERE TeacherID = disciplines.AuthorID AND - SubmoduleID = submodules.ID - LIMIT 1; - IF checker <= 0 OR - disciplineID <= 0 OR - InternalIsMapLocked(disciplineID) THEN + INTO vChecker, vModuleID, disciplineID + FROM `submodules` + INNER JOIN `modules` ON modules.ID = submodules.ModuleID + INNER JOIN `disciplines` ON modules.DisciplineID = disciplines.ID + WHERE disciplines.AuthorID = pTeacherID AND + submodules.ID = pSubmoduleID + LIMIT 1; + IF vChecker <= 0 OR + vDisciplineID <= 0 OR + InternalIsMapLocked(vDisciplineID) THEN RETURN -1; END IF; - SET checker = -1; + SET vChecker = -1; SELECT rating_table.StudentID - INTO checker - FROM `rating_table` - WHERE rating_table.SubmoduleID = SubmoduleID - LIMIT 1; - IF checker > 0 THEN + INTO vChecker + FROM `rating_table` + WHERE rating_table.SubmoduleID = pSubmoduleID + LIMIT 1; + IF vChecker > 0 THEN RETURN -2; END IF; DELETE FROM `submodules` - WHERE submodules.ID = SubmoduleID - LIMIT 1; + WHERE submodules.ID = pSubmoduleID + LIMIT 1; SET @counter = 0; UPDATE `submodules` - SET submodules.OrderNum = (@counter := @counter + 1) - WHERE submodules.ModuleID = ModID - ORDER BY submodules.OrderNum ASC; + SET submodules.OrderNum = (@counter := @counter + 1) + WHERE submodules.ModuleID = vModuleID + ORDER BY submodules.OrderNum ASC; RETURN 0; END // @@ -3282,57 +3115,55 @@ END // DROP FUNCTION IF EXISTS AddSubmodule// -CREATE FUNCTION `AddSubmodule` ( `TeacherID` INT, - `ModuleID` INT, - `MaxRate` INT, - `Name` VARCHAR(200) charset utf8, - `Description` VARCHAR(200) charset utf8, - `ControlType` VARCHAR(30) charset utf8 - ) RETURNS int(11) +CREATE FUNCTION `AddSubmodule` + ( `pTeacherID` INT, `pModuleID` INT, `pMaxRate` INT, + `pName` VARCHAR(200) charset utf8, + `pDescription` VARCHAR(200) charset utf8, + `pControlType` VARCHAR(30) charset utf8 + ) RETURNS int(11) NO SQL BEGIN - DECLARE checker INT; - - SET checker = -1; + DECLARE vChecker INT DEFAULT -1; + SELECT disciplines.ID - INTO checker - FROM `modules` - INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID - WHERE TeacherID = disciplines.AuthorID AND - ModuleID = modules.ID - LIMIT 1; - IF checker <= 0 OR - InternalIsMapLocked(checker) + INTO vChecker + FROM `modules` + INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID + WHERE disciplines.AuthorID = pTeacherID AND + modules.ID = pModuleID + LIMIT 1; + IF vChecker <= 0 OR + InternalIsMapLocked(vChecker) THEN RETURN -1; END IF; - SET checker = 0; + SET vChecker = 0; SELECT MAX(submodules.OrderNum) - INTO checker - FROM `submodules` - WHERE ModuleID = submodules.ModuleID - LIMIT 1; - IF checker IS NULL THEN - SET checker = 0; + INTO vChecker + FROM `submodules` + WHERE submodules.ModuleID = pModuleID + LIMIT 1; + IF vChecker IS NULL THEN + SET vChecker = 0; END IF; - SET checker = checker + 1; + SET vChecker = vChecker + 1; - IF Description = "" THEN + IF pDescription = '' THEN INSERT INTO `submodules` - ( submodules.ModuleID, submodules.MaxRate, submodules.OrderNum, submodules.Name, submodules.Description, submodules.Type ) - VALUES ( ModuleID, MaxRate, checker, Name, NULL, ControlType); + (ModuleID, MaxRate, OrderNum, Name, Description, Type) + VALUES (pModuleID, pMaxRate, vChecker, pName, NULL, pControlType); ELSE INSERT INTO `submodules` - ( submodules.ModuleID, submodules.MaxRate, submodules.OrderNum, submodules.Name, submodules.Description, submodules.Type ) - VALUES ( ModuleID, MaxRate, checker, Name, Description, ControlType); + (ModuleID, MaxRate, OrderNum, Name, Description, Type ) + VALUES (pModuleID, pMaxRate, vChecker, pName, pDescription, pControlType); END IF; - RETURN ( SELECT submodules.ID + RETURN (SELECT submodules.ID FROM `submodules` - WHERE submodules.ModuleID = ModuleID AND - submodules.OrderNum = checker + WHERE submodules.ModuleID = pModuleID AND + submodules.OrderNum = vChecker LIMIT 1 ); END // @@ -3355,8 +3186,8 @@ BEGIN INNER JOIN `modules` ON submodules.ModuleID = modules.ID INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID WHERE disciplines.AuthorID = pTeacherID AND - SubmoduleID1 = submodules.ID - LIMIT 1; + submodules.ID = pSubmoduleID1 + LIMIT 1; SELECT submodules.OrderNum, submodules.ModuleID @@ -3365,8 +3196,8 @@ BEGIN INNER JOIN `modules` ON submodules.ModuleID = modules.ID INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID WHERE disciplines.AuthorID = pTeacherID AND - SubmoduleID2 = submodules.ID - LIMIT 1; + submodules.ID = pSubmoduleID2 + LIMIT 1; IF vModule1 <= 0 OR vModule1 != vModule2 OR InternalIsMapLocked(vDisciplineID) @@ -3375,19 +3206,17 @@ BEGIN END IF; UPDATE `submodules` - SET submodules.OrderNum = 271828 - WHERE submodules.ID = pSubmoduleID1 - LIMIT 1; - + SET submodules.OrderNum = 271828 + WHERE submodules.ID = pSubmoduleID1 + LIMIT 1; UPDATE `submodules` - SET submodules.OrderNum = vOrder1 - WHERE submodules.ID = pSubmoduleID2 - LIMIT 1; - + SET submodules.OrderNum = vOrder1 + WHERE submodules.ID = pSubmoduleID2 + LIMIT 1; UPDATE `submodules` - SET submodules.OrderNum = vOrder2 - WHERE submodules.ID = pSubmoduleID1 - LIMIT 1; + SET submodules.OrderNum = vOrder2 + WHERE submodules.ID = pSubmoduleID1 + LIMIT 1; RETURN 0; END // @@ -3422,11 +3251,11 @@ CREATE FUNCTION `CalculateMaxRateForExtra` ( `pSubmoduleID` INT, `pStudentID` INT) RETURNS int(11) NO SQL BEGIN - DECLARE examTypeVar VARCHAR(30) charset utf8; # enum('exam', 'credit');# utf8_general_ci; + DECLARE vExamType INT; # enum('exam', 'credit');# utf8_general_ci; DECLARE vLim INT; DECLARE vResult INT DEFAULT -1; - IF ExamType = 'exam' THEN + IF vExamType = 'exam' THEN SET vLim = 38; ELSE SET vLim = 60; @@ -3448,25 +3277,21 @@ CREATE FUNCTION `SetStudentRate` `pSubmoduleID` INT, `pRate` INT ) RETURNS int(11) NO SQL BEGIN - DECLARE checker, DisciplineID, groupID, rateID, maxRate, isOver, mtype INT; - DECLARE isLocked, isUsed tinyint; + DECLARE vChecker, vDisciplineID, vGroupID, vRateID, vMaxRate, vMtype INT DEFAULT -1; + DECLARE vIsOver, vIsLocked, vIsUsed tinyint DEFAULT 0; - SET groupID = -1; SELECT students.StudyGroupID - INTO groupID - FROM `students` - WHERE students.ID = pStudentID - LIMIT 1; - IF groupID <= 0 THEN + INTO vGroupID + FROM `students` + WHERE students.ID = pStudentID + LIMIT 1; + IF vGroupID <= 0 THEN RETURN -1; END IF; - SET maxRate = CalculateMaxRateForExtra(pSubmoduleID, pStudentID); + SET vMaxRate = CalculateMaxRateForExtra(pSubmoduleID, pStudentID); - SET isOver = 1; - SET isLocked = 0; - SET DisciplineID = -1; - SET mtype = -1; + SET vIsOver = 1; SELECT modules.DisciplineID, disciplines.isLocked, disciplines.isMilestone, @@ -3479,35 +3304,35 @@ BEGIN submodules.maxRate END, modules.Type - INTO DisciplineID, isLocked, isOver, rateID, isUsed, maxRate, mtype + INTO vDisciplineID, vIsLocked, vIsOver, vRateID, vIsUsed, vMaxRate, vMtype FROM `submodules` INNER JOIN `modules` ON submodules.ModuleID = modules.ID INNER JOIN `disciplines` ON modules.DisciplineID = disciplines.ID INNER JOIN `disciplines_teachers` ON disciplines.ID = disciplines_teachers.DisciplineID AND pTeacherID = disciplines_teachers.TeacherID LEFT JOIN `disciplines_groups` ON disciplines.ID = disciplines_groups.DisciplineID AND - groupID = disciplines_groups.StudyGroupID + vGroupID = disciplines_groups.StudyGroupID LEFT JOIN `disciplines_students` ON disciplines.ID = disciplines_students.DisciplineID AND pStudentID = disciplines_students.StudentID AND 1 = disciplines_students.Type - LEFT JOIN `rating_table` ON SubModuleID = rating_table.SubmoduleID AND + LEFT JOIN `rating_table` ON pSubModuleID = rating_table.SubmoduleID AND pStudentID = rating_table.StudentID WHERE submodules.ID = SubModuleID AND ( disciplines_students.ID IS NOT NULL OR disciplines_groups.ID IS NOT NULL ) LIMIT 1; - IF DisciplineID <= 0 OR - pRate > maxRate OR - (isOver > 0 AND (mtype = 1 OR mtype = 3)) + IF vDisciplineID <= 0 OR + pRate > vMaxRate OR + (vIsOver > 0 AND (vMtype = 1 OR vMtype = 3)) THEN RETURN -1; END IF; - IF rateID IS NOT NULL AND rateID > 0 THEN + IF vRateID IS NOT NULL AND vRateID > 0 THEN INSERT INTO `logs_rating` - (logs_rating.StudentID, logs_rating.SubmoduleID, logs_rating.TeacherID, logs_rating.Rate, logs_rating.Action ) + (StudentID, SubmoduleID, TeacherID, Rate, Action ) VALUES (pStudentID, SubModuleID, pTeacherID, pRate, 'change'); UPDATE `rating_table` @@ -3519,30 +3344,25 @@ BEGIN LIMIT 1; ELSE - IF NOT isLocked THEN + IF NOT vIsLocked THEN UPDATE `disciplines` SET disciplines.isLocked = 1 - WHERE disciplines.ID = DisciplineID + WHERE disciplines.ID = vDisciplineID LIMIT 1; END IF; INSERT INTO `logs_rating` - (logs_rating.StudentID, logs_rating.SubmoduleID, logs_rating.TeacherID, logs_rating.Rate, logs_rating.Action ) + (StudentID, SubmoduleID, TeacherID, Rate, Action ) VALUES (pStudentID, SubModuleID, pTeacherID, pRate, 'add'); INSERT INTO `rating_table` - ( rating_table.StudentID, - rating_table.TeacherID, - rating_table.SubmoduleID, - rating_table.Rate, - rating_table.Date - ) - VALUES ( pStudentID, pTeacherID, pSubmoduleID, pRate, CURDATE() ); + ( StudentID, TeacherID, SubmoduleID, Rate, Date) + VALUES ( pStudentID, pTeacherID, pSubmoduleID, pRate, CURDATE() ); - IF NOT isUsed THEN + IF NOT vIsUsed THEN UPDATE `submodules` SET submodules.isUsed = 1 - WHERE submodules.ID = SubModuleID + WHERE submodules.ID = pSubModuleID LIMIT 1; END IF; END IF; @@ -3599,7 +3419,7 @@ CREATE FUNCTION `CreateRequest` NO SQL BEGIN INSERT INTO `requests` - (requests.AccountID, requests.Title, requests.Description, requests.Status) + (AccountID, Title, Description, Status) VALUES (pAccountID, pTitle, pDescription, 'opened'); RETURN LAST_INSERT_ID(); END// @@ -3776,7 +3596,7 @@ BEGIN END IF; INSERT INTO `recovery_tokens` - (recovery_tokens.AccountID, recovery_tokens.Token ) + (AccountID, Token ) VALUES (vAccountID, pToken); RETURN LAST_INSERT_ID(); END// @@ -3788,14 +3608,14 @@ CREATE FUNCTION `UseRecoveryToken` ( `pToken` VARCHAR(100) charset utf8) RETURNS int(11) NO SQL BEGIN - DECLARE checker INT DEFAULT -1; + DECLARE vChecker INT DEFAULT -1; SELECT recovery_tokens.ID - INTO checker + INTO vChecker FROM `recovery_tokens` WHERE recovery_tokens.Token = pToken LIMIT 1; - IF checker <= 0 THEN + IF vChecker <= 0 THEN RETURN -1; END IF; -- GitLab