Anpassungen fuer Umstellung auf neue Studienordnung; NOT NULL Constraint bei tbl_mitarbeiter.kleriker entfernt

This commit is contained in:
Andreas Österreicher
2014-03-25 15:34:57 +00:00
parent 898fd13e1a
commit 735f600ef4
2 changed files with 36 additions and 19 deletions
+20 -7
View File
@@ -709,12 +709,11 @@ if(!$result = @$db->db_query("SELECT farbe FROM lehre.tbl_lehrveranstaltung LIMI
ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN old_lehrfach_id bigint; ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN old_lehrfach_id bigint;
-- Alle Lehrfächer als Lehrveranstaltungen anlegen -- Alle Lehrfächer als Lehrveranstaltungen anlegen
-- TODO !!!! eventuell muessen nicht alle kopiert werden sondern koennen gleich zusammengelegt werden mit der LV
INSERT INTO lehre.tbl_lehrveranstaltung(kurzbz, bezeichnung, semester, sprache, INSERT INTO lehre.tbl_lehrveranstaltung(kurzbz, bezeichnung, semester, sprache,
oe_kurzbz, lehrtyp_kurzbz,aktiv, studiengang_kz, projektarbeit, old_lehrfach_id, farbe) oe_kurzbz, lehrtyp_kurzbz,aktiv, studiengang_kz, projektarbeit, old_lehrfach_id, farbe, lehre)
SELECT kurzbz, bezeichnung, semester, sprache, SELECT kurzbz, bezeichnung, semester, sprache,
(select oe_kurzbz from public.tbl_fachbereich where fachbereich_kurzbz=tbl_lehrfach.fachbereich_kurzbz), (select oe_kurzbz from public.tbl_fachbereich where fachbereich_kurzbz=tbl_lehrfach.fachbereich_kurzbz),
'lf',aktiv, studiengang_kz, false, lehrfach_id, farbe 'lf',aktiv, studiengang_kz, false, lehrfach_id, farbe,false
FROM FROM
lehre.tbl_lehrfach; lehre.tbl_lehrfach;
@@ -1252,6 +1251,20 @@ if(!$result = @$db->db_query("SELECT anmeldung_von FROM campus.tbl_pruefungsterm
} }
// NOT NULL Constraint bei tbl_mitarbeiter.kleriker entfernt
if($result = @$db->db_query("SELECT 1 FROM information_schema.columns WHERE table_schema='public' AND table_name='tbl_mitarbeiter' AND column_name='kleriker' AND is_nullable='NO'"))
{
if($db->db_num_rows($result)>0)
{
$qry = "ALTER TABLE public.tbl_mitarbeiter ALTER COLUMN kleriker DROP NOT NULL;";
if(!$db->db_query($qry))
echo '<strong>public.tbl_mitarbeiter: '.$db->db_last_error().'</strong><br>';
else
echo 'public.tbl_mitarbeiter: Spalte Kleriker NOT NULL entfernt';
}
}
echo '<br><br><br>'; echo '<br><br><br>';
$tabellen=array( $tabellen=array(
@@ -1585,8 +1598,8 @@ $berechtigungen = array(
array('lehre/lehrveranstaltung','Lehrveranstaltungsverwaltung'), array('lehre/lehrveranstaltung','Lehrveranstaltungsverwaltung'),
array('lehre/lehrveranstaltung:begrenzt','nur die Felder Lehre, Sort, Zeugnis, BA/DA, FBK und LVInfo dürfen geändert werden (eventuelle Aufteilung in einzelne Berechtigungen??)'), array('lehre/lehrveranstaltung:begrenzt','nur die Felder Lehre, Sort, Zeugnis, BA/DA, FBK und LVInfo dürfen geändert werden (eventuelle Aufteilung in einzelne Berechtigungen??)'),
array('lehre/lvplan','Tempus'), array('lehre/lvplan','Tempus'),
array('lehre/pruefungstermin','Erlaubt es dem Benutzer eine Prüfung für ein Prüfungsfenster anzulegen'), array('lehre/pruefungstermin','Erlaubt es dem Benutzer eine Prüfung für ein Prüfungsfenster anzulegen'),
array('lehre/pruefungsfenster','Erlaubt dem Benutzer Prüfungsfenster anzulegen.'), array('lehre/pruefungsfenster','Erlaubt dem Benutzer Prüfungsfenster anzulegen.'),
array('lehre/reihungstest','Reihungstestverwaltung'), array('lehre/reihungstest','Reihungstestverwaltung'),
array('lehre/reservierung','erweiterte Reservierung inkl. Lektorauswahl, Stg, Sem und Gruppe'), array('lehre/reservierung','erweiterte Reservierung inkl. Lektorauswahl, Stg, Sem und Gruppe'),
array('lehre/reservierung:begrenzt','normale Raumreservierung im CIS'), array('lehre/reservierung:begrenzt','normale Raumreservierung im CIS'),
@@ -1606,7 +1619,7 @@ $berechtigungen = array(
array('soap/lvplan','Recht für LV-Plan Webservice'), array('soap/lvplan','Recht für LV-Plan Webservice'),
array('soap/mitarbeiter','Recht für Mitarbeiter-Webservice'), array('soap/mitarbeiter','Recht für Mitarbeiter-Webservice'),
array('soap/ort','Recht für Ort Webservice'), array('soap/ort','Recht für Ort Webservice'),
array('soap/pruefungsfenster','Recht für Pruefungsfenster Webservice'), array('soap/pruefungsfenster','Recht für Pruefungsfenster Webservice'),
array('soap/student','Recht für Student Webservice'), array('soap/student','Recht für Student Webservice'),
array('soap/studienordnung','Recht für Studienordnung Webservice'), array('soap/studienordnung','Recht für Studienordnung Webservice'),
array('student/bankdaten','Bankdaten des Studenten'), array('student/bankdaten','Bankdaten des Studenten'),
@@ -1689,7 +1702,7 @@ $webservicerecht = array(
array('soap/studienordnung','deleteSemesterZuordnung','studienordnung'), array('soap/studienordnung','deleteSemesterZuordnung','studienordnung'),
array('soap/studienordnung','getLVkompatibel','lehrveranstaltung'), array('soap/studienordnung','getLVkompatibel','lehrveranstaltung'),
array('soap/studienordnung','getLvTree','lehrveranstaltung'), array('soap/studienordnung','getLvTree','lehrveranstaltung'),
array('soap/pruefungsfenster','getByStudiensemester','pruefungsfenster') array('soap/pruefungsfenster','getByStudiensemester','pruefungsfenster')
); );
foreach($webservicerecht as $row) foreach($webservicerecht as $row)
+16 -12
View File
@@ -38,6 +38,7 @@ $db = new basis_db();
// Alle Studiengaenge durchlaufen // Alle Studiengaenge durchlaufen
foreach($studiengang->result as $rowstg) foreach($studiengang->result as $rowstg)
{ {
/*
$qry = "SELECT $qry = "SELECT
studiensemester_kurzbz studiensemester_kurzbz
FROM FROM
@@ -47,9 +48,9 @@ foreach($studiengang->result as $rowstg)
WHERE WHERE
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($rowstg->studiengang_kz, FHC_INTEGER)." tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($rowstg->studiengang_kz, FHC_INTEGER)."
ORDER BY tbl_studiensemester.start LIMIT 1"; ORDER BY tbl_studiensemester.start LIMIT 1";
*/
$stsem = 'WS2014'; $stsem = 'WS2013';
/*
if($result = $db->db_query($qry)) if($result = $db->db_query($qry))
{ {
if($row = $db->db_fetch_object($result)) if($row = $db->db_fetch_object($result))
@@ -57,7 +58,7 @@ foreach($studiengang->result as $rowstg)
$stsem = $row->studiensemester_kurzbz; $stsem = $row->studiensemester_kurzbz;
} }
} }
*/
// eine Neue Studienordnung anlegen // eine Neue Studienordnung anlegen
$studienordnung = new studienordnung(); $studienordnung = new studienordnung();
$studienordnung->studiengang_kz=$rowstg->studiengang_kz; $studienordnung->studiengang_kz=$rowstg->studiengang_kz;
@@ -93,7 +94,8 @@ foreach($studiengang->result as $rowstg)
{ {
while($row = $db->db_fetch_object($result)) while($row = $db->db_fetch_object($result))
{ {
createStudienplan($row->orgform_kurzbz, $studienordnung_id, $rowstg); if($row->orgform_kurzbz!='')
createStudienplan($row->orgform_kurzbz, $studienordnung_id, $rowstg);
} }
} }
} }
@@ -103,8 +105,8 @@ foreach($studiengang->result as $rowstg)
} }
} }
/*
$qry = "SELECT * FROM public.tbl_studiensemester WHERE ende<now()"; $qry = "SELECT * FROM public.tbl_studiensemester WHERE begin<now()";
$stsem = array(); $stsem = array();
if($result_stsem = $db->db_query($qry)) if($result_stsem = $db->db_query($qry))
@@ -114,7 +116,7 @@ if($result_stsem = $db->db_query($qry))
$stsem[] = $row_stsem->studiensemester_kurzbz; $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)"; $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)) if($result_sto = $db->db_query($qry))
@@ -122,13 +124,14 @@ if($result_sto = $db->db_query($qry))
while($row_sto = $db->db_fetch_object($result_sto)) while($row_sto = $db->db_fetch_object($result_sto))
{ {
echo $row_sto->bezeichnung.'<br>'; echo $row_sto->bezeichnung.'<br>';
for($i=1;$i<$row_sto->max_semester;$i++) for($i=1;$i<=$row_sto->max_semester;$i++)
{ {
$qry="INSERT INTO lehre.tbl_studienordnung_semester(studienordnung_id, semester, studiensemester_kurzbz) $qry="INSERT INTO lehre.tbl_studienordnung_semester(studienordnung_id, semester, studiensemester_kurzbz)
VALUES(".$db->db_add_param($row_sto->studienordnung_id).','.$i.','; VALUES(".$db->db_add_param($row_sto->studienordnung_id).','.$i.',';
foreach($stsem as $studiensemester) $stsem_arr=array('WS2013','SS2014','WS2014');
foreach($stsem_arr as $studiensemester)
{ {
$db->db_query($qry.$db->db_add_param($studiensemester).');'); $db->db_query($qry.$db->db_add_param($studiensemester).');');
} }
} }
} }
@@ -174,7 +177,8 @@ function createStudienplan($orgform, $studienordnung_id, $rowstg)
WHERE WHERE
tbl_lehrveranstaltung.studiengang_kz=".$db->db_add_param($rowstg->studiengang_kz)." 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'"; AND lehrtyp_kurzbz<>'lf'
AND tbl_lehrveranstaltung.aktiv";
if($result = $db->db_query($qry)) if($result = $db->db_query($qry))
{ {