diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index 382b781ebcf9f5be314098545e40665df2c288d4..c7062dbd3bf4ad34bec550b6ca57ace50996b76e 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -1030,23 +1030,44 @@ CREATE FUNCTION `AddDiscipline`( `TeacherID` INT, `SubjectID` INT, `ExamType` VARCHAR(30), `LectionCount` INT, - `PracticeCount` INT + `PracticeCount` INT, + `DepartmentID` INT ) RETURNS int(11) NO SQL BEGIN DECLARE semID, checker INT; SET semID = GetCurSemesterID(); + + SELECT departments.ID + INTO checker + FROM `departments` + WHERE departments.ID = DepartmentID + LIMIT 1; + IF checker IS NULL OR checker <= 0 THEN + RETURN -1; + END IF; + SELECT subjects.ID + INTO checker + FROM `subjects` + WHERE subjects.ID = SubjectID + LIMIT 1; + IF checker IS NULL OR checker <= 0 THEN + RETURN -1; + END IF; + + INSERT INTO `disciplines` ( disciplines.AuthorID, disciplines.Grade, disciplines.SubjectID, disciplines.ExamType, disciplines.LectionCount, disciplines.PracticeCount, - disciplines.SemesterID ) - VALUES ( TeacherID, Grade, SubjectID, ExamType, LectionCount, PracticeCount, semID ); + disciplines.SemesterID, + disciplines.DepartmentID ) + VALUES ( TeacherID, Grade, SubjectID, ExamType, LectionCount, PracticeCount, semID, DepartmentID ); -- RETURN ( SELECT disciplines.ID -- FROM `disciplines`