Fehler behoben in der Anzeige der Lehrveranstaltungen im FAS wenn mehrere verschiedene Studienordnungen aktiv sind

This commit is contained in:
oesi
2016-04-15 09:35:30 +02:00
parent 3760195a58
commit 87c021b693
2 changed files with 25 additions and 23 deletions
+5 -3
View File
@@ -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!='')
{
+20 -20
View File
@@ -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().'<BR>'.$qry);