From dfb41b3499a40eccf39ec451ee8ce679bfa983fb Mon Sep 17 00:00:00 2001
From: Anton Bagliy <taccessviolation@gmail.com>
Date: Thu, 17 Jan 2019 00:20:40 +0300
Subject: [PATCH] ADD: logging final form export #284

---
 db/postgresql/add_rate_sync_logs_15_01_18.sql         |  3 +--
 .../classes/Controller/Api/V0/FinalReport.php         |  6 ++++++
 ~dev_rating/application/classes/Model/Logs.php        | 11 +++++++++++
 3 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/db/postgresql/add_rate_sync_logs_15_01_18.sql b/db/postgresql/add_rate_sync_logs_15_01_18.sql
index d5587acae..364eccad4 100644
--- a/db/postgresql/add_rate_sync_logs_15_01_18.sql
+++ b/db/postgresql/add_rate_sync_logs_15_01_18.sql
@@ -1,4 +1,3 @@
-
 CREATE SEQUENCE seq_logs_form_export
   START WITH 1
   INCREMENT BY 1
@@ -6,7 +5,7 @@ CREATE SEQUENCE seq_logs_form_export
   NO MAXVALUE
   CACHE 1;
 
-
+DROP TABLE IF EXISTS logs_form_export;
 CREATE TABLE logs_form_export (
   id integer DEFAULT nextval('seq_logs_form_export'::regclass) NOT NULL,
   discipline_id integer NOT NULL,
diff --git a/~dev_rating/application/classes/Controller/Api/V0/FinalReport.php b/~dev_rating/application/classes/Controller/Api/V0/FinalReport.php
index 1766244dd..89b68d7f8 100644
--- a/~dev_rating/application/classes/Controller/Api/V0/FinalReport.php
+++ b/~dev_rating/application/classes/Controller/Api/V0/FinalReport.php
@@ -13,6 +13,7 @@ class Controller_Api_V0_FinalReport extends Controller_Handler_Api {
             $gradenum = $this->request->query('gradenum');
             $faculty = $this->request->query('faculty');
             $study_form = $this->request->query('study_form');
+            $emulate = $this->request->query('emulate');
 
 			// Получаем ведомость из БД
             if (isset($discipline) and !isset($groupnum)) {
@@ -34,6 +35,11 @@ class Controller_Api_V0_FinalReport extends Controller_Handler_Api {
                 ];
             }
 
+            if (!isset($emulate) and isset($groupnum)) {
+                $groupID = Model_Group::find($gradenum, $groupnum, $study_form, $faculty);
+                Model_Logs::logFormExport($this->user->ID, $discipline, $groupID);
+            }
+
             return $response;
         } catch (Exception $e) {
             $this->badRequestError($e->getMessage());
diff --git a/~dev_rating/application/classes/Model/Logs.php b/~dev_rating/application/classes/Model/Logs.php
index f1a0c82ab..9c25a160b 100644
--- a/~dev_rating/application/classes/Model/Logs.php
+++ b/~dev_rating/application/classes/Model/Logs.php
@@ -41,4 +41,15 @@ class Model_Logs extends Model
         return $result;
     }
 
+    public static function logFormExport($accountID, $disciplineID, $groupID) {
+        $query = 'SELECT * FROM log_form_export(:account, :discipline, :group)';
+
+        $result = DB::query(Database::UPDATE, $query)
+            ->param(':account', $accountID)
+            ->param(':discipline', $disciplineID)
+            ->param(':group', $groupID)
+            ->execute();
+        return $result;
+    }
+
 }
-- 
GitLab