diff --git a/db/postgresql/add_export_bonus_04_02_19.sql b/db/postgresql/add_export_bonus_04_02_19.sql
new file mode 100644
index 0000000000000000000000000000000000000000..3ff48b0489004e8b2889d6cba341b31b782e1f36
--- /dev/null
+++ b/db/postgresql/add_export_bonus_04_02_19.sql
@@ -0,0 +1,106 @@
+DROP FUNCTION IF EXISTS public.finalreport_getbysemesteryeardisciplinegroup(pyear integer, pnum integer, pdisciplineexternalid character varying, pgroupid integer);
+CREATE OR REPLACE FUNCTION public.finalreport_getbysemesteryeardisciplinegroup(pyear integer, pnum integer, pdisciplineexternalid character varying, 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 vSemesterId integer default -1;
+BEGIN
+
+  select semesters.id into vSemesterId
+  from semesters
+  where semesters.year = pyear and semesters.num = pnum;
+
+  return query
+  select DisciplineGrades.SemesterYear as "SemesterYear",
+         DisciplineGrades.SemesterNum as "SemesterNum",
+         DisciplineGrades.PlanExternalID as "PlanExternalDI",
+         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 = pdisciplineexternalid) 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;
+END
+$function$;
+
+CREATE OR REPLACE VIEW public.view_final_report
+  AS SELECT DISTINCT semesters.year AS semesteryear,
+                     semesters.num AS semesternum,
+                     study_plans.externalid AS planexternalid,
+                     subjects.externalid AS subjectexternalid,
+                     record_books.externalid AS recordbookexternalid,
+       disciplines.examtype,
+                     ( SELECT sum(rating_table.rate) AS sum
+                       FROM rating_table
+                         JOIN submodules ON rating_table.submoduleid = submodules.id
+                         JOIN modules ON submodules.moduleid = modules.id
+                       WHERE modules.disciplineid = disciplines.id AND modules.type = 'regular'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
+                       GROUP BY modules.disciplineid, rating_table.recordbookid) AS semesterrate,
+                     ( SELECT rating_table.rate
+                       FROM rating_table
+                         JOIN submodules ON rating_table.submoduleid = submodules.id
+                         JOIN modules ON submodules.moduleid = modules.id
+                       WHERE modules.disciplineid = disciplines.id AND modules.type = 'exam'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
+                       ORDER BY submodules.ordernum
+                       LIMIT 1) AS examrate,
+                     ( SELECT rating_table.rate
+                       FROM rating_table
+                         JOIN submodules ON rating_table.submoduleid = submodules.id
+                         JOIN modules ON submodules.moduleid = modules.id
+                       WHERE modules.disciplineid = disciplines.id AND modules.type = 'exam'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
+                       ORDER BY submodules.ordernum
+                       OFFSET 1
+                       LIMIT 1) AS exam2rate,
+                     ( SELECT rating_table.rate
+                       FROM rating_table
+                         JOIN submodules ON rating_table.submoduleid = submodules.id
+                         JOIN modules ON submodules.moduleid = modules.id
+                       WHERE modules.disciplineid = disciplines.id AND modules.type = 'exam'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
+                       ORDER BY submodules.ordernum
+                       OFFSET 2
+                       LIMIT 1) AS exam3rate,
+                     ( SELECT rating_table.rate
+                       FROM rating_table
+                         JOIN submodules ON rating_table.submoduleid = submodules.id
+                         JOIN modules ON submodules.moduleid = modules.id
+                       WHERE modules.disciplineid = disciplines.id AND modules.type = 'extra'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
+                       ORDER BY submodules.ordernum
+                       LIMIT 1) AS extrarate,
+                     ( SELECT rating_table.rate
+                       FROM rating_table
+                         JOIN submodules ON rating_table.submoduleid = submodules.id
+                         JOIN modules ON submodules.moduleid = modules.id
+                       WHERE modules.disciplineid = disciplines.id AND modules.type = 'extra'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
+                       ORDER BY submodules.ordernum
+                       OFFSET 1
+                       LIMIT 1) AS extra2rate,
+                     ( SELECT rating_table.rate
+                       FROM rating_table
+                         JOIN submodules ON rating_table.submoduleid = submodules.id
+                         JOIN modules ON submodules.moduleid = modules.id
+                       WHERE modules.disciplineid = disciplines.id AND modules.type = 'bonus'::regular_exam_bonus_extra AND rating_table.recordbookid = record_books.id
+                       LIMIT 1) AS bonusrate
+     FROM semesters
+       JOIN disciplines ON disciplines.semesterid = semesters.id
+       JOIN disciplines_study_plans ON disciplines_study_plans.disciplineid = disciplines.id
+       JOIN study_plans ON study_plans.id = disciplines_study_plans.studyplanid
+       JOIN subjects ON subjects.id = disciplines.subjectid
+       JOIN view_disciplines_recordbooks ON view_disciplines_recordbooks.disciplineid = disciplines.id AND 'attach'::attach_detach = COALESCE(view_disciplines_recordbooks.type, 'attach'::attach_detach)
+       JOIN record_books ON record_books.id = view_disciplines_recordbooks.recordbookid
+       JOIN record_books_plans ON record_books.id = record_books_plans.recordbookid AND record_books_plans.studyplanid = study_plans.id;
\ No newline at end of file
diff --git a/~dev_rating/application/classes/Controller/Api/V0/FinalReport.php b/~dev_rating/application/classes/Controller/Api/V0/FinalReport.php
index 8f22c9e30c25bbc7afd310e6692dc0c847bcc48e..c602b7b169480d83971f3a042a60ea8e463df83e 100644
--- a/~dev_rating/application/classes/Controller/Api/V0/FinalReport.php
+++ b/~dev_rating/application/classes/Controller/Api/V0/FinalReport.php
@@ -51,7 +51,8 @@ class Controller_Api_V0_FinalReport extends Controller_Handler_Api
      *                                  "extra": [
      *                                     null,
      *                                     null
-     *                                   ]
+     *                                   ],
+     *                                   "bonus": [null]
      *                            }
      *                       }
      *                  }
