From 0ea5f15c628a89315353c522dbd7bbeb95b86d76 Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Thu, 30 Nov 2006 12:53:35 +0000 Subject: [PATCH] SYNC Benutzerfunktion --- .../sync_vilesci_portal_benutzerfunktion.php | 127 +++++++++ .../sync/sync_vilesci_portal_fachbereich.php | 2 +- admin/sync/sync_vilesci_portal_funktion.php | 4 +- .../sync_vilesci_portal_lehrveranstaltung.php | 25 +- include/fas/benutzerfunktion.class.php | 244 ++++++++++++++++++ include/fas/funktion.class.php | 8 +- 6 files changed, 401 insertions(+), 9 deletions(-) create mode 100644 admin/sync/sync_vilesci_portal_benutzerfunktion.php create mode 100644 include/fas/benutzerfunktion.class.php diff --git a/admin/sync/sync_vilesci_portal_benutzerfunktion.php b/admin/sync/sync_vilesci_portal_benutzerfunktion.php new file mode 100644 index 000000000..dd01636e2 --- /dev/null +++ b/admin/sync/sync_vilesci_portal_benutzerfunktion.php @@ -0,0 +1,127 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +//* +//* Synchronisiert Funktiondatensaetze von Vilesci DB in PORTAL DB +//* +//* + +include('../../vilesci/config.inc.php'); +include('../../include/fas/benutzerfunktion.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"); + +$adress='ruhan@technikum-wien.at'; +//$adress='fas_sync@technikum-wien.at'; + +$error_log=''; +$text = ''; +$anzahl_quelle=0; +$anzahl_eingefuegt=0; +$anzahl_fehler=0; + +function validate($row) +{ +} + +/************************* + * VILESCI-PORTAL - Synchronisation + */ + +//benutzerfunktion +$qry = "SELECT * FROM tbl_personfunktion"; + +if($result = pg_query($conn_vilesci, $qry)) +{ + echo nl2br("Benutzerfunktion Sync\n----------------------\n"); + $anzahl_quelle=pg_num_rows($result); + while($row = pg_fetch_object($result)) + { + $error=false; + $benutzerfunktion = new benutzerfunktion($conn); + $benutzerfunktion->fachbereich_id=$row->fachbereich_id; + $benutzerfunktion->uid=$row->uid; + $benutzerfunktion->studiengang_kz=$row->studiengang_kz; + $benutzerfunktion->funktion_kurzbz=$row->funktion_kurzbz; + //$benutzerfunktion->insertamum=''; + $benutzerfunktion->insertvon='SYNC'; + //$benutzerfunktion->updateamum=''; + //$benutzerfunktion->updatevon=$row->updatevon; + + $qry = "SELECT benutzerfunktion_id FROM tbl_benutzerfunktion WHERE benutzerfunktion_id='$row->personfunktion_id'"; + if($result1 = pg_query($conn, $qry)) + { + if(pg_num_rows($result1)>0) //wenn dieser eintrag schon vorhanden ist + { + if($row1=pg_fetch_object($result1)) + { + //Benutzerfunktionsdaten updaten + $benutzerfunktion->new=false; + $benutzerfunktion->benutzerfunktion_id=$row->personfunktion_id; + } + else + { + $error_log.="benutzerfunktion_id von $row->personfunktion_id konnte nicht ermittelt werden\n"; + $error=true; + } + } + else + { + //Benutzerfunktion neu anlegen + $benutzerfunktion->new=true; + } + + if(!$error) + if(!$benutzerfunktion->save()) + { + $error_log.=$benutzerfunktion->errormsg."\n"; + $anzahl_fehler++; + } + else + $anzahl_eingefuegt++; + else + $anzahl_fehler++; + } + } + echo nl2br("abgeschlossen\n\n"); +} +else + $error_log .= 'Funktiondatensaetze konnten nicht geladen werden'; + +?> + + + +Synchro - Vilesci -> Portal - Benutzerfunktionen + + + + + + \ 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 50417bfa6..e9325d14e 100644 --- a/admin/sync/sync_vilesci_portal_fachbereich.php +++ b/admin/sync/sync_vilesci_portal_fachbereich.php @@ -77,7 +77,7 @@ if($result = pg_query($conn_vilesci, $qry)) { if($row1=pg_fetch_object($result1)) { - //Lehrveranstaltungsdaten updaten + //Fachbereichsdaten updaten $fachbereich->new=false; $fachbereich->fachbereich_id=$row->fachbereich_id; } diff --git a/admin/sync/sync_vilesci_portal_funktion.php b/admin/sync/sync_vilesci_portal_funktion.php index dcf1fadd9..0dc7a3858 100644 --- a/admin/sync/sync_vilesci_portal_funktion.php +++ b/admin/sync/sync_vilesci_portal_funktion.php @@ -74,7 +74,7 @@ if($result = pg_query($conn_vilesci, $qry)) { if($row1=pg_fetch_object($result1)) { - //Lehrveranstaltungsdaten updaten + //Funktionsdaten updaten $funktion->new=false; $funktion->funktion_kurzbz=$row->funktion_kurzbz; } @@ -111,7 +111,7 @@ else -Synchro - Vilesci -> Portal - Fachbereiche +Synchro - Vilesci -> Portal - Funktionen diff --git a/admin/sync/sync_vilesci_portal_lehrveranstaltung.php b/admin/sync/sync_vilesci_portal_lehrveranstaltung.php index c3019c5e1..2c5b7f984 100644 --- a/admin/sync/sync_vilesci_portal_lehrveranstaltung.php +++ b/admin/sync/sync_vilesci_portal_lehrveranstaltung.php @@ -1,4 +1,25 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + /** * Synchronisiert Lehrveranstaltungsdatensaetze von Vilesci DB in PORTAL DB * @@ -23,8 +44,8 @@ function validate($row) * VILESCI-PORTAL - Synchronisation */ -//Mitarbeiter -$qry = "SELECT * FROM tbl_lehrfach limit 5"; +//Lehrveranstaltung +$qry = "SELECT * FROM tbl_lehrfach"; if($result = pg_query($conn_vilesci, $qry)) { diff --git a/include/fas/benutzerfunktion.class.php b/include/fas/benutzerfunktion.class.php new file mode 100644 index 000000000..20d28b013 --- /dev/null +++ b/include/fas/benutzerfunktion.class.php @@ -0,0 +1,244 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Klasse benutzerfunktion (FAS-Online) + * @create 14-03-2006 + */ + +class benutzerfunktion +{ + var $conn; // @var resource DB-Handle + var $new; // @var boolean + var $errormsg; // @var string + var $result = array(); // @var fachbereich Objekt + + //Tabellenspalten + var $benutzerfunktion_id; // @var serial + var $fachbereich_id; // @var integer + var $uid; // @var varchar(16) + var $studiengang_kz; // @var integer + var $funktion_kurzbz; // @var varchar(16) + var $updateamum; // @var timestamp + var $updatevon=0; // @var string + var $insertamum; // @var timestamp + var $insertvon=0; // @var string + var $ext_id; // @var bigint + + + /** + * Konstruktor + * @param $conn Connection zur DB + * $benutzerfunktion_id ID der zu ladenden Funktion + */ + function benutzerfunktion($conn, $benutzerfunktion_id=null) + { + $this->conn = $conn; + if($benutzerfunktion_id != null) + $this->load($benutzerfunktion_id); + } + + /** + * Laedt alle verfuegbaren Benutzerfunktionen + * @return true wenn ok, false im Fehlerfall + */ + function getAll() + { + $qry = 'SELECT * FROM tbl_benutzerfunktion order by benutzerfunktion_id;'; + + if(!$res = pg_query($this->conn, $qry)) + { + $this->errormsg = 'Fehler beim laden der Datensaetze'; + return false; + } + + while($row = pg_fetch_object($res)) + { + $pfunktion_obj = new personenfunktion($this->conn); + + $pfunktion_obj->benutzerfunktion_id = $row->benutzerfunktion_id; + $pfunktion_obj->fachbereich_id = $row->fachbereich_id; + $pfunktion_obj->uid = $row->uid; + $pfunktion_obj->studiengang_kz=$row->studiengang_kz; + $pfunktion_obj->funktion_kurzbz=$row->funtion_kurzbz; + $pfunktion_obj->insertamum=$row->insertamum; + $pfunktion_obj->insertvon=$$row->insertvon; + $pfunktion_obj->updateamum=$row->updateamum; + $pfunktion_obj->updatevon=$row->updatevon; + + $this->result[] = $pfunktion_obj; + } + return true; + } + + /** + * Laedt eine Benutzerfunktion + * @param $bnutzerfunktion_id ID der zu ladenden Funktion + * @return true wenn ok, false im Fehlerfall + */ + function load($benutzerfunktion_id) + { + if($benutzerfunktion_id == '') + { + $this->errormsg = 'benutzerfunktion_id muß eine gültige Zahl sein'; + return false; + } + + $qry = "SELECT * FROM tbl_benutzerfunktion WHERE benutzerfunktion_id = '$this->benutzerfunktion_id';"; + + if(!$res = pg_query($this->conn, $qry)) + { + $this->errormsg = 'Fehler beim laden des Datensatzes'; + return false; + } + + if($row=pg_fetch_object($res)) + { + $this->benutzerfunktion_id = $row->benutzerfunktion_id; + $this->fachbereich_id = $row->fachbereich_id; + $this->uid = $row->uid; + $this->studiengang_kz = $row->studiengang_kz; + $this->funktion_kurzbz = $row->funktion_kurzbz; + $this->insertamum =$row->insertamum; + $this->insertvon =$row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + } + else + { + $this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden'; + return false; + } + + return true; + } + + /** + * Loescht einen Datensatz + * @param $fbenutzerfunktion_id id des Datensatzes der geloescht werden soll + * @return true wenn ok, false im Fehlerfall + */ + function delete($benutzerfunktion_id) + { + $this->errormsg = 'Noch nicht implementiert'; + return false; + } + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + /** + * Speichert den aktuellen Datensatz + * @return true wenn ok, false im Fehlerfall + */ + /** + * Prueft die Gueltigkeit der Variablen + * @return true wenn ok, false im Fehlerfall + */ + + function save() + { + //Gueltigkeit der Variablen pruefen + //if(!$this->checkvars()) + // return false; + + if($this->new) + { + //Neuen Datensatz anlegen + //Pruefen ob uid vorhanden + $qry = "SELECT uid FROM tbl_benutzer WHERE uid = '$this->uid';"; + if(!$resx = pg_query($this->conn, $qry)) + { + $this->errormsg = 'Fehler beim laden des Datensatzes'; + return false; + } + else + { + if (pg_num_rows($resx)==0) + { + $this->errormsg = "uid $this->uid in Tabelle tbl_benutzer nicht gefunden!"; + return false; + } + } + $qry = 'INSERT INTO tbl_benutzerfunktion (fachbereich_id, uid, studiengang_kz, funktion_kurzbz, insertamum, insertvon, + updateamum, updatevon) VALUES ('. + $this->addslashes($this->fachbereich_id).', '. + $this->addslashes($this->uid).', '. + $this->addslashes($this->studiengang_kz).', '. + $this->addslashes($this->funktion_kurzbz).', '. + $this->addslashes($this->insertamum).', '. + $this->addslashes($this->insertvon).', '. + $this->addslashes($this->updateamum).', '. + $this->addslashes($this->updatevon).'); '; + } + else + { + //bestehenden Datensatz akualisieren + + //Pruefen ob benutzerfunktion_id eine gueltige Zahl ist + if(!is_numeric($this->benutzerfunktion_id) || $this->benutzerfunktion_id == '') + { + $this->errormsg = 'benutzerfunktion_id muss eine gueltige Zahl sein'; + return false; + } + + $qry = 'UPDATE tbl_benutzerfunktion SET '. + 'benutzerfunktion_id='.$this->addslashes($this->benutzerfunktion_id).', '. + 'fachbereich_id='.$this->addslashes($this->fachbereich_id).', '. + 'uid='.$this->addslashes($this->uid).', '. + 'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '. + 'funktion_kurzbz='.$this->addslashes($this->funktion_kurzbz).', '. + 'insertamum='.$this->addslashes($this->insertamum).', '. + 'insertvon='.$this->addslashes($this->insertvon).', '. + 'updateamum='.$this->addslashes($this->updateamum).', '. + 'updatevon='.$this->addslashes($this->updatevon).' '. + 'WHERE benutzerfunktion_id = '.$this->addslashes($this->benutzerfunktion_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; + }*/ + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes - '.$this->uid; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/fas/funktion.class.php b/include/fas/funktion.class.php index 442825b99..ebfeaa2e9 100644 --- a/include/fas/funktion.class.php +++ b/include/fas/funktion.class.php @@ -94,7 +94,7 @@ class funktion { if($funktion_kurzbz == '') { - $this->errormsg = 'funktion_bz darf nicht leer sein sein'; + $this->errormsg = 'funktion_bz darf nicht leer sein'; return false; } @@ -127,7 +127,7 @@ class funktion /** * Loescht einen Datensatz - * @param $fachb_id id des Datensatzes der geloescht werden soll + * @param $funktion_id id des Datensatzes der geloescht werden soll * @return true wenn ok, false im Fehlerfall */ function delete($funktion_kurzbz) @@ -191,9 +191,9 @@ class funktion //bestehenden Datensatz akualisieren //Pruefen ob fachbereich_id eine gueltige Zahl ist - if(!is_numeric($this->fachbereich_id) || $this->fachbereich_id == '') + if( $this->funktion_kurzbz == '') { - $this->errormsg = 'fachbereich_id muss eine gueltige Zahl sein'; + $this->errormsg = 'funktion_kurzbz darf nicht leer sein'; return false; }