From e7a462caec131063406c0be3975cab8b07b4bfe9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 7 Dec 2006 16:11:58 +0000 Subject: [PATCH] Sync Scripte Vilesci->Portal --- ...nc_vilesci_portal_benutzerberechtigung.php | 4 +- ...lesci_portal_benutzerlvstudiensemester.php | 104 + .../sync/sync_vilesci_portal_fachbereich.php | 16 +- admin/sync/sync_vilesci_portal_feedback.php | 46 +- admin/sync/sync_vilesci_portal_gruppe.php | 8 +- .../sync/sync_vilesci_portal_lehreinheit.php | 342 +++ admin/sync/sync_vilesci_portal_lehrfach.php | 11 +- admin/sync/sync_vilesci_portal_lehrform.php | 7 +- ...vilesci_portal_personlvstudiensemester.php | 10 +- .../sync/sync_vilesci_portal_reservierung.php | 2 +- admin/sync/sync_vilesci_portal_stunde.php | 2 +- .../sync/sync_vilesci_portal_stundenplan.php | 129 ++ admin/sync/sync_vilesci_portal_zeitwunsch.php | 2 +- include/fas/benutzerberechtigung.class.php | 12 +- ...hp => benutzerlvstudiensemester.class.php} | 22 +- include/fas/fachbereich.class.php | 114 +- include/fas/feedback.class.php | 13 +- include/fas/gruppe.class.php | 67 +- include/fas/lehreinheit.class.php | 1847 +++-------------- include/fas/lehreinheitgruppe.class.php | 175 ++ include/fas/lehreinheitmitarbeiter.class.php | 148 ++ include/fas/lehrfach.class.php | 38 +- include/fas/lehrform.class.php | 6 +- include/fas/lehrverband.class.php | 154 ++ include/fas/reservierung.class.php | 4 +- include/fas/stunde.class.php | 4 +- include/fas/stundenplan.class.php | 261 +++ include/fas/zeitwunsch.class.php | 4 +- 28 files changed, 1767 insertions(+), 1785 deletions(-) create mode 100644 admin/sync/sync_vilesci_portal_benutzerlvstudiensemester.php create mode 100644 admin/sync/sync_vilesci_portal_lehreinheit.php create mode 100644 admin/sync/sync_vilesci_portal_stundenplan.php rename include/fas/{personlvstudiensemester.class.php => benutzerlvstudiensemester.class.php} (87%) create mode 100644 include/fas/lehreinheitgruppe.class.php create mode 100644 include/fas/lehreinheitmitarbeiter.class.php create mode 100644 include/fas/lehrverband.class.php create mode 100644 include/fas/stundenplan.class.php diff --git a/admin/sync/sync_vilesci_portal_benutzerberechtigung.php b/admin/sync/sync_vilesci_portal_benutzerberechtigung.php index 27a415a5f..49c74c458 100644 --- a/admin/sync/sync_vilesci_portal_benutzerberechtigung.php +++ b/admin/sync/sync_vilesci_portal_benutzerberechtigung.php @@ -39,7 +39,7 @@ $anzahl_fehler=0; // *********************************** //Mitarbeiter -$qry = 'Select * FROM tbl_userberechtigung'; +$qry = 'Select * FROM tbl_userberechtigung left join tbl_fachbereich using(fachbereich_id)'; if($result = pg_query($conn_vilesci, $qry)) { @@ -49,7 +49,7 @@ if($result = pg_query($conn_vilesci, $qry)) $error=false; $benutzerberechtigung = new benutzerberechtigung($conn); $benutzerberechtigung->art = $row->art; - $benutzerberechtigung->fachbereich_id = $row->fachbereich_id; + $benutzerberechtigung->fachbereich_kurzbz = $row->kurzbz; $benutzerberechtigung->studiengang_kz = $row->studiengang_kz; $benutzerberechtigung->berechtigung_kurzbz = $row->berechtigung_kurzbz; $benutzerberechtigung->uid = $row->uid; diff --git a/admin/sync/sync_vilesci_portal_benutzerlvstudiensemester.php b/admin/sync/sync_vilesci_portal_benutzerlvstudiensemester.php new file mode 100644 index 000000000..bca722d46 --- /dev/null +++ b/admin/sync/sync_vilesci_portal_benutzerlvstudiensemester.php @@ -0,0 +1,104 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Synchronisiert tbl_personlvstudiensemester von Vilesci DB in PORTAL DB + * + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/fas/benutzerlvstudiensemester.class.php'); + +$conn=pg_connect(CONN_STRING) or die('Connection zur Portal Datenbank fehlgeschlagen'); +$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die('Connection zur Vilesci Datenbank fehlgeschlagen'); + +$error_log=''; +$text = ''; +$anzahl_eingefuegt=0; +$anzahl_fehler=0; + +// *********************************** +// * VILESCI->PORTAL - Synchronisation +// *********************************** + +$qry = 'SELECT * FROM tbl_personlehrfachstudiensemester'; + +if($result = pg_query($conn_vilesci, $qry)) +{ + $text.="\n Sync Benutzerlvstudiensemester\n\n"; + while($row = pg_fetch_object($result)) + { + $obj = new benutzerlvstudiensemester($conn); + $obj->uid = $row->uid; + $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE ext_id=$row->lehrfach_nr"; + if($row1 = pg_fetch_object(pg_query($conn,$qry))) + { + $obj->lehrveranstaltung_id = $row1->lehrveranstaltung_id; + + $qry = "SELECT count(*) as anz FROM campus.tbl_benutzerlvstudiensemester WHERE + uid='".addslashes($row->uid)."' AND studiensemester_kurzbz='".addslashes($row->studiensemester_kurzbz)."' + AND lehrveranstaltung_id='".addslashes($row1->lehrveranstaltung_id)."';"; + + if($row1=pg_fetch_object(pg_query($conn,$qry))) + { + $new = ($row1->anz>0?false:true); + + if(!$obj->save($new)) + { + $anzahl_fehler++; + $error_log .= $obj->errormsg."\n"; + } + else + $anzahl_eingefuegt++; + } + else + { + $error_log.='Fehler beim Auslesen'; + $anzahl_fehler++; + } + } + else + { + $error_log .= 'Fehler beim auslesen der Lehrveranstaltung_nr\n'; + $anzahl_fehler++; + } + } +} +else + $error_log .= "PersonLVStudiensemester konnten nicht geladen werden\n"; +$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n"; +$text.="Anzahl der Fehler: $anzahl_fehler\n"; +?> + + + +Synchro - Vilesci -> Portal - BenutzerLVStudiensemester + + + + + + \ No newline at end of file diff --git a/admin/sync/sync_vilesci_portal_fachbereich.php b/admin/sync/sync_vilesci_portal_fachbereich.php index 70fa3e9d3..c6cbf4a2a 100644 --- a/admin/sync/sync_vilesci_portal_fachbereich.php +++ b/admin/sync/sync_vilesci_portal_fachbereich.php @@ -59,16 +59,12 @@ if($result = pg_query($conn_vilesci, $qry)) { $error=false; $fachbereich = new fachbereich($conn); - $fachbereich->fachbereich_id =$row->fachbereich_id; - $fachbereich->studiengang_kz =$row->studiengang_kz; - $fachbereich->bezeichnung =$row->bezeichnung; - $fachbereich->kurzbz =$row->kurzbz; - $fachbereich->farbe =$row->farbe; - //$fachbereich->insertamum =''; - $fachbereich->insertvon ='SYNC'; - //$fachbereich->updateamum =''; - //$fachbereich->updatevon =$row->updatevon; - $fachbereich->ext_id =$row->fachbereich_id; + + $fachbereich->studiengang_kz=$row->studiengang_kz; + $fachbereich->bezeichnung=$row->bezeichnung; + $fachbereich->fachbereich_kurzbz=$row->kurzbz; + $fachbereich->farbe=$row->farbe; + $fachbereich->ext_id=$row->fachbereich_id; $qry = "SELECT ext_id FROM tbl_fachbereich WHERE ext_id='$fachbereich->ext_id'"; if($result1 = pg_query($conn, $qry)) diff --git a/admin/sync/sync_vilesci_portal_feedback.php b/admin/sync/sync_vilesci_portal_feedback.php index 509db5639..0ebf73896 100644 --- a/admin/sync/sync_vilesci_portal_feedback.php +++ b/admin/sync/sync_vilesci_portal_feedback.php @@ -46,29 +46,39 @@ if($result = pg_query($conn_vilesci, $qry)) $text.="\n Sync Feedback\n\n"; while($row = pg_fetch_object($result)) { - $error=false; - $feedback = new feedback($conn); - $feedback->feedback_id = $row->feedback_id; - $feedback->betreff = $row->betreff; - $feedback->text = $row->text; - $feedback->datum = $row->datum; - $feedback->uid = $row->uid; - - $qry = "SELECT count(*) as anz FROM tbl_feedback WHERE feedback_id='$row->feedback_id'"; - if($row1 = pg_fetch_object(pg_query($conn, $qry))) - { - $feedback->new = ($row1->anz>0?false:true); + $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE ext_id='$row->lehrfach_nr'"; + if($row1 = pg_fetch_object(pg_query($conn,$qry))) + { + $error=false; + $feedback = new feedback($conn); + $feedback->feedback_id = $row->feedback_id; + $feedback->betreff = $row->betreff; + $feedback->text = $row->text; + $feedback->datum = $row->datum; + $feedback->uid = $row->uid; + $feedback->lehrveranstaltung_id = $row1->lehrveranstaltung_id; - if(!$feedback->save()) - { - $error_log.=$feedback->errormsg."\n"; - $anzahl_fehler++; + $qry = "SELECT count(*) as anz FROM campus.tbl_feedback WHERE feedback_id='$row->feedback_id'"; + if($row1 = pg_fetch_object(pg_query($conn, $qry))) + { + $feedback->new = ($row1->anz>0?false:true); + + if(!$feedback->save()) + { + $error_log.=$feedback->errormsg."\n"; + $anzahl_fehler++; + } + else + $anzahl_eingefuegt++; } else - $anzahl_eingefuegt++; + $error_log .= "Fehler beim ermitteln der UID\n"; } else - $error_log .= "Fehler beim ermitteln der UID\n"; + { + $anzahl_fehler++; + $error_log .= 'Lehrveranstaltung konnte nicht ermittelt werden mit LFnr:'.$row->lehrfach_nr; + } } } else diff --git a/admin/sync/sync_vilesci_portal_gruppe.php b/admin/sync/sync_vilesci_portal_gruppe.php index 8077febdc..a503589bb 100644 --- a/admin/sync/sync_vilesci_portal_gruppe.php +++ b/admin/sync/sync_vilesci_portal_gruppe.php @@ -56,11 +56,11 @@ if($result = pg_query($conn_vilesci, $qry)) $gruppe = new gruppe($conn); $gruppe->gruppe_kurzbz = $row->gruppe_kurzbz; $gruppe->studiengang_kz = $row->studiengang_kz; - $gruppe->bezeichnung = $row->bezeichnung; + $gruppe->bezeichnung = substr($row->bezeichnung,0,32); $gruppe->semester = $row->semester; - $gruppe->typ = $row->typ; - $gruppe->mailgrp_kurzbz = $row->mailgrp_kurzbz; - $gruppe->mailgrp_beschreibung = $row->mailgrp_beschreibung; + $gruppe->sort = $row->typ; + $gruppe->mailgrp = ($row->mailgrp_kurzbz!=''?true:false); + $gruppe->beschreibung = $row->mailgrp_beschreibung; $gruppe->sichtbar = ($row->sichtbar=='f'?true:false); $gruppe->aktiv = ($row->aktiv=='t'?true:false); $gruppe->updateamum = $row->updateamum; diff --git a/admin/sync/sync_vilesci_portal_lehreinheit.php b/admin/sync/sync_vilesci_portal_lehreinheit.php new file mode 100644 index 000000000..51b6a2dc2 --- /dev/null +++ b/admin/sync/sync_vilesci_portal_lehreinheit.php @@ -0,0 +1,342 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Synchronisiert die Lehreinheit von Vilesci DB in PORTAL DB + * Ablauf: + + LEHREINHEIT IST BEREITS EINGEFUEGT (IN SYNCTAB)? + JA + //WORKING + NEIN + GLEICHE LEHREINHEIT MIT ANDERER GRUPPE (ABER GLEICHER LEKTOR) BEREITS VORHANDEN? + JA + ZU SYNCTAB HINZUFUEGEN + GRUPPE HINZUFUEGEN + NEIN + LEHREINHEIT ANLEGEN + ZU SYNCTAB HINZUFUEGEN + GRUPPE HINZUFUEGEN + LEKTOR HINZUFUEGEN + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/fas/lehreinheit.class.php'); +require_once('../../include/fas/lehreinheitgruppe.class.php'); +require_once('../../include/fas/lehreinheitmitarbeiter.class.php'); +require_once('../../include/fas/lehrverband.class.php'); +require_once('../../include/fas/gruppe.class.php'); + +$conn=pg_connect(CONN_STRING) or die('Connection zur Portal Datenbank fehlgeschlagen'); +$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die('Connection zur Vilesci Datenbank fehlgeschlagen'); + +$error_log=''; +$text = ''; +$anzahl_eingefuegt=0; +$anzahl_fehler=0; + +function gruppezuweisen($id,$studiengang_kz, $semester, $verband, $gruppe, $einheit_kurzbz) +{ + global $error_log,$conn; + + if($einheit_kurzbz=='') + { + $lehrverband = new lehrverband($conn); + if(!$lehrverband->exists($studiengang_kz, $semester, $verband, $gruppe)) + { + $lehrverband->studiengang_kz=$studiengang_kz; + $lehrverband->semester=$semester; + $lehrverband->verband=$verband; + $lehrverband->gruppe=$gruppe; + if($lehrverband->save()) + $error=false; + else + { + $error_log .=$lehrverband->errormsg."\n"; + $error=true; + } + } + else + $error=false; + } + else + { + $gruppe2 = new gruppe($conn); + if(!$gruppe2->exists($einheit_kurzbz)) + { + $gruppe2->studiengang_kz=$studiengang_kz; + $gruppe2->semester=$semester; + $gruppe2->bezeichnung=''; + $gruppe2->typ=''; + $gruppe2->sichtbar=false; + $gruppe2->aktiv=false; + $gruppe2->gruppe_kurzbz=$einheit_kurzbz; + $gruppe2->mailgrp=false; + if($gruppe2->save(true)) + $error=false; + else + { + $error_log.=$gruppe2->errormsg."\n"; + $error=true; + } + } + else + $error=false; + } + + if(!$error) + { + //Gruppe Zuweisen + $gruppe1 = new lehreinheitgruppe($conn); + $gruppe1->lehreinheit_id = $id; + $gruppe1->studiengang_kz = $studiengang_kz; + $gruppe1->semester = $semester; + $gruppe1->verband = $verband; + $gruppe1->gruppe = $gruppe; + $gruppe1->gruppe_kurzbz = $einheit_kurzbz; + if($gruppe1->save(true)) + return true; + else + { + $error_log .= $gruppe1->errormsg."\n"; + return false; + } + } + else + return false; +} +// *********************************** +// * VILESCI->PORTAL - Synchronisation +// *********************************** +$error = false; + +$qry = 'SELECT * FROM tbl_lehrveranstaltung'; + +if($result = pg_query($conn_vilesci, $qry)) +{ + $text.="\n Sync Lehreinheiten\n\n"; + + //Schauen ob Sync table vorhanden ist + $qry = "SELECT 1 FROM tbl_synclehreinheit;"; + if(!pg_query($conn,$qry)) + { + //Die synctabelle wird benoetigt um die Verbindung der LehrveranstaltungsID(Vilesci) und der + //LehreinheitID(Portal) Festzuhalten um beim Syncro vom Stundenplan die richitge Zuordnung zu haben. + //-> kann nicht ueber ext_id vorgenommen werden da manche Lehrveranstaltungen keinen eigenen + // Lehreinheiteneintrag haben sondern nur die Gruppe zu einer anderen Lehreinheit hinzugefuegt wird. + //Sync Table anlegen + $qry = "CREATE TABLE tbl_synclehreinheit( + lehrveranstaltung_id_vilesci integer, + lehreinheit_id_portal integer, + PRIMARY KEY(lehrveranstaltung_id_vilesci, lehreinheit_id_portal) + );"; + if(!pg_query($conn,$qry)) + { + $error=true; + $error_log = 'SyncTable konnte nicht erstellt werden'; + $anzahl_fehler++; + } + } + + if(!$error) + { + while($row = pg_fetch_object($result)) + { + $error=false; + $lehreinheit = new lehreinheit($conn); + //Nachschauen ob diese Lehreinheit bereits synchronisiert wurde + $qry = "SELECT lehreinheit_id_portal FROM tbl_synclehreinheit WHERE lehrveranstaltung_id_vilesci='".addslashes($row->lehrveranstaltung_id)."'"; + + if($result1=pg_query($conn, $qry)) + { + if(pg_num_rows($result1)>0) //Lehreinheit ist bereits vorhanden + { + //BereitsSyncronisiert + //WORKING + } + else //Lehreinheit neu anlegen + { + $lehreinheit->ext_id = $row->lehrveranstaltung_id; + //Lehrveranstaltungsnummer aus LF ermitteln + $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung WHERE ext_id='".addslashes($row->lehrfach_nr)."'"; + if($row1 = pg_fetch_object(pg_query($conn, $qry))) + { + //Wenn alles gleich ist ausser die Gruppe dann wird nur die gruppe zur LE hinzugefuegt + $qry = "SELECT * FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter using(lehreinheit_id) WHERE + lehrveranstaltung_id='$row1->lehrveranstaltung_id' AND + studiensemester_kurzbz='$row->studiensemester_kurzbz' AND + lehrfach_id='$row->lehrfach_nr' AND + lehrform_kurzbz='$row->lehrform_kurzbz' AND + stundenblockung='$row->stundenblockung' AND + wochenrythmus='$row->wochenrythmus' AND + start_kw ".($row->start_kw!=''?"='$row->start_kw'":'is null')." AND + raumtyp='$row->raumtyp' AND + raumtypalternativ='$row->raumtypalternativ' AND + unr ".($row->unr!=''?"='$row->unr'":'is null')." AND + uid='$row->lektor'"; + if($result2 = pg_query($conn,$qry)) + { + if(pg_num_rows($result2)>0) + { + //Lehreinheit vorhanden. Es muss nur noch der Gruppeneintrag eingetragen werden + if($row_val = pg_fetch_object($result2)) + { + if(gruppezuweisen($row_val->lehreinheit_id, $row->studiengang_kz, $row->semester,$row->verband, $row->gruppe, $row->einheit_kurzbz)) + { + $qry = "INSERT INTO tbl_synclehreinheit(lehrveranstaltung_id_vilesci, lehreinheit_id_portal) + VALUES('".$row->lehrveranstaltung_id."','".$row_val->lehreinheit_id."');"; + if(pg_query($conn,$qry)) + { + $anzahl_eingefuegt++; + } + } + else + { + $anzahl_fehler++; + } + } + else + { + $error_log .= 'Fehler beim Select: '.$qry."\n"; + $anzahl_fehler++; + } + } + else + { + //Neue Lehreinheit anlegen + $lehreinheit->lehrveranstaltung_id = $row1->lehrveranstaltung_id; + $lehreinheit->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $lehreinheit->lehrfach_id = $row->lehrfach_nr; + $lehreinheit->lehrform_kurzbz = $row->lehrform_kurzbz; + $lehreinheit->stundenblockung = $row->stundenblockung; + $lehreinheit->wochenrythmus = $row->wochenrythmus; + $lehreinheit->start_kw = $row->start_kw; + $lehreinheit->raumtyp = $row->raumtyp; + $lehreinheit->raumtypalternativ = $row->raumtypalternativ; + $lehreinheit->lehre = true; + $lehreinheit->anmerkung = $row->anmerkung; + $lehreinheit->unr = $row->unr; + $lehreinheit->ext_id = $row->lehrveranstaltung_id; + + //Datensatz Speichern + pg_query($conn,'BEGIN'); + + if(!$lehreinheit->save(true)) + { + $error_log .= $lehreinheit->errormsg."\n"; + $anzahl_fehler++; + } + else + { + //ID aus der Sequenz auslesen + $qry = "SELECT currval('lehre.tbl_lehreinheit_lehreinheit_id_seq') as id"; + if($row_val = pg_fetch_object(pg_query($conn, $qry))) + { + //Beide IDS in die SyncTab einfuegen + $qry = "INSERT INTO tbl_synclehreinheit(lehrveranstaltung_id_vilesci, lehreinheit_id_portal) + VALUES('".$row->lehrveranstaltung_id."','".$row_val->id."');"; + if(pg_query($conn,$qry)) + { + if(gruppezuweisen($row_val->id, $row->studiengang_kz, $row->semester, $row->verband, $row->gruppe, $row->einheit_kurzbz)) + { + //Lektor Zuweisen + $lektor = new lehreinheitmitarbeiter($conn); + $lektor->lehreinheit_id = $row_val->id; + $lektor->uid = $row->lektor; + $lektor->semesterstunden = $row->semesterstunden; + $lektor->planstunden = $row->semesterstunden; + $lektor->stundensatz = ''; + $lektor->faktor = 1; + $lektor->anmerkung = ''; + + if($lektor->save(true)) + { + pg_query($conn,'COMMIT'); + $anzahl_eingefuegt++; + } + else + { + pg_query($conn,'ROLLBACK'); + $error_log .= $lektor->errormsg."\n"; + $anzahl_fehler++; + } + } + else + { + $anzahl_fehler++; + pg_query($conn,'ROLLBACK'); + + } + } + else + { + pg_query($conn,'ROLLBACK'); + $anzahl_fehler++; + $error_log .='Fehler beim Insert in die SyncTab '.$qry."\n"; + } + } + else + { + pg_query($conn,'ROLLBACK'); + $anzahl_fehler++; + $error_log .= 'Fehler beim Auslesen der Sequence: '.$qry."\n"; + } + } + } + } + else + { + $anzahl_fehler++; + $error_log.='Fehler beim Select: '.$qry."\n"; + } + } + else + { + $error_log .= "Lehrveranstaltungsnummer zu Lehrfach $row->lehrfach_nr konnte nicht ermittelt werden\n"; + $anzahl_fehler++; + $error=true; + } + } + } + else + $error_log .= "Fehler beim Auslesen der Lehreinheiten: $qry\n"; + } + } +} +else + $error_log .= "Lehrformen konnten nicht geladen werden\n"; +$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n"; +$text.="Anzahl der Fehler: $anzahl_fehler\n"; +?> + + + +Synchro - Vilesci -> Portal - Lehreinheiten + + + + + + \ No newline at end of file diff --git a/admin/sync/sync_vilesci_portal_lehrfach.php b/admin/sync/sync_vilesci_portal_lehrfach.php index 65778dd2e..2635965d0 100644 --- a/admin/sync/sync_vilesci_portal_lehrfach.php +++ b/admin/sync/sync_vilesci_portal_lehrfach.php @@ -39,7 +39,10 @@ $anzahl_fehler=0; // *********************************** //Mitarbeiter -$qry = 'Select * FROM tbl_lehrfach'; +$qry = 'SELECT lehrfach_nr, tbl_lehrfach.studiengang_kz as studiengang_kz, tbl_fachbereich.kurzbz as fachbereich_kurzbz, + tbl_lehrfach.kurzbz as kurzbz, tbl_lehrfach.bezeichnung as bezeichnung, tbl_lehrfach.farbe as farbe, + tbl_lehrfach.aktiv as aktiv, tbl_lehrfach.semester as semester, tbl_lehrfach.sprache as sprache + FROM tbl_lehrfach LEFT JOIN tbl_fachbereich using(fachbereich_id)'; if($result = pg_query($conn_vilesci, $qry)) { @@ -49,9 +52,9 @@ if($result = pg_query($conn_vilesci, $qry)) $error=false; $lf = new lehrfach($conn); - $lf->lehrfach_nr = $row->lehrfach_nr; + $lf->lehrfach_id = $row->lehrfach_nr; $lf->studiengang_kz = $row->studiengang_kz; - $lf->fachbereich_id = $row->fachbereich_id; + $lf->fachbereich_kurzbz = $row->fachbereich_kurzbz; $lf->kurzbz = $row->kurzbz; $lf->bezeichnung = $row->bezeichnung; $lf->farbe = $row->farbe; @@ -59,7 +62,7 @@ if($result = pg_query($conn_vilesci, $qry)) $lf->semester = $row->semester; $lf->sprache = ($row->sprache!=''?$row->sprache:'German'); - $qry = "SELECT count(*) as anz FROM tbl_lehrfach WHERE lehrfach_nr='$row->lehrfach_nr'"; + $qry = "SELECT count(*) as anz FROM lehre.tbl_lehrfach WHERE lehrfach_id='$row->lehrfach_nr'"; if($row1 = pg_fetch_object(pg_query($conn, $qry))) { if($row1->anz>0) //wenn dieser eintrag schon vorhanden ist diff --git a/admin/sync/sync_vilesci_portal_lehrform.php b/admin/sync/sync_vilesci_portal_lehrform.php index da72d4ba1..77aa836b6 100644 --- a/admin/sync/sync_vilesci_portal_lehrform.php +++ b/admin/sync/sync_vilesci_portal_lehrform.php @@ -53,8 +53,7 @@ if($result = pg_query($conn_vilesci, $qry)) $lehrform->bezeichnung = $row->bezeichnung; $lehrform->verplanen = ($row->verplanen=='t'?true:false); - $qry = "SELECT count(*) as anz FROM tbl_lehrform WHERE lehrform_kurzbz='$row->lehrform_kurzbz'"; - + $qry = "SELECT count(*) as anz FROM lehre.tbl_lehrform WHERE lehrform_kurzbz='$row->lehrform_kurzbz'"; if($row = pg_fetch_object(pg_query($conn, $qry))) { @@ -69,10 +68,10 @@ if($result = pg_query($conn_vilesci, $qry)) $anzahl_fehler++; } else - $anzahl_fehler++; + $anzahl_eingefuegt++; } else - $error_log .= "damm\n"; + $error_log .= "Fehler bei Select: $qry\n"; } } else diff --git a/admin/sync/sync_vilesci_portal_personlvstudiensemester.php b/admin/sync/sync_vilesci_portal_personlvstudiensemester.php index 8083aea5b..3522af90e 100644 --- a/admin/sync/sync_vilesci_portal_personlvstudiensemester.php +++ b/admin/sync/sync_vilesci_portal_personlvstudiensemester.php @@ -24,7 +24,7 @@ * */ require_once('../../vilesci/config.inc.php'); -require_once('../../include/fas/personlvstudiensemester.class.php'); +require_once('../../include/fas/benutzerlvstudiensemester.class.php'); $conn=pg_connect(CONN_STRING) or die('Connection zur Portal Datenbank fehlgeschlagen'); $conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die('Connection zur Vilesci Datenbank fehlgeschlagen'); @@ -42,10 +42,10 @@ $qry = 'SELECT * FROM tbl_personlehrfachstudiensemester'; if($result = pg_query($conn_vilesci, $qry)) { - $text.="\n Sync Personlvstudiensemester\n\n"; + $text.="\n Sync Benutzerlvstudiensemester\n\n"; while($row = pg_fetch_object($result)) { - $obj = new personlvstudiensemester($conn); + $obj = new benutzerlvstudiensemester($conn); $obj->uid = $row->uid; $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; $qry = "SELECT lehrveranstaltung_nr FROM tbl_lehrveranstaltung WHERE ext_id=$row->lehrfach_nr"; @@ -53,7 +53,7 @@ if($result = pg_query($conn_vilesci, $qry)) { $obj->lehrveranstaltung_nr = $row1->lehrveranstaltung_nr; - $qry = "SELECT count(*) as anz FROM tbl_personlvstudiensemester WHERE + $qry = "SELECT count(*) as anz FROM tbl_benutzerlvstudiensemester WHERE uid='".addslashes($row->uid)."' AND studiensemester_kurzbz='".addslashes($row->studiensemester_kurzbz)."' AND lehrveranstaltung_nr='".addslashes($row1->lehrveranstaltung_nr)."';"; @@ -90,7 +90,7 @@ $text.="Anzahl der Fehler: $anzahl_fehler\n"; -Synchro - Vilesci -> Portal - PersonLVStudiensemester +Synchro - Vilesci -> Portal - BenutzerLVStudiensemester diff --git a/admin/sync/sync_vilesci_portal_reservierung.php b/admin/sync/sync_vilesci_portal_reservierung.php index 360d4673f..b92513f5b 100644 --- a/admin/sync/sync_vilesci_portal_reservierung.php +++ b/admin/sync/sync_vilesci_portal_reservierung.php @@ -59,7 +59,7 @@ if($result = pg_query($conn_vilesci, $qry)) $reservierung->gruppe = $row->gruppe; $reservierung->gruppe_kurzbz = $row->einheit_kurzbz; - $qry = "SELECT count(*) as anz FROM tbl_reservierung where reservierung_id='".addslashes($row->reservierung_id)."'"; + $qry = "SELECT count(*) as anz FROM campus.tbl_reservierung where reservierung_id='".addslashes($row->reservierung_id)."'"; if($row1 =pg_fetch_object(pg_query($conn,$qry))) { diff --git a/admin/sync/sync_vilesci_portal_stunde.php b/admin/sync/sync_vilesci_portal_stunde.php index a03e5ee05..86beb42a8 100644 --- a/admin/sync/sync_vilesci_portal_stunde.php +++ b/admin/sync/sync_vilesci_portal_stunde.php @@ -53,7 +53,7 @@ if($result = pg_query($conn_vilesci, $qry)) $stunde->beginn = $row->beginn; $stunde->ende = $row->ende; - $qry = "SELECT count(*) as anz FROM tbl_stunde WHERE stunde='$row->stunde'"; + $qry = "SELECT count(*) as anz FROM lehre.tbl_stunde WHERE stunde='$row->stunde'"; if($row1 = pg_fetch_object(pg_query($conn, $qry))) { $stunde->new = ($row1->anz>0?false:true); diff --git a/admin/sync/sync_vilesci_portal_stundenplan.php b/admin/sync/sync_vilesci_portal_stundenplan.php new file mode 100644 index 000000000..1c9e6bb6f --- /dev/null +++ b/admin/sync/sync_vilesci_portal_stundenplan.php @@ -0,0 +1,129 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Synchronisiert tbl_personlvstudiensemester von Vilesci DB in PORTAL DB + * + */ +require_once('../../vilesci/config.inc.php'); + +$conn=pg_connect(CONN_STRING) or die('Connection zur Portal Datenbank fehlgeschlagen'); +$conn_vilesci=pg_connect(CONN_STRING_VILESCI) or die('Connection zur Vilesci Datenbank fehlgeschlagen'); + +$error_log=''; +$text = ''; +$anzahl_eingefuegt=0; +$anzahl_fehler=0; + +// *********************************** +// * VILESCI->PORTAL - Synchronisation +// *********************************** +if(isset($_GET['dev'])) + $dev=true; +else + $dev=false; + +if($dev) + $qry = "SELECT * FROM tbl_stundenplandev limit 200"; +else + $qry = "SELECT * FROM tbl_stundenplan limit 200"; + +if($result = pg_query($conn_vilesci, $qry)) +{ + if(isset($_GET['dev'])) + $text.="\n Sync StundenplanDEV\n\n"; + else + $text.="\n Sync Stundenplan\n\n"; + + while($row = pg_fetch_object($result)) + { + if($dev) + $qry = "INSERT INTO lehre.tbl_stundenplandev(stundenplandev_id,"; + else + $qry = 'INSERT INTO campus.tbl_stundenplan(stundenplan_id,'; + + $qry.='unr, uid, datum, stunde, ort_kurzbz, gruppe_kurzbz, titel, + anmerkung, fix, updateamum, updatevon, lehreinheit_id, + studiengang_kz, semester, verband, gruppe) VALUES('; + + if($dev) + $qry.="'".$row->stundenplandev_id."'"; + else + $qry.="'".$row->stundenplan_id."'"; + + //Lehreinheit_id ermitteln + $qry_le = "SELECT lehreinheit_id_portal FROM tbl_synclehreinheit WHERE lehrveranstaltung_id_vilesci='".addslashes($row->lehrveranstaltung_id)."'"; + if($row_le=pg_fetch_object(pg_query($conn,$qry_le))) + { + $lehreinheit_id = $row_le->lehreinheit_id_portal; + } + else + { + $lehreinheit_id=''; + } + + $qry.=",'".addslashes($row->unr)."','". + addslashes($row->uid)."','". + addslashes($row->datum)."','". + addslashes($row->stunde)."','". + addslashes($row->ort_kurzbz)."',". + ($row->einheit_kurzbz!=''?"'".addslashes($row->einheit_kurzbz)."'":'null').",". + ($row->titel!=''?"'".addslashes($row->titel)."'":'null').",". + ($row->anmerkung!=''?"'".addslashes($row->anmerkung)."'":'null').",". + ($row->fix=='t'?'true':'false').",'". + addslashes($row->updateamum)."','". + addslashes($row->updatevon)."',". + ($lehreinheit_id!=''?"'".addslashes($lehreinheit_id)."'":'null').",'". + addslashes($row->studiengang_kz)."','". + addslashes($row->semester)."','". + ($row->verband!=''?addslashes($row->verband):' ')."','". + (($row->gruppe!='' && $row->gruppe!=0)?addslashes($row->gruppe):' ')."');"; + if(pg_query($conn,$qry)) + { + $anzahl_eingefuegt++; + } + else + { + $anzahl_fehler++; + $error_log.= 'Fehler beim Einfuegen: '.$qry; + } + } +} +else + $error_log .= "Stundenplan konnten nicht geladen werden\n"; +$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n"; +$text.="Anzahl der Fehler: $anzahl_fehler\n"; +?> + + + +Synchro - Vilesci -> Portal - Stundenplan + + + + + + \ No newline at end of file diff --git a/admin/sync/sync_vilesci_portal_zeitwunsch.php b/admin/sync/sync_vilesci_portal_zeitwunsch.php index edff846ea..d7b7906ef 100644 --- a/admin/sync/sync_vilesci_portal_zeitwunsch.php +++ b/admin/sync/sync_vilesci_portal_zeitwunsch.php @@ -51,7 +51,7 @@ if($result = pg_query($conn_vilesci, $qry)) $zw->tag = $row->tag; $zw->gewicht = $row->gewicht; - $qry ="SELECT count(*) as anz FROM tbl_zeitwunsch where uid='".addslashes($row->uid)."' AND stunde='".addslashes($row->stunde)."' AND tag='".addslashes($row->tag)."';"; + $qry ="SELECT count(*) as anz FROM campus.tbl_zeitwunsch where uid='".addslashes($row->uid)."' AND stunde='".addslashes($row->stunde)."' AND tag='".addslashes($row->tag)."';"; if($row = pg_fetch_object(pg_query($conn, $qry))) { $zw->new = ($row->anz>0?false:true); diff --git a/include/fas/benutzerberechtigung.class.php b/include/fas/benutzerberechtigung.class.php index bf9d7c360..27757a38b 100644 --- a/include/fas/benutzerberechtigung.class.php +++ b/include/fas/benutzerberechtigung.class.php @@ -30,7 +30,7 @@ class benutzerberechtigung //Tabellenspalten var $benutzerberechtigung_id; // int var $art; // varchar(16) - var $fachbereich_id; // int + var $fachbereich_kurzbz; // int var $studiengang_kz; // int var $berechtigung_kurzbz; // varchar(16) var $uid; // varchar(16) @@ -86,9 +86,9 @@ class benutzerberechtigung return false; } - if($this->fachbereich_id!='' && !is_numeric($this->fachbereich_id)) + if(strlen($this->fachbereich_kurzbz)>16) { - $this->errormsg = 'Fachbereich_id muss eine gueltige Zahl sein'; + $this->errormsg = 'Fachbereich_id darf nicht laenger als 16 Zeichen sein'; return false; } if($this->studiengang_kz!='' && !is_numeric($this->studiengang_kz)) @@ -145,10 +145,10 @@ class benutzerberechtigung if($this->new) { - $qry = 'INSERT INTO tbl_benutzerberechtigung (art, fachbereich_id, studiengang_kz, berechtigung_kurzbz, + $qry = 'INSERT INTO tbl_benutzerberechtigung (art, fachbereich_kurzbz, studiengang_kz, berechtigung_kurzbz, uid, studiensemester_kurzbz, start, ende) VALUES('.$this->addslashes($this->art).','. - $this->addslashes($this->fachbereich_id).','. + $this->addslashes($this->fachbereich_kurzbz).','. $this->addslashes($this->studiengang_kz).','. $this->addslashes($this->berechtigung_kurzbz).','. $this->addslashes($this->uid).','. @@ -160,7 +160,7 @@ class benutzerberechtigung { $qry = 'UPDATE tbl_benutzerberechtigung SET'. ' art='.$this->addslashes($this->art).','. - ' fachbereich_id='.$this->addslashes($this->fachbereich_id).','. + ' fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).','. ' studiengang_kz='.$this->addslashes($this->studiengang_kz).','. ' berechtigung_kurzbz='.$this->addslashes($this->berechtigung_kurzbz).','. ' uid='.$this->addslashes($this->uid).','. diff --git a/include/fas/personlvstudiensemester.class.php b/include/fas/benutzerlvstudiensemester.class.php similarity index 87% rename from include/fas/personlvstudiensemester.class.php rename to include/fas/benutzerlvstudiensemester.class.php index 73825d1d0..ca6126441 100644 --- a/include/fas/personlvstudiensemester.class.php +++ b/include/fas/benutzerlvstudiensemester.class.php @@ -20,17 +20,17 @@ * Rudolf Hangl . */ -class personlvstudiensemester +class benutzerlvstudiensemester { var $conn; // resource DB-Handle var $errormsg; // string var $new; // boolean - var $personlvstudiensemester = array(); // personlvstudiensemester Objekt + var $benutzerlvstudiensemester = array(); // benutzerlvstudiensemester Objekt //Tabellenspalten var $uid; // varchar(16) var $studiensemester_kurzbz; // varchar(16) - var $lehrveranstaltung_nr; // integer + var $lehrveranstaltung_id; // integer // ************************************************************************* // * Konstruktor - Uebergibt die Connection und laedt optional eine Zuteilung @@ -41,7 +41,7 @@ class personlvstudiensemester // * $unicode Gibt an ob die Daten mit UNICODE Codierung // * oder LATIN9 Codierung verarbeitet werden sollen // ************************************************************************* - function personlvstudiensemester($conn, $uid=null, $studiensemester_kurzbz=null, $lehrveranstaltung_nr=null, $unicode=false) + function benutzerlvstudiensemester($conn, $uid=null, $studiensemester_kurzbz=null, $lehrveranstaltung_id=null, $unicode=false) { $this->conn = $conn; @@ -58,15 +58,15 @@ class personlvstudiensemester else $this->new = true; - if($uid!=null && $studiensemester_kurzbz!=null && $lehrveranstaltung_nr!=null) - $this->load($uid, $studiensemester_kurzbz, $lehrveranstaltung_nr); + if($uid!=null && $studiensemester_kurzbz!=null && $lehrveranstaltung_id!=null) + $this->load($uid, $studiensemester_kurzbz, $lehrveranstaltung_id); } // ********************************************************* // * Laedt eine Zuteilung // * @param $uid, $studiensemester_kurzbz, $lehrveranstaltung_nr // ********************************************************* - function load($uid, $studiensemester_kurzbz, $lehrveranstaltung_nr) + function load($uid, $studiensemester_kurzbz, $lehrveranstaltung_id) { $this->errormsg = 'Not implemented'; return false; @@ -89,7 +89,7 @@ class personlvstudiensemester $this->errormsg = 'Studiensemester_kurzbz darf nicht laenger als 16 Zeichen sein'; return false; } - if(!is_numeric($this->lehrveranstaltung_nr)) + if(!is_numeric($this->lehrveranstaltung_id)) { $this->errormsg = 'Lehrveranstaltungsnummer muss eine gueltige Zahl sein'; return false; @@ -125,10 +125,10 @@ class personlvstudiensemester if($this->new) { - $qry = 'INSERT INTO tbl_personlvstudiensemester (uid, studiensemester_kurzbz, lehrveranstaltung_nr) + $qry = 'INSERT INTO campus.tbl_benutzerlvstudiensemester (uid, studiensemester_kurzbz, lehrveranstaltung_id) VALUES('.$this->addslashes($this->uid).','. $this->addslashes($this->studiensemester_kurzbz).','. - $this->addslashes($this->lehrveranstaltung_nr).');'; + $this->addslashes($this->lehrveranstaltung_id).');'; } else { @@ -144,7 +144,7 @@ class personlvstudiensemester } else { - $this->errormsg = 'Fehler beim Speichern der PersonLVStudiensemester:'.$qry; + $this->errormsg = 'Fehler beim Speichern der BenutzerLVStudiensemester:'.$qry; return false; } } diff --git a/include/fas/fachbereich.class.php b/include/fas/fachbereich.class.php index 444cb430a..2483d23fd 100644 --- a/include/fas/fachbereich.class.php +++ b/include/fas/fachbereich.class.php @@ -19,28 +19,18 @@ * Andreas Oesterreicher and * Rudolf Hangl . */ -/** - * Klasse fachbereich (FAS-Online) - * @create 04-12-2006 - */ - class fachbereich { var $conn; // @var resource DB-Handle var $new; // @var boolean - var $errormsg; // @var string + var $errormsg; // @var string var $result = array(); // @var fachbereich Objekt //Tabellenspalten - var $fachbereich_id; // @var integer + var $fachbereich_kurzbz;// @var integer var $bezeichnung; // @var string - var $kurzbz; // @var string - var $farbe; // @var string + var $farbe; // @var string var $studiengang_kz; // @var integer - var $updateamum; // @var timestamp - var $updatevon=0; // @var string - var $insertamum; // @var timestamp - var $insertvon=0; // @var string var $ext_id; // @var bigint @@ -49,11 +39,25 @@ class fachbereich * @param $conn Connection zur DB * $fachb_id ID des zu ladenden Fachbereiches */ - function fachbereich($conn, $fachb_id=null) + function fachbereich($conn, $fachbereich_kurzbz=null, $unicode=false) { $this->conn = $conn; - if($fachb_id != null) - $this->load($fachb_id); + + if($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry = "SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + return false; + } + else + $this->new = true; + + if($fachbereich_kurzbz != null) + $this->load($fachbereich_kurzbz); } /** @@ -90,15 +94,15 @@ class fachbereich * @param $fachb_id ID des zu ladenden Fachbereiches * @return true wenn ok, false im Fehlerfall */ - function load($fachb_id) + function load($fachbereich_kurzbz) { - if(!is_numeric($fachb_id) || $fachb_id == '') + if(!is_numeric($fachbereich_kurzbz) || $fachbereich_kurzbz == '') { - $this->errormsg = 'fachb_id muss eine gueltige Zahl sein'; + $this->errormsg = 'fachbereich_id muss eine gueltige Zahl sein'; return false; } - $qry = "SELECT * FROM tbl_fachbereich WHERE fachbereich_pk = '$fachb_id';"; + $qry = "SELECT * FROM tbl_fachbereich WHERE fachbereich_kurzbz = '$fachbereich_kurzbz';"; if(!$res = pg_query($this->conn, $qry)) { @@ -108,7 +112,7 @@ class fachbereich if($row=pg_fetch_object($res)) { - $this->fachbereich_id = $row->fachbereich_pk; + $this->fachbereich_kurzbz = $row->fachbereich_kurzbz; $this->erhalter_id = $row->erhalter_fk; $this->name = $row->name; $this->updateamum = $row->creationdate; @@ -128,7 +132,7 @@ class fachbereich * @param $fachb_id id des Datensatzes der geloescht werden soll * @return true wenn ok, false im Fehlerfall */ - function delete($fachb_id) + function delete($fachbereich_kurzbz) { $this->errormsg = 'Noch nicht implementiert'; return false; @@ -141,19 +145,15 @@ class fachbereich * Prueft die Gueltigkeit der Variablen * @return true wenn ok, false im Fehlerfall */ - function checkvars() - { - $this->bezeichnung = str_replace("'",'´',$this->bezeichnung); - $this->kurzbz = str_replace("'",'´',$this->kurzbz); - - + function validate() + { //Laenge Pruefen if(strlen($this->bezeichnung)>128) { $this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei $this->ext_id - $this->bezeichnung"; return false; } - if(strlen($this->kurzbz)>16) + if(strlen($this->fachbereich_kurzbz)>16) { $this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei $this->ext_id - $this->kurzbz"; return false; @@ -168,75 +168,33 @@ class fachbereich function save() { //Gueltigkeit der Variablen pruefen - if(!$this->checkvars()) + if(!$this->validate()) return false; if($this->new) - { - //Pruefen ob fachbereich_id eine gueltige Zahl ist - if(!is_numeric($this->fachbereich_id) || $this->fachbereich_id == '') - { - $this->errormsg = 'fachbereich_id muss eine gueltige Zahl sein'; - return false; - } + { //Neuen Datensatz anlegen - $qry = 'INSERT INTO tbl_fachbereich (fachbereich_id, bezeichnung, kurzbz, farbe, ext_id, insertamum, insertvon, - updateamum, updatevon, studiengang_kz) VALUES ('. - $this->addslashes($this->fachbereich_id).', '. + $qry = 'INSERT INTO tbl_fachbereich (fachbereich_kurzbz, bezeichnung, farbe, ext_id, studiengang_kz) VALUES ('. + $this->addslashes($this->fachbereich_kurzbz).', '. $this->addslashes($this->bezeichnung).', '. - $this->addslashes($this->kurzbz).', '. $this->addslashes($this->farbe).', '. $this->addslashes($this->ext_id).', '. - $this->addslashes($this->insertamum).', '. - $this->addslashes($this->insertvon).', '. - $this->addslashes($this->updateamum).', '. - $this->addslashes($this->updatevon).', '. $this->addslashes($this->studiengang_kz).');'; } else { - //bestehenden Datensatz akualisieren - - //Pruefen ob fachbereich_id eine gueltige Zahl ist - if(!is_numeric($this->fachbereich_id) || $this->fachbereich_id == '') - { - $this->errormsg = 'fachbereich_id muss eine gueltige Zahl sein'; - return false; - } - + //bestehenden Datensatz akualisieren $qry = 'UPDATE tbl_fachbereich SET '. - 'fachbereich_id='.$this->addslashes($this->fachbereich_id).', '. 'bezeichnung='.$this->addslashes($this->bezeichnung).', '. - 'kurzbz='.$this->addslashes($this->kurzbz).', '. 'farbe='.$this->addslashes($this->farbe).', '. 'ext_id='.$this->addslashes($this->ext_id).', '. - 'insertamum='.$this->addslashes($this->insertamum).', '. - 'insertvon='.$this->addslashes($this->insertvon).', '. - 'updateamum='.$this->addslashes($this->updateamum).', '. - 'updatevon='.$this->addslashes($this->updatevon).', '. 'studiengang_kz='.$this->addslashes($this->studiengang_kz).' '. - 'WHERE fachbereich_id = '.$this->addslashes($this->fachbereich_id).';'; + 'WHERE fachbereich_kurzbz = '.$this->addslashes($this->fachbereich_kurzbz).';'; } if(pg_query($this->conn, $qry)) { - /*//Log schreiben - $sql = $qry; - $qry = "SELECT nextval('log_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; - return false; - } - - $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; - return false; - }*/ + //Log schreiben return true; } else diff --git a/include/fas/feedback.class.php b/include/fas/feedback.class.php index e061f1a85..320ef3e32 100644 --- a/include/fas/feedback.class.php +++ b/include/fas/feedback.class.php @@ -33,6 +33,7 @@ class feedback var $text; // text var $datum; // date var $uid; // varchar(16) + var $lehrveranstaltung_id; // integer // ************************************************************************* // * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform @@ -86,6 +87,11 @@ class feedback $this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein'; return false; } + if(!is_numeric($this->lehrveranstaltung_id)) + { + $this->errormsg = 'Lehrveranstaltung_id muss eine gueltige Zahl sein'; + return false; + } return true; } @@ -116,16 +122,17 @@ class feedback if($this->new) { //ToDo: Feedback_ID wieder entfernen und per Seq fuellen - $qry = 'INSERT INTO tbl_feedback (feedback_id, betreff, text, datum, uid) + $qry = 'INSERT INTO campus.tbl_feedback (feedback_id, betreff, text, datum, uid, lehrveranstaltung_id) VALUES('.$this->addslashes($this->feedback_id).','. $this->addslashes($this->betreff).','. $this->addslashes($this->text).','. $this->addslashes($this->datum).','. - $this->addslashes($this->uid).');'; + $this->addslashes($this->uid).','. + $this->addslashes($this->lehrveranstaltung_id).');'; } else { - $qry = 'UPDATE tbl_feedback SET'. + $qry = 'UPDATE campus.tbl_feedback SET'. ' betreff='.$this->addslashes($this->betreff).','. ' text='.$this->addslashes($this->text).','. ' datum='.$this->addslashes($this->datum).','. diff --git a/include/fas/gruppe.class.php b/include/fas/gruppe.class.php index 7b19bf032..7cccadbb8 100644 --- a/include/fas/gruppe.class.php +++ b/include/fas/gruppe.class.php @@ -28,13 +28,13 @@ class gruppe var $gruppen = array(); // gruppen Objekt //Tabellenspalten - var $gruppe_kurzbz; // varchar(10) + var $gruppe_kurzbz; // varchar(16) var $studiengang_kz; // integer - var $bezeichnung; // varchar(64) + var $bezeichnung; // varchar(32) var $semester; // smallint - var $typ; // smallint - var $mailgrp_kurzbz; // varchar(16) - var $mailgrp_beschreibung; // varchar(64) + var $sort; // smallint + var $mailgrp; // boolean + var $beschreibung; // varchar(128) var $sichtbar; // boolean var $aktiv; // boolean var $updateamum; // timestamp @@ -68,6 +68,29 @@ class gruppe $this->load($gruppe_kurzbz); } + // **************************************** + // * Prueft ob bereits eine Gruppe mit der + // * uebergebenen Kurzbezeichnung existiert + // * @param gruppe_kurzbz + // **************************************** + function exists($gruppe_kurzbz) + { + $qry = "SELECT count(*) as anzahl FROM tbl_gruppe WHERE gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'"; + + if($row = pg_fetch_object(pg_query($this->conn,$qry))) + { + if($row->anzahl>0) + return true; + else + return false; + } + else + { + $this->errormsg = 'Fehler bei einer Abfrage: '.$qry; + return false; + } + } + // ********************************************************* // * Laedt die Gruppe // * @param gruppe_kurzbz @@ -84,9 +107,9 @@ class gruppe // ******************************************* function validate() { - if(strlen($this->gruppe_kurzbz)>10) + if(strlen($this->gruppe_kurzbz)>16) { - $this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 10 Zeichen sein'; + $this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 16 Zeichen sein'; return false; } if($this->gruppe_kurzbz=='') @@ -99,9 +122,9 @@ class gruppe $this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein'; return false; } - if(strlen($this->bezeichnung)>64) + if(strlen($this->bezeichnung)>32) { - $this->errormsg = 'Bezeichnung darf nicht laenger als 64 Zeichen sein'; + $this->errormsg = 'Bezeichnung darf nicht laenger als 32 Zeichen sein'; return false; } if($this->semester!='' && !is_numeric($this->semester)) @@ -109,19 +132,19 @@ class gruppe $this->errormsg = 'Semester muss eine gueltige Zahl sein'; return false; } - if($this->typ!='' && !is_numeric($this->typ)) + if($this->sort!='' && !is_numeric($this->sort)) { $this->errormsg = 'Typ muss eine gueltige Zahl sein'; return false; } - if(strlen($this->mailgrp_kurzbz)>16) + if(!is_bool($this->mailgrp)) { - $this->errormsg = 'Mailgrp_kurzbz darf nicht laenger als 16 Zeichen sein'; + $this->errormsg = 'Mailgrp muss ein boolscher wert sein'; return false; } - if(strlen($this->mailgrp_beschreibung)>64) + if(strlen($this->beschreibung)>128) { - $this->errormsg = 'Mailgrp_beschreibung darf nicht laenger als 64 Zeichen sein'; + $this->errormsg = 'Beschreibung darf nicht laenger als 128 Zeichen sein'; return false; } if(!is_bool($this->sichtbar)) @@ -176,16 +199,16 @@ class gruppe if($new) { - $qry = 'INSERT INTO tbl_gruppe (gruppe_kurzbz, studiengang_kz, bezeichnung, semester, typ, - mailgrp_kurzbz, mailgrp_beschreibung, sichtbar, aktiv, + $qry = 'INSERT INTO tbl_gruppe (gruppe_kurzbz, studiengang_kz, bezeichnung, semester, sort, + mailgrp, beschreibung, sichtbar, aktiv, updateamum, updatevon, insertamum, insertvon) VALUES('.$this->addslashes($this->gruppe_kurzbz).','. $this->addslashes($this->studiengang_kz).','. $this->addslashes($this->bezeichnung).','. $this->addslashes($this->semester).','. - $this->addslashes($this->typ).','. - $this->addslashes($this->mailgrp_kurzbz).','. - $this->addslashes($this->mailgrp_beschreibung).','. + $this->addslashes($this->sort).','. + ($this->mailgrp?'true':'false').','. + $this->addslashes($this->beschreibung).','. ($this->sichtbar?'true':'false').','. ($this->aktiv?'true':'false').','. $this->addslashes($this->updateamum).','. @@ -199,9 +222,9 @@ class gruppe ' studiengang_kz='.$this->addslashes($this->studiengang_kz).','. ' bezeichnung='.$this->addslashes($this->bezeichnung).','. ' semester='.$this->addslashes($this->semester).','. - ' typ='.$this->addslashes($this->typ).','. - ' mailgrp_kurzbz='.$this->addslashes($this->mailgrp_kurzbz).','. - ' mailgrp_beschreibung='.$this->addslashes($this->mailgrp_beschreibung).','. + ' sort='.$this->addslashes($this->sort).','. + ' mailgrp='.($this->mailgrp?'true':'false').','. + ' beschreibung='.$this->addslashes($this->beschreibung).','. ' sichtbar='.($this->sichtbar?'true':'false').','. ' aktiv='.($this->aktiv?'true':'false').','. ' updateamum='.$this->addslashes($this->updateamum).','. diff --git a/include/fas/lehreinheit.class.php b/include/fas/lehreinheit.class.php index b7077575a..810eeb158 100644 --- a/include/fas/lehreinheit.class.php +++ b/include/fas/lehreinheit.class.php @@ -1,1588 +1,261 @@ -conn = $conn; - $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; - if(!pg_query($conn,$qry)) - { - $this->errormsg = "Encoding konnte nicht gesetzt werden"; - return false; - } - if($lehreinheit_id != null) - $this->load($lehreinheit_id); - } - - /** - * Laedt einen Datensatz - * @param $lehreinheit_id ID des zu ladenden Datensatzes - * @return true wenn ok, false im Fehlerfall - */ - function load($lehreinheit_id) - { - if(!is_numeric($lehreinheit_id) || $lehreinheit_id == '') - { - $this->errormsg = 'lehreinheit_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM lehreinheit WHERE lehreinheit_pk = '$lehreinheit_id'"; - - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - - if($row = pg_fetch_object($res)) - { - $this->lehreinheit_id = $row->lehreinheit_pk; - $this->studiengang_id = $row->studiengang_fk; - $this->studiensemester_id = $row->studiensemester_fk; - $this->ausbildungssemester_id = $row->ausbildungssemester_fk; - $this->fachbereich_id = $row->fachbereich_fk; - $this->gruppe_id = $row->gruppe_fk; - $this->koordinator_id = $row->bivar1; - $this->lehrform_id = $row->lehrform_fk; - $this->lehrveranstaltung_id = $row->lehrveranstaltung_fk; - $this->raumtyp_id = $row->raumtyp_fk; - $this->raumtypalternativ_id = $row->alternativraumtyp_fk; - $this->bemerkungen = $row->bemerkungen; - $this->bezeichnung = $row->bezeichnung; - $this->gesamtstunden = $row->gesamtstunden; - $this->kurzbezeichnung = $row->kurzbezeichnung; - $this->nummer = $row->nummer; - $this->planfaktor = $row->planfaktor; - $this->plankostenprolektor = $row->plankostenprolektor; - $this->planlektoren = $row->planlektoren; - $this->semesterwochenstunden = $row->semesterwochenstunden; - $this->start_kw = $row->ivar2; - $this->stundenblockung = $row->ivar3; - $this->updateamum = $row->creationdate; - $this->updatevon = $row->creationuser; - $this->wochenrythmus = $row->ivar1; - } - else - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - return true; - } - - /** - * Laedt eine / mehrere Lehreinheit(en) - * @param $studiengang_id ID des zu ladenden Studienganges - * $studiensemester_id ID des zu ladenden Studiensemesters (optional) - * $ausbildungssemester_id ID des zu ladenden Ausbildungssemesters (optional) - * $lehrform_id ID der zu ladenden Lehrform (optional) - * @return true wenn ok, false im Fehlerfall - */ - function load_einheit($studiengang_id, $studiensemester_id=null, $ausbildungssemester_id=null, $lehrform_id=null) - { - //Gueltigkeit der Parameter pruefen - if(!is_numeric($studiengang_id) || $studiengang_id == '') - { - $this->errormsg = 'studiengang_id muss eine gueltige Zahl sein'; - return false; - } - if($studiensemester_id!=null && (!is_numeric($studiensemester_id) || $studiensemester_id == '')) - { - $this->errormsg = 'studiensemester_id muss eine gueltige Zahl oder null sein'; - return false; - } - if($ausbildungssemester_id!=null && (!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == '')) - { - $this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl oder null sein'; - return false; - } - if($lehrform_id!=null && (!is_numeric($lehrform_id) || $lehrform_id == '')) - { - $this->errormsg = 'lehrform_id muss eine gueltige Zahl oder null sein'; - return false; - } - - //Select Befehl zusammenbauen - $qry = "SELECT * FROM lehreinheit WHERE studiengang_fk = '$studiengang_id'"; - - if($studiensemester_id != null) - $qry .= " AND studiensemester_fk = '$studiensemester_id'"; - - if($ausbildungssemester_id != null) - $qry .= " AND ausbildungssemester_fk = '$ausbildungssemester_id'"; - - if($lehrform_id != null) - $qry .= " AND lehrform_fk = '$lehrform_id'"; - - //Daten auslesen - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - - while($row = pg_fetch_object($res)) - { - $einh_obj = new lehreinheit($this->conn); - - $einh_obj->lehreinheit_id = $row->lehreinheit_pk; - $einh_obj->studiengang_id = $row->studiengang_fk; - $einh_obj->studiensemester_id = $row->studiensemester_fk; - $einh_obj->ausbildungssemester_id = $row->ausbildungssemester_fk; - $einh_obj->fachbereich_id = $row->fachbereich_fk; - $einh_obj->gruppe_id = $row->gruppe_fk; - $einh_obj->koordinator_id = $row->bivar1; - $einh_obj->lehrform_id = $row->lehrform_fk; - $einh_obj->lehrveranstaltung_id = $row->lehrveranstaltung_fk; - $einh_obj->raumtyp_id = $row->raumtyp_fk; - $einh_obj->raumtypalternativ_id = $row->alternativraumtyp_fk; - $einh_obj->bemerkungen = $row->bemerkungen; - $einh_obj->bezeichnung = $row->bezeichnung; - $einh_obj->gesamtstunden = $row->gesamtstunden; - $einh_obj->kurzbezeichnung = $row->kurzbezeichnung; - $einh_obj->nummer = $row->nummer; - $einh_obj->planfaktor = $row->planfaktor; - $einh_obj->plankostenprolektor = $row->plankostenprolektor; - $einh_obj->planlektoren = $row->planlektoren; - $einh_obj->semesterwochenstunden = $row->semesterwochenstunden; - $einh_obj->start_kw = $row->ivar2; - $einh_obj->stundenblockung = $row->ivar3; - $einh_obj->updateamum = $row->creationdate; - $einh_obj->updatevon = $row->creationuser; - $einh_obj->wochenrythmus = $row->ivar1; - - $this->result[] = $einh_obj; - } - return true; - } - - /** - * Prueft die Variablen auf Gueltigkeit - * Hochkomma und HTML Tags werden ersetzt - * @return true wenn ok, false im Fehlerfall - */ - function checkvars() - { - - //Hochkomma und HTML Tags codieren - $this->nummer = str_replace("'","`",$this->nummer); - $this->bezeichnung = str_replace("'","`",$this->bezeichnung); - $this->kurzbezeichnung = str_replace("'","`",$this->kurzbezeichnung); - $this->bemerkungen = str_replace("'","`",$this->bemerkungen); - - if(ereg("[^a-zA-Z0-9]", $this->kurzbezeichnung)) - { - $this->errormsg = "Die Kurzbezeichnung darf keine Umlaute oder Sonderzeichen enthalten"; - return false; - } - - //Gesamtlaenge pruefen - if(strlen($this->nummer)>20) - { - $this->errormsg = 'Nummer darf nicht laenger als 20 Zeichen sein'; - return false; - } - if(strlen($this->bezeichnung)>255) - { - $this->errormsg = 'Bezeichnung darf nicht laenger als 255 Zeichen sein'; - return false; - } - if(strlen($this->kurzbezeichnung)>5) - { - $this->errormsg = 'Kurzbezeichnung darf nicht laenger als 5 Zeichen sein'; - return false; - } - if(strlen($this->bemerkungen)>255) - { - $this->errormsg = 'Bemerkung darf nicht laenger als 255 Zeichen sein'; - return false; - } - - //Zahlenfelder pruefen - if(!is_numeric($this->studiengang_id)) - { - $this->errormsg = 'Studiengang ist ungueltig'; - return false; - } - if(!is_numeric($this->studiensemester_id)) - { - $this->errormsg = 'Studiensemester ist ungueltig'; - return false; - } - if($this->lehrveranstaltung_id!='' && !is_numeric($this->lehrveranstaltung_id)) - { - $this->errormsg = 'Lehrveranstaltung_id ist ungueltig'; - return false; - } - if($this->fachbereich_id!='' && !is_numeric($this->fachbereich_id)) - { - $this->errormsg = 'Fachbereich_id ist ungueltig'; - return false; - } - if($this->ausbildungssemester_id !='' && !is_numeric($this->ausbildungssemester_id)) - { - $this->errormsg = 'Ausbildungssemester_id ist ungueltig'; - return false; - } - if($this->lehrform_id!='' && !is_numeric($this->lehrform_id)) - { - $this->errormsg = 'Lehrform_id ist ungueltig'; - return false; - } - if($this->lehreinheit_fk!='' && !is_numeric($this->lehreinheit_fk)) - { - $this->errormsg = 'Lehreinheit_fk ist ungueltig'; - return false; - } - if($this->gruppe_id!='' && !is_numeric($this->gruppe_id)) - { - $this->errormsg = 'Gruppe ist ungueltig'; - return false; - } - if($this->semesterwochenstunden!='' && !is_numeric($this->semesterwochenstunden)) - { - $this->errormsg = 'Semesterwochenstunden muessen eine gueltige Zahl sein'; - return false; - } - if($this->gesamtstunden!='' && !is_numeric($this->gesamtstunden)) - { - $this->errormsg = 'Gesamtstunden muessen eine gueltige Zahl sein'; - return false; - } - if($this->plankostenprolektor!='' && !is_numeric($this->plankostenprolektor)) - { - $this->errormsg = 'Kosten pro Lektor muss eine gueltige Zahl sein'; - return false; - } - if($this->planfaktor!='' && !is_numeric($this->planfaktor)) - { - $this->errormsg = 'Geplanter Faktor muss eine gueltige Zahl sein'; - return false; - } - if($this->planlektoren!='' && !is_numeric($this->planlektoren)) - { - $this->errormsg = 'Anzahl der Lektoren muss eine gueltige Zahl sein'; - return false; - } - if($this->raumtyp_id!='' && !is_numeric($this->raumtyp_id)) - { - $this->errormsg = 'Raumtyp ist ungueltig'; - return false; - } - if($this->raumtypalternativ_id!='' && !is_numeric($this->raumtypalternativ_id)) - { - $this->errormsg = 'Alternativraumtyp ist ungueltig'; - return false; - } - if($this->wochenrythmus!='' && !is_numeric($this->wochenrythmus)) - { - $this->errormsg = 'Wochenrythmus muss eine gueltige Zahl sein'; - return false; - } - if($this->start_kw!='' && !is_numeric($this->start_kw)) - { - $this->errormsg = 'Kalenderwoche muss eine gueltige Zahl sein'; - return false; - } - if($this->stundenblockung!='' && !is_numeric($this->stundenblockung)) - { - $this->errormsg = 'Stundenblockung muss eine gueltige Zahl sein'; - return false; - } - if($this->koordinator_id!='' && !is_numeric($this->koordinator_id)) - { - $this->errormsg = 'Koordinator ist ungueltig'; - return false; - } - - $this->errormsg = ''; - return true; - } - - /** - * Speichert den aktuellen Datensatz - * Wenn new auf true gesetzt ist wird ein neuer Datensatz angelegt - * ansonsten wird der datensatz mit der ID lehreinheit_id aktualisiert - * @return true wenn ok, false im Fehlerfall - */ - function save() - { - //Variablen pruefen - if(!$this->checkvars()) - return false; - - if($this->new) - { - //Neuen Datensatz anlegen - - //naechste ID aus Sequence holen - $qry = "SELECT nextval('lehreinheit_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Fehler beim auslesen der Sequence'; - return false; - } - $this->lehreinheit_id = $row->id; - - //Insert Befehl zusammenbauen - $qry = "INSERT INTO lehreinheit (lehreinheit_pk, studiengang_fk, studiensemester_fk, lehrveranstaltung_fk,". - " fachbereich_fk, ausbildungssemester_fk, lehreinheit_fk, lehrform_fk, gruppe_fk, nummer, bezeichnung,". - " kurzbezeichnung, semesterwochenstunden, gesamtstunden, plankostenprolektor, planfaktor, planlektoren,". - " raumtyp_fk, alternativraumtyp_fk, bemerkungen, ivar1, ivar2, ivar3, bivar1, creationdate, creationuser)". - " VALUES('$this->lehreinheit_id', '$this->studiengang_id', '$this->studiensemester_id',". - ($this->lehrveranstaltung_id!=''?" '$this->lehrveranstaltung_id'":" null").",". - ($this->fachbereich_id!=''?" '$this->fachbereich_id'":" null").",". - ($this->ausbildungssemester_id!=''?" '$this->ausbildungssemester_id'":" null").",". - ($this->lehreinheit_fk!=''?" '$this->lehreinheit_fk'":" null").",". - ($this->lehrform_id!=''?" '$this->lehrform_id'":" null").",". - ($this->gruppe_id!=''?" '$this->gruppe_id'":" null").",". - ($this->nummer!=''?" '$this->nummer'":" null").",". - ($this->bezeichnung!=''?" '$this->bezeichnung'":" null").",". - ($this->kurzbezeichnung!=''?" '$this->kurzbezeichnung'":" null").",". - ($this->semesterwochenstunden!=''?" '$this->semesterwochenstunden'":" null").",". - ($this->gesamtstunden!=''?" '$this->gesamtstunden'":" null").",". - ($this->plankostenprolektor!=''?" '$this->plankostenprolektor'":" null").",". - ($this->planfaktor!=''?" '$this->planfaktor'":" null").",". - ($this->planlektoren!=''?" '$this->planlektoren'":" null").",". - ($this->raumtyp_id!=''?" '$this->raumtyp_id'":" null").",". - ($this->raumtypalternativ_id!=''?" '$this->raumtypalternativ_id'":" null").",". - ($this->bemerkungen!=''?" '$this->bemerkungen'":" null").",". - ($this->wochenrythmus!=''?" '$this->wochenrythmus'":" null").",". - ($this->start_kw!=''?" '$this->start_kw'":" null").",". - ($this->stundenblockung!=''?" '$this->stundenblockung'":" null").",". - ($this->koordinator_id!=''?" '$this->koordinator_id'":" null").", now(),$this->updatevon);"; - } - else - { - //lehreinheit_id auf gueltigkeit pruefen - if(!is_numeric($this->lehreinheit_id) || $this->lehreinheit_id == '') - { - $this->errormsg = 'lehreinheit_id muss eine gueltige Zahl sein'; - return false; - } - - //Update Befehl zusammenbauen - $qry = "UPDATE lehreinheit SET". - " studiengang_fk = '$this->studiengang_id',". - " studiensemester_fk = '$this->studiensemester_id',". - " lehrveranstaltung_fk = '$this->lehrveranstaltung_id',". - " fachbereich_fk = ".($this->fachbereich_id!=''?"'$this->fachbereich_id'":"null").",". - " ausbildungssemester_fk = ".($this->ausbildungssemester_id!=''?"'$this->ausbildungssemester_id'":"null").",". - " lehreinheit_fk = ".($this->lehreinheit_fk!=''?"'$this->lehreinheit_fk'":"null").",". - " lehrform_fk = ".($this->lehrform_id!=''?"'$this->lehrform_id'":"null").",". - " gruppe_fk = ".($this->gruppe_id!=''?"'$this->gruppe_id'":"null").",". - " nummer = '$this->nummer',". - " bezeichnung = '$this->bezeichnung',". - " kurzbezeichnung = '$this->kurzbezeichnung',". - " semesterwochenstunden = ".($this->semesterwochenstunden!=''?"'$this->semesterwochenstunden'":"null").",". - " gesamtstunden = ".($this->gesamtstunden!=''?"'$this->gesamtstunden'":"null").",". - " plankostenprolektor = ".($this->plankostenprolektor!=''?"'$this->plankostenprolektor'":"null").",". - " planfaktor = ".($this->planfaktor!=''?"'$this->planfaktor'":"null").",". - " planlektoren = ".($this->planlektoren!=''?"'$this->planlektoren'":"null").",". - " raumtyp_fk = ".($this->raumtyp_id!=''?"'$this->raumtyp_id'":"null").",". - " alternativraumtyp_fk = ".($this->raumtypalternativ_id!=''?"'$this->raumtypalternativ_id'":"null").",". - " bemerkungen = '$this->bemerkungen',". - " ivar1 = ".($this->wochenrythmus!=''?"'$this->wochenrythmus'":"null").",". - " ivar2 = ".($this->start_kw!=''?"'$this->start_kw'":"null").",". - " ivar3 = ".($this->stundenblockung!=''?"'$this->stundenblockung'":"null").",". - " bivar1= ".($this->koordinator_id!=''?"'$this->koordinator_id'":"null"). - " WHERE lehreinheit_pk = '$this->lehreinheit_id';"; - } - - if(pg_query($this->conn, $qry)) - { - //Log schreiben - $sql = $qry; - $qry = "SELECT nextval('log_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; - return false; - } - - $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Speichern des Datensatzes'.$qry.' '.pg_errormessage($this->conn); - return false; - } - } - - /** - * Loescht einen Datensatz - * @param $lehreinheit_id ID des zu leoschenden DS - * @return true wenn ok, false im Fehlerfall - */ - function delete($lehreinheit_id) - { - if(!is_numeric($lehreinheit_id) || $lehreinheit_id == '') - { - $this->errormsg = 'lehreinheit_id muss eine gueltige Zahl sein'; - return false; - } - //Pruefen ob diese Lehreinheit Partizipierte Lehreinheiten hat - $qry = "SELECT count(*) as anz FROM lehreinheit where lehreinheit_fk='$lehreinheit_id'"; - if(!$result = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Fehler beim Auslesen der partizipierenden Lehreinheiten'; - return false; - } - else - { - if(!$row=pg_fetch_object($result) || $row->anz>0) - { - $this->errormsg = 'Sie können diese Lehreinheit nicht löschen da noch partizipierende Lehreinheiten vorhanden sind.'.$qry; - return false; - } - } - - $qry = "DELETE FROM lehreinheit where lehreinheit_pk = '$lehreinheit_id'"; - - if(!pg_query($this->conn, $qry)) - { - $this->errormsg = 'Fehler beim loeschen des Datensatzes'; - return false; - } - else - { - //Log schreiben - $sql = $qry; - $qry = "SELECT nextval('log_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; - return false; - } - - $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; - return false; - } - } - } - - - - - /** - * Laedt alle/id des uebergebenen Mitarbeiter die zu einer Lehreinheit gehoeren - * @param $lehreinheit_id ID der Lehreinheit - * $mitarbeiter_id ID des Mitarbeiters (optional) - * @return true wenn ok, false im Fehlerfall - */ - function load_zuteilung($lehreinheit_id, $mitarbeiter_id=null) - { - //Variablen pruefen - if(!is_numeric($lehreinheit_id) || $lehreinheit_id == '') - { - $this->errormsg = 'lehreinheit_id muss eine gueltige Zahl sein'; - return false; - } - if($mitarbeiter_id != null && (!is_numeric($mitarbeiter_id) || $mitarbeiter_id == '')) - { - $this->errormsg = 'mitarbeiter_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM mitarbeiter_lehreinheit where lehreinheit_fk = '$lehreinheit_id'"; - - if($mitarbeiter_id != null) - $qry .= " AND mitarbeiter_id = '$mitarbeiter_id'"; - - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - - while($row = pg_fetch_object($res)) - { - $einh_obj = new lehreinheit($this->conn); - - $einh_obj->mitarbeiter_lehreinheit_id = $row->mitarbeiter_lehreinheit_pk; - $einh_obj->lehreinheit_fk = $row->lehreinheit_fk; - $einh_obj->lehrfunktion_id = $row->lehrfunktion_fk; - $einh_obj->mitarbeiter_id = $row->mitarbeiter_fk; - $einh_obj->faktor = $row->faktor; - $einh_obj->kosten = $row->kosten; - $einh_obj->gesamtstunden_mitarbeiter = $row->rvar1; - - $this->result[] = $einh_obj; - } - return true; - } - - /** - * Laedt die Mitarbeiterzuteilung - * @param $mitarbeiter_lehreinheit_id ID der Zuteilung - * @return true wenn ok, false im Fehlerfall - */ - function load_mitarbeiterzuteilung($mitarbeiter_lehreinheit_id) - { - //Variablen pruefen - if(!is_numeric($mitarbeiter_lehreinheit_id) || $mitarbeiter_lehreinheit_id == '') - { - $this->errormsg = 'mitarbeiter_lehreinheit_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM mitarbeiter_lehreinheit where mitarbeiter_lehreinheit_pk = '$mitarbeiter_lehreinheit_id'"; - - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - - while($row = pg_fetch_object($res)) - { - $einh_obj = new lehreinheit($this->conn); - - $einh_obj->mitarbeiter_lehreinheit_id = $row->mitarbeiter_lehreinheit_pk; - $einh_obj->lehreinheit_fk = $row->lehreinheit_fk; - $einh_obj->lehrfunktion_id = $row->lehrfunktion_fk; - $einh_obj->mitarbeiter_id = $row->mitarbeiter_fk; - $einh_obj->faktor = $row->faktor; - $einh_obj->kosten = $row->kosten; - $einh_obj->gesamtstunden_mitarbeiter = $row->rvar1; - - $this->result[] = $einh_obj; - } - return true; - } - - /** - * Prueft die variablen auf gueltigkeit - * @return true wenn ok, false im Fehlerfall - */ - function checkvars_zuteilung() - { - - if(!is_numeric($this->mitarbeiter_id)) - { - $this->errormsg = 'Bitte einen gueltigen Mitarbeiter auswaehlen'; - return false; - } - if(!is_numeric($this->lehreinheit_fk)) - { - $this->errormsg = 'lehreinheit_fk ist ungueltig'; - return false; - } - if(!is_numeric($this->lehrfunktion_id)) - { - $this->errormsg = 'Die Lehrfuntkion ist ungueltig'; - return false; - } - if(!is_numeric($this->kosten)) - { - $this->errormsg = 'Die Kosten muessen eine gueltige Zahl sein'; - return false; - } - if(!is_numeric($this->faktor)) - { - $this->errormsg = 'Faktor muss eine gueltige Zahl sein'; - return false; - } - if(!is_numeric($this->gesamtstunden_mitarbeiter)) - { - $this->errormsg = 'Gesamtstunden muss eine gueltige Zahl sein'; - return false; - } - - $this->errormsg = ''; - return true; - } - - /** - * Speichert die Zuteilung eines Mitarbeiters zu einer Lehreinheit - * @return true wenn ok, false im Fehlerfall - */ - function save_zuteilung() - { - if(!$this->checkvars_zuteilung()) - return false; - - if($this->new) - { - $qry = "SELECT nextval('mitarbeiter_lehreinheit_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Sequence konnte nicht ausgelesen werden'; - return false; - } - - $this->mitarbeiter_lehreinheit_id = $row->id; - - $qry = "INSERT INTO mitarbeiter_lehreinheit (mitarbeiter_lehreinheit_pk, mitarbeiter_fk, lehreinheit_fk,". - " lehrfunktion_fk, kosten, faktor, rvar1, creationdate, creationuser) VALUES(". - " '$this->mitarbeiter_lehreinheit_id', '$this->mitarbeiter_id', '$this->lehreinheit_fk', '$this->lehrfunktion_id',". - " '$this->kosten', '$this->faktor', '$this->gesamtstunden_mitarbeiter', now(), '$this->updatevon');"; - } - else - { - //mitarbeiter_lehreinheit_id auf gueltigkeit pruefen - if(!is_numeric($this->mitarbeiter_lehreinheit_id) || $this->mitarbeiter_lehreinheit_id =='') - { - $this->errormsg = 'mitarbeiter_lehreinheit muss eine gueltige Zahl sein'; - return false; - } - - $qry = "UPDATE mitarbeiter_lehreinheit SET mitarbeiter_fk = '$this->mitarbeiter_id',". - " lehreinheit_fk = '$this->lehreinheit_fk', lehrfunktion_fk = '$this->lehrfunktion_id',". - " kosten = '$this->kosten', faktor = '$this->faktor', rvar1 = '$this->gesamtstunden_mitarbeiter'". - " WHERE mitarbeiter_lehreinheit_pk = '$this->mitarbeiter_lehreinheit_id';"; - } - - if(pg_query($this->conn, $qry)) - { - //Log schreiben - $sql = $qry; - $qry = "SELECT nextval('log_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; - return false; - } - - $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Speichern des Datensatzes'; - return false; - } - } - - /** - * Loescht die Zuteilung eines Mitarbeiters zu einer Lehreinheit - * @param $mitarbeiter_lehreinheit_id ID des zu loeschenden Datensatzes - * @return true wenn ok, false im Fehlerfall - */ - function delete_zuteilung($mitarbeiter_lehreinheit_id) - { - //Pruefen ob mitarbeiter_lehreinheit_id eine gueltige Zahl ist - if(!is_numeric($mitarbeiter_lehreinheit_id) || $mitarbeiter_lehreinheit_id == '') - { - $this->errormsg = 'mitarbeiter_lehreinheit_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "DELETE FROM mitarbeiter_lehreinheit WHERE mitarbeiter_lehreinheit_pk = '$mitarbeiter_lehreinheit_id';"; - - if(!pg_query($this->conn, $qry)) - { - $this->errormsg = 'Fehler beim loeschen der Zuteilung'; - return false; - } - else - { - //Log schreiben - $sql = $qry; - $qry = "SELECT nextval('log_seq') as id;"; - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Fehler beim Auslesen der Log-Sequence'; - return false; - } - - $qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')"; - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; - return false; - } - } - - } - - /** - * Liefert die Lehreinheiten mit den dazugehoerigen Attributen - * @param stg Studiengang - * sem Semester - * stsem Studiensemester - */ - function getLehreinheiten($stg=null, $sem=null, $stsem=null, $lehreinheit_id=null, $include_partizipierungen=false) - { - $qry = "SELECT lehreinheit.lehreinheit_pk as lehreinheit_id, - studiengang.studiengang_pk as studiengang_id, - (CASE WHEN studiengang.studiengangsart=1 THEN 'B' - WHEN studiengang.studiengangsart=2 THEN 'M' - WHEN studiengang.studiengangsart=3 THEN 'D' END) || studiengang.kuerzel as studiengang_kurzbz, - studiensemester.studiensemester_pk as studiensemester_id, - (CASE WHEN studiensemester.art=1 THEN 'WS' - WHEN studiensemester.art=2 THEN 'SS' END) || studiensemester.jahr as studiensemester_kurzbz, - lehreinheit.lehrveranstaltung_fk as lehrveranstaltung_id, - lehreinheit.fachbereich_fk as fachbereich_id, - fachbereich.name as fachbereich_bezeichnung, - lehreinheit.ausbildungssemester_fk as ausbildungssemester_id, - ausbildungssemester.semester as ausbildungssemester_semester, - ausbildungssemester.name as ausbildungssemester_kurzbz, - lehreinheit.lehreinheit_fk as lehreinheit_fk, - lehreinheit.lehrform_fk as lehrform_id, - lehrform.kurzbezeichnung as lehrform_kurzbz, - lehreinheit.gruppe_fk as gruppe_id, - fas_function_get_fullname_from_gruppe(lehreinheit.gruppe_fk) as gruppe_kurzbz, - lehreinheit.nummer as nummer, - lehreinheit.bezeichnung as bezeichnung, - lehreinheit.kurzbezeichnung as kurzbezeichnung, - lehreinheit.semesterwochenstunden as semesterwochenstunden, - lehreinheit.gesamtstunden as gesamtstunden, - lehreinheit.plankostenprolektor as plankostenprolektor, - lehreinheit.planfaktor as planfaktor, - lehreinheit.planlektoren as planlektoren, - lehreinheit.raumtyp_fk as raumtyp_id, - lehreinheit.alternativraumtyp_fk as raumtypalternativ_id, - lehreinheit.bemerkungen as bemerkungen, - lehreinheit.ivar1 as wochenrythmus, - lehreinheit.ivar2 as kalenderwoche, - lehreinheit.ivar3 as stundenblockung, - lehreinheit.bivar1 as koordinator_id, - (Select vorname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_vorname, - (Select familienname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_nachname, - lehreinheit.creationdate as creationdate, - lehreinheit.creationuser as creationuser - FROM lehreinheit, studiengang, studiensemester, fachbereich, ausbildungssemester, lehrform - WHERE lehreinheit.studiengang_fk=studiengang.studiengang_pk - AND lehreinheit.studiensemester_fk=studiensemester.studiensemester_pk - AND lehreinheit.fachbereich_fk = fachbereich.fachbereich_pk - AND ausbildungssemester.ausbildungssemester_pk=lehreinheit.ausbildungssemester_fk - AND lehreinheit.lehrform_fk = lehrform.lehrform_pk"; - - if($stg!=null) - $qry .= " AND studiengang.studiengang_pk = '$stg'"; - if($sem!=null) - $qry .= " AND ausbildungssemester.semester= '$sem'"; - if($stsem!=null) - $qry .= " AND studiensemester.studiensemester_pk= '$stsem'"; - if($lehreinheit_id!=null) - $qry .= " AND lehreinheit_pk = '$lehreinheit_id'"; - $qry .= " Order by lehreinheit_fk"; - if($res=pg_query($this->conn, $qry)) - { - while($row=pg_fetch_object($res)) - { - $lehreinheit_obj = new lehreinheit($this->conn); - - $lehreinheit_obj->lehreinheit_id = $row->lehreinheit_id; - $lehreinheit_obj->studiengang_id = $row->studiengang_id; - $lehreinheit_obj->studiengang_kurzbz = $row->studiengang_kurzbz; - $lehreinheit_obj->studiensemester_id = $row->studiensemester_id; - $lehreinheit_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $lehreinheit_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lehreinheit_obj->fachbereich_id = $row->fachbereich_id; - $lehreinheit_obj->fachbereich_bezeichnung = $row->fachbereich_bezeichnung; - $lehreinheit_obj->ausbildungssemester_id = $row->ausbildungssemester_id; - $lehreinheit_obj->ausbildungssemester_semester = $row->ausbildungssemester_semester; - $lehreinheit_obj->ausbildungssemester_kurzbz = $row->ausbildungssemester_kurzbz; - $lehreinheit_obj->lehreinheit_fk = $row->lehreinheit_fk; - $lehreinheit_obj->lehrform_id = $row->lehrform_id; - $lehreinheit_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lehreinheit_obj->gruppe_id = $row->gruppe_id; - $lehreinheit_obj->gruppe_kurzbz = $row->gruppe_kurzbz; - $lehreinheit_obj->nummer = $row->nummer; - $lehreinheit_obj->bezeichnung = $row->bezeichnung; - $lehreinheit_obj->kurzbezeichnung = $row->kurzbezeichnung; - $lehreinheit_obj->semesterwochenstunden = $row->semesterwochenstunden; - $lehreinheit_obj->gesamtstunden = $row->gesamtstunden; - $lehreinheit_obj->plankostenprolektor = $row->plankostenprolektor; - $lehreinheit_obj->planfaktor = $row->planfaktor; - $lehreinheit_obj->planlektoren = $row->planlektoren; - $lehreinheit_obj->raumtyp_id = $row->raumtyp_id; - $lehreinheit_obj->raumtypalternativ_id = $row->raumtypalternativ_id; - $lehreinheit_obj->bemerkungen = $row->bemerkungen; - $lehreinheit_obj->wochenrythmus = $row->wochenrythmus; - $lehreinheit_obj->start_kw = $row->kalenderwoche; - $lehreinheit_obj->stundenblockung = $row->stundenblockung; - $lehreinheit_obj->koordinator_id = $row->koordinator_id; - $lehreinheit_obj->koordinator_vorname = $row->koordinator_vorname; - $lehreinheit_obj->koordinator_nachname = $row->koordinator_nachname; - $lehreinheit_obj->updateamum = $row->creationdate; - $lehreinheit_obj->updatevon = $row->creationuser; - - $this->result[] = $lehreinheit_obj; - $lehreinheit_id = $row->lehreinheit_id; - //Laden der Datensaetze die partizipiert sind aber in einem anderen Studiengang/Gruppe sind - if($include_partizipierungen) - { - if($row->lehreinheit_fk!='' && $row->lehreinheit_fk!='-1') - { - $qry = "SELECT lehreinheit.lehreinheit_pk as lehreinheit_id, - studiengang.studiengang_pk as studiengang_id, - (CASE WHEN studiengang.studiengangsart=1 THEN 'B' - WHEN studiengang.studiengangsart=2 THEN 'M' - WHEN studiengang.studiengangsart=3 THEN 'D' END) || studiengang.kuerzel as studiengang_kurzbz, - studiensemester.studiensemester_pk as studiensemester_id, - (CASE WHEN studiensemester.art=1 THEN 'WS' - WHEN studiensemester.art=2 THEN 'SS' END) || studiensemester.jahr as studiensemester_kurzbz, - lehreinheit.lehrveranstaltung_fk as lehrveranstaltung_id, - lehreinheit.fachbereich_fk as fachbereich_id, - fachbereich.name as fachbereich_bezeichnung, - lehreinheit.ausbildungssemester_fk as ausbildungssemester_id, - ausbildungssemester.semester as ausbildungssemester_semester, - ausbildungssemester.name as ausbildungssemester_kurzbz, - lehreinheit.lehreinheit_fk as lehreinheit_fk, - lehreinheit.lehrform_fk as lehrform_id, - lehrform.kurzbezeichnung as lehrform_kurzbz, - lehreinheit.gruppe_fk as gruppe_id, - fas_function_get_fullname_from_gruppe(lehreinheit.gruppe_fk) as gruppe_kurzbz, - lehreinheit.nummer as nummer, - lehreinheit.bezeichnung as bezeichnung, - lehreinheit.kurzbezeichnung as kurzbezeichnung, - lehreinheit.semesterwochenstunden as semesterwochenstunden, - lehreinheit.gesamtstunden as gesamtstunden, - lehreinheit.plankostenprolektor as plankostenprolektor, - lehreinheit.planfaktor as planfaktor, - lehreinheit.planlektoren as planlektoren, - lehreinheit.raumtyp_fk as raumtyp_id, - lehreinheit.alternativraumtyp_fk as raumtypalternativ_id, - lehreinheit.bemerkungen as bemerkungen, - lehreinheit.ivar1 as wochenrythmus, - lehreinheit.ivar2 as kalenderwoche, - lehreinheit.ivar3 as stundenblockung, - lehreinheit.bivar1 as koordinator_id, - (Select vorname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_vorname, - (Select familienname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_nachname, - lehreinheit.creationdate as creationdate, - lehreinheit.creationuser as creationuser - FROM lehreinheit, studiengang, studiensemester, fachbereich, ausbildungssemester, lehrform - WHERE lehreinheit.studiengang_fk=studiengang.studiengang_pk - AND lehreinheit.studiensemester_fk=studiensemester.studiensemester_pk - AND lehreinheit.fachbereich_fk = fachbereich.fachbereich_pk - AND ausbildungssemester.ausbildungssemester_pk=lehreinheit.ausbildungssemester_fk - AND lehreinheit.lehrform_fk = lehrform.lehrform_pk - AND lehreinheit_pk='$row->lehreinheit_fk'"; - - if($result=pg_query($this->conn,$qry)) - { - if($row=pg_fetch_object($result)) - { - if($row->studiengang_id!=$stg) - { - $lehreinheit_obj = new lehreinheit($this->conn); - - $lehreinheit_obj->lehreinheit_id = $row->lehreinheit_id; - $lehreinheit_obj->studiengang_id = $row->studiengang_id; - $lehreinheit_obj->studiengang_kurzbz = $row->studiengang_kurzbz; - $lehreinheit_obj->studiensemester_id = $row->studiensemester_id; - $lehreinheit_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $lehreinheit_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lehreinheit_obj->fachbereich_id = $row->fachbereich_id; - $lehreinheit_obj->fachbereich_bezeichnung = $row->fachbereich_bezeichnung; - $lehreinheit_obj->ausbildungssemester_id = $row->ausbildungssemester_id; - $lehreinheit_obj->ausbildungssemester_semester = $row->ausbildungssemester_semester; - $lehreinheit_obj->ausbildungssemester_kurzbz = $row->ausbildungssemester_kurzbz; - $lehreinheit_obj->lehreinheit_fk = $row->lehreinheit_fk; - $lehreinheit_obj->lehrform_id = $row->lehrform_id; - $lehreinheit_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lehreinheit_obj->gruppe_id = $row->gruppe_id; - $lehreinheit_obj->gruppe_kurzbz = $row->gruppe_kurzbz; - $lehreinheit_obj->nummer = $row->nummer; - $lehreinheit_obj->bezeichnung = $row->bezeichnung; - $lehreinheit_obj->kurzbezeichnung = $row->kurzbezeichnung; - $lehreinheit_obj->semesterwochenstunden = $row->semesterwochenstunden; - $lehreinheit_obj->gesamtstunden = $row->gesamtstunden; - $lehreinheit_obj->plankostenprolektor = $row->plankostenprolektor; - $lehreinheit_obj->planfaktor = $row->planfaktor; - $lehreinheit_obj->planlektoren = $row->planlektoren; - $lehreinheit_obj->raumtyp_id = $row->raumtyp_id; - $lehreinheit_obj->raumtypalternativ_id = $row->raumtypalternativ_id; - $lehreinheit_obj->bemerkungen = $row->bemerkungen; - $lehreinheit_obj->wochenrythmus = $row->wochenrythmus; - $lehreinheit_obj->start_kw = $row->kalenderwoche; - $lehreinheit_obj->stundenblockung = $row->stundenblockung; - $lehreinheit_obj->koordinator_id = $row->koordinator_id; - $lehreinheit_obj->koordinator_vorname = $row->koordinator_vorname; - $lehreinheit_obj->koordinator_nachname = $row->koordinator_nachname; - $lehreinheit_obj->updateamum = $row->creationdate; - $lehreinheit_obj->updatevon = $row->creationuser; - - $this->result[] = $lehreinheit_obj; - } - } - } - else - { - $this->errormsg = 'Fehler beim laden der Partizipierungen aus anderen Studiengaengen'; - return false; - } - } - - //Laden der uebergeordneten - - $qry = "SELECT lehreinheit.lehreinheit_pk as lehreinheit_id, - studiengang.studiengang_pk as studiengang_id, - (CASE WHEN studiengang.studiengangsart=1 THEN 'B' - WHEN studiengang.studiengangsart=2 THEN 'M' - WHEN studiengang.studiengangsart=3 THEN 'D' END) || studiengang.kuerzel as studiengang_kurzbz, - studiensemester.studiensemester_pk as studiensemester_id, - (CASE WHEN studiensemester.art=1 THEN 'WS' - WHEN studiensemester.art=2 THEN 'SS' END) || studiensemester.jahr as studiensemester_kurzbz, - lehreinheit.lehrveranstaltung_fk as lehrveranstaltung_id, - lehreinheit.fachbereich_fk as fachbereich_id, - fachbereich.name as fachbereich_bezeichnung, - lehreinheit.ausbildungssemester_fk as ausbildungssemester_id, - ausbildungssemester.semester as ausbildungssemester_semester, - ausbildungssemester.name as ausbildungssemester_kurzbz, - lehreinheit.lehreinheit_fk as lehreinheit_fk, - lehreinheit.lehrform_fk as lehrform_id, - lehrform.kurzbezeichnung as lehrform_kurzbz, - lehreinheit.gruppe_fk as gruppe_id, - fas_function_get_fullname_from_gruppe(lehreinheit.gruppe_fk) as gruppe_kurzbz, - lehreinheit.nummer as nummer, - lehreinheit.bezeichnung as bezeichnung, - lehreinheit.kurzbezeichnung as kurzbezeichnung, - lehreinheit.semesterwochenstunden as semesterwochenstunden, - lehreinheit.gesamtstunden as gesamtstunden, - lehreinheit.plankostenprolektor as plankostenprolektor, - lehreinheit.planfaktor as planfaktor, - lehreinheit.planlektoren as planlektoren, - lehreinheit.raumtyp_fk as raumtyp_id, - lehreinheit.alternativraumtyp_fk as raumtypalternativ_id, - lehreinheit.bemerkungen as bemerkungen, - lehreinheit.ivar1 as wochenrythmus, - lehreinheit.ivar2 as kalenderwoche, - lehreinheit.ivar3 as stundenblockung, - lehreinheit.bivar1 as koordinator_id, - (Select vorname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_vorname, - (Select familienname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_nachname, - lehreinheit.creationdate as creationdate, - lehreinheit.creationuser as creationuser - FROM lehreinheit, studiengang, studiensemester, fachbereich, ausbildungssemester, lehrform - WHERE lehreinheit.studiengang_fk=studiengang.studiengang_pk - AND lehreinheit.studiensemester_fk=studiensemester.studiensemester_pk - AND lehreinheit.fachbereich_fk = fachbereich.fachbereich_pk - AND ausbildungssemester.ausbildungssemester_pk=lehreinheit.ausbildungssemester_fk - AND lehreinheit.lehrform_fk = lehrform.lehrform_pk - AND lehreinheit_fk='$lehreinheit_id'"; - - if($result=pg_query($this->conn,$qry)) - { - while($row=pg_fetch_object($result)) - { - if($row->studiengang_id!=$stg) - { - $lehreinheit_obj = new lehreinheit($this->conn); - - $lehreinheit_obj->lehreinheit_id = $row->lehreinheit_id; - $lehreinheit_obj->studiengang_id = $row->studiengang_id; - $lehreinheit_obj->studiengang_kurzbz = $row->studiengang_kurzbz; - $lehreinheit_obj->studiensemester_id = $row->studiensemester_id; - $lehreinheit_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $lehreinheit_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lehreinheit_obj->fachbereich_id = $row->fachbereich_id; - $lehreinheit_obj->fachbereich_bezeichnung = $row->fachbereich_bezeichnung; - $lehreinheit_obj->ausbildungssemester_id = $row->ausbildungssemester_id; - $lehreinheit_obj->ausbildungssemester_semester = $row->ausbildungssemester_semester; - $lehreinheit_obj->ausbildungssemester_kurzbz = $row->ausbildungssemester_kurzbz; - $lehreinheit_obj->lehreinheit_fk = $row->lehreinheit_fk; - $lehreinheit_obj->lehrform_id = $row->lehrform_id; - $lehreinheit_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lehreinheit_obj->gruppe_id = $row->gruppe_id; - $lehreinheit_obj->gruppe_kurzbz = $row->gruppe_kurzbz; - $lehreinheit_obj->nummer = $row->nummer; - $lehreinheit_obj->bezeichnung = $row->bezeichnung; - $lehreinheit_obj->kurzbezeichnung = $row->kurzbezeichnung; - $lehreinheit_obj->semesterwochenstunden = $row->semesterwochenstunden; - $lehreinheit_obj->gesamtstunden = $row->gesamtstunden; - $lehreinheit_obj->plankostenprolektor = $row->plankostenprolektor; - $lehreinheit_obj->planfaktor = $row->planfaktor; - $lehreinheit_obj->planlektoren = $row->planlektoren; - $lehreinheit_obj->raumtyp_id = $row->raumtyp_id; - $lehreinheit_obj->raumtypalternativ_id = $row->raumtypalternativ_id; - $lehreinheit_obj->bemerkungen = $row->bemerkungen; - $lehreinheit_obj->wochenrythmus = $row->wochenrythmus; - $lehreinheit_obj->start_kw = $row->kalenderwoche; - $lehreinheit_obj->stundenblockung = $row->stundenblockung; - $lehreinheit_obj->koordinator_id = $row->koordinator_id; - $lehreinheit_obj->koordinator_vorname = $row->koordinator_vorname; - $lehreinheit_obj->koordinator_nachname = $row->koordinator_nachname; - $lehreinheit_obj->updateamum = $row->creationdate; - $lehreinheit_obj->updatevon = $row->creationuser; - - $this->result[] = $lehreinheit_obj; - } - } - } - else - { - $this->errormsg = 'Fehler beim laden der Partizipierungen aus anderen Studiengaengen'; - return false; - } - - } - } - } - else - { - $this->errormsg = "Fehler bei einer SQL Abfrage"; - return false; - } - return true; - } - - /** - * Liefert die Lehreinheiten mit den dazugehoerigen Attributen - * @param stg Studiengang - * sem Semester - * stsem Studiensemester - */ - function getLehreinheitenfromGruppe($gruppe_id, $stsem) - { - - $qry = "SELECT lehreinheit.lehreinheit_pk as lehreinheit_id, - studiengang.studiengang_pk as studiengang_id, - (CASE WHEN studiengang.studiengangsart=1 THEN 'B' - WHEN studiengang.studiengangsart=2 THEN 'M' - WHEN studiengang.studiengangsart=3 THEN 'D' END) || studiengang.kuerzel as studiengang_kurzbz, - studiensemester.studiensemester_pk as studiensemester_id, - (CASE WHEN studiensemester.art=1 THEN 'WS' - WHEN studiensemester.art=2 THEN 'SS' END) || studiensemester.jahr as studiensemester_kurzbz, - lehreinheit.lehrveranstaltung_fk as lehrveranstaltung_id, - lehreinheit.fachbereich_fk as fachbereich_id, - fachbereich.name as fachbereich_bezeichnung, - lehreinheit.ausbildungssemester_fk as ausbildungssemester_id, - ausbildungssemester.semester as ausbildungssemester_semester, - ausbildungssemester.name as ausbildungssemester_kurzbz, - lehreinheit.lehreinheit_fk as lehreinheit_fk, - lehreinheit.lehrform_fk as lehrform_id, - lehrform.kurzbezeichnung as lehrform_kurzbz, - lehreinheit.gruppe_fk as gruppe_id, - fas_function_get_fullname_from_gruppe(lehreinheit.gruppe_fk) as gruppe_kurzbz, - lehreinheit.nummer as nummer, - lehreinheit.bezeichnung as bezeichnung, - lehreinheit.kurzbezeichnung as kurzbezeichnung, - lehreinheit.semesterwochenstunden as semesterwochenstunden, - lehreinheit.gesamtstunden as gesamtstunden, - lehreinheit.plankostenprolektor as plankostenprolektor, - lehreinheit.planfaktor as planfaktor, - lehreinheit.planlektoren as planlektoren, - lehreinheit.raumtyp_fk as raumtyp_id, - lehreinheit.alternativraumtyp_fk as raumtypalternativ_id, - lehreinheit.bemerkungen as bemerkungen, - lehreinheit.ivar1 as wochenrythmus, - lehreinheit.ivar2 as kalenderwoche, - lehreinheit.ivar3 as stundenblockung, - lehreinheit.bivar1 as koordinator_id, - (Select vorname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_vorname, - (Select familienname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_nachname, - lehreinheit.creationdate as creationdate, - lehreinheit.creationuser as creationuser - FROM lehreinheit, studiengang, studiensemester, fachbereich, ausbildungssemester, lehrform - WHERE lehreinheit.studiengang_fk=studiengang.studiengang_pk - AND lehreinheit.studiensemester_fk=studiensemester.studiensemester_pk - AND lehreinheit.fachbereich_fk = fachbereich.fachbereich_pk - AND ausbildungssemester.ausbildungssemester_pk=lehreinheit.ausbildungssemester_fk - AND lehreinheit.lehrform_fk = lehrform.lehrform_pk - AND gruppe_fk in (Select gruppe_pk from gruppe where gruppe_pk=$gruppe_id union Select gruppe_pk from gruppe where gruppe_pk in (Select gruppe_pk from gruppe where obergruppe_fk=$gruppe_id) union Select gruppe_pk from gruppe where obergruppe_fk in (Select gruppe_pk from gruppe where obergruppe_fk in (Select gruppe_pk from gruppe where gruppe_pk=$gruppe_id))) - "; - $qry .= " AND studiensemester.studiensemester_pk= '$stsem'"; - - $qry .= " Order by lehreinheit_fk"; - if($res=pg_query($this->conn, $qry)) - { - while($row=pg_fetch_object($res)) - { - $lehreinheit_obj = new lehreinheit($this->conn); - - $lehreinheit_obj->lehreinheit_id = $row->lehreinheit_id; - $lehreinheit_obj->studiengang_id = $row->studiengang_id; - $lehreinheit_obj->studiengang_kurzbz = $row->studiengang_kurzbz; - $lehreinheit_obj->studiensemester_id = $row->studiensemester_id; - $lehreinheit_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $lehreinheit_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lehreinheit_obj->fachbereich_id = $row->fachbereich_id; - $lehreinheit_obj->fachbereich_bezeichnung = $row->fachbereich_bezeichnung; - $lehreinheit_obj->ausbildungssemester_id = $row->ausbildungssemester_id; - $lehreinheit_obj->ausbildungssemester_semester = $row->ausbildungssemester_semester; - $lehreinheit_obj->ausbildungssemester_kurzbz = $row->ausbildungssemester_kurzbz; - $lehreinheit_obj->lehreinheit_fk = $row->lehreinheit_fk; - $lehreinheit_obj->lehrform_id = $row->lehrform_id; - $lehreinheit_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lehreinheit_obj->gruppe_id = $row->gruppe_id; - $lehreinheit_obj->gruppe_kurzbz = $row->gruppe_kurzbz; - $lehreinheit_obj->nummer = $row->nummer; - $lehreinheit_obj->bezeichnung = $row->bezeichnung; - $lehreinheit_obj->kurzbezeichnung = $row->kurzbezeichnung; - $lehreinheit_obj->semesterwochenstunden = $row->semesterwochenstunden; - $lehreinheit_obj->gesamtstunden = $row->gesamtstunden; - $lehreinheit_obj->plankostenprolektor = $row->plankostenprolektor; - $lehreinheit_obj->planfaktor = $row->planfaktor; - $lehreinheit_obj->planlektoren = $row->planlektoren; - $lehreinheit_obj->raumtyp_id = $row->raumtyp_id; - $lehreinheit_obj->raumtypalternativ_id = $row->raumtypalternativ_id; - $lehreinheit_obj->bemerkungen = $row->bemerkungen; - $lehreinheit_obj->wochenrythmus = $row->wochenrythmus; - $lehreinheit_obj->start_kw = $row->kalenderwoche; - $lehreinheit_obj->stundenblockung = $row->stundenblockung; - $lehreinheit_obj->koordinator_id = $row->koordinator_id; - $lehreinheit_obj->koordinator_vorname = $row->koordinator_vorname; - $lehreinheit_obj->koordinator_nachname = $row->koordinator_nachname; - $lehreinheit_obj->updateamum = $row->creationdate; - $lehreinheit_obj->updatevon = $row->creationuser; - - $this->result[] = $lehreinheit_obj; - - $lehreinheit_id = $row->lehreinheit_id; - //Wenn eine Obergruppe existiert und diese nicht in der selben Gruppe ist - //dann wird diese auch geladen - - if($row->lehreinheit_fk!='' && $row->lehreinheit_fk!='-1' ) - { - - $qry = "SELECT lehreinheit.lehreinheit_pk as lehreinheit_id, - studiengang.studiengang_pk as studiengang_id, - (CASE WHEN studiengang.studiengangsart=1 THEN 'B' - WHEN studiengang.studiengangsart=2 THEN 'M' - WHEN studiengang.studiengangsart=3 THEN 'D' END) || studiengang.kuerzel as studiengang_kurzbz, - studiensemester.studiensemester_pk as studiensemester_id, - (CASE WHEN studiensemester.art=1 THEN 'WS' - WHEN studiensemester.art=2 THEN 'SS' END) || studiensemester.jahr as studiensemester_kurzbz, - lehreinheit.lehrveranstaltung_fk as lehrveranstaltung_id, - lehreinheit.fachbereich_fk as fachbereich_id, - fachbereich.name as fachbereich_bezeichnung, - lehreinheit.ausbildungssemester_fk as ausbildungssemester_id, - ausbildungssemester.semester as ausbildungssemester_semester, - ausbildungssemester.name as ausbildungssemester_kurzbz, - lehreinheit.lehreinheit_fk as lehreinheit_fk, - lehreinheit.lehrform_fk as lehrform_id, - lehrform.kurzbezeichnung as lehrform_kurzbz, - lehreinheit.gruppe_fk as gruppe_id, - fas_function_get_fullname_from_gruppe(lehreinheit.gruppe_fk) as gruppe_kurzbz, - lehreinheit.nummer as nummer, - lehreinheit.bezeichnung as bezeichnung, - lehreinheit.kurzbezeichnung as kurzbezeichnung, - lehreinheit.semesterwochenstunden as semesterwochenstunden, - lehreinheit.gesamtstunden as gesamtstunden, - lehreinheit.plankostenprolektor as plankostenprolektor, - lehreinheit.planfaktor as planfaktor, - lehreinheit.planlektoren as planlektoren, - lehreinheit.raumtyp_fk as raumtyp_id, - lehreinheit.alternativraumtyp_fk as raumtypalternativ_id, - lehreinheit.bemerkungen as bemerkungen, - lehreinheit.ivar1 as wochenrythmus, - lehreinheit.ivar2 as kalenderwoche, - lehreinheit.ivar3 as stundenblockung, - lehreinheit.bivar1 as koordinator_id, - (Select vorname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_vorname, - (Select familienname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_nachname, - lehreinheit.creationdate as creationdate, - lehreinheit.creationuser as creationuser - FROM lehreinheit, studiengang, studiensemester, fachbereich, ausbildungssemester, lehrform - WHERE lehreinheit.studiengang_fk=studiengang.studiengang_pk - AND lehreinheit.studiensemester_fk=studiensemester.studiensemester_pk - AND lehreinheit.fachbereich_fk = fachbereich.fachbereich_pk - AND ausbildungssemester.ausbildungssemester_pk=lehreinheit.ausbildungssemester_fk - AND lehreinheit.lehrform_fk = lehrform.lehrform_pk - AND studiensemester.studiensemester_pk= '$stsem' - AND lehreinheit_pk='$row->lehreinheit_fk'"; - - if($result=pg_query($this->conn,$qry)) - { - if($row=pg_fetch_object($result)) - { - - if($row->gruppe_id!=$gruppe_id) - { - - $lehreinheit_obj = new lehreinheit($this->conn); - - $lehreinheit_obj->lehreinheit_id = $row->lehreinheit_id; - $lehreinheit_obj->studiengang_id = $row->studiengang_id; - $lehreinheit_obj->studiengang_kurzbz = $row->studiengang_kurzbz; - $lehreinheit_obj->studiensemester_id = $row->studiensemester_id; - $lehreinheit_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $lehreinheit_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lehreinheit_obj->fachbereich_id = $row->fachbereich_id; - $lehreinheit_obj->fachbereich_bezeichnung = $row->fachbereich_bezeichnung; - $lehreinheit_obj->ausbildungssemester_id = $row->ausbildungssemester_id; - $lehreinheit_obj->ausbildungssemester_semester = $row->ausbildungssemester_semester; - $lehreinheit_obj->ausbildungssemester_kurzbz = $row->ausbildungssemester_kurzbz; - $lehreinheit_obj->lehreinheit_fk = $row->lehreinheit_fk; - $lehreinheit_obj->lehrform_id = $row->lehrform_id; - $lehreinheit_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lehreinheit_obj->gruppe_id = $row->gruppe_id; - $lehreinheit_obj->gruppe_kurzbz = $row->gruppe_kurzbz; - $lehreinheit_obj->nummer = $row->nummer; - $lehreinheit_obj->bezeichnung = $row->bezeichnung; - $lehreinheit_obj->kurzbezeichnung = $row->kurzbezeichnung; - $lehreinheit_obj->semesterwochenstunden = $row->semesterwochenstunden; - $lehreinheit_obj->gesamtstunden = $row->gesamtstunden; - $lehreinheit_obj->plankostenprolektor = $row->plankostenprolektor; - $lehreinheit_obj->planfaktor = $row->planfaktor; - $lehreinheit_obj->planlektoren = $row->planlektoren; - $lehreinheit_obj->raumtyp_id = $row->raumtyp_id; - $lehreinheit_obj->raumtypalternativ_id = $row->raumtypalternativ_id; - $lehreinheit_obj->bemerkungen = $row->bemerkungen; - $lehreinheit_obj->wochenrythmus = $row->wochenrythmus; - $lehreinheit_obj->start_kw = $row->kalenderwoche; - $lehreinheit_obj->stundenblockung = $row->stundenblockung; - $lehreinheit_obj->koordinator_id = $row->koordinator_id; - $lehreinheit_obj->koordinator_vorname = $row->koordinator_vorname; - $lehreinheit_obj->koordinator_nachname = $row->koordinator_nachname; - $lehreinheit_obj->updateamum = $row->creationdate; - $lehreinheit_obj->updatevon = $row->creationuser; - - $this->result[] = $lehreinheit_obj; - } - } - else - { - $this->errormsg = 'Fehler beim laden der partizipierenden Lehreinheiten'.$qry; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim laden der partizipierenden Lehreinheiten'; - return false; - } - } - - //Laden der Datensaetze die partizipiert sind aber in einem anderen Studiengang/Gruppe sind - $qry = "SELECT lehreinheit.lehreinheit_pk as lehreinheit_id, - studiengang.studiengang_pk as studiengang_id, - (CASE WHEN studiengang.studiengangsart=1 THEN 'B' - WHEN studiengang.studiengangsart=2 THEN 'M' - WHEN studiengang.studiengangsart=3 THEN 'D' END) || studiengang.kuerzel as studiengang_kurzbz, - studiensemester.studiensemester_pk as studiensemester_id, - (CASE WHEN studiensemester.art=1 THEN 'WS' - WHEN studiensemester.art=2 THEN 'SS' END) || studiensemester.jahr as studiensemester_kurzbz, - lehreinheit.lehrveranstaltung_fk as lehrveranstaltung_id, - lehreinheit.fachbereich_fk as fachbereich_id, - fachbereich.name as fachbereich_bezeichnung, - lehreinheit.ausbildungssemester_fk as ausbildungssemester_id, - ausbildungssemester.semester as ausbildungssemester_semester, - ausbildungssemester.name as ausbildungssemester_kurzbz, - lehreinheit.lehreinheit_fk as lehreinheit_fk, - lehreinheit.lehrform_fk as lehrform_id, - lehrform.kurzbezeichnung as lehrform_kurzbz, - lehreinheit.gruppe_fk as gruppe_id, - fas_function_get_fullname_from_gruppe(lehreinheit.gruppe_fk) as gruppe_kurzbz, - lehreinheit.nummer as nummer, - lehreinheit.bezeichnung as bezeichnung, - lehreinheit.kurzbezeichnung as kurzbezeichnung, - lehreinheit.semesterwochenstunden as semesterwochenstunden, - lehreinheit.gesamtstunden as gesamtstunden, - lehreinheit.plankostenprolektor as plankostenprolektor, - lehreinheit.planfaktor as planfaktor, - lehreinheit.planlektoren as planlektoren, - lehreinheit.raumtyp_fk as raumtyp_id, - lehreinheit.alternativraumtyp_fk as raumtypalternativ_id, - lehreinheit.bemerkungen as bemerkungen, - lehreinheit.ivar1 as wochenrythmus, - lehreinheit.ivar2 as kalenderwoche, - lehreinheit.ivar3 as stundenblockung, - lehreinheit.bivar1 as koordinator_id, - (Select vorname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_vorname, - (Select familienname from person join mitarbeiter on (person_fk=person_pk) where mitarbeiter_pk=lehreinheit.bivar1) as koordinator_nachname, - lehreinheit.creationdate as creationdate, - lehreinheit.creationuser as creationuser - FROM lehreinheit, studiengang, studiensemester, fachbereich, ausbildungssemester, lehrform - WHERE lehreinheit.studiengang_fk=studiengang.studiengang_pk - AND lehreinheit.studiensemester_fk=studiensemester.studiensemester_pk - AND lehreinheit.fachbereich_fk = fachbereich.fachbereich_pk - AND ausbildungssemester.ausbildungssemester_pk=lehreinheit.ausbildungssemester_fk - AND lehreinheit.lehrform_fk = lehrform.lehrform_pk - AND studiensemester.studiensemester_pk= '$stsem' - AND lehreinheit_fk='$lehreinheit_id'"; - - if($result=pg_query($this->conn,$qry)) - { - while($row=pg_fetch_object($result)) - { - - if($row->gruppe_id!=$gruppe_id) - { - - $lehreinheit_obj = new lehreinheit($this->conn); - - $lehreinheit_obj->lehreinheit_id = $row->lehreinheit_id; - $lehreinheit_obj->studiengang_id = $row->studiengang_id; - $lehreinheit_obj->studiengang_kurzbz = $row->studiengang_kurzbz; - $lehreinheit_obj->studiensemester_id = $row->studiensemester_id; - $lehreinheit_obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $lehreinheit_obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $lehreinheit_obj->fachbereich_id = $row->fachbereich_id; - $lehreinheit_obj->fachbereich_bezeichnung = $row->fachbereich_bezeichnung; - $lehreinheit_obj->ausbildungssemester_id = $row->ausbildungssemester_id; - $lehreinheit_obj->ausbildungssemester_semester = $row->ausbildungssemester_semester; - $lehreinheit_obj->ausbildungssemester_kurzbz = $row->ausbildungssemester_kurzbz; - $lehreinheit_obj->lehreinheit_fk = $row->lehreinheit_fk; - $lehreinheit_obj->lehrform_id = $row->lehrform_id; - $lehreinheit_obj->lehrform_kurzbz = $row->lehrform_kurzbz; - $lehreinheit_obj->gruppe_id = $row->gruppe_id; - $lehreinheit_obj->gruppe_kurzbz = $row->gruppe_kurzbz; - $lehreinheit_obj->nummer = $row->nummer; - $lehreinheit_obj->bezeichnung = $row->bezeichnung; - $lehreinheit_obj->kurzbezeichnung = $row->kurzbezeichnung; - $lehreinheit_obj->semesterwochenstunden = $row->semesterwochenstunden; - $lehreinheit_obj->gesamtstunden = $row->gesamtstunden; - $lehreinheit_obj->plankostenprolektor = $row->plankostenprolektor; - $lehreinheit_obj->planfaktor = $row->planfaktor; - $lehreinheit_obj->planlektoren = $row->planlektoren; - $lehreinheit_obj->raumtyp_id = $row->raumtyp_id; - $lehreinheit_obj->raumtypalternativ_id = $row->raumtypalternativ_id; - $lehreinheit_obj->bemerkungen = $row->bemerkungen; - $lehreinheit_obj->wochenrythmus = $row->wochenrythmus; - $lehreinheit_obj->start_kw = $row->kalenderwoche; - $lehreinheit_obj->stundenblockung = $row->stundenblockung; - $lehreinheit_obj->koordinator_id = $row->koordinator_id; - $lehreinheit_obj->koordinator_vorname = $row->koordinator_vorname; - $lehreinheit_obj->koordinator_nachname = $row->koordinator_nachname; - $lehreinheit_obj->updateamum = $row->creationdate; - $lehreinheit_obj->updatevon = $row->creationuser; - - $this->result[] = $lehreinheit_obj; - } - } - } - else - { - $this->errormsg = "Fehler beim Auslesen der partizipierenden Lehreinheiten"; - return false; - } - } - - } - else - { - $this->errormsg = "Fehler bei einer SQL Abfrage"; - return false; - } - //$this->errormsg = $qry; - // return false; - return true; - } - - /** - * Setzt eine Partizipierung - * @param $quell_lehreinheit_id ... Lehreinheit welche an eine andere Lehreinheit angehaengt wird - * $ziel_lehreinheit_id .... Lehreinheit an welche die andere Lehreinheit angehaengt wird - * - * Wenn $ziel_lehreinheit_id = -1 dann wird die zuteilung entfernt - * Wenn Ziel Lehreinheit bereits eine Partizipierende ist, dann wird automatisch die uebergeordnete genommen - */ - function setPartizipierung($quell_lehreinheit_id, $ziel_lehreinheit_id) - { - //Parameter auf gueltigkeit pruefen - if(is_numeric($quell_lehreinheit_id) && is_numeric($ziel_lehreinheit_id)) - { - //Keine Aktion bei gleicher ID - if($quell_lehreinheit_id != $ziel_lehreinheit_id) - { - //Wenn Ziel = -1 dann die Partizipierung loeschen - if($ziel_lehreinheit_id!=-1) - { - //Wenn die Quell-Lehreinheit eine Partizipierende Lehreinheit hat dann kann Sie nicht an eine andere - //angehaengt werden - $qry = "SELECT count(*) as anz FROM lehreinheit WHERE lehreinheit_fk='$quell_lehreinheit_id'"; - if($result = pg_query($this->conn,$qry)) - { - if($row = pg_fetch_object($result)) - { - if($row->anz>0) - { - $this->errormsg = 'Operation nicht zulaessig'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Quell-Lehreinheit'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Quell-Lehreinheit'; - return false; - } - //Nummer der Ziel Lehreinheit ermitteln - $qry = "SELECT nummer, lehreinheit_fk FROM lehreinheit WHERE lehreinheit_pk='$ziel_lehreinheit_id'"; - if($result = pg_query($this->conn, $qry)) - { - if($row = pg_fetch_object($result)) - { - if($row->lehreinheit_fk==-1 || $row->lehreinheit_fk==null) - { - $nummer = $row->nummer; - } - else - { - //Wenn Ziel Lehreinheit selbst eine Partizipierende Lehreinheit ist, - //wird die uebergeordnete Lehreinheit genommen - $ziel_lehreinheit_id = $row->lehreinheit_fk; - - $qry = "SELECT nummer FROM lehreinheit WHERE lehreinheit_pk='$ziel_lehreinheit_id'"; - if($result = pg_query($this->conn, $qry)) - { - if($row = pg_fetch_object($result)) - $nummer = $row->nummer; - else - { - $this->errormsg = 'Fehler beim Auslesen der Nummer'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Auslesen der Nummer'; - return false; - } - } - //Zuteilung speichern - $qry = "UPDATE lehreinheit SET lehreinheit_fk='$ziel_lehreinheit_id', - bemerkungen=(bemerkungen || ' Partizipierende LVA bei $nummer') - WHERE lehreinheit_pk = '$quell_lehreinheit_id'"; - - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim speichern'; - return false; - } - - } - else - { - $this->errormsg = 'Ziel Lehreinheit konnte nicht ermittelt werden'; - return true; - } - } - else - { - $this->errormsg = 'Ziel Lehreinheit konnte nicht ermittelt werden'; - return false; - } - } - else - { - $qry = "SELECT b.nummer as nummer, a.bemerkungen as bemerkung FROM lehreinheit as a, lehreinheit as b where a.lehreinheit_fk=b.lehreinheit_pk AND a.lehreinheit_pk='$quell_lehreinheit_id'"; - if($result = pg_query($this->conn, $qry)) - { - if($row = pg_fetch_object($result)) - { - $bemerkung = $row->bemerkung; - $bemerkung = str_replace('Partizipierende LVA bei '.$row->nummer,'',$bemerkung); - - //Loeschen der Zuteilung - $qry = "UPDATE lehreinheit SET lehreinheit_fk='-1', bemerkungen = '$bemerkung' WHERE lehreinheit_pk='$quell_lehreinheit_id'"; - if(pg_query($this->conn, $qry)) - return true; - else - { - $this->errormsg = 'Fehler beim speichern'; - return false; - } - } - else - { - $this->errormsg = 'Nummer konnte nicht ermittelt werden'; - return false; - } - } - else - { - $this->errormsg = 'Nummer konnte nicht ermittelt werden'; - return false; - } - } - } - else - { - $this->errormsg = 'Quell und Ziel ID sind identisch'; - return false; - } - } - else - { - $this->errormsg = 'Quell und Ziel ID muessen gueltige Zahlen sein'; - return false; - } - } -} +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class lehreinheit +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $lehreinheiten = array(); // lehreinheit Objekt + + //Tabellenspalten + var $lehreinheit_id; // integer + var $lehrveranstaltung_id; // integer + var $studiensemester_kurzbz; // varchar(16) + var $lehrfach_id; // integer + var $lehrform_kurzbz; // varchar(8) + var $stundenblockung; // smalint + var $wochenrythmus; // smalint + var $start_kw; // smalint + var $raumtyp; // varchar(8) + var $raumtypalternativ; // varchar(8) + var $lehre; // boolean + var $anmerkung; // varchar(255) + var $unr; // integer + var $ext_id; // bigint + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine LE + // * @param $conn Datenbank-Connection + // * $gruppe_kurzbz + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function lehreinheit($conn, $lehreinheit_id=null, $unicode=false) + { + $this->conn = $conn; + + if($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry = "SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + return false; + } + + if($lehreinheit_id!=null) + $this->load($lehreinheit_id); + } + + // ********************************************************* + // * Laedt die LE + // * @param lehreinheit_id + // ********************************************************* + function load($lehreinheit_id) + { + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if($this->lehreinheit_id!='' && !is_numeric($this->lehreinheit_id)) + { + $this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein'; + return false; + } + if(!is_numeric($this->lehrveranstaltung_id)) + { + $this->errormsg = 'LehrveranstaltungsNr muss eine gueltige Zahl sein'; + return false; + } + if(strlen($this->studiensemester_kurzbz)>16) + { + $this->errormsg = 'Studiensemesterkurzbz darf nicht laenger als 16 Zeichen sein'; + return false; + } + if($this->studiensemester_kurzbz=='') + { + $this->errormsg = 'Studiensemester muss angegeben werden'; + return false; + } + if(!is_numeric($this->lehrfach_id)) + { + $this->errormsg = 'Lehrfach_id muss eine gueltige Zahl sein'; + return false; + } + if(strlen($this->lehrform_kurzbz)>8) + { + $this->errormsg = 'Lehrform_kurzbz darf nicht laenger als 8 Zeichen sein'; + return false; + } + if($this->lehrform_kurzbz=='') + { + $this->lehrform_kurzbz='SO'; + //TODO + //$this->errormsg = 'Lehrform muss angegeben werden'; + //return false; + } + if(!is_numeric($this->stundenblockung)) + { + $this->errormsg = 'Stundenblockung muss eine gueltige Zahl sein'; + return false; + } + if(!is_numeric($this->wochenrythmus)) + { + $this->errormsg = 'Wochenrythmus muss eine gueltige Zahl sein'; + return false; + } + if($this->start_kw!='' && !is_numeric($this->start_kw)) + { + $this->errormsg = 'StartKW muss eine gueltige Zahl sein'; + return false; + } + if($this->start_kw!='' && ($this->start_kw>53 || $this->start_kw<1)) + { + $this->errormsg = 'StartKW muss zwischen 1 und 53 liegen'; + return false; + } + if(strlen($this->raumtyp)>8) + { + $this->errormsg = 'Raumtyp darf nicht laenger als 8 Zeichen sein'; + return false; + } + if(strlen($this->raumtypalternativ)>8) + { + $this->errormsg = 'Raumtypalternativ darf nicht alenger als 8 Zeichen sein'; + return false; + } + if($this->raumtypalternativ=='') + { + //TODO + $this->raumtypalternativ='Dummy'; + } + if(!is_bool($this->lehre)) + { + $this->errormsg = 'Lehre muss ein boolscher Wert sein'; + return false; + } + if(strlen($this->anmerkung)>255) + { + $this->errormsg = 'Anmerkung darf nicht laenger als 255 Zeichen sein'; + return false; + } + if($this->unr!='' && !is_numeric($this->unr)) + { + $this->errormsg = 'UNR muss eine gueltige Zahl sein'; + return false; + } + if($this->ext_id!='' && !is_numeric($this->ext_id)) + { + $this->errormsg = 'Ext_id muss eine gueltige Zahl sein'; + return false; + } + + return true; + } + + // ************************************************ + // * wenn $var '' ist wird NULL zurueckgegeben + // * wenn $var !='' ist werden Datenbankkritische + // * Zeichen mit Backslash versehen und das Ergbnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + + // ************************************************************ + // * Speichert LE in die Datenbank + // * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + // * angelegt, ansonsten der Datensatz upgedated + // * @return true wenn erfolgreich, false im Fehlerfall + // ************************************************************ + function save($new=null) + { + if(is_null($new)) + $new = $this->new; + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($new) + { + //ToDo ID entfernen + $qry = 'INSERT INTO lehre.tbl_lehreinheit (lehrveranstaltung_id, studiensemester_kurzbz, + lehrfach_id, lehrform_kurzbz, stundenblockung, wochenrythmus, + start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, ext_id) + VALUES('.$this->addslashes($this->lehrveranstaltung_id).','. + $this->addslashes($this->studiensemester_kurzbz).','. + $this->addslashes($this->lehrfach_id).','. + $this->addslashes($this->lehrform_kurzbz).','. + $this->addslashes($this->stundenblockung).','. + $this->addslashes($this->wochenrythmus).','. + $this->addslashes($this->start_kw).','. + $this->addslashes($this->raumtyp).','. + $this->addslashes($this->raumtypalternativ).','. + ($this->lehre?'true':'false').','. + $this->addslashes($this->anmerkung).','. + $this->addslashes($this->unr).','. + $this->addslashes($this->ext_id).');'; + } + else + { + $qry = 'UPDATE lehre.tbl_lehreinheit SET'. + ' lehrveranstaltung_nr='.$this->addslashes($this->lehrveranstaltung_id).','. + ' studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).','. + ' lehrfach_id='.$this->addslashes($this->lehrfach_id).','. + ' lehrform_kurzbz='.$this->addslashes($this->lehrform_kurzbz).','. + ' stundenblockung='.$this->addslashes($this->stundenblockung).','. + ' wochenrythmus='.$this->addslashes($this->wochenrythmus).','. + ' start_kw='.$this->addslashes($this->start_kw).','. + ' raumtyp='.$this->addslashes($this->raumtyp).','. + ' raumtypalternativ='.$this->addslashes($this->raumtypalternativ).','. + ' lehre='.($this->lehre?'true':'false').','. + ' anmerkung='.$this->addslashes($this->anmerkung).','. + ' unr='.$this->addslashes($this->unr).','. + ' ext_id='.$this->addslashes($this->ext_id). + " WHERE lehreinheit_id=".$this->addslashes($this->lehreinheit_id).";"; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der LE:'.$qry; + return false; + } + } +} ?> \ No newline at end of file diff --git a/include/fas/lehreinheitgruppe.class.php b/include/fas/lehreinheitgruppe.class.php new file mode 100644 index 000000000..a5b917c75 --- /dev/null +++ b/include/fas/lehreinheitgruppe.class.php @@ -0,0 +1,175 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class lehreinheitgruppe +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $lehreinheitgruppe = array(); // lehreinheitgruppe Objekt + + //Tabellenspalten + var $lehreinheitgruppe_id; //integer + var $lehreinheit_id; // integer + var $studiengang_kz; // integer + var $semester; // smalint + var $verband; // char(1) + var $gruppe; // char(1) + var $gruppe_kurzbz; // varchar(16) + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine LE + // * @param $conn Datenbank-Connection + // * $gruppelehreinheit_id + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function lehreinheitgruppe($conn, $lehreinheitgruppe_id=null, $unicode=false) + { + $this->conn = $conn; + + if($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry = "SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + return false; + } + + if($lehreinheitgruppe_id!=null) + $this->load($lehreinheitgruppe_id); + } + + // ********************************************************* + // * Laedt die LEGruppe + // * @param lehreinheit_id + // ********************************************************* + function load($lehreinheitgruppe_id) + { + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if(!is_numeric($this->lehreinheit_id)) + { + $this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein'; + return false; + } + if(!is_numeric($this->studiengang_kz)) + { + $this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein'; + return false; + } + if($this->semester!='' && !is_numeric($this->semester)) + { + $this->errormsg = 'Semester muss eine gueltige Zahl sein'; + return false; + } + if(strlen($this->verband)>1) + { + $this->verband = 'Verband darf nicht laenger als 1 Zeichen sein'; + return false; + } + if(strlen($this->gruppe)>1) + { + $this->gruppe = 'Gruppe darf nicht laenger als 1 Zeichen sein'; + return false; + } + if(strlen($this->gruppe_kurzbz)>16) + { + $this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 16 Zeichen sein'; + return false; + } + return true; + } + + // ************************************************ + // * wenn $var '' ist wird NULL zurueckgegeben + // * wenn $var !='' ist werden Datenbankkritische + // * Zeichen mit Backslash versehen und das Ergbnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + + // ************************************************************ + // * Speichert GruppeLE in die Datenbank + // * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + // * angelegt, ansonsten der Datensatz upgedated + // * @return true wenn erfolgreich, false im Fehlerfall + // ************************************************************ + function save($new=null) + { + if(is_null($new)) + $new = $this->new; + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($new) + { + //ToDo ID entfernen + $qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz) + VALUES('.$this->addslashes($this->lehreinheit_id).','. + $this->addslashes($this->studiengang_kz).','. + $this->addslashes($this->semester).','. + $this->addslashes($this->verband).','. + $this->addslashes($this->gruppe).','. + $this->addslashes($this->gruppe_kurzbz).');'; + } + else + { + $qry = 'UPDATE lehre.tbl_lehreinheitgruppe SET'. + ' lehreinheit_id='.$this->addslashes($this->lehreinheit_id).','. + ' studiengang_kz='.$this->addslashes($this->studiengang_kz).','. + ' semester='.$this->addslashes($this->semester).','. + ' verband='.$this->addslashes($this->verband).','. + ' gruppe='.$this->addslashes($this->gruppe).','. + ' gruppe_kurzbz='.$this->addslashes($this->gruppe_kurzbz).','. + " WHERE lehreinheitgruppe_id=".$this->addslashes($this->lehreinheitgruppe_id).";"; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der GruppeLE:'.$qry; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/fas/lehreinheitmitarbeiter.class.php b/include/fas/lehreinheitmitarbeiter.class.php new file mode 100644 index 000000000..be3a43ebe --- /dev/null +++ b/include/fas/lehreinheitmitarbeiter.class.php @@ -0,0 +1,148 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class lehreinheitmitarbeiter +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $lehreinheitmitarbeiter = array(); // lehreinheitmitarbeiter Objekt + + //Tabellenspalten + var $lehreinheit_id; // integer + var $uid; // varchar(16) + var $semesterstunden; // smalint + var $planstunden; // smalint + var $stundensatz; // numeric(6,2) + var $faktor; // numeric(2,1) + var $anmerkung; // varchar(256) + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine LE + // * @param $conn Datenbank-Connection + // * $lehreinheit_id + // * $uid + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function lehreinheitmitarbeiter($conn, $lehreinheit_id=null, $uid=null, $unicode=false) + { + $this->conn = $conn; + + if($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry = "SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + return false; + } + + if($lehreinheit_id!=null && $uid!=null) + $this->load($lehreinheit_id, $uid); + } + + // ********************************************************* + // * Laedt die LEMitarbeiter + // * @param lehreinheit_id + // ********************************************************* + function load($lehreinheit_id, $uid) + { + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + return true; + } + + // ************************************************ + // * wenn $var '' ist wird NULL zurueckgegeben + // * wenn $var !='' ist werden Datenbankkritische + // * Zeichen mit Backslash versehen und das Ergbnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + + // ************************************************************ + // * Speichert LEMitarbeiter in die Datenbank + // * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + // * angelegt, ansonsten der Datensatz upgedated + // * @return true wenn erfolgreich, false im Fehlerfall + // ************************************************************ + function save($new=null) + { + if(is_null($new)) + $new = $this->new; + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($new) + { + //ToDo ID entfernen + $qry = 'INSERT INTO lehre.tbl_lehreinheitmitarbeiter (lehreinheit_id, uid, semesterstunden, planstunden, + stundensatz, faktor, anmerkung) + VALUES('.$this->addslashes($this->lehreinheit_id).','. + $this->addslashes($this->uid).','. + $this->addslashes($this->semesterstunden).','. + $this->addslashes($this->planstunden).','. + $this->addslashes($this->stundensatz).','. + $this->addslashes($this->faktor).','. + $this->addslashes($this->anmerkung).');'; + } + else + { + $qry = 'UPDATE lehre.tbl_lehreinheitmitarbeiter SET'. + ' semesterstunden='.$this->addslashes($this->semesterstunden).','. + ' planstunden='.$this->addslashes($this->planstunden).','. + ' stundensatz='.$this->addslashes($this->stundensatz).','. + ' faktor='.$this->addslashes($this->faktor).','. + ' anmerkung='.$this->addslashes($this->anmerkung).','. + " WHERE lehreinheit_id=".$this->addslashes($this->lehreinheit_id)." AND + uid=".$this->lehreinheit_id.";"; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der LEMitarbeiter:'.$qry; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/fas/lehrfach.class.php b/include/fas/lehrfach.class.php index c437a86ac..bd7930e64 100644 --- a/include/fas/lehrfach.class.php +++ b/include/fas/lehrfach.class.php @@ -28,9 +28,9 @@ class lehrfach var $lehrfaecher = array(); // lehrfach Objekt //Tabellenspalten - var $lehrfach_nr; // integer + var $lehrfach_id; // integer var $studiengang_kz; // integer - var $fachbereich_id; // integer + var $fachbereich_kurzbz;// integer var $kurzbz; // varchar(12) var $bezeichnung; // varchar(255) var $farbe; // char(6) @@ -45,7 +45,7 @@ class lehrfach // * $unicode Gibt an ob die Daten mit UNICODE Codierung // * oder LATIN9 Codierung verarbeitet werden sollen // *********************************************************************** - function lehrfach($conn, $lehrfach_nr=null, $unicode=false) + function lehrfach($conn, $lehrfach_id=null, $unicode=false) { $this->conn = $conn; @@ -60,20 +60,20 @@ class lehrfach return false; } - if($lehrfach_nr != null) - $this->load($lehrfach_nr); + if($lehrfach_id != null) + $this->load($lehrfach_id); } // ********************************************************* // * Laedt Lehrfach mit der uebergebenen ID // * @param $lehrfach_nr Nr des LF das geladen werden soll // ********************************************************* - function load($lehrfach_nr) + function load($lehrfach_id) { //lehrfach_nr auf Gueltigkeit pruefen - if(is_numeric($lehrfach_nr) && $lehrfach_nr!='') + if(is_numeric($lehrfach_id) && $lehrfach_id!='') { - $qry = "SELECT * FROM tbl_lehrfach WHERE lehrfach_nr='$lehrfach_nr'"; + $qry = "SELECT * FROM lehre.tbl_lehrfach WHERE lehrfach_id='$lehrfach_id'"; if(!$result=pg_query($this->conn,$qry)) { @@ -83,9 +83,9 @@ class lehrfach if($row = pg_fetch_object($result)) { - $this->lehrfach_nr = $row->lehrfach_nr; + $this->lehrfach_id = $row->lehrfach_id; $this->studiengang_kz = $row->studiengang_kz; - $this->fachbereich_id = $row->fachbereich_id; + $this->fachbereich_kurzbz = $row->fachbereich_kurzbz; $this->kurzbz = $row->kurzbz; $this->bezeichnung = $row->bezeichnung; $this->farbe = $row->farbe; @@ -95,7 +95,7 @@ class lehrfach } else { - $this->errormsg = 'Es ist kein Lehrfach mit der Nr '.$lehrfach_nr.' vorhanden'; + $this->errormsg = 'Es ist kein Lehrfach mit der ID '.$lehrfach_id.' vorhanden'; return false; } @@ -120,9 +120,9 @@ class lehrfach $this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein'; return false; } - if(!is_numeric($this->fachbereich_id)) + if(strlen($this->fachbereich_kurzbz)>16) { - $this->errormsg = 'Fachbereich_id muss eine gueltige Zahl sein'; + $this->errormsg = 'Fachbereich_kurzbz darf nicht laenger als 16 Zeichen sein'; return false; } if(strlen($this->kurzbz)>12) @@ -184,11 +184,11 @@ class lehrfach if($this->new) { - $qry = 'INSERT INTO tbl_lehrfach (lehrfach_nr, studiengang_kz, fachbereich_id, kurzbz, + $qry = 'INSERT INTO lehre.tbl_lehrfach (lehrfach_id, studiengang_kz, fachbereich_kurzbz, kurzbz, bezeichnung, farbe, aktiv, semester, sprache) - VALUES('.$this->addslashes($this->lehrfach_nr).','. + VALUES('.$this->addslashes($this->lehrfach_id).','. $this->addslashes($this->studiengang_kz).','. - $this->addslashes($this->fachbereich_id).','. + $this->addslashes($this->fachbereich_kurzbz).','. $this->addslashes($this->kurzbz).','. $this->addslashes($this->bezeichnung).','. $this->addslashes($this->farbe).','. @@ -205,16 +205,16 @@ class lehrfach return false; } - $qry = 'UPDATE tbl_lehrfach SET'. + $qry = 'UPDATE lehre.tbl_lehrfach SET'. ' studiengang_kz='.$this->addslashes($this->studiengang_kz).','. - ' fachbereich_id='.$this->addslashes($this->fachbereich_id).','. + ' fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).','. ' kurzbz='.$this->addslashes($this->kurzbz).','. ' bezeichnung='.$this->addslashes($this->bezeichnung).','. ' farbe='.$this->addslashes($this->farbe).','. ' aktiv='.($this->aktiv?'true':'false').','. ' semester='.$this->semester.','. ' sprache='.$this->addslashes($this->sprache). - " WHERE lehrfach_nr='$this->lehrfach_nr'"; + " WHERE lehrfach_id='$this->lehrfach_id'"; } if(pg_query($this->conn,$qry)) diff --git a/include/fas/lehrform.class.php b/include/fas/lehrform.class.php index c81358ff5..e33a8502d 100644 --- a/include/fas/lehrform.class.php +++ b/include/fas/lehrform.class.php @@ -64,7 +64,7 @@ class lehrform // ********************************************************* function load($lehrform_kurzbz) { - $qry = "SELECT * FROM tbl_lehrform WHERE lehrform_kurzbz='".addslashes($lehrfach_nr)."'"; + $qry = "SELECT * FROM lehre.tbl_lehrform WHERE lehrform_kurzbz='".addslashes($lehrfach_nr)."'"; if(!$result=pg_query($this->conn,$qry)) { $this->errormsg = 'Fehler beim lesen der Lehrform'; @@ -138,14 +138,14 @@ class lehrform if($this->new) { - $qry = "INSERT INTO tbl_lehrform (lehrform_kurzbz, bezeichnung, verplanen) + $qry = "INSERT INTO lehre.tbl_lehrform (lehrform_kurzbz, bezeichnung, verplanen) VALUES('".addslashes($this->lehrform_kurzbz)."',". $this->addslashes($this->bezeichnung).','. ($this->verplanen?'true':'false').');'; } else { - $qry = 'UPDATE tbl_lehrform SET'. + $qry = 'UPDATE lehre.tbl_lehrform SET'. ' bezeichnung='.$this->addslashes($this->bezeichnung).','. ' verplanen='.($this->verplanen?'true':'false'). " WHERE lehrform_kurzbz='$this->lehrform_kurzbz'"; diff --git a/include/fas/lehrverband.class.php b/include/fas/lehrverband.class.php new file mode 100644 index 000000000..485308310 --- /dev/null +++ b/include/fas/lehrverband.class.php @@ -0,0 +1,154 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class lehrverband +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $lehrverbaende = array(); // lehrverband Objekt + + //Tabellenspalten + var $studiengang_kz; // integer + var $semester; // integer + var $verband; // integer + var $gruppe; // integer + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional einen Lehrverband + // * @param $conn Datenbank-Connection + // * + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function lehrverband($conn, $unicode=false) + { + $this->conn = $conn; + + if($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry = "SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + return false; + } + } + + function exists($studiengang_kz, $semester, $verband, $gruppe) + { + $qry = "SELECT count(*) as anzahl FROM tbl_lehrverband WHERE + studiengang_kz='".addslashes($studiengang_kz)."' AND + semester='".addslashes($semester)."' AND + verband='".addslashes($verband)."' AND + gruppe='".addslashes($gruppe)."'"; + + if($row=pg_fetch_object(pg_query($this->conn, $qry))) + { + if($row->anzahl>0) + { + return true; + } + else + { + return false; + } + } + else + { + $this->errormsg = 'Fehler bei Abfrage: '.$qry; + return false; + } + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if(!is_numeric($this->semester)) + { + $this->errormsg = 'Semester muss eine gueltige Zahl sein'; + return false; + } + if(!is_numeric($this->studiengang_kz)) + { + $this->errormsg = 'Studiengang muss eine gueltige Zahl sein'; + return false; + } + if($this->verband=='') + { + $this->verband=' '; + } + if($this->gruppe=='') + { + $this->gruppe=' '; + } + return true; + } + + // ************************************************ + // * wenn $var '' ist wird NULL zurueckgegeben + // * wenn $var !='' ist werden Datenbankkritische + // * Zeichen mit Backslash versehen und das Ergbnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + + // ************************************************************ + // * Speichert Lehrverband in die Datenbank + // * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + // * angelegt, ansonsten der Datensatz upgedated + // * @return true wenn erfolgreich, false im Fehlerfall + // ************************************************************ + function save() + { + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + $qry = 'INSERT INTO tbl_lehrverband (studiengang_kz, semester, verband, gruppe) + VALUES('.$this->addslashes($this->studiengang_kz).','. + $this->addslashes($this->semester).','. + $this->addslashes($this->verband).','. + $this->addslashes($this->gruppe).');'; + if(pg_query($this->conn,$qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Lehrverbands:'.$qry; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/fas/reservierung.class.php b/include/fas/reservierung.class.php index 265aab8d6..4b4fe00bf 100644 --- a/include/fas/reservierung.class.php +++ b/include/fas/reservierung.class.php @@ -168,7 +168,7 @@ class reservierung if($this->new) { - $qry = 'INSERT INTO tbl_reservierung (reservierung_id, ort_kurzbz, studiengang_kz, uid, stunde, datum, titel, + $qry = 'INSERT INTO campus.tbl_reservierung (reservierung_id, ort_kurzbz, studiengang_kz, uid, stunde, datum, titel, beschreibung, semester, verband, gruppe, gruppe_kurzbz) VALUES('.$this->addslashes($this->reservierung_id).','. $this->addslashes($this->ort_kurzbz).','. @@ -185,7 +185,7 @@ class reservierung } else { - $qry = 'UPDATE tbl_reservierung SET'. + $qry = 'UPDATE campus.tbl_reservierung SET'. ' ort_kurzbz='.$this->addslashes($this->ort_kurzbz).','. ' studiengang_kz='.$this->addslashes($this->studiengang_kz).','. ' uid='.$this->addslashes($this->uid).','. diff --git a/include/fas/stunde.class.php b/include/fas/stunde.class.php index 7bcc5b153..487cebaf9 100644 --- a/include/fas/stunde.class.php +++ b/include/fas/stunde.class.php @@ -107,14 +107,14 @@ class stunde if($this->new) { - $qry = "INSERT INTO tbl_stunde (stunde, beginn, ende) + $qry = "INSERT INTO lehre.tbl_stunde (stunde, beginn, ende) VALUES('".$this->stunde."',". $this->addslashes($this->beginn).','. $this->addslashes($this->ende).');'; } else { - $qry = 'UPDATE tbl_stunde SET'. + $qry = 'UPDATE lehre.tbl_stunde SET'. ' beginn='.$this->addslashes($this->beginn).','. ' ende='.$this->addslashes($this->ende). " WHERE stunde=".$this->stunde; diff --git a/include/fas/stundenplan.class.php b/include/fas/stundenplan.class.php new file mode 100644 index 000000000..e45338d66 --- /dev/null +++ b/include/fas/stundenplan.class.php @@ -0,0 +1,261 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class stundenplan +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $stundenplan = array(); // stundenplan Objekt + + //Tabellenspalten + var $lehreinheit_id; // integer + var $lehrveranstaltung_nr; // integer + var $studiensemester_kurzbz; // varchar(16) + var $lehrfach_nr; // integer + var $lehrform_kurzbz; // varchar(8) + var $stundenblockung; // smalint + var $wochenrythmus; // smalint + var $start_kw; // smalint + var $raumtyp; // varchar(8) + var $raumtypalternativ; // varchar(8) + var $lehre; // boolean + var $anmerkung; // varchar(255) + var $unr; // integer + var $ext_id; // bigint + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine LE + // * @param $conn Datenbank-Connection + // * $gruppe_kurzbz + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function lehreinheit($conn, $lehreinheit_id=null, $unicode=false) + { + $this->conn = $conn; + + if($unicode) + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + else + $qry = "SET CLIENT_ENCODING TO 'LATIN9';"; + + if(!pg_query($conn,$qry)) + { + $this->errormsg = 'Encoding konnte nicht gesetzt werden'; + return false; + } + + if($lehreinheit_id!=null) + $this->load($lehreinheit_id); + } + + // ********************************************************* + // * Laedt die LE + // * @param lehreinheit_id + // ********************************************************* + function load($lehreinheit_id) + { + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if($this->lehreinheit_id!='' && !is_numeric($this->lehreinheit_id)) + { + $this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein'; + return false; + } + if(!is_numeric($this->lehrveranstaltung_nr)) + { + $this->errormsg = 'LehrveranstaltungsNr muss eine gueltige Zahl sein'; + return false; + } + if(strlen($this->studiensemester_kurzbz)>16) + { + $this->errormsg = 'Studiensemesterkurzbz darf nicht laenger als 16 Zeichen sein'; + return false; + } + if($this->studiensemester_kurzbz=='') + { + $this->errormsg = 'Studiensemester muss angegeben werden'; + return false; + } + if(!is_numeric($this->lehrfach_nr)) + { + $this->errormsg = 'Lehrfach_nr muss eine gueltige Zahl sein'; + return false; + } + if(strlen($this->lehrform_kurzbz)>8) + { + $this->errormsg = 'Lehrform_kurzbz darf nicht laenger als 8 Zeichen sein'; + return false; + } + if($this->lehrform_kurzbz=='') + { + $this->lehrform_kurzbz='SO'; + //TODO + //$this->errormsg = 'Lehrform muss angegeben werden'; + //return false; + } + if(!is_numeric($this->stundenblockung)) + { + $this->errormsg = 'Stundenblockung muss eine gueltige Zahl sein'; + return false; + } + if(!is_numeric($this->wochenrythmus)) + { + $this->errormsg = 'Wochenrythmus muss eine gueltige Zahl sein'; + return false; + } + if($this->start_kw!='' && !is_numeric($this->start_kw)) + { + $this->errormsg = 'StartKW muss eine gueltige Zahl sein'; + return false; + } + if($this->start_kw!='' && ($this->start_kw>53 || $this->start_kw<1)) + { + $this->errormsg = 'StartKW muss zwischen 1 und 53 liegen'; + return false; + } + if(strlen($this->raumtyp)>8) + { + $this->errormsg = 'Raumtyp darf nicht laenger als 8 Zeichen sein'; + return false; + } + if(strlen($this->raumtypalternativ)>8) + { + $this->errormsg = 'Raumtypalternativ darf nicht alenger als 8 Zeichen sein'; + return false; + } + if($this->raumtypalternativ=='') + { + //TODO + $this->raumtypalternativ='Dummy'; + } + if(!is_bool($this->lehre)) + { + $this->errormsg = 'Lehre muss ein boolscher Wert sein'; + return false; + } + if(strlen($this->anmerkung)>255) + { + $this->errormsg = 'Anmerkung darf nicht laenger als 255 Zeichen sein'; + return false; + } + if($this->unr!='' && !is_numeric($this->unr)) + { + $this->errormsg = 'UNR muss eine gueltige Zahl sein'; + return false; + } + if($this->ext_id!='' && !is_numeric($this->ext_id)) + { + $this->errormsg = 'Ext_id muss eine gueltige Zahl sein'; + return false; + } + + return true; + } + + // ************************************************ + // * wenn $var '' ist wird NULL zurueckgegeben + // * wenn $var !='' ist werden Datenbankkritische + // * Zeichen mit Backslash versehen und das Ergbnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + + // ************************************************************ + // * Speichert LE in die Datenbank + // * Wenn $new auf true gesetzt ist wird ein neuer Datensatz + // * angelegt, ansonsten der Datensatz upgedated + // * @return true wenn erfolgreich, false im Fehlerfall + // ************************************************************ + function save($new=null) + { + if(is_null($new)) + $new = $this->new; + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($new) + { + //ToDo ID entfernen + $qry = 'INSERT INTO lehre.tbl_lehreinheit (lehrveranstaltung_nr, studiensemester_kurzbz, + lehrfach_nr, lehrform_kurzbz, stundenblockung, wochenrythmus, + start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, ext_id) + VALUES('.$this->addslashes($this->lehrveranstaltung_nr).','. + $this->addslashes($this->studiensemester_kurzbz).','. + $this->addslashes($this->lehrfach_nr).','. + $this->addslashes($this->lehrform_kurzbz).','. + $this->addslashes($this->stundenblockung).','. + $this->addslashes($this->wochenrythmus).','. + $this->addslashes($this->start_kw).','. + $this->addslashes($this->raumtyp).','. + $this->addslashes($this->raumtypalternativ).','. + ($this->lehre?'true':'false').','. + $this->addslashes($this->anmerkung).','. + $this->addslashes($this->unr).','. + $this->addslashes($this->ext_id).');'; + } + else + { + $qry = 'UPDATE lehre.tbl_lehreinheit SET'. + ' lehrveranstaltung_nr='.$this->addslashes($this->lehrveranstaltung_nr).','. + ' studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).','. + ' lehrfach_nr='.$this->addslashes($this->lehrfach_nr).','. + ' lehrform_kurzbz='.$this->addslashes($this->lehrform_kurzbz).','. + ' stundenblockung='.$this->addslashes($this->stundenblockung).','. + ' wochenrythmus='.$this->addslashes($this->wochenrythmus).','. + ' start_kw='.$this->addslashes($this->start_kw).','. + ' raumtyp='.$this->addslashes($this->raumtyp).','. + ' raumtypalternativ='.$this->addslashes($this->raumtypalternativ).','. + ' lehre='.($this->lehre?'true':'false').','. + ' anmerkung='.$this->addslashes($this->anmerkung).','. + ' unr='.$this->addslashes($this->unr).','. + ' ext_id='.$this->addslashes($this->ext_id). + " WHERE lehreinheit_id=".$this->addslashes($this->lehreinheit_id).";"; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der LE:'.$qry; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/fas/zeitwunsch.class.php b/include/fas/zeitwunsch.class.php index ac58b33e2..13c1b42cd 100644 --- a/include/fas/zeitwunsch.class.php +++ b/include/fas/zeitwunsch.class.php @@ -131,13 +131,13 @@ class zeitwunsch if($this->new) { - $qry = "INSERT INTO tbl_zeitwunsch (uid, tag, stunde, gewicht) + $qry = "INSERT INTO campus.tbl_zeitwunsch (uid, tag, stunde, gewicht) VALUES('".addslashes($this->uid)."',". $this->tag.','.$this->stunde.','.$this->gewicht.');'; } else { - $qry = 'UPDATE tbl_zeitwunsch SET'. + $qry = 'UPDATE campus.tbl_zeitwunsch SET'. ' gewicht='.$this->gewicht. " WHERE uid='".addslashes($this->uid)."' AND tag=".$this->tag.' AND stunde='.$this->stunde;