diff --git a/db/NewEmpty.sql b/db/NewEmpty.sql
index bb1e08b9cf76c83e85c7e54163297785d18593a9..a43c222880cf980168920c74820e7076c66842cb 100644
--- a/db/NewEmpty.sql
+++ b/db/NewEmpty.sql
@@ -3,9 +3,9 @@
 -- http://www.phpmyadmin.net
 --
 -- РҐРѕСЃС‚: 127.0.0.1:3306
--- Время создания: Авг 19 2014 г., 01:56
--- Версия сервера: 5.5.37-log
--- Версия PHP: 5.3.28
+-- Время создания: Авг 20 2014 г., 23:08
+-- Версия сервера: 5.5.38-log
+-- Версия PHP: 5.4.29
 
 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
 SET time_zone = "+00:00";
@@ -17,8 +17,1573 @@ SET time_zone = "+00:00";
 /*!40101 SET NAMES utf8 */;
 
 --
--- База данных: `Sample3`
---
+-- База данных: `kohana`
+--
+
+DELIMITER $$
+--
+-- Процедуры
+--
+CREATE DEFINER=`root`@`%` PROCEDURE `GetAccInfoByID`(IN `UserID` VARCHAR(50) CHARSET utf8 )
+    NO SQL
+BEGIN 
+	SELECT 	accounts.ID, 
+			accounts.`Login`, 
+			accounts.`E-Mail`, 
+			accounts.Type, 
+			accounts.isEnabled,
+			( accounts.ActivationCode IS NULL) AS 'isActivated',
+			accounts.UserAgent
+	FROM accounts
+	WHERE accounts.`ID` = UserID;
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetCurSemesterInfo`( )
+    NO SQL
+BEGIN
+	SELECT 	semesters.ID, 
+			semesters.Num, 
+			semesters.Year 
+	FROM `general_settings`
+	INNER JOIN `semesters`  ON general_settings.Val = semesters.ID
+	WHERE general_settings.ID = 1;
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetDisciplineInfoByID`(IN `DiscID` INT)
+    NO SQL
+BEGIN  
+
+	SELECT 	disciplines.AuthorID,
+			disciplines.Grade 			AS 'DisciplineGrade',
+			disciplines.ExamType,
+			disciplines.Type 			AS 'LessonType',
+			disciplines.LectionCount,
+			disciplines.PracticeCount,
+			disciplines.SemesterID,
+			subjects.ID 				AS 'SubjectID',
+			subjects.Name 				AS 'SubjectName',
+			subjects.Abbr 				AS 'SubjectAbbr'
+
+
+	FROM `disciplines`
+	INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID
+	WHERE disciplines.ID = DiscID;
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetDisciplinesForStudent`(IN `StudentID` INT)
+    NO SQL
+BEGIN  
+    DECLARE groupID, semID INT;  
+    SELECT students.StudyGroupID INTO groupID FROM `students` WHERE students.ID = StudentID LIMIT 1;  						 
+	SET semID = GetCurSemesterID();
+	
+	SELECT 	DISTINCT	disciplines.ID AS 'DisciplineID', 
+						subjects.ID AS 'SubjectID', 
+						subjects.Name AS 'SubjectName', 
+						disciplines.ExamType,
+						GetRateForDisc(StudentID, `disciplines`.`ID` ) AS 'Rate', 
+						GetMaxRateForDisc(StudentID, `disciplines`.`ID` ) AS 'MaxCurrentRate' 
+	FROM `disciplines`
+	INNER JOIN `subjects` 					ON 	disciplines.SubjectID = subjects.ID 
+	CROSS JOIN `disciplines_teachers` 		ON 	disciplines_teachers.DisciplineID = disciplines.ID
+	CROSS JOIN `lessons`					ON 	lessons.DisciplineTeacherID = disciplines_teachers.ID
+	INNER JOIN `attending_groups`			ON 	attending_groups.ID = lessons.AttendingGroupID AND 
+												attending_groups.SemesterID = semID
+	LEFT JOIN 	`attending_groups_bases` 	ON 	attending_groups_bases.AttendingGroupID = attending_groups.ID AND
+												attending_groups_bases.StudyGroupID = groupID
+	LEFT JOIN 	`attending_groups_pool`		ON 	attending_groups_pool.AttendingGroupID = attending_groups.ID AND
+												attending_groups_pool.StudentID = StudentID
+	WHERE 	disciplines.SemesterID = semID AND
+			attending_groups.SemesterID = semID AND
+			(	attending_groups_pool.Type = 'attach'	OR
+				(	(attending_groups_pool.Type is NULL OR attending_groups_pool.Type != 'detach') AND 
+					attending_groups_bases.StudyGroupID IS NOT NULL AND 
+					attending_groups_bases.StudyGroupID = groupID 
+				)
+			)
+	ORDER BY disciplines.ExamType ASC, Rate DESC;   
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetDisciplinesForTeacher`(IN `TeacherID` INT)
+    NO SQL
+BEGIN  
+    DECLARE groupID, semID INT;  						 
+	SET semID = GetCurSemesterID();
+
+	SELECT DISTINCT disciplines.ID 			AS 'DisciplineID',
+                    disciplines.ExamType 	AS 'DisciplineType',
+                    subjects.ID 			AS 'SubjectID',
+                    subjects.Name 			AS 'SubjectName',
+                    disciplines_teachers.ID AS 'DisciplineTeacherID',
+                    study_groups.ID 		AS 'StudyGroupID', 
+                    study_groups.GroupNum 	AS 'StudyGroupNum', 
+                    study_groups.Grade 		AS 'StudyGroupGrade',
+                    study_groups.Name 		AS 'StudyGroupName' 
+    FROM `disciplines_teachers`
+    INNER JOIN `disciplines` 			ON disciplines.ID = disciplines_teachers.DisciplineID
+    INNER JOIN `subjects`				ON subjects.ID = disciplines.SubjectID
+    CROSS JOIN `lessons` 				ON lessons.DisciplineTeacherID = disciplines_teachers.ID
+    INNER JOIN `attending_groups` 		ON attending_groups.ID = lessons.AttendingGroupID
+    CROSS JOIN `attending_groups_bases` ON attending_groups_bases.AttendingGroupID = attending_groups.ID
+    INNER JOIN `study_groups` 			ON study_groups.ID = attending_groups_bases.StudyGroupID
+    WHERE 	disciplines_teachers.TeacherID = TeacherID AND 
+    		disciplines.SemesterID = semID
+ORDER BY 	subjects.ID 		ASC, 
+                disciplines.ID 		ASC, 
+                study_groups.Grade 	ASC,
+                study_groups.GroupNum 	ASC;
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetFirstRequests`( IN `CountN` INT )
+    NO SQL
+BEGIN 
+	DECLARE allNum, countClone INT;
+	SELECT COUNT(requests.ID) INTO allNum FROM `requests`;
+	SET countClone = CountN;
+	IF CountN = -1 THEN 
+		SET countClone = allNum;
+	END IF;
+
+	SELECT 	requests.ID,
+			requests.AccountID,
+			requests.Information,
+			requests.Date,
+			requests.Status
+	FROM `requests`
+	WHERE requests.Status = 0
+	LIMIT countClone;
+
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetLastRequests`( IN `CountN` INT )
+    NO SQL
+BEGIN 
+	DECLARE offsetN, allNum, countClone INT;
+	SELECT COUNT(requests.ID) INTO allNum FROM `requests`;
+	SET countClone = CountN;
+	IF CountN = -1 THEN 
+		SET countClone = allNum;
+	END IF;
+
+	SET offsetN = allNum - CountN;
+	IF offsetN < 0 THEN
+		SET offsetN = 0;
+	END IF;
+
+	SELECT 	requests.ID,
+			requests.AccountID,
+			requests.Information,
+			requests.Date,
+			requests.Status
+	FROM `requests`
+	WHERE requests.Status = 0
+	LIMIT countClone OFFSET offsetN;
+
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetMapForDiscipline`(	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 	subjects.ID 			AS 'SubjectID',
+				subjects.Name 			AS 'SubjectName',	
+				modules.ID 				AS 'ModuleID', 
+				modules.Name 			AS 'ModuleName', 
+				submodules.ID 			AS 'SubmoduleID', 
+				submodules.Name 		AS 'SubModuleName', 
+				submodules.Description 	AS 'SubmoduleDescription', 
+				submodules.MaxRate,
+				submodules.Type 		AS 'SubmoduleControl'
+		FROM `disciplines`
+		INNER JOIN `subjects` 	ON disciplines.SubjectID = subjects.ID
+		CROSS JOIN `modules` 	ON modules.DisciplineID = disciplines.ID
+		CROSS JOIN `submodules` ON submodules.ModuleID = modules.ID
+		WHERE disciplines.ID = DisciplineID
+		ORDER BY modules.OrderNum ASC, 
+				 submodules.OrderNum ASC;
+ 	ELSE 
+		SELECT 	NULL AS 'SubjectID',
+				NULL AS 'SubjectName',	
+				NULL AS 'ModuleID', 
+				NULL AS 'ModuleName', 
+				NULL AS 'SubmoduleID', 
+				NULL AS 'SubModuleName', 
+				NULL AS 'SubmoduleDescription', 
+				NULL AS 'MaxRate'
+		LIMIT 0;
+	END IF;
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetMapsForTeacher`(IN `TeacherID` INT)
+    NO SQL
+BEGIN  
+    DECLARE semID INT;  					 
+	SET semID = GetCurSemesterID();
+
+	SELECT 	subjects.ID 			AS 'SubjectID',
+			subjects.Name 			AS 'SubjectName',	
+			modules.ID 				AS 'ModuleID', 
+			modules.Name 			AS 'ModuleName', 
+			submodules.ID 			AS 'SubmoduleID', 
+			submodules.Name 		AS 'SubModuleName', 
+			submodules.Description 	AS 'SubmoduleDescription', 
+			submodules.MaxRate 		AS 'MaxRate',
+			submodules.Type 		AS 'SubmoduleControl'
+	FROM `disciplines_teachers`
+	INNER JOIN `disciplines` ON disciplines_teachers.DisciplineID = disciplines.ID
+	INNER JOIN `subjects` ON disciplines.SubjectID = subjects.ID
+	CROSS JOIN `modules` ON modules.DisciplineID = disciplines.ID
+	CROSS JOIN `submodules` ON submodules.ModuleID = modules.ID
+	WHERE disciplines_teachers.TeacherID = TeacherID AND disciplines.SemesterID = semID
+	ORDER BY 	modules.OrderNum ASC, 
+				submodules.OrderNum ASC;
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetPersonalInfoByID`(IN `UserID` INT )
+    NO SQL
+BEGIN 
+	DECLARE varType INT;
+	SELECT accounts.Type FROM accounts WHERE accounts.ID = UserID LIMIT 1 INTO varType;
+	IF varType = 1 THEN 
+		
+		SELECT 	students.ID 			AS 'StudentID', 
+				students.LastName, 
+				students.FirstName, 
+				students.SecondName, 
+				study_groups.ID 		AS 'StudyGroupID', 
+				study_groups.Grade 		AS 'Grade', 
+				study_groups.GroupNum 	AS 'Group', 
+				study_groups.Name 		AS 'StudyGroupName',
+				specializations.ID 		AS 'SpecID', 
+				specializations.Name	AS 'SpecName', 
+				specializations.Abbr 	AS 'SpecAbbr', 
+				faculties.ID 			AS 'FacultyID', 
+				faculties.Name 			AS 'FacultyName', 
+				faculties.Abbr 			AS 'FacultyAbbreviation'		
+		FROM `students`
+		INNER JOIN study_groups ON students.StudyGroupID = study_groups.ID
+		INNER JOIN faculties ON study_groups.FacultyID = faculties.ID
+		INNER JOIN specializations ON study_groups.SpecializationID = specializations.ID
+		WHERE students.AccountID = UserID;
+
+	ELSE
+		SELECT 	teachers.ID 			AS 'TeacherID', 
+				teachers.LastName, 
+				teachers.FirstName, 
+				teachers.SecondName, 
+				degrees.Name 			AS 'Degree', 
+				departments.ID 			AS 'DepartmentID',
+				departments.Name 		AS 'DepartmentName',
+				faculties.ID 			AS 'FacultyID', 
+				faculties.Name 			AS 'FacultyName', 
+				faculties.Abbr 			AS 'FacultyAbbreviation'
+		FROM `teachers`
+		INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
+		INNER JOIN `faculties` ON departments.FacultyID = faculties.ID
+		INNER JOIN `degrees` ON degrees.ID = teachers.DegreeID
+		WHERE teachers.AccountID = UserID;
+
+	END IF;
+
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetStudentsByStudyGroups`( 	IN `StudyGroupID` INT  )
+    NO SQL
+BEGIN
+	SELECT 	students.ID 			AS 'StudentID', 
+			students.LastName, 
+			students.FirstName, 
+			students.SecondName	
+	FROM `students`
+	WHERE students.StudyGroupID = StudyGroupID;
+
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetStudentsForDiscipline`(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,
+							(attending_groups_pool.StudentID IS NOT NULL) AS 'isAttached'
+
+	    FROM `disciplines_teachers`
+	    INNER JOIN `disciplines` 		ON disciplines.ID = disciplines_teachers.DisciplineID
+	    CROSS JOIN `lessons` 			ON lessons.DisciplineTeacherID = disciplines_teachers.ID
+	    INNER JOIN `attending_groups` 	ON attending_groups.ID = lessons.AttendingGroupID
+	    CROSS JOIN `students` 			ON InternalOccurrenceChecker(students.ID, attending_groups.ID) = TRUE
+    	LEFT JOIN  `attending_groups_pool` ON attending_groups_pool.AttendingGroupID = attending_groups.ID AND attending_groups_pool.StudentID = students.ID
+	    INNER JOIN `study_groups` 		ON students.StudyGroupID = study_groups.ID
+	    WHERE 	disciplines_teachers.TeacherID = TeacherID AND 
+	    		disciplines_teachers.DisciplineID = DisciplineID
+		ORDER BY 	study_groups.Grade 		ASC, 
+					study_groups.GroupNum 	ASC,
+					students.LastName 		ASC,
+					students.FirstName 		ASC,
+					students.SecondName 	ASC;
+	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$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetStudyGroups`( 	IN `Grade` INT,
+									IN `FacultyID` INT  )
+    NO SQL
+BEGIN
+	SELECT 	study_groups.ID,
+			study_groups.GroupNum,
+			specializations.ID 		AS 'SpecID',
+			specializations.Name 	AS 'SpecName',
+			specializations.Abbr 	AS 'SpecAbbr'
+	FROM `study_groups`
+	INNER JOIN `specializations` ON specializations.ID = study_groups.SpecializationID
+	WHERE study_groups.Grade = Grade AND study_groups.FacultyID = FacultyID;
+
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetSubjectList`( )
+    NO SQL
+BEGIN
+	SELECT 	subjects.ID,
+			subjects.Name,
+			subjects.Abbr
+	FROM	`subjects`
+	ORDER BY subjects.Name ASC;
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetSubjectMapForStudent`(IN `StudentID` INT, IN `SubjectID` INT)
+BEGIN  
+    DECLARE groupID, semID INT;  
+    SELECT students.StudyGroupID INTO groupID FROM `students` WHERE students.ID = StudentID LIMIT 1;  						 
+	SET semID = GetCurSemesterID();
+
+	SELECT 	modules.ID AS 'ModuleID', 
+			modules.Name AS 'ModuleName', 
+			submodules.ID AS 'SubmoduleID', 
+			submodules.Name AS 'SubModuleName', 
+			submodules.Description AS 'SubmoduleDescription', 
+			submodules.MaxRate,
+			submodules.Type 		AS 'SubmoduleControl',
+			rating_table.Rate, 
+			rating_table.Date
+	FROM `submodules`
+	INNER JOIN `modules` ON submodules.ModuleID = modules.ID
+	LEFT JOIN `rating_table` ON submodules.ID = rating_table.SubModuleID AND rating_table.StudentID = StudentID 
+	WHERE modules.DisciplineID IN 
+		(		SELECT 	DISTINCT	disciplines.ID 
+				FROM `disciplines`
+				CROSS JOIN `disciplines_teachers` 		ON 	disciplines_teachers.DisciplineID = disciplines.ID
+				CROSS JOIN `lessons`					ON 	lessons.DisciplineTeacherID = disciplines_teachers.ID
+				INNER JOIN `attending_groups`			ON 	attending_groups.ID = lessons.AttendingGroupID AND 
+															attending_groups.SemesterID = semID
+				LEFT JOIN 	`attending_groups_bases` 	ON 	attending_groups_bases.AttendingGroupID = attending_groups.ID AND
+															attending_groups_bases.StudyGroupID = groupID
+				LEFT JOIN 	`attending_groups_pool`		ON 	attending_groups_pool.AttendingGroupID = attending_groups.ID AND
+															attending_groups_pool.StudentID = StudentID
+				WHERE 	disciplines.SubjectID = SubjectID 	AND
+						disciplines.SemesterID = semID 		AND
+						attending_groups.SemesterID = semID AND
+						(	attending_groups_pool.Type = 'attach'	OR
+							(	(attending_groups_pool.Type is NULL OR attending_groups_pool.Type != 'detach') AND 
+								attending_groups_bases.StudyGroupID IS NOT NULL AND 
+								attending_groups_bases.StudyGroupID = groupID 
+							)
+						)
+		)
+	ORDER BY modules.OrderNum ASC, submodules.OrderNum ASC;
+END$$
+
+CREATE DEFINER=`root`@`%` PROCEDURE `GetTeachersForDiscipline`(IN `DiscID` INT)
+    NO SQL
+BEGIN  
+
+		SELECT 	teachers.ID 			AS 'TeacherID', 
+				teachers.LastName, 
+				teachers.FirstName, 
+				teachers.SecondName, 
+				degrees.ID 				AS 'DegreeID',
+				degrees.Name 			AS 'Degree', 
+				departments.ID 			AS 'DepartmentID',
+				departments.Name 		AS 'DepartmentName',
+				faculties.ID 			AS 'FacultyID', 
+				faculties.Name 			AS 'FacultyName', 
+				faculties.Abbr 			AS 'FacultyAbbreviation'
+		FROM `disciplines_teachers`
+		INNER JOIN `teachers` ON teachers.ID = disciplines_teachers.TeacherID
+		INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
+		INNER JOIN `faculties` ON departments.FacultyID = faculties.ID
+		INNER JOIN `degrees` ON degrees.ID = teachers.DegreeID
+		WHERE disciplines_teachers.DisciplineID = DiscID;
+END$$
+
+--
+-- Функции
+--
+CREATE DEFINER=`root`@`%` FUNCTION `ActivateAccount`(`Code` VARCHAR(40) CHARSET utf8, `Login` VARCHAR(50) CHARSET utf8, `Mail` VARCHAR(32) CHARSET utf8, `Password` VARCHAR(255) CHARSET utf8) RETURNS int(11)
+    NO SQL
+BEGIN
+	DECLARE checker INT;
+	DECLARE UserID INT;
+	SELECT COUNT(accounts.ID) INTO checker FROM accounts WHERE accounts.ActivationCode = Code;
+	IF ( Password IS NULL ) THEN
+ 		return -2;
+	END IF;  
+
+	IF checker = 1 THEN
+	    	SELECT accounts.ID 
+	    	INTO UserID 
+	    	FROM `accounts`
+	    	WHERE accounts.ActivationCode = Code; 
+
+        	UPDATE `accounts` 
+    		SET 	accounts.Login = Login , 
+    				accounts.Password = Password , 
+    				accounts.`E-Mail` = Mail , 
+    				accounts.ActivationCode = NULL
+    		WHERE accounts.ID = UserID ;
+    		
+    		RETURN UserID;
+	ELSE 
+		RETURN -1;
+	END IF;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `AddDiscipline`(	`TeacherID` 	INT,
+									`Grade`			INT,
+									`SubjectID`		INT,
+									`ExamType`		VARCHAR(30),
+									`LectionCount`  INT,
+									`PracticeCount` INT			
+								 ) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE semID, checker INT; 
+    SET semID = GetCurSemesterID();   
+	
+
+	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 );
+	
+	-- RETURN 	(	SELECT disciplines.ID
+	-- 			FROM   `disciplines`
+	-- 			WHERE 	disciplines.AuthorID  	= TeacherID 	AND
+	-- 					disciplines.SubjectID 	= SubjectID		AND
+	-- 					disciplines.Grade 		= Grade
+	-- 			ORDER BY disciplines.ID DESC
+	-- 			LIMIT 1
+	-- 		);
+	SET checker = LAST_INSERT_ID();
+
+
+	INSERT INTO `disciplines_teachers`
+		(	disciplines_teachers.DisciplineID,
+			disciplines_teachers.TeacherID 	)
+	VALUES	( checker, TeacherID );
+
+	RETURN checker;
+	
+	
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `AddModule`(	`TeacherID` 	INT, 
+								`DisciplineID` 	INT, 
+								`OrderNum` 		INT, 
+								`Name` 			VARCHAR(50) ) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT disciplines.ID 
+	INTO checker 
+	FROM `disciplines`
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.TeacherID = TeacherID AND disciplines_teachers.DisciplineID = disciplines.ID
+	WHERE 	disciplines.ID = DisciplineID
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	SET checker = -1;
+	SELECT modules.ID 
+	INTO checker
+	FROM `modules`
+	WHERE modules.DisciplineID = DisciplineID AND modules.OrderNum = OrderNum;
+	IF checker > 0 THEN
+		RETURN -2;
+	END IF;
+
+
+	INSERT INTO `modules` 	( modules.Name, modules.OrderNum, modules.DisciplineID )
+	VALUES 					( Name , OrderNum , DisciplineID );
+	
+
+	RETURN 	(	SELECT 	modules.ID
+				FROM `modules`
+				WHERE 	modules.DisciplineID = DisciplineID AND 
+						modules.OrderNum = OrderNum
+			);
+
+
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `AddSubmodule`(	`TeacherID` 	INT, 
+								`ModuleID` 		INT, 
+								`MaxRate` 		INT, 
+								`OrderNum` 		INT, 
+								`Name` 			VARCHAR(50), 
+								`Description`	VARCHAR(200),
+								`ControlType`	VARCHAR(30)
+
+							) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT modules.ID 
+	INTO checker 
+	FROM `modules`
+	INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.TeacherID = TeacherID AND disciplines_teachers.DisciplineID = disciplines.ID
+	WHERE 	modules.ID = ModuleID
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	SET checker = -1;
+	SELECT submodules.ID
+	INTO checker
+	FROM `submodules`
+	WHERE submodules.ModuleID = ModuleID AND submodules.OrderNum = OrderNum
+	LIMIT 1;
+	IF checker > 0 THEN
+		RETURN -1;
+	END IF; 
+
+	INSERT INTO `submodules` 	( submodules.ModuleID, submodules.MaxRate, submodules.OrderNum, submodules.Name, submodules.Description, submodules.Type )
+	VALUES						( ModuleID, MaxRate, OrderNum, Name, Description, ControlType);
+	
+	RETURN 	(	SELECT submodules.ID
+				FROM `submodules`
+				WHERE 	submodules.ModuleID = ModuleID AND
+						submodules.OrderNum = OrderNum
+			);
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `BindTeacher`(	`BindingTeacher` INT,
+								`DisciplineID` INT		
+							 ) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT; 
+
+	SET checker = -1;
+	SELECT disciplines_teachers.ID 
+	INTO checker 
+	FROM `disciplines`
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID = BindingTeacher  
+	WHERE disciplines.ID = DisciplineID
+	LIMIT 1;
+	IF checker > 0 THEN
+		RETURN 0;
+	END IF;
+
+	INSERT INTO `disciplines_teachers`
+		(	disciplines_teachers.DisciplineID,
+			disciplines_teachers.TeacherID 	)
+	VALUES	( DisciplineID, BindingTeacher );
+	RETURN 0;
+	
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeDiscipline`(	`TeacherID` 	INT,
+									`DisciplineID`	INT,
+									`ExamType`		VARCHAR(30),
+									`LectionCount`  INT,
+									`PracticeCount` INT,
+									`Grade`			INT,
+									`SubjectID`		INT		
+								 ) RETURNS int(11)
+    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 IS NULL OR checker <=0 THEN 
+		RETURN -1;
+	END IF;
+
+	SET checker = -1;
+	SELECT rating_table.ID
+	INTO checker
+	FROM `rating_table`
+	INNER JOIN `submodules` ON submodules.ID = rating_table.SubmoduleID
+	INNER JOIN `modules` ON modules.ID = submodules.ModuleID
+	WHERE modules.DisciplineID = DisciplineID
+	LIMIT 1;
+	IF checker > 0 THEN
+		RETURN -1;
+	END IF;
+
+
+	UPDATE `disciplines`
+	SET 	disciplines.ExamType = ExamType,
+			disciplines.LectionCount = LectionCount,
+			disciplines.PracticeCount = PracticeCount,
+			disciplines.Grade = Grade,
+			disciplines.SubjectID = SubjectID
+	WHERE disciplines.ID = DisciplineID;
+
+	RETURN 0;
+
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeLogin`(`UserID` INT,  `Login` VARCHAR(50) CHARSET utf8) RETURNS int(11)
+    NO SQL
+BEGIN
+	DECLARE checker INT;
+
+	SET checker = ( SELECT COUNT(accounts.ID) FROM accounts WHERE accounts.ID = UserID );
+	IF checker != 1 THEN
+		RETURN -1;
+	END IF;
+
+	SET checker = -1;
+	SELECT accounts.ID 
+	INTO checker
+	FROM accounts
+	WHERE accounts.Login = Login
+	LIMIT 1;
+	IF checker > 0 THEN 
+		RETURN -1;
+	END IF;
+
+	UPDATE accounts 
+	SET accounts.Login = Login
+	WHERE ID = UserID;
+	
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeMail`(`UserID` INT,  `mailN` VARCHAR(32) CHARSET utf8) RETURNS int(11)
+    NO SQL
+BEGIN
+	DECLARE checker INT;
+	SET checker = ( SELECT COUNT(accounts.ID) FROM accounts WHERE accounts.ID = UserID );
+	IF checker != 1 THEN
+		RETURN -1;
+	END IF;
+
+	SET checker = -1;
+	SELECT accounts.ID 
+	INTO checker
+	FROM accounts
+	WHERE accounts.`E-Mail` = mailN
+	LIMIT 1;
+	IF checker > 0 THEN 
+		RETURN -1;
+	END IF;
+
+
+	UPDATE accounts 
+	SET accounts.`E-Mail` = mailN
+	WHERE ID = UserID;
+	
+	RETURN 0;
+	
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeModule`(	`TeacherID` INT, 
+								`ModuleID` INT, 
+								`OrderNum` INT, 
+								`Name` VARCHAR(50) ) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT disciplines.ID 
+	INTO checker 
+	FROM `modules`
+	INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID 
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID  AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE modules.ID = ModuleID
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	SET checker = -1;
+	SELECT modules.ID 
+	INTO checker
+	FROM `modules`
+	WHERE modules.DisciplineID = checker AND modules.OrderNum = OrderNum;
+	IF checker > 0 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `modules` 
+	SET modules.OrderNum 	= OrderNum, 
+		modules.Name 		= Name
+	WHERE modules.ID = ModuleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeModuleName`(	`TeacherID` INT, 
+									`ModuleID` INT, 
+									`Name` VARCHAR(50) 
+								) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT modules.ID 
+	INTO checker 
+	FROM `modules`
+	INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID 
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID  AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE modules.ID = ModuleID
+	LIMIT 1;
+
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `modules` 
+	SET modules.Name 		= Name
+	WHERE modules.ID = ModuleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeModuleOrder`(	`TeacherID` INT, 
+										`ModuleID` INT, 
+										`OrderNum` INT 
+									) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT disciplines.ID 
+	INTO checker 
+	FROM `modules`
+	INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID 
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID  AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE modules.ID = ModuleID
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	SET checker = -1;
+	SELECT modules.ID 
+	INTO checker
+	FROM `modules`
+	WHERE modules.DisciplineID = checker AND modules.OrderNum = OrderNum;
+	IF checker > 0 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `modules` 
+	SET modules.OrderNum 	= OrderNum
+	WHERE modules.ID = ModuleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangePassword`(`UserID` INT,  `Password` VARCHAR(255) CHARSET utf8) RETURNS int(11)
+    NO SQL
+BEGIN
+	DECLARE checker INT;
+	SET checker = ( SELECT COUNT(accounts.ID) FROM accounts WHERE accounts.ID = UserID );
+
+	IF checker = 1 THEN  
+    	UPDATE accounts 
+    	SET accounts.Password = Password
+    	WHERE ID = UserID;
+    	
+    	RETURN 0;
+    ELSE  
+      	RETURN -1; 
+	END IF; 
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeStudentRate`(	`TeacherID` 	INT,
+										`StudentID` 	INT,
+										`SubmoduleID` 	INT,
+										`Rate` 			INT ) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker, discID, OldVal, accID, groupID, rateID, semID INT;
+    SET discID = -1;
+    SET groupID = -1;  					 
+	
+    SELECT disciplines.ID 
+    INTO discID
+	FROM `submodules`
+	INNER JOIN `modules` 	 	ON submodules.ModuleID = modules.ID
+	INNER JOIN `disciplines` 	ON disciplines.ID = modules.DisciplineID 
+	WHERE submodules.ID = SubmoduleID
+	LIMIT 1;
+
+	SELECT disciplines.ID 
+	INTO checker 
+	FROM `disciplines`
+	INNER JOIN `disciplines_teachers` ON 	disciplines_teachers.DisciplineID = disciplines.ID AND 
+											disciplines_teachers.TeacherID = TeacherID  
+	WHERE disciplines.ID = discID
+	LIMIT 1;
+
+	
+	IF checker > 0 THEN
+		SELECT rating_table.ID 
+		INTO rateID
+		FROM `rating_table`
+		WHERE 	rating_table.SubmoduleID = SubmoduleID AND 
+				rating_table.TeacherID = TeacherID AND 
+				rating_table.StudentID = StudentID
+		LIMIT 1;
+
+		IF checker > 0 THEN
+			SELECT students.StudyGroupID INTO groupID FROM `students` WHERE students.ID = StudentID LIMIT 1; 
+			SET semID = GetCurSemesterID(); 
+			
+			SELECT 	disciplines.ID INTO checker
+			FROM `disciplines`
+			CROSS JOIN `disciplines_teachers` 		ON 	disciplines_teachers.DisciplineID = disciplines.ID
+			CROSS JOIN `lessons`					ON 	lessons.DisciplineTeacherID = disciplines_teachers.ID
+			INNER JOIN `attending_groups`			ON 	attending_groups.ID = lessons.AttendingGroupID AND 
+														attending_groups.SemesterID = semID
+			LEFT JOIN 	`attending_groups_bases` 	ON 	attending_groups_bases.AttendingGroupID = attending_groups.ID AND
+														attending_groups_bases.StudyGroupID = groupID
+			LEFT JOIN 	`attending_groups_pool`		ON 	attending_groups_pool.AttendingGroupID = attending_groups.ID AND
+														attending_groups_pool.StudentID = StudentID
+			WHERE 	disciplines.SubjectID = SubjectID 	AND
+					disciplines.SemesterID = semID 		AND
+					attending_groups.SemesterID = semID AND
+					(	attending_groups_pool.Type = 'attach'	OR
+						(	(attending_groups_pool.Type is NULL OR attending_groups_pool.Type != 'detach') AND 
+							attending_groups_bases.StudyGroupID IS NOT NULL AND 
+							attending_groups_bases.StudyGroupID = groupID 
+						)
+					)
+			LIMIT 1;
+
+			IF checker > 0 THEN	
+				SELECT rating_table.Rate 
+				INTO OldVal
+				FROM `rating_table`
+				WHERE rating_table.ID = rateID
+				LIMIT 1;
+
+
+				SELECT accounts.ID 
+				INTO accID
+				FROM `teachers`
+				INNER JOIN `accounts` ON teachers.AccountID = accounts.ID
+				WHERE teachers.ID = TeacherID
+				LIMIT 1; 
+
+				INSERT INTO `logs` ( logs.RatingTableID, logs.AccountID, logs.OldValue, logs.NewValue, logs.Date )
+				VALUES ( rateID, accID, OldVal, Rate, NOW() );
+			
+
+				UPDATE `rating_table`
+				SET rating_table.Rate = Rate
+				WHERE rating_table.ID = rateID;
+
+				RETURN 0;
+
+
+			END IF;
+		END IF;
+	END IF;
+	RETURN -1;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeSubmodule`(	`TeacherID` 	INT, 
+									`SubmoduleID` 	INT, 
+									`MaxRate` 		INT, 
+									`OrderNum` 		INT, 
+									`Name` 			VARCHAR(50), 
+									`Description` 	VARCHAR(200),
+									`ControlType`	VARCHAR(30) 
+								) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT modules.ID 
+	INTO checker 
+	FROM `submodules`
+	INNER JOIN `modules` 		ON 	submodules.ModuleID 	= modules.ID
+	INNER JOIN `disciplines` 	ON 	disciplines.ID 			= modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE 	submodules.ID = SubmoduleID 
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	SET checker = -1;
+	SELECT submodules.ID
+	INTO checker
+	FROM `submodules`
+	WHERE submodules.ModuleID = checker AND submodules.OrderNum = OrderNum
+	LIMIT 1;
+	IF checker > 0 THEN
+		RETURN -1;
+	END IF; 
+
+	UPDATE `submodules` 
+	SET submodules.MaxRate 		= MaxRate, 
+		submodules.OrderNum 	= OrderNum, 
+		submodules.Name 		= Name, 
+		submodules.Description 	= Description,
+		submodules.Type 		= ControlType
+	WHERE submodules.ID = SubmoduleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeSubmoduleControlType`(	`TeacherID` 	INT, 
+												`SubmoduleID` 	INT, 
+												`ControlType`	VARCHAR(30) 
+											) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT submodules.ID 
+	INTO checker 
+	FROM `submodules`
+	INNER JOIN `modules` 		ON 	submodules.ModuleID 	= modules.ID
+	INNER JOIN `disciplines` 	ON 	disciplines.ID 			= modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE 	submodules.ID = SubmoduleID 
+	LIMIT 1;
+
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `submodules` 
+	SET submodules.Type 		= ControlType
+	WHERE submodules.ID = SubmoduleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeSubmoduleDescription`(	`TeacherID` 	INT, 
+												`SubmoduleID` 	INT, 
+												`Description` 	VARCHAR(200) 
+											) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT submodules.ID 
+	INTO checker 
+	FROM `submodules`
+	INNER JOIN `modules` 		ON 	submodules.ModuleID 	= modules.ID
+	INNER JOIN `disciplines` 	ON 	disciplines.ID 			= modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE 	submodules.ID = SubmoduleID 
+	LIMIT 1;
+
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `submodules` 
+	SET submodules.Description 	= Description
+	WHERE submodules.ID = SubmoduleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeSubmoduleMaxRate`(	`TeacherID` 	INT, 
+											`SubmoduleID` 	INT, 
+											`MaxRate` 		INT
+
+										) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT submodules.ID 
+	INTO checker 
+	FROM `submodules`
+	INNER JOIN `modules` 		ON 	submodules.ModuleID 	= modules.ID
+	INNER JOIN `disciplines` 	ON 	disciplines.ID 			= modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE 	submodules.ID = SubmoduleID 
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `submodules` 
+	SET submodules.MaxRate 		= MaxRate
+	WHERE submodules.ID = SubmoduleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeSubmoduleName`(	`TeacherID` 	INT, 
+										`SubmoduleID` 	INT, 
+										`Name` 			VARCHAR(50) 
+								) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT submodules.ID 
+	INTO checker 
+	FROM `submodules`
+	INNER JOIN `modules` 		ON 	submodules.ModuleID 	= modules.ID
+	INNER JOIN `disciplines` 	ON 	disciplines.ID 			= modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE 	submodules.ID = SubmoduleID 
+	LIMIT 1;
+
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `submodules` 
+	SET 	submodules.Name 		= Name
+	WHERE submodules.ID = SubmoduleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `ChangeSubmoduleOrder`(	`TeacherID` 	INT, 
+										`SubmoduleID` 	INT, 
+										`OrderNum` 		INT
+
+									) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;  					 
+	
+	SELECT modules.ID 
+	INTO checker 
+	FROM `submodules`
+	INNER JOIN `modules` 		ON 	submodules.ModuleID 	= modules.ID
+	INNER JOIN `disciplines` 	ON 	disciplines.ID 			= modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE 	submodules.ID = SubmoduleID 
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+
+	SET checker = -1;
+	SELECT submodules.ID
+	INTO checker
+	FROM `submodules`
+	WHERE submodules.ModuleID = checker AND submodules.OrderNum = OrderNum
+	LIMIT 1;
+	IF checker > 0 THEN
+		RETURN -1;
+	END IF; 
+
+
+	UPDATE `submodules` 
+	SET submodules.OrderNum 	= OrderNum
+	WHERE submodules.ID = SubmoduleID;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `CreateStudent`(`Last` VARCHAR(30) CHARSET utf8, `First` VARCHAR(30) CHARSET utf8, `Second` VARCHAR(30) CHARSET utf8, `Grade` INT, `GroupN` INT, `FacultyID` INT, `Code` VARCHAR(40) CHARSET utf8) RETURNS int(11)
+    NO SQL
+BEGIN 
+	DECLARE curID, StudyGroupID INT;
+	SET StudyGroupID = -1;
+	
+	SELECT study_groups.ID 
+	INTO StudyGroupID 
+	FROM `study_groups` 
+	WHERE 	(study_groups.Grade = Grade ) 	AND 
+			( study_groups.GroupNum = GroupN ) AND 
+			( study_groups.FacultyID = FacultyID ) 
+	LIMIT 1;
+
+	IF ( (StudyGroupID > -1) AND ( Code IS NOT NULL ) ) THEN
+
+		INSERT INTO `accounts` ( accounts.Login , accounts.Password , accounts.`E-Mail`, accounts.Type, accounts.ActivationCode )
+		VALUES 				   ( NULL, NULL, NULL, 'student', Code);
+		
+		SELECT accounts.ID 
+		INTO curID
+		FROM `accounts`
+		WHERE accounts.ActivationCode = Code;
+		
+		INSERT INTO `students` (students.StudyGroupID, students.AccountID, students.LastName, students.FirstName, students.SecondName)
+		VALUES 				   (StudyGroupID, curID, Last, First, Second);
+
+		RETURN 0;
+
+
+
+	END IF;
+	RETURN -1;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `CreateTeacher`(`Last` VARCHAR(30) CHARSET utf8, `First` VARCHAR(30) CHARSET utf8, `Second` VARCHAR(30) CHARSET utf8, `DegreeID` INT, `DepartmentID` INT, `Code` VARCHAR(40) CHARSET utf8) RETURNS int(11)
+    NO SQL
+BEGIN 
+	DECLARE curID, StudyGroupID, checker INT;
+	
+	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 degrees.ID 
+	INTO checker
+	FROM `degrees`
+	WHERE degrees.ID = DegreeID
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+
+	IF Code IS NOT NULL THEN
+
+		INSERT INTO `accounts` ( accounts.Login , accounts.Password , accounts.`E-Mail`, accounts.Type, accounts.ActivationCode )
+		VALUES 				   ( NULL, NULL, NULL, 'teacher', Code);
+		
+		SELECT accounts.ID INTO curID
+		FROM `accounts`
+		WHERE accounts.ActivationCode = Code;
+		
+		INSERT INTO `teachers` (	teachers.AccountID, 
+									teachers.LastName, 
+									teachers.FirstName, 
+									teachers.SecondName, 
+									teachers.DegreeID, 
+									teachers.DepartmentID)
+		VALUES 				   (curID, Last, First, Second, DegreeID, DepartmentID);
+		RETURN 0;
+
+	END IF;
+	RETURN -1;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `DeleteModule`(	`TeacherID` 	INT,
+								`ModuleID` 	INT 
+							) RETURNS int(11)
+    NO SQL
+BEGIN  
+
+    DECLARE checker INT;
+
+	SELECT disciplines.ID 
+	INTO checker 
+	FROM `modules`
+	INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON 	disciplines_teachers.TeacherID = TeacherID AND 
+											disciplines_teachers.DisciplineID = disciplines.ID
+	WHERE 	modules.ID = ModuleID
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+
+	SET checker = -1;
+	SELECT submodules.ID
+	INTO checker
+	FROM `submodules`
+	WHERE submodules.ModuleID = ModuleID
+	LIMIT 1;
+	IF checker > 0 THEN
+		RETURN -1;
+	END IF;
+
+
+	DELETE FROM `modules` 
+	WHERE modules.ID = ModuleID; 
+
+
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `DeleteSubmodule`(	`TeacherID` 	INT,
+									`SubmoduleID` 	INT
+								) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker INT;
+
+	SELECT modules.ID 
+	INTO checker 
+	FROM `submodules`
+	INNER JOIN `modules` ON modules.ID = submodules.ModuleID
+	INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.TeacherID = TeacherID AND disciplines_teachers.DisciplineID = disciplines.ID
+	WHERE 	submodules.ID = SubmoduleID
+	LIMIT 1;
+	IF checker IS NULL OR checker <= 0 THEN
+		RETURN -1;
+	END IF;
+
+
+
+	SET checker = -1;
+	SELECT rating_table.ID
+	INTO checker
+	FROM `rating_table`
+	WHERE rating_table.SubmoduleID = SubmoduleID
+	LIMIT 1;
+	IF checker > 0 THEN
+		RETURN -1;
+	END IF;
+
+
+
+	DELETE FROM `submodules` 
+	WHERE submodules.ID = SubmoduleID; 
+
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `GetAccNumByCode`( `Code` VARCHAR(40) CHARSET utf8 ) RETURNS int(11)
+    NO SQL
+BEGIN
+	RETURN (SELECT COUNT(accounts.ID) FROM accounts WHERE accounts.ActivationCode = Code );
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `GetAccNumByLogin`(`Login` VARCHAR(50) CHARSET utf8) RETURNS int(11)
+    NO SQL
+BEGIN 
+	RETURN ( SELECT COUNT(accounts.ID) FROM accounts WHERE accounts.Login = Login );
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `GetAccNumByMail`(`Mail` VARCHAR(255) CHARSET utf8) RETURNS int(11)
+    NO SQL
+BEGIN 
+	RETURN ( SELECT COUNT(accounts.ID) FROM accounts WHERE accounts.`E-Mail` = Mail );
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `GetCurSemesterID`( ) RETURNS int(11)
+    NO SQL
+BEGIN
+	RETURN (SELECT general_settings.Val FROM `general_settings` WHERE general_settings.ID = 1 );
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `GetHashKey`() RETURNS varchar(300) CHARSET utf8
+    NO SQL
+BEGIN
+	RETURN (	SELECT	general_settings.ValS
+	        	FROM 	`general_settings`
+	        	WHERE general_settings.ID = 2
+	       );
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `GetMaxRateForDisc`(`StudentID` INT,  `DisciplineID` INT) RETURNS int(11)
+    NO SQL
+BEGIN
+	RETURN 	(	SELECT SUM(submodules.MaxRate) 
+				FROM `modules`
+				CROSS JOIN `submodules` ON submodules.ModuleID = modules.ID
+				CROSS JOIN `rating_table` ON 	rating_table.StudentID = StudentID AND 
+												rating_table.SubmoduleID = submodules.ID
+				WHERE modules.DisciplineID = DisciplineID 
+			);
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `GetRateForDisc`(`StudentID` INT,  `DisciplineID` INT) RETURNS int(11)
+    NO SQL
+BEGIN
+	RETURN 	(	SELECT SUM(rating_table.Rate) 
+				FROM `modules`
+				CROSS JOIN `submodules` ON submodules.ModuleID = modules.ID
+				CROSS JOIN `rating_table` ON 	rating_table.StudentID = StudentID AND 
+												rating_table.SubmoduleID = submodules.ID
+				WHERE modules.DisciplineID = DisciplineID 
+			);
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `GetSemesterID`( `Year` INT, `Num` INT ) RETURNS int(11)
+    NO SQL
+BEGIN
+	RETURN (SELECT semesters.ID FROM `semesters` WHERE semesters.Year = Year AND semesters.Num = Num );
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `InternalOccurrenceChecker`(	`StudentID` INT, 
+												`AG_ID` 	INT ) RETURNS int(11)
+    NO SQL
+BEGIN
+
+	DECLARE mID INT;
+	SET mID = 0; 
+	SELECT students.ID 
+	INTO mID
+	FROM `students`
+	INNER JOIN `study_groups` ON students.StudyGroupID = study_groups.ID
+	LEFT JOIN `attending_groups_bases` ON attending_groups_bases.AttendingGroupID = AG_ID AND attending_groups_bases.StudyGroupID = study_groups.ID
+	LEFT JOIN `attending_groups_pool` ON attending_groups_pool.AttendingGroupID = AG_ID AND attending_groups_pool.StudentID = StudentID
+	WHERE 	students.ID = StudentID AND
+			(( attending_groups_pool.Type IS NOT NULL AND attending_groups_pool.Type = 'attach')	OR
+			( (attending_groups_pool.Type IS NULL OR attending_groups_pool.Type != 'detach') AND attending_groups_bases.ID is NOT NULL)
+			)
+	LIMIT 1;
+
+	RETURN (mID>0);
+
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `SetHashKey`( `Value` VARCHAR(300) ) RETURNS int(11)
+    NO SQL
+BEGIN
+	UPDATE `general_settings`
+	SET general_settings.ValS = Value
+	WHERE general_settings.ID = 2;
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `SetStudentRate`(	`TeacherID` 	INT,
+									`StudentID` 	INT,
+									`SubmoduleID` 	INT,
+									`Rate` 			INT ) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker, discID, groupID, semID INT; 
+    SET discID = -1;
+    SET groupID = -1; 					 
+	
+    SELECT disciplines.ID 
+    INTO discID
+	FROM `submodules`
+	INNER JOIN `modules` 		ON submodules.ModuleID = modules.ID
+	INNER JOIN `disciplines` 	ON disciplines.ID = modules.DisciplineID 
+	WHERE submodules.ID = SubmoduleID
+	LIMIT 1;
+
+	SELECT disciplines.ID 
+	INTO checker 
+	FROM `disciplines`
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID = TeacherID  
+	WHERE disciplines.ID = discID
+	LIMIT 1;
+
+	IF checker > 0 THEN
+
+		SELECT COUNT(rating_table.ID) 
+		INTO checker
+		FROM `rating_table`
+		WHERE 	rating_table.SubmoduleID = SubmoduleID AND 
+				rating_table.TeacherID = TeacherID AND 
+				rating_table.StudentID = StudentID;
+
+		IF checker = 0 THEN
+
+			SELECT students.StudyGroupID INTO groupID FROM `students` WHERE students.ID = StudentID LIMIT 1; 
+			SET semID = GetCurSemesterID(); 
+			
+			SELECT 	disciplines.ID INTO checker
+			FROM `disciplines`
+			CROSS JOIN `disciplines_teachers` 		ON 	disciplines_teachers.DisciplineID = disciplines.ID
+			CROSS JOIN `lessons`					ON 	lessons.DisciplineTeacherID = disciplines_teachers.ID
+			INNER JOIN `attending_groups`			ON 	attending_groups.ID = lessons.AttendingGroupID AND 
+														attending_groups.SemesterID = semID
+			LEFT JOIN 	`attending_groups_bases` 	ON 	attending_groups_bases.AttendingGroupID = attending_groups.ID AND
+														attending_groups_bases.StudyGroupID = groupID
+			LEFT JOIN 	`attending_groups_pool`		ON 	attending_groups_pool.AttendingGroupID = attending_groups.ID AND
+														attending_groups_pool.StudentID = StudentID
+			WHERE 	disciplines.SubjectID = SubjectID 	AND
+					disciplines.SemesterID = semID 		AND
+					attending_groups.SemesterID = semID AND
+					(	attending_groups_pool.Type = 'attach'	OR
+						(	(attending_groups_pool.Type is NULL OR attending_groups_pool.Type != 'detach') AND 
+							attending_groups_bases.StudyGroupID IS NOT NULL AND 
+							attending_groups_bases.StudyGroupID = groupID 
+						)
+					)
+			LIMIT 1;
+
+			IF checker > 0 THEN
+				INSERT INTO `rating_table` ( rating_table.StudentID, rating_table.TeacherID, rating_table.SubmoduleID, rating_table.Rate, rating_table.Date )
+				VALUES ( StudentID, TeacherID, SubmoduleID, Rate, CURDATE() );
+				RETURN 0;
+			END IF;
+			RETURN -3;
+		END IF;
+		RETURN checker;
+	END IF;
+	RETURN -1;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `SignIn`(	`Login` 	VARCHAR(255) CHARSET utf8, 
+							`Password` 	VARCHAR(64) CHARSET utf8
+						) RETURNS int(11)
+    NO SQL
+BEGIN 
+	DECLARE curID INT;
+	SELECT accounts.ID
+	INTO curID
+	FROM `accounts`
+	WHERE 	(accounts.Login = Login OR accounts.`E-Mail` = Login) AND
+			accounts.Password = Password
+	LIMIT 1;
+
+	IF curID > 0 THEN 
+		RETURN curID;
+	ELSE 
+		RETURN -1;
+	END IF;
+
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `SwapModuleOrder`(	`TeacherID` INT, 
+										`ModuleID1` INT, 
+										`ModuleID2` INT 
+									) RETURNS int(11)
+    NO SQL
+BEGIN  
+   	DECLARE checker, ord1, ord2, disc1, disc2 INT; 				 
+	
+	SELECT COUNT(modules.ID) 
+	INTO checker 
+	FROM `modules`
+	INNER JOIN `disciplines` ON disciplines.ID = modules.DisciplineID 
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID  AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE modules.ID = ModuleID1 OR modules.ID = ModuleID2
+	LIMIT 2;
+	IF checker != 2 THEN
+		RETURN -1;
+	END IF;
+
+	SELECT 	modules.OrderNum,
+			modules.DisciplineID
+	INTO ord1, disc1
+	FROM `modules`
+	WHERE modules.ID = ModuleID1
+	LIMIT 1;
+
+	SELECT 	modules.OrderNum,
+			modules.DisciplineID
+	INTO ord2, disc2
+	FROM `modules`
+	WHERE modules.ID = ModuleID2
+	LIMIT 1;
+
+	IF disc1 != disc2 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `modules` 
+	SET modules.OrderNum 	= 13666
+	WHERE modules.ID = ModuleID1;
+
+	UPDATE `modules` 
+	SET modules.OrderNum 	= ord1
+	WHERE modules.ID = ModuleID2;
+
+	UPDATE `modules` 
+	SET modules.OrderNum 	= ord2
+	WHERE modules.ID = ModuleID1;
+	
+	RETURN 0;
+END$$
+
+CREATE DEFINER=`root`@`%` FUNCTION `SwapSubmoduleOrder`(	`TeacherID` 	INT, 
+										`SubmoduleID1` 	INT, 
+										`SubmoduleID2` 	INT
+
+									) RETURNS int(11)
+    NO SQL
+BEGIN  
+    DECLARE checker, ord1, ord2, mod1, mod2 INT;  					 
+	
+	SELECT COUNT(submodules.ID) 
+	INTO checker 
+	FROM `submodules`
+	INNER JOIN `modules` 		ON 	submodules.ModuleID 	= modules.ID
+	INNER JOIN `disciplines` 	ON 	disciplines.ID 			= modules.DisciplineID
+	INNER JOIN `disciplines_teachers` ON disciplines_teachers.DisciplineID = disciplines.ID AND disciplines_teachers.TeacherID 	= TeacherID
+	WHERE 	submodules.ID = SubmoduleID1 OR submodules.ID = SubmoduleID2;
+	IF checker != 2 THEN
+		RETURN -1;
+	END IF;
+
+
+	SELECT 	submodules.OrderNum,
+			submodules.ModuleID
+	INTO ord1, mod1
+	FROM `submodules`
+	WHERE submodules.ID = SubmoduleID1
+	LIMIT 1;
+
+	SELECT 	submodules.OrderNum,
+			submodules.ModuleID
+	INTO ord2, mod2
+	FROM `submodules`
+	WHERE submodules.ID = SubmoduleID2
+	LIMIT 1;
+
+	IF mod1 != mod2 THEN
+		RETURN -1;
+	END IF;
+
+	UPDATE `submodules` 
+	SET submodules.OrderNum 	= 13666
+	WHERE submodules.ID = SubmoduleID1;
+
+	UPDATE `submodules` 
+	SET submodules.OrderNum 	= ord1
+	WHERE submodules.ID = SubmoduleID2;
+
+	UPDATE `submodules` 
+	SET submodules.OrderNum 	= ord2
+	WHERE submodules.ID = SubmoduleID1;
+	RETURN 0;
+END$$
+
+DELIMITER ;
 
 -- --------------------------------------------------------
 
@@ -38,7 +1603,15 @@ CREATE TABLE IF NOT EXISTS `accounts` (
   PRIMARY KEY (`ID`),
   UNIQUE KEY `E-Mail` (`E-Mail`),
   UNIQUE KEY `Login` (`Login`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
+
+--
+-- Дамп данных таблицы `accounts`
+--
+
+INSERT INTO `accounts` (`ID`, `Login`, `Password`, `E-Mail`, `Type`, `ActivationCode`, `isEnabled`, `UserAgent`) VALUES
+(6, 'Abbadon', 'ff6cfea689c242780b084583790e39f5eb03bb91', 'solidovic@gmail.com', 'teacher', NULL, 1, NULL),
+(7, NULL, NULL, NULL, 'student', 'code2', 1, NULL);
 
 -- --------------------------------------------------------
 
@@ -138,7 +1711,27 @@ CREATE TABLE IF NOT EXISTS `degrees` (
   `ID` int(11) NOT NULL AUTO_INCREMENT,
   `Name` varchar(200) NOT NULL,
   PRIMARY KEY (`ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;
