diff --git a/rdf/lehrveranstaltung_einheiten.rdf.php b/rdf/lehrveranstaltung_einheiten.rdf.php index 1a91c157d..2dc682175 100644 --- a/rdf/lehrveranstaltung_einheiten.rdf.php +++ b/rdf/lehrveranstaltung_einheiten.rdf.php @@ -76,32 +76,38 @@ if($uid!='' && $stg_kz!=-1) // Alle LVs eines Mitarbeiters elseif($fachbereich_kurzbz!='') // Alle LVs eines Fachbereiches { // LVs lt Studienplan - $qry=" - SELECT - distinct on (lehrveranstaltung_id) - tbl_lehrveranstaltung.studiengang_kz as lv_studiengang_kz, tbl_lehrveranstaltung.semester as lv_semester, - tbl_lehrveranstaltung.kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, tbl_lehrveranstaltung.ects as lv_ects, - tbl_lehrveranstaltung.lehreverzeichnis as lv_lehreverzeichnis, tbl_lehrveranstaltung.planfaktor as lv_planfaktor, - tbl_lehrveranstaltung.planlektoren as lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten as lv_planpersonalkosten, - tbl_lehrveranstaltung.plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz as lv_orgform_kurzbz, - tbl_lehrveranstaltung.lehrveranstaltung_id, - tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz, - tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz, - tbl_lehrveranstaltung.bezeichnung_english as lv_bezeichnung_english, - tbl_lehrveranstaltung.studiengang_kz, tbl_studienplan_lehrveranstaltung.semester, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.semesterstunden, - tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv, - tbl_studienplan.studienplan_id::text, tbl_studienplan.bezeichnung as studienplan_bezeichnung, tbl_lehrveranstaltung.lehrtyp_kurzbz - FROM - lehre.tbl_lehrveranstaltung - JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id) - JOIN lehre.tbl_studienplan USING(studienplan_id) - JOIN lehre.tbl_studienordnung USING(studienordnung_id) - JOIN lehre.tbl_studienordnung_semester USING(studienordnung_id) - WHERE - tbl_lehrveranstaltung.oe_kurzbz=(Select oe_kurzbz from public.tbl_fachbereich where fachbereich_kurzbz=".$db->db_add_param($fachbereich_kurzbz).") - AND tbl_studienordnung_semester.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell); - - $qry .= " UNION + if($uid=='') + { + $qry=" + SELECT + distinct on (lehrveranstaltung_id) + tbl_lehrveranstaltung.studiengang_kz as lv_studiengang_kz, tbl_lehrveranstaltung.semester as lv_semester, + tbl_lehrveranstaltung.kurzbz as lv_kurzbz, tbl_lehrveranstaltung.bezeichnung as lv_bezeichnung, tbl_lehrveranstaltung.ects as lv_ects, + tbl_lehrveranstaltung.lehreverzeichnis as lv_lehreverzeichnis, tbl_lehrveranstaltung.planfaktor as lv_planfaktor, + tbl_lehrveranstaltung.planlektoren as lv_planlektoren, tbl_lehrveranstaltung.planpersonalkosten as lv_planpersonalkosten, + tbl_lehrveranstaltung.plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.orgform_kurzbz as lv_orgform_kurzbz, + tbl_lehrveranstaltung.lehrveranstaltung_id, + tbl_lehrveranstaltung.lehrform_kurzbz as lehrform_kurzbz, + tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz, + tbl_lehrveranstaltung.bezeichnung_english as lv_bezeichnung_english, + tbl_lehrveranstaltung.studiengang_kz, tbl_studienplan_lehrveranstaltung.semester, tbl_lehrveranstaltung.anmerkung, tbl_lehrveranstaltung.sprache, tbl_lehrveranstaltung.semesterstunden, + tbl_lehrveranstaltung.lehre, tbl_lehrveranstaltung.aktiv, + tbl_studienplan.studienplan_id::text, tbl_studienplan.bezeichnung as studienplan_bezeichnung, tbl_lehrveranstaltung.lehrtyp_kurzbz + FROM + lehre.tbl_lehrveranstaltung + JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id) + JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN lehre.tbl_studienordnung_semester USING(studienordnung_id) + WHERE + tbl_lehrveranstaltung.oe_kurzbz=(Select oe_kurzbz from public.tbl_fachbereich where fachbereich_kurzbz=".$db->db_add_param($fachbereich_kurzbz).") + AND tbl_studienordnung_semester.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell)." + AND tbl_lehrveranstaltung.aktiv + UNION "; + } + else + $qry=''; + $qry .= " SELECT distinct on(lehrveranstaltung_id) lv_studiengang_kz, lv_semester, lv_kurzbz, lv_bezeichnung, lv_ects, @@ -118,7 +124,8 @@ elseif($fachbereich_kurzbz!='') // Alle LVs eines Fachbereiches AND fachbereich_kurzbz=".$db->db_add_param($fachbereich_kurzbz); if($uid!='') $qry.=" AND mitarbeiter_uid=".$db->db_add_param($uid); - + else + { $qry.=" AND lehrveranstaltung_id NOT IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung @@ -129,8 +136,7 @@ elseif($fachbereich_kurzbz!='') // Alle LVs eines Fachbereiches WHERE tbl_lehrveranstaltung.oe_kurzbz=(Select oe_kurzbz from public.tbl_fachbereich where fachbereich_kurzbz=".$db->db_add_param($fachbereich_kurzbz).") AND tbl_studienordnung_semester.studiensemester_kurzbz=".$db->db_add_param($semester_aktuell).")"; - - + } } else @@ -172,7 +178,8 @@ else lehre.tbl_lehrveranstaltung JOIN lehre.tbl_studienplan_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_studienplan USING(studienplan_id) - WHERE studienplan_id in (".$db->db_implode4SQL($stp_ids).")"; + WHERE studienplan_id in (".$db->db_implode4SQL($stp_ids).") + AND tbl_lehrveranstaltung.aktiv"; if($sem!='') $qry.=" AND tbl_studienplan_lehrveranstaltung.semester=".$db->db_add_param($sem); $qry.=" UNION "; @@ -204,7 +211,7 @@ else } //$qry = 'SELECT distinct on(lehrveranstaltung_id) * FROM ('.$qry.' ORDER BY studienplan_id DESC) a'; } -//die($qry); +// die($qry); if(!$result = $db->db_query($qry)) die($db->db_last_error().'
'.$qry); diff --git a/system/generatestudienordnung.php b/system/generatestudienordnung.php index e6fd05340..e53788bce 100644 --- a/system/generatestudienordnung.php +++ b/system/generatestudienordnung.php @@ -38,18 +38,37 @@ $db = new basis_db(); // Alle Studiengaenge durchlaufen foreach($studiengang->result as $rowstg) { + $qry = "SELECT + studiensemester_kurzbz + FROM + lehre.tbl_lehrveranstaltung + JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) + JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE + tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($rowstg->studiengang_kz, FHC_INTEGER)." + ORDER BY tbl_studiensemester.start LIMIT 1"; + + $stsem = 'WS2014'; + + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $stsem = $row->studiensemester_kurzbz; + } + } + // eine Neue Studienordnung anlegen $studienordnung = new studienordnung(); $studienordnung->studiengang_kz=$rowstg->studiengang_kz; - $studienordnung->bezeichnung=$rowstg->kuerzel.'_V2'; - $studienordnung->version='V2'; - $studienordnung->ects=30; - $studienordnung->gueltigvon='WS2013'; + $studienordnung->bezeichnung=sprintf('%04s',$rowstg->studiengang_kz).'-'.$rowstg->kuerzel.'-'.$stsem; + $studienordnung->version='01'; + $studienordnung->ects=($rowstg->max_semester*30); + $studienordnung->gueltigvon=$stsem; $studienordnung->gueltigbis=''; $studienordnung->studiengangbezeichnung = $rowstg->bezeichnung; $studienordnung->studiengangbezeichnung_englisch = $rowstg->english; $studienordnung->studiengangkurzbzlang = $rowstg->kurzbzlang; - $studienordnung->max_semester = $rowstg->max_semester; $studienordnung->insertvon = 'generate'; $studienordnung->akadgrad_id=1; if(!$studienordnung->save()) @@ -84,18 +103,60 @@ foreach($studiengang->result as $rowstg) } } + +$qry = "SELECT * FROM public.tbl_studiensemester WHERE endedb_query($qry)) +{ + while($row_stsem = $db->db_fetch_object($result_stsem)) + { + $stsem[] = $row_stsem->studiensemester_kurzbz; + } +} + +$qry="SELECT *, (Select max_semester FROM public.tbl_studiengang where studiengang_kz=a.studiengang_kz) as max_semester FROM lehre.tbl_studienordnung as a WHERE studienordnung_id=(Select max(studienordnung_id) FROM lehre.tbl_studienordnung WHERE studiengang_kz=a.studiengang_kz)"; + +if($result_sto = $db->db_query($qry)) +{ + while($row_sto = $db->db_fetch_object($result_sto)) + { + echo $row_sto->bezeichnung.'
'; + for($i=1;$i<$row_sto->max_semester;$i++) + { + $qry="INSERT INTO lehre.tbl_studienordnung_semester(studienordnung_id, semester, studiensemester_kurzbz) + VALUES(".$db->db_add_param($row_sto->studienordnung_id).','.$i.','; + foreach($stsem as $studiensemester) + { + $db->db_query($qry.$db->db_add_param($studiensemester).');'); + } + } + } +} + function createStudienplan($orgform, $studienordnung_id, $rowstg) { global $db; $studienplan = new studienplan(); $studienplan->studienordnung_id = $studienordnung_id; $studienplan->orgform_kurzbz=$orgform; - $studienplan->version = 'V2'; - $studienplan->bezeichnung = $rowstg->kuerzel.'V2'; + $studienplan->version = 'V1'; + $studienplan->bezeichnung = $orgform; $studienplan->regelstudiendauer = $rowstg->max_semester; $studienplan->sprache = $rowstg->sprache; $studienplan->aktiv = true; - $studienplan->semesterwochen = 15; + + $wochen='15'; + $qry = "SELECT wochen FROM public.tbl_semesterwochen WHERE studiengang_kz=".$db->db_add_param($rowstg->studiengang_kz)." LIMIT 1"; + if($result = $db->db_query($qry)) + { + if($row = $db->db_fetch_object($result)) + { + $wochen = $row->wochen; + } + } + + $studienplan->semesterwochen = $wochen; $studienplan->testtool_sprachwahl = true;//$db->db_parse_bool($rowstg->testtool_sprachwahl); $studienplan->insertvon = 'generate'; if(!$studienplan->save()) @@ -112,13 +173,14 @@ function createStudienplan($orgform, $studienordnung_id, $rowstg) lehre.tbl_lehrveranstaltung WHERE tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($rowstg->studiengang_kz)." - AND (orgform_kurzbz is null or orgform_kurzbz=".$db->db_add_param($orgform).')'; + AND (orgform_kurzbz is null or orgform_kurzbz=".$db->db_add_param($orgform).") + AND lehrtyp_kurzbz<>'lf'"; if($result = $db->db_query($qry)) { while($row = $db->db_fetch_object($result)) { - $lehrveranstaltung = new lehrveranstaltung(); + $lehrveranstaltung = new studienplan(); $lehrveranstaltung->new=true; $lehrveranstaltung->studienplan_id=$studienplan_id; $lehrveranstaltung->semester=$row->semester;