From 05ea37aaa9382b1e2f168301c5af538ef036556a Mon Sep 17 00:00:00 2001 From: PavelBegunkov <asml.Silence@gmail.com> Date: Wed, 13 May 2015 11:19:37 +0300 Subject: [PATCH] report printer fix. 1) Incorrect students list 2) problems with output file. --- db/StoredProcedures.sql | 86 ++++++++++++------- .../Controller/Handler/FileCreator.php | 4 +- 2 files changed, 58 insertions(+), 32 deletions(-) diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql index f4ddcea60..319f87d9e 100644 --- a/db/StoredProcedures.sql +++ b/db/StoredProcedures.sql @@ -706,7 +706,23 @@ BEGIN LIMIT 1; IF !vChecker THEN - SELECT students.ID FROM `students` WHERE 0 = 1; + SELECT students.ID, + students.LastName, + students.FirstName, + students.SecondName, + view_rating_result.RateRegular AS 'intermediate', + view_rating_result.RateBonus AS 'bonus', + view_rating_result.RateExam AS 'exam' + FROM `students` + LEFT JOIN `view_rating_result` ON view_rating_result.DisciplineID = pDisciplineID AND + view_rating_result.StudentID = students.ID + INNER JOIN `students_groups` ON students_groups.StudentID = students.ID AND + students_groups.SemesterID = @CurrentSemesterID + WHERE students_groups.GroupID = pGroupID AND + EXISTS(SELECT * FROM `disciplines_students` + WHERE disciplines_students.DisciplineID = pDisciplineID AND + disciplines_students.StudentID = students.ID) + ORDER BY students.LastName ASC; ELSE SELECT students.ID, students.LastName, @@ -798,20 +814,30 @@ BEGIN rating_table.Date As 'Date', submodules.OrderNum As 'OrderNum', modules.Type As 'Type' - FROM `students` - INNER JOIN `students_groups` ON students_groups.StudentID = students.ID AND - students_groups.SemesterID = @CurrentSemesterID - LEFT JOIN `modules` ON modules.DisciplineID = pDisciplineID AND - (modules.Type = 'exam' OR modules.Type = 'extra') - LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID - LEFT JOIN `rating_table` ON rating_table.SubmoduleID = submodules.ID AND - rating_table.StudentID = students.ID - WHERE students_groups.GroupID = pGroupID AND - InternalIsStudentAttached(students.ID, DisciplineID) - ORDER BY CONCAT(students.LastName, ' ', students.FirstName, ' ', students.SecondName) ASC, - students.ID ASC, - modules.Type = 'exam' ASC, - submodules.OrderNum ASC; + FROM `students` + INNER JOIN `students_groups` ON students_groups.StudentID = students.ID AND + students_groups.SemesterID = @CurrentSemesterID + + + LEFT JOIN `disciplines_groups` ON disciplines_groups.DisciplineID = pDisciplineID AND + disciplines_groups.GroupID = students_groups.ID + LEFT JOIN `disciplines_students` ON disciplines_students.DisciplineID = pDisciplineID AND + disciplines_students.StudentID = students.ID + + + LEFT JOIN `modules` ON modules.DisciplineID = pDisciplineID AND + (modules.Type = 'exam' OR modules.Type = 'extra') + LEFT JOIN `submodules` ON submodules.ModuleID = modules.ID + LEFT JOIN `rating_table` ON rating_table.SubmoduleID = submodules.ID AND + rating_table.StudentID = students.ID + WHERE students_groups.GroupID = pGroupID AND + ((disciplines_students.StudentID IS NOT NULL AND disciplines_students.Type = 'attach') + OR (disciplines_groups.DisciplineID IS NOT NULL AND disciplines_students.Type IS NULL) + ) + ORDER BY CONCAT(students.LastName, ' ', students.FirstName, ' ', students.SecondName) ASC, + students.ID ASC, + modules.Type = 'exam' ASC, + submodules.OrderNum ASC; END // @@ -836,14 +862,14 @@ BEGIN view_roadmap.SubmoduleName, view_roadmap.SubmoduleRate AS 'MaxRate', view_roadmap.SubmoduleType - FROM `view_roadmap` - INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = pDisciplineID - WHERE view_roadmap.DisciplineID = pDisciplineID AND - (view_roadmap.ModuleType != 'exam' OR view_roadmap.SubmoduleOrderNum = 1) - ORDER BY view_roadmap.ModuleType ^ 1 ASC, - # 1, 3, 2, 4 ASC - view_roadmap.ModuleOrderNum ASC, - view_roadmap.SubmoduleOrderNum ASC; + FROM `view_roadmap` + INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = pDisciplineID + WHERE view_roadmap.DisciplineID = pDisciplineID AND + (view_roadmap.ModuleType != 'exam' OR view_roadmap.SubmoduleOrderNum = 1) + ORDER BY view_roadmap.ModuleType ^ 1 ASC, + # 1, 3, 2, 4 ASC + view_roadmap.ModuleOrderNum ASC, + view_roadmap.SubmoduleOrderNum ASC; END // @@ -862,13 +888,13 @@ BEGIN view_roadmap.SubmoduleName, view_roadmap.SubmoduleRate AS 'MaxRate', view_roadmap.SubmoduleType - FROM `view_roadmap` - INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = pDisciplineID - WHERE view_roadmap.DisciplineID = pDisciplineID AND - (view_roadmap.ModuleType = 'exam' OR view_roadmap.ModuleType = 'extra') - ORDER BY InternalOrderModuleTypesForSession(view_roadmap.ModuleType) ASC, - view_roadmap.ModuleOrderNum ASC, - view_roadmap.SubmoduleOrderNum ASC; + FROM `view_roadmap` + INNER JOIN `view_disciplines` ON view_disciplines.DisciplineID = pDisciplineID + WHERE view_roadmap.DisciplineID = pDisciplineID AND + (view_roadmap.ModuleType = 'exam' OR view_roadmap.ModuleType = 'extra') + ORDER BY InternalOrderModuleTypesForSession(view_roadmap.ModuleType) ASC, + view_roadmap.ModuleOrderNum ASC, + view_roadmap.SubmoduleOrderNum ASC; END // diff --git a/~dev_rating/application/classes/Controller/Handler/FileCreator.php b/~dev_rating/application/classes/Controller/Handler/FileCreator.php index d0a06e5e0..8984cd797 100644 --- a/~dev_rating/application/classes/Controller/Handler/FileCreator.php +++ b/~dev_rating/application/classes/Controller/Handler/FileCreator.php @@ -141,8 +141,8 @@ class Controller_Handler_FileCreator extends Controller_Handler $this->printDisciplineToExcelFile($objPHPExcel, $disciplineID, $groupID, $info[0]); $grade = $info[0]["GradeNum"]; $group = $info[0]["GroupNum"]; - //$this->GetHeaders("FinalForm".$disciplineID."_".$groupID); - //$this->GetHeaders("FinalForm_".$grade."_".$group); + $this->GetHeaders("FinalForm".$disciplineID."_".$groupID); + $this->GetHeaders("FinalForm_".$grade."_".$group); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); } -- GitLab