Skip to content
Snippets Groups Projects
Commit 2d25a4de authored by RomanSteinberg's avatar RomanSteinberg
Browse files

FIX: exam form generation

parent 2a01caec
Branches
Tags
No related merge requests found
......@@ -214,13 +214,13 @@ class Controller_Handler_FileCreator extends Controller_Handler
$index = 1;
foreach($result as $studentInfo){
$this->addStudentToSheet($objPHPExcel, $studentInfo, $rowNumber, $index);
$this->addStudentToSheet($objPHPExcel, $studentInfo, $rowNumber, $index, $type);
$rowNumber++;
$index++;
}
}
protected function prepareSheetHeader(&$objPHPExcel, $examType, $data) {
protected function prepareSheetHeader(&$objPHPExcel, $disciplineType, $data) {
$sheet = $objPHPExcel->getActiveSheet();
$range = $objPHPExcel->getNamedRange("Discipline")->getRange();
......@@ -236,31 +236,43 @@ class Controller_Handler_FileCreator extends Controller_Handler
$range = $objPHPExcel->getNamedRange("Grade")->getRange();
$degree = $data['Degree'];
$gradeName = $data['GradeNum'];
$gradeNum = $data['GradeNum'];
$gradeName = $gradeNum;
if ($degree == 'master')
$gradeName = $gradeName."м";
$sheet->setCellValue($range, $gradeName);
$range = $objPHPExcel->getNamedRange("Semester")->getRange();
$sheet->setCellValue($range, $data['SemesterNum']);
$semester = $data['SemesterNum'] + ($gradeNum -1)*2;
$sheet->setCellValue($range, $semester);
$range = $objPHPExcel->getNamedRange("Year")->getRange();
$sheet->setCellValue($range, $data['Year']);
$range = $objPHPExcel->getNamedRange("CreationDate")->getRange();
$sheet->setCellValue($range, date("d.m.y"));
$sheet->setCellValue($range, date("dd.mm.yy"));
$range = $objPHPExcel->getNamedRange("Date")->getRange();
if ($examType == 'exam') {
$controlDate = '__________';
} else {
$controlDate = '30.12.2014';
if ($disciplineType == 'credit') {
$controlDate = "Дата зачета\n30.12.2014";
} elseif ($disciplineType == 'exam') {
$controlDate = "Дата экзамена\n__________";
}
$sheet->setCellValue("$range", "Дата зачета \n$controlDate");
$sheet->setCellValue("$range", $controlDate);
}
protected function addStudentToSheet(&$objPHPExcel, $data, $row, $index)
protected function addStudentToSheet($disciplineType, &$objPHPExcel, $data, $row, $index)
{
$sheet = $objPHPExcel->getActiveSheet();
$indPosition = 'A'; // Номер
$sheet = $objPHPExcel->getActiveSheet();
if ($disciplineType == 'credit') {
addStudentInfoForCreditToSheet($sheet, $data, $row, $index);
} elseif ($disciplineType == 'exam') {
addStudentInfoForExamToSheet($sheet, $data, $row, $index);
}
}
protected function addStudentInfoForCreditToSheet(&$sheet, $data, $row, $index)
{
$indPosition = 'A'; // Номер
$namePosition = 'B'; // ФИО
$totalRatePosition = 'G'; // Итоговый рейтинг
$semesterRatePosition = 'H'; // Сумма баллов
......@@ -299,7 +311,71 @@ class Controller_Handler_FileCreator extends Controller_Handler
->setCellValue($semesterRatePosition.$row, $rate)
->setCellValue($bonusRatePosition.$row, $bonus)
->setCellValue("J".$row, $tempStr);
}
protected function addStudentInfoForExamToSheet(&$sheet, $data, $row, $index)
{
$indPosition = 'A'; // Номер
$namePosition = 'B'; // ФИО
$totalRatePosition = 'G'; // Итоговый рейтинг
$semesterRatePosition = 'H'; // Сумма баллов
$bonusRatePosition = 'I'; // Бонусные баллы
$examRatePosition = 'J'; // Баллы за экзамен
$rateOfFivePosition = 'K'; // Оценка за экзамен по пятибальной системе
$sheet ->getStyle("A".$row.":S".$row)
->getBorders()->getAllBorders()
->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
$sheet ->getStyle("G".$row.":J".$row)
->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$sheet ->getStyle("K".$row.":L".$row)
->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$sheet ->getStyle("M".$row.":N".$row)
->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$sheet ->getStyle("O".$row.":U".$row)
->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
$sheet ->getStyle("R".$row.":R".$row)
->getAlignment()
->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_RIGHT);
$sheet->mergeCells("B".$row.":F".$row);
$lastName = $data['Last'];
$firstName = $data['First'];
$secondName = $data['Second'];
$rate = (int)$data['intermediate'];
$bonus = (int)$data['bonus'];
$examRate = 0; // TODO: get it from DB
$fullName = $lastName." ".$firstName." ".$secondName;
$totalRateValue = $rate + $examRate + $bonus;
if ($totalRateValue > 100)
$totalRateValue = 100;
$totalRate = '';
$rateOfFive = '';
if ($rate < 38) {
$totalRate = ' ';
$rateOfFive = 'не удовл';
} elseif (($rate >= 38) and ($examRate >= 22)) {
$totalRate = $totalRateValue;
$rateOfFive = 'удовл';
if (($totalRateValue >= 75) and ($totalRateValue < 85))
$rateOfFive = 'хор';
elseif ($totalRateValue >= 85)
$rateOfFive = 'отл';
}
$sheet ->setCellValue($indPosition.$row, $index)
->setCellValue($namePosition.$row, $fullName)
->setCellValue($totalRatePosition.$row, $totalRate)
->setCellValue($semesterRatePosition.$row, $rate)
->setCellValue($bonusRatePosition.$row, $bonus)
->setCellValue($examRatePosition.$row, $examRate)
->setCellValue($rateOfFivePosition.$row, $rateOfFive);
}
protected function getSheetName(&$disciplineInfo) {
......
No preview for this file type
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment