From d1a85f8e4ac3abc49ff46877d6c30bbee72ddc1d Mon Sep 17 00:00:00 2001
From: RomanSteinberg <romanofficial@yandex.com>
Date: Mon, 14 Sep 2015 17:41:30 +0300
Subject: [PATCH] FIX: final form data visualisation

---
 db/stored/procedures.sql                      |  2 +-
 media/js/discipline/rating/exam.js            |  3 ++-
 media/js/discipline/rating/rate.js            |  2 +-
 .../Controller/Handler/FileCreator.php        | 22 +++++++++++++------
 4 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/db/stored/procedures.sql b/db/stored/procedures.sql
index bb069b287..449530ec0 100644
--- a/db/stored/procedures.sql
+++ b/db/stored/procedures.sql
@@ -1520,7 +1520,7 @@ BEGIN
         INNER JOIN `teachers` ON teachers.ID = disciplines.AuthorID
         INNER JOIN `departments` ON departments.ID = teachers.DepartmentID
         INNER JOIN `job_positions` ON job_positions.ID = teachers.JobPositionID
-        INNER JOIN `semesters` ON disciplines.SemesterID
+        INNER JOIN `semesters` ON disciplines.SemesterID = semesters.ID
         WHERE study_groups.ID = pGroupID
         LIMIT 1;
 END //
diff --git a/media/js/discipline/rating/exam.js b/media/js/discipline/rating/exam.js
index f224c5438..0161bc633 100644
--- a/media/js/discipline/rating/exam.js
+++ b/media/js/discipline/rating/exam.js
@@ -42,6 +42,7 @@ $(function () {
     var jTdInfo = jTdInfo_wrap.children('#tdInfo');
     var g_URL = (window.location.href).split("/");
     var g_disciplineID = $('#disciplineID').val();
+    console.log(g_disciplineID );
 
     // on page loaded
     // Настройки дисциплины:
@@ -604,7 +605,7 @@ $(function () {
 
         var groupID = parseInt($(this).attr("id").substr(6))
         var jStageSelector = $("#stageSelector_" + groupID);
-
+        console.log(g_disciplineID );
         $.fileDownload(URLdir + 'handler/FileCreator/GenerateFinalForm', {
             httpMethod: "POST",
             data: {
diff --git a/media/js/discipline/rating/rate.js b/media/js/discipline/rating/rate.js
index 589abcd3e..fe9da4902 100644
--- a/media/js/discipline/rating/rate.js
+++ b/media/js/discipline/rating/rate.js
@@ -43,7 +43,7 @@ $(function () {
     var g_disciplineID = $('#disciplineID').val();
 
     var onCursorChange = function (cursor) {
-        console.log('(' + cursor.row + ', ' + cursor.col + ')\n');
+        // console.log('(' + cursor.row + ', ' + cursor.col + ')\n'); // FIXME
     };
 
     var cursor = (function (onChange) {
diff --git a/~dev_rating/application/classes/Controller/Handler/FileCreator.php b/~dev_rating/application/classes/Controller/Handler/FileCreator.php
index e92b7dd18..57972914b 100644
--- a/~dev_rating/application/classes/Controller/Handler/FileCreator.php
+++ b/~dev_rating/application/classes/Controller/Handler/FileCreator.php
@@ -182,7 +182,7 @@ class Controller_Handler_FileCreator extends Controller_Handler
 
     // Ведомость
     public function action_GenerateFinalForm() {
-        $this->user->checkAccess(User::RIGHTS_DEAN);
+        $this->user->checkAccess(User::RIGHTS_TEACHER | User::RIGHTS_DEAN);
 
         $this->post
             ->rule('disciplineID', 'not_empty')
@@ -260,10 +260,16 @@ class Controller_Handler_FileCreator extends Controller_Handler
 
         foreach ($rates as $studentRates) {
             // проверяем дошел ли студент до этапа $stage или уже сдал
-            if (($stage >= 2) &&
-                (((int) $studentRates['PreviousExam'] >= 22) || ((int) $studentRates['AutoPassed'] == 1))
-            )
-                continue; // не пересдавал
+            if ($type == 'exam') {
+                if (($stage >= 2) &&
+                    (((int)$studentRates['PreviousExam'] >= 22) || ((int)$studentRates['AutoPassed'] == 1))
+                )
+                    continue; // на предыдущем этапе уже сдал
+            } else {
+                $prevStageAttempt = (int)$studentRates['PreviousExtra'] + (int)$studentRates['Semester'];
+                if (($stage >= 2) && ($prevStageAttempt >= 60))
+                    continue; // на предыдущем этапе уже сдал
+            }
             $this->addStudentToSheetNew($sheet, $type, $studentRates, $rowNumber++, $index++, $stage);
         }
     }
@@ -372,13 +378,14 @@ class Controller_Handler_FileCreator extends Controller_Handler
         $teachers = Model_Discipline::load($data['DisciplineID'])->getTeachers()->as_array();
         $teachersStr = '';
         if (count($teachers) > 1) {
-            for ($i = 0; $i < count($teachers) - 1; ++$i) {
+            $i = 0;
+            for (; $i < count($teachers) - 1; ++$i) {
                 $teachersStr .= Text::abbreviateName($teachers[$i]) . ', ';
                 if ($numOfTeachersInRow * ceil(($i + 1) / $numOfTeachersInRow) == $i + 1) {
                     $teachersStr .= "\r\n";
                 }
             }
-            $teachersStr .= $teachers[$i];
+            $teachersStr .= Text::abbreviateName($teachers[$i]);
         } else
             $teachersStr = $data['LastName'] . " " . $data['FirstName'] . " " . $data['SecondName'];
 
@@ -401,6 +408,7 @@ class Controller_Handler_FileCreator extends Controller_Handler
         $semester = $data['SemesterNum'] % 2 ? "Осенний" : "Весенний";
         $sheet->setCellValue($range, $semester);
 
+
         $range = $objPHPExcel->getNamedRange("Year")->getRange();
         $startYear = $data['Year'];
         $sheet->setCellValue($range, $startYear . "/" . ($startYear + 1));
-- 
GitLab