mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-23 18:02:18 +00:00
Script zur generierung von Studienordnungen
This commit is contained in:
@@ -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().'<BR>'.$qry);
|
||||
|
||||
|
||||
@@ -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 ende<now()";
|
||||
|
||||
$stsem = array();
|
||||
if($result_stsem = $db->db_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.'<br>';
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user