Skip to content
Snippets Groups Projects
Commit 514992c0 authored by Anton Bagliy's avatar Anton Bagliy
Browse files

v.2.8.6

parents ad5249e1 ff1cce1d
Branches
No related merge requests found
......@@ -151,3 +151,88 @@ BEGIN
where (D."IsInactive" = true and D."IsGlobal" = true) or (D."IsInactive" = false and D."IsGlobal" = false);
end;
$function$;
DROP FUNCTION IF EXISTS public.finalreport_getbysemesteryeardisciplinegroup(pyear integer, pnum integer, pdisciplineid integer, pgroupid integer);
CREATE OR REPLACE FUNCTION public.finalreport_getbysemesteryeardisciplinegroup(pyear integer, pnum integer, pdisciplineid integer, pgroupid integer)
RETURNS TABLE("SemesterYear" integer, "SemesterNum" integer, "PlanExternalID" integer, "SubjectExternalID" character varying, "RecordBookExternalID" character varying, "ExamType" exam_credit_grading_credit, "SemesterRate" bigint, "ExamRate" integer, "Exam2Rate" integer, "Exam3Rate" integer, "ExtraRate" integer, "Extra2Rate" integer, "BonusRate" integer)
LANGUAGE plpgsql
AS $function$
declare
vSubjectId character varying default NULL;
vSemesterId integer default -1;
vPlanExtID integer default -1;
vExamType exam_credit_grading_credit default 'credit';
BEGIN
select semesters.id
into vSemesterId
from semesters
where semesters.year = pyear
and semesters.num = pnum;
select subjects.externalid
into vSubjectId
from subjects
join disciplines on disciplines.subjectid = subjects.id
where disciplines.id = pdisciplineid;
select disciplines.examtype into vExamType
from disciplines
where disciplines.id = pdisciplineid;
select study_plans.externalid into vPlanExtID
from study_plans
join disciplines_study_plans on study_plans.id = disciplines_study_plans.studyplanid
join disciplines on disciplines.id = disciplines_study_plans.disciplineid
where disciplines.id = pdisciplineid;
return query
select DisciplineGrades.SemesterYear as "SemesterYear",
DisciplineGrades.SemesterNum as "SemesterNum",
DisciplineGrades.PlanExternalID as "PlanExternalID",
DisciplineGrades.SubjectExternalID as "SubjectExternalID",
DisciplineGrades.RecordBookExternalID as "RecordBookExternalID",
DisciplineGrades.ExamType as "ExamType",
DisciplineGrades.SemesterRate as "SemesterRate",
DisciplineGrades.ExamRate as "ExamRate",
DisciplineGrades.Exam2Rate as "Exam2Rate",
DisciplineGrades.Exam3Rate as "Exam3Rate",
DisciplineGrades.ExtraRate as "ExtraRate",
DisciplineGrades.Extra2Rate as "Extra2Rate",
DisciplineGrades.BonusRate as "BonusRate"
from (SELECT *
FROM view_final_report
WHERE view_final_report.SemesterYear = pyear
and view_final_report.SemesterNum = pnum
and view_final_report.SubjectExternalID = vSubjectId
and (view_final_report.semesterrate IS NOT NULL or
view_final_report.examrate IS NOT NULL or
view_final_report.exam2rate IS NOT NULL or
view_final_report.exam3rate IS NOT NULL or
view_final_report.extrarate IS NOT NULL or
view_final_report.extra2rate IS NOT null or
view_final_report.bonusrate IS NOT NULL)
UNION
SELECT *
FROM view_global_final_report
WHERE view_global_final_report.SemesterYear = pyear
and view_global_final_report.SemesterNum = pnum
and view_global_final_report.SubjectExternalID = vSubjectId
and (view_global_final_report.semesterrate IS NOT NULL or
view_global_final_report.examrate IS NOT NULL or
view_global_final_report.exam2rate IS NOT NULL or
view_global_final_report.exam3rate IS NOT NULL or
view_global_final_report.extrarate IS NOT NULL or
view_global_final_report.extra2rate IS NOT null or
view_global_final_report.bonusrate IS NOT NULL)
) as DisciplineGrades
join record_books on record_books.externalid = DisciplineGrades.recordbookexternalid
join students_groups on students_groups.recordbookid = record_books.id
where students_groups.semesterid = vSemesterId
and students_groups.groupid = pgroupid
and DisciplineGrades.PlanExternalID = vPlanExtID
and DisciplineGrades.ExamType = vExamType;
END
$function$;
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