*/ require_once(dirname(__FILE__).'/basis_db.class.php'); class notenschluessel extends basis_db { public $new; // boolean public $result=array(); /** * Konstruktor */ public function __construct() { parent::__construct(); } /** * Liefert die Note zu Punkten einer Lehrveranstaltung * @param $punkte * @param $lehrveranstaltung_id * @param $studiensemester_kurzbz * @return Note */ public function getNote($punkte, $lehrveranstaltung_id, $studiensemester_kurzbz) { $notenschluessel_kurzbz = $this->getNotenschluessel($lehrveranstaltung_id, $studiensemester_kurzbz); $qry = "SELECT note FROM lehre.tbl_notenschluesselaufteilung WHERE notenschluessel_kurzbz=".$this->db_add_param($notenschluessel_kurzbz)." AND punkte<=".$this->db_add_param($punkte)." ORDER BY punkte desc LIMIT 1"; if($result = $this->db_query($qry)) { if($row = $this->db_fetch_object($result)) { return $row->note; } else { $this->errormsg = 'Es wurde kein passender eintrag gefunden'; return false; } } else { $this->errormsg = 'Fehler beim Laden der Daten'; return false; } } /** * Liefert den passenden Notenschluessel zu einer Lehrveranstaltung * @param $lehrveranstaltung_id ID der Lehrveranstaltung * @param $studiensemester_kurzbz Studiensemester * @return Kurzbz des Notenschluessels */ public function getNotenschluessel($lehrveranstaltung_id, $studiensemester_kurzbz) { // Notenschluessel der direkt an der LV haengt $qry = "SELECT notenschluessel_kurzbz FROM lehre.tbl_notenschluesselzuordnung WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND (studiensemester_kurzbz is null OR studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).")"; if($result = $this->db_query($qry)) { if($row = $this->db_fetch_object($result)) { return $row->notenschluessel_kurzbz; } } // Notenschluessel am Studienplan // TODO // Notenschluessel an der OE $qry = " WITH RECURSIVE oes(oe_kurzbz, oe_parent_kurzbz, tiefe) as ( SELECT oe_kurzbz, oe_parent_kurzbz, 1 FROM public.tbl_organisationseinheit WHERE oe_kurzbz=(SELECT oe_kurzbz FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER).") UNION ALL SELECT o.oe_kurzbz, o.oe_parent_kurzbz, oes.tiefe+1 as tiefe FROM public.tbl_organisationseinheit o, oes WHERE o.oe_kurzbz=oes.oe_parent_kurzbz and aktiv = true ) SELECT notenschluessel_kurzbz FROM oes JOIN lehre.tbl_notenschluesselzuordnung USING(oe_kurzbz) WHERE (studiensemester_kurzbz is null OR studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz).") ORDER BY tiefe desc LIMIT 1"; if($result = $this->db_query($qry)) { if($row = $this->db_fetch_object($result)) { return $row->notenschluessel_kurzbz; } } return false; } } ?>