Skip to content
Snippets Groups Projects
Commit 79e80804 authored by PavelBegunkov's avatar PavelBegunkov
Browse files

fix of fix :/

parent 80839f5a
Branches
Tags
No related merge requests found
......@@ -2338,13 +2338,13 @@ BEGIN
-- delete extra module from
DELETE FROM `submodules`
WHERE submodules.ID in
(SELECT submodules.ID
FROM `modules`
LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID
WHERE modules.Type = 4 and modules.DisciplineID = DisciplineID
ORDER BY submodules.OrderNum DESC LIMIT 1);
WHERE submodules.ID IN
(
SELECT submodules.ID
FROM `modules`
LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID
WHERE modules.Type = 4 and modules.DisciplineID = DisciplineID and submodules.OrderNum > 1
);
SET extraMax = 6;
ELSE
SET extraMax = 30;
......@@ -2988,7 +2988,7 @@ CREATE FUNCTION `AddModuleExtra` ( `TeacherID` INT,
) RETURNS int(11)
NO SQL
BEGIN
DECLARE checker, vModule, vType INT;
DECLARE checker, vModule, vType, vGap INT;
IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID)
THEN
RETURN -1;
......@@ -3023,14 +3023,18 @@ BEGIN
RETURN -1;
END IF;
SET vGap = -1;
IF vType = 1 THEN
SET checker = 6;
ELSE
SET checker = 30;
SET checker = AddSubmodule(TeacherID, vModule, checker, '', NULL, 'LandmarkControl');
-- exam
SET vGap = 6;
END IF;
IF vType = 2 THEN
-- credit
SET vGap = 30;
SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl');
END IF;
SET checker = AddSubmodule(TeacherID, vModule, checker, '', NULL, 'LandmarkControl');
SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl');
RETURN vModule;
END //
......
DELIMITER //
ALTER TABLE `modules` CHANGE `Type` `Type` enum('regular','exam', 'bonus', 'extra') NOT NULL DEFAULT 'regular'//
DROP FUNCTION IF EXISTS AddSubmodule//
CREATE FUNCTION `AddSubmodule` ( `TeacherID` INT,
......@@ -13,19 +14,6 @@ CREATE FUNCTION `AddSubmodule` ( `TeacherID` INT,
NO SQL
BEGIN
DECLARE checker INT;
SET checker = -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
THEN
RETURN -1;
END IF;
SET checker = 0;
......@@ -63,18 +51,20 @@ CREATE FUNCTION `AddModuleExtra` ( `TeacherID` INT,
) RETURNS int(11)
NO SQL
BEGIN
DECLARE checker, vModule INT;
DECLARE checker, vModule, vType, vGap INT;
IF NOT InternalIsTeacherAuthor(TeacherID,DisciplineID)
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;
modules.Type = 4
LIMIT 1;
IF checker > 0 THEN
RETURN -2;
END IF;
......@@ -85,9 +75,10 @@ BEGIN
VALUES ( 'Добор баллов' , 2900666 , DisciplineID, 4 );
SET vModule = -1;
SELECT modules.ID
INTO vModule
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;
......@@ -95,7 +86,16 @@ BEGIN
RETURN -1;
END IF;
SET checker = AddSubmodule(TeacherID, vModule, 6, '', NULL, 'LandmarkControl');
SET vGap = -1;
IF vType = 1 THEN
SET vGap = 6;
END IF;
IF vType = 2 THEN
SET vGap = 30;
SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl');
END IF;
SET checker = AddSubmodule(TeacherID, vModule, vGap, '', NULL, 'LandmarkControl');
RETURN vModule;
END //
......@@ -140,6 +140,9 @@ BEGIN
);
END //
ALTER TABLE `modules` CHANGE `Type` `Type` enum('regular','exam', 'bonus', 'extra') NOT NULL DEFAULT 'regular'//
DELETE FROM `rating_table`
WHERE rating_table.SubmoduleID IN
(
......@@ -151,28 +154,91 @@ WHERE rating_table.SubmoduleID IN
SELECT AddSubmodule(disciplines.AuthorID, modules.ID, 40, '', NULL, 'LandmarkControl') AS '1',
AddSubmodule(disciplines.AuthorID, modules.ID, 40, '', NULL, 'LandmarkControl') AS '2'
FROM `modules`
INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
WHERE modules.Type = 2//
INSERT INTO `page_access` (`ID`, `Pagename`, `Bitmask`) VALUES (NULL, 'teacher:exam', '6')//
ALTER TABLE `specializations` ADD `Code` varchar(12) NULL//
DELETE FROM `rating_table`
WHERE rating_table.SubmoduleID IN
( SELECT submodules.ID
FROM `modules`
LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID
WHERE modules.Type = 2
)//
-- SELECT modules.ID, AddSubmodule(disciplines.AuthorID, modules.ID, 40, '', NULL, 'LandmarkControl') AS '1'
-- FROM `modules`
-- INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
-- WHERE modules.Type = 2 //
DROP PROCEDURE IF EXISTS fix_modules//
CREATE PROCEDURE fix_modules()
BEGIN
DECLARE checker INT;
DECLARE vid INT;
DECLARE vname INT;
-- this flag will be set to true when cursor reaches end of table
DECLARE exit_loop BOOLEAN;
-- Declare the cursor
DECLARE employee_cursor CURSOR FOR
SELECT modules.ID AS 'ID', disciplines.AuthorID
FROM `modules`
INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
WHERE modules.Type = 2;
-- set exit_loop flag to true if there are no more rows
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
-- open the cursor
OPEN employee_cursor;
-- start looping
employee_loop: LOOP
-- read the name from next row into the variables
FETCH employee_cursor INTO vid, vname;
SET checker = AddSubmodule(vname, vid, 40, '', NULL, 'LandmarkControl');
SET checker = AddSubmodule(vname, vid, 40, '', NULL, 'LandmarkControl');
IF exit_loop THEN
CLOSE employee_cursor;
LEAVE employee_loop;
END IF;
END LOOP employee_loop;
END //
DROP PROCEDURE IF EXISTS fix_modules2//
CREATE PROCEDURE fix_modules2()
BEGIN
DECLARE checker INT;
DECLARE vid INT;
DECLARE vname INT;
-- this flag will be set to true when cursor reaches end of table
DECLARE exit_loop BOOLEAN;
-- Declare the cursor
DECLARE employee_cursor CURSOR FOR
SELECT disciplines.ID AS 'ID', disciplines.AuthorID
FROM `disciplines`;
-- set exit_loop flag to true if there are no more rows
DECLARE CONTINUE HANDLER FOR NOT FOUND SET exit_loop = TRUE;
-- open the cursor
OPEN employee_cursor;
-- start looping
employee_loop: LOOP
-- read the name from next row into the variables
FETCH employee_cursor INTO vid, vname;
SET checker = AddModuleExtra(vname, vid);
IF exit_loop THEN
CLOSE employee_cursor;
LEAVE employee_loop;
END IF;
END LOOP employee_loop;
END //
SELECT AddModuleExtra(disciplines.AuthorID, disciplines.ID)
FROM `disciplines`//
CALL fix_modules()//
CALL fix_modules2()//
DROP PROCEDURE IF EXISTS fix_modules//
DROP PROCEDURE IF EXISTS fix_modules2//
-- SELECT AddModuleExtra(disciplines.AuthorID, disciplines.ID)
-- FROM `disciplines`//
INSERT INTO `rating`.`page_access` (`ID`, `Pagename`, `Bitmask`) VALUES (NULL, 'teacher:exam', '6');
ALTER TABLE `specializations` ADD `Code` varchar(12) NULL;
DELETE FROM submodules WHERE submodules.ModuleID IN (SELECT modules.ID FROM modules WHERE modules.Type = 4)//
DELETE FROM modules WHERE modules.Type = 4//
DELIMITER ;
\ 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