diff --git a/~dev_rating/application/classes/Controller/Teacher/GenExamForm.php b/~dev_rating/application/classes/Controller/Teacher/GenExamForm.php deleted file mode 100644 index 77131e0acd7c9b103dc62768867d4e1052e1d948..0000000000000000000000000000000000000000 --- a/~dev_rating/application/classes/Controller/Teacher/GenExamForm.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php defined('SYSPATH') or die('No direct script access.'); - -class Controller_Teacher_GenExamForm extends Controller_UserEnvi { - - public function action_do() - { - - $db = new Model_Teacher_GenExamForm; - - // Нужно изменить getStudentsForDiscipline!!!! - $result = $db->getStudentsForDiscipline(1,1); // TODO: fix - $rowsCount = count($result); // Получаем количество записей - $templateFile = "./docs/template credit.xls"; // TODO: choose exam or credit - if (!file_exists($templateFile)) { - exit("template wasn't found" . PHP_EOL); - } - - $objPHPExcel = PHPExcel_IOFactory::load($templateFile); - $objPHPExcel->setActiveSheetIndex(0); - - // fill header - $range = $objPHPExcel->getNamedRange("Discipline")->getRange(); - $objPHPExcel->getActiveSheet()->setCellValue("$range", ""); - $range = $objPHPExcel->getNamedRange("Subdivision")->getRange(); - $range = $objPHPExcel->getNamedRange("Major")->getRange(); - $range = $objPHPExcel->getNamedRange("Teacher")->getRange(); - $range = $objPHPExcel->getNamedRange("Course")->getRange(); - $range = $objPHPExcel->getNamedRange("Semester")->getRange(); - $range = $objPHPExcel->getNamedRange("Year")->getRange(); - $range = $objPHPExcel->getNamedRange("CreationDate")->getRange(); - $objPHPExcel->getActiveSheet()->setCellValue("$range", date("m.d.y")); - $range = $objPHPExcel->getNamedRange("Date")->getRange(); - $objPHPExcel->getActiveSheet()->setCellValue("$range", "Дата зачета \n30.12.2014"); - - // fill students rows - $startRow = 12; - $finalRow = 52; - $indPosition = 'A'; // Номер - $namePosition = 'B'; // Р¤РРћ - $totalRatePosition = 'C'; // Ртоговый рейтинг - $semesterRatePosition = 'G'; // РЎСѓРјРјР° баллов - $bonusRatePosition = 'H'; // Бонусные баллы - $rowNumber = $startRow; - $index = 1; - for($i = 1; $i <= $rowsCount; ++$i){ - - $lastName = $result[$i]['Last']; - $firstName = $result[$i]['First']; - $secondName = $result[$i]['Second']; - $rate = $result[$i]['intermediate']; - $bonus = $result[$i]['bonus']; - $fullName = "$lastName $firstName $secondName"; - $totalRate = $rate + $bonus; - - $objPHPExcel->getActiveSheet()->setCellValue("$indPosition$rowNumber", "$i") - ->setCellValue("$namePosition$rowNumber", "$fullName") - ->setCellValue("$totalRatePosition$rowNumber", "$totalRate") - ->setCellValue("$semesterRatePosition$rowNumber","$rate") - ->setCellValue("$bonusRatePosition$rowNumber","$bonus"); - $rowNumber++; - } - - // delete rest rows - $objPHPExcel->getActiveSheet()->removeRow($rowNumber+1, $finalRow); - - $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); - $objWriter->save(str_replace('.php', '.xls', __FILE__)); // TODO: change path - } -} -?> \ No newline at end of file diff --git a/~dev_rating/application/classes/Controller/Teacher/GenFinalForm.php b/~dev_rating/application/classes/Controller/Teacher/GenFinalForm.php new file mode 100644 index 0000000000000000000000000000000000000000..f5f70df25028908c07172067d704102dfe4f17cf --- /dev/null +++ b/~dev_rating/application/classes/Controller/Teacher/GenFinalForm.php @@ -0,0 +1,92 @@ +<?php defined('SYSPATH') or die('No direct script access.'); + +class Controller_Teacher_GenFinalForm extends Controller_UserEnvi { + + public function action_do() + { + // parameters + //$disciplineID = $this->request->param('disciplineID'); + //$groupID = $this->request->param('groupID'); + $disciplineID = 266; + $groupID = 11; + + // preparation + $db = new Model_Teacher_Rating; + $info = $db->getFinalFormInfo($disciplineID, $groupID); + $type = $info[0]['ExamType']; + $specName = + + $templateFile = "./docs/template $type.xls"; + if (!file_exists($templateFile)) { + exit("template wasn't found" . PHP_EOL); + } + + $result = $db->getRatesForStudentsGroup($this->UserInfo['TeacherID'], $disciplineID, $groupID); + $rowsCount = count($result); // Получаем количество записей + + $objPHPExcel = PHPExcel_IOFactory::load($templateFile); + $objPHPExcel->setActiveSheetIndex(0); + + + // fill header + $range = $objPHPExcel->getNamedRange("Discipline")->getRange(); + $objPHPExcel->getActiveSheet()->setCellValue("$range", $info[0]['SubjectName']); + $range = $objPHPExcel->getNamedRange("Subdivision")->getRange(); + $objPHPExcel->getActiveSheet()->setCellValue("$range", $info[0]['FacultyName']); + $range = $objPHPExcel->getNamedRange("Major")->getRange(); + $objPHPExcel->getActiveSheet()->setCellValue("$range", "Специальность: ".$info[0]['SpecName']." ".$info[0]['SpecCode']); + $range = $objPHPExcel->getNamedRange("Teacher")->getRange(); + $objPHPExcel->getActiveSheet()->setCellValue("$range", $info[0]['LastName']." ".$info[0]['FirstName']." ".$info[0]['SecondName']); + $range = $objPHPExcel->getNamedRange("Grade")->getRange(); + $objPHPExcel->getActiveSheet()->setCellValue("$range", $info[0]['GradeNum']); + $range = $objPHPExcel->getNamedRange("Semester")->getRange(); + $objPHPExcel->getActiveSheet()->setCellValue("$range", $info[0]['SemesterNum']); + $range = $objPHPExcel->getNamedRange("Year")->getRange(); + $objPHPExcel->getActiveSheet()->setCellValue("$range", $info[0]['Year']); + $range = $objPHPExcel->getNamedRange("CreationDate")->getRange(); + $objPHPExcel->getActiveSheet()->setCellValue("$range", date("m.d.y")); + $range = $objPHPExcel->getNamedRange("Date")->getRange(); + if ($type == 'exam') + $controlDate = '__________'; + else + $controlDate = '30.12.2014'; + $objPHPExcel->getActiveSheet()->setCellValue("$range", "Дата зачета \n$controlDate"); + + // fill students rows + $startRow = 12; + $finalRow = 52; + $indPosition = 'A'; // Номер + $namePosition = 'B'; // Р¤РРћ + $totalRatePosition = 'G'; // Ртоговый рейтинг + $semesterRatePosition = 'H'; // РЎСѓРјРјР° баллов + $bonusRatePosition = 'I'; // Бонусные баллы + $rowNumber = $startRow; + $index = 1; + foreach($result as $studentInfo){ + + $lastName = $studentInfo['Last']; + $firstName = $studentInfo['First']; + $secondName = $studentInfo['Second']; + $rate = (int)$studentInfo['intermediate']; + $bonus = (int)$studentInfo['bonus']; + $fullName = "$lastName $firstName $secondName"; + $totalRate = $rate + $bonus; + + $objPHPExcel->getActiveSheet()->setCellValue("$indPosition$rowNumber", "$index") + ->setCellValue("$namePosition$rowNumber", "$fullName") + ->setCellValue("$totalRatePosition$rowNumber", "$totalRate") + ->setCellValue("$semesterRatePosition$rowNumber","$rate") + ->setCellValue("$bonusRatePosition$rowNumber","$bonus"); + $rowNumber++; + $index++; + } + + // delete rest rows + $objPHPExcel->getActiveSheet()->removeRow($rowNumber+1, $finalRow); + + $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); + $objWriter->save('./FinalForm.xls'); + // TODO: send to user + } +} +?> \ No newline at end of file diff --git a/~dev_rating/application/classes/Model/Teacher/Rating.php b/~dev_rating/application/classes/Model/Teacher/Rating.php index 75a39fcbccdb4d89f32a48038b5928bbef75dc17..a57687d68f1e2239e9def1887eca760a2ece377e 100644 --- a/~dev_rating/application/classes/Model/Teacher/Rating.php +++ b/~dev_rating/application/classes/Model/Teacher/Rating.php @@ -49,5 +49,16 @@ class Model_Teacher_Rating extends Model $sql = "SELECT `GetRateForDisc`('$studentID', '$disciplineID') AS `Num`;"; return DB::query(Database::SELECT, $sql)->execute(); } + + public function getRatesForStudentsGroup($teacherID, $disciplineID, $groupID) + { + $sql = "CALL `getRatesForStudentsGroup`($teacherID, $disciplineID, $groupID)"; + return DB::query(Database::SELECT, $sql)->execute(); + } + public function getFinalFormInfo($disciplineID, $groupID) + { + $sql = "CALL `getFinalFormInfo`($disciplineID, $groupID)"; + return DB::query(Database::SELECT, $sql)->execute(); + } } diff --git a/~dev_rating/docs/template credit.xls b/~dev_rating/docs/template credit.xls index c6b984c2be6337e971f52db5b7efc0f49e24bdb6..da8a284b60ca7651076604854a04875df7488f74 100644 Binary files a/~dev_rating/docs/template credit.xls and b/~dev_rating/docs/template credit.xls differ diff --git a/~dev_rating/docs/template exam.xls b/~dev_rating/docs/template exam.xls index 60ba31ce35f95af6d4087b0d694d292b7669f947..f0555930443b4a89ecd57bff78ecae6a2c92691d 100644 Binary files a/~dev_rating/docs/template exam.xls and b/~dev_rating/docs/template exam.xls differ