Skip to content
Snippets Groups Projects
Subjects.php 1.18 KiB
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;
    }