From 87c021b6937179d7f8d2d5103dea93519ca95e6c Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 15 Apr 2016 09:35:30 +0200 Subject: [PATCH] Fehler behoben in der Anzeige der Lehrveranstaltungen im FAS wenn mehrere verschiedene Studienordnungen aktiv sind --- include/studienplan.class.php | 8 +++-- rdf/lehrveranstaltung_einheiten.rdf.php | 40 ++++++++++++------------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 9a353eb5c..b34bae50b 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -700,7 +700,7 @@ class studienplan extends basis_db * @param $ausbuldungssemester * @param $orgform_kurzbz */ - function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester, $orgform_kurzbz = "") + function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester="", $orgform_kurzbz = "") { $qry = "SELECT * @@ -711,8 +711,10 @@ class studienplan extends basis_db WHERE tbl_studienplan.aktiv AND tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)." - AND tbl_studienplan_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." - AND tbl_studienplan_semester.semester=".$this->db_add_param($ausbildungssemester); + AND tbl_studienplan_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz); + + if($ausbildungssemester!='') + $qry.=" AND tbl_studienplan_semester.semester=".$this->db_add_param($ausbildungssemester); if($orgform_kurzbz!='') { diff --git a/rdf/lehrveranstaltung_einheiten.rdf.php b/rdf/lehrveranstaltung_einheiten.rdf.php index 4d296c2d2..6ceaca126 100644 --- a/rdf/lehrveranstaltung_einheiten.rdf.php +++ b/rdf/lehrveranstaltung_einheiten.rdf.php @@ -176,25 +176,12 @@ else $stp_ids=array(); $stpl_main = new studienplan(); - $sto_obj = new studienordnung(); - if($sto_obj->loadStudienordnungSTG($stg_kz, $semester_aktuell, $sem)) + $stpl_main->getStudienplaeneFromSem($stg_kz, $semester_aktuell, $sem, $orgform); + foreach($stpl_main->result as $row_stp) { - foreach($sto_obj->result as $row_sto) - { - //echo "$row_sto->studienordnung_id $row_sto->semester\n"; - $stp_obj = new studienplan(); - if($stp_obj->loadStudienplanSTO($row_sto->studienordnung_id, $orgform)) - { - foreach($stp_obj->result as $row_stp) - { - $stp_ids_arr[]=array('stpid'=>$row_stp->studienplan_id,'semester'=>$row_sto->semester); - $stp_ids[]=$row_stp->studienplan_id; - } - } - } + $stp_ids_arr[]=array('stpid'=>$row_stp->studienplan_id,'semester'=>$row_stp->semester); + $stp_ids[]=$row_stp->studienplan_id; } - else - echo "FAILED:".$stpl_main->errormsg; $qry=''; if(count($stp_ids)>0) @@ -229,7 +216,7 @@ else tbl_lehrveranstaltung.lehre, lehreverzeichnis as lv_lehreverzeichnis, aktiv, planfaktor as lv_planfaktor, planlektoren as lv_planlektoren, planpersonalkosten as lv_planpersonalkosten, plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.orgform_kurzbz, - '' as studienplan_id, '' as studienplan_bezeichnung, '' as studienplan_lehrveranstaltung_id_parent, + ''::text as studienplan_id, '' as studienplan_bezeichnung, '' as studienplan_lehrveranstaltung_id_parent, tbl_lehrveranstaltung.lehrtyp_kurzbz FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id) WHERE 1=1"; @@ -247,9 +234,22 @@ else $qry.=" AND NOT EXISTS (SELECT 1 FROM lehre.tbl_studienplan_lehrveranstaltung where studienplan_id in (".$db->db_implode4SQL($stp_ids).") AND lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.aktiv)"; } - //$qry = 'SELECT distinct on(lehrveranstaltung_id) * FROM ('.$qry.' ORDER BY studienplan_id DESC) a'; +/* + $qry = 'SELECT + lehrveranstaltung_id, lv_kurzbz, lv_bezeichnung, lv_bezeichnung_english, studiengang_kz, + semester, sprache, lv_ects, semesterstunden, anmerkung, lehre, lv_lehreverzeichnis, aktiv, + lv_planfaktor, lv_planlektoren, lv_planpersonalkosten, lv_plankostenprolektor, lv_lehrform_kurzbz, + orgform_kurzbz, studienplan_lehrveranstaltung_id_parent, lehrtyp_kurzbz, + array_agg(studienplan_id) as studienplan_id, array_agg(studienplan_bezeichnung) as studienplan_bezeichnung + FROM ('.$qry.') a + GROUP BY + lehrveranstaltung_id, lv_kurzbz, lv_bezeichnung, lv_bezeichnung_english, studiengang_kz, + semester, sprache, lv_ects, semesterstunden, anmerkung, lehre, lv_lehreverzeichnis, aktiv, + lv_planfaktor, lv_planlektoren, lv_planpersonalkosten, lv_plankostenprolektor, lv_lehrform_kurzbz, + orgform_kurzbz, studienplan_lehrveranstaltung_id_parent, lehrtyp_kurzbz'; +*/ } - //die($qry); +//die($qry); if(!$result = $db->db_query($qry)) die($db->db_last_error().'
'.$qry);