diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php index 07999f47d..e201fbe30 100644 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -156,7 +156,7 @@ function getPruefungByLv($aktStudiensemester = null, $uid = null) } $lehrveranstaltungen=$lvIds; $pruefung = new pruefungCis(); - if($pruefung->getPruefungByLv($lehrveranstaltungen)) + if($pruefung->getPruefungByLv($lehrveranstaltungen, $uid)) { $pruefungen = array(); foreach($pruefung->lehrveranstaltungen as $key=>$lv) diff --git a/include/pruefungCis.class.php b/include/pruefungCis.class.php index 1ddf88443..3439793da 100644 --- a/include/pruefungCis.class.php +++ b/include/pruefungCis.class.php @@ -590,7 +590,7 @@ class pruefungCis extends basis_db * @param String|Array $lehrveranstaltung_IDs einzelne ID einer Lehrveranstaltung oder ein Array von IDs * @return boolean true, wenn ok; false, im Fehlerfall */ - public function getPruefungByLv($lehrveranstaltung_IDs) + public function getPruefungByLv($lehrveranstaltung_IDs, $uid = null) { if(empty($lehrveranstaltung_IDs)) { @@ -612,7 +612,17 @@ class pruefungCis extends basis_db $in = $lehrveranstaltung_IDs; } - $qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.');'; + $qry = 'SELECT * FROM campus.tbl_lehrveranstaltung_pruefung WHERE lehrveranstaltung_id IN ('.$in.')'; + + if ($uid !== null) + { + // LVs entfernen wo schon eine Note für UID vorhanden ist + $qry .= " AND lehrveranstaltung_id NOT IN ( + SELECT lehrveranstaltung_id + FROM lehre.tbl_pruefung + JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) + WHERE student_uid = " . $this->db_add_param($uid) . ");"; + } if($this->db_query($qry)) {