Include VZ Bereinigung

This commit is contained in:
Andreas Österreicher
2006-12-11 16:06:13 +00:00
parent c205e0c153
commit c5fb04adb5
73 changed files with 9975 additions and 10542 deletions
-123
View File
@@ -1,123 +0,0 @@
<?php
/**
* author: maximilian schremser <max@technikum-wien.at>
* date:
* title: Authorization.class.php
* manual: $auth = new Authorization($uid, $course_id, $semester, $lesson);
*
* Tries to login a user as a student, if fails, it tries
* to login as a teacher.
* returns 0 for student
* 1 for teacher
* -1 on error
* holt den firstname, lastname, uid und id des Benutzers
*/
class Authorization
{
var $firstname;
var $lastname;
var $id;
var $uid;
var $stg_id;
var $semester;
var $verband;
var $gruppe;
var $isLector;
var $module;
var $lehrfach;
var $date;
var $session;
var $birthday;
function Authorization($uid ="", $course_id = 0, $semester = 0, $lesson = "",$conn="")
{
$this->isLector = -1;
$this->module = 0;
if ($uid == "oesi" || $uid == "kates")
{
$this->uid = $uid;
$this->stg_id = $course_id;
$this->lehrfach = $lesson;
$this->semester = $semester;
$this->isLector = 1;
return $this->isLector;
}
// try to looon as a student
$sql = "SELECT * ".
"FROM tbl_student JOIN tbl_person USING (uid) WHERE
uid = '$uid' AND studiengang_kz = $course_id
AND semester >= $semester";
$rs = new pgRS($conn,$sql);
if ($rs->num > 0)
{
$this->firstname = $rs->arr[0]["vornamen"];
$this->lastname = $rs->arr[0]["nachname"];
//$this->id = $rs->arr[0]["id"];
$this->uid = $uid;
$this->stg_id = $rs->arr[0]["studiengang_kz"];
$this->semester = $rs->arr[0]["semester"];
$this->verband = $rs->arr[0]["verband"];
$this->gruppe = $rs->arr[0]["gruppe"];
$this->birthday = $rs->arr[0]["gebdatum"];
$this->isLector = 0;
}
else
{
/* oesi 17-01-2005
$sql = "SELECT * FROM lehre.tbl_lehrfachzuteilung JOIN tbl_person ON
(lektor_uid = uid) WHERE lektor_uid = '$uid' AND
lehrfachzuteilung_kurzbz = '$lesson' AND
semester = $semester AND studiengang_kz = $course_id LIMIT 1";
*/
$sql = "SELECT * FROM tbl_lehrveranstaltung, tbl_lehrfach, tbl_person WHERE
tbl_lehrveranstaltung.lehrfach_nr=tbl_lehrfach.lehrfach_nr AND
tbl_person.uid=lektor AND lektor='$uid' AND
tbl_lehrfach.studiengang_kz=$course_id AND
tbl_lehrfach.semester=$semester AND lehrevz='$lesson' LIMIT 1";
$rs = new pgRS($conn,$sql);
if ($rs->num > 0)
{
$this->firstname = $rs->arr[0]["vornamen"];
$this->lastname = $rs->arr[0]["nachname"];
$this->birthday = $rs->arr[0]["gebdatum"];
$this->uid = $uid;
$this->stg_id = $course_id;
$this->lehrfach = $lesson;
$this->semester = $semester;
$this->isLector = 1;
}
else
{
//$sql = "SELECT DISTINCT tbl_person.uid FROM public.tbl_person, lehre.tbl_lehrfachzuteilung WHERE tbl_person.uid='$uid' AND tbl_lehrfachzuteilung.lektor_uid=tbl_person.uid AND studiengang_kz='$course_id' UNION SELECT DISTINCT tbl_person.uid FROM public.tbl_person, public.tbl_personfunktion WHERE tbl_person.uid='$uid' AND tbl_personfunktion.uid=tbl_person.uid AND studiengang_kz='$course_id' LIMIT 1";
$sql = "SELECT vornamen, nachname, gebdatum FROM public.tbl_person, tbl_lehrveranstaltung
WHERE tbl_person.uid='$uid' AND tbl_lehrveranstaltung.lektor=tbl_person.uid AND
studiengang_kz='$course_id'
UNION
SELECT vornamen, nachname, gebdatum FROM public.tbl_person, public.tbl_personfunktion
WHERE tbl_person.uid='$uid' AND tbl_personfunktion.uid=tbl_person.uid AND
studiengang_kz='$course_id' LIMIT 1";
$rs = new pgRS($conn,$sql);
if ($rs->num > 0)
{
$this->firstname = $rs->arr[0]["vornamen"];
$this->lastname = $rs->arr[0]["nachname"];
$this->birthday = $rs->arr[0]["gebdatum"];
$this->uid = $uid;
$this->stg_id = $course_id;
$this->lehrfach = $lesson;
$this->semester = $semester;
$this->isLector = 1;
}
}
}
return $this->isLector;
}
}
?>
+355
View File
@@ -0,0 +1,355 @@
<?php
/**
* Klasse Adresse (FAS-Online)
* @create 13-03-2006
*/
class adresse
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var adresse Objekt
//Tabellenspalten
var $adresse_id; // @var integer
var $bismeldeadresse; // @var boolean
var $gemeinde; // @var string
var $name; // @var string
var $nation; // @var string
var $ort; // @var string
var $person_id; // @var integer
var $plz; // @var string
var $strasse; // @var string
var $typ; // @var integer
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $zustelladresse; // @var boolean
/**
* Konstruktor
* @param $conn Connection
* $adress_id ID der Adresse die geladen werden soll (Default=null)
*/
function adresse($conn,$adress_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($adress_id != null)
$this->load($adress_id);
}
/**
* Laedt die Funktion mit der ID $adress_id
* @param $adress_id ID der zu ladenden Funktion
* @return true wenn ok, false im Fehlerfall
*/
function load($adress_id)
{
//Pruefen ob adress_id eine gueltige Zahl ist
if(!is_numeric($adress_id) || $adress_id == '')
{
$this->errormsg = 'Adress_id muss eine Zahl sein';
return false;
}
//Daten aus der Datenbank lesen
$qry = "SELECT * FROM adresse WHERE adresse_pk=$adress_id";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = pg_fetch_object($res))
{
$this->adresse_id = $row->adresse_pk;
$this->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
$this->gemeinde = $row->gemeinde;
$this->name = $row->name;
$this->nation = $row->nation;
$this->ort = $row->ort;
$this->person_id = $row->person_fk;
$this->plz = $row->plz;
$this->strasse = $row->strasse;
$this->typ = $row->typ;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->zustelladresse = ($row->zustelladresse=='J'?true:false);
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Laedt alle adressen zu der Person die uebergeben wird
* @param $pers_id ID der Person zu der die Adressen geladen werden sollen
* @return true wenn ok, false im Fehlerfall
*/
function load_pers($pers_id)
{
//Pruefen ob pers_id eine gueltige Zahl ist
if(!is_numeric($pers_id) || $pers_id == '')
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
return false;
}
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM adresse WHERE person_fk=$pers_id";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$adr_obj = new adresse($this->conn);
$adr_obj->adresse_id = $row->adresse_pk;
$adr_obj->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
$adr_obj->gemeinde = $row->gemeinde;
$adr_obj->name = $row->name;
$adr_obj->nation = $row->nation;
$adr_obj->ort = $row->ort;
$adr_obj->person_id = $row->person_fk;
$adr_obj->plz = $row->plz;
$adr_obj->strasse = $row->strasse;
$adr_obj->typ = $row->typ;
$adr_obj->updateamum = $row->creationdate;
$adr_obj->updatevon = $row->creationuser;
$adr_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
$this->result[] = $adr_obj;
}
return true;
}
/**
* Laedt alle Adressen aus der Datenbank
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM adresse";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$adr_obj = new adresse($this->conn);
$adr_obj->adresse_id = $row->adresse_pk;
$adr_obj->bismeldeadresse = ($row->bismeldeadresse=='J'?true:false);
$adr_obj->gemeinde = $row->gemeinde;
$adr_obj->name = $row->name;
$adr_obj->nation = $row->nation;
$adr_obj->ort = $row->ort;
$adr_obj->person_id = $row->person_fk;
$adr_obj->plz = $row->plz;
$adr_obj->strasse = $row->strasse;
$adr_obj->typ = $row->typ;
$adr_obj->updateamum = $row->creationdate;
$adr_obj->updatevon = $row->creationuser;
$adr_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
$this->result[] = $adr_obj;
}
return true;
}
/**
* Prueft die Variablen auf gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
//Zahlenfelder pruefen
$this->errormsg='Ein Zahlenfeld enthaelt ungueltige Zeichen';
if(!is_numeric($this->person_id))
{
$this->errormsg='Person_id enthaelt ungueltige Zeichen:'.$this->person_id;
return false;
}
if(!is_numeric($this->typ))
{
$this->errormsg='Typ enthaelt ungueltige Zeichen';
return false;
}
//Gesamtlaenge pruefen
$this->errormsg='Eine der Gesamtlaengen wurde ueberschritten';
if(strlen($this->name)>255)
{
$this->errormsg = 'Name darf nicht länger als 255 Zeichen sein';
return false;
}
if(strlen($this->strasse)>255)
{
$this->errormsg = 'Strasse darf nicht länger als 255 Zeichen sein';
return false;
}
if(strlen($this->plz)>10)
{
$this->errormsg = 'Plz darf nicht länger als 10 Zeichen sein';
return false;
}
if(strlen($this->ort)>255)
{
$this->errormsg = 'Ort darf nicht länger als 255 Zeichen sein';
return false;
}
if(strlen($this->nation)>3)
{
$this->errormsg = 'Nation darf nicht länger als 3 Zeichen sein';
return false;
}
if(strlen($this->gemeinde)>255)
{
$this->errormsg = 'Gemeinde darf nicht länger als 255 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $adresse_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Neuen Datensatz einfuegen
//naechste ID aus der Sequence holen
$qry="SELECT nextval('adresse_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
{
$this->errormsg = 'Fehler beim auslesen der Sequence';
return false;
}
$this->adresse_id = $row->id;
$qry="INSERT INTO adresse (adresse_pk, person_fk, name, strasse, plz, typ, ort, nation, creationdate, creationuser,".
" gemeinde, bismeldeadresse, zustelladresse) VALUES(".
" $this->adresse_id, $this->person_id, '$this->name', '$this->strasse', '$this->plz', $this->typ, '$this->ort',".
" '$this->nation', now(), $this->updatevon, '$this->gemeinde', '".($this->bismeldeadresse?'J':'N')."',".
" '".($this->zustelladresse?'J':'N')."');";
}
else
{
//Updaten des bestehenden Datensatzes
//Pruefen ob adresse_id eine gueltige Zahl ist
if(!is_numeric($this->adresse_id))
{
$this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
return false;
}
$qry="UPDATE adresse SET person_fk='$this->person_id', name='$this->name', strasse='$this->strasse', plz='$this->plz',".
" typ='$this->typ', ort='$this->ort', nation='$this->nation', gemeinde='$this->gemeinde',".
" bismeldeadresse='".($this->bismeldeadresse?'J':'N')."', zustelladresse='".($this->zustelladresse?'J':'N')."'".
" WHERE adresse_pk='$this->adresse_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 der Daten';
return false;
}
}
/**
* Loescht den Datenensatz mit der ID die uebergeben wird
* @param $adress_id ID die geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($adress_id)
{
//Pruefen ob adresse_id eine gueltige Zahl ist
if(!is_numeric($adress_id) || $adress_id == '')
{
$this->errormsg = 'adresse_id muss eine gueltige Zahl sein';
return false;
}
//loeschen des Datensatzes
$qry="DELETE FROM adresse WHERE adresse_pk=$adress_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 loeschen der Daten';
return false;
}
}
}
?>
+182
View File
@@ -0,0 +1,182 @@
<?php
/**
* Klasse ausbildungssemester (FAS-Online)
* @create 15-03-2006
*/
class ausbildungssemester
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var ausbildungssemester Objekt
var $ausbildungssemester_id; // @var integer
var $studiengang_id; // @var integer
var $name; // @var string
var $personenstatus; // @var integer
var $semester; // @var integer
var $updatevon=0; // @var timestamp
var $updateamum; // @var string
/**
* Konstruktor
* @param $conn Connection zur Datenbank
* $ausbildungssemester_id ID des zu ladenden Datensatzes
*/
function ausbildungssemester($conn, $ausbildungssemester_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($ausbildungssemester_id != null)
$this->load($ausbildungssemester_id);
}
/**
* Laedt einen Datensatz aus der Datenbank
* @param $ausbildungssemester_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($ausbildungssemester_id)
{
if(!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == '')
{
$this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM ausbildungssemester WHERE ausbildungssemester_pk = '$ausbildungssemester_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->ausbildungssemester_id = $row->ausbildungssemester_pk;
$this->studiengang_id = $row->studiengang_fk;
$this->semester = $row->semester;
$this->name = $row->name;
$this->personenstatus = $row->personenstatus;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
return true;
}
/**
* Liefert alle ausbildungssemester zu einem Studiengang
* @param $studiengang_id Studiengang_id des Ausbildungssemesters
* @return true wenn ok, false im Fehlerfall
*/
function load_stg($studiengang_id)
{
if(!is_numeric($studiengang_id) || $studiengang_id == '')
{
$this->errormsg = 'studiengang_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM ausbildungssemester WHERE studiengang_fk = '$studiengang_id' order by semester";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
while($row = pg_fetch_object($res))
{
$ausb_obj = new ausbildungssemester($this->conn);
$ausb_obj->ausbildungssemester_id = $row->ausbildungssemester_pk;
$ausb_obj->studiengang_id = $row->studiengang_fk;
$ausb_obj->semester = $row->semester;
$ausb_obj->name = $row->name;
$ausb_obj->personenstatus = $row->personenstatus;
$ausb_obj->updateamum = $row->creationdate;
$ausb_obj->updatevon = $row->creationuser;
$this->result[] = $ausb_obj;
}
return true;
}
/**
* Liefert alle Ausbildungssemester
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM ausbildungssemester;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
while($row = pg_fetch_object($res))
{
$ausb_obj = new ausbildungssemester($this->conn);
$ausb_obj->ausbildungssemester_id = $row->ausbildungssemester_pk;
$ausb_obj->studiengang_id = $row->studiengang_fk;
$ausb_obj->semester = $row->semester;
$ausb_obj->name = $row->name;
$ausb_obj->personenstatus = $row->personenstatus;
$ausb_obj->updateamum = $row->creationdate;
$ausb_obj->updatevon = $row->creationuser;
$this->result[] = $ausb_obj;
}
return true;
}
/**
* Checkt die Variablen vor dem Speichern
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
if(!checkvars())
return false;
$this->errormsg = 'Noch nicht implementiert';
return false;
}
/**
* Loescht den Datensatz mit der ID die uebergeben wurde
* @param $ausbildungssemester_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($ausbildungssemester_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
}
?>
+340
View File
@@ -0,0 +1,340 @@
<?php
/**
* Klasse bankverbindung (FAS-Online)
* @create 07-03-2006
*/
class bankverbindung
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var bankverbindung Objekt
//Tabellenspalten
var $bankverbindung_id; // @var integer
var $person_id; // @var integer
var $name; // @var string
var $anschrift; // @var string
var $blz; // @var string
var $bic; // @var string
var $kontonr; // @var string
var $iban; // @var string
var $typ; // @var integer
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
/**
* Konstruktor
* @param $conn Connection zur Datenbank
* $bank_id Zu ladende ID (Default=null)
*/
function bankverbindung($conn, $bank_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($bank_id != null)
$this->load($bank_id);
}
/**
* Prueft die gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
//Gesamtlaenge pruefen
$this->errormsg = 'Eine der Maximiallaengen wurde ueberschritten';
if(strlen($this->name)>255)
{
$this->errormsg = 'Name darf nicht länger als 255 Zeichen sein';
return false;
}
if(strlen($this->anschrift)>255)
{
$this->errormsg = 'Anschrift darf nicht länger als 255 Zeichen sein';
return false;
}
if(strlen($this->blz)>15)
{
$this->errormsg = 'BLZ darf nicht länger als 15 Zeichen sein';
return false;
}
if(strlen($this->bic)>15)
{
$this->errormsg = 'BIC darf nicht länger als 15 Zeichen sein';
return false;
}
if(strlen($this->kontonr)>25)
{
$this->errormsg = 'KontoNr darf nicht länger als 25 Zeichen sein';
return false;
}
if(strlen($this->iban)>25)
{
$this->errormsg = 'IBAN darf nicht länger als 25 Zeichen sein';
return false;
}
//Zahlenwerte ueberpruefen
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
if(!is_numeric($this->person_id)) return false;
if(!is_numeric($this->typ)) return false;
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $bankverbindung_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Neuen Datensatz einfuegen
//Naechste ID aus der Sequence holen
$qry = "SELECT nextval('bankverbindung_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim auslesen der Sequence';
return false;
}
$this->bankverbindung_id = $row->id;
$qry = "INSERT INTO bankverbindung (bankverbindung_pk, person_fk, name, anschrift, blz, bic,".
" kontonr, iban, typ, creationdate, creationuser) VALUES(".
" '$this->bankverbindung_id', '$this->person_id', '$this->name', '$this->anschrift',".
" '$this->blz', '$this->bic', '$this->kontonr', '$this->iban', '$this->typ', now(), $this->updatevon);";
}
else
{
//Datensatz Updaten
//ID pruefen
if(!is_numeric($this->bankverbindung_id))
{
$this->errormsg = 'bankverbindung_id muss eine Zahl sein';
return false;
}
$qry="UPDATE bankverbindung SET person_fk='$this->person_id', name='$this->name',".
" anschrift='$this->anschrift', blz='$this->blz', bic='$this->bic',".
" kontonr='$this->kontonr', iban='$this->iban', typ='$this->typ'".
" WHERE bankverbindung_pk=$this->bankverbindung_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 der Daten';
return false;
}
}
/**
* Loescht den Datensatz mit der uebergebenen ID
* @param $bank_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($bank_id)
{
if(!is_numeric($bank_id) || $bank_id == '')
{
$this->errormsg = 'bank_id muss eine Zahl sein';
return false;
}
$qry="DELETE FROM bankverbindung WHERE bankverbindung_pk=$bank_id";
if(!pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim loeschen der Daten';
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 Bankverbindung mit der uebergebenen ID
* @param $bank_id ID der bankverbindung
* @return true wenn ok, false im Fehlerfall
*/
function load($bank_id)
{
if(!is_numeric($bank_id) || $bank_id == '')
{
$this->errormsg = 'bank_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM bankverbindung WHERE bankverbindung_pk=$bank_id";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = pg_fetch_object($res))
{
$this->bankverbindung_id = $row->bankverbindung_pk;
$this->person_id = $row->person_fk;
$this->name = $row->name;
$this->anschrift = $row->anschrift;
$this->blz = $row->blz;
$this->bic = $row->bic;
$this->kontonr = $row->kontonr;
$this->iban = $row->iban;
$this->typ = $row->typ;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Liefert alle Bankverbindungen der Person die uebergeben wird
* @param $pers_id ID der Person
* @return true wenn ok, false im Fehlerfall
*/
function load_pers($pers_id)
{
if(!is_numeric($pers_id) || $pers_id == '')
{
$this->errormsg = 'pers_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM bankverbindung WHERE person_fk=$pers_id";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$bank_obj = new bankverbindung($this->conn);
$bank_obj->bankverbindung_id = $row->bankverbindung_pk;
$bank_obj->person_id = $row->person_fk;
$bank_obj->name = $row->name;
$bank_obj->anschrift = $row->anschrift;
$bank_obj->blz = $row->blz;
$bank_obj->bic = $row->bic;
$bank_obj->kontonr = $row->kontonr;
$bank_obj->iban = $row->iban;
$bank_obj->typ = $row->typ;
$bank_obj->updateamum = $row->creationdate;
$bank_obj->updatevon = $row->creationuser;
$this->result[] = $bank_obj;
}
return true;
}
/**
* Liefert alle Bankverbindungen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM bankverbindung";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$bank_obj = new bankverbindung($this->conn);
$bank_obj->bankverbindung_id = $row->bankverbindung_pk;
$bank_obj->person_id = $row->person_fk;
$bank_obj->name = $row->name;
$bank_obj->anschrift = $row->anschrift;
$bank_obj->blz = $row->blz;
$bank_obj->bic = $row->bic;
$bank_obj->kontonr = $row->kontonr;
$bank_obj->iban = $row->iban;
$bank_obj->typ = $row->typ;
$bank_obj->updateamum = $row->creationdate;
$bank_obj->updatevon = $row->creationuser;
$this->result[] = $bank_obj;
}
return true;
}
function getTypBezeichnung($id)
{
switch($id)
{
case 1: return 'Privatkonto';
case 2: return 'Firmenkonto';
default: return '';
}
}
}
?>
@@ -1,158 +1,151 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class zeitwunsch
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $zeitwuensche = array(); // zeitwunsch Objekt
//Tabellenspalten
var $stunde; // smalint
var $mitarbeiter_uid; // varchar(16)
var $tag; // smalint
var $gewicht; // smalint
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $uid Uid des Mitarbeiters
// * $tag Tag des Zeitwunsches
// * $stunde Stunde des Zeitwunsches
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function zeitwunsch($conn, $mitarbeiter_uid=null, $tag=null, $stunde=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($mitarbeiter_uid != null && $tag!=null && $stunde!=null)
$this->load($mitarbeiter_uid, $tag, $stunde);
}
// *********************************************************
// * Laedt einen Zeitwunsch
// * @param
// *********************************************************
function load($mitarbeiter_uid, $tag, $stunde)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->mitarbeiter_uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein.';
return false;
}
if($this->mitarbeiter_uid == '')
{
$this->errormsg = 'UID muss angegeben werden';
return false;
}
if(!is_numeric($this->stunde))
{
$this->errormsg = 'Stunde muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->gewicht))
{
$this->errormsg = 'Gewicht muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->tag))
{
$this->errormsg = 'Tag 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 einen Zeitwunsch in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = "INSERT INTO campus.tbl_zeitwunsch (mitarbeiter_uid, tag, stunde, gewicht)
VALUES('".addslashes($this->mitarbeiter_uid)."',".
$this->tag.','.$this->stunde.','.$this->gewicht.');';
}
else
{
$qry = 'UPDATE campus.tbl_zeitwunsch SET'.
' gewicht='.$this->gewicht.
" WHERE mitarbeiter_uid='".addslashes($this->mitarbeiter_uid)."' AND
tag=".$this->tag.' AND stunde='.$this->stunde;
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Zeitwunsches:'.$qry;
return false;
}
}
}
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class benutzer extends person
{
//Tabellenspalten
var $uid; // varchar(16)
var $bnaktiv; // boolean
var $alias; // varchar(256)
// *************************************************************************
// * 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
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function benutzer($conn, $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($uid != null)
$this->load($uid);
}
// ***********************************************************
// * Laedt Benutzer mit der uebergebenen ID
// * @param $uid ID der Person die geladen werden soll
// ***********************************************************
function load($uid)
{
}
// *******************************************
// * 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($this->uid == '')
{
$this->errormsg = 'UID muss eingegeben werden';
return false;
}
if(strlen($this->alias)>256)
{
$this->errormsg = 'Alias darf nicht laenger als 256 Zeichen sein';
return false;
}
if(!is_numeric($this->person_id))
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_bool($this->aktiv))
{
$this->errormsg = 'aktiv muss ein boolscher wert sein';
return false;
}
return true;
}
// ******************************************************************
// * Speichert die Benutzerdaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
// * ansonsten der Datensatz mit $uid upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ******************************************************************
function save()
{
//Personen Datensatz speichern
if(!person::save())
return false;
//Variablen auf Gueltigkeit pruefen
if(!benutzer::validate())
return false;
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
{
$qry = 'INSERT INTO tbl_benutzer (uid, aktiv, alias, person_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
"'".addslashes($this->uid)."',".
($this->aktiv?'true':'false').','.
$this->addslashes($this->alias).",'".
$this->person_id."',".
$this->addslashes($this->insertamum).",".
$this->addslashes($this->insertvon).",".
$this->addslashes($this->updateamum).",".
$this->addslashes($this->updatevon).");";
}
else
{
$qry = 'UPDATE tbl_benutzer SET'.
' aktiv='.($this->aktiv?'true':'false').','.
' alias='.$this->addslashes($this->alias).','.
" person_id='".$this->person_id."',".
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE uid='".addslashes($this->uid)."';";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Benutzer-Datensatzes:'.$qry;
return false;
}
}
}
?>
+137 -320
View File
@@ -1,321 +1,138 @@
<?php
/**
* Klasse fuer Berechtigungen der User
* @author Christian Paminger
* @version 1.0
* @updated 11-Feb-2004
*/
class berechtigung
{
/**
* interne userberechtigung_id (Zaehler aus DB)
* @var integer
*/
var $userberechtigung_id;
/**
* @var integer
*/
var $studiengang_kz;
/**
* @var integer
*/
var $fachbereich_id;
/**
* @var string
*/
var $berechtigung_kurzbz;
/**
* @var string
*/
var $uid;
/**
* @var string
*/
var $studiensemester_kurzbz;
/**
* @var integer
*/
var $start;
/**
* @var integer
*/
var $ende;
/**
* @var integer
*/
var $starttimestamp;
/**
* @var integer
*/
var $endetimestamp;
/**
* @var string
*/
var $art;
/**
* @var array
*/
var $berechtigungen=array();
/**
* @var string
*/
var $conn;
/**
* @var boolean
*/
var $new;
function berechtigung($conn)
{
$this->conn=$conn;
$this->new=true;
}
/**
* Ladet die Attribute der Berechtigung aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function load($id)
{
// Berechtigung holen
$sql_query="SELECT * FROM tbl_userberechtigung WHERE userberechtigung_id=$id";
//echo $sql_query;
if(!($erg=pg_exec($this->conn, $sql_query)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
if($num_rows!=1)
{
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
$row=pg_fetch_object($erg,0);
$this->userberechtigung_id=$row->userberechtigung_id;
$this->studiengang_kz=$row->studiengang_kz;
$this->fachbereich_id=$row->fachbereich_id;
$this->berechtigung_kurzbz=$row->berechtigung_kurzbz;
$this->uid=$row->uid;
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$this->start=$row->start;
$this->ende=$row->ende;
$this->art=$row->art;
$this->new=false;
return true;
}
/**
* @return boolean true=ok, false=fehler
*/
function save()
{
// Connection holen
if (is_null($conn=$this->getConnection()))
{
return false;
}
// Daten zur Person speichern
if (!person::save()) {
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
return false;
}
if ($this->new) {
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
"lektor,lehrfach_nr,studiengang_kz,fachbereich_id,semester,verband,".
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
"wochenrythmus,start_kw,anmerkung)".
"values(".
"'".$this->lvnr."',".
"'".$this->unr."',".
"'".$this->einheit_kurzbz."',".
"'".$this->lektor."',".
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
(strlen($this->semester)>0?$this->semester:NULL).",".
"'".$this->verband."',".
"'".$this->gruppe."',".
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
")";
} else
{
$qry="UPDATE tbl_lehrveranstaltung ".
"SET lvnr='".$this->lvnr."',".
"unr='".$this->unr."',".
"einheit_kurzbz='".$this->einheit_kurzbz."',".
"lektor='".$this->lehrfach_nr."',".
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
"verband='".$this->verband."',".
"gruppe='".$this->gruppe."',".
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
}
//echo "<br>".$qry;
if(!@pg_query($conn, $qry))
{
$this->errormsg=pg_errormessage($conn);
return false;
}
return true;
}
/**
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
* Fehlermeldung liegt in errormsg.
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
* @param string $uid UserID
* @return variabel Array mit LVA; <b>false</b> bei Fehler
*/
function getBerechtigungen($uid)
{
// Berechtigungen holen
$sql_query="SELECT * FROM tbl_userberechtigung WHERE uid='$uid' AND (start<now() OR start IS NULL) AND (ende>now() OR ende IS NULL)";
//echo $sql_query;
if(!$erg=@pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
//$num_rows=pg_numrows($erg);
while($row=pg_fetch_object($erg))
{
$b=new berechtigung($this->conn);
$b->userberechtigung_id=$row->userberechtigung_id;
$b->studiengang_kz=$row->studiengang_kz;
$b->fachbereich_id=$row->fachbereich_id;
$b->berechtigung_kurzbz=$row->berechtigung_kurzbz;
$b->uid=$row->uid;
$b->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$b->start=$row->start;
if ($row->start!=null)
$b->starttimestamp=mktime(0,0,0,substr($row->start,5,2),substr($row->start,8),substr($row->start,0,4));
else
$b->starttimestamp=null;
$b->ende=$row->ende;
if ($row->ende!=null)
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
else
$b->endetimestamp=null;
$b->art=$row->art;
$this->berechtigungen[]=$b;
}
return true;
}
function isBerechtigt($berechtigung,$studiengang_kz=null,$art=null, $fachbereich_id=null)
{
$timestamp=time();
foreach ($this->berechtigungen as $b)
{
//Fachbereichsberechtigung
if($fachbereich_id!=null)
{
//Wenn Fachbereichs oder Adminberechtigung
if(($berechtigung == $b->berechtigung_kurzbz || $b->berechtigung_kurzbz == 'admin') && ($b->fachbereich_id==$fachbereich_id || $b->fachbereich_id=='0'))
{
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
}
}
//Wenn Berechtigung fuer Bestimmte Klasse vorhanden ist
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null && $fachbereich_id==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
//Wenn Berechtigung fuer Bestimmten Studiengang vorhanden ist
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null && $b->fachbereich_id==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
//Wenn Berechtigung mit Studiengang und der richtigen BerechtigungsArt (suid) vorhanden ist
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
&& strstr($b->art,$art))
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
}
return false;
}
/**
* Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
* Optional wird auf Berechtigung eingeschraenkt.
* Wenn Berechtigung ueber alle Studiengaenge steht im ersten Feld 0.
*/
function getStgKz($berechtigung=null)
{
$studiengang_kz=array();
$timestamp=time();
foreach ($this->berechtigungen as $b)
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
if($b->fachbereich_id==null)
$studiengang_kz[]=$b->studiengang_kz;
$studiengang_kz=array_unique($studiengang_kz);
sort($studiengang_kz);
return $studiengang_kz;
}
function getFbKz($berechtigung=null)
{
$fachbereichs_kz=array();
$timestamp=time();
foreach($this->berechtigungen as $b)
{
if(($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
&& (($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp) || ($b->starttimestamp==null && $b->endetimestamp==null)))
{
if($b->fachbereich_id!='' && !in_array($b->fachbereich_id,$fachbereichs_kz))
$fachbereichs_kz[] = $b->fachbereich_id;
}
}
sort($fachbereichs_kz);
return $fachbereichs_kz;
}
}
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class berechtigung
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $berechtigungen = array(); // berechtigung Objekt
//Tabellenspalten
var $berechtigung_kurzbz; // varchar(16)
var $beschreibung; // varchar(256)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $berechtigung_kurzbz
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function berechtigung($conn, $berechtigung_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($berechtigung_kurzbz!=null)
$this->load($berechtigung_kurzbz);
}
// *********************************************************
// * Laedt eine Berechtigung
// * @param berechtigung_kurzbz
// *********************************************************
function load($berechtigung_kurzbz)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->berechtigung_kurzbz)>16)
{
$this->errormsg = 'Berechtigung_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->beschreibung)>256)
{
$this->errormsg = 'Beschreibung darf nicht laenger als 256 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 Berechtigung 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;
if($this->new)
{
$qry = 'INSERT INTO tbl_berechtigung (berechtigung_kurzbz, beschreibung)
VALUES('.$this->addslashes($this->berechtigung_kurzbz).','.
$this->addslashes($this->beschreibung).');';
}
else
{
$qry = 'UPDATE tbl_berechtigung SET'.
' beschreibung='.$this->addslashes($this->beschreibung).
" WHERE berechtigung_kurzbz='".addslashes($this->berechtigung_kurzbz)."'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Berechtigung:'.$qry;
return false;
}
}
}
?>
-515
View File
@@ -1,515 +0,0 @@
<?php
/**
* @author: maximilian schremser
* @date: 2004-10-24
* globale funktionen für verschiedene anwendungen auf der cis.technikum-wien.at
*/
function get_active_status($auth) {
$course_id = $auth->stg_id;
$term_id = $auth->semester;
$sql = "SELECT distinct verband, gruppe FROM tbl_student WHERE (studiengang_kz = $course_id) AND (semester = $term_id) ORDER BY verband,gruppe";
$rs = new pgRS($sql);
$count_verband = $rs->num;
$verbands = $rs->arr;
for ($rt = $count_verband-1; $rt >= 0; $rt--) {
$verband = $verbands[$rt]["verband"] . $verbands[$rt]["gruppe"];
if ($verbands[$rt]["verband"] == $auth->verband &&
$verbands[$rt]["gruppe"] == $auth->gruppe)
return pow(2,$rt);
}
return 0;
} // eof function get_active_status
//get_lf_bezeichnung holt die Studiengang Bezeichnung und die Lehrfach
// bezeichnung für das aktuelle Lehrfach.
function get_lf_bezeichnung($course_id, $term_id, $lesson)
{
$sql = "SELECT lf.bezeichnung, kurzbzlang FROM lehre.tbl_lehrfachzuteilung lf
JOIN tbl_studiengang USING(studiengang_kz) WHERE lf.studiengang_kz = $course_id
AND lf.lehrfachzuteilung_kurzbz = '$lesson' AND lf.semester = $term_id LIMIT 1";
$rs = new pgRS($sql);
$ret[0] = $rs->arr[0]["kurzbzlang"];
$ret[1] = $rs->arr[0]["bezeichnung"];
return $ret;
}
// Die Freigabe für die Verbände für den Studienbrief berechnen
// Um die Freigeschaltenen Studienbriefe zu berechnen.
function sum($points = array()) {
$p = 0;
for ($i = 0; $i < count($points); $i++)
{
$p+= $points[$i];
}
return $p;
} /* eof sum() */
// erstellen des aktuellen studienjahres
function get_studienjahr($i = -1) {
if ($i != -1) {
$stj = date("Y")+$i;
$stj .= "/";
$stj .= sprintf("%02d", date("y")+$i+1);
} else if ( date("n") >= 7)
$stj = date("Y") . "/" . date("y", mktime(0,0,0,1,1,date("Y")+1));
else
$stj = date("Y")-1 . "/" . date("y");
return $stj;
}
function get_needed_term_id($term_id = 0, $stj = "") {
if ($stj == "")
$stj = get_studienjahr();
$needed_term_id = $term_id + ((date("Y") - substr($stj,0,4))*2);
if ((date("n") >= 8 || date("n") < 3))
if ($term_id%2==0)
$needed_term_id--;
else
$needed_term_id++;
if ((date("n") < 8 || date("n") >= 3))
if ($term_id%2!= 0)
$needed_term_id--;
return $needed_term_id;
}
// berechnet die notwendige Semester_ID zum Anzeigen der
// Studenten im Kreuzerltool
function get_needed_term_id2($term_id = 0, $stj = "") {
// im WS sollen noch Studenten vom letzten SS sichtbar sein
if ((date("n") >= 8 || date("n") < 2)) {
if ($term_id%2==0)
$term_id++;
}
// im SS sollen noch die Studenten vom WS sichtbar sein
else {
if ($term_id%2==1) {
$term_id++;
}
}
return $term_id;
}
// zurückrechnen auf die studenten im jetzigen semester
// studienpunkte sind nur für die eigene person sichtbar
function get_old_studienjahr() {
if (date("n") >= 7 && $term_id%2 == 1) {
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
}
else if (date("n") >= 7 && $term_id%2 == 0) {
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2)-1;
}
else if (date("n") < 7 && $term_id%2 == 1) {
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
}
else {
$studienjahr = date("Y") - intval(($auth->semester - $term_id)/2);
}
$studienjahr .= "/" . date("y", mktime(0,0,0,1,1,$studienjahr+1));
}
// write out the menu for kreuzerltool (campus/lehre/effort
function write_menu($menu, $course_id, $lesson, $term_id, $module = "", $stj = 0) {
if ($stj == 0)
$stj = get_studienjahr();
print "
<form method=\"post\" action=\"#page\">
<table border=0 cellpadding=1 cellspacing=0 width=600>
<tr>
<td>
<table border=0 width=100% cellpadding=0 cellspacing=0 width=600>
<tr>
<td width=50%>
<li type=square><a href=\"result_effort.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Kreuzerlliste Statistik</a></li>
</td>
<td>
<li type=square><a href=\"show_list.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Anwesenheits-
und <br>&nbsp;&nbsp;&nbsp;&Uuml;bersichtstabelle</a></li></td></tr>
<tr>
<td>
<li type=square><a href=\"create_stb.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Kreuzerllisten anlegen <br>&nbsp;&nbsp;&nbsp;und verwalten</a></li></td>
<td>
<li type=square><a href=\"edit_list.php?course_id=$course_id&short=$lesson&term_id=$term_id&stj=$stj&module=$module#page\">Studentenpunkte <br>&nbsp;&nbsp;&nbsp;&nbsp;verwalten</a></li></td></tr>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
<tr>
<td width=200 class=light valign=middle height=19>&nbsp;
$menu</td>
<td align=right class=light>Studienjahr: <select name=stj size=1 onChange=document.location.href='$PHP_SELF?course_id=$course_id&short=$lesson&term_id=$term_id&module=$module&stj='+document.forms[0].stj.options[document.forms[0].stj.options.selectedIndex].value;>";
$k = 0;
// einfügen eines neuen Studienjahres ab 1.Juli bis 31.Dezember
if (date("n") >= 7) {
$d = date("Y") . "/" . date("y", mktime(0,0,0,1,1,date("Y")+1));
echo "<option value='$d'";
if ($d == $stj)
echo "selected";
echo ">$d</option>";
}
// vergangene Studienjahre seit 2003/04
for ($i = date("y")+0, $j = date("Y")-1; $i >= 3, $j >= 2002; $i--,$j--)
{
$nextYear = $i;
$year = $j;
// add a spacing 0
if ($nextYear < 10)
$nextYear = "0$nextYear";
echo "<option value=\"$year/$nextYear\"";
echo ($stj == ($year."/".$nextYear))?"selected":"";
echo ">$year/$nextYear</option>";
}
print <<<EOF
</select></td>
</tr>
<tr>
<td colspan=2>&nbsp;</td>
</tr>
</table></td></tr>
</table></td>
</tr></table>
</form>
EOF;
}
/**
* @params inputString - the String to be formatted
* @return the formatted String
*/
function format($inputString) {
$inputString = stripslashes($inputString);
return str_replace("\n", "<br>",$inputString);
}
function get_lectors($course_id, $term_id, $short) {
if ($course_id && $term_id && $short) {
$sql = "SELECT DISTINCT on (bezeichnung,nachname) bezeichnung, studiengang_kz, semester, vornamen, nachname, email, uid FROM lehre.tbl_lehrfachzuteilung JOIN tbl_person ON uid = lektor_uid WHERE studiengang_kz='$course_id' AND semester='$term_id' AND lehrfachzuteilung_kurzbz = '$short' AND tbl_person.aktiv=TRUE ORDER BY bezeichnung, nachname";
//$sql_query = "SELECT DISTINCT ON(uid), vornamen, nachname,
// titel FROM lehre.tbl_lehrfachzuteilung, tbl_person,
//tbl_mitarbeiter WHERE tbl_person.uid =
//lehre.tbl_lehrfachzuteilung.lektor_uid AND
//lehre.tbl_lehrfachzuteilung.studiengang_kz='$course_id'
//AND lehre.tbl_lehrfachzuteilung.semester='$term_id'
//AND LOWER(lehre.tbl_lehrfachzuteilung.lehrfachzuteilung_kurzbz)='$short'
//AND lehre.tbl_lehrfachzuteilung.aktiv = true
//ORDER BY nachname";
$result_lectors = new pgRS($sql);
}
$num_rows_lectors = $result_lectors->num;
$row_email = array();
$row_vornamen = array();
$row_nachname = array();
$row_titel = array();
for($i = 0; $i < $num_rows_lectors; $i++)
{
$row_email[] = $result_lectors->arr[$i]["emailtw"];
$row_vornamen[] = $result_lectors->arr[$i]["vornamen"];
$row_nachname[] = $result_lectors->arr[$i]["nachname"];
$row_titel[] = $result_lectors->arr[$i]["titel"];
}
$ret = "";
for ($i = 0; $i < count($row_email); $i++)
{
$ret .= "$row_titel[$i] $row_vornamen[$i] $row_nachname[$i]";
if ($i < count($row_email)-1)
$ret .= ", ";
}
return $ret;
}
function get_person($bezeichnung, $course_id) {
$sql = "SELECT titel, vornamen, nachname, bezeichnung FROM tbl_funktion, public.tbl_person JOIN tbl_personfunktion ON (tbl_personfunktion.uid = tbl_person.uid) WHERE tbl_personfunktion.funktion_kurzbz = tbl_funktion.funktion_kurzbz AND bezeichnung='$bezeichnung' AND tbl_personfunktion.studiengang_kz='$course_id'";
$rs = new pgRS($sql);
$arr = $rs->arr[0];
$ret = $arr["titel"]." " . $arr["vornamen"]." " . $arr["nachname"];
return $ret;
}
function create_version($user, $info_data) {
$id = 0;
$info_id = 0;
$version_id = 0;
$ects_points = $info_data["ects_credits"];
$learning_language = $info_data["sprache"];
$wochenstunden = $info_data["hours"];
$course_id = $info_data["course_id"];
$term_id = $info_data["term_id"];
$short = $info_data["short"];
$studienjahr = $info_data["studienjahr"];
$fachbereich = $info_data["fachbereich"];
$fachbereichsleiter = $info_data["fachbereichsleiter"];
$fachbereichskoordinator = $info_data["fachbereichskoordinator"];
$lehrender = $info_data["lehrender"];
$sql = "INSERT INTO lv_infos (ects_credits,
sprache, hours, studienjahr, fachbereich,
fachbereichsleiter, fachbereichskoordinator, lehrender) VALUES
($ects_points, $learning_language,
$wochenstunden, '$studienjahr',
'$fachbereich', '$fachbereichsleiter',
'$fachbereichskoordinator', '$lehrender')";
$rs = new myRS($sql);
$info_id = $rs->iid;
if ($info_id) {
$sql = "SELECT max(version) as version FROM lv_versions
WHERE studiengang_kz = $course_id AND
short = '$short' AND term_id = $term_id";
$rs = new myRS($sql);
$max_version = $rs->arr[0]["version"];
$sql ="INSERT INTO lv_versions (studiengang_kz, term_id,
short, lector_uid, version,
status, info_id, date_created, date_modified)
VALUES ($course_id, $term_id, '$short',
'$user', " . ($max_version +1).", 0,$info_id," .time() .", " . time().")";
$rs = new myRS($sql);
$version_id = $rs->iid;
}
return array($version_id, $info_id);
} // eof create_version
function get_version($version_id) {
$sql = "SELECT * FROM lv_versions v, lv_infos i
WHERE v.id = $version_id AND v.info_id = i.id";
$rs = new myRS($sql);
return array(
$rs->arr[0]["ects_credits"]/10,
$rs->arr[0]["sprache"],
$rs->arr[0]["hours"]/10,
$rs->arr[0]["info_id"],
$rs->arr[0]["content_de_id"],
$rs->arr[0]["content_en_id"],
$rs->arr[0]["date_created"],
$rs->arr[0]["date_modified"],
$rs->arr[0]["studienjahr"],
$rs->arr[0]["fachbereich"],
$rs->arr[0]["fachbereichsleiter"],
$rs->arr[0]["fachbereichskoordinator"],
$rs->arr[0]["lehrender"],
$rs->arr[0]["studiengang_kz"],
$rs->arr[0]["term_id"],
$rs->arr[0]["short"]
);
} // eof get_version
// updates the record with info_id in lv_infos
function update_version($user, $info_data) {
$id = 0;
$version_id = 0;
$ects_points = $info_data["ects_credits"];
$learning_language = $info_data["sprache"];
$wochenstunden = $info_data["hours"];
$info_id = $info_data["info_id"];
$studienjahr = $info_data["studienjahr"];
$fachbereich = $info_data["fachbereich"];
$fachbereichsleiter = $info_data["fachbereichsleiter"];
$fachbereichskoordinator = $info_data["fachbereichskoordinator"];
$lehrender = $info_data["lehrender"];
$version_id = $info_data["version_id"];
$sql = "UPDATE lv_infos SET ects_credits = $ects_points,
sprache = $learning_language,
hours = $wochenstunden,
studienjahr = '$studienjahr',
fachbereich = '$fachbereich',
fachbereichsleiter = '$fachbereichsleiter',
fachbereichskoordinator = '$fachbereichskoordinator',
lehrender = '$lehrender'
WHERE id = $info_id";
$rs = new myRS($sql);
$sql = "UPDATE lv_versions SET date_modified = " .time() .
" WHERE id = $version_id";
$rs = new myRS($sql);
} // eof update_version
// saves a version to be displayed in LV infos freigeben
function save_version($version_id) {
$sql = "UPDATE lv_versions SET status = 1 WHERE id = $version_id";
$rs = new myRS($sql);
}
// inserts a record into lv_content_$lang and
// update lv_versions.content_$lang_id
function create_content($lang, $version_id, $info_data) {
$arr_values = array_values($info_data);
$keys = join(", ", array_keys($info_data));
for ($i = 0; $i < count($arr_values)-1;$i++) {
$values .= "'" . $arr_values[$i] . "', ";
}
$values .= "'" . $arr_values[count($arr_values)-1] ."'";
$sql = "INSERT INTO lv_content_$lang ($keys) VALUES ($values)";
$rs = new myRS($sql);
$content_id = $rs->iid;
$sql = "UPDATE lv_versions SET content_" . $lang . "_id =
$content_id WHERE id = $version_id";
$rs = new myRS($sql);
return $content_id;
} // eof create_content
// update_content updates the table lv_content_$lang
function update_content($lang, $id, $info_data) {
$sql = "UPDATE lv_content_$lang SET ";
$keys = array_keys($info_data);
$values = array_values($info_data);
for ($i = 0; $i < count($values); $i++) {
$sql .= $keys[$i] ." = '" . $values[$i] . "'";
if ($i < count($values)-1) $sql .= ", ";
}
$sql .= " WHERE id = $id";
$rs = new myRS($sql);
} // eof update_content
function get_content($lang, $content_id, $fields) {
$sql = "SELECT " . join (", ", $fields) . " FROM
lv_content_$lang WHERE id = $content_id";
$rs = new myRS($sql);
return $rs->arr[0];
} // eof get_content
function write_log($lektor_uid, $action) {
$sql = "INSERT INTO lv_log (lektor_uid, action, datum)" .
" VALUES ('$lektor_uid', '$action', " . time() .")";
$rs = new myRS($sql);
return 1;
}
/*****************************************************************************
* function write_ects_menu($menu = 0, $course_id, $term_id, $short, $lang) {
*
* if ($menu == 1) $menu_name = "LV-Infos anzeigen";
*
* print <<<EOF
* <form method="get" action="view_$lang.php?menu=$menu" name="foo">
<input type="hidden" name="course_id" value="$course_id" />
<input type="hidden" name="term_id" value="$term_id" />
<input type="hidden" name="menu" value="$menu" />
<table border="0" width="100%" cellpadding="0" cellspacing="0">
<tr>
<td width=20>&nbsp;</td>
<td width="357"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="view_$lang.php?menu=1&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - anzeigen</a>
</font></td>
<td width="396"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="edit.php?menu=2&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - erstellen / bearbeiten</a>
</font></td>
<td width="280"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="publish.php?course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - freigeben</a></td>
<td width="280"><li><font size="2" face="Arial, Helvetica, sans-serif"><a class=Item2 href="index.php?menu=5&course_id=$course_id&short=$short&term_id=$term_id">LV-Infos - Feedback</a></td>
</tr>
<tr>
<td width=20>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</td>
</tr>
EOF;
if ($menu_name) {
print <<<EOF
<tr>
<td width="100%" class="inner"><a name="page"></a>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tr>
<td width=400><font face="Arial, Helvetica, sans-serif" size="2" color="#000000">
&nbsp;$menu_name
</font></td>
<td width="50%" align="center">
Lehrfach: <select name="short" size="1" onChange="document.foo.submit();" >
<option value="">Bitte Lehrfach auswählen</option>
EOF;
if ($course_id && $term_id) {
$sql = "SELECT DISTINCT bezeichnung, lehrfachzuteilung_kurzbz FROM lehre.tbl_lehrfachzuteilung WHERE studiengang_kz=$course_id AND semester=$term_id ORDER BY bezeichnung";
$rs = new pgRS($sql);
for ($i = 0; $i < $rs->num; $i++) {
echo "<option value='" . $rs->arr[$i]["lehrfachzuteilung_kurzbz"] .
"' ";
if ($short==$rs->arr[$i]["lehrfachzuteilung_kurzbz"])
echo " selected";
echo ">";
echo $rs->arr[$i]["bezeichnung"];
echo "</option>";
}
}
echo '</select></td>
<td align="right" class="inner" valign="middle" width=300>';
if ($menu != 2) {
if ($lang == "" || $lang!="en") {
* echo "[Deutsch]";
* } else {
* echo "<a class=Item2 href='view_de.php?course_id=$course_id&short=$short&term_id=$term_id&menu=$menu&lang=de'>[Deutsch]</a>";
* }
* if ($lang == "en") {
* echo "[English]";
* } else {
* echo "<a class=Item2 href='view_en.php?course_id=$course_id&short=$short&term_id=$term_id&menu=$menu&lang=en'>[English]</a>";
* }
* } // eof menu=2
* echo '</td>
* </tr></table></td>
* </tr>';
* }
* echo '<tr>
* <td width="100%" align="center">&nbsp;</td></tr></table></form>';
* }
***************************************************************************/
// write a menu for a quicker navigation in the ects - course contents program
function write_ects_quick_menu($course_id, $term_id, $short, $p, $version_id = 0, $info_id = 0, $content_de_id = 0, $content_en_id = 0) {
if ($p > 0) {
print '<table style="border:1px solid black"><tr><th>Schnellnavigation</th></tr><tr><td valign=top>
<!-- MENU FUER NAVIGATION //-->';
static $headlines = array("", "Allgemeine Infos", "Inhalte DE", "Prüfung DE", "Inhalte EN", "Prüfung EN", "Beenden");
for ($i = 1; $i < count($headlines); $i++) {
echo "
$i <a href=\"edit_$i.php?menu=2&course_id=$course_id&term_id=$term_id&short=$short&version_id=$version_id&info_id=$info_id&content_de_id=$content_de_id&content_en_id=$content_en_id&quick=1\">";
if ($i==$p) echo "<b>";
echo $headlines[$i];
if ($i==$p) echo "</b>";
echo "</a><br>";
}
}
}
// this function returns the dictionary entry for the keyword in the
// given language
function dict($lang = "de", $key = "") {
static $dictionary = array (
"back" => array("de" => "Zurück", "en" => "Back"),
"LVInfos" => array("de" => "LV - Informationen", "en" => "Course Description"),
"allCourses" => array("de" => "Alle Studiengänge", "en" => "All Courses"),
"availCourses" => array("de" => "Vorhandene Lehrfächer in ", "en" => "Available Courses in "),
"term" => array("de" => "Semester", "en" => "term"),
"noinfo" => array("de" => "Keine Informationenen verfügbar", "en" => "No course information available")
);
return $dictionary[$key][$lang];
}
?>
-110
View File
@@ -1,110 +0,0 @@
<?php
/*
$Header: /Pfad/Kodierrichtlinien.tex,v 1.2 2004/02/29 17:05:38 pam Exp $
$Log: Kodierrichtlinien.tex,v $
Revision 1.2 2004/02/29 17:05:38 pam
Fehler in Umlauten beseitigt.
*/
/**
* @class ects_sync
*
* @author Andreas Österreicher
*
* @date 30.9.2005
*
* @version $Revision: 1.2 $
*
* @brief Enthält Methoden für die ECTS Syncronisation
*/
class ects_sync
{
var $erg;
var $connection;
/********************************************************************
* @brief Konstruktor
*
* @param $conn Connection zur DB
********************************************************************/
function ects_sync($conn)
{
$this->connection=$conn;
}
/********************************************************************
* @brief Überprüft ob der Fachbereich existiert
*
* @param $fachb Fachbereichsbezeichnung
********************************************************************/
function check_fachbereich($fachb)
{
$sql_query = "SELECT * FROM tbl_fachbereich where bezeichnung='$fachb' OR kurzbz='$fachb'";
$result = pg_exec($this->connection, $sql_query);
if($row=pg_fetch_object($result))
$this->erg = $row->fachbereich_id;
else
return false;
return true;
}
/********************************************************************
* @brief Überprüft ob der Studiengang existiert
*
* @param $stg Studiengangs Kurzzeichen
********************************************************************/
function check_studiengang($stg)
{
$sql_query = "SELECT * FROM tbl_studiengang where studiengang_kz = $stg";
$result = pg_exec($this->connection, $sql_query);
if(pg_numrows($result)>0)
$this->erg = $stg;
else
return false;
return true;
}
/********************************************************************
* @brief Überprüft ob das Lehrfach existiert
*
* @param $lehrf LehrfachsKurzbz
* $stg Studiengang
* $sem Semester
********************************************************************/
function check_lehrfach($lehrf, $stg, $sem)
{
$sql_query = "SELECT * FROM tbl_lehrfach where kurzbz = upper('$lehrf') AND studiengang_kz=$stg AND semester=$sem";
$result = pg_exec($this->connection, $sql_query);
if($row=pg_fetch_object($result))
$this->erg = $row->lehrfach_nr;
else
return false;
return true;
}
/********************************************************************
* @brief Überprüft das Semester
*
* @param $sem Semster
********************************************************************/
function check_semester($sem)
{
if(is_numeric($sem) AND $sem<10)
$this->erg = $sem;
else
return false;
return true;
}
}
?>
-315
View File
@@ -1,315 +0,0 @@
<?php
/**
* Eine Einheit fasst mehrere Studenten zusammen. Die Besonderheit ist,
* dass die Studenten aus unterschiedlichen Studiengaengen stammen koennen.
* Das wird z.B. für die Freifaecher benoetigt.
* @author Christian Paminger, Werner Masik (werner@gefi.at)
* @version 1.0
* @created 22-Okt-2004 11:50:18
* @updated 28.10.2004 (WM)
*/
class einheit
{
/**
* @var string
*/
var $kurzbz;
/**
* @var integer
*/
var $stg_kz;
/**
* @var string nur zur info beim Suchergebnis, wird nicht gespeichert
*/
var $stg_kurzbz;
/**
* @var string
*/
var $bezeichnung;
/**
* @var integer
*/
var $semester;
/**
* @var integer
*/
var $typ;
/**
* @var string
*/
var $mailgrp_kurzbz;
/**
* @var string
*/
var $errormsg;
/**
* @var DB-Resource
*/
var $conn;
function einheit($conn,$kurzbz='')
{
$this->conn = $conn;
if (strlen($kurzbz)>0)
{
$this->kurzbz=$kurzbz;
$this->load();
}
}
/**
* Speichert die Einheit in der Datenbank. Bei Fehler ist der Rueckgabewert
* 'false' und die Fehlermeldung steht in 'errormsg'. INSERT oder DELETE wird
* durch 'new' bestimmt.
* @param string $kurzbz_new Kurzbezeichnung ist optional
* @return boolean true=ok, false=fehler
*/
function save($kurzbz_new='')
{
if (is_null($this->conn))
{
return false;
}
if (strlen($this->kurzbz)==0)
{
$this->errormsg="<i>kurzbz</i> nicht gesetzt";
return false;
}
if ($this->new)
{
if (is_numeric($this->semester)) $semester=$this->semester;
else $semester='NULL';
if (is_numeric($this->typ)) $typ=$this->typ;
else $typ='NULL';
if(!strlen($this->mailgrp_kurzbz)>0)
$this->mailgrp_kurzbz='NULL';
$qry="insert into tbl_einheit(einheit_kurzbz,studiengang_kz,bezeichnung,semester,typ,mailgrp_kurzbz) ".
"values('".$this->kurzbz."','".$this->stg_kz."','".$this->bezeichnung."',$semester,$typ,$this->mailgrp_kurzbz)";
} else
{
if (is_numeric($this->semester)) $semester='semester='.$this->semester;
else $semester='semester=NULL';
if (is_numeric($this->typ)) $typ='typ='.$this->typ;
else $typ='NULL';
if(!strlen($this->mailgrp_kurzbz)>0)
$this->mailgrp_kurzbz='mailgrp_kurzbz=NULL';
else
$this->mailgrp_kurzbz="mailgrp_kurzbz='$this->mailgrp_kurzbz'";
$qry="update tbl_einheit set studiengang_kz=".$this->stg_kz.",bezeichnung='".$this->bezeichnung."',".
"$semester,$typ,".$this->mailgrp_kurzbz.",einheit_kurzbz='".(strlen($kurzbz_new)>0?$kurzbz_new:$this->kurzbz)."' ".
"where einheit_kurzbz='".$this->kurzbz."'";
}
//echo $qry;
if(!($erg=pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
/**
* @return boolean true=ok, false=fehler
*/
function load($kurzbz='')
{
// optional: kurzbz setzen
if (strlen($uid)>0)
$this->kurzbz=$kurzbz;
// uid vorhanden?
if (strlen($this->kurzbz)==0) {
$this->errormsg='<i>einheit_kurzbz</i> nicht gesetzt';
return false;
}
if (is_null($this->conn)) {
return false;
}
$qry="select einheit_kurzbz,studiengang_kz,bezeichnung,semester,typ, mailgrp_kurzbz ".
"from tbl_einheit ".
"where einheit_kurzbz='".$this->kurzbz."'";
if(!($erg=pg_exec($this->conn, $qry))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
if($num_rows!=1) {
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
$row=pg_fetch_object($erg,0);
$this->stg_kz=$row->studiengang_kz;
$this->bezeichnung=$row->bezeichnung;
$this->semester=$row->semester;
$this->typ=$row->typ;
$this->mailgrp_kurzbz=$row->mailgrp_kurzbz;
return true;
}
/**
* Loescht die Funktion aus der Datenbank. Bei Fehler ist der Rueckgabewert
* 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function delete()
{
if (is_null($this->conn)) {
return false;
}
$qry="delete from tbl_einheit where einheit_kurzbz='".$this->kurzbz."'";
if(!($erg=pg_exec($this->conn, $qry))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
function addStudent($uid) {
if (is_null($this->conn)) {
return false;
}
$qry="insert into tbl_einheitstudent(einheit_kurzbz,uid,updateamum,updatevon) ".
"values('".$this->kurzbz."','".$uid."',now(),'".$_SERVER['PHP_AUTH_USER']."')";
if(!($erg=pg_exec($this->conn, $qry))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
function deleteStudent($uid) {
if (is_null($this->conn)) {
return false;
}
$qry="delete from tbl_einheitstudent ".
"where einheit_kurzbz='".$this->kurzbz."' and uid='$uid'";
if(!($erg=pg_exec($this->conn, $qry))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
/**
* Alle Einheiten zurueckgeben
* @return array Array der einheiten
*/
function getAll($studiengang_kz='')
{
if (is_null($this->conn)) {
return false;
}
if (strlen($studiengang_kz)>0)
{
$where=" where tbl_einheit.studiengang_kz='".$studiengang_kz."' ";
} else
{
$where="";
}
$qry="select tbl_einheit.*,tbl_studiengang.kurzbz from tbl_einheit join tbl_studiengang using(studiengang_kz) ".
"$where order by einheit_kurzbz;";
if(!($erg=pg_exec($this->conn, $qry))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new einheit($this->conn);
$l->kurzbz=$row->einheit_kurzbz;
$l->stg_kz=$row->studiengang_kz;
$l->stg_kurzbz=$row->kurzbz;
$l->bezeichnung=$row->bezeichnung;
$l->semester=$row->semester;
$l->typ=$row->typ;
$l->mailgrp_kurzbz=$row->mailgrp_kurzbz;
$result[]=$l;
}
return $result;
}
/**
* Liste aller Studenten zurueckgeben
* @param string $studiengang_kz optional
* @return array Array mit allen Studenten, false bei fehler
*/
function getStudenten($studiengang_kz='')
{
if (is_null($this->conn)) {
return false;
}
if (strlen($studiengang_kz)>0)
{
$where=" and tbl_einheit.studiengang_kz='".$studiengang_kz."' ";
} else
{
$where="";
}
$qry="select einheit_kurzbz,uid ".
"from tbl_einheitstudent join tbl_student using(uid) join tbl_person using(uid) ".
" join tbl_einheit using (einheit_kurzbz) ".
"where einheit_kurzbz='".$this->kurzbz."' $where ".
"order by upper(tbl_person.nachname),upper(tbl_person.vornamen)";
if(!($erg=pg_exec($this->conn, $qry))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new student($this->conn,$row->uid);
$result[]=$l;
}
return $result;
}
/**
* Liefert die Anzahl der Studenten in einer Einheit
* @param string kurzbzlang
* @return anzahl der Studenten
*/
function countStudenten($einheit_kurzbz)
{
$qry = "Select count(*) as anzahl from tbl_einheitstudent where einheit_kurzbz='$einheit_kurzbz'";
if($result=pg_query($this->conn,$qry))
{
if($row=pg_fetch_object($result))
return $row->anzahl;
else
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
}
else
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
}
}
?>
+310
View File
@@ -0,0 +1,310 @@
<?php
/**
* Klasse email (FAS-Online)
* @create 14-03-2006
*/
class email
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var email Objekt
//Tabellenspalten
var $email_id; // @var integer
var $person_id; // @var integer
var $email; // @var string
var $name; // @var string
var $typ; // @var integer
var $zustelladresse; // @var boolean
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
/**
* Konstruktor
* @param conn Connection zur Datenbank
* mail_id ID des zu ladenden Datensatzes
*/
function email($conn, $mail_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($mail_id != null)
$this->load($mail_id);
}
/**
* Laedt einen Datensatz
* @param mail_id ID des zu ladenden Datensatzes
*/
function load($mail_id)
{
//mail_id auf gueltigkeit pruefen
if(!is_numeric($mail_id) || $mail_id == '')
{
$this->errormsg = 'mail_id muss eine gueltige Zahl sein';
return false;
}
//laden des Datensatzes
$qry = "SELECT * FROM email WHERE email_pk='$mail_id';";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
if($row=pg_fetch_object($res))
{
$this->email_id = $row->email_pk;
$this->person_id = $row->person_fk;
$this->email = $row->email;
$this->name = $row->name;
$this->typ = $row->typ;
$this->zustelladresse = ($row->zustelladresse=='J'?true:false);
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Fehler bei der Datenbankabfrage';
return false;
}
return true;
}
/**
* Laedt alle Datensaetze
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
/* Frisst zu viel Speicher und wird beendet
$qry = "SELECT * FROM email;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$mail_obj = new email($this->conn);
$mail_obj->email_id = $row->email_pk;
$mail_obj->person_id = $row->person_fk;
$mail_obj->email = $row->email;
$mail_obj->name = $row->name;
$mail_obj->typ = $row->typ;
$mail_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
$mail_obj->updateamum = $row->creationdate;
$mail_obj->updatevon = $row->creationuser;
$this->result[] = $mail_obj;
}
return true;
*/
return false;
}
/**
* Laedt alle Datensaetze zu einer person
* @param pers_id ID der Person zu der die Mails geladen werden sollen
* @return true wenn ok, false im Fehlerfall
*/
function load_pers($pers_id)
{
//pers_id auf gueltigkeit pruefen
if(!is_numeric($pers_id) || $pers_id == '')
{
$this->errormsg = 'pers_id muss eine gueltige Zahl sein';
return false;
}
//Datensaetze laden
$qry = "SELECT * FROM email WHERE person_fk='$pers_id';";
if(!$result = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($result))
{
$mail_obj = new email($this->conn);
$mail_obj->email_id = $row->email_pk;
$mail_obj->person_id = $row->person_fk;
$mail_obj->email = $row->email;
$mail_obj->name = $row->name;
$mail_obj->typ = $row->typ;
$mail_obj->zustelladresse = ($row->zustelladresse=='J'?true:false);
$mail_obj->updateamum = $row->creationdate;
$mail_obj->updatevon = $row->creationuser;
$this->result[] = $mail_obj;
}
return true;
}
/**
* Loescht einen Datensatz
* @param mail_id ID des zu leoschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($mail_id)
{
//mail_id auf gueltigkeit pruefen
if(!is_numeric($mail_id) || $mail_id == '')
{
$this->errormsg = 'mail_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM email WHERE email_pk = '$mail_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 loeschen';
return false;
}
}
/**
* Prueft die variablen auf gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
//Gesamtlaenge pruefen
if(strlen($this->name)>255)
{
$this->errormsg = 'Name darf nicht mehr als 255 Zeichen lang sein';
return false;
}
if(strlen($this->email)>255)
{
$this->errormsg = 'EMail darf nicht mehr als 255 Zeichen lang sein';
return false;
}
//Zahlenfelder pruefen
if(!is_numeric($this->person_id))
{
$this->errormsg = 'Person_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->typ))
{
$this->errormsg = 'Typ muss eine gueltige Zahl sein';
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $email_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
if(!$this->checkvars())
return false;
if($this->new)
{
//Neuen Datensatz anlegen
//Naechste ID aus Sequence holen
$qry = "SELECT nextval('email_seq') as id;";
if(!$row=pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim auslesen der ID aus der Sequence';
return false;
}
$this->email_id = $row->id;
$qry = "INSERT INTO email (email_pk, person_fk, name, email, typ, creationdate, creationuser, zustelladresse)".
" VALUES ('$this->email_id', '$this->person_id', '$this->name', '$this->email', '$this->typ', now(),".
" $this->updatevon, '".($this->zustelladresse?'J':'N')."');";
}
else
{
//Bestehenden Datensatz aktualisieren
//email_id auf gueltigkeit pruefen
if(!is_numeric($this->email_id) || $this->email_id == '')
{
$this->errormsg = 'email_id muss eine gueltige Zahl sein';
return false;
}
$qry = "UPDATE email SET person_fk = '$this->person_id', name = '$this->name', email = '$this->email',".
" typ = '$this->typ', zustelladresse = '".($this->zustelladresse?'J':'N')."' WHERE email_pk = '$this->email_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;
}
}
}
?>
+209 -72
View File
@@ -1,92 +1,229 @@
<?php
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* 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 $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $fachbereich_kurzbz; // @var string
var $bezeichnung; // @var string
var $farbe; // @var string
var $studiengang_kz; // @var integer
var $ext_id; // @var bigint
/**
* @var integer
* Konstruktor
* @param $conn Connection zur DB
* $fachb_id ID des zu ladenden Fachbereiches
*/
var $id;
/**
* @var string
*/
var $kurzbz;
/**
* @var string
*/
var $bezeichnung;
/**
* @var string;
*/
var $farbe;
/**
* @var integer
*/
var $studiengang_kz;
/**
* @var boolean default true
*/
var $boolean = true;
/**
*
* @var studiengang_kurzbz
*/
var $studiengang_kurzbz;
/**
* @var string
*/
var $errormsg;
/**
* @var resource
*/
var $conn;
function fachbereich($conn)
function fachbereich($conn, $fachbereich_kurzbz=null)
{
$this->conn = $conn;
$this->conn = $conn;
if($fachbereich_kurzbz != null)
$this->load($fachbereich_kurzbz);
}
/**
* Alle Fachbereiche zurückgeben
* @return array mit Fachbereichen oder false=fehler
* Laedt alle verfuegbaren Fachbereiche
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
if (is_null($this->conn))
$qry = 'SELECT * FROM tbl_fachbereich order by fachbereich_kurzbz;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
$qry = "select fachbereich_id,tbl_fachbereich.kurzbz,tbl_fachbereich.bezeichnung,tbl_fachbereich.farbe,tbl_fachbereich.studiengang_kz,".
"tbl_studiengang.kurzbz as studiengang_kurzbz ".
"from tbl_fachbereich join tbl_studiengang using(studiengang_kz) ".
"order by tbl_Fachbereich.kurzbz";
//echo $qry;
if (!($erg = pg_exec($this->conn, $qry)))
while($row = pg_fetch_object($res))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
$fachb_obj = new fachbereich($this->conn);
$fachb_obj->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$fachb_obj->erhalter_id = $row->erhalter_fk;
$fachb_obj->name = $row->name;
$this->result[] = $fachb_obj;
}
$result = array();
$num_rows = pg_numrows($erg);
for ($i = 0; $i < $num_rows; $i ++)
{
// Record holen
$row = pg_fetch_object($erg, $i);
// Instanz erzeugen
$fb = new fachbereich($this->conn);
$fb->id = $row->fachbereich_id;
$fb->kurzbz = $row->kurzbz;
$fb->bezeichnung = $row->bezeichnung;
$fb->farbe = $row->farbe;
$fb->studiengang_kz = $row->studiengang_kz;
$fb->studiengang_kurzbz = $row->studiengang_kurzbz;
// in array speichern
$result[] = $fb;
}
return $result;
return true;
}
/**
* Laedt einen Fachbereich
* @param $fachb_id ID des zu ladenden Fachbereiches
* @return true wenn ok, false im Fehlerfall
*/
function load($fachbereich_kurzbz)
{
if($fachbereich_kurzbz == '')
{
$this->errormsg = 'fachbereich_kurzbz ungueltig!';
return false;
}
$qry = "SELECT * FROM tbl_fachbereich WHERE fachbereich_kurzbz = '$fachbereich_kurzbz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$this->erhalter_id = $row->erhalter_fk;
$this->name = $row->name;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $fachb_id id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($fachb_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
$this->fachbereich_kurzbz = str_replace("'",'´',$this->fachbereich_kurzbz);
//Laenge Pruefen
if(strlen($this->bezeichnung)>128)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->ext_id</b> - $this->bezeichnung";
return false;
}
if(strlen($this->fachbereich_kurzbz)>16)
{
$this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->fachbereich_kurzbz";
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Pruefen ob fachbereich_kurzbz gueltig ist
if($this->fachbereich_kurzbz == '')
{
$this->errormsg = 'fachbereich_id ungueltig!';
return false;
}
//Neuen Datensatz anlegen
$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->farbe).', '.
$this->addslashes($this->ext_id).', '.
$this->addslashes($this->studiengang_kz).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob fachbereich_kurzbz gueltig ist
if($this->fachbereich_kurzbz == '')
{
$this->errormsg = 'fachbereich_kurzbz ungueltig.';
return false;
}
$qry = 'UPDATE tbl_fachbereich SET '.
'fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).', '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'farbe='.$this->addslashes($this->farbe).', '.
'ext_id='.$this->addslashes($this->ext_id).', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).' '.
'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;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
}
}
?>
+350 -115
View File
@@ -1,151 +1,386 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Klasse fuer Berechtigungen der User
* @author Christian Paminger
* @version 1.0
* @updated 11-Feb-2004
*/
class benutzer extends person
class benutzer
{
//Tabellenspalten
var $uid; // varchar(16)
var $bnaktiv; // boolean
var $alias; // varchar(256)
// *************************************************************************
// * 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
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function benutzer($conn, $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($uid != null)
$this->load($uid);
}
/**
* interne userberechtigung_id (Zaehler aus DB)
* @var integer
*/
var $userberechtigung_id;
/**
* @var integer
*/
var $studiengang_kz;
/**
* @var integer
*/
var $fachbereich_id;
/**
* @var string
*/
var $berechtigung_kurzbz;
/**
* @var string
*/
var $uid;
/**
* @var string
*/
var $studiensemester_kurzbz;
/**
* @var integer
*/
var $start;
/**
* @var integer
*/
var $ende;
/**
* @var integer
*/
var $starttimestamp;
/**
* @var integer
*/
var $endetimestamp;
/**
* @var string
*/
var $art;
/**
* @var array
*/
var $berechtigungen=array();
/**
* @var string
*/
var $variable;
// ***********************************************************
// * Laedt Benutzer mit der uebergebenen ID
// * @param $uid ID der Person die geladen werden soll
// ***********************************************************
function load($uid)
var $conn; //Vilesci Connection
/**
* @var boolean
*/
var $new;
var $errormsg;
function benutzer($conn)
{
$this->conn=$conn;
$this->new=true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
/**
* Ladet die Attribute der Berechtigung aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function load($id)
{
if(strlen($this->uid)>16)
// Berechtigung holen
$sql_query="SELECT * FROM tbl_userberechtigung WHERE userberechtigung_id=$id";
//echo $sql_query;
if(!($erg=pg_exec($this->conn, $sql_query)))
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
$this->errormsg=pg_errormessage($this->conn);
return false;
}
if($this->uid == '')
$num_rows=pg_numrows($erg);
if($num_rows!=1)
{
$this->errormsg = 'UID muss eingegeben werden';
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
if(strlen($this->alias)>256)
$row=pg_fetch_object($erg,0);
$this->userberechtigung_id=$row->userberechtigung_id;
$this->studiengang_kz=$row->studiengang_kz;
$this->fachbereich_id=$row->fachbereich_id;
$this->berechtigung_kurzbz=$row->berechtigung_kurzbz;
$this->uid=$row->uid;
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$this->start=$row->start;
$this->ende=$row->ende;
$this->art=$row->art;
$this->new=false;
return true;
}
/**
* @return boolean true=ok, false=fehler
*/
function save()
{
/*
// Connection holen
if (is_null($conn=$this->getConnection()))
{
$this->errormsg = 'Alias darf nicht laenger als 256 Zeichen sein';
return false;
}
if(!is_numeric($this->person_id))
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
// Daten zur Person speichern
if (!person::save()) {
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
return false;
}
if(!is_bool($this->aktiv))
if ($this->new) {
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
"lektor,lehrfach_nr,studiengang_kz,fachbereich_id,semester,verband,".
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
"wochenrythmus,start_kw,anmerkung)".
"values(".
"'".$this->lvnr."',".
"'".$this->unr."',".
"'".$this->einheit_kurzbz."',".
"'".$this->lektor."',".
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
(strlen($this->semester)>0?$this->semester:NULL).",".
"'".$this->verband."',".
"'".$this->gruppe."',".
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
")";
} else
{
$this->errormsg = 'aktiv muss ein boolscher wert sein';
$qry="UPDATE tbl_lehrveranstaltung ".
"SET lvnr='".$this->lvnr."',".
"unr='".$this->unr."',".
"einheit_kurzbz='".$this->einheit_kurzbz."',".
"lektor='".$this->lehrfach_nr."',".
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
"verband='".$this->verband."',".
"gruppe='".$this->gruppe."',".
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
}
//echo "<br>".$qry;
if(!@pg_query($conn, $qry))
{
$this->errormsg=pg_errormessage($conn);
return false;
}
return true;
*/
}
/**
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
* Fehlermeldung liegt in errormsg.
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
* @param string $uid UserID
* @return variabel Array mit LVA; <b>false</b> bei Fehler
*/
function getBerechtigungen($uid)
{
// Berechtigungen holen
$sql_query="SELECT * FROM tbl_userberechtigung WHERE uid='$uid' AND (start<now() OR start IS NULL) AND (ende>now() OR ende IS NULL)";
//echo $sql_query;
if(!$erg=@pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
//$num_rows=pg_numrows($erg);
while($row=pg_fetch_object($erg))
{
$b=new berechtigung($this->conn);
$b->userberechtigung_id=$row->userberechtigung_id;
$b->studiengang_kz=$row->studiengang_kz;
$b->fachbereich_id=$row->fachbereich_id;
$b->berechtigung_kurzbz=$row->berechtigung_kurzbz;
$b->uid=$row->uid;
$b->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$b->start=$row->start;
if ($row->start!=null)
$b->starttimestamp=mktime(0,0,0,substr($row->start,5,2),substr($row->start,8),substr($row->start,0,4));
else
$b->starttimestamp=null;
$b->ende=$row->ende;
if ($row->ende!=null)
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
else
$b->endetimestamp=null;
$b->art=$row->art;
$this->berechtigungen[]=$b;
}
return true;
}
// ******************************************************************
// * Speichert die Benutzerdaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
// * ansonsten der Datensatz mit $uid upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ******************************************************************
function save()
function isBerechtigt($berechtigung,$studiengang_kz=null,$art=null)
{
//Personen Datensatz speichern
if(!person::save())
return false;
//Variablen auf Gueltigkeit pruefen
if(!benutzer::validate())
return false;
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
$timestamp=time();
foreach ($this->berechtigungen as $b)
{
$qry = 'INSERT INTO tbl_benutzer (uid, aktiv, alias, person_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
"'".addslashes($this->uid)."',".
($this->aktiv?'true':'false').','.
$this->addslashes($this->alias).",'".
$this->person_id."',".
$this->addslashes($this->insertamum).",".
$this->addslashes($this->insertvon).",".
$this->addslashes($this->updateamum).",".
$this->addslashes($this->updatevon).");";
}
else
{
$qry = 'UPDATE tbl_benutzer SET'.
' aktiv='.($this->aktiv?'true':'false').','.
' alias='.$this->addslashes($this->alias).','.
" person_id='".$this->person_id."',".
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE uid='".addslashes($this->uid)."';";
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
&& strstr($b->art,$art))
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
}
return false;
}
/**
* Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
* Optional wird auf Berechtigung eingeschraenkt.
* Wenn Berechtigung ueber alle Studiengaenge steht im ersten Feld 0.
*/
function getStgKz($berechtigung=null)
{
$studiengang_kz=array();
$timestamp=time();
if(pg_query($this->conn,$qry))
foreach ($this->berechtigungen as $b)
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
$studiengang_kz[]=$b->studiengang_kz;
$studiengang_kz=array_unique($studiengang_kz);
sort($studiengang_kz);
return $studiengang_kz;
}
/**
* Setzt die Studiensemester Variable
*/
function setVariableStudiensemester($user,$stsem)
{
//Vorhandende Variable aendern
$qry = "Update tbl_variable SET wert='$stsem' WHERE uid='$user' AND name='semester_aktuell'";
if($result = pg_query($this->conn,$qry))
{
//Log schreiben
return true;
if(pg_affected_rows($result)==0)
{
//Falls Variable nicht vorhanden ist eine neue anlegen
$qry = "INSERT INTO tbl_variable(uid, name, wert) values('$user', 'semester_aktuell', '$stsem')";
if(pg_query($this->conn,$qry))
return true;
else
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
}
else
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Benutzer-Datensatzes:'.$qry;
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
}
function getpossibilities($variable)
{
$ret = array();
switch($variable)
{
case 'semester_aktuell':
$qry = "Select * from tbl_studiensemester order by start";
if($result = pg_query($this->conn,$qry))
{
while($row=pg_fetch_object($result))
$ret[] = $row->studiensemester_kurzbz;
}
break;
}
return $ret;
}
function loadVariables($user)
{
if(!($result=@pg_query($this->conn, "SELECT * FROM tbl_variable WHERE uid='$user'")))
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
else
$num_rows=@pg_numrows($result);
while($row=pg_fetch_object($result))
{
$this->variable->{$row->name}=$row->wert;
}
if (!isset($this->variable->semester_aktuell))
{
if(!($result=@pg_query($this->conn, 'SELECT * FROM tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1')))
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
else
{
$num_rows=@pg_numrows($result);
if ($num_rows>0)
{
$row=pg_fetch_object($result);
$this->variable->semester_aktuell=$row->studiensemester_kurzbz;
}
}
}
if (!isset($this->variable->db_stpl_table))
$this->variable->db_stpl_table='stundenplan';
if (!isset($this->variable->fas_id))
$this->variable->fas_id=0;
if (!isset($this->variable->sleep_time))
$this->variable->sleep_time=300;
return true;
}
}
?>
-138
View File
@@ -1,138 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class berechtigung
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $berechtigungen = array(); // berechtigung Objekt
//Tabellenspalten
var $berechtigung_kurzbz; // varchar(16)
var $beschreibung; // varchar(256)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $berechtigung_kurzbz
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function berechtigung($conn, $berechtigung_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($berechtigung_kurzbz!=null)
$this->load($berechtigung_kurzbz);
}
// *********************************************************
// * Laedt eine Berechtigung
// * @param berechtigung_kurzbz
// *********************************************************
function load($berechtigung_kurzbz)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->berechtigung_kurzbz)>16)
{
$this->errormsg = 'Berechtigung_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->beschreibung)>256)
{
$this->errormsg = 'Beschreibung darf nicht laenger als 256 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 Berechtigung 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;
if($this->new)
{
$qry = 'INSERT INTO tbl_berechtigung (berechtigung_kurzbz, beschreibung)
VALUES('.$this->addslashes($this->berechtigung_kurzbz).','.
$this->addslashes($this->beschreibung).');';
}
else
{
$qry = 'UPDATE tbl_berechtigung SET'.
' beschreibung='.$this->addslashes($this->beschreibung).
" WHERE berechtigung_kurzbz='".addslashes($this->berechtigung_kurzbz)."'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Berechtigung:'.$qry;
return false;
}
}
}
?>
+39 -141
View File
@@ -1,54 +1,39 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse fachbereich (FAS-Online)
* @create 04-12-2006
* @create 14-03-2006
*/
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_kurzbz; // @var string
var $bezeichnung; // @var string
var $farbe; // @var string
var $studiengang_kz; // @var integer
var $ext_id; // @var bigint
var $fachbereich_id; // @var integer
var $erhalter_id; // @var integer
var $name; // @var string
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
/**
* Konstruktor
* @param $conn Connection zur DB
* $fachb_id ID des zu ladenden Fachbereiches
*/
function fachbereich($conn, $fachbereich_kurzbz=null)
function fachbereich($conn, $fachb_id=null)
{
$this->conn = $conn;
if($fachbereich_kurzbz != null)
$this->load($fachbereich_kurzbz);
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($fachb_id != null)
$this->load($fachb_id);
}
/**
@@ -57,11 +42,11 @@ class fachbereich
*/
function getAll()
{
$qry = 'SELECT * FROM tbl_fachbereich order by fachbereich_kurzbz;';
$qry = 'SELECT * FROM fachbereich order by name;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
@@ -69,9 +54,11 @@ class fachbereich
{
$fachb_obj = new fachbereich($this->conn);
$fachb_obj->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$fachb_obj->erhalter_id = $row->erhalter_fk;
$fachb_obj->name = $row->name;
$fachb_obj->fachbereich_id = $row->fachbereich_pk;
$fachb_obj->erhalter_id = $row->erhalter_fk;
$fachb_obj->name = $row->name;
$fachb_obj->updateamum = $row->creationdate;
$fachb_obj->updatevon = $row->creationuser;
$this->result[] = $fachb_obj;
}
@@ -83,27 +70,29 @@ class fachbereich
* @param $fachb_id ID des zu ladenden Fachbereiches
* @return true wenn ok, false im Fehlerfall
*/
function load($fachbereich_kurzbz)
function load($fachb_id)
{
if($fachbereich_kurzbz == '')
if(!is_numeric($fachb_id) || $fachb_id == '')
{
$this->errormsg = 'fachbereich_kurzbz ungueltig!';
$this->errormsg = 'fachb_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM tbl_fachbereich WHERE fachbereich_kurzbz = '$fachbereich_kurzbz';";
$qry = "SELECT * FROM fachbereich WHERE fachbereich_pk = '$fachb_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$this->erhalter_id = $row->erhalter_fk;
$this->name = $row->name;
$this->fachbereich_id = $row->fachbereich_pk;
$this->erhalter_id = $row->erhalter_fk;
$this->name = $row->name;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
@@ -124,106 +113,15 @@ class fachbereich
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
$this->fachbereich_kurzbz = str_replace("'",'´',$this->fachbereich_kurzbz);
//Laenge Pruefen
if(strlen($this->bezeichnung)>128)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->ext_id</b> - $this->bezeichnung";
return false;
}
if(strlen($this->fachbereich_kurzbz)>16)
{
$this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->fachbereich_kurzbz";
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Pruefen ob fachbereich_kurzbz gueltig ist
if($this->fachbereich_kurzbz == '')
{
$this->errormsg = 'fachbereich_id ungueltig!';
return false;
}
//Neuen Datensatz anlegen
$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->farbe).', '.
$this->addslashes($this->ext_id).', '.
$this->addslashes($this->studiengang_kz).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob fachbereich_kurzbz gueltig ist
if($this->fachbereich_kurzbz == '')
{
$this->errormsg = 'fachbereich_kurzbz ungueltig.';
return false;
}
$qry = 'UPDATE tbl_fachbereich SET '.
'fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).', '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'farbe='.$this->addslashes($this->farbe).', '.
'ext_id='.$this->addslashes($this->ext_id).', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).' '.
'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;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
$this->errormsg = 'Noch nicht implementiert';
return false;
}
}
?>
-217
View File
@@ -1,217 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse ferien (FAS-Online)
* @create 07-12-2006
*/
class ferien
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var ferien Objekt
//Tabellenspalten
var $bezeichnung; // @var varchar(64)
var $studiengang_kz; // @var integer
var $vondatum; // @var date
var $bisdatum; // @var date
/**
* Konstruktor
* @param $conn Connection zur DB
* $bezeichnung und studiengang_kz ID der zu ladenden Ferien
*/
function ferien($conn, $bezeichnung=null, $studiengang_kz=null)
{
$this->conn = $conn;
if($bezeichnung != null && $studiengang_kz != null && !is_numeric($studiengang_kz))
$this->load($bezeichnung, studiengang_kz);
}
/**
* Laedt alle verfuegbaren Feriendaten
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = 'SELECT * FROM lehre.tbl_ferien order by bezeichnung, studiengang_kz;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$ferien_obj = new ferien($this->conn);
$ferien_obj->bezeichnung = $row->bezeichnung;
$ferien_obj->studiengang_kz = $row->studiengang_kz;
$ferien_obj->vondatum = $row->vondatum;
$ferien_obj->bisdatum = $row->bisdatum;
$this->result[] = $ferien_obj;
}
return true;
}
/**
* Laedt einen Feriendatensatz
* @param $bezeichnung, studiengang_kz ID der zu ladenden Ferien
* @return true wenn ok, false im Fehlerfall
*/
function load($bezeichnung, $studiengang_kz)
{
if($studiengang_kz == '' || !is_numeric($studiengang_kz) || $bezeichnung=='')
{
$this->errormsg = 'ID ungültig';
return false;
}
$qry = "SELECT * FROM lehre.tbl_ferien WHERE bezeichnung = '$this->bezeichnung' AND studiengang_kz = '$this->studiengang_kz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->bezeichnung = $row->bezeichnung;
$this->studiengang_kz = $row->studiengang_kz;
$this->vondatum = $row->vondatum;
$this->bisdatum = $row->bisdatum;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $bezeichnung, studiengang_kz id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($bezeichnung, $studiengang_kz)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
//Laenge Pruefen
if(strlen($this->bezeichnung)>64)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 64 Zeichen sein bei <b>$this->studiengang_kz</b> - $this->bezeichnung";
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Neuen Datensatz anlegen
if($this->studiengang_kz == '' || !is_numeric($this->studiengang_kz) || $this->bezeichnung=='')
{
$this->errormsg = 'ID ungültig';
return false;
}
$qry = 'INSERT INTO lehre.tbl_ferien (bezeichnung, studiengang_kz, vondatum, bisdatum) VALUES ('.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->vondatum).', '.
$this->addslashes($this->bisdatum).'); ';
}
else
{
//bestehenden Datensatz akualisieren
if($this->studiengang_kz == '' || !is_numeric($this->studiengang_kz) || $this->bezeichnung=='')
{
$this->errormsg = 'ID der Ferien ungültig';
return false;
}
$qry = 'UPDATE lehre.tbl_ferien SET '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '.
'vondatum='.$this->addslashes($this->vondatum).', '.
'bisdatum='.$this->addslashes($this->bisdatum).';';
}
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;
}
}
}
?>
+617 -143
View File
@@ -1,194 +1,288 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse funktion (FAS-Online)
* @create 14-03-2006
/**
* Klasse funktionen (FAS-Online)
* Verwaltet die Funktionen der Mitarbeiter
* @create 07-03-2006
*/
class funktion
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $funktion_kurzbz; // @var integer
var $bezeichnung; // @var string
var $aktiv; // @var boolean
var $ext_id; // @var bigint
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $result = array(); // @var funktion Objekt
//vars fuer Tabellenspalten
var $funktion_id; // @var integer
var $mitarbeiter_id; // @var integer
var $studiensemester_id; // @var integer
var $erhalter_id; // @var integer
var $studiengang_id; // @var integer
var $fachbereich_id; // @var integer
var $name; // @var string
var $funktion; // @var integer ( 0 = Mitarbeiter, 1 = Lektor, 2 = Fachbereichskoordinatior, 3 = Assistenz,
// 4 = Rektor, 5 = Studiengangsleiter, 6 = Fachbereichsleiter)
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $beschart1; // @var integer ( 1 = Dienstverhaeltnis zum Bund, 2 = Dienstverhaeltnis zu einer anderen Gebietskoerperschaft,
// 3 = Echter Dienstvertrag, 4 = Freier Dienstvertrag, 5 = Lehre/Ausbildung, 6 = Sonstiges)
var $beschart2; // @var integer ( 1 = befristet, 2 = unbefristet)
var $verwendung; // @var integer
var $hauptberuflich; // @var boolean
var $hauptberuf; // @var integer
var $entwicklungsteam; // @var boolean
var $besonderequalifikation; // @var integer
var $sws; // @var float wird nicht verwendet
var $ausmass; // @var float ( 1 = Vollzeit, 2 = <=15 Wochenstd, 3 = 15-25 Wochenstd, 4 = 26-36 Wochenstd, 5 = Karenz)
var $status; // @var integer Aktstatus der Person (wird bei loeschen einer funktion gesetzt)
/**
* Konstruktor
* @param $conn Connection zur DB
* $funktion_kurzbz ID der zu ladenden Funktion
* @param $conn Connection zur Datenbank
* $fkt_id Id der zu ladenden Funktion (Default=null)
*/
function funktion($conn, $funktion_kurzbz=null)
function funktion($conn, $fkt_id=null)
{
$this->conn = $conn;
if($funktion_kurzbz != null)
$this->load($funktion_kurzbz);
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($fkt_id != null)
$this->load($fkt_id);
}
/**
* Laedt alle verfuegbaren Funktionen
* loescht die Funktion mit der uebergebenen ID
* @param $funktion_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
function delete($funktion_id)
{
$qry = 'SELECT * FROM tbl_funktion order by funktion_kurzbz;';
if(!$res = pg_query($this->conn, $qry))
//Pruefen ob funktion_id gueltig ist
if(is_numeric($funktion_id) && $funktion_id != '')
{
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$funktion_obj = new funktion($this->conn);
//Person ermitteln
$person_id=0;
$mitarbeiter_id=0;
$qry = "Select person_fk, mitarbeiter_pk from mitarbeiter join funktion on(mitarbeiter_pk=mitarbeiter_fk) where funktion_pk = $funktion_id";
if($row=pg_fetch_object(pg_query($this->conn,$qry)))
{
$person_id = $row->person_fk;
$mitarbeiter_id = $row->mitarbeiter_pk;
}
else
{
$this->errormsg = 'Fehler beim ermitteln der Person';
return false;
}
$funktion_obj->funktion_kurzbz = $row->funktion_kurzbz;
$funktion_obj->bezeichnung = $row->bezeichnung;
$funktion_obj->aktiv = $row->aktiv;
$this->result[] = $funktion_obj;
}
return true;
}
/**
* Laedt eine Funktion
* @param $funktion_kurzbz ID der zu ladenden Funktion
* @return true wenn ok, false im Fehlerfall
*/
function load($funktion_kurzbz)
{
if($funktion_kurzbz == '')
{
$this->errormsg = 'funktion_bz darf nicht leer sein';
return false;
}
$qry = "SELECT * FROM tbl_funktion WHERE funktion_kurzbz = '$funktion_kurzbz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->funktion_kurzbz = $row->funktion_kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->aktiv = $row->aktiv;
$qry = "DELETE FROM funktion WHERE funktion_pk=$funktion_id;";
$sql = $qry;
if(pg_query($this->conn,$qry))
{
//Neuen aktstatus ermitteln
$qry = "Select aktstatus from person where person_pk=$person_id";
if($row=pg_fetch_object(pg_query($this->conn,$qry)))
{
$aktstatus = $row->aktstatus;
if($aktstatus!=150) //wenn er nicht ausgeschieden ist
{
//Funktionen holen
$qry = "Select funktion from funktion where ".
"studiensemester_fk = (Select studiensemester_pk from studiensemester where aktuell='J')".
" AND mitarbeiter_fk = '$mitarbeiter_id'";
if($result = pg_query($this->conn, $qry))
{
$fkt=array();
$i=0;
while($row=pg_fetch_object($result))
{
$fkt[$i]=$row->funktion;
$i++;
}
//Aktstatus ermitteln
if(in_array(5,$fkt)) //STGL
$aktstatus = 104;
elseif(in_array(6,$fkt)) //FBL
$aktstatus = 103;
elseif(in_array(2,$fkt)) //FBK
$aktstatus = 102;
elseif(in_array(1,$fkt)) //LKT
$aktstatus = 101;
else
$aktstatus = 100; //Mitarbeiter
$this->status = $aktstatus;
//neuen akstatus setzen
$qry = "Update person set aktstatus = $aktstatus where person_pk = $person_id";
if(pg_query($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 setzen des Aktstatus';
return false;
}
}
}
else
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
return false;
}
}
else
{
$this->errormsg = 'Beim loeschen ist ein Fehler aufgetreten';
return false;
}
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
$this->errormsg = 'funktion_id muss eine gueltige Zahl sein';
return false;
}
return true;
}
}
/**
* Loescht einen Datensatz
* @param $funktion_id id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($funktion_kurzbz)
{
$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
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
{
//Hochkomma und HTML Tags ersetzen
//$this->name = htmlentities($this->name, ENT_QUOTES);
//Laenge Pruefen
if(strlen($this->bezeichnung)>64)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->funktion_kurzbz</b> - $this->bezeichnung";
return false;
}
//Maximallaenge pruefen
$this->errormsg = 'Die Maximallaenge eines Feldes wurde ueberschritten';
if(strlen($this->name)>255) return false;
//Zahlenwerte ueberpruefen
/*
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
if(!is_numeric($this->funktion)) return false;
if(!is_numeric($this->beschart1)) return false;
if(!is_numeric($this->beschart2)) return false;
if(!is_numeric($this->verwendung)) return false;
if(!is_numeric($this->hauptberuf)) return false;
if(!is_numeric($this->sws)) $this->sws=0;
if(!is_numeric($this->ausmass)) return false;
if(!is_numeric($this->mitarbeiter_id)) return false;
if(!is_numeric($this->erhalter_id)) return false;
if(!is_numeric($this->studiengang_id)) return false;
if(!is_numeric($this->fachbereich_id)) return false;
if(!is_numeric($this->studiensemester_id)) return false;
if(!is_numeric($this->besonderequalifikation)) return false;
*/
$this->errormsg = '';
return true;
return true;
}
/**
* Speichert die Daten in die Datenbank
* @return true wenn OK, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
//neuen aktstatus ermitteln
if($status=$this->getaktstatus())
$statusqry = "Update person SET aktstatus=$status where person_pk = (Select person_fk from mitarbeiter where mitarbeiter_pk='$this->mitarbeiter_id');";
else
$statusqry = "";
if($this->new)
{
//Pruefen ob funktion_kurzbz befüllt ist
if($this->funktion_kurzbz == '')
//Naechste ID aus der Sequence holen
$qry = "SELECT nextval('funktion_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
{
$this->errormsg = 'funktion_kurzbz darf nicht leer sein';
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_funktion (funktion_kurzbz, bezeichnung, aktiv) VALUES ('.
$this->addslashes($this->funktion_kurzbz).', '.
$this->addslashes($this->bezeichnung).', '.
($this->aktiv?'true':'false').'); ';
$this->funktion_id = $row->id;
$qry= $statusqry."INSERT INTO funktion (funktion_pk, mitarbeiter_fk, studiensemester_fk, erhalter_fk, studiengang_fk,".
" fachbereich_fk, name, funktion, creationdate, creationuser, beschart1, beschart2, verwendung,".
" hauptberuflich, hauptberuf, entwicklungsteam, besonderequalifikation, sws, ausmass) VALUES(".
" '$this->funktion_id','$this->mitarbeiter_id', '$this->studiensemester_id', '$this->erhalter_id',".
($this->studiengang_id!=''?" '$this->studiengang_id'":'null').",".
($this->fachbereich_id!=''?" '$this->fachbereich_id'":'null').",".
($this->name!=''?" '$this->name'":'null').",".
($this->funktion!=''?" '$this->funktion'":'null').", now(), $this->updatevon,".
($this->beschart1!=''?" '$this->beschart1'":'null').",".
($this->beschart2!=''?" '$this->beschart2'":'null').",".
($this->verwendung!=''?" '$this->verwendung'":'null').", '".($this->hauptberuflich?'J':'N')."',".
($this->hauptberuf!=''?" '$this->hauptberuf'":'null').", '".($this->entwicklungsteam?'J':'N')."',".
($this->besonderequalifikation!=''?" '$this->besonderequalifikation'":'null').", null,".
($this->ausmass!=''?" '$this->ausmass'":'null').")";
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob fachbereich_id eine gueltige Zahl ist
if( $this->funktion_kurzbz == '')
if(!is_numeric($this->mitarbeiter_id) && !is_numeric($this->funktion_id))
{
$this->errormsg = 'funktion_kurzbz darf nicht leer sein';
$this->errormsg = 'mitarbeiter_id und funktion_id muessen eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE tbl_funktion SET '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'aktiv='.($this->aktiv?'true':'false') .' '.
'WHERE funktion_kurzbz = '.$this->addslashes($this->funktion_kurzbz).';';
$qry= $statusqry. "UPDATE funktion SET ".
" studiensemester_fk=".($this->studiensemester_id!=''?"'$this->studiensemester_id'":'null').",".
" erhalter_fk=".($this->erhalter_id!=''?"'$this->erhalter_id'":'null').",".
" studiengang_fk=".($this->studiengang_id!=''?"'$this->studiengang_id'":'null').",".
" fachbereich_fk=".($this->fachbereich_id!=''?"'$this->fachbereich_id'":'null').",".
" name=".($this->name!=''?"'$this->name'":'null').",".
" funktion=".($this->funktion!=''?"'$this->funktion'":'null').",".
" beschart1=".($this->beschart1!=''?"'$this->beschart1'":'null').",".
" beschart2=".($this->beschart2!=''?"'$this->beschart2'":'null').",".
" verwendung=".($this->verwendung!=''?"'$this->verwendung'":'null').",".
" hauptberuflich='".($this->hauptberuflich?'J':'N')."',".
" hauptberuf=".($this->hauptberuf!=''?"'$this->hauptberuf'":'null').",".
" entwicklungsteam='".($this->entwicklungsteam?'J':'N')."',".
" besonderequalifikation=".($this->besonderequalifikation!=''?"'$this->besonderequalifikation'":'null').",".
" sws=".($this->sws!=''?"'$this->sws'":'null').",".
" ausmass=".($this->ausmass!=''?"'$this->ausmass'":'null').
" WHERE funktion_pk=$this->funktion_id"; // AND mitarbeiter_fk=$this->mitarbeiter_id";
}
if(pg_query($this->conn, $qry))
if(pg_query($this->conn,$qry))
{
/*//Log schreiben
$qry = "UPDATE funktion SET hauptberuflich='".($this->hauptberuflich?'J':'N')."', hauptberuf=".($this->hauptberuf!=''?"'$this->hauptberuf'":'null')." WHERE mitarbeiter_fk ='$this->mitarbeiter_id' AND studiensemester_fk='$this->studiensemester_id'";
if(!pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim Updaten der Funktionen';
return false;
}
//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
@@ -204,14 +298,394 @@ class funktion
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
}
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten'.$qry;
return false;
}
}
/**
* Ermittelt den neuen aktstatus einer Person
*/
function getaktstatus()
{
$aktstatus=100;
//Aktuellen Status holen
$qry = "Select aktstatus from person join mitarbeiter on(person_fk=person_pk) where mitarbeiter_pk='".$this->mitarbeiter_id."'";
if($result = pg_query($this->conn,$qry))
{
if($row = pg_fetch_object($result))
$aktstatus = $row->aktstatus;
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
return false;
}
/*
//Wenn die Funktion das aktuelle Studiensemester betrifft
$qry = "Select studiensemester_pk from studiensemester where aktuell='J'";
if($result = pg_query($this->conn,$qry))
{
if($row=pg_fetch_object($result))
{
if($row->studiensemester_pk == $this->studiensemester_id)
{
*/
//Neuen Status setzen
if($this->funktion == 1 && $aktstatus < 101) //Lektor
$aktstatus = 101;
elseif($this->funktion == 2 && $aktstatus < 102) //Fachbereichskoordinator
$aktstatus = 102;
elseif($this->funktion == 6 && $aktstatus < 103) //Fachbereichsleiter
$aktstatus = 103;
elseif($this->funktion == 5 && $aktstatus < 104) //Studiengangsleiter
$aktstatus = 104;
/* }
}
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Studiensemesters';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Studiensemesters';
return false;
}*/
$this->status = $aktstatus;
return $aktstatus;
}
/**
* Laedt eine Funktion aus der DB
* @param $fkt_id ID der zu ladenden Funktion
* @return true wenn erfolgreich geladen, false im Fehlerfall
*/
function load($fkt_id)
{
//Pruefen ob fkt_id gueltig ist
if(!is_numeric($fkt_id))
{
$this->errormsg = 'funktion_id muss eine Zahl sein';
return false;
}
$qry = "SELECT * FROM funktion WHERE funktion_pk=$fkt_id";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = pg_fetch_object($res))
{
$this->funktion_id = $row->funktion_pk;
$this->mitarbeiter_id = $row->mitarbeiter_fk;
$this->studiensemester_id = $row->studiensemester_fk;
$this->erhalter_id = $row->erhalter_fk;
$this->studiengang_id = $row->studiengang_fk;
$this->fachbereich_id = $row->fachbereich_fk;
$this->name = $row->name;
$this->funktion = $row->funktion;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->beschart1 = $row->beschart1;
$this->beschart2 = $row->beschart2;
$this->verwendung = $row->verwendung;
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$this->hauptberuf = $row->hauptberuf;
$this->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
$this->besonderequalifikation = $row->besonderequalifikation;
$this->sws = $row->sws;
$this->ausmass = $row->ausmass;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Laedt die Funktion(en) eines Mitarbeiters
* @param $ma_id ID des zu ladenden Mitarbeiters
* @return true wenn erfolgreich geladen, false im Fehlerfall
*/
function load_pers($ma_id, $stsem='')
{
//pruefen ob ma_id gueltig ist
if(!is_numeric($ma_id))
{
$this->errormsg = 'mitarbeiter_id muss eine Zahl sein';
return false;
}
$qry="SELECT * FROM funktion WHERE mitarbeiter_fk=$ma_id";
if($stsem!='')
$qry.= " AND studiensemester_fk='$stsem'";
$qry.=" ORDER BY studiensemester_fk DESC, funktion_pk";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$fkt_obj = new funktion($this->conn);
$fkt_obj->funktion_id = $row->funktion_pk;
$fkt_obj->mitarbeiter_id = $row->mitarbeiter_fk;
$fkt_obj->studiensemester_id = $row->studiensemester_fk;
$fkt_obj->erhalter_id = $row->erhalter_fk;
$fkt_obj->studiengang_id = $row->studiengang_fk;
$fkt_obj->fachbereich_id = $row->fachbereich_fk;
$fkt_obj->name = $row->name;
$fkt_obj->funktion = $row->funktion;
$fkt_obj->updateamum = $row->creationdate;
$fkt_obj->updatevon = $row->creationuser;
$fkt_obj->beschart1 = $row->beschart1;
$fkt_obj->beschart2 = $row->beschart2;
$fkt_obj->verwendung = $row->verwendung;
$fkt_obj->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$fkt_obj->hauptberuf = $row->hauptberuf;
$fkt_obj->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
$fkt_obj->besonderequalifikation = $row->besonderequalifikation;
$fkt_obj->sws = $row->sws;
$fkt_obj->ausmass = $row->ausmass;
$this->result[] = $fkt_obj;
}
return true;
}
function getMitarbeiter($stg,$fb,$funktion,$stsem=null)
{
$qry = "SELECT
mitarbeiter_fk
FROM
funktion
WHERE
studiengang_fk='$stg' AND
fachbereich_fk='$fb'
GROUP BY mitarbeiter_fk";
if($result = pg_query($this->conn,$qry))
{
while($row = pg_fetch_object($result))
{
$fkt = new funktion($this->conn);
$fkt->mitarbeiter_id = $row->mitarbeiter_fk;
$this->result[] = $fkt;
}
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
$this->errormsg = 'Fehler beim laden der Mitarbeiter';
return false;
}
}
}
/**
* Laedt alle Funktionen
* @return true wenn erfolgreich geladen, false im Fehlerfall
*/
function getAll()
{
/*Eventuell Speicherprobleme
$qry = "SELECT * FROM funktion";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row=pg_fetch_object($res))
{
$fkt_obj = new funktion($this->conn);
$fkt_obj->funktion_id = $row->funktion_pk;
$fkt_obj->mitarbeiter_id = $row->mitarbeiter_fk;
$fkt_obj->studiensemester_id = $row->studiensemester_fk;
$fkt_obj->erhalter_id = $row->erhalter_fk;
$fkt_obj->studiengang_id = $row->studiengang_fk;
$fkt_obj->fachbereich_id = $row->fachbereich_fk;
$fkt_obj->name = $row->name;
$fkt_obj->funktion = $row->funktion;
$fkt_obj->updateamum = $row->creationdate;
$fkt_obj->updatevon = $row->creationuser;
$fkt_obj->beschart1 = $row->beschart1;
$fkt_obj->beschart2 = $row->beschart2;
$fkt_obj->verwendung = $row->verwendung;
$fkt_obj->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$fkt_obj->hauptberuf = $row->hauptberuf;
$fkt_obj->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
$fkt_obj->besonderequalifikation = $row->besonderequalifikation;
$fkt_obj->sws = $row->sws;
$fkt_obj->ausmass = $row->ausmass;
$this->result[] = $fkt_obj;
}
return true;
*/
return false;
}
function FunktionExists($mitarbeiter_id, $studiengang_id, $fachbereich_id, $studiensemester_id, $funktion)
{
$qry = "SELECT
count(*) as anzahl
FROM
funktion
WHERE
mitarbeiter_fk='$mitarbeiter_id' AND
studiengang_fk='$studiengang_id' AND
fachbereich_fk='$fachbereich_id' AND
studiensemester_fk = '$studiensemester_id' AND
funktion='$funktion'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
{
if($row->anzahl>0)
return true;
else
{
return false;
}
}
else
{
return false;
$this->errormsg = 'Fehler beim auslesen der Funktionen';
}
}
else
{
return false;
$this->errormsg = 'Fehler beim auslesen der Funktionen';
}
}
function getNameFunktion($id)
{
switch($id)
{
case 0: return 'Mitarbeiter';
case 1: return 'Lektor';
case 2: return 'Fachbereichskoordinatior';
case 3: return 'Assistenz';
case 4: return 'Rektor';
case 5: return 'Studiengangsleiter';
case 6: return 'Fachbereichsleiter';
default: return '';
}
}
function getNameBeschart1($id)
{
switch($id)
{
case 1: return 'Dienstverhältnis zum Bund';
case 2: return 'Dienstverhältnis zu einer anderen Gebietskörperschaft';
case 3: return 'Echter Dienstvertrag';
case 4: return 'Freier Dienstvertrag';
case 5: return 'Lehr- oder Ausbildungsverhältnis';
case 6: return 'Sonstiges Beschäftigungsverhältnis';
default: return '';
}
}
function getNameBeschart2($id)
{
switch($id)
{
case 1: return 'befristet';
case 2: return 'unbefristet';
default: return '';
}
}
function getNameVerwendung($id)
{
switch($id)
{
case 1: return 'Lehr- und Forschungspersonal';
case 2: return 'Lehr- und Forschungshilfspersonal';
case 3: return 'Akademische dienste für Studierende';
case 4: return 'Soziale Dienste und Gesundheitsdienste';
case 5: return 'Studiengangsleiter/in';
case 6: return 'Leiter/in FH-Kollegium';
case 7: return 'Management';
case 8: return 'Verwaltung';
case 9: return 'Hauspersonal, Gebäude-/Haustechnik';
default: return '';
}
}
function getNameHauptberuf($id)
{
switch($id)
{
case '': return '';
case 0: return 'Universität';
case 1: return 'Fachhochschule';
case 2: return 'Andere postsekundäre Bildungseinrichtung';
case 3: return 'Allgemeinbildende höhere Schule';
case 4: return 'Berufsbildende höhere Schule';
case 5: return 'Andere Schule';
case 6: return 'Öffentlicher Sektor';
case 7: return 'Unternehmenssektor';
case 8: return 'Freiberuflich tätig';
case 9: return 'Privater gemeinnütziger Sektor';
case 10: return 'Ausserhochschulische Forschungseinrichtung';
case 11: return 'Internationale Organisation';
case 12: return 'Sonstiges';
default: return '';
}
}
function getNameBesonderequalifikation($id)
{
switch($id)
{
case 0: return 'keine';
case 1: return 'Habilitation';
case 2: return 'der Habilitation gleichwertige Qualifikation';
case 3: return 'berufliche Tätigkeit';
default: return '';
}
}
function getNameAusmass($id)
{
switch($id)
{
case 1: return 'Vollzeit';
case 2: return '<= 15 Wochenstunden';
case 3: return '16 - 25 Wochenstunden';
case 4: return '26 - 35 Wochenstunden';
case 5: return 'Karenz';
default: return '';
}
}
}
?>
+201 -246
View File
@@ -1,247 +1,202 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class gruppe
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $gruppen = array(); // gruppen Objekt
//Tabellenspalten
var $gruppe_kurzbz; // varchar(16)
var $studiengang_kz; // integer
var $bezeichnung; // varchar(32)
var $semester; // smallint
var $sort; // smallint
var $mailgrp; // boolean
var $beschreibung; // varchar(128)
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);
}
// ****************************************
// * 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
// *********************************************************
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)>16)
{
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 16 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)>32)
{
$this->errormsg = 'Bezeichnung darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
return false;
}
if($this->sort!='' && !is_numeric($this->sort))
{
$this->errormsg = 'Typ muss eine gueltige Zahl sein';
return false;
}
if(!is_bool($this->mailgrp))
{
$this->errormsg = 'Mailgrp muss ein boolscher wert sein';
return false;
}
if(strlen($this->beschreibung)>128)
{
$this->errormsg = 'Beschreibung darf nicht laenger als 128 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, 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->sort).','.
($this->mailgrp?'true':'false').','.
$this->addslashes($this->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).','.
' 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).','.
' 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;
}
}
}
<?php
/**
* Klasse gruppe (FAS-Online)
* @create 15-03-2006
*/
class gruppe
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var gruppe Objekt
var $ausbildungssemester_id; // @var integer
var $gruppe_id; // @var integer
var $name; // @var string
var $nummerintern; // @var integer
var $obergruppe_id; // @var integer
var $ordnung; // @var integer
var $studiengang_id; // @var integer
var $typ; // @var integer ( Ebene ??)
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $fullname; // @var string
/**
* Konstruktor
* @param $conn Connection zur Datenbank
* $gruppe_id ID der zu ladenden Gruppe
*/
function gruppe($conn, $gruppe_id=null)
{
$this->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;
}
}
?>
File diff suppressed because it is too large Load Diff
-232
View File
@@ -1,232 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class lehrfach
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehrfaecher = array(); // lehrfach Objekt
//Tabellenspalten
var $lehrfach_id; // integer
var $studiengang_kz; // integer
var $fachbereich_kurzbz;// integer
var $kurzbz; // varchar(12)
var $bezeichnung; // varchar(255)
var $farbe; // char(6)
var $aktiv; // boolean
var $semester; // smallint
var $sprache; // varchar(16)
// ***********************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional ein LF
// * @param $conn Datenbank-Connection
// * $lehrfach_nr Lehrfach das geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// ***********************************************************************
function lehrfach($conn, $lehrfach_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($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_id)
{
//lehrfach_nr auf Gueltigkeit pruefen
if(is_numeric($lehrfach_id) && $lehrfach_id!='')
{
$qry = "SELECT * FROM lehre.tbl_lehrfach WHERE lehrfach_id='$lehrfach_id'";
if(!$result=pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim lesen des Lehrfaches';
return false;
}
if($row = pg_fetch_object($result))
{
$this->lehrfach_id = $row->lehrfach_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$this->kurzbz = $row->kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->farbe = $row->farbe;
$this->aktiv = ($row->aktiv=='t'?true:false);
$this->semester = $row->semester;
$this->sprache = $row->sprache;
}
else
{
$this->errormsg = 'Es ist kein Lehrfach mit der ID '.$lehrfach_id.' vorhanden';
return false;
}
return true;
}
else
{
$this->errormsg = 'Die lehrfach_nr muss eine gueltige Zahl sein';
return false;
}
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->fachbereich_kurzbz)>16)
{
$this->errormsg = 'Fachbereich_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->kurzbz)>12)
{
$this->errormsg = 'Kurzbezeichnung darf nicht laenger als 12 Zeichen sein';
return false;
}
if(strlen($this->bezeichnung)>255)
{
$this->errormsg = 'Bezeichnung darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->farbe)>6)
{
$this->errormsg = 'Farbe darf nicht laenger als 6 Zeichen sein';
return false;
}
if(!is_bool($this->aktiv))
{
$this->errormsg = 'Aktiv muss ein boolscher Wert sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine Zahl sein';
return false;
}
if(strlen($this->sprache)>16)
{
$this->errormsg = 'Sprache 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 das Lehrfach in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = 'INSERT INTO lehre.tbl_lehrfach (lehrfach_id, studiengang_kz, fachbereich_kurzbz, kurzbz,
bezeichnung, farbe, aktiv, semester, sprache)
VALUES('.$this->addslashes($this->lehrfach_id).','.
$this->addslashes($this->studiengang_kz).','.
$this->addslashes($this->fachbereich_kurzbz).','.
$this->addslashes($this->kurzbz).','.
$this->addslashes($this->bezeichnung).','.
$this->addslashes($this->farbe).','.
($this->aktiv?'true':'false').','.
$this->addslashes($this->semester).','.
$this->addslashes($this->sprache).');';
}
else
{
//lehrfach_nr auf Gueltigkeit pruefen
if(!is_numeric($this->lehrfach_nr))
{
$this->errormsg = 'Lehrfach_nr muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE lehre.tbl_lehrfach SET'.
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
' 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_id='$this->lehrfach_id'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Lehrfaches:'.$qry;
return false;
}
}
}
?>
+130 -165
View File
@@ -1,166 +1,131 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class lehrform
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehrform = array(); // lehrform Objekt
//Tabellenspalten
var $lehrform_kurbz; // varchar(8)
var $bezeichnung; // varchar (256)
var $verplanen; // boolean
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $lehrform_kurbz Lehrform die geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function lehrform($conn, $lehrform_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($lehrform_kurzbz != null)
$this->load($lehrform_kurzbz);
}
// *********************************************************
// * Laedt Lehrform mit der uebergebenen ID
// * @param $lehrform_kurzbz Lehrform die geladen werden soll
// *********************************************************
function load($lehrform_kurzbz)
{
$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';
return false;
}
if($row = pg_fetch_object($result))
{
$this->lehrform_kurbz = $row->lehrform_kurzbz;
$this->bezeichnung = $row->bezeichung;
$this->verplanen = ($row->verplanen?true:false);
}
else
{
$this->errormsg = 'Es ist keine Lehrform mit der Kurzbz '.$lehrform_kurzbz.' vorhanden';
return false;
}
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->lehrform_kurbz)>8)
{
$this->errormsg = 'Lehrform Kurzbezeichnung darf nicht laenger als 8 Zeichen sein.';
return false;
}
if(strlen($this->bezeichnung)>256)
{
$this->errormsg = 'Bezeichnung darf nicht laenger als 256 Zeichen sein';
return false;
}
if(!is_bool($this->verplanen))
{
$this->errormsg = 'Verplanen muss ein boolscher Wert 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 die Lehrform in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$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 lehre.tbl_lehrform SET'.
' bezeichnung='.$this->addslashes($this->bezeichnung).','.
' verplanen='.($this->verplanen?'true':'false').
" WHERE lehrform_kurzbz='$this->lehrform_kurzbz'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Lehrform:'.$qry;
return false;
}
}
}
<?php
/**
* Klasse lehrform (FAS-Online)
* @create 15-03-2006
*/
class lehrform
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var lehrform Objekt
var $lehrform_id; // @var integer
var $bezeichnung; // @var string
var $kurzbezeichnung; // @var string
var $standardfaktor; // @var float
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
/**
* Konstruktor
* @param $conn Conection zur Datenbank
* $lehrform_id ID der zu Ladenden Lehrform
*/
function lehrform($conn, $lehrform_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($lehrform_id != null)
$this->load($lehrform_id);
}
/**
* Laedt einen Datensatz
* @param $lform_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($lform_id)
{
//pruefen ob lform_id eine gueltige Zahl ist
if(!is_numeric($lform_id) || $lform_id == '')
{
$this->errormsg = 'lehrform_id muss eine gueltige Zahl sein';
return false;
}
//Datensatz laden
$qry = "SELECT * FROM lehrform WHERE lehrform_pk = '$lform_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
return false;
}
if($row = pg_fetch_object($res))
{
$this->lehrform_id = $row->lehrform_pk;
$this->bezeichnung = $row->bezeichnung;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->standardfaktor = $row->standardfaktor;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
return false;
}
return true;
}
/**
* Liefert alle lehrformen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM lehrform;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
{
$form_obj = new lehrform($this->conn);
$form_obj->lehrform_id = $row->lehrform_pk;
$form_obj->bezeichnung = $row->bezeichnung;
$form_obj->kurzbezeichnung = $row->kurzbezeichnung;
$form_obj->standardfaktor = $row->standardfaktor;
$form_obj->updateamum = $row->creationdate;
$form_obj->updatevon = $row->creationdate;
$this->result[] = $form_obj;
}
return true;
}
/**
* Loescht einen Datensatz
* @param lehrform_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($lehrform_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
/**
* Speichert einen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
$this->errormsg = 'Noch nicht implemeniert';
return false;
}
}
?>
+164 -185
View File
@@ -1,56 +1,33 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse lehrveranstaltung (FAS-Online)
* @create 06-12-2006
* @create 16-03-2006
*/
class lehrveranstaltung
{
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $lehrveranstaltungen = array(); // @var lehrveranstaltung Objekt
var $lehrveranstaltung_id; // @var serial
var $studiengang_kz; //@var integer
var $bezeichnung; //@var string
var $kurzbz; //@var string
var $semester; //@var smallint
var $ects; //@var numeric(5,2)
var $semesterstunden; //@var smallint
var $anmerkung; //@var string
var $lehre; //@var boolean
var $lehreverzeichnis; //@var string
var $aktiv; //@var boolean
var $ext_id; //@var bigint
var $insertamum; //@var timestamp
var $insertvon; //@var string
var $planfaktor; //@var numeric(3,2)
var $planlektoren; //@var integer
var $planpersonalkosten; //@var numeric(7,2)
var $updateamum; //@var timestamp
var $updatevon; //@var string
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $result = array(); // @var lehrveranstaltung Objekt
var $lehrveranstaltung_id; // @var integer
var $art; // @var integer
var $ausbildungssemester_id; // @var integer
var $beschreibung; // @var string
var $ectspunkte; // @var float
var $fachbereich_id; // @var integer
var $kategorie; // @var integer
var $kurzbezeichnung; // @var string
var $name; // @var string
var $notenlektor_id; // @var integer
var $nummer; // @var string
var $nummerintern; // @var integer
var $sortierung; // @var integer
var $studentenwochenstunden; // @var float
var $studiengang_id; // @var integer
var $studiensemester_id; // @var integer
var $updateamum=0; // @var timestamp
var $updatevon; // @var string
/**
* Konstruktor
@@ -60,13 +37,19 @@ class lehrveranstaltung
function lehrveranstaltung($conn, $lehrveranstaltung_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($lehrveranstaltung_id != null)
$this->load($lehrveranstaltung_id);
}
/**
* Laedt einen Datensatz
* @param $lehrveranstaltung_id ID des zu ladenden Datensatzes
* @param $lehrveranstaltung_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($lehrveranstaltung_id)
@@ -78,7 +61,7 @@ class lehrveranstaltung
return false;
}
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
$qry = "SELECT * FROM lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
if(!$res = pg_query($this->conn, $qry))
{
@@ -88,24 +71,24 @@ class lehrveranstaltung
if($row = pg_fetch_object($res))
{
$this->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$this->art = $row->art;
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
$this->beschreibung = $row->beschreibung;
$this->ectspunkte = $row->ectspunkte;
$this->fachbereich_id = $row->fachbereich_fk;
$this->kategorie = $row->kategorie;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->name = $row->name;
$this->notenlektor_id = $row->notenlektor_fk;
$this->nummer = $row->nummer;
$this->nummerintern = $row->nummerintern;
$this->sortierung = $row->sortierung;
$this->studentenwochenstunden = $row->studentenwochenstunden;
$this->studiengang_id = $row->studiengang_fk;
$this->studiensemester_id = $row->studiensemester_fk;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$this->art = $row->art;
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
$this->beschreibung = $row->beschreibung;
$this->ectspunkte = $row->ectspunkte;
$this->fachbereich_id = $row->fachbereich_fk;
$this->kategorie = $row->kategorie;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->name = $row->name;
$this->notenlektor_id = $row->notenlektor_fk;
$this->nummer = $row->nummer;
$this->nummerintern = $row->nummerintern;
$this->sortierung = $row->sortierung;
$this->studentenwochenstunden = $row->studentenwochenstunden;
$this->studiengang_id = $row->studiengang_fk;
$this->studiensemester_id = $row->studiensemester_fk;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
@@ -122,7 +105,7 @@ class lehrveranstaltung
*/
function getAll()
{
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung;";
$qry = "SELECT * FROM lehrveranstaltung;";
if(!$res = pg_query($this->conn, $qry))
{
@@ -134,24 +117,24 @@ class lehrveranstaltung
{
$lv_obj = new lehrveranstaltung($this->conn);
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$this->result[] = $lv_obj;
}
@@ -186,7 +169,7 @@ class lehrveranstaltung
}
//Select Befehl zusammenbauen
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE studiengang_fk = '$studiengang_id'";
$qry = "SELECT * FROM lehrveranstaltung WHERE studiengang_fk = '$studiengang_id'";
if($studiensemester_id != null)
$qry .= " AND studiensemester_fk = '$studiensemester_id'";
@@ -205,34 +188,30 @@ class lehrveranstaltung
{
$lv_obj = new lehrveranstaltung($this->conn);
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$this->result[] = $lv_obj;
}
return true;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
@@ -240,67 +219,85 @@ class lehrveranstaltung
*/
function checkvars()
{
//$this->name = str_replace("'",'´',$this->name);
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
$this->kurzbz = str_replace("'",'´',$this->kurzbz);
$this->anmerkung = str_replace("'",'´',$this->anmerkung);
$this->name = str_replace("'",'´',$this->name);
$this->nummer = str_replace("'",'´',$this->nummer);
$this->kurzbezeichnung = str_replace("'",'´',$this->kurzbezeichnung);
//Laenge Pruefen
if(strlen($this->bezeichnung)>128)
$this->errormsg = 'Eine der Gesamtlaengen wurde ueberschritten';
if(strlen($this->name)>255)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->ext_id</b> - $this->bezeichnung";
$this->errormsg = 'Name darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->kurzbz)>16)
if(strlen($this->nummer)>20)
{
$this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->kurzbz";
$this->errormsg = 'Nummer darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->anmerkung)>64)
if(strlen($this->kurzbezeichnung)>20)
{
$this->errormsg = "Anmerkung darf nicht laenger als 64 Zeichen sein bei <b>$this->ext_id</b> - $this->anmerkung";
$this->errormsg = 'kurzbezeichnung darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->lehreverzeichnis)>16)
if(!is_numeric($this->fachbereich_id))
{
$this->errormsg = "Lehreverzeichnis darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->lehreverzeichnis";
$this->errormsg = 'Fachbereich_id ist ungueltig';
return false;
}
if(!is_numeric($this->studiengang_kz))
if(!is_numeric($this->studiengang_id))
{
$this->errormsg = "Studiengang_kz ist ungueltig bei <b>$this->ext_id</b> - $this->studiengang_kz";
$this->errormsg = 'Studiengang_id ist ungueltig';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
if(!is_numeric($this->ausbildungssemester_id))
{
$this->errormsg = "Semester ist ungueltig bei <b>$this->ext_id</b> - $this->semester";
$this->errormsg = 'Ausbildungssemester_id ist ungueltig';
return false;
}
if($this->planfaktor!='' && !is_numeric($this->planfaktor))
if($this->art!='' && !is_numeric($this->art))
{
$this->errormsg = "Planfaktor ist ungueltig bei <b>$this->ext_id</b> - $this->planfaktor";
$this->errormsg = 'Art ist ungueltig';
return false;
}
if($this->semesterstunden!='' && !is_numeric($this->semesterstunden))
if($this->studentenwochenstunden!='' && !is_numeric($this->studentenwochenstunden))
{
$this->errormsg = "Semesterstunden ist ungueltig bei <b>$this->ext_id</b> - $this->semesterstunden";
$this->errormsg = 'Studentenwochenstunden ist ungueltig';
return false;
}
if($this->planlektoren!='' && !is_numeric($this->planlektoren))
if($this->kategorie!='' && !is_numeric($this->kategorie))
{
$this->errormsg = "Planlektoren ist ungueltig bei <b>$this->ext_id</b> - $this->planlektoren";
$this->errormsg = "Kategorie ist ungueltig";
return false;
}
if($this->ects!='' && !is_numeric($this->ects))
if($this->ectspunkte!='' && !is_numeric($this->ectspunkte))
{
$this->errormsg = "ECTS sind ungueltig bei <b>$this->ext_id</b> - $this->ects";
$this->errormsg = 'ECTSPunkte sind ungueltig';
return false;
}
if($this->ects>40)
}
if($this->notentlektor_id!='' && !is_numeric($this->notenlektor_id))
{
$this->errormsg = "ECTS größer als 40 bei <b>$this->ext_id</b> - $this->ects";
$this->errormsg = 'Notenlektor ist ungueltig';
return false;
}
}
if($this->sortierung!='' && !is_numeric($this->sortierung))
{
$this->errormsg = 'Sortierung ist ungueltig';
return false;
}
if($this->nummerintern!='' && !is_numeric($this->nummerintern))
{
$this->errormsg = 'NummerIntern ist ungueltig';
return false;
}
if(!is_numeric($this->studiensemester_id))
{
$this->errormsg = 'Studiensemester_id ist ungueltig';
return false;
}
$this->errormsg = '';
return true;
}
@@ -318,27 +315,23 @@ class lehrveranstaltung
if($this->new)
{
//Neuen Datensatz anlegen
$qry = 'INSERT INTO lehre.tbl_lehrveranstaltung (studiengang_kz, bezeichnung, kurzbz,
semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, ext_id, insertamum,
insertvon, planfaktor, planlektoren, planpersonalkosten, updateamum, updatevon) VALUES ('.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->kurzbz).', '.
$this->addslashes($this->semester).', '.
$this->addslashes($this->ects).', '.
$this->addslashes($this->semesterstunden).', '.
$this->addslashes($this->anmerkung).', '.
($this->lehre?'true':'false').','.
$this->addslashes($this->lehreverzeichnis).', '.
($this->aktiv?'true':'false').', '.
$this->addslashes($this->ext_id).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->planfaktor).', '.
$this->addslashes($this->planlektoren).', '.
$this->addslashes($this->planpersonalkosten).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).');';
//naechste ID aus der Sequence holen
$qry = "SELECT nextval('lehrveranstaltung_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
return false;
}
$this->lehrveranstaltung_id = $row->id;
$qry = "INSERT INTO lehrveranstaltung(lehrveranstaltung_pk, fachbereich_fk, studiengang_fk, ausbildungssemester_fk,".
" name, nummer, kurzbezeichnung, beschreibung, art, studentenwochenstunden, creationdate, creationuser,".
" kategorie, ectspunkte, studiensemester_fk, notenlektor_fk, sortierung, nummerintern) VALUES(".
" '$this->lehrveranstaltung_id', '$this->fachbereich_id', '$this->studiengang_id', '$this->ausbildungssemester_id',".
" '$this->name', '$this->nummer', '$this->kurzbezeichnung', '$this->beschreibung', '$this->art',".
" '$this->studentenwochenstunden', now(), $this->updatevon, '$this->kategorie', '$this->ectspunkte', '$this->studiensemester_id',".
" '$this->notenlektor_id', '$this->sortierung', '$this->nummerintern');";
}
else
{
@@ -350,33 +343,20 @@ class lehrveranstaltung
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE lehre.tbl_lehrveranstaltung SET '.
//'lehrveranstaltung_id= '.$this->addslashes($this->lehrveranstaltung_id) .', '.
'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) .', '.
'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 ext_id = '.$this->addslashes($this->lehrveranstaltung_id).';';
$qry = "UPDATE lehrveranstaltung SET fachbereich_fk = '$this->fachbereich_id', studiengang_fk = '$this->studiengang_id',".
" ausbildungssemester_fk = '$this->ausbildungssemester_id', name = '$this->name', nummer = '$this->nummer',".
" kurzbezeichnung = '$this->kurzbezeichnung', beschreibung = '$this->beschreibung', art = '$this->art',".
" studentenwochenstunden = '$this->studentenwochenstunden', kategorie = '$this->kategorie', ".
" ectspunkte = '$this->ectspunkte', studiensemester_fk = '$this->studiensemester_id',".
" notenlektor_fk = '$this->notenlektor_id', sortierung = '$this->sortierung', nummerintern = '$this->nummerintern'".
" WHERE lehrveranstaltung_pk = '$this->lehrveranstaltung_id';";
}
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)))
{
@@ -384,19 +364,18 @@ class lehrveranstaltung
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".$this->addslashes($sql)."')";
$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->errormsg = 'Fehler beim speichern des Datensatzes';
return false;
}
}
@@ -416,7 +395,7 @@ class lehrveranstaltung
}
//Loeschen des Datensatzes
$qry = "DELETE FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
$qry = "DELETE FROM lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
if(pg_query($this->conn, $qry))
{
@@ -429,7 +408,7 @@ class lehrveranstaltung
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".$this->addslashes($sql)."')";
$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
+697 -134
View File
@@ -1,179 +1,742 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Klasse Mitarbeiter abgeleitet von Person (FAS-Online)
* @create 06-03-2006
*/
class mitarbeiter extends benutzer
class mitarbeiter extends person
{
//Tabellenspalten
var $ausbildungcode; //integer
var $personalnummer; //serial
var $kurzbz; //varchar(8)
var $lektor; //boolean
var $fixangestellt; //boolean
var $telefonklappe; //varchar(25)
// *************************************************************************
// * 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
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function mitarbeiter($conn, $uid=null, $unicode=false)
var $mitarbeiter_id; // @var bigint
var $beginndatum; // @var timestamp
var $akadgrad; // @var boolean
var $akadgrad_bezeichnung; // @var boolean
var $habilitation; // @var boolean
var $mitgliedentwicklungsteam; // @var boolean
var $qualifikation; // @var integer
var $hauptberuflich; // @var boolean
var $hauptberuf; // @var integer
var $semesterwochenstunden; // @var float
var $persnr; // @var string
var $beendigungsdatum; // @var timestamp
var $ausgeschieden; // @var boolean
var $ausgeschieden_bezeichnung; // @var string
var $kurzbez; // @var string
var $stundensatz; // @var float
var $ausbildung; // @var integer
var $ausbildung_bezeichnung; // @var string
var $aktiv; // @var boolean
var $aktiv_bezeichnung; // @var boolean
var $zustelladresse_plz;
var $zustelladresse_strasse;
var $zustelladresse_ort;
/**
* Konstruktor
*/
function mitarbeiter($conn, $person_id=null)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
//Mitarbeiter laden
if($person_id!=null)
$this->load($person_id);
}
/**
* ueberprueft die Variablen auf Gueltigkeit
* @return true wenn gueltig, false im Fehlerfall
*/
function checkvars()
{
//Hochkomma herausfiltern
$this->persnr = str_replace("'","`", $this->persnr);
$this->kurzbez = str_replace("'","`", $this->kurzbez);
//Maximallaenge pruefen
$this->errormsg='Die Maximallaenge eines Feldes wurde ueberschritten';
if(strlen($this->persnr)>20)
{
$this->errormsg='PersonalNr darf nicht länger als 20 Zeichen sein';
return false;
}
if(strlen($this->kurzbez)>10)
{
$this->errormsg="Kurzbezeichnung darf nicht länger als 10 Zeichen sein:".strlen($this->kurzbez);
return false;
}
//Zahlenwerte ueberpruefen
$this->errormsg='Ein Zahlenfeld enthaelt ungueltige Zeichen';
//if(!is_numeric($this->qualifikation)) return false;
//if(!is_numeric($this->hauptberuf)) return false;
if(!is_numeric($this->stundensatz) && $this->stundensatz!='')
{
$this->errormsg='Stundensatz muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->ausbildung) && $this->ausbildung!='')
{
$this->errormsg='ausbildung muss eine gueltige Zahl sein';
return false;
}
/*if(!is_numeric($this->semesterwochenstunden))
{
$this->errormsg='SWS muss eine gueltige Zahl sein';
return false;
}*/
if($this->kurzbz_exists($this->kurzbez, $this->mitarbeiter_id))
{
$this->errormsg = 'Diese Kurzbezeichnung wird bereits verwendet';
return false;
}
//Mitarbeiter laden
//if($uid!=null)
// $this->load($uid);
}
// ************************************************
// * ueberprueft die Variablen auf Gueltigkeit
// * @return true wenn gueltig, false im Fehlerfall
// ************************************************
function validate()
{
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->uid=='')
{
$this->errormsg = 'UID muss eingegeben werden';
return false;
}
if($this->ausbildungcode!='' && !is_numeric($this->ausbildungcode))
{
$this->errormsg = 'Ausbildungscode ist ungueltig';
return false;
}
if($this->personalnummer!='' && !is_numeric($this->personalnummer))
{
$this->errormsg = 'Personalnummer muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->kurzbz)>8)
{
$this->errormsg = 'kurzbz darf nicht laenger als 8 Zeichen sein';
return false;
}
if(!is_bool($this->lektor))
{
$this->errormsg = 'lektor muss boolean sein'.$this->lektor;
return false;
}
if(!is_bool($this->fixangestellt))
{
$this->errormsg = 'fixangestellt muss boolean sein';
return false;
}
if(strlen($this->telefonklappe)>25)
{
$this->errormsg = 'telefonklappe darf nicht laenger als 25 Zeichen sein';
return false;
}
if(strlen($this->updatevon)>32)
{
$this->errormsg = 'updatevon darf nicht laenger als 32 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
// *************************************************
// * Speichert die Mitarbeiterdaten in die Datenbank
// * @return true wenn ok, false im Fehlerfall
// *************************************************
/**
* Speichert die Mitarbeiterdaten in die Datenbank
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Variablen checken
if(!$this->validate())
if(!$this->checkvars())
return false;
pg_query($this->conn,'BEGIN;');
pg_query($this->conn,"Begin;");
//Basisdaten speichern
if(!benutzer::save())
if(!person::save())
{
pg_query($this->conn,'ROLLBACK;');
pg_query($this->conn,"Rollback;");
return false;
}
if($this->new)
{
//Neuen Datensatz anlegen
$qry = "INSERT INTO tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor,
fixangestellt, telefonklappe, updateamum, updatevon)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->ausbildungcode).",".
$this->addslashes($this->personalnummer).",". //TODO: in Produktivversion nicht angeben
$this->addslashes($this->kurzbz).','.
($this->lektor?'true':'false').','.
($this->fixangestellt?'true':'false').','.
$this->addslashes($this->telefonklappe).','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).');';
//Neuen Datensatz einfuegen
//naechste ID aus Sequence auslesen
$qry = "SELECT nextval('mitarbeiter_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
{
$this->errormsg = 'Fehler beim auslesen der Sequence';
return false;
}
$this->mitarbeiter_id = $row->id;
$qry = "INSERT INTO mitarbeiter (mitarbeiter_pk, beginndatum, akadgrad, habilitation,".
//" mitgliedentwicklungsteam,".
//" qualifikation, hauptberuflich, hauptberuf, semesterwochenstunden,".
" creationdate, creationuser, persnr,".
" person_fk, beendigungsdatum, ausgeschieden, kurzbez, stundensatz, ausbildung, aktiv) VALUES (".
" '$this->mitarbeiter_id',".
(strlen($this->beginndatum)>0?"'$this->beginndatum'":"NULL") .", '".($this->akadgrad?'J':'N')."',".
" '".($this->habilitation?'J':'N')."', ".
//"'".($this->mitgliedentwicklungsteam?'J':'N')."',".
//" '$this->qualifikation', '".($this->hauptberuflich?'J':'N')."', '$this->hauptberuf', '$this->semesterwochenstunden',".
" now(),".
" '$this->updatevon', '$this->persnr', '$this->person_id',".
(strlen($this->beendigungsdatum)>0?"'$this->beendigungsdatum'":"null").",".
" '".($this->ausgeschieden?'J':'N')."',".
(strlen($this->kurzbez)>0?"'$this->kurzbez'":"null").", '$this->stundensatz',".
($this->ausbildung!=''?"'$this->ausbildung'":'null').",'$this->aktiv');";
}
else
{
//Bestehenden Datensatz updaten
$qry = 'UPDATE tbl_mitarbeiter SET'.
' ausbildungcode='.$this->addslashes($this->ausbildungcode).','.
" personalnummer=".$this->addslashes($this->personalnummer).",". //TODO: in Produktivversion nicht angeben
' kurzbz='.$this->addslashes($this->kurzbz).','.
' lektor='.($this->lektor?'true':'false').','.
' fixangestellt='.($this->fixangestellt?'true':'false').','.
' telefonklappe='.$this->addslashes($this->telefonklappe).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE mitarbeiter_uid='".addslashes($this->uid)."';";
//Bestehenden Datensatz ueberschreiben
//mitarbeiter_id auf Gueltigkeit pruefen
if(!is_numeric($this->mitarbeiter_id))
{
$this->errormsg = 'mitarbeiter_id muss eine gueltige Zahl sein';
return false;
}
$qry = "UPDATE mitarbeiter SET".
" beginndatum=".($this->beginndatum!=''?"'$this->beginndatum'":'null').",".
" akadgrad='".($this->akadgrad?'J':'N')."',".
" habilitation='".($this->habilitation?'J':'N')."',".
//" mitgliedentwicklungsteam='".($this->mitgliedentwicklungsteam?'J':'N')."',".
//" qualifikation='$this->qualifikation', hauptberuflich='".($this->hauptberuflich?'J':'N')."',".
//" hauptberuf='$this->hauptberuf', semesterwochenstunden='$this->semesterwochenstunden',".
" persnr=".($this->persnr!=''?"'$this->persnr'":'null').",".
" person_fk='$this->person_id',".
" beendigungsdatum=".($this->beendigungsdatum!=''?"'$this->beendigungsdatum'":'null').",".
" ausgeschieden='".($this->ausgeschieden?'J':'N')."',".
" kurzbez=".($this->kurzbez!=''?"'$this->kurzbez'":'null').",".
" stundensatz=".($this->stundensatz!=''?"'$this->stundensatz'":'null').",".
" ausbildung=".($this->ausbildung!=''?"'$this->ausbildung'":'null').",".
" aktiv='$this->aktiv'".
" WHERE mitarbeiter_pk=$this->mitarbeiter_id;";
}
if(pg_query($this->conn,$qry))
{
pg_query($this->conn,'COMMIT;');
//Wenn nicht ausgeschieden dann den Status neu setzen
//Da sonst beim ruecksetzen des Hakerls ausgeschieden der status bleibt
if(!$this->ausgeschieden)
{
if(!person::updateaktstatus($this->person_id))
{
pg_query($this->conn,"Rollback;");
return false;
}
}
else
{
if(!person::setaktstatus(150,$this->person_id))
{
pg_query($this->conn,"Rollback;");
return false;
}
}
pg_query($this->conn,"Commit;");
//Log schreiben
return true;
$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
{
pg_query($this->conn,'ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Mitarbeiter-Datensatzes'.$qry;
pg_query($this->conn,"Rollback;");
$this->errormsg = 'Fehler beim Speichern des Mitarbeiter-Datensatzes';
return false;
}
}
/**
* Ladet die Daten aus der Datenbank
* @param $fix wenn 'true' Fixangestellte laden
* wenn 'false' Freie MA laden
* $stgl wenn 'true' Studiengangsleiter laden
* $fbl wenn 'true' Fachbereichsleiter laden
* $aktiv wenn 'true' Aktive MA laden
* $karrenziert wenn 'true' Karenzierte laden
* $ausgesch wenn 'true' Ausgeschiedene laden
* @return true wenn ok, false im Fehlerfall
*/
function getMitarbeiter($mitarbeiter_id='', $fix='', $stgl='', $fbl='', $aktiv='', $karenziert='', $ausgesch='', $adresse=false, $studiensemester_id='')
{
$qry = "SELECT * FROM (mitarbeiter JOIN person ON (person_pk=mitarbeiter.person_fk))";
if($adresse)
$qry .= " LEFT JOIN adresse on(person_pk=adresse.person_fk)";
$qry .= " WHERE true";
if($mitarbeiter_id!='')
if(is_numeric($mitarbeiter_id))
$qry .= " AND mitarbeiter_pk = $mitarbeiter_id";
else
{
$this->errormsg = "mitarbeiter_id muss eine gueltige Zahl sein";
return false;
}
if($studiensemester_id=='')
{
$query = "Select studiensemester_pk FROM studiensemester WHERE aktuell='J'";
if($row = pg_fetch_object(pg_query($this->conn, $query)))
$studiensemester_id = $row->studiensemester_pk;
}
if($fix=='true') // Alle Fixangestellten
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.beschart1=3 AND funktion.studiensemester_fk='$studiensemester_id')";
if($fix=='false') // Freie Mitarbeiter
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.beschart1=4 AND funktion.studiensemester_fk='$studiensemester_id')";
if($stgl=='true') //Alle Studiengangsleiter
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.funktion=5 AND funktion.studiensemester_fk='$studiensemester_id')";
if($fbl=='true') //Alle Fachbereichsleiter
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.funktion=6 AND funktion.studiensemester_fk='$studiensemester_id')";
if($aktiv=='true') //Alle aktiven
$qry .= " AND aktiv=true";
if($karenziert=='true') //Alle Karenzierten
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.ausmass=5 AND funktion.studiensemester_fk='$studiensemester_id')";
if($ausgesch=='true') // Alle Ausgeschiedenen
$qry .= " AND beendigungsdatum is not null";
$qry .= " ORDER BY familienname";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$mitarb = new mitarbeiter($this->conn);
//Personendaten
$mitarb->person_id = $row->person_pk;
$mitarb->familienname = $row->familienname;
$mitarb->angelegtam = $row->angelegtam;
$mitarb->vorname = $row->vorname;
$mitarb->anrede = $row->anrede;
$mitarb->vornamen = $row->vornamen;
$mitarb->geschlecht = $row->geschlecht;
$mitarb->gebdat = $row->gebdat;
$mitarb->gebort = $row->gebort;
$mitarb->staatsbuergerschaft = $row->staatsbuergerschaft;
$mitarb->familienstand = $row->familienstand;
$mitarb->familienstand_bezeichnung = $this->getFamilienstandBezeichnung($row->familienstand);
$mitarb->svnr = $row->svnr;
$mitarb->anzahlderkinder = $row->anzahlderkinder;
$mitarb->ersatzkennzeichen = $row->ersatzkennzeichen;
$mitarb->bemerkung = $row->bemerkung;
$mitarb->aktstatus = $row->aktstatus;
$mitarb->aktstatus_bezeichnung = $this->getAktstatusBezeichnung($row->aktstatus);
$mitarb->bismelden = ($row->bismelden=='J'?true:false);
$mitarb->bismelden_bezeichnung = ($row->bismelden=='J'?'Ja':'Nein');
$mitarb->titelpre = $row->titel;
$mitarb->titelpost = $row->postnomentitel;
$mitarb->uid = $row->uid;
$mitarb->gebnation = $row->gebnation;
//Mitarbeiterdaten
$mitarb->mitarbeiter_id = $row->mitarbeiter_pk;
$mitarb->beginndatum = $row->beginndatum;
$mitarb->akadgrad = ($row->akadgrad=='J'?true:false);
$mitarb->akadgrad_bezeichnung = ($row->akadgrad=='J'?'Ja':'Nein');
$mitarb->habilitation = ($row->habilitation=='J'?true:false);
$mitarb->habilitation_bezeichnung = ($row->habilitation=='J'?'Ja':'Nein');
$mitarb->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
$mitarb->qualifikation = $row->qualifikation;
$mitarb->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$mitarb->hauptberuf = $row->hauptberuf;
$mitarb->updateamum = $row->creationdate;
$mitarb->updatevon = $row->creationuser;
$mitarb->semesterwochenstunden = $row->semesterwochenstunden;
$mitarb->persnr = $row->persnr;
$mitarb->beendigungsdatum = $row->beendigungsdatum;
$mitarb->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
$mitarb->ausgeschieden_bezeichnung = ($row->ausgeschieden=='J'?'Ja':'Nein');
$mitarb->kurzbez = $row->kurzbez;
$mitarb->stundensatz = $row->stundensatz;
$mitarb->ausbildung = $row->ausbildung;
$mitarb->ausbildung_bezeichnung = $this->getAusbildungBezeichnung($row->ausbildung);
$mitarb->aktiv = ($row->aktiv=='t'?true:false);
$mitarb->aktiv_bezeichnung = ($row->aktiv=='t'?'Ja':'Nein');
if($adresse)
{
$mitarb->zustelladresse_plz = $row->plz;
$mitarb->zustelladresse_strasse = $row->strasse;
$mitarb->zustelladresse_ort = $row->ort;
}
$this->result[] = $mitarb;
}
return true;
}
/**
* Liefert alle Mitarbeiter
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "Select person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk)";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$mitarb = new mitarbeiter($this->conn);
//Personendaten
$mitarb->person_id = $row->person_pk;
$mitarb->familienname = $row->familienname;
$mitarb->angelegtam = $row->angelegtam;
$mitarb->vorname = $row->vorname;
$mitarb->anrede = $row->anrede;
$mitarb->vornamen = $row->vornamen;
$mitarb->geschlecht = $row->geschlecht;
$mitarb->gebdat = $row->gebdat;
$mitarb->gebort = $row->gebort;
$mitarb->staatsbuergerschaft = $row->staatsbuergerschaft;
$mitarb->familienstand = $row->familienstand;
$mitarb->svnr = $row->svnr;
$mitarb->anzahlderkinder = $row->anzahlderkinder;
$mitarb->ersatzkennzeichen = $row->ersatzkennzeichen;
$mitarb->bemerkung = $row->bemerkung;
$mitarb->aktstatus = $row->aktstatus;
$mitarb->bismelden = ($row->bismelden=='J'?true:false);
$mitarb->titelpre = $row->titel;
$mitarb->titelpost = $row->postnomentitel;
$mitarb->uid = $row->uid;
$mitarb->gebnation = $row->gebnation;
//Mitarbeiterdaten
$mitarb->mitarbeiter_id = $row->mitarbeiter_pk;
$mitarb->beginndatum = $row->beginndatum;
$mitarb->akadgrad = ($row->akadgrad=='J'?true:false);
$mitarb->habilitation = ($row->habilitation=='J'?true:false);
$mitarb->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
$mitarb->qualifikation = $row->qualifikation;
$mitarb->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$mitarb->hauptberuf = $row->hauptberuf;
$mitarb->updateamum = $row->creationdate;
$mitarb->updatevon = $row->creationuser;
$mitarb->semesterwochenstunden = $row->semesterwochenstunden;
$mitarb->persnr = $row->persnr;
$mitarb->beendigungsdatum = $row->beendigungsdatum;
$mitarb->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
$mitarb->kurzbez = $row->kurzbez;
$mitarb->stundensatz = $row->stundensatz;
$mitarb->ausbildung = $row->ausbildung;
$mitarb->aktiv = ($row->aktiv=='t'?true:false);
$this->result[] = $mitarb;
}
return true;
}
/**
* Laedt die Mitarbeiterdaten der uebergebenen ID
* @param $person_id ID der Person die geladen werden soll
* @return true wenn ok, false im Fehlerfall
*/
function load($person_id)
{
//person_id auf Gueltigkeit pruefen
if(!is_numeric($person_id) || $person_id=='')
{
$this->errormsg = 'Person_id muss eine Zahl sein';
return false;
}
$qry = "SELECT person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk) where person_pk=$person_id";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = pg_fetch_object($res))
{
//Personendaten
$this->person_id = $row->person_pk;
$this->familienname = $row->familienname;
$this->angelegtam = $row->angelegtam;
$this->vorname = $row->vorname;
$this->anrede = $row->anrede;
$this->vornamen = $row->vornamen;
$this->geschlecht = $row->geschlecht;
$this->gebdat = $row->gebdat;
$this->gebort = $row->gebort;
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
$this->familienstand = $row->familienstand;
$this->svnr = $row->svnr;
$this->anzahlderkinder = $row->anzahlderkinder;
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->bemerkung = $row->bemerkung;
$this->aktstatus = $row->aktstatus;
$this->bismelden = ($row->bismelden=='J'?true:false);
$this->titelpre = $row->titel;
$this->titelpost = $row->postnomentitel;
$this->uid = $row->uid;
$this->gebnation = $row->gebnation;
//Mitarbeiterdaten
$this->mitarbeiter_id = $row->mitarbeiter_pk;
$this->beginndatum = $row->beginndatum;
$this->akadgrad = ($row->akadgrad=='J'?true:false);
$this->habilitation = ($row->habilitation=='J'?true:false);
$this->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
$this->qualifikation = $row->qualifikation;
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$this->hauptberuf = $row->hauptberuf;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->semesterwochenstunden = $row->semesterwochenstunden;
$this->persnr = $row->persnr;
$this->beendigungsdatum = $row->beendigungsdatum;
$this->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
$this->kurzbez = $row->kurzbez;
$this->stundensatz = $row->stundensatz;
$this->ausbildung = $row->ausbildung;
$this->aktiv = ($row->aktiv=='t'?true:false);
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Laedt die Mitarbeiterdaten der uebergebenen ID
* @param $mitarbeiter_id ID der Person die geladen werden soll
* @return true wenn ok, false im Fehlerfall
*/
function load_mitarbeiter($mitarbeiter_id)
{
//person_id auf Gueltigkeit pruefen
if(!is_numeric($mitarbeiter_id) || $mitarbeiter_id=='')
{
$this->errormsg = 'Person_id muss eine Zahl sein';
return false;
}
$qry = "SELECT person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk) where mitarbeiter_pk=$mitarbeiter_id";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = pg_fetch_object($res))
{
//Personendaten
$this->person_id = $row->person_pk;
$this->familienname = $row->familienname;
$this->angelegtam = $row->angelegtam;
$this->vorname = $row->vorname;
$this->anrede = $row->anrede;
$this->vornamen = $row->vornamen;
$this->geschlecht = $row->geschlecht;
$this->gebdat = $row->gebdat;
$this->gebort = $row->gebort;
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
$this->familienstand = $row->familienstand;
$this->svnr = $row->svnr;
$this->anzahlderkinder = $row->anzahlderkinder;
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->bemerkung = $row->bemerkung;
$this->aktstatus = $row->aktstatus;
$this->bismelden = ($row->bismelden=='J'?true:false);
$this->titelpre = $row->titel;
$this->titelpost = $row->postnomentitel;
$this->uid = $row->uid;
$this->gebnation = $row->gebnation;
//Mitarbeiterdaten
$this->mitarbeiter_id = $row->mitarbeiter_pk;
$this->beginndatum = $row->beginndatum;
$this->akadgrad = ($row->akadgrad=='J'?true:false);
$this->habilitation = ($row->habilitation=='J'?true:false);
$this->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
$this->qualifikation = $row->qualifikation;
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$this->hauptberuf = $row->hauptberuf;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->semesterwochenstunden = $row->semesterwochenstunden;
$this->persnr = $row->persnr;
$this->beendigungsdatum = $row->beendigungsdatum;
$this->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
$this->kurzbez = $row->kurzbez;
$this->stundensatz = $row->stundensatz;
$this->ausbildung = $row->ausbildung;
$this->aktiv = ($row->aktiv=='t'?true:false);
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* loescht den Mitarbeiter mit der uebergebenen ID
* @param ma_id Mitarbeiter_id
* @return true wenn ok, false im Fehlerfall
*/
function delete($person_id)
{
//person_id auf Gueltigkeit pruefen
if(!is_numeric($person_id) || $person_id=='')
{
$this->errormsg = 'Person_id muss eine Zahl sein';
return false;
}
$qry = "DELETE FROM funktion where mitarbeiter_fk=(Select mitarbeiter_pk from mitarbeiter where person_fk=$person_id);".
" DELETE FROM adresse where person_fk=$person_id;".
" DELETE FROM telefonnummer where person_fk=$person_id;".
" DELETE FROM email where person_fk=$person_id;".
" DELETE FROM mitarbeiter where person_fk=$person_id";
if(!pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim Loeschen';
return false;
}
else
{
if(!person::delete($person_id))
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;
}
}
}
return true;
}
/**
* Liefert die passende Bezeichnung des Familienstandes
* @param $id ID des Familienstandes
*/
function getFamilienstandBezeichnung($id)
{
switch($id)
{
case 1: return 'ledig';
case 2: return 'verheiratet';
case 3: return 'geschieden';
case 4: return 'verwitwet';
default: return '';
}
}
/**
* Liefert die passende Bezeichnung der Ausbildung
* @param $id ID der Ausbildung
*/
function getAusbildungBezeichnung($id)
{
switch($id)
{
case 1: return 'Universitätsabschluss mit Doktorat als Zweit- oder Dritt- oder PhD-Abschluss';
case 2: return 'Universitäts- oder Hochschulabschluss auf Diplom oder Magisterebene, Doktor als Erstabschluss';
case 3: return 'Fachhochschulabschluss auf Diplom- oder Magisterebene';
case 4: return 'Universitätsabschluss auf Bakkalaureatsebene';
case 5: return 'Fachhochschulabschluss auf Bakkalaureatsebene';
case 6: return 'Diplom einer Akademie';
case 7: return 'Anderer tertiärer Bildungsabschluss';
case 8: return 'Reifeprüfung einer allgemeinbildenden höheren Schule';
case 9: return 'Reifeprüfung einer berufsbildenden höheren Schule';
case 10: return 'Lehrabschlussprüfung';
case 11: return 'Pflichtschule';
default: return '';
}
}
/**
* Liefert die passende Bezeichnung des Aktuellen Status
* @param $id ID des Status
*/
function getAktstatusBezeichnung($id)
{
switch($id)
{
case 100: return 'Mitarbeiter';
case 101: return 'Lektor';
case 102: return 'Koordinator';
case 103: return 'Fachbereichsleiter';
case 104: return 'Studiengangsleiter';
case 150: return 'Ausgeschieden';
default: return '';
}
}
/**
* Prüft ob eine Kurzbezeichnung schon existiert. Falls eine mitarbeiter_id
* angegeben wird, dann wird dieser Datensatz von der ueberpruefung ausgeschlossen
* ( fuer Update eines Datensatzes)
*/
function kurzbz_exists($kurzbz, $mitarbeiter_id='')
{
if($kurzbz!='')
{
$this->errormsg = '';
$qry = "SELECT count(*) as anz from mitarbeiter where kurzbez='$kurzbz'";
if($mitarbeiter_id!='')
$qry .= " AND mitarbeiter_pk<>".$mitarbeiter_id;
if($result = pg_query($this->conn,$qry))
{
while ($row=pg_fetch_object($result))
{
if($row->anz == 0)
{
return false;
}
else
{
return true;
}
}
}
else
{
$this->errormsg = 'Fehler beim pruefen der Kurzbezeichnung';
return false;
}
}
return false;
}
/**
* Liefert die naechste Personalnummer
*/
function getNextPersonalnr()
{
$qry = "SELECT max(persnr) AS persnr FROM mitarbeiter WHERE length(persnr)=(SELECT max(length(persnr)) FROM mitarbeiter)";
if($row = pg_fetch_object(pg_query($this->conn,$qry)))
return $row->persnr+1;
else
return false;
}
}
?>
+549 -306
View File
@@ -1,372 +1,615 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Basisklasse Person (FAS-Online)
* @create 06-03-2006
*/
class person
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $personen = array(); // person Objekt
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $result = array(); // @var person Objekt
//Tabellenspalten
var $person_id; // integer
var $sprache; // varchar(16)
var $anrede; // varchar(16)
var $titelpost; // varchar(32)
var $titelpre; // varchar(64)
var $nachname; // varchar(64)
var $vorname; // varchar(32)
var $vornamen; // varchar(128)
var $gebdatum; // date
var $gebort; // varchar(128)
var $gebzeit; // time
var $foto; // oid
var $anmerkungen; // varchar(256)
var $homepage; // varchar(256)
var $svnr; // char(10)
var $ersatzkennzeichen; // char(10)
var $familienstand; // char(1)
var $anzahlkinder; // smalint
var $aktiv; // boolean
var $insertamum; // timestamp
var $insertvon; // varchar(16)
var $updateamum; // timestamp
var $updatevon; // varchar(16)
var $ext_id; // bigint
var $person_id; // @var integer
var $aktstatus; // @var integer
var $aktstatus_bezeichnung; // @var integer
var $angelegtam; // @var timestamp
var $anrede; // @var string
var $anzahlderkinder; // @var integer
var $bemerkung; // @var string
var $bismelden; // @var boolean
var $bismelden_bezeichnung; // @var boolean
var $ersatzkennzeichen; // @var string
var $familienname; // @var string
var $familienstand; // @var integer ( 1=ledig, 2=verheiratet, 3=?, 4=?, 5=? )
var $familienstand_bezeichnung; // @var integer ( 1=ledig, 2=verheiratet, 3=?, 4=?, 5=? )
var $gebdat; // @var date
var $gebnation; // @var string
var $gebort; // @var string
var $geschlecht; // @var string
var $staatsbuergerschaft; // @var string
var $svnr; // @var string
var $titelpost; // @var string Titel nach dem Namen (BA, MA, etc)
var $titelpre; // @var string Titel vor dem Namen (Dr, Mag, Dipl.Ing, etc)
var $uid; // @var string
var $vorname; // @var string
var $vornamen; // @var string
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
// *************************************************************************
// * 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
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function person($conn, $person_id=null, $unicode=false)
/**
* Konstruktor - Uebergibt die Connection und Laedt optional eine Person
* @param $conn Datenbank-Connection
* $pers_id Person die geladen werden soll (default=null)
*/
function person($conn, $pers_id=null)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($person_id != null)
$this->load($person_id);
if($pers_id != null)
$this->load($pers_id);
}
// *********************************************************
// * Laedt Person mit der uebergebenen ID
// * @param $person_id ID der Person die geladen werden soll
// *********************************************************
/**
* Laden einen Datensatz mit der Personal_id die uebergeben wird
* @param $person_id ID der Person die geladen werden soll
*/
function load($person_id)
{
//person_id auf gueltigkeit pruefen
if(is_numeric($person_id) && $person_id!='')
{
$qry = "SELECT person_id, sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen,
gebdatum, gebort, gebzeit, foto, anmerkungen, homepage, svnr, ersatzkennzeichen,
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon, ext_id
FROM tbl_person WHERE person_id='$person_id'";
if(!$result=pg_query($this->conn,$qry))
$qry = "SELECT * FROM person WHERE person_pk=$person_id";
if(!$res=pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim lesen der Personendaten';
$this->errormsg = 'Fehler beim auslesen der Daten';
return false;
}
if($row = pg_fetch_object($result))
{
$this->person_id = $row->person_id;
$this->sprache = $row->sprache;
$this->anrede = $row->anrede;
$this->titelpost = $row->titelpost;
$this->titelpre = $row->titelpre;
$this->nachname = $row->nachname;
$this->vorname = $row->vorname;
$this->vornamen = $row->vornamen;
$this->gebdatum = $row->gebdatum;
$this->gebort = $row->gebort;
$this->gebzeit = $row->gebzeit;
$this->foto = $row->foto;
$this->anmerkungen = $row->anmerkungen;
$this->homepage = $row->homepage;
$this->svnr = $row->svnr;
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->familienstand = $row->familienstand;
$this->anzahlkinder = $row->anzahlkinder;
$this->aktiv = ($row->aktiv=='t'?true:false);
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->ext_id = $row->ext_id;
if($row = pg_fetch_object($res))
{
$this->person_id = $row->person_pk;
$this->aktstatus = $row->aktstatus;
$this->angelegtam = $row->angelegtam;
$this->anrede = $row->anrede;
$this->anzahlderkinder = $row->anzahlderkinder;
$this->bemerkung = $row->bemerkung;
$this->bismelden = ($row->bismelden=='J'?true:false);
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->familienname = $row->familienname;
$this->familienstand = $row->familienstand;
$this->gebdat = $row->gebdat;
$this->gebnation = $row->gebnation;
$this->gebort = $row->gebort;
$this->geschlecht = $row->geschlecht;
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
$this->svnr = $row->svnr;
$this->titelpre = $row->titel;
$this->titlepost = $row->postnomentitel;
$this->uid = $row->uid;
$this->vorname = $row->vorname;
$this->vornamen = $row->vornamen;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
else
{
$this->errormsg = 'Es ist kein Personendatensatz mit der ID '.$person_id.' vorhanden';
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
else
else
{
$this->errormsg = 'Die person_id muss eine gueltige Zahl sein';
$this->errormsg = "Die person_id muss eine Zahl sein";
return false;
}
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
// Clean stuff from a string
function clean_string1($string)
{
$trans = array("" => "ae",
"" => "Ae",
"" => "oe",
"" => "Oe",
"" => "ue",
"" => "Ue",
"" => "a",
"" => "a",
"" => "e",
"" => "e",
"" => "o",
"" => "o",
"" => "i",
"" => "i",
"" => "u",
"" => "u",
"" => "ss");
$string = strtr($string, $trans);
return ereg_replace("[^a-zA-Z0-9]", "", $string);
//[:space:]
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false wenn Variablen ungueltig sind
*/
function checkvars1()
{
if(strlen($this->sprache)>16)
//Hochkomma herausfiltern
$this->familienname = str_replace("'","`", $this->familienname);
$this->vorname = str_replace("'","`", $this->vorname);
$this->anrede = str_replace("'","`", $this->anrede);
$this->vornamen = str_replace("'","`", $this->vornamen);
$this->gebort = str_replace("'","`", $this->gebort);
$this->svnr = str_replace("'","`", $this->svnr);
$this->titelpre = str_replace("'","`", $this->titelpre);
$this->titelpost = str_replace("'","`", $this->titelpost);
$this->gebnation = str_replace("'","`", $this->gebnation);
$this->ersatzkennzeichen = str_replace("'","`", $this->ersatzkennzeichen);
$this->bemerkung = str_replace("'","`", $this->bemerkung);
if(ereg("[^a-zA-Z0-9]", $this->uid))
{
$this->errormsg = 'Sprache darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->anrede)>16)
{
$this->errormsg = 'Anrede darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->titelpost)>32)
{
$this->errormsg = 'Titelpost darf nicht laenger als 32 Zeichen sein';
return false;
}
if(strlen($this->titelpre)>64)
{
$this->errormsg = 'Titelpre darf nicht laenger als 64 Zeichen sein';
return false;
}
if(strlen($this->nachname)>64)
{
$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';
return false;
}
if(strlen($this->vornamen)>128)
{
$this->errormsg = 'Vornamen darf nicht laenger als 128 Zeichen sein';
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';
return false;
}
if($this->foto!='' && !is_numeric($this->foto))
{
$this->errormsg = 'FotoOID ist ungueltig';
return false;
}
if(strlen($this->anmerkungen)>256)
{
$this->errormsg = 'Anmerkungen darf nicht laenger als 256 Zeichen sein';
return false;
}
if(strlen($this->homepage)>256)
{
$this->errormsg = 'Homepage darf nicht laenger als 256 Zeichen sein';
return false;
}
if(strlen($this->svnr)>10)
{
$this->errormsg = 'SVNR darf nicht laenger als 10 Zeichen sein';
return false;
}
if(strlen($this->ersatzkennzeichen)>10)
{
$this->errormsg = 'Ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
return false;
}
if(strlen($this->familienstand)>1)
{
$this->errormsg = 'Familienstand ist ungueltig';
return false;
}
if($this->anzahlkinder!='' && !is_numeric($this->anzahlkinder))
{
$this->errormsg = 'Anzahl der Kinder ist ungueltig';
return false;
}
if(!is_bool($this->aktiv))
{
$this->errormsg = 'Aktiv ist ungueltig';
return false;
}
if(strlen($this->insertvon)>16)
{
$this->errormsg = 'Insertvon darf nicht laenger als 16 Zeichen sien';
return false;
}
if(strlen($this->updatevon)>16)
{
$this->errormsg = 'Updatevon darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->ext_id!='' && !is_numeric($this->ext_id))
{
$this->errormsg = 'Ext_ID ist keine gueltige Zahl';
$this->errormsg = "UID darf keine Umlaute oder Sonderzeichen enthalten";
return false;
}
return true;
//Maximallaenge pruefen
if(strlen($this->familienname)>255)
{
$this->errormsg = 'Familienname darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->vorname)>255)
{
$this->errormsg = 'Vorname darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->anrede)>20)
{
$this->errormsg = 'Anrede darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->vornamen)>255)
{
$this->errormsg = 'Vornamen darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->geschlecht)>1)
{
$this->errormsg = 'Geschlecht darf nicht laenger als 1 Zeichen sein';
return false;
}
if(strlen($this->gebort)>255)
{
$this->errormsg = 'Geburtsort darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->svnr)!=10)
{
$this->errormsg = 'SVNR muss 10 Zeichen lang sein';
return false;
}
if(!is_numeric($this->svnr))
{
$this->errormsg = 'SVNR muss eine gueltige Zahl sein';
return false;
}
if($this->svnr=='0000000000') //Leere SVNR wird zum anlegen des neuen Leerdatensatzes benoetigt
$this->svnr='';
else
{
//SVNR mit Pruefziffer pruefen
//Die 4. Stelle in der SVNR ist die Pruefziffer
//(Summe von (gewichtung[i]*svnr[i])) modulo 11 ergibt diese Pruefziffer
//Falls nicht, ist die SVNR ungueltig
$gewichtung = array(3,7,9,0,5,8,4,2,1,6);
$erg=0;
//Quersumme bilden
for($i=0;$i<10;$i++)
$erg += $gewichtung[$i] * $this->svnr{$i};
if($this->svnr{3}!=($erg%11)) //Vergleichen der Pruefziffer mit Quersumme Modulo 11
{
$this->errormsg = 'SVNR ist ungueltig';
return false;
}
}
if(strlen($this->bismelden)>1)
{
$this->errormsg = 'bismelden darf nicht laenger als 1 Zeichen sein';
return false;
}
if(strlen($this->titelpre)>30)
{
$this->errormsg = 'titelpre darf nicht laenger als 30 Zeichen sein';
return false;
}
if(strlen($this->titelpost)>30)
{
$this->errormsg = 'titelpost darf nicht laenger als 30 Zeichen sein';
return false;
}
if(strlen($this->uid)>20)
{
$this->errormsg = 'uid darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->gebnation)>3)
{
$this->errormsg = 'Geburtsnation darf nicht laenger als 3 Zeichen sein';
return false;
}
if(strlen($this->staatsbuergerschaft)>3)
{
$this->errormsg = 'Staatsb羹rgerschaft darf nicht laenger als 3 Zeichen sein';
return false;
}
if(strlen($this->ersatzkennzeichen)>10)
{
$this->errormsg = 'ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
return false;
}
//Zahlenwerte ueberpruefen
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
if(!is_numeric($this->familienstand) && $this->familienstand!='') return false;
if(!is_numeric($this->anzahlderkinder) && $this->anzahlderkinder!='') return false;
if(!is_numeric($this->aktstatus) && $this->aktstatus!='') return false;
if($this->gebdat!='' && (time() - strtotime($this->gebdat))<315360000) // Wenn nicht aelter als 10 Jahre = 315360000 Sekunden
{
$this->errormsg = 'Geburtsdatum ist falsch: Person muss 鄟ter als 10 Jahre sein';
return false;
}
if($this->uid_exists($this->uid, $this->person_id))
{
$this->errormsg = 'Diese UID existiert bereits';
return false;
}
$this->errormsg='';
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 die Personendaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $person_id upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
/**
* Speichert die Daten in die Datenbank
* Wenn $new auf true gesetzt ist wird eingefuegt
* ansonsten der datensatz $person_id upgedated
* @return true wenn erfolgreich, false im Fehlerfall
*/
function save()
{
{
//Variablen auf Gueltigkeit pruefen
if(!person::validate())
if(!$this->checkvars1())
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,
gebdatum, gebort, gebzeit, foto, anmerkungen, homepage, svnr, ersatzkennzeichen,
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon , ext_id)
VALUES('.$this->addslashes($this->sprache).','.
$this->addslashes($this->anrede).','.
$this->addslashes($this->titelpost).','.
$this->addslashes($this->titelpre).','.
$this->addslashes($this->nachname).','.
$this->addslashes($this->vorname).','.
$this->addslashes($this->vornamen).','.
$this->addslashes($this->gebdatum).','.
$this->addslashes($this->gebort).','.
$this->addslashes($this->gebzeit).','.
$this->addslashes($this->foto).','.
$this->addslashes($this->anmerkungen).','.
$this->addslashes($this->homepage).','.
$this->addslashes($this->svnr).','.
$this->addslashes($this->ersatzkennzeichen).','.
$this->addslashes($this->familienstand).','.
$this->addslashes($this->anzahlkinder).','.
($this->aktiv?'true':'false').','.
$this->addslashes($this->insertamum).','.
$this->addslashes($this->insertvon).','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->ext_id).');';
{
//Naechste ID aus Sequence holen
$qry = "SELECT nextval('person_seq') as id;";
if(!$row=pg_fetch_object(pg_query($this->conn,$qry)))
{
$this->errormsg = "Fehler beim Auslesen der Sequence";
return false;
}
$this->person_id = $row->id;
$qry = "INSERT INTO person (person_pk, familienname, angelegtam, vorname, anrede, vornamen,".
" geschlecht, gebdat, gebort, staatsbuergerschaft, familienstand, svnr, anzahlderkinder,".
" ersatzkennzeichen, bemerkung, creationdate,creationuser, aktstatus, bismelden, titel, postnomentitel,".
" uid, gebnation) VALUES( $this->person_id,".
" '$this->familienname', now(), '$this->vorname', '$this->anrede', '$this->vornamen',".
($this->geschlecht!=''?"'$this->geschlecht'":"'M'").", ".
($this->gebdat!=''?"'$this->gebdat'":'null').", '$this->gebort', '$this->staatsbuergerschaft',".
($this->familienstand!=''?"'$this->familienstand'":'null').",".
" '$this->svnr', ".
($this->anzahlderkinder!=''?"'$this->anzahlderkinder'":'null').",".
" '$this->ersatzkennzeichen', '$this->bemerkung', now(),".
" '$this->updatevon', '".($this->aktstatus>0?$this->aktstatus:100)."', '".($this->bismelden?'J':'N')."', '$this->titelpre', '$this->titelpost',".
(strlen($this->uid)>0?" '$this->uid'":'null').",".
" '$this->gebnation');";
}
else
{
//person_id auf gueltigkeit pruefen
//peson_id auf gueltigkeit pruefen
if(!is_numeric($this->person_id))
{
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE tbl_person SET'.
' sprache='.$this->addslashes($this->sprache).','.
' anrede='.$this->addslashes($this->anrede).','.
' titelpost='.$this->addslashes($this->titelpost).','.
' titelpre='.$this->addslashes($this->titelpre).','.
' nachname='.$this->addslashes($this->nachname).','.
' vorname='.$this->addslashes($this->vorname).','.
' vornamen='.$this->addslashes($this->vornamen).','.
' gebdatum='.$this->addslashes($this->gebdatum).','.
' gebort='.$this->addslashes($this->gebort).','.
' gebzeit='.$this->addslashes($this->gebzeit).','.
' foto='.$this->addslashes($this->foto).','.
' anmerkungen='.$this->addslashes($this->anmerkungen).','.
' homepage='.$this->addslashes($this->homepage).','.
' svnr='.$this->addslashes($this->svnr).','.
' ersatzkennzeichen='.$this->addslashes($this->ersatzkennzeichen).','.
' familienstand='.$this->addslashes($this->familienstand).','.
' anzahlkinder='.$this->addslashes($this->anzahlkinder).','.
' aktiv='.($this->aktiv?'true':'false').','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).','.
' ext_id='.$this->addslashes($this->ext_id).
" WHERE person_id='$this->person_id'";
$qry = "UPDATE person SET ".
" familienname='$this->familienname',".
" vorname='$this->vorname',".
" anrede='$this->anrede',".
" vornamen='$this->vornamen',".
" geschlecht=".($this->geschlecht!=''?"'$this->geschlecht'":"'M'").",".
" gebdat=".($this->gebdat!=''?"'$this->gebdat'":'null').",".
" gebort='$this->gebort',".
" staatsbuergerschaft='$this->staatsbuergerschaft',".
" familienstand=".($this->familienstand!=''?"'$this->familienstand'":'0').",".
" svnr=".($this->svnr!=''?"'$this->svnr'":'null').",".
" anzahlderkinder=".($this->anzahlderkinder!=''?"'$this->anzahlderkinder'":'0').",".
" ersatzkennzeichen='$this->ersatzkennzeichen',".
" bemerkung='$this->bemerkung',".
" aktstatus='$this->aktstatus',".
" bismelden='".($this->bismelden?'J':'N')."',".
" titel='$this->titelpre',".
" postnomentitel='$this->titelpost',".
" uid='$this->uid',".
" gebnation='$this->gebnation'".
" WHERE person_pk='$this->person_id'";
}
if(pg_query($this->conn,$qry))
{
if($this->new)
{
$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;
else
{
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
return false;
}
}
//Log schreiben
return true;
$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 Person-Datensatzes:'.$this->nachname.' '.$qry;
else
{
$this->errormsg = "Fehler beim Speichern des Person-Datensatzes:".$qry;
return false;
}
}
/**
* Loescht einen Datensatz
* @param $person_id ID des zu loeschenden Datensatzes
* @return true wenn OK false im Fehlerfall
*/
function delete($person_id)
{
//person_id auf Gueltigkeit pruefen
if(!is_numeric($person_id) || $person_id=='')
{
$this->errormsg = 'Person_id muss eine Zahl sein';
return false;
}
$qry = "Delete from person where person_pk=$person_id";
if(!pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim Loeschen';
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;
}
}
}
/**
* Holt alle Personen aus der Datenbank
* @return true wenn OK, false im Fehlerfall
*/
function getAll()
{
/** Braucht zuviel Speicher
$qry = "SELECT * FROM person";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim auslesen der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$pers=new person($this->conn);
$pers->person_id = $row->person_pk;
$pers->aktstatus = $row->aktstatus;
$pers->angelegtam = $row->angelegtam;
$pers->anrede = $row->anrede;
$pers->anzahlderkinder = $row->anzahlderkinder;
$pers->bemerkung = $row->bemerkung;
$pers->bismelden = ($row->bismelden=='J'?true:false);
$pers->ersatzkennzeichen = $row->ersatzkennzeichen;
$pers->familienname = $row->familienname;
$pers->familienstand = $row->familienstand;
$pers->gebdat = $row->gebdat;
$pers->gebnation = $row->gebnation;
$pers->gebort = $row->gebort;
$pers->geschlecht = $row->geschlecht;
$pers->staatsbuergerschaft = $row->staatsbuergerschaft;
$pers->svnr = $row->svnr;
$pers->titelpre = $row->titel;
$pers->titelpost = $row->postnomentitel;
$pers->uid = $row->uid;
$pers->vorname = $row->vorname;
$pers->vornamen = $row->vornamen;
$pers->updateamum = $row->creationdate;
$pers->updatevon = $row->creationuser;
$this->result[] = $pers;
}
return true;
*/
return false;
}
/**
* Prueft ob die UID schon vergeben ist. Wenn ein zweiter
* Parameter angegeben wird, wird diese ID von der ueberpruefung
* ausgeschlossen ( fuer Update eines Datensatzes )
*/
function uid_exists($uid, $person_id='')
{
if($uid!='')
{
$this->errormsg = '';
//Datenbank Check
$qry = "SELECT count(*) as anz from person where uid='$uid'";
if($person_id!='')
$qry .= " AND person_pk<>".$person_id;
if($result = pg_query($this->conn,$qry))
{
while ($row=pg_fetch_object($result))
{
if($row->anz == 0)
{
//Wurde deaktiviert weil der Zugriff vom auf den LDAP Server
//vom der Calva aus nicht funktioniert
//Ldap Check
//$ds = ldap_connect(LDAP_SERVER);
//$dn = "ou=People, dc=technikum-wien, dc=at";
//$sr = ldap_search($ds,$dn,"uid=$uid");
//if(ldap_count_entries($ds,$sr)>0)
// return true;
//else
return false;
}
else
return true;
}
}
else
{
$this->errormsg = 'Fehler beim checken der uid';
return false;
}
}
return false;
}
/**
* Aktualisiert den AktStatus
*/
function updateaktstatus($person_id)
{
$mitarbeiter_id = '';
$qry = "Select mitarbeiter_pk from mitarbeiter where person_fk='$person_id'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
$mitarbeiter_id = $row->mitarbeiter_pk;
else
{
$this->errormsg = 'Fehler beim ermitteln der Mitarbeiter_id';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim ermitteln der mitarbeiter_id';
return false;
}
//Funktionen holen
$qry = "Select funktion from funktion where ".
"studiensemester_fk = (Select studiensemester_pk from studiensemester where aktuell='J')".
" AND mitarbeiter_fk = '$mitarbeiter_id'";
if($result = pg_query($this->conn, $qry))
{
$fkt=array();
$i=0;
while($row=pg_fetch_object($result))
{
$fkt[$i]=$row->funktion;
$i++;
}
//Aktstatus ermitteln
if(in_array(5,$fkt)) //STGL
$aktstatus = 104;
elseif(in_array(6,$fkt)) //FBL
$aktstatus = 103;
elseif(in_array(2,$fkt)) //FBK
$aktstatus = 102;
elseif(in_array(1,$fkt)) //LKT
$aktstatus = 101;
else
$aktstatus = 100; //Mitarbeiter
$this->status = $aktstatus;
//neuen akstatus setzen
$qry = "Update person set aktstatus = $aktstatus where person_pk = $person_id";
if(pg_query($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 setzen des Aktstatus';
return false;
}
}
}
function setaktstatus($status, $person_id)
{
$qry = "Update person set aktstatus = '$status' where person_pk='$person_id'";
if(!pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Setzen des aktuellen Status'.$qry;
return false;
}
return true;
}
}
?>
+78 -172
View File
@@ -1,220 +1,126 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Klasse raumtyp (FAS-Online)
* @create 14-03-2006
*/
/**
* Klasse ortraumtyp (FAS-Online)
* @create 04-12-2006
*/
class raumtyp
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $beschreibung; // @var string
var $raumtyp_kurzbz; // @var string
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var raumtyp Objekt
var $raumtyp_id; // @var integer
var $bezeichnung; // @var string
var $kurzbezeichnung; // @var string
var $plaetze; // @var integer
var $updateamum; // @var timestamp
var $updatevon; // @var string
/**
* Konstruktor
* @param $conn Connection zur DB
* $ort_kurzbz und hierarchie ID des zu ladenden OrtRaumtyps
* @param conn Connection zur Datenbank
* raum_id ID des zu ladenden Raumes (default=null)
*/
function raumtyp($conn, $raumtyp_kurzbz=null)
function raumtyp($conn, $raum_id=null)
{
$this->conn = $conn;
if($raumtyp_kurzbz != null)
$this->load($raumtyp_kurzbz);
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($raum_id != null)
$this->load($raum_id);
}
/**
* Laedt alle verfuegbaren OrtRaumtypen
/**
* Laedt einen Datensatz
* @param $raum_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
function load($raum_id)
{
$qry = 'SELECT * FROM tbl_raumtyp order by raumtyp_kurzbz;';
if(!is_numeric($raum_id) || $raum_id == '')
{
$this->errormsg = 'raum_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM raumtyp WHERE raumtyp_pk = '$raum_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
$this->errormsg = 'Fehler beim laden des Datenstatzes';
return false;
}
while($row = pg_fetch_object($res))
if($row = pg_fetch_object($res))
{
$raumtyp_obj = new ort($this->conn);
$raumtyp_obj->beschreibung = $row->beschreibung;
$raumtyp_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz;
$this->result[] = $raumtyp_obj;
}
return true;
}
/**
* Laedt einen Raumtyp
* @param $raumtyp ID des zu ladenden Raumtyps
* @return true wenn ok, false im Fehlerfall
*/
function load($raumtyp_kurzbz)
{
if($raum_kurzbz == '')
{
$this->errormsg = 'Kein gültiger Schlüssel vorhanden';
return false;
}
$qry = "SELECT * FROM tbl_raumtyp WHERE raumtyp_kurzbz = '$raumtyp_kurzbz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->beschreibung = $row->beschreibung;
$this->raumtyp_kurzbz = $row->kurzbz;
$this->raumtyp_id = $row->raumtyp_pk;
$this->bezeichnung = $row->bezeichnung;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->plaetze = $row->plaetze;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $raumtyp_kurzbz ID des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
* Laedt alle Datensaetze
* @return ture wenn ok, false im Fehlerfall
*/
function delete($raumtyp_kurzbz)
function getAll()
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->beschreibung = str_replace("'",'´',$this->beschreibung);
$this->raumtyp_kurzbz = str_replace("'",'´',$this->raumtyp_kurzbz);
$qry = "SELECT * FROM raumtyp;";
//Laenge Pruefen
if(strlen($this->beschreibung)>256)
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = "Beschreibung darf nicht laenger als 256 Zeichen sein bei <b>$this->raumtyp_kurzbz</b> - ".$this->beschreibung;
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
if(strlen($this->raumtyp_kurzbz)>8)
}
while($row = pg_fetch_object($res))
{
$this->errormsg = "Raumtyp_kurzbz darf nicht laenger als 8 Zeichen sein bei <b>$this->raumtyp_kurzbz</b>";
return false;
}
$this->errormsg = '';
return true;
$raum_obj = new raumtyp($this->conn);
$raum_obj->raumtyp_id = $row->raumtyp_pk;
$raum_obj->bezeichnung = $row->bezeichnung;
$raum_obj->kurzbezeichnung = $row->kurzbezeichnung;
$raum_obj->plaetze = $row->plaetze;
$raum_obj->updateamum = $row->creationdate;
$raum_obj->updatevon = $row->creationuser;
$this->result[] = $raum_obj;
}
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Pruefen ob id gültig ist
if($this->raumtyp_kurzbz == '')
{
$this->errormsg = 'Keine gültige ID';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_raumtyp (beschreibung, raumtyp_kurzbz) VALUES ('.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->raumtyp_kurzbz).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob id gueltig ist
if($this->raumtyp_kurzbz == '')
{
$this->errormsg = 'Keine gültige ID';
return false;
}
$qry = 'UPDATE tbl_raumtyp SET '.
'beschreibung='.$this->addslashes($this->beschreibung).' '.
'WHERE raumtyp_kurzbz = '.$this->addslashes($this->ort_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;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
$this->errormsg = 'Noch nicht Implementiert';
return false;
}
/**
* Loescht einen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function delete($raum_id)
{
$this->errormsg = 'Noch nicht Implementiert';
return false;
}
}
?>
-182
View File
@@ -1,182 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class student extends benutzer
{
//Tabellenspalten
var $matrikelnr;
var $prestudent_id;
var $studiengang_kz;
var $semester;
var $verband;
var $gruppe;
// *************************************************************************
// * 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
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function student($conn, $student_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;
}
//Student laden
if($student_id!=null)
$this->load($student_id);
}
// *******************************************
// * 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($this->uid=='')
{
$this->errormsg = 'UID muss eingegeben werden';
return false;
}
if(strlen($this->matrikelnr)>15)
{
$this->errormsg = 'Matrikelnummer darf nicht laenger als 15 Zeichen sein';
return false;
}
if(strlen($this->updatevon)>32)
{
$this->errormsg = 'Updatevon darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->prestudent_id!='' && !is_numeric($this->prestudent_id))
{
$this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->semester))
{
$this->errormsg = 'Semester muss ein gueltige Zahl sein';
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;
}
return true;
}
// ************************************************************
// * Speichert die Studentendaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $person_id upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen checken
if(!$this->validate())
return false;
pg_query($this->conn,'BEGIN;');
//Basisdaten speichern
if(!benutzer::save())
{
pg_query($this->conn,'ROLLBACK;');
return false;
}
if($this->new)
{
//Neuen Datensatz anlegen
$qry = "INSERT INTO tbl_student(student_uid, matrikelnr, updateamum, updatevon, prestudent_id,
studiengang_kz, semester, verband, gruppe)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->matrikelnr).",".
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->prestudent_id).','.
$this->studiengang_kz.','.
$this->semester.','.
($this->verband!=''?"'".addslashes($this->verband)."'":' ').','.
($this->gruppe!=''?"'".addslashes($this->gruppe)."'":' ').');';
}
else
{
//Bestehenden Datensatz updaten
$qry = 'UPDATE tbl_student SET'.
' matrikelnr='.$this->addslashes($this->matrikelnr).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).','.
' prestudent_id='.$this->addslashes($this->prestudent_id).','.
' studiengang_kz='.$this->studiengang_kz.','.
' semester='.$this->semester.','.
' verband='.$this->addslashes($this->verband).','.
' gruppe='.$this->addslashes($this->gruppe).
" WHERE student_uid='".addslashes($this->uid)."';";
}
if(pg_query($this->conn,$qry))
{
pg_query($this->conn,'COMMIT;');
//Log schreiben
return true;
}
else
{
pg_query($this->conn,'ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Studenten-Datensatzes'.$qry;
return false;
}
}
}
?>
+2 -2
View File
@@ -22,10 +22,12 @@ class studiengang
var $betreuerstunden; // @var float
var $emailkuerzel; // @var string
var $endedatum; // @var date
var $erhalter_id; // @var integer
var $kennzahl; // @var integer
var $kennzahl_neu; // @var integer
var $kuerzel; // @var string
var $name; // @var string
var $nummerintern; // @var integer
var $organisationsform; // @var integer
var $regelstudiendauer; // @var integer
var $regelwochenstunden; // @var integer
@@ -36,8 +38,6 @@ class studiengang
var $telefonnummer; // @var string
var $updateamum; // @var timestamp
var $updatevon; // @var string
var $insertamum; // @var timestamp
var $insertvon; // @var string
/**
* Konstruktor
+125 -122
View File
@@ -1,160 +1,163 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Klasse studiensemester (FAS-Online)
* @create 15-03-2006
*/
class studiensemester
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $studiensemester = array(); // studiensemester Objekt
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var studiensemester Objekt
//Tabellenspalten
var $studiensemester_kurzbz; // varchar(16)
var $start; // date
var $ende; // date
var $studiensemester_id; // @var integer
var $aktuell; // @var boolean
var $art; // @var integer ( 1 = Wintersemester, 2 = Sommersemester )
var $jahr; // @var integer
var $updateamum; // @var timestamp
var $updatevon; // @var string
// ***********************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional ein LF
// * @param $conn Datenbank-Connection
// * $studiensemester_kurzbz StSem das geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// ***********************************************************************
function studiensemester($conn, $studiensemester_kurzbz=null, $unicode=false)
/**
* Konstruktor
* @param $conn Connection zur Datenbank
* $stsem_id ID des Studiensemesters das geladen werden soll
*/
function studiensemester($conn, $stsem_id=null)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($studiensemester_kurzbz != null)
$this->load($studiensemester_kurzbz);
if($stsem_id != null)
$this->load($stsem_id);
}
// **************************************************************
// * Laedt das Studiensemester mit der uebergebenen ID
// * @param $studiensemester_kurzbz Stsem das geladen werden soll
// **************************************************************
function load($studiensemester_kurzbz)
/**
* Laedt den Datensatz mit der ID die uebergeben wird
* @param stsem_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im fehlerfall;
*/
function load($stsem_id)
{
$qry = "SELECT * FROM tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
if(!$result=pg_query($this->conn,$qry))
//Pruefen ob stsem_id eine gueltige Zahl ist
if(!is_numeric($stsem_id) || $stsem_id == '')
{
$this->errormsg = 'Fehler beim lesen des Studiensemesters';
$this->errormsg = 'stsem_id muss eine gueltige Zahl sein';
return false;
}
if($row = pg_fetch_object($result))
//Laden eines Datensatzes
$qry = "SELECT * FROM studiensemester WHERE studiensemester_pk = '$stsem_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
}
else
{
$this->errormsg = "Es ist kein Studiensemester mit der Kurzbezeichung $studiensemester_kurzbz vorhanden";
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row = pg_fetch_object($res))
{
$this->studiensemester_id = $row->studiensemester_pk;
$this->aktuell = ($row->aktuell=='J'?true:false);
$this->art = $row->art;
$this->jahr = $row->jahr;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
/**
* Laedt das aktuelle Studiensemester
* @return true wenn ok, false im Fehlerfall
*/
function load_akt()
{
if(strlen($this->studiensemester_kurzbz)>16)
$qry = "SELECT * FROM studiensemester WHERE aktuell='J'";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Studiensemester Kurzbezeichnung darf nicht laenger als 16 Zeichen sein';
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($this->studiensemester_kurzbz=='')
if($row = pg_fetch_object($res))
{
$this->errormsg = 'Es muss eine Kurzbezeichnung eingegeben werden';
$this->studiensemester_id = $row->studiensemester_pk;
$this->aktuell = ($row->aktuell=='J'?true:false);
$this->art = $row->art;
$this->jahr = $row->jahr;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
return true;
}
/**
* Laedt alle studiensemester
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM studiensemester order by jahr, art desc;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
while($row = pg_fetch_object($res))
{
$stsem_obj = new studiensemester($this->conn);
$stsem_obj->studiensemester_id = $row->studiensemester_pk;
$stsem_obj->aktuell = ($row->aktuell=='J'?true:false);
$stsem_obj->art = $row->art;
$stsem_obj->jahr = $row->jahr;
$stsem_obj->updateamum = $row->creationdate;
$stsem_obj->updatevon = $row->creationuser;
$this->result[] = $stsem_obj;
}
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)
/**
* Loescht einen Datensatz
* @param $stsem_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($stsem_id)
{
return ($var!=''?"'".addslashes($var)."'":'null');
$this->errormsg = 'Noch nicht implementiert';
return false;
}
// ************************************************************
// * Speichert das Studiensemester 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
// ************************************************************
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = "INSERT INTO tbl_studiensemester (studiensemester_kurzbz, start, ende)
VALUES('".addslashes($this->studiensemester_kurzbz)."',".
$this->addslashes($this->start).','.
$this->addslashes($this->ende).');';
}
else
{
$qry = 'UPDATE tbl_studiensemester SET'.
' start='.$this->addslashes($this->start).','.
' ende='.$this->addslashes($this->ende).
" WHERE studiensemester_kurzbz='$this->studiensemester_kurzbz'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Studiensemesters:'.$qry;
return false;
}
$this->errormsg = 'Noch nicht implementiert';
return false;
}
}
?>
+196 -67
View File
@@ -1,88 +1,217 @@
<?php
/*
$Header: /include/lehrfach.class.php,v 1.2 2004/10/16 17:05:38 pam Exp $
$Log: lehrstunde.class.php,v $
Revision 1.2 2004/10/16 17:05:38 pam
Anpassung an neue DB-Struktur.
*/
/****************************************************************************
* @class Lehrfach
* @author Christian Paminger
* @date 2004/8/21
* @version $Revision: 1.2 $
* Update: 21.10.2004 von Christian Paminger
* @brief Klasse zur Bearbeitung und Abfrage der Tabelle tbl_ferien
* Abhaengig: von ?
*****************************************************************************/
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse ferien (FAS-Online)
* @create 07-12-2006
*/
class ferien
{
// @var string
var $bezeichnung;
// @var int
var $studiengang_kz;
// @var string
var $vondatum;
// @var string
var $bisdatum;
// @var timestamp
var $vontimestamp;
// @var timestamp
var $bistimestamp;
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var ferien Objekt
// @var string
var $errormsg;
// @var conn
var $conn;
// @var ferien
var $ferien=array();
function ferien($conn)
{
$this->conn=$conn;
}
//Tabellenspalten
var $bezeichnung; // @var varchar(64)
var $studiengang_kz; // @var integer
var $vondatum; // @var date
var $bisdatum; // @var date
/**
* Alle Fachbereiche zurueckgeben
* @return array mit Fachbereichen oder false=fehler
* Konstruktor
* @param $conn Connection zur DB
* $bezeichnung und studiengang_kz ID der zu ladenden Ferien
*/
function getAll($stg_kz)
function ferien($conn, $bezeichnung=null, $studiengang_kz=null)
{
$sql_query="SELECT * FROM tbl_ferien WHERE studiengang_kz=0 OR studiengang_kz=$stg_kz ORDER BY vondatum";
if (!$result=@pg_query($this->conn, $sql_query))
$this->conn = $conn;
if($bezeichnung != null && $studiengang_kz != null && !is_numeric($studiengang_kz))
$this->load($bezeichnung, studiengang_kz);
}
/**
* Laedt alle verfuegbaren Feriendaten
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = 'SELECT * FROM lehre.tbl_ferien order by bezeichnung, studiengang_kz;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = pg_errormessage($this->conn);
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
//$num_rows=pg_numrows($result);
//for ($i=0; $i<$num_rows; $i++)
while ($row=@pg_fetch_object($result))
while($row = pg_fetch_object($res))
{
// Record holen
// Instanz erzeugen
$f = new ferien($this->conn);
$f->bezeichnung=$row->bezeichnung;
$f->studiengang_kz = $row->studiengang_kz;
$f->vondatum=$row->vondatum;
$f->bisdatum=$row->bisdatum;
$f->vontimestamp=mktime(0,0,0,substr($row->vondatum,5,2),substr($row->vondatum,8),substr($row->vondatum,0,4));;
$f->bistimestamp=mktime(23,59,59,substr($row->bisdatum,5,2),substr($row->bisdatum,8),substr($row->bisdatum,0,4));;
// in array speichern
$this->ferien[]=$f;
$ferien_obj = new ferien($this->conn);
$ferien_obj->bezeichnung = $row->bezeichnung;
$ferien_obj->studiengang_kz = $row->studiengang_kz;
$ferien_obj->vondatum = $row->vondatum;
$ferien_obj->bisdatum = $row->bisdatum;
$this->result[] = $ferien_obj;
}
return true;
}
function isferien($timestamp)
/**
* Laedt einen Feriendatensatz
* @param $bezeichnung, studiengang_kz ID der zu ladenden Ferien
* @return true wenn ok, false im Fehlerfall
*/
function load($bezeichnung, $studiengang_kz)
{
foreach ($this->ferien AS $f)
if ($timestamp>=$f->vontimestamp && $timestamp<=$f->bistimestamp)
return true;
if($studiengang_kz == '' || !is_numeric($studiengang_kz) || $bezeichnung=='')
{
$this->errormsg = 'ID ungültig';
return false;
}
$qry = "SELECT * FROM lehre.tbl_ferien WHERE bezeichnung = '$this->bezeichnung' AND studiengang_kz = '$this->studiengang_kz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->bezeichnung = $row->bezeichnung;
$this->studiengang_kz = $row->studiengang_kz;
$this->vondatum = $row->vondatum;
$this->bisdatum = $row->bisdatum;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $bezeichnung, studiengang_kz id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($bezeichnung, $studiengang_kz)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
//Laenge Pruefen
if(strlen($this->bezeichnung)>64)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 64 Zeichen sein bei <b>$this->studiengang_kz</b> - $this->bezeichnung";
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Neuen Datensatz anlegen
if($this->studiengang_kz == '' || !is_numeric($this->studiengang_kz) || $this->bezeichnung=='')
{
$this->errormsg = 'ID ungültig';
return false;
}
$qry = 'INSERT INTO lehre.tbl_ferien (bezeichnung, studiengang_kz, vondatum, bisdatum) VALUES ('.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->vondatum).', '.
$this->addslashes($this->bisdatum).'); ';
}
else
{
//bestehenden Datensatz akualisieren
if($this->studiengang_kz == '' || !is_numeric($this->studiengang_kz) || $this->bezeichnung=='')
{
$this->errormsg = 'ID der Ferien ungültig';
return false;
}
$qry = 'UPDATE lehre.tbl_ferien SET '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '.
'vondatum='.$this->addslashes($this->vondatum).', '.
'bisdatum='.$this->addslashes($this->bisdatum).';';
}
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;
}
}
}
?>
+2 -2
View File
@@ -15,7 +15,7 @@ function get_uid()
function check_lektor($uid, $conn)
{
// uid von View 'Lektor' holen
$sql_query="SELECT uid FROM vw_lektor WHERE uid='$uid'";
$sql_query="SELECT mitarbeiter_uid FROM tbl_mitarbeiter WHERE mitarbeiter_uid='$uid'";
//echo $sql_query;
$result=pg_query($conn, $sql_query) or die(pg_last_error($conn));
$num_rows=pg_numrows($result);
@@ -23,7 +23,7 @@ function check_lektor($uid, $conn)
if ($num_rows>0)
{
$row=pg_fetch_object($result);
return $row->uid;
return $row->mitarbeiter_uid;
}
else
return 0;
+187 -249
View File
@@ -1,279 +1,217 @@
<?php
/**
* @author Christian Paminger, Werner Masik
* @version 1.0
* @created 22-Okt-2004
* @update 28.10.2004
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse funktion (FAS-Online)
* @create 14-03-2006
*/
class funktion
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $funktion_kurzbz; // @var integer
var $bezeichnung; // @var string
var $aktiv; // @var boolean
var $ext_id; // @var bigint
/**
* @var string
* Konstruktor
* @param $conn Connection zur DB
* $funktion_kurzbz ID der zu ladenden Funktion
*/
var $kurzbz;
/**
* @var string
*/
var $bezeichnung;
/**
* @var boolean
*/
var $aktiv;
/**
* @var string
*/
var $errormsg;
/**
* @var boolean
*/
var $new=true;
/**
* @var resource
*/
var $conn;
function funktion($conn)
function funktion($conn, $funktion_kurzbz=null)
{
$this->conn = $conn;
if($funktion_kurzbz != null)
$this->load($funktion_kurzbz);
}
/**
* Ladet die Attribute der Funktion aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
* Laedt alle verfuegbaren Funktionen
* @return true wenn ok, false im Fehlerfall
*/
function load($kurzbz)
function getAll()
{
$this->kurzbz=$kurzbz;
$qry="select * from tbl_funktion where funktion_kurzbz='$kurzbz'";
if (is_null($this->conn)) {
return false;
}
if(!($erg=@pg_exec($this->conn, $qry)))
$qry = 'SELECT * FROM tbl_funktion order by funktion_kurzbz;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg=pg_errormessage($this->conn);
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
$num_rows=pg_numrows($erg);
if($num_rows!=1) {
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
while($row = pg_fetch_object($res))
{
$funktion_obj = new funktion($this->conn);
$funktion_obj->funktion_kurzbz = $row->funktion_kurzbz;
$funktion_obj->bezeichnung = $row->bezeichnung;
$funktion_obj->aktiv = $row->aktiv;
$this->result[] = $funktion_obj;
}
$row=pg_fetch_object($erg,0);
$this->bezeichnung=$row->bezeichnung;
$this->aktiv=$row->aktiv=='t'?true:false;
$this->new=false;
return true;
}
/**
* Speichert die Funktion in die Datenbank. Bei Fehler ist der Rueckgabewert
* 'false' und die Fehlermeldung steht in 'errormsg'. INSERT oder DELETE wird
* durch 'new' bestimmt.
* @return boolean true=ok, false=fehler
* Laedt eine Funktion
* @param $funktion_kurzbz ID der zu ladenden Funktion
* @return true wenn ok, false im Fehlerfall
*/
function load($funktion_kurzbz)
{
if($funktion_kurzbz == '')
{
$this->errormsg = 'funktion_bz darf nicht leer sein';
return false;
}
$qry = "SELECT * FROM tbl_funktion WHERE funktion_kurzbz = '$funktion_kurzbz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->funktion_kurzbz = $row->funktion_kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->aktiv = $row->aktiv;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $funktion_id id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($funktion_kurzbz)
{
$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);
//Laenge Pruefen
if(strlen($this->bezeichnung)>64)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->funktion_kurzbz</b> - $this->bezeichnung";
return false;
}
$this->errormsg = '';
return true;
}
function save()
{
if (is_null($this->conn)) {
return false;
}
if (strlen($this->kurzbz)==0)
{
$this->errormsg="<i>kurzbz</i> nicht gesetzt";
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
}
if ($this->new)
if($this->new)
{
$qry="insert into tbl_funktion(funktion_kurzbz,bezeichnung,aktiv) ".
"values('".$this->kurzbz."','".$this->bezeichnung."',".($this->aktiv?'t':'f').")";
} else
{
$qry="update tbl_funktion set bezeichnung='".$this->bezeichnung."',".
"aktiv=".($this->aktiv?'t':'f')." where funktion_kurzbzb='$this->kurzbz'";
}
if(!($erg=@pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
/**
* Loescht die Funktion aus der Datenbank. Bei Fehler ist der Rueckgabewert
* 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function delete()
{
if (is_null($this->conn)) {
return false;
}
if (strlen($this->kurzbz)==0)
{
$this->errormsg="<i>kurzbz</i> nicht gesetzt";
return false;
}
$qry="delete from tbl_funktion where funktion_kurzbz='".$this->kurzbz."'";
if(!($erg=@pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
/**
* alle Personen mit dieser Funktion holen
* @param string $kurzbz Kurzbezeichnung der Funktion (wenn nicht angegeben
* wird lokale $kurzbz verwendet)
* @return array key=personfunktion_id, value=array('person','studiengang_kz'',
* 'studiengang_kurzbz','fachbereich_id', 'fachbereich_kurzbz') oder false, wenn Fehler
*/
function getPersonen($kurzbz='')
{
// Array für Suchergebnis
$result=array();
if (strlen($kurzbz)==0)
{
$search_kurzbz=$this->kurzbz;
} else
{
$search_kurzbz=$kurzbz;
}
$qry="select tbl_personfunktion.*,tbl_studiengang.kurzbz as studiengang_kurzbz,tbl_fachbereich.kurzbz as fachbereich_kurzbz from tbl_personfunktion join tbl_person using(uid) ".
"left join tbl_studiengang using(studiengang_kz) ".
"left join tbl_fachbereich using(fachbereich_id) ".
"where funktion_kurzbz='$search_kurzbz' ".
"order by upper(tbl_person.nachname)";
if (is_null($this->conn)) {
return false;
}
//echo "'".$qry."'";
if(!($erg=@pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
for ($i=0;$i<$num_rows;$i++)
{
// Person laden (nicht für große Anzahl von Personen geeignet)
$temp_person=new person($this->conn);
$temp_person->load(pg_result($erg,$i,'uid'));
// und in Array speichern
$result[pg_result($erg,$i,'personfunktion_id')]=array(
'person'=>$temp_person,
'studiengang_kz'=>@pg_result($erg,$i,'studiengang_kz'),
'studiengang_kurzbz'=>@pg_result($erg,$i,'studiengang_kurzbz'),
'fachbereich_kurzbz'=>@pg_result($erg,$i,'fachbereich_kurzbz'),
'fachbereich_id'=>@pg_result($erg,$i,'fachbereich_id')
);
}
return $result;
}
/**
* Person Funktion dazugeben
* @param string $uid User-ID
* @param string $studiengang_kz Studiengang-Kennzahl (optional)
* @param integer $fachbereich_id optional
* @return boolean true=ok, false=fehler
*/
function addPerson($uid,$studiengang_kz=null,$fachbereich_id=null)
{
if (is_null($this->conn)) {
return false;
}
$targetlist="uid,funktion_kurzbz";
if (strlen($studiengang_kz)>0) $targetlist.=",studiengang_kz";
if (strlen($fachbereich_id)>0) $targetlist.=",fachbereich_id";
$values="'$uid','".$this->kurzbz."'";
if (strlen($studiengang_kz)>0) $values.=",$studiengang_kz";
if (strlen($fachbereich_id)>0) $values.=",$fachbereich_id";
$qry="insert into tbl_personfunktion($targetlist) ".
"values($values)";
//echo $qry;
if(!($erg=@pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
/**
* Person Funktion wegnehmen
* @param string $uid User-ID
* @param string $studiengang_kz Studiengang-Kennzahl (optional)
* @param integer $fachbereich_id optional
* @return boolean true=ok, false=fehler
*/
function removePerson($personfunktion_id)
{
if (is_null($this->conn)) {
return false;
}
if (strlen($personfunktion_id)==0) {
$this->errormsg="personfunktion_id darf nicht NULL sein";
return false;
}
$qry="delete from tbl_personfunktion where personfunktion_id=$personfunktion_id";
if(!($erg=@pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
/**
* Personfunktion aktualisieren
* @param integer $personfunktion ID aus der Zuordnungstabelle
* @param string $uid User-ID
* @param string $studiengang_kz Studiengang-Kennzahl (optional)
* @param integer $fachbereich_id optional
* @return boolean true=ok, false=fehler
*/
function updatePerson($personfunktion_id,$uid,$studiengang_kz=null,
$fachbereich_id=null) {
if (is_null($this->conn)) {
return false;
}
if (strlen($studiengang_kz)>0)
{
$values.=",studiengang_kz=$studiengang_kz ";
} else
{
$values.=",studiengang_kz=NULL ";
}
if (strlen($fachbereich_id)>0)
{
$values.=",fachbereich_id=$fachbereich_id";
} else
{
if (strlen($studiengang_kz)==0) {
$this->errormsg="Studiengang oder Fachbereich fehlt.";
return false;
//Pruefen ob funktion_kurzbz befüllt ist
if($this->funktion_kurzbz == '')
{
$this->errormsg = 'funktion_kurzbz darf nicht leer sein';
return false;
}
$values.=",fachbereich_id=NULL";
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_funktion (funktion_kurzbz, bezeichnung, aktiv) VALUES ('.
$this->addslashes($this->funktion_kurzbz).', '.
$this->addslashes($this->bezeichnung).', '.
($this->aktiv?'true':'false').'); ';
}
$qry="update tbl_personfunktion set ".
"uid='$uid'$values ".
"where personfunktion_id=$personfunktion_id";
//echo $qry;
if(!($erg=@pg_exec($this->conn, $qry)))
else
{
$this->errormsg=pg_errormessage($this->conn);
//bestehenden Datensatz akualisieren
//Pruefen ob fachbereich_id eine gueltige Zahl ist
if( $this->funktion_kurzbz == '')
{
$this->errormsg = 'funktion_kurzbz darf nicht leer sein';
return false;
}
$qry = 'UPDATE tbl_funktion SET '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'aktiv='.($this->aktiv?'true':'false') .' '.
'WHERE funktion_kurzbz = '.$this->addslashes($this->funktion_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;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
return true;
}
}
}
?>
-22
View File
@@ -1,22 +0,0 @@
<?php
// Hintergrundfarben fuer Tabellen beim Zeitwunsch
global $cfgStdBgcolor;
$cfgStdBgcolor=array();
$cfgStdBgcolor[0]="#FF0000";
$cfgStdBgcolor[1]="#D44128";
$cfgStdBgcolor[2]="#CA8780";
$cfgStdBgcolor[3]="#C0C0C0";
$cfgStdBgcolor[4]="#A2C294";
$cfgStdBgcolor[5]="#4EA83C";
$cfgStdBgcolor[6]="#006000";
// Wochentage auf Deutsch (Zeitwunsch)
global $tagbez;
$tagbez=array();
$tagbez[1]="Montag";
$tagbez[2]="Dienstag";
$tagbez[3]="Mittwoch";
$tagbez[4]="Donnerstag";
$tagbez[5]="Freitag";
$tagbez[6]="Samstag";
?>
@@ -20,35 +20,36 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class reservierung
class gruppe
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $reservierungen = array(); // reservierung Objekt
var $gruppen = array(); // gruppen 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)
var $gruppe_kurzbz; // varchar(16)
var $studiengang_kz; // integer
var $bezeichnung; // varchar(32)
var $semester; // smallint
var $sort; // smallint
var $mailgrp; // boolean
var $beschreibung; // varchar(128)
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 Reservierung
// * Konstruktor - Uebergibt die Connection und laedt optional eine Gruppe
// * @param $conn Datenbank-Connection
// * $reservierung_id
// * $gruppe_kurzbz
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function reservierung($conn, $reservierung_id=null, $unicode=false)
function gruppe($conn, $gruppe_kurzbz=null, $unicode=false)
{
$this->conn = $conn;
@@ -62,20 +63,40 @@ class reservierung
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
else
$this->new = true;
if($reservierung_id!=null)
$this->load($reservierung_id);
if($gruppe_kurzbz!=null)
$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 eine Reservierung
// * @param reservierung_id
// * Laedt die Gruppe
// * @param gruppe_kurzbz
// *********************************************************
function load($reservierung_id)
function load($gruppe_kurzbz)
{
$this->errormsg = 'Not implemented';
return false;
}
@@ -86,9 +107,14 @@ class reservierung
// *******************************************
function validate()
{
if(strlen($this->ort_kurzbz)>8)
if(strlen($this->gruppe_kurzbz)>16)
{
$this->errormsg = 'Ort_Kurzbz darf nicht laenger als 8 Zeichen sein';
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->gruppe_kurzbz=='')
{
$this->errormsg = 'Gruppe muss angegeben werden';
return false;
}
if(!is_numeric($this->studiengang_kz))
@@ -96,44 +122,49 @@ class reservierung
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->uid)>16)
if(strlen($this->bezeichnung)>32)
{
$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';
$this->errormsg = 'Bezeichnung darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester ist ungueltig';
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->verband)>1)
if($this->sort!='' && !is_numeric($this->sort))
{
$this->errormsg = 'Verband darf nicht laenger als 1 Zeichen sein';
$this->errormsg = 'Typ muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->gruppe)>1)
if(!is_bool($this->mailgrp))
{
$this->errormsg = 'Gruppe darf nicht laenger als 1 Zeichen sein';
$this->errormsg = 'Mailgrp muss ein boolscher wert sein';
return false;
}
if(strlen($this->gruppe_kurzbz)>10)
if(strlen($this->beschreibung)>128)
{
$this->gruppe_kurzbz = 'Gruppe_kurzbz darf nicht laenger als 10 Zeichen sein';
$this->errormsg = 'Beschreibung darf nicht laenger als 128 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;
}
@@ -152,63 +183,63 @@ class reservierung
}
// ************************************************************
// * Speichert Reservierung in die Datenbank
// * 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))
$this->new = $new;
if(is_null($new))
$new = $this->new;
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$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).','.
if($new)
{
$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->uid).','.
$this->addslashes($this->stunde).','.
$this->addslashes($this->datum).','.
$this->addslashes($this->titel).','.
$this->addslashes($this->beschreibung).','.
$this->addslashes($this->bezeichnung).','.
$this->addslashes($this->semester).','.
$this->addslashes($this->verband).','.
$this->addslashes($this->gruppe).','.
$this->addslashes($this->gruppe_kurzbz).');';
$this->addslashes($this->sort).','.
($this->mailgrp?'true':'false').','.
$this->addslashes($this->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 campus.tbl_reservierung SET'.
' ort_kurzbz='.$this->addslashes($this->ort_kurzbz).','.
$qry = 'UPDATE tbl_gruppe SET'.
' 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).','.
' bezeichnung='.$this->addslashes($this->bezeichnung).','.
' 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)."'";
' 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).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE gruppe_kurzbz=".$this->addslashes($this->gruppe_kurzbz).";";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
$this->new = false;
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Reservierung:'.$qry;
$this->errormsg = 'Fehler beim Speichern der Gruppe:'.$qry;
return false;
}
}
@@ -20,18 +20,18 @@
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class stundenplan
class lehreinheit
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $stundenplan = array(); // stundenplan Objekt
var $lehreinheiten = array(); // lehreinheit Objekt
//Tabellenspalten
var $lehreinheit_id; // integer
var $lehrveranstaltung_nr; // integer
var $lehrveranstaltung_id; // integer
var $studiensemester_kurzbz; // varchar(16)
var $lehrfach_nr; // integer
var $lehrfach_id; // integer
var $lehrform_kurzbz; // varchar(8)
var $stundenblockung; // smalint
var $wochenrythmus; // smalint
@@ -90,7 +90,7 @@ class stundenplan
$this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->lehrveranstaltung_nr))
if(!is_numeric($this->lehrveranstaltung_id))
{
$this->errormsg = 'LehrveranstaltungsNr muss eine gueltige Zahl sein';
return false;
@@ -105,9 +105,9 @@ class stundenplan
$this->errormsg = 'Studiensemester muss angegeben werden';
return false;
}
if(!is_numeric($this->lehrfach_nr))
if(!is_numeric($this->lehrfach_id))
{
$this->errormsg = 'Lehrfach_nr muss eine gueltige Zahl sein';
$this->errormsg = 'Lehrfach_id muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->lehrform_kurzbz)>8)
@@ -210,12 +210,12 @@ class stundenplan
if($new)
{
//ToDo ID entfernen
$qry = 'INSERT INTO lehre.tbl_lehreinheit (lehrveranstaltung_nr, studiensemester_kurzbz,
lehrfach_nr, lehrform_kurzbz, stundenblockung, wochenrythmus,
$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_nr).','.
VALUES('.$this->addslashes($this->lehrveranstaltung_id).','.
$this->addslashes($this->studiensemester_kurzbz).','.
$this->addslashes($this->lehrfach_nr).','.
$this->addslashes($this->lehrfach_id).','.
$this->addslashes($this->lehrform_kurzbz).','.
$this->addslashes($this->stundenblockung).','.
$this->addslashes($this->wochenrythmus).','.
@@ -230,9 +230,9 @@ class stundenplan
else
{
$qry = 'UPDATE lehre.tbl_lehreinheit SET'.
' lehrveranstaltung_nr='.$this->addslashes($this->lehrveranstaltung_nr).','.
' lehrveranstaltung_nr='.$this->addslashes($this->lehrveranstaltung_id).','.
' studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).','.
' lehrfach_nr='.$this->addslashes($this->lehrfach_nr).','.
' lehrfach_id='.$this->addslashes($this->lehrfach_id).','.
' lehrform_kurzbz='.$this->addslashes($this->lehrform_kurzbz).','.
' stundenblockung='.$this->addslashes($this->stundenblockung).','.
' wochenrythmus='.$this->addslashes($this->wochenrythmus).','.
+231 -205
View File
@@ -1,206 +1,232 @@
<?php
class lehrfach
{
/**
* @var sint
*/
var $lehrfach_nr;
/**
* @var int
*/
var $fachbereich_id;
/**
* @var string
*/
var $kurzbz;
/**
* @var string
*/
var $bezeichnung;
/**
* @var string
*/
var $lehrevz;
/**
* @var string
*/
var $farbe;
/**
* @var string
*/
//var $lehrform_kurzbz;
/**
* @var boolean
*/
var $aktiv;
/**
* @var int
*/
var $studiengang_kz;
/**
* @var real
*/
var $ects;
/**
* @var int
*/
var $semester;
/**
* @var string
*/
var $sprache;
/**
* @var string
*/
var $errormsg;
var $fkterg = array();
var $conn;
function lehrfach($conn)
{
$this->conn=$conn;
}
/**
* Ladet einen Datensatz mit der id $id
* @param $id lehrfach_nr
* @return true wenn erfolgreich sonst false
*/
function load($id)
{
$sql_query = "Select * from tbl_lehrfach where lehrfach_nr=$id";
if($result=pg_exec($sql_query))
{
if($row=pg_fetch_object($result))
{
$this->lehrfach_nr = $id;
$this->studiengang_kz = $row->studiengang_kz;
$this->fachbereich_id = $row->fachbereich_id;
$this->kurzbz = $row->kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->lehrevz = $row->lehrevz;
$this->farbe = $row->farbe;
//$this->lehrform = $row->lehrform;
$this->aktiv = $row->aktiv;
$this->ects = $row->ects;
$this->semester = $row->semester;
$this->sprache = $row->sprache;
return true;
}
}
return false;
}
/**
* Liefert die Tabellenelemente die den Kriterien der Parameter entsprechen
* @param $stg Studiengangs_kz
* $sem Semester
* $order Sortierkriterium
* $fachb fachbereichs_id
* @return array mit Fachbereichen oder false=fehler
*/
function getTab($stg='-1',$sem='-1', $order='lehrfach_nr', $fachb='-1',$lehre='')
{
$sql_query = "SELECT * FROM tbl_lehrfach";
if($stg!=-1 || $sem!=-1 || $fachb!=-1)
$sql_query .= " WHERE true";
if($stg!=-1)
{
$sql_query .= " AND studiengang_kz=$stg";
}
if($sem!=-1)
{
$sql_query .= " AND semester=$sem";
}
if($fachb!=-1)
{
$sql_query .= " AND fachbereich_id=$fachb";
}
if($lehre!='')
{
$sql_query .= " AND lehre=$lehre";
}
$sql_query .= " ORDER BY $order";
if($result=pg_exec($this->conn,$sql_query))
{
while($row=pg_fetch_object($result))
{
$l = new lehrfach($this->conn);
$l->lehrfach_nr = $row->lehrfach_nr;
$l->fachbereich_id = $row->fachbereich_id;
$l->kurzbz = $row->kurzbz;
$l->bezeichnung = $row->bezeichnung;
$l->lehrevz = $row->lehrevz;
$l->farbe = $row->farbe;
//$l->lehrform_kurzbz = $row->lehrform_kurzbz;
$l->aktiv = $row->aktiv;
$l->ects = $row->ects;
$l->studiengang_kz = $row->studiengang_kz;
$l->semester = $row->semester;
$this->fkterg[]=$l;
}
}
else
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
return true;
}
/**
* Alle Fachbereiche zurückgeben
* @return array mit Fachbereichen oder false=fehler
*/
function getAll()
{
if (is_null($this->conn))
{
return false;
}
$qry = "select * from tbl_lehrfach ".
"order by kurzbz";
//echo $qry;
if (!($erg = pg_exec($this->conn, $qry)))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
$result = array();
$num_rows = pg_numrows($erg);
for ($i = 0; $i < $num_rows; $i ++)
{
// Record holen
$row = pg_fetch_object($erg, $i);
// Instanz erzeugen
$lf = new lehrfach($this->conn);
$lf->lehrfach_nr = $row->lehrfach_nr;
$lf->fachbereich_id = $row->fachbereich_id;
$lf->kurzbz = $row->kurzbz;
$lf->bezeichnung = $row->bezeichnung;
$lf->lehrelink = $row->lehrelink;
$lf->farbe = $row->farbe;
//$lf->lehrform_kurzbz = $row->lehrform_kurzbz;
$lf->aktiv = $row->aktiv;
$lf->ects = $row->ects;
$lf->studiengang_kz = $row->studiengang_kz;
// in array speichern
$result[] = $lf;
}
return $result;
}
}
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class lehrfach
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehrfaecher = array(); // lehrfach Objekt
//Tabellenspalten
var $lehrfach_id; // integer
var $studiengang_kz; // integer
var $fachbereich_kurzbz;// integer
var $kurzbz; // varchar(12)
var $bezeichnung; // varchar(255)
var $farbe; // char(6)
var $aktiv; // boolean
var $semester; // smallint
var $sprache; // varchar(16)
// ***********************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional ein LF
// * @param $conn Datenbank-Connection
// * $lehrfach_nr Lehrfach das geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// ***********************************************************************
function lehrfach($conn, $lehrfach_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($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_id)
{
//lehrfach_nr auf Gueltigkeit pruefen
if(is_numeric($lehrfach_id) && $lehrfach_id!='')
{
$qry = "SELECT * FROM lehre.tbl_lehrfach WHERE lehrfach_id='$lehrfach_id'";
if(!$result=pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim lesen des Lehrfaches';
return false;
}
if($row = pg_fetch_object($result))
{
$this->lehrfach_id = $row->lehrfach_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$this->kurzbz = $row->kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->farbe = $row->farbe;
$this->aktiv = ($row->aktiv=='t'?true:false);
$this->semester = $row->semester;
$this->sprache = $row->sprache;
}
else
{
$this->errormsg = 'Es ist kein Lehrfach mit der ID '.$lehrfach_id.' vorhanden';
return false;
}
return true;
}
else
{
$this->errormsg = 'Die lehrfach_nr muss eine gueltige Zahl sein';
return false;
}
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->fachbereich_kurzbz)>16)
{
$this->errormsg = 'Fachbereich_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->kurzbz)>12)
{
$this->errormsg = 'Kurzbezeichnung darf nicht laenger als 12 Zeichen sein';
return false;
}
if(strlen($this->bezeichnung)>255)
{
$this->errormsg = 'Bezeichnung darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->farbe)>6)
{
$this->errormsg = 'Farbe darf nicht laenger als 6 Zeichen sein';
return false;
}
if(!is_bool($this->aktiv))
{
$this->errormsg = 'Aktiv muss ein boolscher Wert sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine Zahl sein';
return false;
}
if(strlen($this->sprache)>16)
{
$this->errormsg = 'Sprache 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 das Lehrfach in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = 'INSERT INTO lehre.tbl_lehrfach (lehrfach_id, studiengang_kz, fachbereich_kurzbz, kurzbz,
bezeichnung, farbe, aktiv, semester, sprache)
VALUES('.$this->addslashes($this->lehrfach_id).','.
$this->addslashes($this->studiengang_kz).','.
$this->addslashes($this->fachbereich_kurzbz).','.
$this->addslashes($this->kurzbz).','.
$this->addslashes($this->bezeichnung).','.
$this->addslashes($this->farbe).','.
($this->aktiv?'true':'false').','.
$this->addslashes($this->semester).','.
$this->addslashes($this->sprache).');';
}
else
{
//lehrfach_nr auf Gueltigkeit pruefen
if(!is_numeric($this->lehrfach_nr))
{
$this->errormsg = 'Lehrfach_nr muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE lehre.tbl_lehrfach SET'.
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
' 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_id='$this->lehrfach_id'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Lehrfaches:'.$qry;
return false;
}
}
}
?>
+165 -61
View File
@@ -1,62 +1,166 @@
<?php
class lehrform
{
/**
* @var string
*/
var $bezeichnung;
/**
* @var string
*/
var $kurzbz;
/**
* @var string
*/
var $errormsg;
/**
* @var resource
*/
var $conn;
function lehrform($conn)
{
$this->conn = $conn;
}
/**
* Alle Fachbereiche zurückgeben
* @return array mit Fachbereichen oder false=fehler
*/
function getAll()
{
if (is_null($this->conn))
{
return false;
}
$qry = "select lehrform_kurzbz, bezeichnung from tbl_lehrform ".
"order by lehrform_kurzbz";
//echo $qry;
if (!($erg = pg_exec($this->conn, $qry)))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
$result = array();
$num_rows = pg_numrows($erg);
for ($i = 0; $i < $num_rows; $i ++)
{
// Record holen
$row = pg_fetch_object($erg, $i);
// Instanz erzeugen
$lf = new lehrform($this->conn);
$lf->kurzbz = $row->lehrform_kurzbz;
$lf->bezeichnung = $row->bezeichnung;
// in array speichern
$result[] = $lf;
}
return $result;
}
}
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class lehrform
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehrform = array(); // lehrform Objekt
//Tabellenspalten
var $lehrform_kurbz; // varchar(8)
var $bezeichnung; // varchar (256)
var $verplanen; // boolean
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $lehrform_kurbz Lehrform die geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function lehrform($conn, $lehrform_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($lehrform_kurzbz != null)
$this->load($lehrform_kurzbz);
}
// *********************************************************
// * Laedt Lehrform mit der uebergebenen ID
// * @param $lehrform_kurzbz Lehrform die geladen werden soll
// *********************************************************
function load($lehrform_kurzbz)
{
$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';
return false;
}
if($row = pg_fetch_object($result))
{
$this->lehrform_kurbz = $row->lehrform_kurzbz;
$this->bezeichnung = $row->bezeichung;
$this->verplanen = ($row->verplanen?true:false);
}
else
{
$this->errormsg = 'Es ist keine Lehrform mit der Kurzbz '.$lehrform_kurzbz.' vorhanden';
return false;
}
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->lehrform_kurbz)>8)
{
$this->errormsg = 'Lehrform Kurzbezeichnung darf nicht laenger als 8 Zeichen sein.';
return false;
}
if(strlen($this->bezeichnung)>256)
{
$this->errormsg = 'Bezeichnung darf nicht laenger als 256 Zeichen sein';
return false;
}
if(!is_bool($this->verplanen))
{
$this->errormsg = 'Verplanen muss ein boolscher Wert 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 die Lehrform in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$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 lehre.tbl_lehrform SET'.
' bezeichnung='.$this->addslashes($this->bezeichnung).','.
' verplanen='.($this->verplanen?'true':'false').
" WHERE lehrform_kurzbz='$this->lehrform_kurzbz'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Lehrform:'.$qry;
return false;
}
}
}
?>
+124
View File
@@ -0,0 +1,124 @@
<?php
/**
* Klasse lehrfunktion (FAS-Online)
* @create 14-03-2006
*/
class lehrfunktion
{
var $conn; // @var resource DB-Connection
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var lehrfunktion Objekt
var $lehrfunktion_id; // @var integer
var $bezeichnung; // @var string
var $standardfaktor; // @var float
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
/**
* Konstruktor
* @param conn Connection zur DB
* lehrfkt_id ID der zu ladenden lehrfunktion
*/
function lehrfunktion($conn, $lehrfkt_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($lehrfkt_id != null)
$this->load($lehrfkt_id);
}
/**
* Laedt eine Lehrfunktion
* @param lehrfkt_id ID des Datensatzes der zu laden ist
* @return true wenn ok, false im Fehlerfall
*/
function load($lehrfkt_id)
{
if(!is_numeric($lehrfkt_id) || $lehrfkt_id == '')
{
$this->errormsg = 'lehrfunktion_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM lehrfunktion WHERE lehrfunktion_pk = '$lehrfkt_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row = pg_fetch_object($res))
{
$this->lehrfunktion_id = $row->lehrfunktion_pk;
$this->bezeichnung = $row->bezeichnung;
$this->standardfaktor = $row->standardfaktor;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Laedt alle Lehrfunktionen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM lehrfunktion;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$lehrfkt_obj = new lehrfunktion($this->conn);
$lehrfkt_obj->lehrfunktion_id = $row->lehrfunktion_id;
$lehrfkt_obj->bezeichnung = $row->bezeichnung;
$lehrfkt_obj->standardfaktor = $row->standardfaktor;
$lehrfkt_obj->updateamum = $row->creationdate;
$lehrfkt_obj->updatevon = $row->creationuser;
$this->result[] = $lehrfkt_obj;
}
return true;
}
/**
* Speichert den aktuellen Datensatz in die Datenbank
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
/**
* Loescht den Datensatz mit der ID die uebergeben wird
* @param lehrfkt_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($lehrfkt_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
}
?>
-457
View File
@@ -1,457 +0,0 @@
<?php
/*
$Header: /include/lehrstunde.class.php,v 1.2 2004/10/16 17:05:38 pam Exp $
$Log: lehrstunde.class.php,v $
Revision 1.2 2004/10/16 17:05:38 pam
Anpassung an neue DB-Struktur.
*/
/****************************************************************************
* @class Lehrstunde
* @author Christian Paminger
* @date 2004/8/21
* @version $Revision: 1.2 $
* Update: 21.10.2004 von Christian Paminger
* @brief Beschreibung einer Unterrichts-Stunde der Tabelle tbl_stundenplan
* Abhaengig: von ?
*****************************************************************************/
// include_once('mitarbeiter.class.php');
class lehrstunde
{
var $conn; // @brief Connection zur Datenbank
var $stundenplan_id;// @brief id in der Datenbank
var $unr; // @brief Unterrichtsnummer
var $lektor_uid; // @brief UID des Lektors
var $lektor_kurzbz; // @brief Kurzbezeichnung des Lektors
var $datum; // @brief Datum
var $stunde; // @brief Unterrichts-Stunde des Tages
var $ort_kurzbz; // @brief Ort in dem der Unterricht stattfindet
var $lehrfach_nr; // @brief Nummer des Lehrfachs
var $lehrfach; // @brief Name des Lehrfachs
var $lehrfach_bez; // @brief Voller Name des Lehrfachs
var $lehrform; // @brief Lehrform des Lehrfachs (Vorlesung, ...)
var $studiengang_kz;// @brief Kennzahl des Studiengangs
var $studiengang; // @brief Kurzbezeichnung des Studiengangs
var $sem; // @brief Semester
var $ver; // @brief Verband
var $grp; // @brief Gruppe
var $einheit_kurzbz;// @brief Kurzbezeichnung der Einheit
var $titel; // @brief Titel der Unterrichtsstunde
var $anmerkung; // @brief Anmerkungen zur Unterrichtsstunde
var $fix; // @brief true wenn diese Stunde nicht mehr verschoben wird
var $updateamum; // @brief letztes Update
var $updatevon; // @brief Update von wem?
var $errormsg; // @brief String fuer die Fehlermeldung
var $new; // @brief true wenns ein neuer Datensatz ist
var $reservierung; // @brief true wenns eine Reservierung ist
var $lehrstunden=array(); // @brief Objekt der eigenen Klasse
var $anzahl; // @brief Gesamte Anzahl der Stunden im Array
/** Konstruktor
*
*
*/
function lehrstunde($conn)
{
// Startvariablen setzen
$this->conn=$conn;
$this->new=TRUE;
}
/**
* Einen Datensatz laden
*
*/
function load($stundenplan_id,$stpl_table='stundenplandev')
{
///////////////////////////////////////////////////////////////////////
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_table.TABLE_ID;
$stpl_view=VIEW_BEGIN.$stpl_table;
$stpl_table=TABLE_BEGIN.$stpl_table;
$sql_query="SELECT * FROM $stpl_view WHERE $stpl_id=$stundenplan_id;";
//echo $sql_query.'<br>';
//Datenbankabfrage
if (! $stpl_tbl=pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_last_error($this->conn);
//echo $this->errormsg;
return false;
}
$this->anzahl=pg_numrows($stpl_tbl);
//Daten uebernehmen
if ($this->anzahl!=1)
{
$this->errormsg='Keinen Datensatz gefunden';
return false;
}
else
{
$row=pg_fetch_object ($stpl_tbl);
$this->stundenplan_id=$row->{$stpl_id};
$this->unr=$row->unr;
$this->lektor_uid=$row->uid;
$this->lektor_kurzbz=$row->lektor;
$this->datum=$row->datum;
$this->stunde=$row->stunde;
$this->ort_kurzbz=$row->ort_kurzbz;
$this->lehrfach=$row->lehrfach;
$this->lehrfach_bez=$row->lehrfach_bez;
$this->lehrfach_nr=$row->lehrfach_nr;
$this->lehrform=$row->lehrform;
$this->studiengang_kz=$row->studiengang_kz;
$this->studiengang=$row->stg_kurzbz;
$this->sem=$row->semester;
$this->ver=$row->verband;
$this->grp=$row->gruppe;
$this->einheit_kurzbz=$row->einheit_kurzbz;
$this->titel=$row->titel;
$this->anmerkung=$row->anmerkung;
$this->updateamum=$row->updateamum;
$this->updatevon=$row->updatevon;
$this->new=false;
}
return true;
}
/**
* Datensatz in DB speichern
*
*/
function save($uid, $stpl_table='stundenplandev')
{
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table=TABLE_BEGIN.$stpl_table;
if ($this->new)
{
// insert
}
else
{
// update
$sql_query='UPDATE '.$stpl_table;
$sql_query.=" SET datum='$this->datum', stunde=$this->stunde";
$sql_query.=", ort_kurzbz='$this->ort_kurzbz', uid='$this->lektor_uid'";
$sql_query.=", updateamum=now(), updatevon='$uid'";
$sql_query.=" WHERE $stpl_id=$this->stundenplan_id";
//echo $sql_query."<br>";
//Datenbankabfrage
if (! @pg_query($this->conn, $sql_query))
{
$this->errormsg=$sql_query.pg_last_error($this->conn);
//echo $this->errormsg;
return false;
}
//$this->errormsg.=$sql_query;
}
return true;
}
/**
* Datensatz aus DB entfernen
* @param id ID des Datensatzes in der Tabelle
* @param stpl_table Name der Tabelle
*
*/
function delete($id, $stpl_table='stundenplandev')
{
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table=TABLE_BEGIN.$stpl_table;
// Delete SQL vorbereiten
$sql_query='DELETE FROM '.$stpl_table;
$sql_query.=" WHERE $stpl_id=$id";
//echo $sql_query."<br>";
//Datenbankrequest
if (! pg_query($this->conn, $sql_query))
{
$this->errormsg=$sql_query.pg_last_error($this->conn);
//echo $this->errormsg;
return false;
}
else
return true;
}
/**
* @param type (student, lektor, lehrverband, einheit, ort, ....)
* @param datum_von (inklusive) Startdatum der Abfrage
* @param datum_bis (exklusive) Enddatum der Abfrage
* @param uid (des Lektors oder Studenten) kann auch NULL sein
* @param ort_kurzbz (Kurzbezeichnung des Orts) kann auch NULL sein
* @param studiengang_kz
* @param sem
* @param ver
* @param grp
* @param einheit_kurzbz
*
*/
function load_lehrstunden($type, $datum_von, $datum_bis, $uid, $ort_kurzbz=NULL, $studiengang_kz=NULL, $sem=NULL, $ver=NULL, $grp=NULL, $einheit_kurzbz=NULL, $stpl_view='stundenplan')
{
///////////////////////////////////////////////////////////////////////
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_view.TABLE_ID;
$stpl_view=VIEW_BEGIN.$stpl_view;
// Datum im Format YYYY-MM-TT ?
if (!ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$datum_von) )
{
$this->errormsg='Fehler: Startdatum hat falsches Format!';
return -1;
}
if (!ereg("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})",$datum_bis) )
{
$this->errormsg='Fehler: Enddatum hat falsches Format!';
return -1;
}
// Person
if (($type=='student' || $type=='lektor') && $uid==NULL)
{
$this->errormsg='Fehler: uid der Person ist nicht gesetzt';
return -1;
}
// Ort
if ($type=='ort' && $ort_kurzbz==NULL)
{
$this->errormsg='Fehler: Kurzbezeichnung des Orts ist nicht gesetzt';
return -1;
}
// Einheit
if ($type=='einheit' && $einheit_kurzbz==NULL)
{
$this->errormsg='Fehler: Kurzbezeichnung der Einheit ist nicht gesetzt';
return -1;
}
///////////////////////////////////////////////////////////////////////
// Zusaetzliche Daten ermitteln
// Personendaten
if ($type=='student')
{
// Lehrverband ermitteln
$sql_query="SELECT studiengang_kz, semester, verband, gruppe FROM tbl_student WHERE uid='$uid'";
//echo $sql_query;
if (! $result=@pg_query($this->conn, $sql_query) )
{
$this->errormsg=pg_last_error($this->conn);
return -2;
}
$num_rows=pg_num_rows($result);
if ($num_rows>0)
$row=pg_fetch_object($result);
else
{
$this->errormsg='Fehler: Student ('.$uid.') wurde nicht gefunden!';
return -2;
}
$studiengang_kz=$row->studiengang_kz;
$sem=$row->semester;
$ver=$row->verband;
$grp=$row->gruppe;
// Einheiten ermitteln
$sql_query="SELECT einheit_kurzbz FROM tbl_einheitstudent WHERE uid='$uid'";
//echo $sql_query;
if (! $result_einheit=@pg_query($this->conn, $sql_query) )
{
$this->errormsg=pg_last_error($this->conn);
return -2;
}
$num_rows_einheit=pg_num_rows($result_einheit);
}
///////////////////////////////////////////////////////////////////////
// Stundenplandaten ermitteln
// Abfrage generieren
$sql_query_stdplan='SELECT * FROM '.$stpl_view;
$sql_query=" WHERE datum>='$datum_von' AND datum<'$datum_bis'";
if ($type=='lektor')
$sql_query.=" AND uid='$uid'";
elseif ($type=='ort')
$sql_query.=" AND ort_kurzbz='$ort_kurzbz'";
elseif ($type=='einheit')
$sql_query.=" AND einheit_kurzbz='$einheit_kurzbz'";
else
{
$sql_query.=' AND ( (studiengang_kz='.$studiengang_kz;
if ($sem!='0' && $sem!=null && $sem!=0 && $sem!='')
{
$sql_query.=" AND (semester=$sem OR semester IS NULL";
if ($type=='student')
$sql_query.=' OR semester='.($sem+1);
$sql_query.=')';
}
if ($ver!='0' && $ver!=null && $ver!='')
$sql_query.=" AND (verband='$ver' OR verband IS NULL OR verband='0' OR verband='')";
if ($grp!='0' && $grp!=null && $grp!='')
$sql_query.=" AND (gruppe='$grp' OR gruppe IS NULL OR gruppe='0' OR gruppe='')";
if ($type=='student')
$sql_query.=' AND einheit_kurzbz IS NULL';
$sql_query.=' )';
for ($i=0;$i<$num_rows_einheit;$i++)
{
$row=pg_fetch_object($result_einheit,$i);
$sql_query.=" OR einheit_kurzbz='$row->einheit_kurzbz'";
}
$sql_query.=')';
}
$sql_query.=' ORDER BY datum, stunde, studiengang_kz, semester, verband, gruppe, einheit_kurzbz, uid';
$sql_query_stdplan.=$sql_query;
//echo '<label>'.htmlspecialchars($sql_query_stdplan).'</label>';
//Datenbankabfrage
if (! $stpl_tbl=pg_query($this->conn, $sql_query_stdplan))
{
$this->errormsg=pg_last_error($this->conn);
//echo $this->errormsg;
return -2;
}
$num_rows=pg_numrows($stpl_tbl);
$this->anzahl=$num_rows;
//Daten uebernehmen
for ($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object ($stpl_tbl, $i);
$stunde=new lehrstunde($this->conn);
$stunde->stundenplan_id=$row->{$stpl_id};
$stunde->unr=$row->unr;
$stunde->lektor_uid=$row->uid;
$stunde->lektor_kurzbz=$row->lektor;
$stunde->datum=$row->datum;
$stunde->stunde=$row->stunde;
$stunde->ort_kurzbz=$row->ort_kurzbz;
$stunde->lehrfach=$row->lehrfach;
$stunde->lehrfach_bez=$row->lehrfach_bez;
$stunde->lehrfach_nr=$row->lehrfach_nr;
$stunde->lehrform=$row->lehrform;
if ($row->farbe!=' ' && $row->farbe!=null)
$stunde->farbe=$row->farbe;
else
$stunde->farbe='FFFFFF';
$stunde->studiengang_kz=$row->studiengang_kz;
$stunde->studiengang=$row->stg_kurzbz;
$stunde->sem=$row->semester;
$stunde->ver=$row->verband;
$stunde->grp=$row->gruppe;
$stunde->einheit_kurzbz=$row->einheit_kurzbz;
$stunde->titel=$row->titel;
$stunde->anmerkung=$row->anmerkung;
$stunde->updateamum=$row->updateamum;
$stunde->updatevon=$row->updatevon;
$stunde->reservierung=false;
$this->lehrstunden[$i]=$stunde;
}
///////////////////////////////////////////////////////////////////////
// Reservierungsdaten ermitteln
// Datenbankabfrage generieren
$sql_query_reservierung='SELECT * FROM vw_reservierung';
$sql_query_reservierung.=$sql_query;
//echo $sql_query_reservierung;
//Datenbankabfrage
if (! $stpl_tbl=pg_query($this->conn, $sql_query_reservierung))
{
$this->errormsg=pg_last_error($this->conn);
return -2;
}
$num_rows=pg_numrows($stpl_tbl);
$this->anzahl+=$num_rows;
//Daten uebernehmen
for ($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object ($stpl_tbl, $i);
$stunde=new lehrstunde($this->conn);
$stunde->reservierung=true;
$stunde->stundenplan_id=$row->reservierung_id;
$stunde->unr=0;
$stunde->lektor_uid=$row->uid;
$stunde->lektor_kurzbz=$row->uid;
$stunde->datum=$row->datum;
$stunde->stunde=$row->stunde;
$stunde->ort_kurzbz=$row->ort_kurzbz;
//$stunde->lehrfach_nr=$row->lehrfach_nr;
$stunde->lehrfach=$row->titel;
$stunde->lehrfach_bez=$row->beschreibung;
$stunde->studiengang_kz=$row->studiengang_kz;
$stunde->studiengang=$row->stg_kurzbz;
$stunde->sem=$row->semester;
$stunde->ver=$row->verband;
$stunde->grp=$row->gruppe;
$stunde->einheit_kurzbz=$row->einheit_kurzbz;
$stunde->titel=$row->titel;
$stunde->anmerkung=$row->beschreibung;
$this->lehrstunden[]=$stunde;
//var_dump($stunde);
}
//echo $this->anzahl;
return $this->anzahl;
}
/*************************************************************************
* Prueft die geladene Lehrveranstaltung auf Kollisionen im Stundenplan.
* Rueckgabewert 'false' und die Fehlermeldung steht in '$this->errormsg'.
* @param string datum gewuenschtes Datum YYYY-MM-TT
* @param integer stunde gewuenschte Stunde
* @param string ort gewuenschter Ort
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
* @return boolean true=ok, false=fehler
*************************************************************************/
function kollision($stpl_table='stundenplandev')
{
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table=VIEW_BEGIN.$stpl_table;
// Datenbank abfragen
$sql_query="SELECT $stpl_id AS id, lektor, stg_kurzbz, ort_kurzbz, semester, verband, gruppe, einheit_kurzbz, datum, stunde FROM $stpl_table
WHERE datum='$this->datum' AND stunde=$this->stunde AND (ort_kurzbz='$this->ort_kurzbz' OR ";
if ($this->lektor_uid!='_DummyLektor')
$sql_query.="(uid='$this->lektor_uid') AND uid!='_DummyLektor' OR ";
$sql_query.="(studiengang_kz=$this->studiengang_kz AND semester=$this->sem";
if ($this->ver!=null && $this->ver!='' && $this->ver!=' ')
$sql_query.=" AND (verband='$this->ver' OR verband IS NULL OR verband='' OR verband=' ')";
if ($this->grp!=null && $this->grp!='' && $this->grp!=' ')
$sql_query.=" AND (gruppe='$this->grp' OR gruppe IS NULL OR gruppe='' OR gruppe=' ')";
if ($this->einheit_kurzbz!=null && $this->einheit_kurzbz!='' && $this->einheit_kurzbz!=' ')
$sql_query.=" AND (einheit_kurzbz='$this->einheit_kurzbz')";
$sql_query.=")) AND unr!=$this->unr";
//echo $sql_query.'<br>';
if (! $erg_stpl=pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_last_error($this->conn);
return true;
}
$anz=pg_numrows($erg_stpl);
//Check
if ($anz==0)
return false;
else
{
$row=pg_fetch_object($erg_stpl);
$this->errormsg="Kollision ($stpl_table): $row->id|$row->lektor|$row->ort_kurzbz|$row->stg_kurzbz-$row->semester$row->verband$row->gruppe$row->einheit_kurzbz - $row->datum/$row->stunde";
return true;
}
}
}
?>
+418 -362
View File
@@ -1,392 +1,448 @@
<?php
/******************************************************************************
* Basisklasse fuer Lehrveranstaltung
* @author Christian Paminger, Werner Masik
* @version 1.0
* @updated 12-Mar-2005
*****************************************************************************/
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse lehrveranstaltung (FAS-Online)
* @create 06-12-2006
*/
class lehrveranstaltung
{
// @var integer interne Lehrveranstaltungs-ID (Zaehler aus DB)
var $lehrveranstaltung_id;
// @var string Lehrveranstaltungsnummer
var $lvnr;
// @var string Unterrichtsnummer; zum patizipieren verwendet
var $unr;
// @var string
var $einheit_kurzbz;
// @var string
var $lektor;
// @var integer
var $lehrfach_nr;
// @var string Kurzbz vom Lehrfach
var $lehrfach;
// @var string Kurzbz der Lehrform
var $lehrform;
// @var string lange Beschreibung vom Lehrfach
var $lehrfach_bez;
// @var string Farbe vom Lehrfach
var $lehrfach_farbe;
// @var integer
var $studiengang_kz;
// @var integer
var $fachbereich_id;
// @var string beschreibung von foreign key
var $fachbereich;
// @var integer
var $semester;
// @var string
var $verband;
// @var string
var $gruppe;
// @var string
var $raumtyp;
// @var string
var $raumtypalternativ;
// @var integer
var $semesterstunden;
// @var integer
var $stundenblockung;
// @var integer
var $wochenrythmus;
// @var integer
var $start_kw;
// @var string
var $anmerkung;
// @var string
var $studiensemester_kurzbz;
// @var string
var $fas_id;
// @var boolean;
var $new=true;
// @var DB-Handle;
var $conn;
// @var string
var $errormsg;
function lehrveranstaltung($conn, $id='')
{
$this->conn=$conn;
$this->errormsg='';
if (strlen($id)>0)
{
$this->lehrveranstaltung_id=$id;
$this->load($id);
}
}
/*************************************************************************
* Prueft die geladene Lehrveranstaltung auf Kollisionen im Stundenplan.
* Rueckgabewert 'false' und die Fehlermeldung steht in '$this->errormsg'.
* @param string datum gewuenschtes Datum YYYY-MM-TT
* @param integer stunde gewuenschte Stunde
* @param string ort gewuenschter Ort
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
* @return boolean true=ok, false=fehler
*************************************************************************/
function check_lva($datum,$stunde,$ort,$stpl_table)
{
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table=TABLE_BEGIN.$stpl_table;
/*// Connection holen
if (is_null($conn=$this->getConnection()))
{
return false;
}*/
// Datenbank abfragen
$sql_query="SELECT $stpl_id FROM $stpl_table
WHERE datum='$datum' AND stunde=$stunde
AND ((ort_kurzbz='$ort' OR (uid='$this->lektor' AND uid!='_DummyLektor'))
AND unr!=$this->unr)"; //AND lehrveranstaltung_id!=$this->lehrveranstaltung_id
//$this->errormsg=$sql_query;
if (! $erg_stpl=pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_last_error($this->conn);
//echo $this->errormsg;
return false;
}
$anzahl=pg_numrows($erg_stpl);
//Check
if ($anzahl==0)
return true;
else
{
$row=pg_fetch_row($erg_stpl);
$this->errormsg="Kollision mit StundenplanID($stpl_table.$stpl_id): $row[0]";
return false;
}
}
/*************************************************************************
* Speichert die geladene Lehrveranstaltung im Stundenplan.
* Rueckgabewert 'false' und die Fehlermeldung steht in '$this->errormsg'.
* @param string datum gewuenschtes Datum YYYY-MM-TT
* @param integer stunde gewuenschte Stunde
* @param string ort gewuenschter Ort
* @param string db_stpl_table Tabllenname des Stundenplans im DBMS
* @param string user UID des aktuellen Bentzers
* @return boolean true=ok, false=fehler
*************************************************************************/
function save_stpl($datum,$stunde,$ort,$stpl_table, $user)
{
// Parameter Checken
// Bezeichnung der Stundenplan-Tabelle und des Keys
$stpl_id=$stpl_table.TABLE_ID;
$stpl_table=TABLE_BEGIN.$stpl_table;
// Datenbank abfragen
$sql_query="INSERT INTO $stpl_table
(unr,uid,datum, stunde, ort_kurzbz,lehrfach_nr,lehrform_kurzbz,studiengang_kz,semester,verband,
gruppe, einheit_kurzbz, titel, anmerkung, updatevon, lehrveranstaltung_id)
VALUES ($this->unr,'$this->lektor','$datum',$stunde,
'$ort',$this->lehrfach_nr, '$this->lehrform', $this->studiengang_kz,$this->semester,
'$this->verband','$this->gruppe'";
if ($this->einheit_kurzbz==null)
$sql_query.=',NULL';
else
$sql_query.=",'$this->einheit_kurzbz'";
$sql_query.=",'$this->titel','$this->anmerkung','$user',$this->lehrveranstaltung_id)";
//$this->errormsg=$sql_query.'<br>';
//return false;
if (! $erg_stpl=pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_last_error($this->conn);
//echo $this->errormsg;
return false;
}
return true;
}
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $lehrveranstaltungen = array(); // @var lehrveranstaltung Objekt
var $lehrveranstaltung_id; // @var serial
var $studiengang_kz; //@var integer
var $bezeichnung; //@var string
var $kurzbz; //@var string
var $semester; //@var smallint
var $ects; //@var numeric(5,2)
var $semesterstunden; //@var smallint
var $anmerkung; //@var string
var $lehre; //@var boolean
var $lehreverzeichnis; //@var string
var $aktiv; //@var boolean
var $ext_id; //@var bigint
var $insertamum; //@var timestamp
var $insertvon; //@var string
var $planfaktor; //@var numeric(3,2)
var $planlektoren; //@var integer
var $planpersonalkosten; //@var numeric(7,2)
var $updateamum; //@var timestamp
var $updatevon; //@var string
/**
* Ladet die Attribute der LVA aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
* Konstruktor
* @param $conn Connection zur Datenbank
* $lehrveranstaltung_id ID der zu ladenden Lehrveranstaltung
*/
function load($id='')
function lehrveranstaltung($conn, $lehrveranstaltung_id=null)
{
// optional: id setzen
if ($id!='')
$this->lehrveranstaltung_id=$id;
// id vorhanden?
if (strlen($this->lehrveranstaltung_id)==0)
{
$this->errormsg='<i>lehrveranstaltung_id</i> nicht gesetzt.';
return false;
}
// LVA-Daten holen
$sql_query='SELECT * FROM tbl_lehrveranstaltung WHERE lehrveranstaltung_id='.$this->lehrveranstaltung_id;
//$this->errormsg.=$sql_query;
//return false;
if(!($erg=pg_exec($this->conn, $sql_query)))
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
if($num_rows!=1)
{
$this->errormsg.="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
$row=pg_fetch_object($erg,0);
$this->lvnr=$row->lvnr;
$this->unr=$row->unr;
$this->einheit_kurzbz=$row->einheit_kurzbz;
$this->lektor=$row->lektor;
$this->lehrfach_nr=$row->lehrfach_nr;
$this->lehrform=$row->lehrform_kurzbz;
$this->studiengang_kz=$row->studiengang_kz;
$this->fachbereich_id=$row->fachbereich_id;
$this->semester=$row->semester;
$this->verband=$row->verband;
$this->gruppe=$row->gruppe;
$this->raumtyp=$row->raumtyp;
$this->raumtypalternativ=$row->raumtypalternativ;
$this->semesterstunden=$row->semesterstunden;
$this->stundenblockung=$row->stundenblockung;
$this->wochenrythmus=$row->wochenrythmus;
$this->start_kw=$row->start_kw;
$this->anmerkung=$row->anmerkung;
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
//$this->fas_id=$row->fas_id;
$this->new=false;
return true;
$this->conn = $conn;
if($lehrveranstaltung_id != null)
$this->load($lehrveranstaltung_id);
}
/**
* @return boolean true=ok, false=fehler
* Laedt einen Datensatz
* @param $lehrveranstaltung_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($lehrveranstaltung_id)
{
//gueltigkeit von lehrveranstaltung_id pruefen
if(!is_numeric($lehrveranstaltung_id) || $lehrveranstaltung_id == '')
{
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
if($row = pg_fetch_object($res))
{
$this->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$this->art = $row->art;
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
$this->beschreibung = $row->beschreibung;
$this->ectspunkte = $row->ectspunkte;
$this->fachbereich_id = $row->fachbereich_fk;
$this->kategorie = $row->kategorie;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->name = $row->name;
$this->notenlektor_id = $row->notenlektor_fk;
$this->nummer = $row->nummer;
$this->nummerintern = $row->nummerintern;
$this->sortierung = $row->sortierung;
$this->studentenwochenstunden = $row->studentenwochenstunden;
$this->studiengang_id = $row->studiengang_fk;
$this->studiensemester_id = $row->studiensemester_fk;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
return true;
}
/**
* Liefert alle Lehrveranstaltungen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
{
$lv_obj = new lehrveranstaltung($this->conn);
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$this->result[] = $lv_obj;
}
return true;
}
/**
* Liefert alle Lehrveranstaltungen zu einem Studiengang/Studiensemester/Ausbildungssemester
* @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_lva($studiengang_id, $studiensemester_id=null, $ausbildungssemester_id=null)
{
//Variablen 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 sein';
return false;
}
if($ausbildungssemester_id != null && (!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == ''))
{
$this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein';
return false;
}
//Select Befehl zusammenbauen
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung 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'";
$qry .= " ORDER BY name";
//Datensaetze laden
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
{
$lv_obj = new lehrveranstaltung($this->conn);
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$this->result[] = $lv_obj;
}
return true;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
//$this->name = str_replace("'",'´',$this->name);
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
$this->kurzbz = str_replace("'",'´',$this->kurzbz);
$this->anmerkung = str_replace("'",'´',$this->anmerkung);
//Laenge Pruefen
if(strlen($this->bezeichnung)>128)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->ext_id</b> - $this->bezeichnung";
return false;
}
if(strlen($this->kurzbz)>16)
{
$this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->kurzbz";
return false;
}
if(strlen($this->anmerkung)>64)
{
$this->errormsg = "Anmerkung darf nicht laenger als 64 Zeichen sein bei <b>$this->ext_id</b> - $this->anmerkung";
return false;
}
if(strlen($this->lehreverzeichnis)>16)
{
$this->errormsg = "Lehreverzeichnis darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->lehreverzeichnis";
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = "Studiengang_kz ist ungueltig bei <b>$this->ext_id</b> - $this->studiengang_kz";
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = "Semester ist ungueltig bei <b>$this->ext_id</b> - $this->semester";
return false;
}
if($this->planfaktor!='' && !is_numeric($this->planfaktor))
{
$this->errormsg = "Planfaktor ist ungueltig bei <b>$this->ext_id</b> - $this->planfaktor";
return false;
}
if($this->semesterstunden!='' && !is_numeric($this->semesterstunden))
{
$this->errormsg = "Semesterstunden ist ungueltig bei <b>$this->ext_id</b> - $this->semesterstunden";
return false;
}
if($this->planlektoren!='' && !is_numeric($this->planlektoren))
{
$this->errormsg = "Planlektoren ist ungueltig bei <b>$this->ext_id</b> - $this->planlektoren";
return false;
}
if($this->ects!='' && !is_numeric($this->ects))
{
$this->errormsg = "ECTS sind ungueltig bei <b>$this->ext_id</b> - $this->ects";
return false;
}
if($this->ects>40)
{
$this->errormsg = "ECTS größer als 40 bei <b>$this->ext_id</b> - $this->ects";
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
global $auth;
// Daten zur Person speichern
if (!person::save()) {
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
}
if ($this->new) {
$sql_query="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
"lektor,lehrfach_nr,lehrform_kurzbz,studiengang_kz,fachbereich_id,semester,verband,".
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
"wochenrythmus,start_kw,anmerkung)".
"values(".
"'".$this->lvnr."',".
"'".$this->unr."',".
"'".$this->einheit_kurzbz."',".
"'".$this->lektor."',".
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
"'".$this->lehrform."',".
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
(strlen($this->semester)>0?$this->semester:NULL).",".
"'".$this->verband."',".
"'".$this->gruppe."',".
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
")";
} else
if($this->new)
{
$sql_query="UPDATE tbl_lehrveranstaltung ".
"SET lvnr='".$this->lvnr."',".
"unr='".$this->unr."',".
"einheit_kurzbz='".$this->einheit_kurzbz."',".
"lektor='".$this->lektor."',".
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
"lehrform_kurzbz=".(strlen($this->lehrform)>0?$this->lehrform:NULL).",".
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
"verband='".$this->verband."',".
"gruppe='".$this->gruppe."',".
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
//Neuen Datensatz anlegen
$qry = 'INSERT INTO lehre.tbl_lehrveranstaltung (studiengang_kz, bezeichnung, kurzbz,
semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, ext_id, insertamum,
insertvon, planfaktor, planlektoren, planpersonalkosten, updateamum, updatevon) VALUES ('.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->kurzbz).', '.
$this->addslashes($this->semester).', '.
$this->addslashes($this->ects).', '.
$this->addslashes($this->semesterstunden).', '.
$this->addslashes($this->anmerkung).', '.
($this->lehre?'true':'false').','.
$this->addslashes($this->lehreverzeichnis).', '.
($this->aktiv?'true':'false').', '.
$this->addslashes($this->ext_id).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->planfaktor).', '.
$this->addslashes($this->planlektoren).', '.
$this->addslashes($this->planpersonalkosten).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).');';
}
//echo "<br>".$sql_query;
if(!($erg=pg_exec($this->conn, $sql_query)))
else
{
$this->errormsg=pg_errormessage($this->conn);
//bestehenden Datensatz akualisieren
//Pruefen ob lehrveranstaltung_id eine gueltige Zahl ist
if(!is_numeric($this->lehrveranstaltung_id) || $this->lehrveranstaltung_id == '')
{
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE lehre.tbl_lehrveranstaltung SET '.
//'lehrveranstaltung_id= '.$this->addslashes($this->lehrveranstaltung_id) .', '.
'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) .', '.
'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 ext_id = '.$this->addslashes($this->lehrveranstaltung_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', '".$this->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';
return false;
}
return true;
}
}
/**
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
* Fehlermeldung liegt in errormsg.
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
* @param string $einheit_kurzbz Einheit
* @param string grp Gruppe
* @param string ver Verband
* @param integer sem Semester
* @param integer stg_kz Kennzahl des Studiengangs
* @return variabel Array mit LVA; <b>false</b> bei Fehler
* Loescht einen Datensatz
* @param $lehrveranstaltung_id ID des zu loeeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function getLehrveranstaltungSTPL($db_stpl_table,$studiensemester, $type, $stg_kz, $sem, $lektor, $ver=null, $grp=null, $einheit=null)
function delete($lehrveranstaltung_id)
{
$lva_stpl_view=VIEW_BEGIN.'lva_'.$db_stpl_table;
if (strlen($studiensemester)<=0)
//lehrveranstaltung_id auf gueltigkeit pruefen
if(!is_numeric($lehrveranstaltung_id) || $lehrveranstaltung_id == '')
{
$this->errormsg='Ausbildungssemester ist nicht gesetzt!';
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
}
else $where=" studiensemester_kurzbz='$studiensemester'";
if ($type=='lektor')
$where.=" AND lektor_uid='$lektor'";
elseif ($type=='einheit')
$where.=" AND einheit='$einheit'";
elseif ($type=='verband')
//Loeschen des Datensatzes
$qry = "DELETE FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
if(pg_query($this->conn, $qry))
{
$where.=" AND studiengang_kz='$stg_kz'";
if ($sem>0)
$where.=" AND semester=$sem";
if (strlen($ver)>0 && $ver!=' ')
$where.=" AND verband='$ver'";
if (strlen($grp)>0 && $grp!=' ')
$where.=" AND gruppe='$grp' ";
//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', '".$this->addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
$sql_query='SELECT *, semesterstunden-verplant::smallint AS offenestunden
FROM '.$lva_stpl_view.' JOIN tbl_lehrform ON '.$lva_stpl_view.'.lehrform=tbl_lehrform.lehrform_kurzbz
WHERE '.$where.' AND verplanen ORDER BY offenestunden DESC, lehrfach, lehrform, semester, verband, gruppe, einheit;';
//$this->errormsg=$sql_query;
//return false;
if(!($erg=@pg_exec($this->conn, $sql_query)))
else
{
$this->errormsg=pg_errormessage($this->conn);
$this->errormsg = 'Fehler beim loeschen des Datensatzes';
return false;
}
$num_rows=pg_numrows($erg);
$l=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
//$l[$row->unr]=new lehrveranstaltung();
$l[$row->unr]->lehrveranstaltung_id[]=$row->lehrveranstaltung_id;
$l[$row->unr]->lvnr[]=$row->lvnr;
$l[$row->unr]->unr=$row->unr;
$l[$row->unr]->fachbereich_id=$row->fachbereich_id;
$l[$row->unr]->fachbereich=$row->fachbereich_kurzbz;
$l[$row->unr]->lehrfach_nr=$row->lehrfach_nr;
$l[$row->unr]->lehrfach[]=$row->lehrfach;
$l[$row->unr]->lehrfach_bez[]=$row->lehrfach_bez;
$l[$row->unr]->lehrfach_farbe[]=$row->lehrfach_farbe;
$l[$row->unr]->lehrform[]=$row->lehrform;
$l[$row->unr]->lektor_uid[]=$row->lektor_uid;
$l[$row->unr]->lektor[]=trim($row->lektor);
$l[$row->unr]->stg_kz[]=$row->studiengang_kz;
$l[$row->unr]->stg[]=$row->studiengang;
$l[$row->unr]->einheit[]=$row->einheit;
$l[$row->unr]->semester[]=$row->semester;
$l[$row->unr]->verband[]=$row->verband;
$l[$row->unr]->gruppe[]=$row->gruppe;
$l[$row->unr]->raumtyp=$row->raumtyp;
$l[$row->unr]->raumtypalternativ=$row->raumtypalternativ;
$l[$row->unr]->stundenblockung[]=$row->stundenblockung;
$l[$row->unr]->wochenrythmus[]=$row->wochenrythmus;
$l[$row->unr]->semesterstunden[]=$row->semesterstunden;
$l[$row->unr]->start_kw[]=$row->start_kw;
$l[$row->unr]->anmerkung[]=$row->anmerkung;
$l[$row->unr]->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$l[$row->unr]->verplant[]=$row->verplant;
$l[$row->unr]->offenestunden[]=$row->offenestunden;
if (isset($l[$row->unr]->verplant_gesamt))
$l[$row->unr]->verplant_gesamt+=$row->verplant;
else
$l[$row->unr]->verplant_gesamt=$row->verplant;
$lvb=$row->studiengang.'-'.$row->semester;
if ($row->verband!='' && $row->verband!=' ' && $row->verband!='0' && $row->verband!=null)
$lvb.=$row->verband;
if ($row->gruppe!='' && $row->gruppe!=' ' && $row->gruppe!='0' && $row->gruppe!=null)
$lvb.=$row->gruppe;
if ($row->einheit!='' && $row->einheit!=null)
$l[$row->unr]->lehrverband[]=$row->einheit;
else
$l[$row->unr]->lehrverband[]=$lvb;
}
return $l;
}
}
}
?>
-423
View File
@@ -1,423 +0,0 @@
<?php
/**
* Basisklasse fuer Studenten
* @author Christian Paminger, Werner Masik
* @version 1.0
* @updated 03-Feb-2005
*/
class lfvt
{
/**
* interne Lehrveranstaltungs-ID (Z?hler aus DB)
* @var integer
*/
var $lehrveranstaltung_id;
/**
* Lehrveranstaltungsnummer
* @var string
*/
var $lvnr;
/**
* Unterrichtsnummer; zum patizipieren verwendet
* @var string
*/
var $unr;
/**
* @var string
*/
var $einheit_kurzbz;
/**
* @var string ID aus Datenbank
*/
var $lektor;
/**
* @var string Lektor-Nachname+Vorname+Titel zum leichteren Anzeigen
*/
var $lektorPrettyPrint;
/**
* @var integer
*/
var $lehrfach_nr;
/**
* @var string
*/
var $lehrform;
/**
* @var integer
*/
var $studiengang_kz;
/**
* @var integer
*/
var $fachbereich_id;
/**
* @var integer
*/
var $semester;
/**
* @var string
*/
var $verband;
/**
* @var string
*/
var $gruppe;
/**
* @var string
*/
var $raumtyp;
/**
* @var string
*/
var $raumtypalternativ;
/**
* @var integer
*/
var $semesterstunden;
/**
* @var integer
*/
var $stundenblockung;
/**
* @var integer
*/
var $wochenrythmus;
/**
* @var integer
*/
var $start_kw;
/**
* @var string
*/
var $anmerkung;
/**
* @var string
*/
var $studiensemester_kurzbz;
/**
* @var string
*/
var $fas_id;
/**
* @var boolean;
*/
var $new=true;
/**
* @var string
*/
var $errormsg;
/**
* @var string beschreibung von foreign key
*/
var $fachbereich;
/**
* @var string beschreibung von foreign key
*/
var $lehrfach;
/**
* @var string beschreibung von foreign key
*/
var $conn;
function lfvt($conn,$id='')
{
$this->conn=$conn;
if (strlen($id)>0) {
$this->$lehrveranstaltung_id=$id;
$this->load();
}
}
/**
* Ladet die Attribute der LVA aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function load($id='')
{
// optional: id setzen
if (strlen($id)>0)
$this->$lehrveranstaltung_id=$id;
// id vorhanden?
if (strlen($this->$this->$lehrveranstaltung_id)==0) {
$this->errormsg='<i>lehrveranstaltung_id</i> nicht gesetzt.';
return false;
}
// LVA-Daten holen
$sql_query="SELECT lva.* ".
"FROM tbl_lehrveranstaltung as lva ".
"WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
if(!($erg=pg_exec($this->conn, $sql_query)))
die(pg_errormessage($this->conn));
$num_rows=pg_numrows($erg);
if($num_rows!=1) {
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
$row=pg_fetch_object($erg,0);
$this->lvnr=$row->lvnr;
$this->unr=$row->unr;
$this->einheit_kurzbz=$row->einheit_kurzbz;
$this->lektor=$row->lektor;
$this->lehrfach_nr=$row->lehrfach_nr;
$this->lehrform=$row->lehrform_kurzbz;
$this->studiengang_kz=$row->studiengang_kz;
$this->fachbereich_id=$row->fachbereich_id;
$this->semester=$row->semester;
$this->verband=$row->verband;
$this->gruppe=$row->gruppe;
$this->raumtyp=$row->raumtyp;
$this->raumtypalternativ=$row->raumtypalternativ;
$this->semesterstunden=$row->semesterstunden;
$this->stundenblockung=$row->stundenblockung;
$this->wochenrythmus=$row->wochenrythmus;
$this->start_kw=$row->start_kw;
$this->anmerkung=$row->anmerkung;
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
//$this->fas_id=$row->fas_id;
$this->new=false;
return true;
}
/**
* @return boolean true=ok, false=fehler
*/
function save()
{
global $auth;
if (!isset($this->unr)) {
$this->errormsg='unr fehlt';
return false;
}
if (!isset($this->lvnr)) {
$this->errormsg='lvnr fehlt';
return false;
}
if (!isset($this->lektor)) {
$this->errormsg='lektor fehlt';
return false;
}
if (!isset($this->lehrfach_nr)) {
$this->errormsg='lehrfach_nr fehlt';
return false;
}
if (!isset($this->lehrform))
{
$this->errormsg='lehrform fehlt';
return false;
}
if (!isset($this->studiengang_kz)) {
$this->errormsg='studiengang_kz fehlt';
return false;
}
if (!isset($this->fachbereich_id)) {
$this->errormsg='fachbereich_id fehlt';
return false;
}
if (!isset($this->raumtyp)) {
$this->errormsg='raumtyp fehlt';
return false;
}
if (!isset($this->semesterstunden)) {
$this->errormsg='semesterstunden fehlt';
return false;
}
if (!isset($this->stundenblockung)) {
$this->errormsg='stundenblockung fehlt';
return false;
}
if (!isset($this->wochenrythmus)) {
$this->errormsg='wochenrythmus fehlt';
return false;
}
if (!isset($this->studiensemester_kurzbz)) {
$this->errormsg='studiensemester_kurzbz fehlt';
return false;
}
if ($this->new) {
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
"lektor,lehrfach_nr,lehrform_kurzbz,studiengang_kz,fachbereich_id,semester,verband,".
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
"wochenrythmus,start_kw,anmerkung,studiensemester_kurzbz)\n".
"values(".
"'".$this->lvnr."',".
"'".$this->unr."',".
(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').",".
"'".$this->lektor."',".
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:'NULL').",".
"'".$this->lehrform."',".
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:'NULL').",".
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:'NULL').",".
(strlen($this->semester)>0?$this->semester:'NULL').",".
"'".$this->verband."',".
"'".$this->gruppe."',".
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":'NULL').",".
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":'NULL').",".
(strlen($this->semesterstunden)>0?$this->semesterstunden:'NULL').",".
(strlen($this->stundenblockung)>0?$this->stundenblockung:'NULL').",".
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:'NULL').",".
(strlen($this->start_kw)>0?$this->start_kw:'NULL').",".
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":'NULL').','.
(strlen($this->studiensemester_kurzbz)>0?"'".$this->studiensemester_kurzbz."'":'NULL').
")";
} else
{
$qry="UPDATE tbl_lehrveranstaltung ".
"SET lvnr='".$this->lvnr."',".
"unr='".$this->unr."',".
"einheit_kurzbz=".(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').",".
"lektor='".$this->lektor."',\n".
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:'NULL').",".
"lehrform_kurzbz='".$this->lehrform."',\n".
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:'NULL').",".
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:'NULL').",".
"semester=".(strlen($this->semester)>0?$this->semester:'NULL').",\n".
"verband='".$this->verband."',".
"gruppe='".$this->gruppe."',".
"raumtyp='".$this->raumtyp."',".
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":'NULL').",\n".
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:'NULL').",".
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:'NULL').",".
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:'NULL').",\n".
"start_kw=".($this->start_kw>0?$this->start_kw:'NULL').",".
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":'NULL').
" WHERE lehrveranstaltung_id=".$this->lehrveranstaltung_id;
}
//echo "<br>".$qry.'start_kw: <'.$this->start_kw.'>';
if(!($erg=pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn).' sql: '.$qry;
return false;
}
if ($this->new) {
// neue Lehrveranstaltungs-ID herausfinden und speichern
$lastoid=pg_getlastoid($erg);
$qry="select lehrveranstaltung_id from tbl_lehrveranstaltung where oid=$lastoid";
if(!($erg=pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn).' sql: '.$qry;;
return false;
}
$row=pg_fetch_object($erg,0);
$this->lehrveranstaltung_id=$row->lehrveranstaltung_id;
$this->new=false;
}
return true;
}
function delete() {
global $auth;
if ($this->new) {
$this->errormsg='Datensatz mit new=true kann nicht gel?scht werden.';
return false;
}
$qry="delete from tbl_lehrveranstaltung where lehrveranstaltung_id=".addslashes($this->lehrveranstaltung_id);
if(!($erg=pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn)." \nSQL: ".$qry;
return false;
}
return true;
}
/**
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
* Fehlermeldung liegt in errormsg.
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
* @param string $einheit_kurzbz Einheit
* @param string grp Gruppe
* @param string ver Verband
* @param integer sem Semester
* @param integer stg_kz Kennzahl des Studiengangs
* @return variabel Array mit LVA; <b>false</b> bei Fehler
*/
function getLVAs($einheit_kurzbz, $grp, $ver, $sem, $stg_kz,$lektor, $stsem='')
{
if (strlen($einheit_kurzbz)>0)
{
// einheit?
//$join=" join tbl_einheitstudent on (m.uid=tbl_einheitstudent.uid) ";
$where=" lva.einheit_kurzbz='".$einheit_kurzbz."'";
}
if (strlen($grp)>0)
{
// Gruppe
$where.=(strlen($where)>0?' and ':'')." lva.gruppe='".$grp."' ";
}
if (strlen($ver)>0)
{
// Verband
$where.=(strlen($where)>0?' and ':'')." lva.verband='".$ver."' ";
}
if (strlen($sem)>0)
{
// Semester
$where.=(strlen($where)>0?' and ':'')." lva.semester=".$sem." ";
}
if (strlen($stg_kz)>0)
{
// Studiengang
$where.=(strlen($where)>0?' and ':'')." lva.studiengang_kz='".$stg_kz."' ";
}
if (strlen($lektor)>0)
{
// Lektor
$where.=(strlen($where)>0?' and ':'')." lva.lektor='".$lektor."' ";
}
if (strlen($stsem)>0)
{
// Studiensemester
$where.=(strlen($where)>0?' and ':'')." lva.studiensemester_kurzbz='".$stsem."' ";
}
$sql_query="set datestyle to german;SELECT lva.*,tbl_lehrfach.bezeichnung as lehrfach_bezeichnung, ".
" tbl_person.nachname || ', ' || tbl_person.titel || ' ' || tbl_person.vornamen as lektorName ".
"FROM tbl_lehrveranstaltung as lva join tbl_lehrfach using(lehrfach_nr) ".
" left join tbl_person on(lva.lektor=tbl_person.uid) ".
(strlen($where)>1?'WHERE '.$where:'').
"ORDER by upper(lva.unr),upper(lva.lvnr)";
//echo $sql_query;
if(!($erg=pg_exec($this->conn, $sql_query))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new lfvt($this->conn);
$l->lehrveranstaltung_id=$row->lehrveranstaltung_id;
$l->lvnr=$row->lvnr;
$l->unr=$row->unr;
$l->einheit_kurzbz=$row->einheit_kurzbz;
$l->lektor=$row->lektor;
$l->lektorPrettyPrint=$row->lektorname;
$l->lehrfach_nr=$row->lehrfach_nr;
$l->lehrform=$row->lehrform_kurzbz;
$l->studiengang_kz=$row->studiengang_kz;
$l->fachbereich_id=$row->fachbereich_id;
$l->semester=$row->semester;
$l->verband=strlen($row->verband)>0?$row->verband:null;
$l->gruppe=$row->gruppe;
$l->raumtyp=$row->raumtyp;
$l->raumtypalternativ=$row->raumtypalternativ;
$l->semesterstunden=$row->semesterstunden;
$l->stundenblockung=$row->stundenblockung;
$l->wochenrythmus=$row->wochenrythmus;
$l->start_kw=$row->start_kw;
$l->anmerkung=$row->anmerkung;
$l->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$l->lehrfach=$row->lehrfach_bezeichnung;
// lva in Array speichern
$result[]=$l;
}
return $result;
}
}
-324
View File
@@ -1,324 +0,0 @@
<?php
/*
$Header: /Pfad/Kodierrichtlinien.tex,v 1.2 2004/02/29 17:05:38 pam Exp $
$Log: Kodierrichtlinien.tex,v $
Revision 1.2 2004/02/29 17:05:38 pam
Fehler in Umlauten beseitigt.
*/
/**
* @class lv_info
*
* @author Andreas Oesterreicher
*
* @date 29.9.2005
*
* @version $Revision: 1.2 $
*
* @brief Bearbeitungsschritte fuer die Tabelle LVINFO
*/
class lv_info
{
//integer
var $lvinfo_id;
//integer
var $studiensemester_kurzbz;
//String
var $lehrziele;
//String
var $lehrinhalte;
//String
var $voraussetzungen;
//String
var $basiert_auf;
//String
var $kooperiert_mit;
//String
var $liefert_fuer;
//String
var $unterlagen;
//String
var $pruefungsordnung;
//String
var $anmerkungen;
//String
var $niveau;
//String
var $lehrformen;
//boolean
var $genehmigt='false';
//boolean
var $aktiv='true';
//timestamp
var $updateamum;
//String
var $updatevon;
//integer
var $lehrfach_nr;
//String
var $sprache;
//String
var $lehrende;
//String
var $lehrfach;
//smalint
var $semstunden;
//boolean
var $neu;
//string
var $lastqry;
//int
var $anz;
//Connection
var $conn;
//Array
var $result = array();
var $errormsg;
/********************************************************************
* @brief Konstruktor
*
* @param $conn Connection zur DB
********************************************************************/
function lv_info($conn)
{
$this->conn = $conn;
}
/********************************************************************
* @brief Speichert die Daten in der Datenbank ab. Wenn new auf true
* gesetzt ist wird INSERT ausgefuehrt sonst UPDATE
* @param keine
*
* @return true=Ok false=Fehler
********************************************************************/
function save()
{
if (is_null($this->conn))
{
$this->errormsg = "Fehler: Keine Datenbank connection vorhanden";
return false;
}
//Variablen ueberpruefen
//$this->checkvars();
if($this->neu)
{
$sql_query = "INSERT INTO tbl_lvinfo (studiensemester_kurzbz,lehrziele,lehrinhalte,voraussetzungen,basiert_auf,".
"kooperiert_mit, liefert_fuer, unterlagen, pruefungsordnung, anmerkungen, niveau,".
"lehrformen, genehmigt, aktiv,updatevon,lehrfach_nr, sprache, lehrende, lehrfach, semstunden)".
" VALUES('$this->studiensemester_kurzbz',".
(strlen($this->lehrziele)>0?"'".$this->lehrziele."'":'NULL').",".
(strlen($this->lehrinhalte)>0?"'".$this->lehrinhalte."'":'NULL').",".
(strlen($this->voraussetzungen)>0?"'".$this->voraussetzungen."'":'NULL').",".
(strlen($this->basiert_auf)>0?"'".$this->basiert_auf."'":'NULL').",".
(strlen($this->kooperiert_mit)>0?"'".$this->kooperiert_mit."'":'NULL').",".
(strlen($this->liefert_fuer)>0?"'".$this->liefert_fuer."'":'NULL').",".
(strlen($this->unterlagen)>0?"'".$this->unterlagen."'":'NULL').",".
(strlen($this->pruefungsordnung)>0?"'".$this->pruefungsordnung."'":'NULL').",".
(strlen($this->anmerkungen)>0?"'".$this->anmerkungen."'":'NULL').",".
(strlen($this->niveau)>0?"'".$this->niveau."'":'NULL').",".
(strlen($this->lehrformen)>0?"'".$this->lehrformen."'":'NULL').",".
($this->genehmigt=="'true'"?'true':'false').",".($this->aktiv=='true'?'true':'false').",'$this->updatevon',$this->lehrfach_nr,'$this->sprache',".
(strlen($this->lehrende)>0?"'".$this->lehrende."'":'NULL').",".
(strlen($this->lehrfach)>0?"'".$this->lehrfach."'":'NULL').",".
($this->semstunden!=''?"'".$this->semstunden."'":'NULL') .");";
}
else
{
$sql_query = "UPDATE tbl_lvinfo SET".
" studiensemester_kurzbz='$this->studiensemester_kurzbz'".
", lehrziele=".(strlen($this->lehrziele)>0?"'".$this->lehrziele."'":'NULL') .
", lehrinhalte=".(strlen($this->lehrinhalte)>0?"'".$this->lehrinhalte."'":'NULL') .
", voraussetzungen=".(strlen($this->voraussetzungen)>0?"'".$this->voraussetzungen."'":'NULL') .
", basiert_auf=".(strlen($this->basiert_auf)>0?"'".$this->basiert_auf."'":'NULL') .
", kooperiert_mit=".(strlen($this->kooperiert_mit)>0?"'".$this->kooperiert_mit."'":'NULL') .
", liefert_fuer=".(strlen($this->liefert_fuer)>0?"'".$this->liefert_fuer."'":'NULL') .
", unterlagen=".(strlen($this->unterlagen)>0?"'".$this->unterlagen."'":'NULL') .
", pruefungsordnung=".(strlen($this->pruefungsordnung)>0?"'".$this->pruefungsordnung."'":'NULL') .
", anmerkungen=".(strlen($this->anmerkungen)>0?"'".$this->anmerkungen."'":'NULL') .
", niveau=".(strlen($this->niveau)>0?"'".$this->niveau."'":'NULL') .
", lehrformen=".(strlen($this->lehrformen)>0?"'".$this->lehrformen."'":'NULL') .
", lehrende=".(strlen($this->lehrende)>0?"'".$this->lehrende."'":'NULL') .
($this->genehmigt==''?'':", genehmigt=$this->genehmigt").
($this->aktiv==''?'':", aktiv=$this->aktiv").
", updateamum=now()".
", updatevon='".$_SERVER["REMOTE_USER"]."'".
", lehrfach_nr=$this->lehrfach_nr".
", lehrfach='$this->lehrfach'".
($this->semstunden!=''?", semstunden=$this->semstunden ":'').
", sprache='$this->sprache' WHERE lvinfo_id=$this->lvinfo_id";
}
$this->lastqry=$sql_query."--$this->genehmigt--";
//echo $sql_query;
if(pg_exec($this->conn,$sql_query))
{
return true;
}
else
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
}
/********************************************************************
* @brief Fuehrt einen Selectbefehl aus und Schreibt das Ergebnis in
* $result
*
* @param $sql_query - Select befehl
*
* @return true=Ok, Erg in $Result false=Fehler, Meldung in $errormsg
* Anzahl der Datensaetze steht in $anz
********************************************************************/
function getData($sql_query)
{
if (is_null($this->conn))
{
$this->errormsg = "Fehler: Keine Datenbank connection vorhanden";
return false;
}
if($res=pg_exec($this->conn,$sql_query))
{
while($row=pg_fetch_object($res))
{
$elem = new lv_info($this->conn);
$elem->lvinfo_id = $row->lvinfo_id;
$elem->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$elem->lehrziele = $row->lehrziele;
$elem->lehrinhalte = $row->lehrinhalte;
$elem->voraussetzungen = $row->voraussetzungen;
$elem->basiert_auf = $row->basiert_auf;
$elem->kooperiert_mit = $row->kooperiert_mit;
$elem->liefert_fuer = $row->liefert_fuer;
$elem->unterlagen = $row->unterlagen;
$elem->pruefungsordnung = $row->pruefungsordnung;
$elem->anmerkungen = $row->anmerkungen;
$elem->niveau = $row->niveau;
$elem->lehrformen = $row->lehrformen;
$elem->genehmigt = $row->genehmigt;
$elem->aktiv = $row->aktiv;
$elem->updateamum = $row->updateamum;
$elem->updatevon = $row->updatevon;
$elem->lehrfach_nr = $row->lehrfach_nr;
$elem->lehrfach = $row->lehrfach;
$elem->sprache = $row->sprache;
$elem->lehrende = $row->lehrende;
$elem->semstunden = $row->semstunden;
$this->result[] = $elem;
}
$this->anz = pg_num_rows($res);
}
else
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
return true;
}
/********************************************************************
* @brief Liefert alle Datensaetze der Tabelle tbl_lvinfo
*
* @param keine
*
* @return true=Ok, Erg in $Result false=Fehler, Meldung in $errormsg
********************************************************************/
function getAll()
{
$sql_query = "Select * from tbl_lvinfo";
return $this->getData($sql_query);
}
/********************************************************************
* @brief Liefert alle Datensaetze der Tabelle tbl_lvinfo mit der
* lvinfo_id $id
* @param $id lvinfo_id
*
* @return true=Ok, Erg in $Result false=Fehler, Meldung in $errormsg
********************************************************************/
function getByID($id)
{
$sql_query = "SELECT * from tbl_lvinfo WHERE lvinfo_id=$id";
return $this->getData($sql_query);
}
/********************************************************************
* @brief Liefert alle Datensaetze mit den Kriterien die ueberg. wurden
*
* @param $lf Lehrfach
* $stg Studiengang
* $sem Semester
* $sprache Sprache
* $studiensemester_kurzbz Studiensemester
*
* @return true=Ok, Erg in $Result false=Fehler, Meldung in $errormsg
********************************************************************/
function getByElem($lf,$stg,$sem,$sprache='',$studiensemester_kurzbz='',$order='version DESC')
{
if($sprache=='')
{
if($studiensemester_kurzbz=='')
{
$sql_query = "SELECT * from tbl_lvinfo, tbl_lehrfach WHERE tbl_lvinfo.lehrfach_nr=tbl_lehrfach.lehrfach_nr ".
"AND tbl_lvinfo.lehrfach_nr=$lf AND studiengang_kz = $stg AND semester = $sem AND tbl_lvinfo.aktiv=true ORDER BY $order";
}
else
{
$sql_query = "SELECT * from tbl_lvinfo, tbl_lehrfach WHERE tbl_lvinfo.lehrfach_nr=tbl_lehrfach.lehrfach_nr ".
"AND tbl_lvinfo.lehrfach_nr=$lf AND studiengang_kz = $stg AND semester = $sem AND studiensemester_kurzbz='$studiensemester_kurzbz' AND tbl_lvinfo.aktiv=true ORDER BY $order";
}
}
else
{
if($studiensemester_kurzbz=='')
{
$sql_query = "SELECT * from tbl_lvinfo, tbl_lehrfach WHERE tbl_lvinfo.lehrfach_nr=tbl_lehrfach.lehrfach_nr ".
"AND tbl_lvinfo.sprache='$sprache' AND tbl_lvinfo.lehrfach_nr=$lf AND studiengang_kz = $stg AND semester = $sem AND tbl_lvinfo.aktiv=true ORDER BY $order";
}
else
{
$sql_query = "SELECT * from tbl_lvinfo, tbl_lehrfach WHERE tbl_lvinfo.lehrfach_nr=tbl_lehrfach.lehrfach_nr ".
"AND tbl_lvinfo.sprache='$sprache' AND tbl_lvinfo.lehrfach_nr=$lf AND studiengang_kz = $stg AND semester = $sem AND studiensemester_kurzbz='$studiensemester_kurzbz' AND tbl_lvinfo.aktiv=true ORDER BY $order";
}
}
return $this->getData($sql_query);
}
/********************************************************************
* @brief Sieht in der DB nach ob ein Eintrag mit den Kriterien
* vorhanden ist.
* @param $studiensemester_kurzbz Studiensemester
* $lf Lehrfach
*
* @return true=Vorhanden, id des DS in $lvinfo_id false=Nicht vorhanden
********************************************************************/
function vorhanden($lf, $studiensemester_kurzbz, $sprache)
{
$sql_query = "SELECT * from tbl_lvinfo WHERE ".
"lehrfach_nr=$lf AND studiensemester_kurzbz='$studiensemester_kurzbz' AND sprache='$sprache' AND aktiv=true";
$res=pg_exec($this->conn, $sql_query);
if(pg_numrows($res)>0)
{
$row=pg_fetch_object($res);
$this->lvinfo_id=$row->lvinfo_id;
return true;
}
else
{
return false;
}
}
}
?>
-359
View File
@@ -1,359 +0,0 @@
<?php
/*
$Header: /Pfad/Kodierrichtlinien.tex,v 1.2 2004/02/29 17:05:38 pam Exp $
$Log: Kodierrichtlinien.tex,v $
Revision 1.2 2004/02/29 17:05:38 pam
Fehler in Umlauten beseitigt.
*/
/**
* @class lv_verteilung
*
* @author Andreas Österreicher
*
* @date 13.9.2005
*
* @version $Revision: 1.2 $
*
* @brief Bearbeitungsschritte für LV Veranstaltungen
*/
class lv_verteilung
{
// @var integer interne Lehrveranstaltungs-ID (Zaehler aus DB)
var $lehrveranstaltung_id;
// @var string Lehrveranstaltungsnummer
var $lvnr;
// @var string Unterrichtsnummer; zum patizipieren verwendet
var $unr;
// @var string
var $einheit_kurzbz;
// @var string
var $lektor;
// @var integer
var $lehrfach_nr;
// @var string
var $lehrfach_kurzbz;
// @var string
var $lehrform;
// @var integer
var $studiengang_kz;
// @var string
var $studiengang_kurzbz;
// @var integer
var $fachbereich_id;
// @var integer
var $semester;
// @var string
var $verband;
// @var string
var $gruppe;
// @var string
var $raumtyp;
// @var string
var $raumtypalternativ;
// @var integer
var $semesterstunden;
// @var integer
var $stundenblockung;
// @var integer
var $wochenrythmus;
// @var integer
var $start_kw;
// @var string
var $anmerkung;
// @var string
var $studiensemester_kurzbz;
// @var string
var $fas_id;
// @var string
var $lehrevz;
// @var bool;
var $lehre;
// @var string
var $lehrfach_bz;
// @var bool
var $new;
// @var string
var $errormsg;
// @var SQL Connection
var $connection;
// @var Array für Rückgabe
var $retwert = array();
// @var int
var $anz;
/********************************************************************
* @brief Konstruktor - Liefert die Connection als Parameter
*
* @param $conn Connection
********************************************************************/
function lv_verteilung($conn)
{
$this->connection = $conn;
}
function load($lv_id)
{
$sql_query = "SELECT * FROM tbl_lehrveranstaltung where lehrveranstaltung_id='$lv_id'";
$result = pg_exec($this->connection,$sql_query);
if($row=pg_fetch_object($result))
{
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->lvnr = $row->lvnr;
$this->einheit_kurzbz = $row->einheit_kurzbz;
$this->lektor = $row->lektor;
$this->lehrfach_nr = $row->lehrfach_nr;
$this->lehrform = $row->lehrform_kurzbz;
$this->studiengang_kz = $row->studiengang_kz;
$this->fachbereich_id = $row->fachbereich_id;
$this->semester = $row->semester;
$this->verband = $row->verband;
$this->gruppe = $row->gruppe;
$this->raumtyp = $row->raumtyp;
$this->raumtypalternativ = $row->raumtypalernativ;
$this->semesterstunden = $row->semesterstunden;
$this->stundenblockung = $row->stundenblockung;
$this->wochenrythmus = $row->wochenrythmus;
$this->start_kw = $row->start_kw;
$this->anmerkung = $row->anmerkung;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->fas_id = $row->fas_id;
$this->unr = $row->unr;
$this->lehre = $row->lehre;
}
else
{
$this->errormsg = "Kein Datensatz mit dieser ID vorhanden";
return false;
}
return true;
}
/********************************************************************
* @brief Prüft ob die Variablen gültige Werte enthalten
*
* @return true=OK false=Fehler
********************************************************************/
function checkvars()
{
if(!is_numeric($this->semesterstunden))
{
$this->errormsg = "Fehler: Semesterstunden muss eine Zahl sein";
return false;
}
if(!is_numeric($this->stundenblockung))
{
$this->errormsg = "Fehler: Stundenblockung muss eine Zahl sein";
return false;
}
if(!is_numeric($this->wochenrythmus))
{
$this->errormsg = "Fehler: Wochenrythmus muss eine Zahl sein";
return false;
}
if(strlen($this->lvnr)==0)
{
$this->errormsg = "Fehler: LVNR muss eingegeben werden";
return false;
}
if(!is_numeric($this->start_kw) AND strlen($this->start_kw)>0)
{
$this->errormsg = "Fehler: Start-KW muss eine Zahl sein";
return false;
}
return true;
}
/********************************************************************
* @brief Speichert die Daten in der Datenbank ab. Wenn new auf true
* gesetzt ist wird INSERT ausgeführt sonst UPDATE
* @param keine
*
* @return true=Ok false=Fehler
********************************************************************/
function save()
{
// Connection überprüfen
if (is_null($this->connection))
{
$this->errormsg = "Fehler: Keine Datenbank connection vorhanden";
return false;
}
if ($this->new) {
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
"lektor,lehrfach_nr,lehrform_kurzbz,studiengang_kz,fachbereich_id,semester,verband,".
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
"wochenrythmus,start_kw,anmerkung,studiensemester_kurzbz,lehre)".
"values(".
"'".$this->lvnr."',".
(strlen($this->unr)>0?"'".$this->unr."'":'NULL').",".
(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').",".
"'".$this->lektor."',".
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:'0').",".
"'".$this->lehrform."',".
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:'0').",".
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:'NULL').",".
(strlen($this->semester)>0?$this->semester:'NULL').",".
(strlen($this->verband)>0?"'".$this->verband."'":'NULL').",".
(strlen($this->gruppe)>0?"'".$this->gruppe."'":'NULL').",".
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":'0').",".
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":'NULL').",".
(strlen($this->semesterstunden)>0?$this->semesterstunden:'1').",".
(strlen($this->stundenblockung)>0?$this->stundenblockung:'1').",".
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:'1').",".
(strlen($this->start_kw)>0?$this->start_kw:'NULL').",".
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":'NULL').",".
(strlen($this->studiensemester_kurzbz)>0?"'".$this->studiensemester_kurzbz."'":'0').",".
(($this->lehre=='on')?'true':'false').
")";
}
else
{
$qry="UPDATE tbl_lehrveranstaltung ".
"SET lvnr='".$this->lvnr."',".
"unr=".(strlen($this->unr)>0?"'".$this->unr."'":'NULL').",".
"einheit_kurzbz=".(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').",".
"lektor='".$this->lektor."',".
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:'0').",".
"lehrform_kurzbz='".$this->lehrform."',".
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:'0').",".
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:'NULL').",".
"semester=".(strlen($this->semester)>0?$this->semester:'NULL').",".
"verband=".(strlen($this->verband)>0?"'".$this->verband."'":'NULL').",".
"gruppe=".(strlen($this->gruppe)>0?"'".$this->gruppe."'":'NULL').",".
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":'0').",".
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":'NULL').",".
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:'1').",".
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:'1').",".
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:'1').",".
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:'NULL').",".
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":'NULL').",".
"studiensemester_kurzbz=".(strlen($this->studiensemester_kurzbz)>0?"'".$this->studiensemester_kurzbz."'":'0').",".
"lehre=".(($this->lehre=='on')?'true':'false').
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
}
//echo $qry.':'.$this->lehre;
if($this->checkvars())
{
if(!($erg=pg_exec($this->connection, $qry)))
{
$this->errormsg=pg_errormessage($this->connection);
return false;
}
}
else
{
return false;
}
return true;
}
/********************************************************************
* @brief Liefert die Datensätze aus der Tabelle tbl_lehrveranstaltung
* die zu diesen Kriterien passen
* @param $stsem Studiensemester / -1 wenn keines gewählt
* $sem Semester / -1 wenn keines gewählt
* $stg Studiengang / -1 wenn keiner gewählt
* $lektor Lektor / -1 wenn keiner gewählt
* @return $result=Array mit den Elementen false=Fehler
********************************************************************/
function getTab($stsem, $sem, $stg, $lektor, $order)
{
$sql_query="SELECT a.semester As sem,a.lehre as lvlehre, * FROM (SELECT * FROM public.tbl_lehrveranstaltung";
$and = false;
//Zusammenstöpseln des SQL Strings
if($lektor!=-1 OR $stsem!=-1 OR $stg!=-1)
{
$sql_query = $sql_query." WHERE";
}
//Zusammenstöpseln des SQL Strings
if($lektor!=-1)
{
$sql_query = $sql_query." lektor='$lektor'";
$and=true;
}
if($stsem!=-1)
{
if($and)
$sql_query = $sql_query." AND studiensemester_kurzbz='$stsem'";
else
$sql_query = $sql_query." studiensemester_kurzbz='$stsem'";
$and=true;
}
if($stg!=-1)
{
if($sem!=-1)
{
if($and)
$sql_query = $sql_query." AND studiengang_kz='$stg' AND semester='$sem'";
else
$sql_query = $sql_query." studiengang_kz='$stg' AND semester='$sem'";
}
else
{
if($and)
$sql_query = $sql_query." AND studiengang_kz='$stg'";
else
$sql_query = $sql_query." studiengang_kz='$stg'";
}
}
$sql_query = $sql_query.") AS a, tbl_lehrfach b WHERE a.lehrfach_nr=b.lehrfach_nr ORDER BY $order";
//echo $sql_query;
$result = pg_exec($this->connection,$sql_query);
$this->anz = pg_numrows($result);
while($row=pg_fetch_object($result))
{
$lv = new lv_verteilung($connection);
$lv->lehrveranstaltung_id=$row->lehrveranstaltung_id;
$lv->lvnr = $row->lvnr;
$lv->einheit_kurzbz = $row->einheit_kurzbz;
$lv->lektor = $row->lektor;
$lv->lehrfach_nr = $row->lehrfach_nr;
$lv->lehrform = $row->lehrform_kurzbz;
$lv->studiengang_kz = $row->studiengang_kz;
$lv->fachbereich_id = $row->fachbereich_id;
$lv->semester = $row->sem;
$lv->verband = $row->verband;
$lv->gruppe = $row->gruppe;
$lv->raumtyp = $row->raumtyp;
$lv->raumtypalternativ = $row->raumtypalternativ;
$lv->semesterstunden = $row->semesterstunden;
$lv->stundenblockung = $row->stundenblockung;
$lv->wochenrythmus = $row->wochenrythmus;
$lv->start_kw = $row->start_kw;
$lv->anmerkung = $row->anmerkung;
$lv->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$lv->fas_id = $row->fas_id;
$lv->unr = $row->unr;
$lv->lehrfach_kurzbz = $row->kurzbz;
$lv->lehrevz = $row->lehrevz;
$lv->lehre = $row->lvlehre;
$lv->lehrfach_bz = $row->bezeichnung;
$this->retwert[] = $lv;
}
if($this->anz>0)
return true;
else
return false;
}
}
-84
View File
@@ -1,84 +0,0 @@
<?php
class mailgrp
{
//String
var $mailgrp_kurzbz;
//Int
var $studiengang_kz;
//string
var $beschreibung;
//bool
var $sichtbar;
//bool
var $generiert;
//bool
var $aktiv;
//array
var $result = array();
//string
var $errormsg;
// resource
var $conn;
function mailgrp($conn)
{
$this->conn=$conn;
}
/**
* Verbindung zur Datenbank herstellen
* @return PostgreSQL-Connection oder NULL
function getConnection() {
if (!$conn = @pg_pconnect(CONN_STRING)) {
$this->errormsg="Es konnte keine Verbindung zum Server ".
"aufgebaut werden.";
return null;
}
return $conn;
}*/
/**
* Liefert alle Elemente der tbl_mailgrp
* @param studiengang_kz
* @return true wenn OK false wenn Fehler
*/
function getAll($studiengang_kz='')
{
if (is_null($this->conn)) {
$this->errormsg = "Keine Connection vorhanden";
return false;
}
if (strlen($this->studiengang_kz)>0)
{
$where=" where studiengang_kz='".$studiengang_kz."' ";
} else
{
$where="";
}
$qry="select * FROM tbl_mailgrp".
"$where order by mailgrp_kurzbz";
if(!($erg=pg_exec($this->conn, $qry))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
while($row=pg_fetch_object($erg))
{
$l=new mailgrp($this->conn);
$l->mailgrp_kurzbz = $row->mailgrp_kurzbz;
$l->studiengang_kz = $row->studiengang_kz;
$l->beschreibung = $row->beschreibung;
$l->aktiv = $row->aktiv;
$l->generiert = $row->generiert;
$l->sichtbar = $row->sichtbar;
$result[]=$l;
}
return $result;
}
}
?>
+159 -342
View File
@@ -1,362 +1,179 @@
<?php
/**
* @author Christian Paminger, Werner Masik (werner@gefi.at)
* @version 1.0
* @created 22-Okt-2004
* @updated 29.10.2004 (WM)
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class mitarbeiter extends person
class mitarbeiter extends benutzer
{
/**
* @var boolean
*/
var $personalnr;
/**
* @var string
*/
var $kurzbz;
/**
* @var boolean true=lektor, false=sonstiger MA
*/
var $lektor;
/**
* @var boolean
*/
var $fixangestellt;
/**
* @var string
*/
var $telefonklappe;
/**
* @var funktion
*/
var $funktion;
/**
* @var mitarbeiter
*/
var $mitarbeiter;
/**
* @var string
*/
var $errormsg;
/**
* @var string?
*/
var $updateamum;
/**
* @var string
*/
var $updatevon;
/**
* @var string
*/
var $ort_kurzbz='0';
//Tabellenspalten
var $ausbildungcode; //integer
var $personalnummer; //serial
var $kurzbz; //varchar(8)
var $lektor; //boolean
var $fixangestellt; //boolean
var $telefonklappe; //varchar(25)
function mitarbeiter($conn,$uid='')
// *************************************************************************
// * 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
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function mitarbeiter($conn, $uid=null, $unicode=false)
{
$this->conn=$conn;
if (strlen($uid)>0) {
$this->uid=$uid;
$this->load();
$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;
}
//Mitarbeiter laden
//if($uid!=null)
// $this->load($uid);
}
/**
* @return boolean true=ok, false=fehler
*/
// ************************************************
// * ueberprueft die Variablen auf Gueltigkeit
// * @return true wenn gueltig, false im Fehlerfall
// ************************************************
function validate()
{
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->uid=='')
{
$this->errormsg = 'UID muss eingegeben werden';
return false;
}
if($this->ausbildungcode!='' && !is_numeric($this->ausbildungcode))
{
$this->errormsg = 'Ausbildungscode ist ungueltig';
return false;
}
if($this->personalnummer!='' && !is_numeric($this->personalnummer))
{
$this->errormsg = 'Personalnummer muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->kurzbz)>8)
{
$this->errormsg = 'kurzbz darf nicht laenger als 8 Zeichen sein';
return false;
}
if(!is_bool($this->lektor))
{
$this->errormsg = 'lektor muss boolean sein'.$this->lektor;
return false;
}
if(!is_bool($this->fixangestellt))
{
$this->errormsg = 'fixangestellt muss boolean sein';
return false;
}
if(strlen($this->telefonklappe)>25)
{
$this->errormsg = 'telefonklappe darf nicht laenger als 25 Zeichen sein';
return false;
}
if(strlen($this->updatevon)>32)
{
$this->errormsg = 'updatevon darf nicht laenger als 32 Zeichen sein';
return false;
}
return true;
}
// *************************************************
// * Speichert die Mitarbeiterdaten in die Datenbank
// * @return true wenn ok, false im Fehlerfall
// *************************************************
function save()
{
global $auth;
// uid vorhanden?
if (strlen($this->uid)==0) {
$this->errormsg='<i>uid</i> nicht gesetzt.';
return false;
//Variablen checken
if(!$this->validate())
return false;
pg_query($this->conn,'BEGIN;');
//Basisdaten speichern
if(!benutzer::save())
{
pg_query($this->conn,'ROLLBACK;');
return false;
}
// Connection holen
if (is_null($conn=person::getConnection())) {
return false;
}
// Daten zur Person speichern
if (!person::save()) {
$this->errormsg.="<br/>Daten zur Person konnten nicht gespeichert werden.";
return false;
}
if ($this->new) {
$qry="INSERT INTO tbl_mitarbeiter(uid,personalnummer,kurzbz,".
"lektor,fixangestellt,telefonklappe,updateamum,updatevon, ort_kurzbz)".
"values(".
"'".$this->uid."',".
"'".$this->personalnummer."',".
"'".$this->kurzbz."','".
($this->lektor?'t':'f')."','".
($this->fixangestellt?'t':'f')."',".
"'".$this->telefonklappe."',".
"now(),'".$_SERVER['PHP_AUTH_USER']."', ".($this->ort_kurzbz!='0'?"'$this->ort_kurzbz'":'NULL').
")";
} else
if($this->new)
{
$qry="UPDATE tbl_mitarbeiter ".
"SET personalnummer='".$this->personalnummer."',".
"kurzbz='".$this->kurzbz."',".
"lektor='".($this->lektor?'t':'f')."',".
"fixangestellt='".($this->fixangestellt?'t':'f')."',".
"telefonklappe='".$this->telefonklappe."',".
"updateamum=now(),updatevon='".$_SERVER['PHP_AUTH_USER']."', ort_kurzbz=".($this->ort_kurzbz!='0'?"'$this->ort_kurzbz'":'NULL').
" WHERE uid='".$this->uid."'";
}
//echo "<br>".$qry;
if(!($erg=pg_exec($conn, $qry)))
//Neuen Datensatz anlegen
$qry = "INSERT INTO tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor,
fixangestellt, telefonklappe, updateamum, updatevon)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->ausbildungcode).",".
$this->addslashes($this->personalnummer).",". //TODO: in Produktivversion nicht angeben
$this->addslashes($this->kurzbz).','.
($this->lektor?'true':'false').','.
($this->fixangestellt?'true':'false').','.
$this->addslashes($this->telefonklappe).','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).');';
}
else
{
$this->errormsg=pg_errormessage($conn);
return false;
//Bestehenden Datensatz updaten
$qry = 'UPDATE tbl_mitarbeiter SET'.
' ausbildungcode='.$this->addslashes($this->ausbildungcode).','.
" personalnummer=".$this->addslashes($this->personalnummer).",". //TODO: in Produktivversion nicht angeben
' kurzbz='.$this->addslashes($this->kurzbz).','.
' lektor='.($this->lektor?'true':'false').','.
' fixangestellt='.($this->fixangestellt?'true':'false').','.
' telefonklappe='.$this->addslashes($this->telefonklappe).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE mitarbeiter_uid='".addslashes($this->uid)."';";
}
return true;
}
/**
* Ladet die Attribute des Studenten aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function load($uid='')
{
// optional: uid setzen
if (strlen($uid)>0)
$this->uid=$uid;
// uid vorhanden?
if (strlen($this->uid)==0) {
$this->errormsg='<i>uid</i> nicht gesetzt.';
return false;
}
// Connection holen
if (is_null($conn=person::getConnection())) {
return false;
}
// Daten zur Person laden
if (!person::load()) {
$this->errormsg.="<br/>Daten zur Person konnten nicht geladen werden.";
return false;
}
// MA-Daten holen
$sql_query="SELECT m.personalnummer,m.kurzbz,m.lektor,m.fixangestellt,m.telefonklappe,m.updateamum,m.updatevon, m.ort_kurzbz ".
"FROM tbl_mitarbeiter as m ".
"WHERE uid='".$this->uid."'";
if(!($erg=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
$num_rows=pg_numrows($erg);
if($num_rows!=1) {
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
$row=pg_fetch_object($erg,0);
$this->personalnummer=$row->personalnummer;
$this->kurzbz=$row->kurzbz;
$this->lektor=$row->lektor=='t'?true:false;
$this->fixangestellt=$row->fixangestellt=='t'?true:false;
$this->telefonklappe=$row->telefonklappe;
$this->updateamum=$row->updateamum;
$this->updatevon=$row->updatevon;
$this->ort_kurzbz=$row->ort_kurzbz;
return true;
}
/**
* Loescht den Mitarbeiter aus der Datenbank. Bei Fehler ist der Rueckgabewert
* 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
* vererbt, wenn Person gelöscht wird, sollte wahrscheinlich auch
* automatisch der Eintrag in den anderen Tabellen gelöscht werden
*/
/*
function delete()
{
if (is_null($conn=$this->getConnection())) {
return false;
}
return true;
}*/
/**
* gibt array mit allen Lektoren zurück
* @return array mit Lektoren
*/
function getLektoren()
{
if (is_null($conn=$this->getConnection()))
if(pg_query($this->conn,$qry))
{
return false;
}
$sql_query="set datestyle to german;SELECT tbl_person.*,".
"m.personalnummer,m.kurzbz,m.lektor,m.fixangestellt,m.telefonklappe, m.ort_kurzbz ".
"FROM tbl_person join tbl_mitarbeiter as m using(uid) ".
"WHERE m.lektor=true ".
"ORDER by upper(tbl_person.nachname),upper(tbl_person.vornamen)";
if(!($erg=@pg_exec($conn, $sql_query))) {
$this->errormsg=pg_errormessage($conn);
pg_query($this->conn,'COMMIT;');
//Log schreiben
return true;
}
else
{
pg_query($this->conn,'ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Mitarbeiter-Datensatzes'.$qry;
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new mitarbeiter($this->conn);
// Personendaten
$l->uid=$row->uid;
$l->titel=$row->titel;
$l->vornamen=$row->vornamen;
$l->nachname=$row->nachname;
$l->gebdatum=$row->gebdatum;
$l->gebort=$row->gebort;
$l->gebzeit=$row->gebzeit;
$l->foto=$row->foto;
$l->anmerkungen=$row->anmerkungen;
$l->aktiv=$row->aktiv=='t'?true:false;
$l->email=$row->email;
$l->homepage=$row->homepage;
$l->updateamum=$row->updateamum;
$l->updatevon=$row->updatevon;
// Lektorendaten
$l->personalnummer=$row->personalnummer;
$l->kurzbz=$row->kurzbz;
$l->lektor=$row->lektor=='t'?true:false;
$l->fixangestellt=$row->fixangestellt=='t'?true:false;
$l->telefonklappe=$row->telefonklappe;
$l->ort_kurzbz=$row->ort_kurzbz;
// Lektor in Array speichern
$result[]=$l;
}
return $result;
}
/**
* gibt array mit allen Mitarbeitern zurück
* @param $order gibt die spalte an nach der Sortiert werden soll
* @return array mit MA
*/
function getAll($order='upper(tbl_person.nachname),upper(tbl_person.vornamen)')
{
if (is_null($conn=$this->getConnection()))
{
return false;
}
$sql_query="set datestyle to german;SELECT tbl_person.*,".
"m.personalnummer,m.kurzbz,m.lektor,m.fixangestellt,m.telefonklappe, m.ort_kurzbz ".
"FROM tbl_person join tbl_mitarbeiter as m using(uid) ".
"ORDER by $order";
if(!($erg=@pg_exec($conn, $sql_query)))
{
$this->errormsg=pg_errormessage($conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new mitarbeiter($this->conn);
// Personendaten
$l->uid=$row->uid;
$l->titel=$row->titel;
$l->vornamen=$row->vornamen;
$l->nachname=$row->nachname;
$l->gebdatum=$row->gebdatum;
$l->gebort=$row->gebort;
$l->gebzeit=$row->gebzeit;
$l->foto=$row->foto;
$l->anmerkungen=$row->anmerkungen;
$l->aktiv=$row->aktiv=='t'?true:false;
$l->email=$row->email;
$l->homepage=$row->homepage;
$l->updateamum=$row->updateamum;
$l->updatevon=$row->updatevon;
// Lektorendaten
$l->personalnummer=$row->personalnummer;
$l->kurzbz=$row->kurzbz;
$l->lektor=($row->lektor=='t'?'true':'false');
$l->fixangestellt=($row->fixangestellt=='t'?'true':'false');
$l->telefonklappe=$row->telefonklappe;
$l->ort_kurzbz=$row->ort_kurzbz;
// MA in Array speichern
$result[]=$l;
}
return $result;
}
/**
* gibt array mit allen Mitarbeitern zurueck
* @return array mit Mitarbeitern
*/
function getMitarbeiter($lektor=true,$fixangestellt=null,$stg_kz=null,$fachbereich_id=null)
{
if (is_null($conn=$this->getConnection()))
{
return false;
}
$sql_query='SELECT DISTINCT vw_mitarbeiter.* FROM vw_mitarbeiter
LEFT OUTER JOIN tbl_personfunktion USING(uid)
WHERE';
if (!$lektor)
$sql_query.=' NOT';
$sql_query.=' lektor';
if ($fixangestellt!=null)
{
$sql_query.=' AND';
if (!$fixangestellt)
$sql_query.=' NOT';
$sql_query.=' fixangestellt';
}
if ($stg_kz!=null)
$sql_query.=' AND studiengang_kz='.$stg_kz;
if ($fachbereich_id!=null)
$sql_query.=' AND fachbereich_id='.$fachbereich_id;
$sql_query.=' ORDER BY nachname, vornamen, kurzbz';
//echo $sql_query;
if(!($erg=@pg_query($conn, $sql_query)))
{
$this->errormsg=pg_errormessage($conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new mitarbeiter($this->conn);
// Personendaten
$l->uid=$row->uid;
$l->titel=$row->titel;
$l->vornamen=$row->vornamen;
$l->nachname=$row->nachname;
$l->gebdatum=$row->gebdatum;
$l->gebort=$row->gebort;
$l->gebzeit=$row->gebzeit;
$l->foto=$row->foto;
$l->anmerkungen=$row->anmerkungen;
$l->aktiv=$row->aktiv=='t'?true:false;
$l->email=$row->email;
$l->homepage=$row->homepage;
$l->updateamum=$row->updateamum;
$l->updatevon=$row->updatevon;
// Lektorendaten
$l->personalnummer=$row->personalnummer;
$l->kurzbz=$row->kurzbz;
$l->lektor=$row->lektor=='t'?true:false;
$l->fixangestellt=$row->fixangestellt=='t'?true:false;
$l->telefonklappe=$row->telefonklappe;
//$l->ort_kurzbz=$row->ort_kurzbz;
// Lektor in Array speichern
$result[]=$l;
}
return $result;
}
}
?>
+92
View File
@@ -0,0 +1,92 @@
<?php
/**
* Klasse Nation (FAS-Online)
* @create 06-04-2006
*/
class nation
{
var $conn;
var $errormsg;
var $result = array();
//Tabellenspalten
var $code;
var $sperre;
var $kontinent;
var $entwland;
var $euflag;
var $ewrflag;
var $kurztext;
var $langtext;
var $engltext;
/**
* Konstruktor
* @param $conn Connection
* $code Zu ladende Nation
*/
function nation($conn,$code=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($code != null)
$this->load($code);
}
/**
* Laedt die Funktion mit der ID $adress_id
* @param $code code der zu ladenden Nation
* @return true wenn ok, false im Fehlerfall
*/
function load($code)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
/**
* Laedt alle Nationen
* @param ohnesperre wenn dieser Parameter auf true gesetzt ist werden
* nur die nationen geliefert dessen Buerger bei uns studieren duerfen
*/
function getAll($ohnesperre=false)
{
//Lesen der Daten aus der Datenbank
$qry = "SELECT * FROM nation";
if($ohnesperre)
$qry .= " where sperre='N'";
$qry .=" order by kurztext";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$nation_obj = new nation($this->conn);
$nation_obj->code = $row->code;
$nation_obj->sperre = $row->sperre;
$nation_obj->kontinent = $row->sperre;
$nation_obj->entwland = $row->entwland;
$nation_obj->euflag = $row->euflag;
$nation_obj->ewrflag = $row->ewrflag;
$nation_obj->kurztext = $row->kurztext;
$nation_obj->langtext = $row->langtext;
$nation_obj->engltext = $row->engltext;
$this->result[] = $nation_obj;
}
return true;
}
}
?>
@@ -19,26 +19,22 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse news (FAS-Online)
* @create 04-12-2006
*/
class news
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $errormsg; // @var string
var $result = array(); // @var news Objekt
//Tabellenspalten
var $news_id; // @var serial
var $betreff; // @var varchar(128)
var $text; // @var string
var $semester; // @var smallint
var $uid; // @var varchar(16)
var $text; // @var string
var $semester; // @var smallint
var $uid; // @var varchar(16)
var $studiengang_kz; // @var integer
var $verfasser; // @var varchar(64)
var $verfasser; // @var varchar(64)
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $insertamum; // @var timestamp
@@ -91,6 +87,43 @@ class news
return true;
}
// **********************************
// * Laedt alle News die nicht aelter
// * als $maxalter Tage sind
// * @param $maxalter
// **********************************
function getnews($maxalter)
{
$qry = "SELECT * FROM campus.tbl_news WHERE now()-updateamum>$maxalter order by updateamum DESC;";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$newsobj = new news($this->conn);
$newsobj->news_id = $row->news_id;
$newsobj->uid = $row->uid;
$newsobj->studiengang_kz = $row->studiengang_kz;
$newsobj->semester = $row->semester;
$newsobj->betreff = $row->betreff;
$newsobj->text = $row->text;
$newsobj->verfasser = $row->verfasser;
$newsobj->updateamum = $row->updateamum;
$newsobj->updatevon = $row->updatevon;
$newsobj->insertamum = $row->insertamum;
$newsobj->insertvon = $row->insertvon;
$this->result = $newsobj;
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden der News';
return false;
}
}
/**
* Laedt eine News
* @param $news_id ID der zu ladenden Funktion
@@ -145,10 +178,12 @@ class news
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
@@ -174,6 +209,7 @@ class news
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
@@ -219,7 +255,6 @@ class news
}
$qry = 'UPDATE campus.tbl_news SET '.
'news_id='.$this->addslashes($this->news_id).', '.
'betreff='.$this->addslashes($this->betreff).', '.
'text='.$this->addslashes($this->text).', '.
'semester='.$this->addslashes($this->semester).', '.
-191
View File
@@ -1,191 +0,0 @@
<?php
/**
* Ueberlagerte Klasse fuer die
* Erstellung des PDF-Dokumentes
*/
class PDF extends FPDF
{
var $tablewidths;
var $footerset;
var $headerset;
/**
* Konstruktor
*
* @param $orientation: p oder portrait = Hochformat
* l oder landscape = Querformat
*
* $unit: pt = Point
* mm = Millimeter
* cm = Zentimeter
* in = Inch
*
* $format: A3
* A4
* A5
* letter
* legal
*/
function PDF($orientation='P',$unit='mm',$format='A4')
{
//Call parent constructor
$this->FPDF($orientation,$unit,$format);
//Initialization
$this->B=0;
$this->I=0;
$this->U=0;
$this->HREF='';
}
/**
* gibt eine Fusszeile aus
*
*/
function Footer()
{
// Check if Footer for this page already exists (do the same for Header())
if(!$this->footerset[$this->page]) {
$this->SetY(-30);
//Page number
$this->Cell(0,10,'Seite '.$this->PageNo().'/{nb}',0,0,'C');
// set footerset
$this->footerset[$this->page] = 1;
}
}
/**
* gibt eine Kopfzeile aus
*
*/
function Header()
{
// Check if Header for this page already exists (do the same for Footer())
if(!$this->headerset[$this->page]) {
$this->SetFont('Arial','B',10);
$this->SetY(25);
//Page number
$this->Cell(0,10,'',0,0,'C');
// set headerset
$this->SetY(100);
$this->headerset[$this->page] = 1;
}
}
/**
* Erzeugt eine Tabelle
* @param $datas Array - 1. Zeile = Spaltenueberschrift
* x. Zeile = Eintraege
* $lineheight Zeilenhoehe
* $aligns Array - enthaelt die ausrichtung der Spalten (L=Left,R=Right,C=Center)
*/
function morepagestable($datas,$lineheight=12,$aligns)
{
// some things to set and 'remember'
$l = $this->lMargin;
$startheight = $h = $this->GetY();
$startpage = $currpage = $this->page;
// calculate the whole width
foreach($this->tablewidths AS $width)
{
$fullwidth += $width;
}
// Now let's start to write the table
$r=0;
$markline=false;
foreach($datas AS $row => $data)
{
$this->page = $currpage;
// write the horizontal borders
if($r<=1)
{
$this->SetLineWidth(1.5);
$this->Line($l,$h,$fullwidth+$l,$h);
}
else
{
//$this->SetLineWidth(0.001);
//$this->Line($l,$h,$fullwidth+$l,$h); NO-Line
}
//Farben fuer die zeilenmarkierung setzen
if($markline)
$this->SetFillColor(230,230,230);
else
$this->SetFillColor(255,255,255);
$markline=!$markline;
// write the content and remember the height of the highest col
foreach($data AS $col => $txt)
{
$this->page = $currpage;
$this->SetXY($l,$h);
$align=($r==0)?'C':$aligns[$col];
if($r==0) $this->SetFont('Arial','B',$lineheight-2);
else $this->SetFont('Arial','',$lineheight-2);
//erste und zweite zeile nicht fuellen da sonst der rahmen verloren geht
if($row==0)
$this->MultiCell($this->tablewidths[$col],$lineheight,$txt,0,$align,0);
else
$this->MultiCell($this->tablewidths[$col],$lineheight,$txt,0,$align,1);
$l += $this->tablewidths[$col];
if($tmpheight[$row.'-'.$this->page] < $this->GetY())
{
$tmpheight[$row.'-'.$this->page] = $this->GetY();
}
if($this->page > $maxpage)
$maxpage = $this->page;
}
// get the height we were in the last used page
$h = $tmpheight[$row.'-'.$maxpage];
// set the "pointer" to the left margin
$l = $this->lMargin;
// set the $currpage to the last page
$currpage = $maxpage;
$r++;
}
// draw the borders
// we start adding a horizontal line on the last page
$this->page = $maxpage;
$this->SetLineWidth(1.5);
//Immer gleich
if($h<=660)
$h=660;
else
$h=810;
$this->Line($l,$h,$fullwidth+$l,$h);
// now we start at the top of the document and walk down
for($i = $startpage; $i <= $maxpage; $i++)
{
$this->page = $i;
$l = $this->lMargin;
$t = ($i == $startpage) ? $startheight : $this->tMargin;
$lh = ($i == $maxpage) ? $h : $this->h-$this->bMargin;
$this->SetLineWidth(1.5);
$this->Line($l,$t,$l,$lh);
$n=0;
$maxcol=count($this->tablewidths)-1;
foreach($this->tablewidths AS $width)
{
$l += $width;
if($n==$maxcol) $this->SetLineWidth(1.5);
else $this->SetLineWidth(0.5);
$this->Line($l,$t,$l,$lh);
$n++;
}
}
// set it to the last page, if not it'll cause some problems
$this->page = $maxpage;
$this->SetY($h);
}
}
?>
+371 -193
View File
@@ -1,194 +1,372 @@
<?php
/**
* Basisklasse für Personen. Für Mitarbeiter gibt es die Klasse Mitarbeiter und
* für Studenten Studenten
* @author Christian Paminger, Werner Masik
* @version 1.0
* @updated 23-Okt-2004: Funktion getConnection() hinzugefügt
*/
class person
{
var $uid;
var $titel;
var $vornamen;
var $nachname;
var $gebdatum;
var $gebort;
var $gebzeit;
/**
* @var int
*/
var $foto;
var $anmerkungen;
/**
* @var boolean Person ist noch gültig oder nicht (~nicht mehr am Technikum)
*/
var $aktiv;
var $email;
var $alias;
var $homepage;
/**
* Funktionen liefern <code>false</code> wenn Fehler auftritt und schreiben
* die Fehlermeldung in diese Variable
* @var string enthält Fehlermeldung
*/
var $errormsg;
/**
* @var boolean true=Person neu anlegen (INSERT), false=UPDATE
*/
var $new=true;
/**
* @var person Person (todo: wozu?)
*/
var $person;
/**
* @var resource
*/
var $conn;
var $updateamum;
var $updatevon;
function person($conn)
{
$this->conn = $conn;
}
/**
* Verbindung zur Datenbank herstellen
* @return PostgreSQL-Connection oder NULL
*/
function getConnection() {
return $this->conn;
}
/**
* Speichert die Person in die Datenbank. INSERT oder DELETE wird durch 'new'
* bestimmt.
* @return boolean false, wenn's nicht funtkioniert hat (Fehlermeldung steht
* in errormsg)
*/
function save()
{
if (is_null($conn=$this->getConnection())) {
return false;
}
if (strlen($this->uid)==0)
{
$this->errormsg="<i>uid</i> nicht gesetzt";
return false;
}
if ($this->new)
{
$qry="insert into tbl_person(uid,titel,vornamen,nachname,gebdatum,".
"gebort,gebzeit,anmerkungen,aktiv,".
"email,alias,homepage) ".
"values('".$this->uid."','".$this->titel."',".
"'".$this->vornamen."','".$this->nachname."',".
(strlen($this->gebdatum)>0?"'".$this->gebdatum."'":'NULL').
",'".$this->gebort."',".
(strlen($this->gebzeit)>0?"'".$this->gebzeit."'":'NULL').
",'".$this->anmerkungen."',".($this->aktiv?'true':'false').",".
"'".$this->email."',".($this->alias==''?'null':"'$this->alias'").",'".$this->homepage."'".
")";
}
else
{
$qry="update tbl_person set ".
"titel='".$this->titel."',".
"vornamen='".$this->vornamen."',".
"nachname='".$this->nachname."',".
"gebdatum=".(strlen($this->gebdatum)>0?"'".$this->gebdatum."'":'NULL').",".
"gebort='".$this->gebort."',".
"gebzeit=".(strlen($this->gebzeit)>0?"'".$this->gebzeit."'":'NULL').",".
"anmerkungen='".$this->anmerkungen."',".
"aktiv=".($this->aktiv?'true':'false').",".
"email='".$this->email."',alias=".($this->alias==''?'null':"'$this->alias'").",".
"homepage='".$this->homepage."' ".
"where uid='".$this->uid."'";
}
$qry="set datestyle to german;".$qry;
//echo $qry;
if(!($erg=pg_exec($conn, $qry)))
{
$this->errormsg=pg_errormessage($conn);
return false;
}
return true;
}
/**
* Ladet die Attribute der Person aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true, wenn's funktioniert hat; false bei Fehler
*/
function load($uid='')
{
// optional: uid setzen
if (strlen($uid)>0)
$this->uid=$uid;
// uid vorhanden?
if (strlen($this->uid)==0) {
$this->errormsg='<i>uid</i> nicht gesetzt';
return false;
}
if (is_null($conn=$this->getConnection())) {
return false;
}
$sql_query="set datestyle to german;SELECT tbl_person.* ".
"FROM tbl_person ".
"WHERE uid='".addslashes($this->uid)."'";
if(!($erg=pg_exec($conn, $sql_query))) {
$this->errormsg=pg_errormessage($conn);
return false;
}
$num_rows=pg_numrows($erg);
if($num_rows!=1)
{
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
$row=pg_fetch_object($erg,0);
$this->titel=$row->titel;
$this->vornamen=$row->vornamen;
$this->nachname=$row->nachname;
$this->gebdatum=$row->gebdatum;
$this->gebort=$row->gebort;
$this->gebzeit=$row->gebzeit;
$this->foto=$row->foto;
$this->anmerkungen=$row->anmerkungen;
$this->aktiv=$row->aktiv=='t'?true:false;
$this->email=$row->email;
$this->alias=$row->alias;
$this->homepage=$row->homepage;
$this->updateamum=$row->updateamum;
$this->updatevon=$row->updatevon;
$this->new=false;
return true;
}
/**
* Löscht die Person aus der Datenbank. Bei Fehler ist der Rueckgabewert 'false'
* und die Fehlermeldung steht in 'errormsg'.
* @return boolean true bei Erfolg, false bei Fehler
*/
function delete()
{
if (is_null($conn=$this->getConnection()))
{
return false;
}
$qry="delete from tbl_person where uid='".$this->uid."'";
if(!($erg=pg_exec($conn, $sql_query)))
{
$this->errormsg=pg_errormessage($conn);
return false;
}
return true;
}
}
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class person
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $personen = array(); // person Objekt
//Tabellenspalten
var $person_id; // integer
var $sprache; // varchar(16)
var $anrede; // varchar(16)
var $titelpost; // varchar(32)
var $titelpre; // varchar(64)
var $nachname; // varchar(64)
var $vorname; // varchar(32)
var $vornamen; // varchar(128)
var $gebdatum; // date
var $gebort; // varchar(128)
var $gebzeit; // time
var $foto; // oid
var $anmerkungen; // varchar(256)
var $homepage; // varchar(256)
var $svnr; // char(10)
var $ersatzkennzeichen; // char(10)
var $familienstand; // char(1)
var $anzahlkinder; // smalint
var $aktiv; // boolean
var $insertamum; // timestamp
var $insertvon; // varchar(16)
var $updateamum; // timestamp
var $updatevon; // varchar(16)
var $ext_id; // bigint
// *************************************************************************
// * 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
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function person($conn, $person_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($person_id != null)
$this->load($person_id);
}
// *********************************************************
// * Laedt Person mit der uebergebenen ID
// * @param $person_id ID der Person die geladen werden soll
// *********************************************************
function load($person_id)
{
//person_id auf gueltigkeit pruefen
if(is_numeric($person_id) && $person_id!='')
{
$qry = "SELECT person_id, sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen,
gebdatum, gebort, gebzeit, foto, anmerkungen, homepage, svnr, ersatzkennzeichen,
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon, ext_id
FROM tbl_person WHERE person_id='$person_id'";
if(!$result=pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim lesen der Personendaten';
return false;
}
if($row = pg_fetch_object($result))
{
$this->person_id = $row->person_id;
$this->sprache = $row->sprache;
$this->anrede = $row->anrede;
$this->titelpost = $row->titelpost;
$this->titelpre = $row->titelpre;
$this->nachname = $row->nachname;
$this->vorname = $row->vorname;
$this->vornamen = $row->vornamen;
$this->gebdatum = $row->gebdatum;
$this->gebort = $row->gebort;
$this->gebzeit = $row->gebzeit;
$this->foto = $row->foto;
$this->anmerkungen = $row->anmerkungen;
$this->homepage = $row->homepage;
$this->svnr = $row->svnr;
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->familienstand = $row->familienstand;
$this->anzahlkinder = $row->anzahlkinder;
$this->aktiv = ($row->aktiv=='t'?true:false);
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->ext_id = $row->ext_id;
}
else
{
$this->errormsg = 'Es ist kein Personendatensatz mit der ID '.$person_id.' vorhanden';
return false;
}
return true;
}
else
{
$this->errormsg = 'Die person_id muss eine gueltige Zahl sein';
return false;
}
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->sprache)>16)
{
$this->errormsg = 'Sprache darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->anrede)>16)
{
$this->errormsg = 'Anrede darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->titelpost)>32)
{
$this->errormsg = 'Titelpost darf nicht laenger als 32 Zeichen sein';
return false;
}
if(strlen($this->titelpre)>64)
{
$this->errormsg = 'Titelpre darf nicht laenger als 64 Zeichen sein';
return false;
}
if(strlen($this->nachname)>64)
{
$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';
return false;
}
if(strlen($this->vornamen)>128)
{
$this->errormsg = 'Vornamen darf nicht laenger als 128 Zeichen sein';
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';
return false;
}
if($this->foto!='' && !is_numeric($this->foto))
{
$this->errormsg = 'FotoOID ist ungueltig';
return false;
}
if(strlen($this->anmerkungen)>256)
{
$this->errormsg = 'Anmerkungen darf nicht laenger als 256 Zeichen sein';
return false;
}
if(strlen($this->homepage)>256)
{
$this->errormsg = 'Homepage darf nicht laenger als 256 Zeichen sein';
return false;
}
if(strlen($this->svnr)>10)
{
$this->errormsg = 'SVNR darf nicht laenger als 10 Zeichen sein';
return false;
}
if(strlen($this->ersatzkennzeichen)>10)
{
$this->errormsg = 'Ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
return false;
}
if(strlen($this->familienstand)>1)
{
$this->errormsg = 'Familienstand ist ungueltig';
return false;
}
if($this->anzahlkinder!='' && !is_numeric($this->anzahlkinder))
{
$this->errormsg = 'Anzahl der Kinder ist ungueltig';
return false;
}
if(!is_bool($this->aktiv))
{
$this->errormsg = 'Aktiv ist ungueltig';
return false;
}
if(strlen($this->insertvon)>16)
{
$this->errormsg = 'Insertvon darf nicht laenger als 16 Zeichen sien';
return false;
}
if(strlen($this->updatevon)>16)
{
$this->errormsg = 'Updatevon darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->ext_id!='' && !is_numeric($this->ext_id))
{
$this->errormsg = 'Ext_ID ist keine gueltige Zahl';
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 die Personendaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $person_id upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!person::validate())
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,
gebdatum, gebort, gebzeit, foto, anmerkungen, homepage, svnr, ersatzkennzeichen,
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon , ext_id)
VALUES('.$this->addslashes($this->sprache).','.
$this->addslashes($this->anrede).','.
$this->addslashes($this->titelpost).','.
$this->addslashes($this->titelpre).','.
$this->addslashes($this->nachname).','.
$this->addslashes($this->vorname).','.
$this->addslashes($this->vornamen).','.
$this->addslashes($this->gebdatum).','.
$this->addslashes($this->gebort).','.
$this->addslashes($this->gebzeit).','.
$this->addslashes($this->foto).','.
$this->addslashes($this->anmerkungen).','.
$this->addslashes($this->homepage).','.
$this->addslashes($this->svnr).','.
$this->addslashes($this->ersatzkennzeichen).','.
$this->addslashes($this->familienstand).','.
$this->addslashes($this->anzahlkinder).','.
($this->aktiv?'true':'false').','.
$this->addslashes($this->insertamum).','.
$this->addslashes($this->insertvon).','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->ext_id).');';
}
else
{
//person_id auf gueltigkeit pruefen
if(!is_numeric($this->person_id))
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE tbl_person SET'.
' sprache='.$this->addslashes($this->sprache).','.
' anrede='.$this->addslashes($this->anrede).','.
' titelpost='.$this->addslashes($this->titelpost).','.
' titelpre='.$this->addslashes($this->titelpre).','.
' nachname='.$this->addslashes($this->nachname).','.
' vorname='.$this->addslashes($this->vorname).','.
' vornamen='.$this->addslashes($this->vornamen).','.
' gebdatum='.$this->addslashes($this->gebdatum).','.
' gebort='.$this->addslashes($this->gebort).','.
' gebzeit='.$this->addslashes($this->gebzeit).','.
' foto='.$this->addslashes($this->foto).','.
' anmerkungen='.$this->addslashes($this->anmerkungen).','.
' homepage='.$this->addslashes($this->homepage).','.
' svnr='.$this->addslashes($this->svnr).','.
' ersatzkennzeichen='.$this->addslashes($this->ersatzkennzeichen).','.
' familienstand='.$this->addslashes($this->familienstand).','.
' anzahlkinder='.$this->addslashes($this->anzahlkinder).','.
' aktiv='.($this->aktiv?'true':'false').','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).','.
' ext_id='.$this->addslashes($this->ext_id).
" WHERE person_id='$this->person_id'";
}
if(pg_query($this->conn,$qry))
{
if($this->new)
{
$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;
else
{
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
return false;
}
}
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Person-Datensatzes:'.$this->nachname.' '.$qry;
return false;
}
}
}
?>
-62
View File
@@ -1,62 +0,0 @@
<?php
/*
* author: maximilian schremser <max@technikum-wien.at>
* date: 2004-06-26
* date-modified: 2004-10-28
* title: pgRS.class.php
*/
class pgRS
{
var $arr = array();
var $num = 0;
var $CONN = 0;
var $iid = 0;
function pgRS($conn,$sql)
{
//echo $sql;
$this->CONN=$conn;
return $this->query($sql);
}
/* function pgRS($sql, $dbname = "vilesci") {
if (!$this->CONN)
$this->CONN = ConnectDB($dbname);
return $this->query($sql);
}
function pgRS($sql, $dbname = "vilesci", $user = "", $pw = "")
{
if (!$this->CONN)
$this->CONN = ConnectDB($dbname, $user, $pw);
return $this->query($sql);
}
*/
function query($sql)
{
static $selects = 0;
//echo $sql;
$result = pg_exec($this->CONN, $sql);
if (strtolower(substr($sql,0,6))=="select")
{
$arr = array();
++$selects;
$row = 0;
if (($num = pg_numrows($result)) > 0)
$this->num = $num;
while ($row < $this->num)
$arr[] = pg_fetch_array($result,$row++,
PGSQL_ASSOC);
$this->arr = $arr;
}
//else if (strtolower(substr($sql,0,6))=="insert"){
$this->iid = pg_last_oid($result);
//}
}
}
?>
+199 -48
View File
@@ -1,69 +1,220 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse ortraumtyp (FAS-Online)
* @create 04-12-2006
*/
class raumtyp
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $beschreibung; // @var string
var $raumtyp_kurzbz; // @var string
/**
* @var string
* Konstruktor
* @param $conn Connection zur DB
* $ort_kurzbz und hierarchie ID des zu ladenden OrtRaumtyps
*/
var $kurzbz;
/**
* @var string
*/
var $beschreibung;
/**
* @var string
*/
var $errormsg;
/**
* @var resource
*/
var $conn;
function raumtyp($conn)
function raumtyp($conn, $raumtyp_kurzbz=null)
{
$this->conn = $conn;
$this->conn = $conn;
if($raumtyp_kurzbz != null)
$this->load($raumtyp_kurzbz);
}
/**
* Alle Raumtypen zurückgeben
* @return array mit Raumtypen oder false=fehler
* Laedt alle verfuegbaren OrtRaumtypen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
if (is_null($this->conn))
$qry = 'SELECT * FROM tbl_raumtyp order by raumtyp_kurzbz;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
$qry = "select raumtyp_kurzbz,beschreibung from tbl_raumtyp order by raumtyp_kurzbz";
//echo $qry;
if (!($erg = pg_exec($this->conn, $qry)))
while($row = pg_fetch_object($res))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
$result = array();
$num_rows = pg_numrows($erg);
for ($i = 0; $i < $num_rows; $i ++)
{
// Record holen
$row = pg_fetch_object($erg, $i);
// Instanz erzeugen
$rt = new raumtyp($this->conn);
$rt->kurzbz = $row->raumtyp_kurzbz;
$rt->beschreibung = $row->beschreibung;
// in array speichern
$result[] = $rt;
}
return $result;
}
$raumtyp_obj = new ort($this->conn);
$raumtyp_obj->beschreibung = $row->beschreibung;
$raumtyp_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz;
function test()
$this->result[] = $raumtyp_obj;
}
return true;
}
/**
* Laedt einen Raumtyp
* @param $raumtyp ID des zu ladenden Raumtyps
* @return true wenn ok, false im Fehlerfall
*/
function load($raumtyp_kurzbz)
{
$bla= new test();
if($raum_kurzbz == '')
{
$this->errormsg = 'Kein gültiger Schlüssel vorhanden';
return false;
}
$qry = "SELECT * FROM tbl_raumtyp WHERE raumtyp_kurzbz = '$raumtyp_kurzbz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->beschreibung = $row->beschreibung;
$this->raumtyp_kurzbz = $row->kurzbz;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $raumtyp_kurzbz ID des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($raumtyp_kurzbz)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->beschreibung = str_replace("'",'´',$this->beschreibung);
$this->raumtyp_kurzbz = str_replace("'",'´',$this->raumtyp_kurzbz);
//Laenge Pruefen
if(strlen($this->beschreibung)>256)
{
$this->errormsg = "Beschreibung darf nicht laenger als 256 Zeichen sein bei <b>$this->raumtyp_kurzbz</b> - ".$this->beschreibung;
return false;
}
if(strlen($this->raumtyp_kurzbz)>8)
{
$this->errormsg = "Raumtyp_kurzbz darf nicht laenger als 8 Zeichen sein bei <b>$this->raumtyp_kurzbz</b>";
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Pruefen ob id gültig ist
if($this->raumtyp_kurzbz == '')
{
$this->errormsg = 'Keine gültige ID';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_raumtyp (beschreibung, raumtyp_kurzbz) VALUES ('.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->raumtyp_kurzbz).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob id gueltig ist
if($this->raumtyp_kurzbz == '')
{
$this->errormsg = 'Keine gültige ID';
return false;
}
$qry = 'UPDATE tbl_raumtyp SET '.
'beschreibung='.$this->addslashes($this->beschreibung).' '.
'WHERE raumtyp_kurzbz = '.$this->addslashes($this->ort_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;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
}
}
?>
+215 -353
View File
@@ -1,354 +1,216 @@
<?php
class reservierung
{
/**
* @var integer primary key
*/
var $id;
/**
* @var string ort
*/
var $ort_kurzbz;
/**
* @var string studiengang
*/
var $studiengang_kz;
/**
* @var string Lektor/Mitarbeiter
*/
var $uid;
/**
* @var integer stunde-id
*/
var $stunde;
/**
* @var integer unix-datum
*/
var $datum;
/**
* @var string titel
*/
var $titel;
/**
* @var string beschreibung der reservierung
*/
var $beschreibung;
/**
* @var integer
*/
var $semester;
/**
* @var string verband-id
*/
var $verband;
/**
* @var string gruppe-id
*/
var $gruppe;
/**
* @var einheit-kurzbezeichnung
*/
var $einheit_kurzbz;
/**
* @var boolean
*/
var $new=true;
var $errormsg;
var $conn;
function reservierung($conn,$id='')
{
$this->conn = $conn;
if (strlen($id)>0) {
$this->id=$id;
$this->load();
}
}
/**
* Verbindung zur Datenbank herstellen
* @return PostgreSQL-Connection oder NULL
function getConnection() {
if (!$conn = @pg_pconnect(CONN_STRING)) {
$this->errormsg="Es konnte keine Verbindung zum Server ".
"aufgebaut werden.";
return null;
}
return $conn;
} */
function load($id='')
{
if (is_null($this->conn))
{
return false;
}
$sql_query="select * from tbl_reservierung where reservierung_id=".$this->id;
if(!($erg=@pg_exec($this->conn, $sql_query))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
if($num_rows!=1) {
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
$row=pg_fetch_object($erg,0);
$this->new=false;
$this->id=$row->reservierung_id;
$this->ort_kurzbz=$row->ort_kurzbz;
$this->studiengang_kz=$row->studiengang_kz;
$this->uid=$row->uid;
$this->stunde=$row->stunde;
$this->datum=$this->unixDate($row->datum);
$this->titel=$row->titel;
$this->beschreibung=$row->beschreibung;
$this->semester=$row->semester;
$this->verband=$row->verband;
$this->gruppe=$row->gruppe;
$this->einheit_kurzbz=$row->einheit_kurzbz;
return true;
}
function save()
{
if (is_null($this->conn))
{
return false;
}
if ($this->new)
{
// Kollision-Check
$r=$this->exists($this->datum,$this->stunde,$this->ort_kurzbz);
if ($r!==false)
{
$this->errormsg("Kollision mit bereits bestehender Reservierung: ".$r->titel." (".$r->uid.")");
return false;
}
// Stundenplan-Kollision?
$kollisionen=$this->collisionStundenplan($this->datum,$this->stunde,$this->ort_kurzbz);
if ($kollisionen>0)
{
$this->errormsg="Kollisionen mit Stundenplan: $kollisionen";
return false;
}
$qry="insert into tbl_reservierung(ort_kurzbz,studiengang_kz,uid,stunde,datum,titel,beschreibung,semester,verband,gruppe,einheit_kurzbz)".
"values('".$this->ort_kurzbz."',".
$this->studiengang_kz.",'".
$this->uid."',".$this->stunde.",'".
date("d.m.Y",$this->datum)."','".
$this->titel."','".$this->beschreibung."',".
(ctype_digit($this->semester)?$this->semester:'NULL').",".
(strlen($this->verband)>0?"'".$this->verband."'":'NULL').",".
(strlen($this->gruppe)>0?"'".$this->gruppe."'":'NULL').",".
(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').
")";
} else
{
$qry="update tbl_reservierung set ".
"ort_kurzbz='".$this->ort_kurzbz."',".
"studiengang_kz='".$this->studiengang_kz."',".
"uid='".$this->uid."',".
"stunde=".$this->stunde.",".
"datum='".date("d.m.Y",$this->datum)."',".
"titel='".$this->titel."',".
"beschreibung='".$this->beschreibung."',".
"semester=".(ctype_digit($this->semester)?$this->semester:'NULL').",".
"verband=".(strlen($this->verband)>0?"'".$this->verband."'":'NULL').",".
"gruppe=".(strlen($this->gruppe)>0?"'".$this->gruppe."'":'NULL').",".
"einheit_kurzbz=".(strlen($this->einheit_kurzbz)>0?"'".$this->einheit_kurzbz."'":'NULL').
"WHERE reservierung_id=".$this->reservierung_id;
}
$qry="set datestyle to german;".$qry;
//echo $qry;
if(!($erg=pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
return true;
}
/**
* Überprüfen ob eine Kollision mit dem Stundenplan besteht
* @param integer $datum datum im unix-format
* @param integer $stunde id der stunde
* @param string $ort_kurzbz ort-ID
* @return integer anzahl der Kollisionen, -1 bei fehler
*/
function collisionStundenplan($datum,$stunde,$ort_kurzbz)
{
if (is_null($this->conn)) {
return -1;
}
$qry="SELECT uid, lehrfach_nr, studiengang_kz, stundenplan_id, unr, datum, stunde, ort_kurzbz, semester, verband, gruppe, einheit_kurzbz, titel, anmerkung, fix, stg_kurzbz, stg_kurzbzlang, stg_bezeichnung, fachbereich_id, lehrfach, farbe, lehrform, aktiv, lektor, fixangestellt ".
"FROM vw_stundenplan ".
"WHERE datum='".date('d.m.Y',$datum)."' ".
"AND stunde=".$stunde." ".
"AND ort_kurzbz='".$ort_kurzbz."' ".
"order by semester,verband,gruppe";
if(!($erg=pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return -1;
}
$num_rows=pg_numrows($erg);
return $num_rows;
}
/**
* Überprüfen, ob bereits eine Reservierung existiert
* @param integer $datum datum im unix-format
* @param integer $stunde id der stunde
* @param string $ort_kurzbz ort-ID
* @return reservierung reservierung die bereits existiert
*/
function exists($datum,$stunde,$ort_kurzbz)
{
if (is_null($this->conn)) {
return false;
}
$qry="SELECT reservierung_id from tbl_reservierung ".
"WHERE datum='".date('d.m.Y',$datum)."' ".
"AND stunde=".$stunde." ".
"AND ort_kurzbz='".$ort_kurzbz."' ".
"ORDER BY semester,verband,gruppe";
if(!($erg=pg_exec($this->conn, $qry)))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
$row=pg_fetch_object($erg,0);
$id=$row->reservierung_id;
$r=new reservierung($id);
// bereits vorhandene reservierung zurückgeben
if ($r!==false) return $r;
// reservierung konnte nicht geladen werden
$this->errormsg='Reservierung konnte nicht geladen werden';
return false;
}
/**
* reservierung löschen
*/
function delete()
{
if (is_null($conn=$this->getConnection())) {
return false;
}
$sql_query="DELETE FROM tbl_reservierung WHERE reservierung_id=".$this->id;
$result=pg_exec($this->conn, $sql_query);
$num_rows=pg_numrows($result);
if ($result)
{
print_r($result);
return true;
}
$this->errormsg=pg_errormessage($this->conn);
return false;
}
/**
* Alle mehrfach Reservierungen holen
* @return array(datum,stunde,ort)
*/
function getAllMehrfach()
{
if (is_null($this->conn))
{
return false;
}
$sql_query="set datestyle to german;".
"SELECT count(reservierung_id), datum, stunde, ort_kurzbz ".
"FROM tbl_reservierung GROUP BY datum, stunde, ort_kurzbz ".
"HAVING (count(reservierung_id)>1) ".
"ORDER BY datum, stunde, ort_kurzbz";
if(!($erg=@pg_exec($this->conn, $sql_query))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$result[]=array('datum'=>$this->unixDate($row->datum),
'stunde'=>$row->stunde,
'ort'=>$row->ort_kurzbz);
}
return $result;
}
/**
* mehrfach vorkommende Reservierungen laden
* @param string $datum
* @param integer $stunde
* @return array
*/
function getMehrfach($datum,$stunde,$ort_kurzbz) {
if (is_null($this->conn)) {
return false;
}
$sql_query="set datestyle to german;".
"SELECT tbl_reservierung.*, tbl_ort.ort_kurzbz AS ortkurzbz, tbl_mitarbeiter.kurzbz AS lektorkurzbz ".
"FROM tbl_reservierung, tbl_ort, tbl_person,tbl_mitarbeiter ".
"WHERE datum='$datum' AND tbl_reservierung.stunde=$stunde ".
"AND tbl_reservierung.ort_kurzbz='$ort_kurzbz' AND ".
"tbl_reservierung.ort_kurzbz=tbl_ort.ort_kurzbz ".
"AND tbl_person.uid=tbl_mitarbeiter.uid ".
"and tbl_mitarbeiter.lektor=true;";
if(!($erg=@pg_exec($this->conn, $sql_query))) {
$this->errormsg=pg_errormessage($this->conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new reservierung();
$l->new=false;
$l->id=$row->reservierung_id;
$l->ort_kurzbz=$row->ort_kurzbz;
$l->studiengang_kz=$row->studiengang_kz;
$l->uid=$row->uid;
$l->stunde=$row->stunde;
$l->datum=$this->unixDate($row->datum);
$l->titel=$row->titel;
$l->beschreibung=$row->beschreibung;
$l->semester=$row->semester;
$l->verband=$row->verband;
$l->gruppe=$row->gruppe;
$l->einheit_kurzbz=$row->einheit_kurzbz;
$result[]=$l;
}
return $result;
}
function unixDate($date)
{
if (strlen($date)>0)
{
$_d1 = explode(".", $date);
$d1 = $_d1[0];
$m1 = $_d1[1];
$y1 = $_d1[2];
$unixDate=mktime(0,0,0,$d1,$m1,$y1);
} else
{
return null;
}
return $unixDate;
}
}
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
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 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).','.
$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 campus.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;
}
}
}
?>
+162 -325
View File
@@ -1,345 +1,182 @@
<?php
/**
* Basisklasse für Studenten
* @author Christian Paminger, Werner Masik
* @version 1.0
* @updated 07-Dez-2004
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class student extends person
{
/**
* @var integer
*/
var $studiengang_kz;
/**
* @var string
*/
var $matrikelnr;
/**
* @var integer
*/
var $semester;
/**
* @var $string
*/
var $verband;
/**
* @var string
*/
var $gruppe;
/**
* @var student
*/
var $student;
/**
* @var einheit
*/
var $einheit;
/**
* @var studiengangsbezeichnung (nur zum Anzeigen, wird nicht gespeichert)
*/
var $stg_bezeichnung;
/**
* @var string fehlermeldung
*/
var $errormsg;
function student($conn,$uid='')
class student extends benutzer
{
//Tabellenspalten
var $matrikelnr;
var $prestudent_id;
var $studiengang_kz;
var $semester;
var $verband;
var $gruppe;
// *************************************************************************
// * 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
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function student($conn, $student_id=null, $unicode=false)
{
$this->conn = $conn;
if (strlen($uid)>0) {
$this->uid=$uid;
$this->load();
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;
}
//Student laden
if($student_id!=null)
$this->load($student_id);
}
/**
* Speichert den Studenten in die Datenbank. Bei Fehler ist der Rueckgabewert
* 'false' und die Fehlermeldung steht in 'errormsg'. INSERT oder DELETE wird
* durch 'new' bestimmt.
* @return boolean true=ok, false=fehler
*/
function save()
{
// uid vorhanden?
if (strlen($this->uid)==0) {
$this->errormsg='<i>uid</i> nicht gesetzt.';
return false;
}
// Connection holen
if (is_null($conn=person::getConnection())) {
return false;
}
// Daten zur Person speichern
if (!person::save()) {
$this->errormsg.="<br/>Daten zur Person konnten nicht gespeichert werden.";
return false;
}
if ($this->new) {
$qry="INSERT INTO tbl_student(uid,studiengang_kz,matrikelnr,".
"semester,verband,gruppe,updateamum,updatevon)".
"values(".
"'".$this->uid."',".
(ctype_digit($this->studiengang_kz)?$this->studiengang_kz:'NULL').",".
"'".$this->matrikelnr."',".
(ctype_digit($this->semester)?$this->semester:'NULL').",".
"'".$this->verband."','".$this->gruppe."',".
"now(),'".$_SERVER['PHP_AUTH_USER']."'".
")";
} else
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->uid)>16)
{
$qry="UPDATE tbl_student ".
"SET studiengang_kz=".$this->studiengang_kz.",".
"matrikelnr='".$this->matrikelnr."',".
"semester=".(ctype_digit($this->semester)?$this->semester:'NULL').",".
"verband='".$this->verband."',".
"gruppe='".$this->gruppe."',".
"updateamum=now(),updatevon='".$_SERVER['PHP_AUTH_USER']."' ".
"WHERE uid='".$this->uid."'";
}
//echo "<br>".$qry;
if(!($erg=pg_exec($conn, $qry)))
{
$this->errormsg=pg_errormessage($conn);
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->uid=='')
{
$this->errormsg = 'UID muss eingegeben werden';
return false;
}
if(strlen($this->matrikelnr)>15)
{
$this->errormsg = 'Matrikelnummer darf nicht laenger als 15 Zeichen sein';
return false;
}
if(strlen($this->updatevon)>32)
{
$this->errormsg = 'Updatevon darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->prestudent_id!='' && !is_numeric($this->prestudent_id))
{
$this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->semester))
{
$this->errormsg = 'Semester muss ein gueltige Zahl sein';
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;
}
return true;
}
/**
* Ladet die Attribute des Studenten aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function load($uid='')
// ************************************************************
// * Speichert die Studentendaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $person_id upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
// optional: uid setzen
if (strlen($uid)>0)
$this->uid=$uid;
// uid vorhanden?
if (strlen($this->uid)==0) {
$this->errormsg='<i>uid</i> nicht gesetzt.';
//Variablen checken
if(!$this->validate())
return false;
}
// Connection holen
if (is_null($conn=person::getConnection())) {
return false;
}
// Daten zur Person laden
if (!person::load()) {
$this->errormsg.="<br/>Daten zur Person konnten nicht geladen werden.";
return false;
}
// Studentendaten holen
$sql_query="SELECT s.studiengang_kz,s.matrikelnr,s.semester,s.verband,s.gruppe ".
"FROM tbl_student as s ".
"WHERE uid='".$this->uid."'";
$sql_query="set datestyle to german;
SELECT tbl_person.*, m.studiengang_kz,m.matrikelnr,m.semester,m.verband,m.gruppe,
tbl_studiengang.studiengang_kz,tbl_studiengang.bezeichnung
FROM tbl_person join tbl_student as m using(uid) join
tbl_studiengang on (m.studiengang_kz=tbl_studiengang.studiengang_kz)
WHERE uid='".$this->uid."'";
if(!($erg=pg_exec($conn, $sql_query)))
die(pg_errormessage($conn));
$num_rows=pg_numrows($erg);
if($num_rows!=1)
pg_query($this->conn,'BEGIN;');
//Basisdaten speichern
if(!benutzer::save())
{
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
pg_query($this->conn,'ROLLBACK;');
return false;
}
if($this->new)
{
//Neuen Datensatz anlegen
$qry = "INSERT INTO tbl_student(student_uid, matrikelnr, updateamum, updatevon, prestudent_id,
studiengang_kz, semester, verband, gruppe)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->matrikelnr).",".
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->prestudent_id).','.
$this->studiengang_kz.','.
$this->semester.','.
($this->verband!=''?"'".addslashes($this->verband)."'":' ').','.
($this->gruppe!=''?"'".addslashes($this->gruppe)."'":' ').');';
}
else
{
//Bestehenden Datensatz updaten
$qry = 'UPDATE tbl_student SET'.
' matrikelnr='.$this->addslashes($this->matrikelnr).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).','.
' prestudent_id='.$this->addslashes($this->prestudent_id).','.
' studiengang_kz='.$this->studiengang_kz.','.
' semester='.$this->semester.','.
' verband='.$this->addslashes($this->verband).','.
' gruppe='.$this->addslashes($this->gruppe).
" WHERE student_uid='".addslashes($this->uid)."';";
}
if(pg_query($this->conn,$qry))
{
pg_query($this->conn,'COMMIT;');
//Log schreiben
return true;
}
else
{
pg_query($this->conn,'ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Studenten-Datensatzes'.$qry;
return false;
}
$row=pg_fetch_object($erg,0);
$this->studiengang_kz=$row->studiengang_kz;
$this->matrikelnr=$row->matrikelnr;
$this->semester=$row->semester;
$this->verband=$row->verband;
$this->gruppe=$row->gruppe;
$this->uid=$row->uid;
$this->titel=$row->titel;
$this->vornamen=$row->vornamen;
$this->nachname=$row->nachname;
$this->gebdatum=$row->gebdatum;
$this->gebort=$row->gebort;
$this->gebzeit=$row->gebzeit;
$this->foto=$row->foto;
$this->anmerkungen=$row->anmerkungen;
$this->aktiv=$row->aktiv=='t'?true:false;
$this->email=$row->email;
$this->homepage=$row->homepage;
$this->updateamum=$row->updateamum;
$this->updatevon=$row->updatevon;
$this->stg_bezeichnung=$row->bezeichnung;
// todo: einheit
$result[]=$this;
return $result;
//return true;
}
/**
* Loescht den Studenten aus der Datenbank. Bei Fehler ist der Rueckgabewert
* 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function delete()
{
return false;
}
/**
* Rueckgabewert ist die Anzahl der Ergebnisse. Bei Fehler negativ und die
* Fehlermeldung liegt in errormsg.
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
* @param string $einheit_kurzbz Einheit
* @param string grp Gruppe
* @param string ver Verband
* @param integer sem Semester
* @param integer stg_kz Kennzahl des Studiengangs
* @return integer Anzahl der gefundenen Einträge; <b>negativ</b> bei Fehler
*/
function getStudents($einheit_kurzbz, $grp, $ver, $sem, $stg_kz)
{
if (is_null($conn=person::getConnection())) {
return false;
}
$join = '';
$where = '';
if (strlen($einheit_kurzbz)>0)
{
// einheit?
$join=" join tbl_einheitstudent on (m.uid=tbl_einheitstudent.uid) ";
$where=" tbl_einheitstudent.einheit_kurzbz='".$einheit_kurzbz."'";
} else
{
if (strlen($grp)>0)
{
// Gruppe
$where.=(strlen($where)>0?' and ':'')." m.gruppe='".$grp."' ";
}
if (strlen($ver)>0)
{
// Verband
$where.=(strlen($where)>0?' and ':'')." m.verband='".$ver."' ";
}
if (strlen($sem)>0)
{
// Semester
$where.=(strlen($where)>0?' and ':'')." m.semester=".$sem." ";
}
if (strlen($stg_kz)>0)
{
// Studiengang
$where.=(strlen($where)>0?' and ':'')." m.studiengang_kz='".$stg_kz."' ";
}
}
$sql_query="set datestyle to german;SELECT tbl_person.*,".
"m.studiengang_kz,m.matrikelnr,m.semester,m.verband,m.gruppe, ".
"tbl_studiengang.studiengang_kz,tbl_studiengang.bezeichnung ".
"FROM tbl_person join tbl_student as m using(uid) join ".
"tbl_studiengang on (m.studiengang_kz=tbl_studiengang.studiengang_kz) $join ".
(strlen($where)>1?'WHERE '.$where:'').
"ORDER by upper(tbl_person.nachname),upper(tbl_person.vornamen)";
//echo $sql_query;
if(!($erg=@pg_exec($conn, $sql_query))) {
$this->errormsg=pg_errormessage($conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new student($conn);
// Personendaten
$l->uid=$row->uid;
$l->titel=$row->titel;
$l->vornamen=$row->vornamen;
$l->nachname=$row->nachname;
$l->gebdatum=$row->gebdatum;
$l->gebort=$row->gebort;
$l->gebzeit=$row->gebzeit;
$l->foto=$row->foto;
$l->anmerkungen=$row->anmerkungen;
$l->aktiv=$row->aktiv=='t'?true:false;
$l->email=$row->email;
$l->homepage=$row->homepage;
$l->updateamum=(isset($row->updateamum)?$row->updateamum:'');
$l->updatevon=(isset($row->updatevon)?$row->updatevon:'');
// Studentendaten
$l->matrikelnr=$row->matrikelnr;
$l->gruppe=$row->gruppe;
$l->verband=$row->verband;
$l->semester=$row->semester;
$l->studiengang_kz=$row->studiengang_kz;
$l->stg_bezeichnung=$row->bezeichnung;
// student in Array speichern
$result[]=$l;
}
return $result;
}
/**
* gibt array mit allen Studenten zurück
* @return array Studenten
*/
function getAll() {
if (is_null($conn=person::getConnection())) {
return false;
}
$sql_query="set datestyle to german;SELECT tbl_person.*,".
"m.matrikelnr,m.semester,m.verband,m.gruppe, ".
"tbl_studiengang.studiengang_kz,tbl_studiengang.bezeichnung ".
"FROM tbl_person join tbl_student as m using(uid) ".
" join tbl_studiengang on (m.studiengang_kz=tbl_studiengang.studiengang_kz) ".
"ORDER by upper(tbl_person.nachname),upper(tbl_person.vornamen)";
//echo $sql_query;
if(!($erg=@pg_exec($conn, $sql_query))) {
$this->errormsg=pg_errormessage($conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new student($conn);
// Personendaten
$l->uid=$row->uid;
$l->titel=$row->titel;
$l->vornamen=$row->vornamen;
$l->nachname=$row->nachname;
$l->gebdatum=$row->gebdatum;
$l->gebort=$row->gebort;
$l->gebzeit=$row->gebzeit;
$l->foto=$row->foto;
$l->anmerkungen=$row->anmerkungen;
$l->aktiv=$row->aktiv=='t'?true:false;
$l->email=$row->email;
$l->homepage=$row->homepage;
$l->updateamum=$row->updateamum;
$l->updatevon=$row->updatevon;
// Studentendaten
$l->matrikelnummer=$row->matrikelnummer;
$l->gruppe=$row->gruppe;
$l->verband=$row->verband;
$l->semester=$row->semester;
$l->studiengang_kz=$row->studiengang_kz;
$l->stg_bezeichnung=$row->bezeichnung;
// student in Array speichern
$result[]=$l;
}
return $result;
}
}
?>
+208 -132
View File
@@ -1,152 +1,228 @@
<?php
/**
* Basisklasse für Studiengaenge
* @author Christian Paminger, Werner Masik
* @version 1.0
* @updated 28-Okt-2004:
* Klasse studiengang (FAS-Online)
* @create 14-03-2006
*/
class studiengang {
class studiengang
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var studiengang Objekt
var $studiengang_id; // @var integer
var $bafirmaaufzeugnis; // @var boolean
var $batitelaufzeugnis; // @var boolean
var $bescheid; // @var string
var $bescheidbgbl1; // @var string
var $bescheidbgbl2; // @var string
var $bescheidgz; // @var string
var $bescheidvom; // @var date
var $beschreibung; // @var string
var $betreuerstunden; // @var float
var $emailkuerzel; // @var string
var $endedatum; // @var date
var $kennzahl; // @var integer
var $kennzahl_neu; // @var integer
var $kuerzel; // @var string
var $name; // @var string
var $organisationsform; // @var integer
var $regelstudiendauer; // @var integer
var $regelwochenstunden; // @var integer
var $standort; // @var string
var $startdatum; // @var date
var $studiengangsart; // @var integer
var $studiensemester_id; // @var integer
var $telefonnummer; // @var string
var $updateamum; // @var timestamp
var $updatevon; // @var string
var $insertamum; // @var timestamp
var $insertvon; // @var string
/**
* @var studiengang_kz
* Konstruktor
* @param conn Connection zur Datenbank
* studiengang_id ID des zu ladenden Studienganges
*/
var $studiengang_kz;
/**
* @var string
*/
var $kurzbz;
/**
* @var string
*/
var $kurzbzlang;
/**
* @var string
*/
var $bezeichnung;
/**
* @var integer
*/
var $max_semester;
/**
* @var char
*/
var $typ;
/**
* @var string
*/
var $farbe;
/**
* @var string
*/
var $email;
/**
* @var string
*/
var $errormsg;
/**
* @var resource
*/
var $conn;
function studiengang($conn)
{
$this->conn = $conn;
}
/**
* Verbindung zur Datenbank herstellen
* @return PostgreSQL-Connection oder NULL
function getConnection()
function studiengang($conn, $studiengang_id=null)
{
if (!$conn = @pg_pconnect(CONN_STRING)) {
$this->errormsg="Es konnte keine Verbindung zum Server ".
"aufgebaut werden.";
return null;
}
return $conn;
}*/
/**
* @return array Array mit allen Studiengängen, oder false bei Fehler
*/
function getAll($order='kurzbz')
{
if (is_null($this->conn)) {
$this->errormsg = "Connection failed";
return false;
}
$qry="select * from tbl_studiengang order by $order";
if(!($erg=pg_exec($this->conn, $qry)))
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg=pg_errormessage($this->conn);
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
$result=array();
$num_rows=pg_numrows($erg);
for ($i=0;$i<$num_rows;$i++)
if($studiengang_id != null)
$this->load($studiengang_id);
}
/**
* Laedt einen Studiengang
* @param stg_id ID des Studienganges der zu laden ist
* @return true wenn ok, false im Fehlerfall
*/
function load($stg_id)
{
//Pruefen ob stg_id eine gueltige Zahl ist
if(!is_numeric($stg_id) || $stg_id == '')
{
$row=pg_fetch_object($erg,$i);
$p=new studiengang($this->conn);
$p->studiengang_kz=$row->studiengang_kz;
$p->kurzbz=$row->kurzbz;
$p->kurzbzlang=$row->kurzbzlang;
$p->bezeichnung=$row->bezeichnung;
$p->max_semester=$row->max_semester;
$p->typ=$row->typ;
$p->farbe=$row->farbe;
$p->email=$row->email;
$result[]=$p;
}
return $result;
}
function load($stgkz)
{
if (is_null($this->conn)) {
$this->errormsg = "Connection failed";
$this->errormsg = 'stg_id muss eine gueltige Zahl sein';
return false;
}
$qry="select * from tbl_studiengang where studiengang_kz=$stgkz";
if(!($erg=pg_exec($this->conn, $qry)))
$qry = "SELECT * FROM studiengang WHERE studiengang_pk = '$stg_id'";
if(!$res=pg_query($this->conn, $qry))
{
$this->errormsg=pg_errormessage($this->conn);
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row = pg_fetch_object($res))
{
$this->studiengang_id = $row->studiengang_pk;
$this->name = $row->name;
$this->erhalter_id = $row->erhalter_fk;
$this->kuerzel = $row->kuerzel;
$this->studiengangsart = $row->studiengangsart;
$this->organisationsform = $row->organisationsform;
$this->kennzahl = $row->kennzahl;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->standort = $row->standort;
$this->regelstudiendauer = $row->regelstudiendauer;
$this->emailkuerzel = $row->emailkuerzel;
$this->beschreibung = $row->beschreibung;
$this->telefonnummer = $row->telefonnummer;
$this->bescheid = $row->bescheid;
$this->bescheidvom = $row->bescheidvom;
$this->bescheidgz = $row->bescheidgz;
$this->bescheidbgbl1 = $row->bescheidbgbl1;
$this->bescheidbgbl2 = $row->bescheidbgbl2;
$this->kennzahl_neu = $row->kennzahl_neu;
$this->nummerintern = $row->nummerintern;
$this->bafirmaaufzeugnis = ($row->bafirmaaufzeugnis=='t'?true:false);
$this->batitelaufzeugnis = ($row->batitelaufzeugnis=='t'?true:false);
}
else
{
if(pg_num_rows($erg)>0)
{
$row=pg_fetch_object($erg);
$this->studiengang_kz = $row->studiengang_kz;
$this->kurzbz = $row->kurzbz;
$this->kurzbzlang = $row->kurzbzlang;
$this->bezeichnung = $row->bezeichnung;
$this->typ = $row->typ;
$this->farbe = $row->farbe;
$this->email = $row->email;
$this->max_semester = $row->max_semester;
$this->max_verband = $row->max_verband;
$this->max_gruppe = $row->max_gruppe;
return true;
}
else
{
$this->errormsg = "Studiengang konnte nicht aufgeloest werden";
return false;
}
$this->errormsg = 'Kein Datensatz mit dieser Nummer vorhanden';
return false;
}
}
return true;
}
/**
* Laedt Studiengang und Studiensemester
* @param stg_id Studiengangs_id
* stsem_id Studiensemester_id
*/
function load_stsem($stg_id, $stsem_id)
{
//Studiengang laden
if(!$this->load($stg_id))
return false;
//pruefen ob stsem_id eine gueltige Zahl ist
if(!is_numeric($stsem_id) || $stsem_id == '')
{
$this->errormsg = 'studiensemester_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM studiengang_studiensemester WHERE studiengang_fk='$this->studiengang_id' ".
"AND studiensemester_fk='$stsem_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
if($row = pg_fetch_object($res))
{
$this->studiensemester_id = $row->studiensemester_fk;
$this->startdatum = $row->startdatum;
$this->endedatum = $row->endedatum;
$this->regelwochenstunden = $row->regelwochen;
$this->betreuerstunden = $row->rvar1;
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
return true;
}
/**
* Liefert alle Studiengaenge
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM studiengang order by name;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
{
$stg_obj = new studiengang($this->conn);
$stg_obj->studiengang_id = $row->studiengang_pk;
$stg_obj->name = $row->name;
$stg_obj->erhalter_id = $row->erhalter_fk;
$stg_obj->kuerzel = $row->kuerzel;
$stg_obj->studiengangsart = $row->studiengangsart;
$stg_obj->organisationsform = $row->organisationsform;
$stg_obj->kennzahl = $row->kennzahl;
$stg_obj->updateamum = $row->creationdate;
$stg_obj->updatevon = $row->creationuser;
$stg_obj->standort = $row->standort;
$stg_obj->regelstudiendauer = $row->regelstudiendauer;
$stg_obj->emailkuerzel = $row->emailkuerzel;
$stg_obj->beschreibung = $row->beschreibung;
$stg_obj->telefonnummer = $row->telefonnummer;
$stg_obj->bescheid = $row->bescheid;
$stg_obj->bescheidvom = $row->bescheidvom;
$stg_obj->bescheidgz = $row->bescheidgz;
$stg_obj->bescheidbgbl1 = $row->bescheidbgbl1;
$stg_obj->bescheidbgbl2 = $row->bescheidbgbl2;
$stg_obj->kennzahl_neu = $row->kennzahl_neu;
$stg_obj->nummerintern = $row->nummerintern;
$stg_obj->bafirmaaufzeugnis = ($row->bafirmaaufzeugnis=='t'?true:false);
$stg_obj->batitelaufzeugnis = ($row->batitelaufzeugnis=='t'?true:false);
$this->result[] = $stg_obj;
}
return true;
}
/**
* Loescht einen Studiengang
* @param $stg_id ID des zu loeschenden Studienganges
* @return true wenn ok, false im Fehlerfall
*/
function delete($stg_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
}
?>
+139 -133
View File
@@ -1,154 +1,160 @@
<?php
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class studiensemester
class studiensemester
{
/**
* @var string
*/
var $kurzbz;
/**
* @var string
*/
var $start;
/**
* @var string
*/
var $ende;
/**
* @var string
*/
var $errormsg;
/**
* @var conn
*/
var $conn;
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $studiensemester = array(); // studiensemester Objekt
function studiensemester($conn)
{
$this->conn=$conn;
}
/**
* Verbindung zur Datenbank herstellen
* @return PostgreSQL-Connection oder NULL
//Tabellenspalten
var $studiensemester_kurzbz; // varchar(16)
var $start; // date
var $ende; // date
function getConnection()
// ***********************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional ein LF
// * @param $conn Datenbank-Connection
// * $studiensemester_kurzbz StSem das geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// ***********************************************************************
function studiensemester($conn, $studiensemester_kurzbz=null, $unicode=false)
{
if (!$conn = @ pg_pconnect(CONN_STRING))
{
$this->errormsg = "Es konnte keine Verbindung zum Server "."aufgebaut werden.";
return null;
}
return $conn;
}*/
function load()
{
}
/**
* Alle Studiensemester zurückgeben
* @return array mit Studiensemester oder false=fehler
*/
function getAll($order='studiensemester_kurzbz')
{
if (is_null($this->conn))
{
return false;
}
$qry = "select * from tbl_studiensemester ".
"order by $order";
//echo $qry;
if (!($erg = pg_exec($this->conn, $qry)))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
$result = array();
$num_rows = pg_numrows($erg);
for ($i = 0; $i < $num_rows; $i ++)
{
// Record holen
$row = pg_fetch_object($erg, $i);
// Instanz erzeugen
$lf = new studiensemester($this->conn);
$lf->kurzbz = $row->studiensemester_kurzbz;
$lf->start = $row->start;
$lf->ende = $row->ende;
// in array speichern
$result[] = $lf;
}
return $result;
}
/**
* Liefert das Aktuelle Studiensemester
* @return aktuelles Studiensemester oder false wenn es keines gibt
*/
function getakt()
{
$qry = "Select studiensemester_kurzbz from tbl_studiensemester where start <= now() and ende >= now()";
if(!$res=pg_exec($this->conn,$qry))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
$this->conn = $conn;
if(pg_num_rows($res)>0)
{
$erg = pg_fetch_object($res);
return $erg->studiensemester_kurzbz;
}
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Kein aktuelles Studiensemester vorhanden";
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($studiensemester_kurzbz != null)
$this->load($studiensemester_kurzbz);
}
/**
* Liefert das Aktuelle Studiensemester oder das darauffolgende
* @return Studiensemester oder false wenn es keines gibt
*/
function getaktorNext()
// **************************************************************
// * Laedt das Studiensemester mit der uebergebenen ID
// * @param $studiensemester_kurzbz Stsem das geladen werden soll
// **************************************************************
function load($studiensemester_kurzbz)
{
if($stsem=$this->getakt())
return $stsem;
else
$qry = "SELECT * FROM tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
if(!$result=pg_query($this->conn,$qry))
{
$qry = "Select studiensemester_kurzbz from tbl_studiensemester where ende >= now() ORDER BY ende";
if(!$res=pg_exec($this->conn,$qry))
{
$this->errormsg = pg_errormessage($this->conn);
return false;
}
if(pg_num_rows($res)>0)
{
$erg = pg_fetch_object($res);
return $erg->studiensemester_kurzbz;
}
else
{
$this->errormsg = "Kein aktuelles Studiensemester vorhanden";
return false;
}
$this->errormsg = 'Fehler beim lesen des Studiensemesters';
return false;
}
if($row = pg_fetch_object($result))
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
}
else
{
$this->errormsg = "Es ist kein Studiensemester mit der Kurzbezeichung $studiensemester_kurzbz vorhanden";
return false;
}
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->studiensemester_kurzbz)>16)
{
$this->errormsg = 'Studiensemester Kurzbezeichnung darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->studiensemester_kurzbz=='')
{
$this->errormsg = 'Es muss eine Kurzbezeichnung eingegeben werden';
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 das Studiensemester 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;
if($this->new)
{
$qry = "INSERT INTO tbl_studiensemester (studiensemester_kurzbz, start, ende)
VALUES('".addslashes($this->studiensemester_kurzbz)."',".
$this->addslashes($this->start).','.
$this->addslashes($this->ende).');';
}
else
{
$qry = 'UPDATE tbl_studiensemester SET'.
' start='.$this->addslashes($this->start).','.
' ende='.$this->addslashes($this->ende).
" WHERE studiensemester_kurzbz='$this->studiensemester_kurzbz'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Studiensemesters:'.$qry;
return false;
}
}
function delete()
{
}
}
?>
File diff suppressed because it is too large Load Diff
+296
View File
@@ -0,0 +1,296 @@
<?php
/**
* Klasse telefonnummer (FAS-Online)
* @create 13-03-2006
*/
class telefonnummer
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var telefonnummer Objekt
//Tabellenspalten
var $telefonnummer_id; // @var integer
var $person_id; // @var integer
var $name; // @var string
var $nummer; // @var string
var $typ; // @var integer
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
/**
* Konstruktor
* @param $conn Connection zur Datenbank
* $telefonnummer_id ID der zu ladenden telefonnummer
*/
function telefonnummer($conn, $telefonnummer_id = null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($telefonnummer_id != null)
$this->load($telefonnummer_id);
}
/**
* Laedt den Datensatz mit der ID die uebergeben wurde
* @param $telefonnummer_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($telefonnummer_id)
{
//Gueltigkeit von telefonnummer_id pruefen
if(!is_numeric($telefonnummer_id) || $telefonnummer_id == '')
{
$this->errormsg = 'telefonnummer_id muss eine Zahl sein';
return false;
}
$qry = "SELECT * FROM telefonnummer WHERE telefonnummer_pk=$telefonnummer_id";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row = pg_fetch_object($res))
{
$this->telefonnummer_id = $row->telefonnummer_pk;
$this->name = $row->name;
$this->nummer = $row->nummer;
$this->person_id = $row->person_fk;
$this->typ = $row->typ;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Laedt alle Telefonnummern einer Person
* @param $person_id Person zu der die Telefonnummern gesucht werden sollen
* @return true wenn ok, false im Fehlerfall
*/
function load_pers($person_id)
{
//Gueltigkeit von person_id pruefen
if(!is_numeric($person_id) || $person_id == '')
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * from telefonnummer where person_fk=$person_id";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
{
$tel_obj = new telefonnummer($this->conn);
$tel_obj->telefonnummer_id = $row->telefonnummer_pk;
$tel_obj->name = $row->name;
$tel_obj->nummer = $row->nummer;
$tel_obj->person_id = $row->person_fk;
$tel_obj->typ = $row->typ;
$tel_obj->updateamum = $row->creationdate;
$tel_obj->updatevon = $row->creationuser;
$this->result[] = $tel_obj;
}
return true;
}
/**
* Liefert alle Telefonnummern
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
/* Benoetigt zu viel Speicher
$qry = "SELECT * FROM telefonnummer;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden der Telefonnummern';
return false;
}
while($row = pg_fetch_object($res))
{
$tel_obj = new telefonnummer($this->conn);
$tel_obj->telefonnummer_id = $row->telefonnummer_pk;
$tel_obj->name = $row->name;
$tel_obj->nummer = $row->nummer;
$tel_obj->person_id = $row->person_fk;
$tel_obj->typ = $row->typ;
$tel_obj->updateamum = $row->creationdate;
$tel_obj->updatevon = $row->creationuser;
$this->result[] = $tel_obj;
}
return true;
*/
return false;
}
/**
* Prueft die gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
//Hochkomma und HTML Tags ersetzen
//$this->name = htmlentities($this->name, ENT_QUOTES);
//$this->nummer = htmlentities($this->nummer, ENT_QUOTES);
//Laenge pruefen
$this->errormsg = 'Eine der Gesamtlaengen wurde ueberschritten';
if(strlen($this->name)>255) return false;
if(strlen($this->nummer)>30) return false;
//Zahlenfelder pruefen
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
if(!is_numeric($this->person_id)) return false;
if(!is_numeric($this->typ)) return false;
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt
* andernfalls wird der Datensatz mit der ID in $telefonnummer_id aktualisiert
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Neuen Datensatz anlegen
//neue ID aus der Sequence holen
$qry = "SELECT nextval('telefonnummer_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim auslesen der Sequence';
return false;
}
$this->telefonnummer_id = $row->id;
$qry = "INSERT INTO telefonnummer (telefonnummer_pk, person_fk, name, nummer, typ, creationdate, creationuser)".
" VALUES('$this->telefonnummer_id', '$this->person_id', '$this->name', '$this->nummer', '$this->typ', now(), '$this->updatevon');";
}
else
{
//Bestehenden Datensatz aktualisieren
//Pruefen der ID
if(!is_numeric($this->telefonnummer_id) || $this->telefonnummer_id == '')
{
$this->errormsg = 'telefonnummer_id muss eine gueltige Zahl sein';
return false;
}
$qry = "UPDATE telefonnummer SET person_fk='$this->person_id', name='$this->name', typ='$this->typ', nummer='$this->nummer'".
" WHERE telefonnummer_pk='$this->telefonnummer_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 der Daten';
return false;
}
}
/**
* Loescht den Datensatz mit der uebergebenen ID
* @param telefonnummer_id ID des zu leoschenen Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($telefonnummer_id)
{
//Pruefen der ID
if(!is_numeric($telefonnummer_id) || $telefonnummer_id == '')
{
$this->errormsg = 'telefonnummer_id muss eine gueltige Zahl sein';
return false;
}
//loeschen des Datensatzes
$qry = "DELETE FROM telefonnummer where telefonnummer_pk='$telefonnummer_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 loeschen eines Datensatzes';
return false;
}
}
}
?>
-9
View File
@@ -1,9 +0,0 @@
<?php
include ('../cis2/config.inc.php');
require_once('raumtyp.class.php');
// Verbindung aufbauen
$conn=pg_pconnect(CONN_STRING) or die ("Unable to connect to SQL-Server");
echo 'test';
$test=new raumtyp($conn);
?>
+157 -95
View File
@@ -1,96 +1,158 @@
<?php
/*
$Header: /include/zeitwunsch.class.php,v 1.2 2004/10/16 17:05:38 pam Exp $
$Log: zeitwunsch.class.php,v $
Revision 1.2 2004/10/16 17:05:38 pam
Anpassung an neue DB-Struktur.
*/
/****************************************************************************
* @class Zeitwunsch
* @author Christian Paminger
* @date 2004/8/21
* @version $Revision: 1.2 $
* Update: 21.10.2004 von Christian Paminger
* @brief Klasse zur Bearbeitung und Abfrage der Tabelle tbl_zeitwunsch
* Abhaengig: von ?
*****************************************************************************/
class zeitwunsch
{
// @var string
var $uid;
// @var int
var $stunde;
// @var int
var $tag;
// @var int
var $gewicht;
// @var string
var $errormsg;
// @var conn
var $conn;
// @var ferien
var $zeitwunsch=array();
function zeitwunsch($conn)
{
$this->conn=$conn;
}
/**
* Zeitwunsch einer Person laden
* @return boolean Ergebnis steht in Array $zeitwunsch wenn true
*/
function loadPerson($uid)
{
// Zeitwuensche abfragen
if(!$result=@pg_query($this->conn, "SELECT * FROM tbl_zeitwunsch WHERE uid='$uid'"))
{
$this->errormsg=pg_last_error($this->conn);
return false;
}
else
{
while ($row=@pg_fetch_object($result))
$this->zeitwunsch[$row->tag][$row->stunde]=$row->gewicht;
return true;
}
}
/**
* Zeitwunsch der Personen in Lehrveranstaltungen laden
* @return array mit Fachbereichen oder false=fehler
*/
function loadLVA($lva_id)
{
// SUB-Select fuer LVAs
$sql_query_lva='SELECT DISTINCT lektor FROM tbl_lehrveranstaltung WHERE ';
for ($i=0;$i<count($lva_id);$i++)
$sql_query_lvaid.=' OR lehrveranstaltung_id='.$lva_id[$i];
$sql_query_lvaid=substr($sql_query_lvaid,3);
$sql_query_lva.=$sql_query_lvaid;
// Schlechteste Zeitwuensche holen
$sql_query='SELECT tag,stunde,min(gewicht) AS gewicht
FROM tbl_zeitwunsch WHERE uid IN ('.$sql_query_lva.') GROUP BY tag,stunde';
// Zeitwuensche abfragen
if(!$result=@pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_last_error($this->conn);
return false;
}
else
{
while ($row=@pg_fetch_object($result))
$this->zeitwunsch[$row->tag][$row->stunde]=$row->gewicht;
return true;
}
}
}
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class zeitwunsch
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $zeitwuensche = array(); // zeitwunsch Objekt
//Tabellenspalten
var $stunde; // smalint
var $mitarbeiter_uid; // varchar(16)
var $tag; // smalint
var $gewicht; // smalint
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $uid Uid des Mitarbeiters
// * $tag Tag des Zeitwunsches
// * $stunde Stunde des Zeitwunsches
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function zeitwunsch($conn, $mitarbeiter_uid=null, $tag=null, $stunde=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($mitarbeiter_uid != null && $tag!=null && $stunde!=null)
$this->load($mitarbeiter_uid, $tag, $stunde);
}
// *********************************************************
// * Laedt einen Zeitwunsch
// * @param
// *********************************************************
function load($mitarbeiter_uid, $tag, $stunde)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->mitarbeiter_uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein.';
return false;
}
if($this->mitarbeiter_uid == '')
{
$this->errormsg = 'UID muss angegeben werden';
return false;
}
if(!is_numeric($this->stunde))
{
$this->errormsg = 'Stunde muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->gewicht))
{
$this->errormsg = 'Gewicht muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->tag))
{
$this->errormsg = 'Tag 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 einen Zeitwunsch in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = "INSERT INTO campus.tbl_zeitwunsch (mitarbeiter_uid, tag, stunde, gewicht)
VALUES('".addslashes($this->mitarbeiter_uid)."',".
$this->tag.','.$this->stunde.','.$this->gewicht.');';
}
else
{
$qry = 'UPDATE campus.tbl_zeitwunsch SET'.
' gewicht='.$this->gewicht.
" WHERE mitarbeiter_uid='".addslashes($this->mitarbeiter_uid)."' AND
tag=".$this->tag.' AND stunde='.$this->stunde;
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Zeitwunsches:'.$qry;
return false;
}
}
}
?>