Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
G
grade
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Anton Yushko
grade
Commits
f4047555
Commit
f4047555
authored
11 years ago
by
PavelBegunkov
Browse files
Options
Downloads
Patches
Plain Diff
refactoring
parent
2d20d329
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
db/StoredProcedures.sql
+125
-127
125 additions, 127 deletions
db/StoredProcedures.sql
with
125 additions
and
127 deletions
db/StoredProcedures.sql
+
125
−
127
View file @
f4047555
...
...
@@ -250,7 +250,28 @@ BEGIN
);
END
//
DROP
FUNCTION
IF
EXISTS
GetGradeID
//
CREATE
FUNCTION
`GetGradeID`
(
`Grade`
INT
,
`Degree`
VARCHAR
(
30
)
-- enum('bachelor','master','specialist')
)
RETURNS
int
(
11
)
NO
SQL
BEGIN
DECLARE
res
INT
;
SELECT
grades
.
ID
INTO
res
FROM
`grades`
WHERE
grades
.
Grade
=
Grade
And
grades
.
Degree
=
Degree
LIMIT
1
;
IF
res
>
0
THEN
RETURN
res
;
ELSE
RETURN
-
1
;
END
IF
;
END
//
...
...
@@ -2360,34 +2381,28 @@ CREATE FUNCTION `SwapModuleOrder` ( `TeacherID` INT,
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
)
AND
modules
.
isExam
=
0
LIMIT
1
;
IF
checker
!=
2
THEN
RETURN
-
1
;
END
IF
;
SET
disc1
=
-
1
;
SET
disc2
=
-
1
;
SELECT
modules
.
OrderNum
,
modules
.
DisciplineID
INTO
ord1
,
disc1
FROM
`modules`
WHERE
modules
.
ID
=
ModuleID1
INNER
JOIN
`disciplines`
ON
disciplines
.
ID
=
modules
.
DisciplineID
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
modules
.
ID
=
ModuleID1
AND
modules
.
isExam
=
0
LIMIT
1
;
SELECT
modules
.
OrderNum
,
modules
.
DisciplineID
INTO
ord2
,
disc2
FROM
`modules`
WHERE
modules
.
ID
=
ModuleID2
INNER
JOIN
`disciplines`
ON
disciplines
.
ID
=
modules
.
DisciplineID
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
modules
.
ID
=
ModuleID2
AND
modules
.
isExam
=
0
LIMIT
1
;
IF
disc1
!=
disc2
THEN
IF
disc1
!=
disc2
OR
disc1
<=
0
THEN
RETURN
-
1
;
END
IF
;
...
...
@@ -2397,11 +2412,13 @@ BEGIN
UPDATE
`modules`
SET
modules
.
OrderNum
=
ord1
WHERE
modules
.
ID
=
ModuleID2
;
WHERE
modules
.
ID
=
ModuleID2
LIMIT
1
;
UPDATE
`modules`
SET
modules
.
OrderNum
=
ord2
WHERE
modules
.
ID
=
ModuleID1
;
WHERE
modules
.
ID
=
ModuleID1
LIMIT
1
;
RETURN
0
;
END
//
...
...
@@ -2446,16 +2463,16 @@ CREATE FUNCTION `ChangeSubmodule` ( `TeacherID` INT,
BEGIN
DECLARE
checker
INT
;
SET
checker
=
-
1
;
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
AND
modules
.
isExam
=
0
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
SubmoduleID
=
submodules
.
ID
LIMIT
1
;
IF
NOT
(
checker
>
0
)
THEN
IF
checker
<=
0
THEN
RETURN
-
1
;
END
IF
;
...
...
@@ -2463,7 +2480,8 @@ BEGIN
SELECT
submodules
.
ID
INTO
checker
FROM
`submodules`
WHERE
submodules
.
ModuleID
=
checker
AND
submodules
.
OrderNum
=
OrderNum
WHERE
submodules
.
ModuleID
=
checker
AND
submodules
.
OrderNum
=
OrderNum
LIMIT
1
;
IF
checker
>
0
THEN
RETURN
-
1
;
...
...
@@ -2475,7 +2493,8 @@ BEGIN
submodules
.
Name
=
Name
,
submodules
.
Description
=
Description
,
submodules
.
Type
=
ControlType
WHERE
submodules
.
ID
=
SubmoduleID
;
WHERE
submodules
.
ID
=
SubmoduleID
LIMIT
1
;
RETURN
0
;
END
//
...
...
@@ -2488,22 +2507,24 @@ CREATE FUNCTION `ChangeSubmoduleControlType`( `TeacherID` INT,
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
INNER
JOIN
`disciplines_teachers`
ON
disciplines_teachers
.
DisciplineID
=
disciplines
.
ID
AND
disciplines_teachers
.
TeacherID
=
TeacherI
D
WHERE
s
ubmodule
s
.
ID
=
S
ubmoduleID
AND
WHERE
TeacherID
=
disciplines
.
AuthorID
AN
D
S
ubmoduleID
=
s
ubmodule
s
.
ID
AND
modules
.
isExam
=
0
LIMIT
1
;
IF
NOT
(
checker
>
0
)
THEN
IF
checker
<=
0
THEN
RETURN
-
1
;
END
IF
;
UPDATE
`submodules`
SET
submodules
.
Type
=
ControlType
WHERE
submodules
.
ID
=
SubmoduleID
;
WHERE
submodules
.
ID
=
SubmoduleID
LIMIT
1
;
RETURN
0
;
END
//
...
...
@@ -2516,22 +2537,20 @@ CREATE FUNCTION `ChangeSubmoduleMaxRate` ( `TeacherID` INT,
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
INNER
JOIN
`disciplines_teachers`
ON
disciplines_teachers
.
DisciplineID
=
disciplines
.
ID
AND
disciplines_teachers
.
TeacherID
=
TeacherID
WHERE
submodules
.
ID
=
SubmoduleID
AND
modules
.
isExam
=
0
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
SubmoduleID
=
submodules
.
ID
LIMIT
1
;
IF
NOT
(
checker
>
0
)
THEN
RETURN
-
1
;
END
IF
;
UPDATE
`submodules`
SET
submodules
.
MaxRate
=
MaxRate
WHERE
submodules
.
ID
=
SubmoduleID
;
WHERE
submodules
.
ID
=
SubmoduleID
LIMIT
1
;
RETURN
0
;
END
//
...
...
@@ -2544,16 +2563,16 @@ CREATE FUNCTION `ChangeSubmoduleOrder` ( `TeacherID` INT,
BEGIN
DECLARE
checker
INT
;
SET
checker
=
-
1
;
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
AND
modules
.
isExam
=
0
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
SubmoduleID
=
submodules
.
ID
LIMIT
1
;
IF
NOT
(
checker
>
0
)
THEN
IF
checker
<=
0
THEN
RETURN
-
1
;
END
IF
;
...
...
@@ -2562,7 +2581,8 @@ BEGIN
SELECT
submodules
.
ID
INTO
checker
FROM
`submodules`
WHERE
submodules
.
ModuleID
=
checker
AND
submodules
.
OrderNum
=
OrderNum
WHERE
submodules
.
ModuleID
=
checker
AND
submodules
.
OrderNum
=
OrderNum
LIMIT
1
;
IF
checker
>
0
THEN
RETURN
-
1
;
...
...
@@ -2571,7 +2591,8 @@ BEGIN
UPDATE
`submodules`
SET
submodules
.
OrderNum
=
OrderNum
WHERE
submodules
.
ID
=
SubmoduleID
;
WHERE
submodules
.
ID
=
SubmoduleID
LIMIT
1
;
RETURN
0
;
END
//
...
...
@@ -2584,22 +2605,23 @@ CREATE FUNCTION `ChangeSubmoduleName` ( `TeacherID` INT,
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
INNER
JOIN
`disciplines_teachers`
ON
disciplines_teachers
.
DisciplineID
=
disciplines
.
ID
AND
disciplines_teachers
.
TeacherID
=
TeacherID
WHERE
submodules
.
ID
=
SubmoduleID
AND
modules
.
isExam
=
0
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
SubmoduleID
=
submodules
.
ID
LIMIT
1
;
IF
NOT
(
checker
>
0
)
THEN
IF
checker
>
0
THEN
RETURN
-
1
;
END
IF
;
UPDATE
`submodules`
SET
submodules
.
Name
=
Name
WHERE
submodules
.
ID
=
SubmoduleID
;
WHERE
submodules
.
ID
=
SubmoduleID
LIMIT
1
;
RETURN
0
;
END
//
...
...
@@ -2612,22 +2634,23 @@ CREATE FUNCTION `ChangeSubmoduleDescription` ( `TeacherID` INT,
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
INNER
JOIN
`disciplines_teachers`
ON
disciplines_teachers
.
DisciplineID
=
disciplines
.
ID
AND
disciplines_teachers
.
TeacherID
=
TeacherID
WHERE
submodules
.
ID
=
SubmoduleID
AND
modules
.
isExam
=
0
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
SubmoduleID
=
submodules
.
ID
LIMIT
1
;
IF
NOT
(
checker
>
0
)
THEN
IF
checker
>
0
THEN
RETURN
-
1
;
END
IF
;
UPDATE
`submodules`
SET
submodules
.
Description
=
Description
WHERE
submodules
.
ID
=
SubmoduleID
;
WHERE
submodules
.
ID
=
SubmoduleID
LIMIT
1
;
RETURN
0
;
END
//
...
...
@@ -2641,14 +2664,14 @@ CREATE FUNCTION `DeleteSubmodule` ( `TeacherID` INT,
BEGIN
DECLARE
checker
INT
;
SET
checker
=
-
1
;
SELECT
submodules
.
ID
INTO
checker
FROM
`submodules`
INNER
JOIN
`modules`
ON
modules
.
ID
=
submodules
.
ModuleID
AND
modules
.
isExam
=
0
INNER
JOIN
`disciplines`
ON
modules
.
DisciplineID
=
disciplines
.
ID
AND
TeacherID
=
disciplines
.
AuthorID
WHERE
SubmoduleID
=
submodules
.
ID
INNER
JOIN
`modules`
ON
modules
.
ID
=
submodules
.
ModuleID
INNER
JOIN
`disciplines`
ON
modules
.
DisciplineID
=
disciplines
.
ID
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
SubmoduleID
=
submodules
.
ID
LIMIT
1
;
IF
checker
<=
0
THEN
RETURN
-
1
;
...
...
@@ -2665,8 +2688,8 @@ BEGIN
END
IF
;
DELETE
FROM
`submodules`
WHERE
submodules
.
ID
=
SubmoduleID
;
WHERE
submodules
.
ID
=
SubmoduleID
LIMIT
1
;
RETURN
0
;
END
//
...
...
@@ -2684,17 +2707,15 @@ CREATE FUNCTION `AddSubmodule` ( `TeacherID` INT,
BEGIN
DECLARE
checker
INT
;
SET
checker
=
-
1
;
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
AND
modules
.
isExam
=
0
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
ModuleID
=
modules
.
ID
LIMIT
1
;
IF
NOT
(
checker
>
0
)
THEN
IF
checker
<=
0
THEN
RETURN
-
1
;
END
IF
;
...
...
@@ -2703,7 +2724,8 @@ BEGIN
SELECT
submodules
.
ID
INTO
checker
FROM
`submodules`
WHERE
submodules
.
ModuleID
=
ModuleID
AND
submodules
.
OrderNum
=
OrderNum
WHERE
ModuleID
=
submodules
.
ModuleID
AND
OrderNum
=
submodules
.
OrderNum
LIMIT
1
;
IF
checker
>
0
THEN
RETURN
-
1
;
...
...
@@ -2717,6 +2739,7 @@ BEGIN
FROM
`submodules`
WHERE
submodules
.
ModuleID
=
ModuleID
AND
submodules
.
OrderNum
=
OrderNum
LIMIT
1
);
END
//
...
...
@@ -2730,74 +2753,49 @@ CREATE FUNCTION `SwapSubmoduleOrder`( `TeacherID` INT,
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
)
AND
modules
.
isExam
=
0
;
IF
checker
!=
2
THEN
RETURN
-
1
;
END
IF
;
SET
mod1
=
-
1
;
SET
mod2
=
-
1
;
SELECT
submodules
.
OrderNum
,
submodules
.
ModuleID
INTO
ord1
,
mod1
FROM
`submodules`
WHERE
submodules
.
ID
=
SubmoduleID1
INNER
JOIN
`modules`
ON
submodules
.
ModuleID
=
modules
.
ID
INNER
JOIN
`disciplines`
ON
disciplines
.
ID
=
modules
.
DisciplineID
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
SubmoduleID1
=
submodules
.
ID
LIMIT
1
;
SELECT
submodules
.
OrderNum
,
submodules
.
ModuleID
INTO
ord2
,
mod2
FROM
`submodules`
WHERE
submodules
.
ID
=
SubmoduleID2
INNER
JOIN
`modules`
ON
submodules
.
ModuleID
=
modules
.
ID
INNER
JOIN
`disciplines`
ON
disciplines
.
ID
=
modules
.
DisciplineID
WHERE
TeacherID
=
disciplines
.
AuthorID
AND
SubmoduleID2
=
submodules
.
ID
LIMIT
1
;
IF
mod1
!=
mod2
THEN
IF
mod1
<=
0
OR
mod1
!=
mod2
THEN
RETURN
-
1
;
END
IF
;
UPDATE
`submodules`
SET
submodules
.
OrderNum
=
13666
WHERE
submodules
.
ID
=
SubmoduleID1
;
WHERE
submodules
.
ID
=
SubmoduleID1
LIMIT
1
;
UPDATE
`submodules`
SET
submodules
.
OrderNum
=
ord1
WHERE
submodules
.
ID
=
SubmoduleID2
;
WHERE
submodules
.
ID
=
SubmoduleID2
LIMIT
1
;
UPDATE
`submodules`
SET
submodules
.
OrderNum
=
ord2
WHERE
submodules
.
ID
=
SubmoduleID1
;
WHERE
submodules
.
ID
=
SubmoduleID1
LIMIT
1
;
RETURN
0
;
END
//
DROP
FUNCTION
IF
EXISTS
GetGradeID
//
CREATE
FUNCTION
`GetGradeID`
(
`Grade`
INT
,
`Degree`
VARCHAR
(
30
)
-- enum('bachelor','master','specialist')
)
RETURNS
int
(
11
)
NO
SQL
BEGIN
DECLARE
res
INT
;
SELECT
grades
.
ID
INTO
res
FROM
`grades`
WHERE
grades
.
Grade
=
Grade
And
grades
.
Degree
=
Degree
LIMIT
1
;
IF
res
>
0
THEN
RETURN
res
;
ELSE
RETURN
-
1
;
END
IF
;
END
//
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment