Skip to content
Snippets Groups Projects
Subject.php 5.33 KiB
Newer Older
<?php defined('SYSPATH') or die('No direct script access.');

class Controller_Student_Subject extends Controller_UserEnvi {

    public function action_show()
    {
        $id = $this->request->param('id');
        $student = $this->UserInfo['StudentID'];
        $discipline = Model_Discipline::getMap($id, $student);
xamgore's avatar
xamgore committed
        $info = Model_Discipline::getInfo($id);
        $subject['Title'] = $info['SubjectName'];
        if($info['ExamType'] == 'exam')
        {
            $subject['Control'] = 'Экзамен';
        }
        elseif($info['ExamType'] == 'credit')
        {
            $subject['Control'] = 'Зачет';
        }
        $subject['ExamType'] = $info['ExamType'];
PavelBegunkov's avatar
PavelBegunkov committed
        $subject['LectureCount'] = $info['LectureCount'];
        $subject['PracticeCount'] = $info['PracticeCount'];
		$subject['LabCount'] = $info['LabCount'];
        $subject['DepName'] = $info['DepName'];
        $semester = Model_Semesters::getInfo($info['SemesterID']);
PavelBegunkov's avatar
PavelBegunkov committed
        $semester['Num'] = $semester['Num'] == 1 ? 'Осенний' : 'Весенний';
        $subject['Num'] = $semester['Num'];
        $subject['Year'] = $semester['Year'];
        $disciplineHandled = array();
        $sRate = 0; $sMaxRate = 0;
        $examRate = 0; $examMaxRate = 0;
        $i = 0; $id = 0;
RomanSteinberg's avatar
RomanSteinberg committed
		$disciplineHandled['Extra']['Rate'] = 0;
        foreach($discipline as $row)
        {
                $disciplineHandled['Exam']['Rate'] = (int) $row['Rate'];
                $disciplineHandled['Exam']['MaxRate'] = (int) $row['MaxRate'];
                $disciplineHandled['Exam']['Date'] = $row['Date'];
                $examRate += $row['Rate'];
                $examMaxRate += (int) $row['MaxRate'];
RomanSteinberg's avatar
RomanSteinberg committed
            else if($row['ModuleType'] == 'bonus')
                $disciplineHandled['Bonus']['Description'] = $row['Description'];
                $disciplineHandled['Bonus']['Rate'] = (int) $row['Rate'];
                $disciplineHandled['Bonus']['MaxRate'] = (int) $row['MaxRate'];
                $disciplineHandled['Bonus']['Date'] = $row['Date'];
                $bonusRate += $row['Rate'];
                $bonusMaxRate += (int) $row['MaxRate'];
RomanSteinberg's avatar
RomanSteinberg committed
			else if($row['ModuleType'] == 'extra') {
				$disciplineHandled['Extra']['Description'] = $row['Description'];
                $disciplineHandled['Extra']['Rate'] += (int) $row['Rate'];
                $extraRate += (int) $row['Rate'];
RomanSteinberg's avatar
RomanSteinberg committed
			}
			
                if($row['ModuleID'] != $id)
                {
                    $i++;
                    $id = $row['ModuleID'];
                }

                if(!isset($disciplineHandled['Modules'][$i]['SubmodulesCount']))
                {
                    $disciplineHandled['Modules'][$i]['SubmodulesCount'] = 0;
                    $disciplineHandled['Modules'][$i]['Rate'] = 0;
                    $disciplineHandled['Modules'][$i]['MaxRate'] = 0;
                }

                $j = $disciplineHandled['Modules'][$i]['SubmodulesCount'] += 1;
                $disciplineHandled['Modules'][$i]['Rate'] += (int) $row['Rate'];
                $disciplineHandled['Modules'][$i]['MaxRate'] += (int) $row['MaxRate'];
                $disciplineHandled['Modules'][$i]['Title'] = $row['ModuleName'];

PavelBegunkov's avatar
PavelBegunkov committed
                $disciplineHandled['Modules'][$i]['Submodules'][$j]['Title'] = $row['SubmoduleName'];
                $disciplineHandled['Modules'][$i]['Submodules'][$j]['Description'] = $row['SubmoduleDescription'];
                $disciplineHandled['Modules'][$i]['Submodules'][$j]['Rate'] = (int) $row['Rate'];
                $disciplineHandled['Modules'][$i]['Submodules'][$j]['Date'] = $row['Date'];
                $disciplineHandled['Modules'][$i]['Submodules'][$j]['MaxRate'] = (int) $row['MaxRate'];
                $sRate += (int) $row['Rate'];
                $sMaxRate += (int) $row['MaxRate'];
        }
        $disciplineHandled['ModulesCount'] = $i;

        $disciplineHandled['SemesterRate'] = (int) $sRate;
        $disciplineHandled['SemesterMaxRate'] = (int) $sMaxRate;
        $disciplineHandled['ExamRate'] = (int) $examRate;
        $disciplineHandled['ExamMaxRate'] = (int) $examMaxRate;
        $disciplineHandled['BonusRate'] = (int) $bonusRate;
        $disciplineHandled['BonusMaxRate'] = (int) $bonusMaxRate;
        $disciplineHandled['ExtraRate'] = (int) $extraRate;

        $twig->Discipline = $subject;
        $twig->DisciplineMap = $disciplineHandled;
        $this->response->body($twig);
    }
        $teachers = Model_Teachers::ofDiscipline($id);
PavelBegunkov's avatar
PavelBegunkov committed
            $teachersHandled[$i] = $teacher['LastName'].' '.$teacher['FirstName'].' ';
            if(!empty($teacher['SecondName']))
PavelBegunkov's avatar
PavelBegunkov committed
                $teachersHandled[$i] .= $teacher['SecondName'];