diff --git a/include/studienplan.class.php b/include/studienplan.class.php
index 7e9963c0a..f180733fe 100644
--- a/include/studienplan.class.php
+++ b/include/studienplan.class.php
@@ -952,21 +952,34 @@ class studienplan extends basis_db
/**
* Laedt die Studienplaene zu denen eine Lehrveranstaltung zugeordnet ist
*/
- public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz)
+ public function getStudienplanLehrveranstaltung($lehrveranstaltung_id, $studiensemester_kurzbz = null)
{
$qry= "
SELECT
- distinct tbl_studienplan.*
+ DISTINCT tbl_studienplan.*
FROM
- lehre.tbl_studienplan
- JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id)
+ lehre.tbl_studienplan
+ JOIN lehre.tbl_studienplan_lehrveranstaltung
+ USING(studienplan_id)
WHERE
- tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
- AND EXISTS (
- SELECT 1 FROM lehre.tbl_studienplan_semester
- WHERE studienplan_id=tbl_studienplan.studienplan_id
- AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
- AND semester = tbl_studienplan_lehrveranstaltung.semester)
+ tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id IN (
+ SELECT
+ lv.lehrveranstaltung_id
+ FROM
+ lehre.tbl_lehrveranstaltung AS lv
+ LEFT JOIN lehre.tbl_lehrveranstaltung AS t ON t.lehrveranstaltung_id=lv.lehrveranstaltung_template_id
+ WHERE
+ lv.lehrtyp_kurzbz<>'tpl'
+ AND (lv.lehrveranstaltung_id=" . $this->db_add_param($lehrveranstaltung_id, FHC_INTEGER) . " OR (lv.lehrveranstaltung_template_id=" . $this->db_add_param($lehrveranstaltung_id, FHC_INTEGER) . " AND t.lehrtyp_kurzbz='tpl'))
+ )
+ AND EXISTS (
+ SELECT 1
+ FROM
+ lehre.tbl_studienplan_semester
+ WHERE studienplan_id=tbl_studienplan.studienplan_id".
+ ($studiensemester_kurzbz != null ? "
+ AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz) : "")."
+ AND semester = tbl_studienplan_lehrveranstaltung.semester)
ORDER BY bezeichnung";
if($result = $this->db_query($qry))
diff --git a/vilesci/lehre/lehrveranstaltung_details.php b/vilesci/lehre/lehrveranstaltung_details.php
index 2b3b6a04c..ca683690a 100644
--- a/vilesci/lehre/lehrveranstaltung_details.php
+++ b/vilesci/lehre/lehrveranstaltung_details.php
@@ -29,6 +29,7 @@
require_once('../../include/lehrtyp.class.php');
require_once('../../include/lehrmodus.class.php');
require_once('../../include/benutzerberechtigung.class.php');
+ require_once('../../include/studienplan.class.php');
if (!$db = new basis_db())
die('Es konnte keine Verbindung zum Server aufgebaut werden.');
@@ -508,19 +509,10 @@
}
$htmlstr.='
Verwendung in folgenden Studienplänen: ';
- $qry ="SELECT distinct tbl_studienplan.bezeichnung
- FROM
- lehre.tbl_studienplan_lehrveranstaltung
- JOIN lehre.tbl_studienplan USING(studienplan_id)
- WHERE lehrveranstaltung_id=".$db->db_add_param($lv->lehrveranstaltung_id).'
- ORDER BY tbl_studienplan.bezeichnung desc';
- if($result = $db->db_query($qry))
- {
- while($row = $db->db_fetch_object($result))
- {
- $htmlstr.= $row->bezeichnung.'; ';
- }
- }
+ $stdplan = new studienplan();
+ if ($stdplan->getStudienplanLehrveranstaltung($lv->lehrveranstaltung_id))
+ foreach($stdplan->result as $result)
+ $htmlstr .= $result->bezeichnung . "; ";
$htmlstr.='';
// Details Ende