@@ -92,6 +93,7 @@ class Controller_Api_V0_FinalReport extends Controller_Handler_Api
                     'semester' => $row->SemesterRate,
                     'exam' => [$row->ExamRate, $row->Exam2Rate, $row->Exam3Rate],
                     'extra' => [$row->ExtraRate, $row->Extra2Rate],
+                    'bonus' => [$row->BonusRate]
                 ];
             }
 
diff --git a/~dev_rating/application/classes/Model/FinalReportItem.php b/~dev_rating/application/classes/Model/FinalReportItem.php
index 39be1c5625dd14132b1bcae8d3837d184a895f78..e3cadf0d4cd5110e89fe4426fa595b52067061a9 100644
--- a/~dev_rating/application/classes/Model/FinalReportItem.php
+++ b/~dev_rating/application/classes/Model/FinalReportItem.php
@@ -14,6 +14,7 @@
  * @property int Exam3Rate
  * @property int ExtraRate
  * @property int Extra2Rate
+ * @property int BonusRate
  */
 class Model_FinalReportItem extends Model
 {
@@ -30,5 +31,6 @@ class Model_FinalReportItem extends Model
         $this->Exam3Rate = isset($row['Exam3Rate']) ? (int)$row['Exam3Rate'] : null;
         $this->ExtraRate = isset($row['ExtraRate']) ? (int)$row['ExtraRate'] : null;
         $this->Extra2Rate = isset($row['Extra2Rate']) ? (int)$row['Extra2Rate'] : null;
+        $this->BonusRate = isset($row['BonusRate']) ? (int)$row['BonusRate'] : null;
     }
 }