mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Include VZ Bereinigung
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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> Ü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> 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> verwalten</a></li></td></tr>
|
||||
<tr>
|
||||
<td colspan=2> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width=200 class=light valign=middle height=19>
|
||||
$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> </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> </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> </td>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
<td> </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">
|
||||
$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"> </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];
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
+1587
-260
File diff suppressed because it is too large
Load Diff
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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).', '.
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
+260
-1566
File diff suppressed because it is too large
Load Diff
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
Reference in New Issue
Block a user