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;