Skip to content
Snippets Groups Projects
Select Git revision
  • 2bb3e275faaed85e60a80a3c01467217b95d00c2
  • develop default
  • master
  • issue609_stub_nolink
  • hotfix/v2.9.3
  • issue608_journal_tristate
  • hotfix/v2.9.2
  • issue606_global_woes
  • issue299_add_subgroups
  • issue592_student_movement
  • issue606_globaldiscipline_bind
  • issue595_discipline_info
  • issue574_dash_norates
  • issue591_warn_global1c
  • issue593_1cexport_semester
  • issue327_admin_auth
  • issue590_issue_subject
  • issue589_tab_numbers
  • issue583_logaccount_formexport
  • issue584_block_formexport
  • issue527_exam_detached
  • v2.1.5
  • v2.0.3
  • v2.0.2
  • v2.0.1
  • v2.0.0
  • v1.1.2
  • v1.1.1
  • v1.1.0
  • v0.9.3
  • v0.9.1
  • v0.9.2
  • v1.03
  • v1.02
  • v1.01
  • v1.0
36 results

FinalReport.php

Blame
  • Forked from it-lab / grade
    Source project has a limited visibility.
    FinalReport.php 2.43 KiB
    <?php
    
    class Controller_Api_V0_FinalReport extends Controller_Handler_Api {
        public function action_get_index() {
    
            try {
                // Получаем год и номер семестра из query запроса
                $year = $this->request->query('year');
                $num = $this->request->query('num');
                $plan = $this->request->query('plan');
                $discipline = $this->request->query('discipline');
                $groupnum = $this->request->query('groupnum');
                $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)) {
                    $finalReport = Model_FinalReport::getBySemesterYearNumDiscipline($year, $num, $discipline);
                } elseif (!isset($discipline)) {
                    $finalReport = Model_FinalReport::getBySemesterYearNumPlan($year, $num, $plan);
                } else {
                    $finalReport = Model_FinalReport::getBySemesterYearNumDisciplineGroup($year, $num, $discipline, $groupnum, $gradenum, $faculty, $study_form);
                }
    
                $response = [];
                /** @var Model_FinalReportItem $row */
                foreach ($finalReport as $row) {
                    $response[$row->PlanExternalID][$row->SubjectExternalID]['type'] = $row->ExamType;
                    $response[$row->PlanExternalID][$row->SubjectExternalID]['students'][$row->RecordBookExternalID] = [
                        'semester'  => $row->SemesterRate,
                        'exam'      => [$row->ExamRate, $row->Exam2Rate, $row->Exam3Rate],
                        'extra'     => [$row->ExtraRate, $row->Extra2Rate],
                    ];
                }
    
                if (!isset($emulate) and isset($groupnum)) {
                    $groupID = Model_Group::find($gradenum, $groupnum, $study_form, $faculty);
                    Model_Logs::logFormExport($this->user->ID, $discipline, $groupID, $this->user["SemesterID"]);
                }
    
                // TODO: удалить лишние учебные планы от академиков правильным способом!
                array_splice($response, 1);
    
                return $response;
            } catch (Exception $e) {
                $this->badRequestError($e->getMessage());
            }
    
            return null;
        }
    }