From 3c8095f90e6e33bcb648634860a3f6fc587b0b7a Mon Sep 17 00:00:00 2001 From: PavelBegunkov <asml.Silence@gmail.com> Date: Mon, 25 Aug 2014 01:45:06 +0400 Subject: [PATCH] ... --- db/StoredProcedures.sql | 86 ++++++++++++++++++++++++++++++++++------- 1 file changed, 73 insertions(+), 13 deletions(-) diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index a859200b7..ba5d7cf06 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -1006,17 +1006,15 @@ BEGIN students.SecondName, study_groups.Grade, study_groups.GroupNum, - (disciplines_students.StudentID IS NOT NULL) AS 'isAttached' + disciplines_students.Type AS 'Type' FROM `students` INNER JOIN `study_groups` ON students.StudyGroupID = study_groups.ID LEFT JOIN `disciplines_groups` ON DisciplineID = disciplines_groups.DisciplineID AND study_groups.ID = disciplines_groups.StudyGroupID LEFT JOIN `disciplines_students` ON DisciplineID = disciplines_students.DisciplineID AND students.ID = disciplines_students.StudentID - WHERE disciplines_students.Type = 'attach' OR - ( ( disciplines_students.Type IS NULL OR disciplines_students.Type != 'detach' ) AND - disciplines_groups.StudyGroupID IS NOT NULL - ); + WHERE disciplines_students.Type = 'attach' OR + disciplines_groups.StudyGroupID IS NOT NULL; ELSE SELECT NULL AS 'StudentID', NULL AS 'LastName', @@ -1053,6 +1051,7 @@ BEGIN subjects.Name AS 'SubjectName', modules.ID AS 'ModuleID', modules.Name AS 'ModuleName', + modules.isExam, submodules.ID AS 'SubmoduleID', submodules.Name AS 'SubModuleName', submodules.Description AS 'SubmoduleDescription', @@ -1253,6 +1252,56 @@ END // -- ------------------------------------------------------------------------------------------- +DROP PROCEDURE IF EXISTS GetStudentsForRating// +CREATE PROCEDURE `GetStudentsForRating` ( IN `TeacherID` INT, + IN `DisciplineID` INT + ) + NO SQL +BEGIN + DECLARE checker INT; + + SELECT disciplines_teachers.ID + INTO checker + FROM `disciplines_teachers` + WHERE disciplines_teachers.DisciplineID = DisciplineID AND + disciplines_teachers.TeacherID = TeacherID + LIMIT 1; + + IF checker > 0 THEN + + SELECT DISTINCT students.ID AS 'StudentID', + students.LastName, + students.FirstName, + students.SecondName, + study_groups.Grade, + study_groups.GroupNum, + (disciplines_students.Type IS NOT NULL OR disciplines_students.Type = 'attach') AS 'isAttached' + FROM `students` + INNER JOIN `study_groups` ON students.StudyGroupID = study_groups.ID + LEFT JOIN `disciplines_groups` ON DisciplineID = disciplines_groups.DisciplineID AND + study_groups.ID = disciplines_groups.StudyGroupID + LEFT JOIN `disciplines_students` ON DisciplineID = disciplines_students.DisciplineID AND + students.ID = disciplines_students.StudentID + WHERE disciplines_students.Type = 'attach' OR + ( ( disciplines_students.Type IS NULL OR disciplines_students.Type != 'detach' ) AND + disciplines_groups.StudyGroupID IS NOT NULL + ); + ELSE + SELECT NULL AS 'StudentID', + NULL AS 'LastName', + NULL AS 'FirstName', + NULL AS 'SecondName', + NULL AS 'Grade', + NULL AS 'Group' + LIMIT 0; + + END IF; +END // + + + + + DROP FUNCTION IF EXISTS BindTeacher// CREATE FUNCTION `BindTeacher`( `AccessedTeacher` INT, `BindingTeacher` INT, @@ -1798,18 +1847,20 @@ BEGIN END // + DROP FUNCTION IF EXISTS AddModuleExam// CREATE FUNCTION `AddModuleExam` ( `TeacherID` INT, `DisciplineID` INT ) RETURNS int(11) NO SQL BEGIN - DECLARE checker INT; + DECLARE checker, mod INT; SELECT disciplines.ID INTO checker FROM `disciplines` - INNER JOIN `disciplines_teachers` ON disciplines_teachers.TeacherID = TeacherID AND disciplines_teachers.DisciplineID = disciplines.ID + INNER JOIN `disciplines_teachers` ON disciplines_teachers.TeacherID = TeacherID AND + disciplines_teachers.DisciplineID = disciplines.ID WHERE disciplines.ID = DisciplineID LIMIT 1; IF NOT (checker > 0) THEN @@ -1829,16 +1880,25 @@ BEGIN INSERT INTO `modules` ( modules.Name, modules.OrderNum, modules.DisciplineID, modules.isExam ) VALUES ( 'Ркзамен' , 666 , DisciplineID, 1 ); + + SELECT modules.ID + INTO mod + FROM `modules` + WHERE modules.DisciplineID = DisciplineID AND + modules.isExam = 1 + LIMIT 1; + + SELECT AddSubmodule(TeacherID, mod, 40, 1, '', NULL, 'CurrentControl'); + IF NOT (mod > 0) THEN + RETURN -1; + END IF; + RETURN mod; +END // + - RETURN ( SELECT modules.ID - FROM `modules` - WHERE modules.DisciplineID = DisciplineID AND - modules.isExam = 1 - ); -END // -- Добавление РЅРѕРІРѕРіРѕ подмодуля Рє данному модулю DROP FUNCTION IF EXISTS DeleteModule// -- GitLab