+
+--
+-- Дамп данных таблицы `degrees`
+--
+
+INSERT INTO `degrees` (`ID`, `Name`) VALUES
+(1, 'Аспирант'),
+(2, 'Ассистент'),
+(3, 'Ведущий научный сотрудник'),
+(4, 'Главный научный сотрудник'),
+(5, 'Докторант'),
+(6, 'Доцент'),
+(7, 'Младший научный сотрудник'),
+(8, 'Научный сотрудник'),
+(9, 'Преподаватель'),
+(10, 'Профессор'),
+(11, 'Старший преподаватель'),
+(12, 'Стажер'),
+(13, 'Старший научный сотрудник'),
+(14, 'Доцент');
 
 -- --------------------------------------------------------
 
@@ -152,7 +1745,15 @@ CREATE TABLE IF NOT EXISTS `departments` (
   `FacultyID` int(11) NOT NULL,
   PRIMARY KEY (`ID`),
   KEY `FacultyID` (`FacultyID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
+
+--
+-- Дамп данных таблицы `departments`
+--
+
+INSERT INTO `departments` (`ID`, `Name`, `FacultyID`) VALUES
+(1, 'Кафедра математического анализа', 1),
+(2, 'Кафедра магического анализа', 1);
 
 -- --------------------------------------------------------
 
@@ -203,7 +1804,15 @@ CREATE TABLE IF NOT EXISTS `faculties` (
   `Name` varchar(100) NOT NULL,
   `Abbr` varchar(20) NOT NULL,
   PRIMARY KEY (`ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
+
+--
+-- Дамп данных таблицы `faculties`
+--
+
+INSERT INTO `faculties` (`ID`, `Name`, `Abbr`) VALUES
+(1, 'Математика Механика и КН', 'МехМат'),
+(2, 'Юридический факультет', 'ЮрФак');
 
 -- --------------------------------------------------------
 
@@ -216,7 +1825,14 @@ CREATE TABLE IF NOT EXISTS `general_settings` (
   `Val` int(11) DEFAULT NULL,
   `ValS` varchar(300) DEFAULT NULL,
   PRIMARY KEY (`ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
+
+--
+-- Дамп данных таблицы `general_settings`
+--
+
+INSERT INTO `general_settings` (`ID`, `Val`, `ValS`) VALUES
+(2, NULL, 'hfkshfkjdshkjfsdj');
 
 -- --------------------------------------------------------
 
@@ -348,7 +1964,17 @@ CREATE TABLE IF NOT EXISTS `specializations` (
   `Name` varchar(50) NOT NULL,
   `Abbr` varchar(20) NOT NULL,
   PRIMARY KEY (`ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
+
+--
+-- Дамп данных таблицы `specializations`
+--
+
+INSERT INTO `specializations` (`ID`, `Name`, `Abbr`) VALUES
+(1, 'Прикладная математика и информатика', 'ПМиИ'),
+(2, 'Информационные технологии', 'ИТ'),
+(3, 'Математика', 'Матем'),
+(4, 'Механика', 'Механика');
 
 -- --------------------------------------------------------
 
@@ -366,7 +1992,14 @@ CREATE TABLE IF NOT EXISTS `students` (
   PRIMARY KEY (`ID`),
   KEY `StudyGroupID` (`StudyGroupID`),
   KEY `AccountID` (`AccountID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
+
+--
+-- Дамп данных таблицы `students`
+--
+
+INSERT INTO `students` (`ID`, `StudyGroupID`, `AccountID`, `LastName`, `FirstName`, `SecondName`) VALUES
+(1, 1, 7, 'Иванов', 'Иван', 'Иванович');
 
 -- --------------------------------------------------------
 
@@ -384,7 +2017,14 @@ CREATE TABLE IF NOT EXISTS `study_groups` (
   PRIMARY KEY (`ID`),
   KEY `SpecializtionID` (`SpecializationID`),
   KEY `FacultyID` (`FacultyID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
+
+--
+-- Дамп данных таблицы `study_groups`
+--
+
+INSERT INTO `study_groups` (`ID`, `Grade`, `GroupNum`, `SpecializationID`, `FacultyID`, `Name`) VALUES
+(1, 1, 1, 1, 1, NULL);
 
 -- --------------------------------------------------------
 
@@ -397,7 +2037,17 @@ CREATE TABLE IF NOT EXISTS `subjects` (
   `Name` varchar(50) NOT NULL,
   `Abbr` varchar(20) DEFAULT NULL,
   PRIMARY KEY (`ID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
+
+--
+-- Дамп данных таблицы `subjects`
+--
+
+INSERT INTO `subjects` (`ID`, `Name`, `Abbr`) VALUES
+(1, 'Математический анализ', 'Матан'),
+(2, 'Конституционное право', 'КП'),
+(3, 'Операционные системы', 'ОС'),
+(4, 'История', 'История');
 
 -- --------------------------------------------------------
 
@@ -435,7 +2085,14 @@ CREATE TABLE IF NOT EXISTS `teachers` (
   PRIMARY KEY (`ID`),
   KEY `FacultyID` (`DepartmentID`),
   KEY `AccountID` (`AccountID`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
+) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
+
+--
+-- Дамп данных таблицы `teachers`
+--
+
+INSERT INTO `teachers` (`ID`, `LastName`, `FirstName`, `SecondName`, `DegreeID`, `DepartmentID`, `AccountID`) VALUES
+(1, 'Колобок', 'Фазиль', 'Евреивич', 9, 1, 6);
 
 --
 -- Ограничения внешнего ключа сохраненных таблиц