diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index 7e97debe3d38b4b61030ddaa909d8aab1adbf882..36d0bebae89ac429827420e79ee5a8675394f0c6 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -4187,5 +4187,26 @@ BEGIN
 	LIMIT 1;
 END //
 
+-- Вычисление максимального балла для submodule
+DROP FUNCTION `CalculateMaxRateForExtra`//
+CREATE DEFINER=`mmcs_rating`@`localhost` FUNCTION `CalculateMaxRateForExtra`(`SubmoduleID` INT,	`StudentID` INT,  
+								`DisciplineID` INT
+							) RETURNS int(11)
+BEGIN
+	DECLARE examTypeVar enum('exam', 'credit') utf8_general_ci;
+	
+	SELECT ExamType INTO examTypeVar
+	FROM submodules as subm1
+	JOIN modules ON subm1.ModuleID=modules.ID 
+	JOIN disciplines ON DisciplineID=disciplines.ID
+	WHERE modules.type='extra' AND subm1.ID=SubmoduleID;
+	
+	CASE examTypeVar
+		WHEN 'exam' THEN
+			return 38-GetRateForDiscSemester(StudentID, DisciplineID);
+		WHEN 'credit' THEN
+			return 60-GetRateForDiscSemester(StudentID, DisciplineID);
+	END CASE
+END
 
 DELIMITER ;
\ No newline at end of file