Newer
Older
<?php defined('SYSPATH') or die('No direct script access.');
class Model_Subjects
{
const MARK_UNDEFINED = 'Undefined';
const MARK_F = 'ECTS-F';
const MARK_FX = 'ECTS-FX';
const MARK_E = 'ECTS-E';
const MARK_D = 'ECTS-D';
const MARK_C = 'ECTS-C';
const MARK_B = 'ECTS-B';
const MARK_A = 'ECTS-A';
/**
* @param $rate int rate of student
* @param $current int current max rate of discipline
* @param $examRate int exam rate of student
* @return string mark name
*/
public static function getECTSMark($rate, $current, $examRate) {
if ($current <= 0)
return self::MARK_UNDEFINED;
if ($examRate !== NULL AND $examRate < 22)
return self::MARK_FX;
return self::compute_mark($rate / $current);
}
private static function compute_mark($percent) {
if ($percent < 0.31) return self::MARK_F;
if ($percent < 0.60) return self::MARK_FX;
if ($percent < 0.65) return self::MARK_E;
if ($percent < 0.71) return self::MARK_D;
if ($percent < 0.85) return self::MARK_C;
if ($percent < 0.95) return self::MARK_B;
return self::MARK_A;
}