From 5f613c4105a04ec8e83002c313fb63a7238ff685 Mon Sep 17 00:00:00 2001 From: Rudolf Hangl Date: Wed, 29 Nov 2006 10:55:36 +0000 Subject: [PATCH] Fachbereich sync --- .../sync/sync_vilesci_portal_fachbereich.php | 129 ++++++++++++++++++ include/fas/fachbereich.class.php | 124 +++++++++++++---- include/fas/lehrveranstaltung.class.php | 113 +++++++++------ 3 files changed, 296 insertions(+), 70 deletions(-) create mode 100644 admin/sync/sync_vilesci_portal_fachbereich.php diff --git a/admin/sync/sync_vilesci_portal_fachbereich.php b/admin/sync/sync_vilesci_portal_fachbereich.php new file mode 100644 index 000000000..75a6040dd --- /dev/null +++ b/admin/sync/sync_vilesci_portal_fachbereich.php @@ -0,0 +1,129 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +//* +//* Synchronisiert Fachbereichsdatensaetze von Vilesci DB in PORTAL DB +//* +//* + +include('../../vilesci/config.inc.php'); +include('../../include/fas/fachbereich.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 + */ + +//fachbereich +$qry = "SELECT * FROM tbl_fachbereich"; + +if($result = pg_query($conn_vilesci, $qry)) +{ + echo nl2br("Fachbereich Sync\n---------------\n"); + $anzahl_quelle=pg_num_rows($result); + while($row = pg_fetch_object($result)) + { + $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=now(); + $fachbereich->insertvon='SYNC'; + //$fachbereich->updateamum=now(); + //$fachbereich->updatevon=$row->updatevon; + $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)) + { + if(pg_num_rows($result1)>0) //wenn dieser eintrag schon vorhanden ist + { + if($row1=pg_fetch_object($result1)) + { + //Lehrveranstaltungsdaten updaten + $fachbereich->new=false; + $fachbereich->fachbereich_id=$row->fachbereich_id; + } + else + { + $error_log.="fachbereich_id von $row->fachbereich_id konnte nicht ermittelt werden\n"; + $error=true; + } + } + else + { + //Fachbereich neu anlegen + $fachbereich->new=true; + } + + if(!$error) + if(!$fachbereich->save()) + { + $error_log.=$fachbereich->errormsg."\n"; + $anzahl_fehler++; + } + else + $anzahl_eingefuegt++; + else + $anzahl_fehler++; + } + } + echo nl2br("abgeschlossen\n\n"); +} +else + $error_log .= 'Fachbereichsdatensaetze konnten nicht geladen werden'; + +?> + + + +Synchro - Vilesci -> Portal - Fachbereiche + + + + + + \ No newline at end of file diff --git a/include/fas/fachbereich.class.php b/include/fas/fachbereich.class.php index 28fe3dde7..9ce9ba4a4 100644 --- a/include/fas/fachbereich.class.php +++ b/include/fas/fachbereich.class.php @@ -1,4 +1,24 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ /** * Klasse fachbereich (FAS-Online) * @create 14-03-2006 @@ -6,21 +26,22 @@ class fachbereich { - var $conn; // @var resource DB-Handle - var $new; // @var boolean - var $errormsg; // @var string - var $result = array(); // @var fachbereich Objekt + var $conn; // @var resource DB-Handle + var $new; // @var boolean + var $errormsg; // @var string + var $result = array(); // @var fachbereich Objekt //Tabellenspalten - var $fachbereich_id; // @var integer - var $bezeichnung; // @var string - var $kurzbz; //@var string - var $farbe; //@var string - var $updateamum; // @var timestamp - var $updatevon=0; // @var string - var $insertamum; //@var timestamp - var $insertvon=0; //@var string - var $ext_id; //@var bigint + var $fachbereich_id; // @var integer + var $bezeichnung; // @var string + var $kurzbz; // @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 /** @@ -112,11 +133,38 @@ class fachbereich $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 checkvars() + { + $this->bezeichnung = str_replace("'",'´',$this->bezeichnung); + $this->kurzbz = str_replace("'",'´',$this->kurzbz); + + + //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) + { + $this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei $this->ext_id - $this->kurzbz"; + return false; + } + $this->errormsg = ''; + return true; + } function save() { //Gueltigkeit der Variablen pruefen @@ -125,33 +173,54 @@ class fachbereich 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 fachbereich (bezeichnung, kurzbz, farbe, ". - "ext_id, insertamum, insertvon, updateamum, updatevon) VALUES (". - "'$this->bezeichnung', '$this->kurzbz', '$this->farbe'". - "'$this->ext_id', '$this->insertamum', '$this->insertvon', '$this->updateamum', '$this->updatevon');"; + $qry = 'INSERT INTO tbl_fachbereich (fachbereich_id, bezeichnung, kurzbz, farbe, ext_id, insertamum, insertvon, + updateamum, updatevon, studiengang_kz) VALUES ('. + $this->addslashes($this->fachbereich_id).', '. + $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 lehrveranstaltung_id eine gueltige Zahl ist - if(!is_numeric($this->fachbereich_id_id) || $this->fachbereich_id == '') + //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; } - $qry = "UPDATE fachbereich SET fachbereich_id='$this->fachbereich_id', bezeichnung='$this->bezeichnung', ". - "kurzbz='$this->kurzbz', farbe='$this->farbe', ext_id='$this->ext_id', insertamum='$this->insertamum', ". - "insertvon='$this->insertvon', updateamum='$this->updateamum', updatevon='$this->updatevon' ". - "WHERE fachbereich_id = '$this->fachbereich_id';"; + $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).';'; } if(pg_query($this->conn, $qry)) { - //Log schreiben + /*//Log schreiben $sql = $qry; $qry = "SELECT nextval('log_seq') as id;"; if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) @@ -167,7 +236,8 @@ class fachbereich { $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; return false; - } + }*/ + return true; } else { diff --git a/include/fas/lehrveranstaltung.class.php b/include/fas/lehrveranstaltung.class.php index 854e58c50..af7e2e312 100644 --- a/include/fas/lehrveranstaltung.class.php +++ b/include/fas/lehrveranstaltung.class.php @@ -1,4 +1,24 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ /** * Klasse lehrveranstaltung (FAS-Online) * @create 16-03-2006 @@ -37,11 +57,11 @@ class lehrveranstaltung * @param $conn Connection zur Datenbank * $lehrveranstaltung_id ID der zu ladenden Lehrveranstaltung */ - function lehrveranstaltung($conn, $lehrveranstaltung_id=null) + function lehrveranstaltung($conn, $lehrveranstaltung_nr=null) { $this->conn = $conn; - if($lehrveranstaltung_id != null) - $this->load($lehrveranstaltung_id); + if($lehrveranstaltung_nr != null) + $this->load($lehrveranstaltung_nr); } /** @@ -228,50 +248,59 @@ class lehrveranstaltung //Laenge Pruefen if(strlen($this->bezeichnung)>64) { - $this->errormsg = 'Bezeichnung darf nicht laenger als 64 Zeichen sein'; + $this->errormsg = "Bezeichnung darf nicht laenger als 64 Zeichen sein bei $this->ext_id - $this->bezeichnung"; return false; } if(strlen($this->kurzbz)>16) { - $this->errormsg = 'Kurzbez darf nicht laenger als 16 Zeichen sein'; + $this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei $this->ext_id - $this->kurzbz"; return false; } if(strlen($this->anmerkung)>64) { - $this->errormsg = 'Anmerkung darf nicht laenger als 64 Zeichen sein'; + $this->errormsg = "Anmerkung darf nicht laenger als 64 Zeichen sein bei $this->ext_id - $this->anmerkung"; + return false; + } + if(strlen($this->lehreverzeichnis)>16) + { + $this->errormsg = "Lehreverzeichnis darf nicht laenger als 16 Zeichen sein bei $this->ext_id - $this->lehreverzeichnis"; return false; } if(!is_numeric($this->studiengang_kz)) { - $this->errormsg = 'Studiengang_kz ist ungueltig: '.$this->studiengang_kz; + $this->errormsg = "Studiengang_kz ist ungueltig bei $this->ext_id - $this->studiengang_kz"; return false; } if($this->semester!='' && !is_numeric($this->semester)) { - $this->errormsg = 'Semester ist ungueltig'; + $this->errormsg = "Semester ist ungueltig bei $this->ext_id - $this->semester"; return false; } if($this->planfaktor!='' && !is_numeric($this->planfaktor)) { - $this->errormsg = 'Planfaktor ist ungueltig'; + $this->errormsg = "Planfaktor ist ungueltig bei $this->ext_id - $this->planfaktor"; return false; } if($this->semesterstunden!='' && !is_numeric($this->semesterstunden)) { - $this->errormsg = 'Semesterstunden ist ungueltig'; + $this->errormsg = "Semesterstunden ist ungueltig bei $this->ext_id - $this->semesterstunden"; return false; } if($this->planlektoren!='' && !is_numeric($this->planlektoren)) { - $this->errormsg = "Planlektoren ist ungueltig"; + $this->errormsg = "Planlektoren ist ungueltig bei $this->ext_id - $this->planlektoren"; return false; } if($this->ects!='' && !is_numeric($this->ects)) { - $this->errormsg = 'ECTS sind ungueltig'; + $this->errormsg = "ECTS sind ungueltig bei $this->ext_id - $this->ects"; + return false; + } + if($this->ects>40) + { + $this->errormsg = "ECTS größer als 40 bei $this->ext_id - $this->ects"; return false; } - $this->errormsg = ''; return true; } @@ -289,8 +318,6 @@ class lehrveranstaltung if($this->new) { //Neuen Datensatz anlegen - - //naechste ID aus der Sequence holen $qry = 'INSERT INTO tbl_lehrveranstaltung (studiengang_kz, bezeichnung, kurzbz, semester, ects, semesterstunden, gemeinsam, anmerkung, lehre, lehreverzeichnis, aktiv, ext_id, insertamum, insertvon, planfaktor, planlektoren, planpersonalkosten, updateamum, updatevon) VALUES ('. @@ -321,38 +348,37 @@ class lehrveranstaltung //Pruefen ob lehrveranstaltung_id eine gueltige Zahl ist if(!is_numeric($this->lehrveranstaltung_nr) || $this->lehrveranstaltung_nr == '') { - $this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein'; + $this->errormsg = 'lehrveranstaltung_nr muss eine gueltige Zahl sein'; return false; } - - $qry = 'UPDATE tbl_lehrveranstaltung SET'. - 'lehrveranstaltung_nr='.$this->addslashes($this->lehrveranstaltung_nr) .','. - 'studiengang_kz='.$this->addslashes($this->studiengang_kz) .','. - 'bezeichnung='.$this->addslashes($this->bezeichnung) .','. - 'kurzbez='.$this->addslashes($this->kurzbz) .','. - 'semester='.$this->addslashes($this->semester) .','. - 'ects='.$this->addslashes($this->ects) .','. - 'semesterstunden='.$this->addslashes($this->semesterstunden) .','. - 'gemeinsam='.$this->addslashes($this->gemeinsam) .','. - 'anmerkung='.$this->addslashes($this->anmerkung) .','. - 'lehre='.$this->addslashes($this->lehre) .','. - 'lehreverzeichnis='.$this->addslashes($this->lehreverzeichnis) .','. - 'aktiv='.($this->aktiv?'true':'false') .','. - 'ext_id='.$this->addslashes($this->ext_id) .','. - 'insertamum='.$this->addslashes($this->insertamum) .','. - 'insertvon='.$this->addslashes($this->insertvon) .','. - 'planfaktor='.$this->addslashes($this->planfaktor) .','. - 'planlektoren='.$this->addslashes($this->planlektoren) .','. - 'planpersonalkosten='.$this->addslashes($this->planpersonalkosten) .','. + $qry = 'UPDATE tbl_lehrveranstaltung SET '. + //'lehrveranstaltung_nr= '.$this->addslashes($this->lehrveranstaltung_nr) .', '. + 'studiengang_kz='.$this->addslashes($this->studiengang_kz) .', '. + 'bezeichnung='.$this->addslashes($this->bezeichnung) .', '. + 'kurzbz='.$this->addslashes($this->kurzbz) .', '. + 'semester='.$this->addslashes($this->semester) .', '. + 'ects='.$this->addslashes($this->ects) .', '. + 'semesterstunden='.$this->addslashes($this->semesterstunden) .', '. + 'gemeinsam='.$this->addslashes($this->gemeinsam) .', '. + 'anmerkung='.$this->addslashes($this->anmerkung) .', '. + 'lehre='.$this->addslashes($this->lehre) .', '. + 'lehreverzeichnis='.$this->addslashes($this->lehreverzeichnis) .', '. + 'aktiv='.($this->aktiv?'true':'false') .', '. + 'ext_id='.$this->addslashes($this->ext_id) .', '. + 'insertamum='.$this->addslashes($this->insertamum) .', '. + 'insertvon='.$this->addslashes($this->insertvon) .', '. + 'planfaktor='.$this->addslashes($this->planfaktor) .', '. + 'planlektoren='.$this->addslashes($this->planlektoren) .', '. + 'planpersonalkosten='.$this->addslashes($this->planpersonalkosten) .', '. 'updateamum='.$this->addslashes($this->updateamum) .','. - 'updatevon='.$this->addslashes($this->updatevon) .','. - 'WHERE lehrveranstaltung_nr = '.$this->this->addslashes(lehrveranstaltung_nr).';'; + 'updatevon='.$this->addslashes($this->updatevon) .' '. + 'WHERE ext_id = '.$this->addslashes($this->lehrveranstaltung_nr).';'; } - /*if(pg_query($this->conn, $qry)) + if(pg_query($this->conn, $qry)) { //Log schreiben - $sql = $qry; + /*$sql = $qry; $qry = "SELECT nextval('log_seq') as id;"; if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) { @@ -367,13 +393,14 @@ class lehrveranstaltung { $this->errormsg = 'Fehler beim Speichern des Log-Eintrages'; return false; - } + }*/ + return true; } else { - $this->errormsg = 'Fehler beim speichern des Datensatzes'; + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; return false; - }*/ + } } /**