From 6c8bc8ae7c00570b61532d3aff598753db5c2933 Mon Sep 17 00:00:00 2001
From: PavelBegunkov <asml.Silence@gmail.com>
Date: Mon, 22 Sep 2014 00:33:56 +0400
Subject: [PATCH] db procs

---
 db/StoredProcedures.sql | 54 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index 0f4ef7872..1ed31ecbe 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -116,6 +116,27 @@ BEGIN
 	RETURN (checker IS NOT NULL AND checker);  
 END //
 
+
+DROP FUNCTION IF EXISTS GetDisciplineMaxRate//
+CREATE FUNCTION `GetDisciplineMaxRate`		( 	`DisciplineID` INT 
+											) 	RETURNS int(11)
+    NO SQL
+BEGIN  
+	DECLARE vMax INT;
+	SET vMax = 0;
+	SELECT SUM(submodules.MaxRate)
+	INTO vMax
+	FROM `submodules`
+	INNER JOIN `modules` 	ON 	submodules.ModuleID = modules.ID AND
+								modules.Type != 3
+	WHERE 	DisciplineID = modules.DisciplineID;
+			
+	IF vMax IS NULL THEN
+		SET vMax = 0;
+	END IF;
+	RETURN vMax;
+END //
+
 -- -------------------------------------------------------------------------------------------
 -- ====== Common =======  --
 -- -------------------------------------------------------------------------------------------
@@ -3018,6 +3039,9 @@ BEGIN
 	WHERE 	TeacherID = disciplines.AuthorID AND
 			SubmoduleID = submodules.ID
 	LIMIT 1;
+    IF checker <= 0 THEN
+    	RETURN -1;
+	END IF;
 
 	UPDATE `submodules` 
 	SET submodules.MaxRate = MaxRate
@@ -3026,6 +3050,36 @@ BEGIN
 	RETURN 0;
 END //
 
+
+DROP FUNCTION IF EXISTS ChangeSubmoduleMaxAndControl//
+CREATE FUNCTION `ChangeSubmoduleMaxAndControl`	(	`TeacherID` 	INT, 
+													`SubmoduleID` 	INT, 
+													`MaxRate` 		INT,
+													`ControlType`	VARCHAR(30) charset utf8
+											) 	RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SET checker = -1;
+	SELECT submodules.ID 
+	INTO checker 
+	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;
+
+	UPDATE `submodules` 
+	SET 	submodules.MaxRate = MaxRate,
+			submodules.Type = ControlType
+	WHERE submodules.ID = SubmoduleID
+	LIMIT 1;
+	RETURN 0;
+END //
+
+
 DROP FUNCTION IF EXISTS ChangeSubmoduleOrder//
 CREATE FUNCTION `ChangeSubmoduleOrder`	(	`TeacherID` 	INT, 
 											`SubmoduleID` 	INT, 
-- 
GitLab