diff --git a/admin/sync/sync_vilesci_portal_benutzergruppe.php b/admin/sync/sync_vilesci_portal_benutzergruppe.php new file mode 100644 index 000000000..25e970e95 --- /dev/null +++ b/admin/sync/sync_vilesci_portal_benutzergruppe.php @@ -0,0 +1,101 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Synchronisiert BenutzerGruppen von Vilesci DB in PORTAL DB + * + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/fas/benutzergruppe.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 uid, mailgrp_kurzbz as gruppe_kurzbz, updateamum, updatevon + FROM tbl_personmailgrp + UNION + SELECT uid, einheit_kurzbz as gruppe_kurzbz, updateamum, updatevon + FROM tbl_einheitstudent'; + +if($result = pg_query($conn_vilesci, $qry)) +{ + $text.="\n Sync BenutzerGruppe\n\n"; + while($row = pg_fetch_object($result)) + { + $bngruppe = new benutzergruppe($conn); + $bngruppe->gruppe_kurzbz = $row->gruppe_kurzbz; + $bngruppe->uid = $row->uid; + $bngruppe->updateamum = $row->updateamum; + $bngruppe->updatevon = $row->updatevon; + $bngruppe->insertamum = ''; + $bngruppe->insertvon = ''; + + $qry = "SELECT count(*) as anz FROM tbl_benutzergruppe WHERE + gruppe_kurzbz='".addslashes($row->gruppe_kurzbz)."' AND uid='".addslashes($row->uid)."'"; + + if($row1=pg_fetch_object(pg_query($conn,$qry))) + { + $new = ($row1->anz>0?false:true); + + if(!$bngruppe->save($new)) + { + $anzahl_fehler++; + $error_log .= $bngruppe->errormsg."\n"; + } + else + $anzahl_eingefuegt++; + } + else + { + $error_log.='Fehler beim Auslesen'; + $anzahl_fehler++; + } + } +} +else + $error_log .= "BenutzerGruppen konnten nicht geladen werden\n"; +$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n"; +$text.="Anzahl der Fehler: $anzahl_fehler\n"; +?> + + + +Synchro - Vilesci -> Portal - BenutzerGruppe + + + + + + \ No newline at end of file diff --git a/admin/sync/sync_vilesci_portal_gruppe.php b/admin/sync/sync_vilesci_portal_gruppe.php new file mode 100644 index 000000000..8077febdc --- /dev/null +++ b/admin/sync/sync_vilesci_portal_gruppe.php @@ -0,0 +1,111 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Synchronisiert Gruppen von Vilesci DB in PORTAL DB + * + */ +require_once('../../vilesci/config.inc.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; + +// *********************************** +// * VILESCI->PORTAL - Synchronisation +// *********************************** + +$qry = 'SELECT einheit_kurzbz as gruppe_kurzbz, studiengang_kz, bezeichnung, semester, typ, mailgrp_kurzbz, + bezeichnung as mailgrp_beschreibung, true as sichtbar , true as aktiv, null as updateamum, + null as updatevon, null as insertamum, null as insertvon + FROM tbl_einheit WHERE mailgrp_kurzbz is null + UNION + SELECT mailgrp_kurzbz as gruppe_kurzbz, studiengang_kz, beschreibung as bezeichnung, null as semester, + null as typ, mailgrp_kurzbz, beschreibung as mailgrp_beschreibung, sichtbar, aktiv, null as updateamum, + null as updatevon, null as insertamum, null as insertvon + FROM tbl_mailgrp'; + +if($result = pg_query($conn_vilesci, $qry)) +{ + $text.="\n Sync Gruppe\n\n"; + while($row = pg_fetch_object($result)) + { + $gruppe = new gruppe($conn); + $gruppe->gruppe_kurzbz = $row->gruppe_kurzbz; + $gruppe->studiengang_kz = $row->studiengang_kz; + $gruppe->bezeichnung = $row->bezeichnung; + $gruppe->semester = $row->semester; + $gruppe->typ = $row->typ; + $gruppe->mailgrp_kurzbz = $row->mailgrp_kurzbz; + $gruppe->mailgrp_beschreibung = $row->mailgrp_beschreibung; + $gruppe->sichtbar = ($row->sichtbar=='f'?true:false); + $gruppe->aktiv = ($row->aktiv=='t'?true:false); + $gruppe->updateamum = $row->updateamum; + $gruppe->updatevon = $row->updatevon; + $gruppe->insertamum = $row->insertamum; + $gruppe->insertvon = $row->insertvon; + + $qry = "SELECT count(*) as anz FROM tbl_gruppe where gruppe_kurzbz='".addslashes($row->gruppe_kurzbz)."'"; + + if($row1=pg_fetch_object(pg_query($conn,$qry))) + { + $new = ($row1->anz>0?false:true); + + if(!$gruppe->save($new)) + { + $anzahl_fehler++; + $error_log .= $gruppe->errormsg."\n"; + } + else + $anzahl_eingefuegt++; + } + else + { + $error_log.='Fehler beim Auslesen'; + $anzahl_fehler++; + } + } +} +else + $error_log .= "Gruppen konnten nicht geladen werden\n"; +$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n"; +$text.="Anzahl der Fehler: $anzahl_fehler\n"; +?> + + + +Synchro - Vilesci -> Portal - Gruppe + + + + + + \ No newline at end of file diff --git a/admin/sync/sync_vilesci_portal_mitarbeiter.php b/admin/sync/sync_vilesci_portal_mitarbeiter.php index ca2c6108f..5a7b8a814 100644 --- a/admin/sync/sync_vilesci_portal_mitarbeiter.php +++ b/admin/sync/sync_vilesci_portal_mitarbeiter.php @@ -41,7 +41,7 @@ $anzahl_fehler=0; // *********************************** //Mitarbeiter -$qry = "SELECT * FROM tbl_person JOIN tbl_mitarbeiter USING(uid) WHERE personalnummer<>'OFF' AND uid NOT LIKE '\_dummy%' AND uid NOT LIKE '\_Dummy%'"; +$qry = "SELECT * FROM tbl_person JOIN tbl_mitarbeiter USING(uid) WHERE uid NOT LIKE '\_dummy%' AND uid NOT LIKE '\_Dummy%'"; if($result = pg_query($conn_vilesci, $qry)) { @@ -57,6 +57,7 @@ if($result = pg_query($conn_vilesci, $qry)) $mitarbeiter->anrede=''; $mitarbeiter->titelpost=''; $mitarbeiter->titelpre=$row->titel; + $mitarbeiter->nachname=$row->nachname; if(!$len=strpos($row->vornamen,' ')) { diff --git a/admin/sync/sync_vilesci_portal_personlvstudiensemester.php b/admin/sync/sync_vilesci_portal_personlvstudiensemester.php new file mode 100644 index 000000000..8083aea5b --- /dev/null +++ b/admin/sync/sync_vilesci_portal_personlvstudiensemester.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/personlvstudiensemester.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 Personlvstudiensemester\n\n"; + while($row = pg_fetch_object($result)) + { + $obj = new personlvstudiensemester($conn); + $obj->uid = $row->uid; + $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $qry = "SELECT lehrveranstaltung_nr FROM tbl_lehrveranstaltung WHERE ext_id=$row->lehrfach_nr"; + if($row1 = pg_fetch_object(pg_query($conn,$qry))) + { + $obj->lehrveranstaltung_nr = $row1->lehrveranstaltung_nr; + + $qry = "SELECT count(*) as anz FROM tbl_personlvstudiensemester WHERE + uid='".addslashes($row->uid)."' AND studiensemester_kurzbz='".addslashes($row->studiensemester_kurzbz)."' + AND lehrveranstaltung_nr='".addslashes($row1->lehrveranstaltung_nr)."';"; + + 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 - PersonLVStudiensemester + + + + + + \ No newline at end of file diff --git a/admin/sync/sync_vilesci_portal_reservierung.php b/admin/sync/sync_vilesci_portal_reservierung.php new file mode 100644 index 000000000..360d4673f --- /dev/null +++ b/admin/sync/sync_vilesci_portal_reservierung.php @@ -0,0 +1,102 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Synchronisiert Reservierungen von Vilesci DB in PORTAL DB + * + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/fas/reservierung.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_reservierung'; + +if($result = pg_query($conn_vilesci, $qry)) +{ + $text.="\n Sync Reservierung\n\n"; + while($row = pg_fetch_object($result)) + { + $reservierung = new reservierung($conn); + $reservierung->reservierung_id = $row->reservierung_id; + $reservierung->ort_kurzbz = $row->ort_kurzbz; + $reservierung->studiengang_kz = $row->studiengang_kz; + $reservierung->uid = $row->uid; + $reservierung->stunde = $row->stunde; + $reservierung->datum = $row->datum; + $reservierung->titel = $row->titel; + $reservierung->beschreibung = $row->beschreibung; + $reservierung->semester = $row->semester; + $reservierung->verband = $row->verband; + $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)."'"; + + if($row1 =pg_fetch_object(pg_query($conn,$qry))) + { + $var = ($row1->anz>0?false:true); + //Wenn reservierung vorhanden ist dann updaten sonst neu einfuegen + if(!$reservierung->save($var)) + { + $anzahl_fehler++; + $error_log .= $reservierung->errormsg."\n"; + } + else + $anzahl_eingefuegt++; + } + else + { + $error_log.='Fehler beim Auslesen'; + $anzahl_fehler++; + } + } +} +else + $error_log .= "Reservierungen konnten nicht geladen werden\n"; +$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n"; +$text.="Anzahl der Fehler: $anzahl_fehler\n"; +?> + + + +Synchro - Vilesci -> Portal - Reservierung + + + + + + \ No newline at end of file diff --git a/admin/sync/sync_vilesci_portal_variable.php b/admin/sync/sync_vilesci_portal_variable.php new file mode 100644 index 000000000..2a9c0a046 --- /dev/null +++ b/admin/sync/sync_vilesci_portal_variable.php @@ -0,0 +1,94 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Synchronisiert tbl_variable von Vilesci DB in PORTAL DB + * + */ +require_once('../../vilesci/config.inc.php'); +require_once('../../include/fas/variable.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_variable"; + +if($result = pg_query($conn_vilesci, $qry)) +{ + $text.="\n Sync Variable\n\n"; + while($row = pg_fetch_object($result)) + { + $error=false; + $var = new variable($conn); + + $var->uid = $row->uid; + $var->name = $row->name; + $var->wert = $row->wert; + + $qry = "SELECT count(*) as anz FROM tbl_variable WHERE uid='$row->uid' AND name='$row->name'"; + if($row1 = pg_fetch_object(pg_query($conn, $qry))) + { + if($row1->anz>0) //wenn dieser eintrag schon vorhanden ist + $new=false; + else + $new=true; + + if(!$var->save($new)) + { + $error_log.=$var->errormsg."\n"; + $anzahl_fehler++; + } + else + $anzahl_eingefuegt++; + } + else + $error_log .= "Fehler beim ermitteln der Variable\n"; + } +} +else + $error_log .= 'Variablendatensaetze konnten nicht geladen werden\n'; +$text.="Anzahl aktualisierte Datensaetze: $anzahl_eingefuegt\n"; +$text.="Anzahl der Fehler: $anzahl_fehler\n"; +?> + + + +Synchro - Vilesci -> Portal - Variable + + + + + + \ No newline at end of file diff --git a/include/fas/benutzer.class.php b/include/fas/benutzer.class.php index 7e6e78492..1b6edb517 100644 --- a/include/fas/benutzer.class.php +++ b/include/fas/benutzer.class.php @@ -28,7 +28,7 @@ class benutzer extends person var $alias; // varchar(256) // ************************************************************************* - // * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform + // * Konstruktor - Uebergibt die Connection und laedt optional einen Benutzer // * @param $conn Datenbank-Connection // * $uid Benutzer der geladen werden soll (default=null) // * $unicode Gibt an ob die Daten mit UNICODE Codierung @@ -94,6 +94,7 @@ class benutzer extends person $this->errormsg = 'aktiv muss ein boolscher wert sein'; return false; } + return true; } // ****************************************************************** @@ -104,19 +105,13 @@ class benutzer extends person // ****************************************************************** function save() { - //Variablen auf Gueltigkeit pruefen - if(!$this->validate()) - return false; - //Personen Datensatz speichern if(!person::save()) return false; - - /*if(!pg_query($this->conn,'BEGIN;')) - { - $this->errormsg = 'Benutzertransaktion konnte nicht gesetzt werden'; + + //Variablen auf Gueltigkeit pruefen + if(!benutzer::validate()) return false; - }*/ if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE { @@ -143,20 +138,11 @@ class benutzer extends person if(pg_query($this->conn,$qry)) { - /*if(!pg_query($this->conn,'COMMIT;')) - { - $this->errormsg = 'Bentuzer commit fehlgeschlagen'; - return false; - } - else - {*/ - //Log schreiben - return true; - /*}*/ + //Log schreiben + return true; } else - { - //pg_query($this->conn,'ROLLBACK;'); + { $this->errormsg = 'Fehler beim Speichern des Benutzer-Datensatzes:'.$qry; return false; } diff --git a/include/fas/benutzergruppe.class.php b/include/fas/benutzergruppe.class.php new file mode 100644 index 000000000..8cf75c1de --- /dev/null +++ b/include/fas/benutzergruppe.class.php @@ -0,0 +1,160 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class benutzergruppe +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $benutzergruppen = array(); // benutzergruppe Objekt + + //Tabellenspalten + var $uid; // varchar(16) + var $gruppe_kurzbz; // varchar(16) + var $updateamum; // timestamp + var $updatevon; // varchar(16) + var $insertamum; // timestamp + var $insertvon; // varchar(16) + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine BenutzerGruppe + // * @param $conn Datenbank-Connection + // * $uid + // * $gruppe_kurzbz + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function benutzergruppe($conn, $uid=null, $gruppe_kurzbz=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($gruppe_kurzbz!=null && $uid!=null) + $this->load($uid, $gruppe_kurzbz); + } + + // ********************************************************* + // * Laedt die BenutzerGruppe + // * @param gruppe_kurzbz + // ********************************************************* + function load($uid, $gruppe_kurzbz) + { + + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if(strlen($this->uid)>16) + { + $this->errormsg = 'UID darf nich laenger als 16 Zeichen sein'; + return false; + } + if(strlen($this->gruppe_kurzbz)>16) + { + $this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 16 Zeichen sein'; + return false; + } + if(strlen($this->updatevon)>16) + { + //ToDo: Just 4 Sync dannach wieder errormsg setzen + $this->updatevon = substr($this->updatevon,0,15); + } + if(strlen($this->insertvon)>16) + { + $this->errormsg = 'Insertvon 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 BenutzerGruppe 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) + { + $qry = 'INSERT INTO tbl_benutzergruppe (uid, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon) + VALUES('.$this->addslashes($this->uid).','. + $this->addslashes($this->gruppe_kurzbz).','. + $this->addslashes($this->updateamum).','. + $this->addslashes($this->updatevon).','. + $this->addslashes($this->insertamum).','. + $this->addslashes($this->insertvon).');'; + } + else + { + //ToDo + $qry = 'Select 1;'; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der BenutzerGruppe:'.$qry; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/fas/gruppe.class.php b/include/fas/gruppe.class.php index c9f49216e..7b19bf032 100644 --- a/include/fas/gruppe.class.php +++ b/include/fas/gruppe.class.php @@ -1,202 +1,224 @@ -conn = $conn; - $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; - if(!pg_query($conn,$qry)) - { - $this->errormsg = "Encoding konnte nicht gesetzt werden"; - return false; - } - if($gruppe_id != null) - $this->load($gruppe_id); - } - - /** - * Laedt eine Gruppe - * @param gruppe_id ID der Gruppe - * @return true wenn ok, false im Fehlerfall - */ - function load($gruppe_id) - { - //gruppe_id auf gueltigkeit pruefen - if(!is_numeric($gruppe_id) || $gruppe_id =='') - { - $this->errormsg = 'gruppe_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM gruppe WHERE gruppe_pk='$gruppe_id';"; - - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - - if($row = pg_fetch_object($res)) - { - $this->ausbildungssemester_id = $row->ausbildungssemester_fk; - $this->gruppe_id = $row->gruppe_pk; - $this->name = $row->name; - $this->nummerintern = $row->nummerintern; - $this->obergruppe_id = $row->obergruppe_fk; - $this->ordnung = $row->ordnung; - $this->studiengang_id = $row->studiengang_fk; - $this->typ = $row->typ; - $this->updateamum = $row->creationdate; - $this->updatevon = $row->creationuser; - - $this->fullname = $this->getFullName($row->gruppe_pk); - } - else - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - - return true; - } - - /** - * Liefert den vollen namen einer Gruppe - * @param $gruppe_id - * @return voller name, false im Fehlerfall - */ - function getFullName($gruppe_id) - { - //gruppe_id auf gueltigkeit pruefen - if(!is_numeric($gruppe_id) || $gruppe_id == '') - { - $this->errormsg = 'gruppe_id muss eine gueltige Zahl sein'; - return false; - } - - //gesamten gruppennamen ermitteln - $qry = "SELECT fas_function_get_fullname_from_gruppe($gruppe_id) as fullname;"; - - if(!$row = pg_fetch_object(pg_query($this->conn, $qry))) - { - $this->errormsg = 'Gruppenname konnte nicht ermittelt werden'; - return false; - } - - return $row->fullname; - } - - /** - * Laedt alle Gruppen eines Studienganges/studiensemesters/ausbildungssemesters - * @param studiengang_id ID des studienganges - * studiensemester_id ID des Studiensemesters (optional) - * ausbildungssemester_id ID des Ausbildungssemesters (optional) - * @return true wenn ok, false im Fehlerfall - */ - function load_gruppen($studiengang_id, $studiensemester_id=null, $ausbildungssemester_id=null) - { - //Pruefen ob gueltige Werte uebergeben wurden - 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 sein'; - return false; - } - - if($ausbildungssemester_id!=null && (!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == '')) - { - $this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein'; - return false; - } - - //Befehl zusammenbauen - $qry = "SELECT * FROM gruppe WHERE studiengang_fk='$studiengang_id' "; - - if($ausbildungssemester_id!=null) - $qry .= "AND ausbildungssemester_fk='$ausbildungssemester_id' "; - - if($studiensemester_id != null) - $qry .= "AND studiensemester_fk='$studiensemester_id' "; - - if(!$res = pg_query($this->conn, $qry)) - { - $this->errormsg = 'Datensatz konnte nicht geladen werden'; - return false; - } - //Daten laden - while($row = pg_fetch_object($res)) - { - $grp_obj = new gruppe($this->conn); - - $grp_obj->ausbildungssemester_id = $row->ausbildungssemester_fk; - $grp_obj->gruppe_id = $row->gruppe_pk; - $grp_obj->name = $row->name; - $grp_obj->nummerintern = $row->nummerintern; - $grp_obj->obergruppe_id = $row->obergruppe_fk; - $grp_obj->ordnung = $row->ordnung; - $grp_obj->studiengang_id = $row->studiengang_fk; - $grp_obj->typ = $row->typ; - $grp_obj->updateamum = $row->creationdate; - $grp_obj->updatevon = $row->creationuser; - - $grp_obj->fullname = $this->getFullName($row->gruppe_pk); - - $this->result[] = $grp_obj; - } - - return true; - } - - /** - * Speichert den aktuellen Datensatz in die DB - * @return true wenn ok, false im Fehlerfall - */ - function save() - { - $this->errormsg = 'Noch nicht implementiert'; - return false; - } - - /** - * Loescht einen Datensatz - * @param $gruppe_id ID des zu loeschenden Datensatzes - * @return true wenn ok, false im Fehlerfall - */ - function delete($gruppe_id) - { - $this->errormsg = 'Noch nicht implementiert'; - return false; - } -} +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class gruppe +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $gruppen = array(); // gruppen Objekt + + //Tabellenspalten + var $gruppe_kurzbz; // varchar(10) + var $studiengang_kz; // integer + var $bezeichnung; // varchar(64) + var $semester; // smallint + var $typ; // smallint + var $mailgrp_kurzbz; // varchar(16) + var $mailgrp_beschreibung; // varchar(64) + var $sichtbar; // boolean + var $aktiv; // boolean + var $updateamum; // timestamp + var $updatevon; // varchar(16) + var $insertamum; // timestamp + var $insertvon; // varchar(16) + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine Gruppe + // * @param $conn Datenbank-Connection + // * $gruppe_kurzbz + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function gruppe($conn, $gruppe_kurzbz=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($gruppe_kurzbz!=null) + $this->load($gruppe_kurzbz); + } + + // ********************************************************* + // * Laedt die Gruppe + // * @param gruppe_kurzbz + // ********************************************************* + function load($gruppe_kurzbz) + { + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if(strlen($this->gruppe_kurzbz)>10) + { + $this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 10 Zeichen sein'; + return false; + } + if($this->gruppe_kurzbz=='') + { + $this->errormsg = 'Gruppe muss angegeben werden'; + return false; + } + if(!is_numeric($this->studiengang_kz)) + { + $this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein'; + return false; + } + if(strlen($this->bezeichnung)>64) + { + $this->errormsg = 'Bezeichnung darf nicht laenger als 64 Zeichen sein'; + return false; + } + if($this->semester!='' && !is_numeric($this->semester)) + { + $this->errormsg = 'Semester muss eine gueltige Zahl sein'; + return false; + } + if($this->typ!='' && !is_numeric($this->typ)) + { + $this->errormsg = 'Typ muss eine gueltige Zahl sein'; + return false; + } + if(strlen($this->mailgrp_kurzbz)>16) + { + $this->errormsg = 'Mailgrp_kurzbz darf nicht laenger als 16 Zeichen sein'; + return false; + } + if(strlen($this->mailgrp_beschreibung)>64) + { + $this->errormsg = 'Mailgrp_beschreibung darf nicht laenger als 64 Zeichen sein'; + return false; + } + if(!is_bool($this->sichtbar)) + { + $this->errormsg = 'Sichtbar muss ein boolscher Wert sein'; + return false; + } + if(!is_bool($this->aktiv)) + { + $this->errormsg = 'Aktiv muss ein boolscher Wert sein'; + return false; + } + if(strlen($this->updatevon)>16) + { + $this->errormsg = 'Updatevon darf nicht laenger als 16 Zeichen sein'; + return false; + } + if(strlen($this->insertvon)>16) + { + $this->errormsg = 'Insertvon 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 Gruppe 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) + { + $qry = 'INSERT INTO tbl_gruppe (gruppe_kurzbz, studiengang_kz, bezeichnung, semester, typ, + mailgrp_kurzbz, 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->sichtbar?'true':'false').','. + ($this->aktiv?'true':'false').','. + $this->addslashes($this->updateamum).','. + $this->addslashes($this->updatevon).','. + $this->addslashes($this->insertamum).','. + $this->addslashes($this->insertvon).');'; + } + else + { + $qry = 'UPDATE tbl_gruppe SET'. + ' 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).','. + ' sichtbar='.($this->sichtbar?'true':'false').','. + ' aktiv='.($this->aktiv?'true':'false').','. + ' updateamum='.$this->addslashes($this->updateamum).','. + ' updatevon='.$this->addslashes($this->updatevon). + " WHERE gruppe_kurzbz=".$this->addslashes($this->gruppe_kurzbz).";"; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Gruppe:'.$qry; + return false; + } + } +} ?> \ No newline at end of file diff --git a/include/fas/mitarbeiter.class.php b/include/fas/mitarbeiter.class.php index bad6eb1e1..d68299e6f 100644 --- a/include/fas/mitarbeiter.class.php +++ b/include/fas/mitarbeiter.class.php @@ -32,7 +32,7 @@ class mitarbeiter extends benutzer var $telefonklappe; //varchar(25) // ************************************************************************* - // * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform + // * Konstruktor - Uebergibt die Connection und laedt optional einen Mitarbeiter // * @param $conn Datenbank-Connection // * $uid Mitarbeiter der geladen werden soll (default=null) // * $unicode Gibt an ob die Daten mit UNICODE Codierung diff --git a/include/fas/person.class.php b/include/fas/person.class.php index 40febc530..11642a1d2 100644 --- a/include/fas/person.class.php +++ b/include/fas/person.class.php @@ -54,7 +54,7 @@ class person var $ext_id; // bigint // ************************************************************************* - // * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform + // * Konstruktor - Uebergibt die Connection und laedt optional eine Person // * @param $conn Datenbank-Connection // * $person_id Person die geladen werden soll (default=null) // * $unicode Gibt an ob die Daten mit UNICODE Codierung @@ -173,6 +173,12 @@ class person $this->errormsg = 'Nachname darf nicht laenger als 64 Zeichen sein'; return false; } + if($this->nachname=='' || is_null($this->nachname)) + { + $this->errormsg = 'Nachname muss eingegeben werden'; + return false; + } + if(strlen($this->vorname)>32) { $this->errormsg = 'Vorname darf nicht laenger als 32 Zeichen sein'; @@ -184,6 +190,11 @@ class person return false; } //ToDo Gebdatum pruefen -> laut bis muss er aelter als 10 Jahre sein + if(strlen($this->gebdatum)==0 || is_null($this->gebdatum)) + { + $this->errormsg = 'Geburtsdatum muss eingegeben werden'; + return false; + } if(strlen($this->gebort)>128) { $this->errormsg = 'Geburtsort darf nicht laenger als 128 Zeichen sein'; @@ -266,17 +277,11 @@ class person // * @return true wenn erfolgreich, false im Fehlerfall // ************************************************************ function save() - { + { //Variablen auf Gueltigkeit pruefen - if(!$this->validate()) + if(!person::validate()) return false; - /* Verschachtelte transaktionen funktionieren nicht! - if(!pg_query($this->conn,'BEGIN;')) - { - $this->errormsg = 'Transaktion konnte nicht gesetzt werden'; - return false; - } - */ + if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE { $qry = 'INSERT INTO tbl_person (sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen, @@ -346,18 +351,10 @@ class person { $qry = "SELECT currval('tbl_person_person_id_seq') AS id;"; if($row=pg_fetch_object(pg_query($this->conn,$qry))) - { $this->person_id=$row->id; - /*if(!pg_query($this->conn,'COMMIT;')) - { - $this->errormsg = 'Personentransaktion konnte nicht commitet werden'; - return false; - }*/ - } else { $this->errormsg = 'Sequence konnte nicht ausgelesen werden'; - //pg_query($this->conn,'ROLLBACK;'); return false; } } @@ -367,7 +364,7 @@ class person } else { - $this->errormsg = 'Fehler beim Speichern des Person-Datensatzes:'.$qry; + $this->errormsg = 'Fehler beim Speichern des Person-Datensatzes:'.$this->nachname.' '.$qry; return false; } } diff --git a/include/fas/personlvstudiensemester.class.php b/include/fas/personlvstudiensemester.class.php new file mode 100644 index 000000000..73825d1d0 --- /dev/null +++ b/include/fas/personlvstudiensemester.class.php @@ -0,0 +1,152 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class personlvstudiensemester +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $personlvstudiensemester = array(); // personlvstudiensemester Objekt + + //Tabellenspalten + var $uid; // varchar(16) + var $studiensemester_kurzbz; // varchar(16) + var $lehrveranstaltung_nr; // integer + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine Zuteilung + // * @param $conn Datenbank-Connection + // * $uid + // * $studiensemester_kurzbz + // * $lehrveranstaltung_nr + // * $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) + { + $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; + } + else + $this->new = true; + + if($uid!=null && $studiensemester_kurzbz!=null && $lehrveranstaltung_nr!=null) + $this->load($uid, $studiensemester_kurzbz, $lehrveranstaltung_nr); + } + + // ********************************************************* + // * Laedt eine Zuteilung + // * @param $uid, $studiensemester_kurzbz, $lehrveranstaltung_nr + // ********************************************************* + function load($uid, $studiensemester_kurzbz, $lehrveranstaltung_nr) + { + $this->errormsg = 'Not implemented'; + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if(strlen($this->uid)>16) + { + $this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein'; + return false; + } + if(strlen($this->studiensemester_kurzbz)>16) + { + $this->errormsg = 'Studiensemester_kurzbz darf nicht laenger als 16 Zeichen sein'; + return false; + } + if(!is_numeric($this->lehrveranstaltung_nr)) + { + $this->errormsg = 'Lehrveranstaltungsnummer 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 Zuteilung 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)) + $this->new = $new; + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($this->new) + { + $qry = 'INSERT INTO tbl_personlvstudiensemester (uid, studiensemester_kurzbz, lehrveranstaltung_nr) + VALUES('.$this->addslashes($this->uid).','. + $this->addslashes($this->studiensemester_kurzbz).','. + $this->addslashes($this->lehrveranstaltung_nr).');'; + } + else + { + // ToDo + $qry = 'Select 1;'; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + $this->new = false; + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der PersonLVStudiensemester:'.$qry; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/fas/reservierung.class.php b/include/fas/reservierung.class.php new file mode 100644 index 000000000..265aab8d6 --- /dev/null +++ b/include/fas/reservierung.class.php @@ -0,0 +1,216 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class reservierung +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $reservierungen = array(); // reservierung Objekt + + //Tabellenspalten + var $reservierung_id; // int + var $ort_kurzbz; // varchar(8) + var $studiengang_kz; // int + var $uid; // varchar(16) + var $stunde; // smalint + var $datum; // date + var $titel; // varchar(10) + var $beschreibung; // varchar(32) + var $semester; // smalint + var $verband; // char(1) + var $gruppe; // char(1) + var $gruppe_kurzbz; // varchar(10) + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine Reservierung + // * @param $conn Datenbank-Connection + // * $reservierung_id + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function reservierung($conn, $reservierung_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; + } + else + $this->new = true; + + if($reservierung_id!=null) + $this->load($reservierung_id); + } + + // ********************************************************* + // * Laedt eine Reservierung + // * @param reservierung_id + // ********************************************************* + function load($reservierung_id) + { + $this->errormsg = 'Not implemented'; + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if(strlen($this->ort_kurzbz)>8) + { + $this->errormsg = 'Ort_Kurzbz darf nicht laenger als 8 Zeichen sein'; + return false; + } + if(!is_numeric($this->studiengang_kz)) + { + $this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein'; + return false; + } + if(strlen($this->uid)>16) + { + $this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein'; + return false; + } + if(!is_numeric($this->stunde)) + { + $this->errormsg = 'Stunde ist ungueltig'; + return false; + } + if(strlen($this->titel)>10) + { + $this->errormsg = 'Titel darf nicht laenger als 10 Zeichen sein'; + return false; + } + if(strlen($this->beschreibung)>32) + { + $this->beschreibung = 'Beschreibung darf nicht laenger als 32 Zeichen sein'; + return false; + } + if($this->semester!='' && !is_numeric($this->semester)) + { + $this->errormsg = 'Semester ist ungueltig'; + return false; + } + if(strlen($this->verband)>1) + { + $this->errormsg = 'Verband darf nicht laenger als 1 Zeichen sein'; + return false; + } + if(strlen($this->gruppe)>1) + { + $this->errormsg = 'Gruppe darf nicht laenger als 1 Zeichen sein'; + return false; + } + if(strlen($this->gruppe_kurzbz)>10) + { + $this->gruppe_kurzbz = 'Gruppe_kurzbz darf nicht laenger als 10 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 Reservierung 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)) + $this->new = $new; + + //Variablen auf Gueltigkeit pruefen + if(!$this->validate()) + return false; + + if($this->new) + { + $qry = 'INSERT INTO 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).','. + $this->addslashes($this->studiengang_kz).','. + $this->addslashes($this->uid).','. + $this->addslashes($this->stunde).','. + $this->addslashes($this->datum).','. + $this->addslashes($this->titel).','. + $this->addslashes($this->beschreibung).','. + $this->addslashes($this->semester).','. + $this->addslashes($this->verband).','. + $this->addslashes($this->gruppe).','. + $this->addslashes($this->gruppe_kurzbz).');'; + } + else + { + $qry = 'UPDATE tbl_reservierung SET'. + ' ort_kurzbz='.$this->addslashes($this->ort_kurzbz).','. + ' studiengang_kz='.$this->addslashes($this->studiengang_kz).','. + ' uid='.$this->addslashes($this->uid).','. + ' stunde='.$this->addslashes($this->stunde).','. + ' datum='.$this->addslashes($this->datum).','. + ' titel='.$this->addslashes($this->titel).','. + ' beschreibung='.$this->addslashes($this->beschreibung).','. + ' semester='.$this->addslashes($this->semester).','. + ' verband='.$this->addslashes($this->verband).','. + ' gruppe='.$this->addslashes($this->gruppe).','. + ' gruppe_kurzbz='.$this->addslashes($this->gruppe_kurzbz). + " WHERE reservierung_id='".addslashes($this->reservierung_id)."'"; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + $this->new = false; + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Reservierung:'.$qry; + return false; + } + } +} +?> \ No newline at end of file diff --git a/include/fas/student.class.php b/include/fas/student.class.php index 5a135cca2..8be6bf763 100644 --- a/include/fas/student.class.php +++ b/include/fas/student.class.php @@ -32,7 +32,7 @@ class student extends benutzer var $gruppe; // ************************************************************************* - // * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform + // * Konstruktor - Uebergibt die Connection und laedt optional einen Studenten // * @param $conn Datenbank-Connection // * $student_id Student der geladen werden soll (default=null) // * $unicode Gibt an ob die Daten mit UNICODE Codierung diff --git a/include/fas/stunde.class.php b/include/fas/stunde.class.php index ead5bd6b0..7bcc5b153 100644 --- a/include/fas/stunde.class.php +++ b/include/fas/stunde.class.php @@ -33,7 +33,7 @@ class stunde var $ende; // time without timezone // ************************************************************************* - // * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform + // * Konstruktor - Uebergibt die Connection und laedt optional eine Stunde // * @param $conn Datenbank-Connection // * $stunde Stunde die geladen werden soll // * $unicode Gibt an ob die Daten mit UNICODE Codierung @@ -60,7 +60,7 @@ class stunde // ********************************************************* // * Laedt eine Stunde - // * @param + // * @param $stunde // ********************************************************* function load($stunde) { diff --git a/include/fas/variable.class.php b/include/fas/variable.class.php new file mode 100644 index 000000000..7be0b8046 --- /dev/null +++ b/include/fas/variable.class.php @@ -0,0 +1,149 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class variable +{ + var $conn; // resource DB-Handle + var $errormsg; // string + var $new; // boolean + var $variables = array(); // variable Objekt + + //Tabellenspalten + var $uid; // varchar(16) + var $name; // varchar(64) + var $wert; // varchar(64) + + // ************************************************************************* + // * Konstruktor - Uebergibt die Connection und laedt optional eine Variable + // * @param $conn Datenbank-Connection + // * $uid + // * $name + // * $unicode Gibt an ob die Daten mit UNICODE Codierung + // * oder LATIN9 Codierung verarbeitet werden sollen + // ************************************************************************* + function variable($conn, $uid=null, $name=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($uid!=null && $name!=null) + $this->load($uid, $name); + } + + // ********************************************************* + // * Laedt die Variablen + // * @param + // ********************************************************* + function load($uid, $name) + { + return false; + } + + // ******************************************* + // * Prueft die Variablen vor dem Speichern + // * auf Gueltigkeit. + // * @return true wenn ok, false im Fehlerfall + // ******************************************* + function validate() + { + if(strlen($this->uid)>16) + { + $this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein'; + return true; + } + if(strlen($this->name)>64) + { + $this->errormsg = 'Name darf nicht laenger als 64 Zeichen sein'; + return false; + } + if(strlen($this->wert)>64) + { + $this->errormsg = 'Wert darf nicht laenger als 64 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 Variable 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) + { + $qry = 'INSERT INTO tbl_variable (uid, name, wert) + VALUES('.$this->addslashes($this->uid).','. + $this->addslashes($this->name).','. + $this->addslashes($this->wert).');'; + } + else + { + $qry = 'UPDATE tbl_variable SET'. + ' wert='.$this->addslashes($this->wert). + " WHERE uid='".addslashes($this->uid)."' AND name='".addslashes($this->name)."';"; + } + + if(pg_query($this->conn,$qry)) + { + //Log schreiben + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Variable:'.$qry; + return false; + } + } +} +?> \ No newline at end of file