Include VZ Bereinigung

This commit is contained in:
Andreas Österreicher
2006-12-11 16:06:13 +00:00
parent c205e0c153
commit c5fb04adb5
73 changed files with 9975 additions and 10542 deletions
+350 -115
View File
@@ -1,151 +1,386 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Klasse fuer Berechtigungen der User
* @author Christian Paminger
* @version 1.0
* @updated 11-Feb-2004
*/
class benutzer extends person
class benutzer
{
//Tabellenspalten
var $uid; // varchar(16)
var $bnaktiv; // boolean
var $alias; // varchar(256)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional einen Benutzer
// * @param $conn Datenbank-Connection
// * $uid Benutzer der geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function benutzer($conn, $uid=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($uid != null)
$this->load($uid);
}
/**
* interne userberechtigung_id (Zaehler aus DB)
* @var integer
*/
var $userberechtigung_id;
/**
* @var integer
*/
var $studiengang_kz;
/**
* @var integer
*/
var $fachbereich_id;
/**
* @var string
*/
var $berechtigung_kurzbz;
/**
* @var string
*/
var $uid;
/**
* @var string
*/
var $studiensemester_kurzbz;
/**
* @var integer
*/
var $start;
/**
* @var integer
*/
var $ende;
/**
* @var integer
*/
var $starttimestamp;
/**
* @var integer
*/
var $endetimestamp;
/**
* @var string
*/
var $art;
/**
* @var array
*/
var $berechtigungen=array();
/**
* @var string
*/
var $variable;
// ***********************************************************
// * Laedt Benutzer mit der uebergebenen ID
// * @param $uid ID der Person die geladen werden soll
// ***********************************************************
function load($uid)
var $conn; //Vilesci Connection
/**
* @var boolean
*/
var $new;
var $errormsg;
function benutzer($conn)
{
$this->conn=$conn;
$this->new=true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
/**
* Ladet die Attribute der Berechtigung aus der Datenbank. Bei Fehler ist der
* Rueckgabewert 'false' und die Fehlermeldung steht in 'errormsg'.
* @return boolean true=ok, false=fehler
*/
function load($id)
{
if(strlen($this->uid)>16)
// Berechtigung holen
$sql_query="SELECT * FROM tbl_userberechtigung WHERE userberechtigung_id=$id";
//echo $sql_query;
if(!($erg=pg_exec($this->conn, $sql_query)))
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
$this->errormsg=pg_errormessage($this->conn);
return false;
}
if($this->uid == '')
$num_rows=pg_numrows($erg);
if($num_rows!=1)
{
$this->errormsg = 'UID muss eingegeben werden';
$this->errormsg="Zuwenige oder zuviele Ergebnisse (Anzahl: $num_rows)!";
return false;
}
if(strlen($this->alias)>256)
$row=pg_fetch_object($erg,0);
$this->userberechtigung_id=$row->userberechtigung_id;
$this->studiengang_kz=$row->studiengang_kz;
$this->fachbereich_id=$row->fachbereich_id;
$this->berechtigung_kurzbz=$row->berechtigung_kurzbz;
$this->uid=$row->uid;
$this->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$this->start=$row->start;
$this->ende=$row->ende;
$this->art=$row->art;
$this->new=false;
return true;
}
/**
* @return boolean true=ok, false=fehler
*/
function save()
{
/*
// Connection holen
if (is_null($conn=$this->getConnection()))
{
$this->errormsg = 'Alias darf nicht laenger als 256 Zeichen sein';
return false;
}
if(!is_numeric($this->person_id))
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
// Daten zur Person speichern
if (!person::save()) {
$this->errormsg.="Daten zur LVA konnten nicht gespeichert werden.";
return false;
}
if(!is_bool($this->aktiv))
if ($this->new) {
$qry="INSERT INTO tbl_lehrveranstaltung(lvnr,unr,einheit_kurzbz,".
"lektor,lehrfach_nr,studiengang_kz,fachbereich_id,semester,verband,".
"gruppe,raumtyp,raumtypalternativ,semesterstunden,stundenblockung,".
"wochenrythmus,start_kw,anmerkung)".
"values(".
"'".$this->lvnr."',".
"'".$this->unr."',".
"'".$this->einheit_kurzbz."',".
"'".$this->lektor."',".
(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
(strlen($this->semester)>0?$this->semester:NULL).",".
"'".$this->verband."',".
"'".$this->gruppe."',".
(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).",".
")";
} else
{
$this->errormsg = 'aktiv muss ein boolscher wert sein';
$qry="UPDATE tbl_lehrveranstaltung ".
"SET lvnr='".$this->lvnr."',".
"unr='".$this->unr."',".
"einheit_kurzbz='".$this->einheit_kurzbz."',".
"lektor='".$this->lehrfach_nr."',".
"lehrfach_nr=".(strlen($this->lehrfach_nr)>0?$this->lehrfach_nr:NULL).",".
"studiengang_kz=".(strlen($this->studiengang_kz)>0?$this->studiengang_kz:NULL).",".
"fachbereich_id=".(strlen($this->fachbereich_id)>0?$this->fachbereich_id:NULL).",".
"semester=".(strlen($this->semester)>0?$this->semester:NULL).",".
"verband='".$this->verband."',".
"gruppe='".$this->gruppe."',".
"raumtyp=".(strlen($this->raumtyp)>0?"'".$this->raumtyp."'":NULL).",".
"raumtypalternativ=".(strlen($this->raumtypalternativ)>0?"'".$this->raumtypalternativ."'":NULL).",".
"semesterstunden=".(strlen($this->semesterstunden)>0?$this->semesterstunden:NULL).",".
"stundenblockung=".(strlen($this->stundenblockung)>0?$this->stundenblockung:NULL).",".
"wochenrythmus=".(strlen($this->wochenrythmus)>0?$this->wochenrythmus:NULL).",".
"start_kw=".(strlen($this->start_kw)>0?$this->start_kw:NULL).",".
"anmerkung=".(strlen($this->anmerkung)>0?"'".$this->anmerkung."'":NULL).
" WHERE lehrveranstaltung_id='".$this->lehrveranstaltung_id."'";
}
//echo "<br>".$qry;
if(!@pg_query($conn, $qry))
{
$this->errormsg=pg_errormessage($conn);
return false;
}
return true;
*/
}
/**
* Rueckgabewert ist ein Array mit den Ergebnissen. Bei Fehler false und die
* Fehlermeldung liegt in errormsg.
* Wenn der Parameter stg_kz NULL ist tritt einheit_kurzbzb in Kraft.
* @param string $uid UserID
* @return variabel Array mit LVA; <b>false</b> bei Fehler
*/
function getBerechtigungen($uid)
{
// Berechtigungen holen
$sql_query="SELECT * FROM tbl_userberechtigung WHERE uid='$uid' AND (start<now() OR start IS NULL) AND (ende>now() OR ende IS NULL)";
//echo $sql_query;
if(!$erg=@pg_query($this->conn, $sql_query))
{
$this->errormsg=pg_errormessage($this->conn);
return false;
}
//$num_rows=pg_numrows($erg);
while($row=pg_fetch_object($erg))
{
$b=new berechtigung($this->conn);
$b->userberechtigung_id=$row->userberechtigung_id;
$b->studiengang_kz=$row->studiengang_kz;
$b->fachbereich_id=$row->fachbereich_id;
$b->berechtigung_kurzbz=$row->berechtigung_kurzbz;
$b->uid=$row->uid;
$b->studiensemester_kurzbz=$row->studiensemester_kurzbz;
$b->start=$row->start;
if ($row->start!=null)
$b->starttimestamp=mktime(0,0,0,substr($row->start,5,2),substr($row->start,8),substr($row->start,0,4));
else
$b->starttimestamp=null;
$b->ende=$row->ende;
if ($row->ende!=null)
$b->endetimestamp=mktime(23,59,59,substr($row->ende,5,2),substr($row->ende,8),substr($row->ende,0,4));
else
$b->endetimestamp=null;
$b->art=$row->art;
$this->berechtigungen[]=$b;
}
return true;
}
// ******************************************************************
// * Speichert die Benutzerdaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz angelegt
// * ansonsten der Datensatz mit $uid upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ******************************************************************
function save()
function isBerechtigt($berechtigung,$studiengang_kz=null,$art=null)
{
//Personen Datensatz speichern
if(!person::save())
return false;
//Variablen auf Gueltigkeit pruefen
if(!benutzer::validate())
return false;
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
$timestamp=time();
foreach ($this->berechtigungen as $b)
{
$qry = 'INSERT INTO tbl_benutzer (uid, aktiv, alias, person_id, insertamum, insertvon, updateamum, updatevon) VALUES('.
"'".addslashes($this->uid)."',".
($this->aktiv?'true':'false').','.
$this->addslashes($this->alias).",'".
$this->person_id."',".
$this->addslashes($this->insertamum).",".
$this->addslashes($this->insertvon).",".
$this->addslashes($this->updateamum).",".
$this->addslashes($this->updatevon).");";
}
else
{
$qry = 'UPDATE tbl_benutzer SET'.
' aktiv='.($this->aktiv?'true':'false').','.
' alias='.$this->addslashes($this->alias).','.
" person_id='".$this->person_id."',".
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE uid='".addslashes($this->uid)."';";
if($berechtigung == $b->berechtigung_kurzbz && $studiengang_kz==null && $art==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0) && $art==null)
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
if ($berechtigung==$b->berechtigung_kurzbz
&& ($studiengang_kz==$b->studiengang_kz || $b->studiengang_kz==0)
&& strstr($b->art,$art))
if ($b->starttimestamp!=null && $b->endetimestamp!=null)
{
if ($timestamp>$b->starttimestamp && $timestamp<$b->endetimestamp)
return true;
}
else
return true;
}
return false;
}
/**
* Gibt Array mit Kennzahlen der Studiengaenge sortiert zurueck.
* Optional wird auf Berechtigung eingeschraenkt.
* Wenn Berechtigung ueber alle Studiengaenge steht im ersten Feld 0.
*/
function getStgKz($berechtigung=null)
{
$studiengang_kz=array();
$timestamp=time();
if(pg_query($this->conn,$qry))
foreach ($this->berechtigungen as $b)
if ($berechtigung==$b->berechtigung_kurzbz || $berechtigung==null)
$studiengang_kz[]=$b->studiengang_kz;
$studiengang_kz=array_unique($studiengang_kz);
sort($studiengang_kz);
return $studiengang_kz;
}
/**
* Setzt die Studiensemester Variable
*/
function setVariableStudiensemester($user,$stsem)
{
//Vorhandende Variable aendern
$qry = "Update tbl_variable SET wert='$stsem' WHERE uid='$user' AND name='semester_aktuell'";
if($result = pg_query($this->conn,$qry))
{
//Log schreiben
return true;
if(pg_affected_rows($result)==0)
{
//Falls Variable nicht vorhanden ist eine neue anlegen
$qry = "INSERT INTO tbl_variable(uid, name, wert) values('$user', 'semester_aktuell', '$stsem')";
if(pg_query($this->conn,$qry))
return true;
else
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
}
else
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Benutzer-Datensatzes:'.$qry;
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
}
function getpossibilities($variable)
{
$ret = array();
switch($variable)
{
case 'semester_aktuell':
$qry = "Select * from tbl_studiensemester order by start";
if($result = pg_query($this->conn,$qry))
{
while($row=pg_fetch_object($result))
$ret[] = $row->studiensemester_kurzbz;
}
break;
}
return $ret;
}
function loadVariables($user)
{
if(!($result=@pg_query($this->conn, "SELECT * FROM tbl_variable WHERE uid='$user'")))
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
else
$num_rows=@pg_numrows($result);
while($row=pg_fetch_object($result))
{
$this->variable->{$row->name}=$row->wert;
}
if (!isset($this->variable->semester_aktuell))
{
if(!($result=@pg_query($this->conn, 'SELECT * FROM tbl_studiensemester WHERE ende>now() ORDER BY start LIMIT 1')))
{
$this->errormsg.=pg_errormessage($this->conn);
return false;
}
else
{
$num_rows=@pg_numrows($result);
if ($num_rows>0)
{
$row=pg_fetch_object($result);
$this->variable->semester_aktuell=$row->studiensemester_kurzbz;
}
}
}
if (!isset($this->variable->db_stpl_table))
$this->variable->db_stpl_table='stundenplan';
if (!isset($this->variable->fas_id))
$this->variable->fas_id=0;
if (!isset($this->variable->sleep_time))
$this->variable->sleep_time=300;
return true;
}
}
?>
-386
View File
@@ -1,386 +0,0 @@
<?php
/**
* Klasse fuer Berechtigungen der User
* @author Christian Paminger
* @version 1.0
* @updated 11-Feb-2004
*/
class benutzer
{
/**
* 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;
var $conn; //Vilesci Connection
/**
* @var boolean
*/
var $new;
var $errormsg;
function benutzer($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)
{
$timestamp=time();
foreach ($this->berechtigungen as $b)
{
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();
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))
{
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.=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;
}
}
?>
-185
View File
@@ -1,185 +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 benutzerberechtigung
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $benutzerberechtigungen = array(); // benutzerberechtigung Objekt
//Tabellenspalten
var $benutzerberechtigung_id; // int
var $art; // varchar(16)
var $fachbereich_kurzbz; // int
var $studiengang_kz; // int
var $berechtigung_kurzbz; // varchar(16)
var $uid; // varchar(16)
var $studiensemester_kurzbz; // varchar(16)
var $start; // date
var $ende; // date
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $benutzerberechtigung_id
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function benutzerberechtigung($conn, $benutzerberechtigung_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($benutzerberechtigung_id!=null)
$this->load($benutzerberechtigung_id);
}
// *********************************************************
// * Laedt eine Benutzerberechtigung
// * @param benutzerberechtigung_id
// *********************************************************
function load($benutzerberechtigung_id)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->art)>16)
{
$this->errormsg = 'Art darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->fachbereich_kurzbz)>16)
{
$this->errormsg = 'Fachbereich_id darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->studiengang_kz!='' && !is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengangskennzahl muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->berechtigung_kurzbz)>16)
{
$this->errormsg = 'Berechtigung_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->berechtigung_kurzbz=='')
{
$this->errormsg = 'Berechtigung_kurzbz muss angegeben werden';
return false;
}
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->uid=='')
{
$this->errormsg = 'UID muss angegeben 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 Benutzerberechtigung 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_benutzerberechtigung (art, fachbereich_kurzbz, studiengang_kz, berechtigung_kurzbz,
uid, studiensemester_kurzbz, start, ende)
VALUES('.$this->addslashes($this->art).','.
$this->addslashes($this->fachbereich_kurzbz).','.
$this->addslashes($this->studiengang_kz).','.
$this->addslashes($this->berechtigung_kurzbz).','.
$this->addslashes($this->uid).','.
$this->addslashes($this->studiensemester_kurzbz).','.
$this->addslashes($this->start).','.
$this->addslashes($this->ende).');';
}
else
{
$qry = 'UPDATE tbl_benutzerberechtigung SET'.
' art='.$this->addslashes($this->art).','.
' fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).','.
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
' berechtigung_kurzbz='.$this->addslashes($this->berechtigung_kurzbz).','.
' uid='.$this->addslashes($this->uid).','.
' studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).','.
' start='.$this->addslashes($this->start).','.
' ende='.$this->addslashes($this->ende).
" WHERE benutzerberechtigung_id='".addslashes($this->benutzerberechtigung_id)."'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Feedbacks:'.$qry;
return false;
}
}
}
?>
-244
View File
@@ -1,244 +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 benutzerfunktion (FAS-Online)
* @create 04-12-2006
*/
class benutzerfunktion
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var benutzerfunktion Objekt
//Tabellenspalten
var $benutzerfunktion_id; // @var serial
var $fachbereich_kurzbz; // @var integer
var $uid; // @var varchar(16)
var $studiengang_kz; // @var integer
var $funktion_kurzbz; // @var varchar(16)
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $insertamum; // @var timestamp
var $insertvon=0; // @var string
var $ext_id; // @var bigint
/**
* Konstruktor
* @param $conn Connection zur DB
* $benutzerfunktion_id ID der zu ladenden Funktion
*/
function benutzerfunktion($conn, $benutzerfunktion_id=null)
{
$this->conn = $conn;
if($benutzerfunktion_id != null)
$this->load($benutzerfunktion_id);
}
/**
* Laedt alle verfuegbaren Benutzerfunktionen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = 'SELECT * FROM tbl_benutzerfunktion ORDER BY benutzerfunktion_id;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$pfunktion_obj = new personenfunktion($this->conn);
$pfunktion_obj->benutzerfunktion_id = $row->benutzerfunktion_id;
$pfunktion_obj->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$pfunktion_obj->uid = $row->uid;
$pfunktion_obj->studiengang_kz = $row->studiengang_kz;
$pfunktion_obj->funktion_kurzbz = $row->funtion_kurzbz;
$pfunktion_obj->insertamum = $row->insertamum;
$pfunktion_obj->insertvon = $row->insertvon;
$pfunktion_obj->updateamum = $row->updateamum;
$pfunktion_obj->updatevon = $row->updatevon;
$this->result[] = $pfunktion_obj;
}
return true;
}
/**
* Laedt eine Benutzerfunktion
* @param $bnutzerfunktion_id ID der zu ladenden Funktion
* @return true wenn ok, false im Fehlerfall
*/
function load($benutzerfunktion_id)
{
if($benutzerfunktion_id == '')
{
$this->errormsg = 'benutzerfunktion_id muß eine gültige Zahl sein';
return false;
}
$qry = "SELECT * FROM tbl_benutzerfunktion WHERE benutzerfunktion_id = '$this->benutzerfunktion_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->benutzerfunktion_id = $row->benutzerfunktion_id;
$this->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$this->uid = $row->uid;
$this->studiengang_kz = $row->studiengang_kz;
$this->funktion_kurzbz = $row->funktion_kurzbz;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $fbenutzerfunktion_id id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($benutzerfunktion_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
//if(!$this->checkvars())
// return false;
if($this->new)
{
//Neuen Datensatz anlegen
//Pruefen ob uid vorhanden
$qry = "SELECT uid FROM tbl_benutzer WHERE uid = '$this->uid';";
if(!$resx = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
else
{
if (pg_num_rows($resx)==0)
{
$this->errormsg = "uid <b>$this->uid</b> in Tabelle tbl_benutzer nicht gefunden!";
return false;
}
}
$qry = 'INSERT INTO tbl_benutzerfunktion (fachbereich_kurzbz, uid, studiengang_kz, funktion_kurzbz, insertamum, insertvon,
updateamum, updatevon) VALUES ('.
$this->addslashes($this->fachbereich_kurzbz).', '.
$this->addslashes($this->uid).', '.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->funktion_kurzbz).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).'); ';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob benutzerfunktion_id eine gueltige Zahl ist
if(!is_numeric($this->benutzerfunktion_id) || $this->benutzerfunktion_id == '')
{
$this->errormsg = 'benutzerfunktion_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE tbl_benutzerfunktion SET '.
'benutzerfunktion_id='.$this->addslashes($this->benutzerfunktion_id).', '.
'fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).', '.
'uid='.$this->addslashes($this->uid).', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '.
'funktion_kurzbz='.$this->addslashes($this->funktion_kurzbz).', '.
'insertamum='.$this->addslashes($this->insertamum).', '.
'insertvon='.$this->addslashes($this->insertvon).', '.
'updateamum='.$this->addslashes($this->updateamum).', '.
'updatevon='.$this->addslashes($this->updatevon).' '.
'WHERE benutzerfunktion_id = '.$this->addslashes($this->benutzerfunktion_id).';';
}
if(pg_query($this->conn, $qry))
{
/*//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes - '.$this->uid;
return false;
}
}
}
?>
-160
View File
@@ -1,160 +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 benutzergruppe
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $benutzergruppen = array(); // benutzergruppe Objekt
//Tabellenspalten
var $uid; // varchar(16)
var $gruppe_kurzbz; // varchar(16)
var $updateamum; // timestamp
var $updatevon; // varchar(16)
var $insertamum; // timestamp
var $insertvon; // varchar(16)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine BenutzerGruppe
// * @param $conn Datenbank-Connection
// * $uid
// * $gruppe_kurzbz
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function benutzergruppe($conn, $uid=null, $gruppe_kurzbz=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($gruppe_kurzbz!=null && $uid!=null)
$this->load($uid, $gruppe_kurzbz);
}
// *********************************************************
// * Laedt die BenutzerGruppe
// * @param gruppe_kurzbz
// *********************************************************
function load($uid, $gruppe_kurzbz)
{
return false;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nich laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->gruppe_kurzbz)>16)
{
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->updatevon)>16)
{
//ToDo: Just 4 Sync dannach wieder errormsg setzen
$this->updatevon = substr($this->updatevon,0,15);
}
if(strlen($this->insertvon)>16)
{
$this->errormsg = 'Insertvon darf nicht laenger als 16 Zeichen sein';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert BenutzerGruppe in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save($new=null)
{
if(is_null($new))
$new = $this->new;
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($new)
{
$qry = 'INSERT INTO tbl_benutzergruppe (uid, gruppe_kurzbz, updateamum, updatevon, insertamum, insertvon)
VALUES('.$this->addslashes($this->uid).','.
$this->addslashes($this->gruppe_kurzbz).','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->insertamum).','.
$this->addslashes($this->insertvon).');';
}
else
{
//ToDo
$qry = 'Select 1;';
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der BenutzerGruppe:'.$qry;
return false;
}
}
}
?>
@@ -1,152 +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 benutzerlvstudiensemester
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $benutzerlvstudiensemester = array(); // benutzerlvstudiensemester Objekt
//Tabellenspalten
var $uid; // varchar(16)
var $studiensemester_kurzbz; // varchar(16)
var $lehrveranstaltung_id; // integer
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Zuteilung
// * @param $conn Datenbank-Connection
// * $uid
// * $studiensemester_kurzbz
// * $lehrveranstaltung_nr
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function benutzerlvstudiensemester($conn, $uid=null, $studiensemester_kurzbz=null, $lehrveranstaltung_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($uid!=null && $studiensemester_kurzbz!=null && $lehrveranstaltung_id!=null)
$this->load($uid, $studiensemester_kurzbz, $lehrveranstaltung_id);
}
// *********************************************************
// * Laedt eine Zuteilung
// * @param $uid, $studiensemester_kurzbz, $lehrveranstaltung_nr
// *********************************************************
function load($uid, $studiensemester_kurzbz, $lehrveranstaltung_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->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->studiensemester_kurzbz)>16)
{
$this->errormsg = 'Studiensemester_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if(!is_numeric($this->lehrveranstaltung_id))
{
$this->errormsg = 'Lehrveranstaltungsnummer muss eine gueltige Zahl sein';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert Zuteilung in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save($new=null)
{
if(!is_null($new))
$this->new = $new;
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = 'INSERT INTO campus.tbl_benutzerlvstudiensemester (uid, studiensemester_kurzbz, lehrveranstaltung_id)
VALUES('.$this->addslashes($this->uid).','.
$this->addslashes($this->studiensemester_kurzbz).','.
$this->addslashes($this->lehrveranstaltung_id).');';
}
else
{
// ToDo
$qry = 'Select 1;';
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
$this->new = false;
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der BenutzerLVStudiensemester:'.$qry;
return false;
}
}
}
?>
-138
View File
@@ -1,138 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class berechtigung
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $berechtigungen = array(); // berechtigung Objekt
//Tabellenspalten
var $berechtigung_kurzbz; // varchar(16)
var $beschreibung; // varchar(256)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $berechtigung_kurzbz
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function berechtigung($conn, $berechtigung_kurzbz=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($berechtigung_kurzbz!=null)
$this->load($berechtigung_kurzbz);
}
// *********************************************************
// * Laedt eine Berechtigung
// * @param berechtigung_kurzbz
// *********************************************************
function load($berechtigung_kurzbz)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->berechtigung_kurzbz)>16)
{
$this->errormsg = 'Berechtigung_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->beschreibung)>256)
{
$this->errormsg = 'Beschreibung darf nicht laenger als 256 Zeichen sein';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert Berechtigung in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = 'INSERT INTO tbl_berechtigung (berechtigung_kurzbz, beschreibung)
VALUES('.$this->addslashes($this->berechtigung_kurzbz).','.
$this->addslashes($this->beschreibung).');';
}
else
{
$qry = 'UPDATE tbl_berechtigung SET'.
' beschreibung='.$this->addslashes($this->beschreibung).
" WHERE berechtigung_kurzbz='".addslashes($this->berechtigung_kurzbz)."'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Berechtigung:'.$qry;
return false;
}
}
}
?>
-711
View File
@@ -1,711 +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 funktionen (FAS-Online)
* Verwaltet die Funktionen der Mitarbeiter
* @create 07-03-2006
*/
class funktion
{
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 Datenbank
* $fkt_id Id der zu ladenden Funktion (Default=null)
*/
function funktion($conn, $fkt_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($fkt_id != null)
$this->load($fkt_id);
}
/**
* loescht die Funktion mit der uebergebenen ID
* @param $funktion_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($funktion_id)
{
//Pruefen ob funktion_id gueltig ist
if(is_numeric($funktion_id) && $funktion_id != '')
{
//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;
}
$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 = 'funktion_id muss eine gueltige Zahl sein';
return false;
}
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
//Hochkomma und HTML Tags ersetzen
//$this->name = htmlentities($this->name, ENT_QUOTES);
//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;
}
/**
* Speichert die Daten in die Datenbank
* @return true wenn OK, false im Fehlerfall
*/
function save()
{
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)
{
//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 = 'Sequence konnte nicht ausgelesen werden';
return 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
{
if(!is_numeric($this->mitarbeiter_id) && !is_numeric($this->funktion_id))
{
$this->errormsg = 'mitarbeiter_id und funktion_id muessen eine gueltige Zahl sein';
return false;
}
$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))
{
$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)))
{
$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'.$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
{
$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 '';
}
}
}
?>
+39 -141
View File
@@ -1,54 +1,39 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse fachbereich (FAS-Online)
* @create 04-12-2006
* @create 14-03-2006
*/
class fachbereich
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $fachbereich_kurzbz; // @var string
var $bezeichnung; // @var string
var $farbe; // @var string
var $studiengang_kz; // @var integer
var $ext_id; // @var bigint
var $fachbereich_id; // @var integer
var $erhalter_id; // @var integer
var $name; // @var string
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
/**
* Konstruktor
* @param $conn Connection zur DB
* $fachb_id ID des zu ladenden Fachbereiches
*/
function fachbereich($conn, $fachbereich_kurzbz=null)
function fachbereich($conn, $fachb_id=null)
{
$this->conn = $conn;
if($fachbereich_kurzbz != null)
$this->load($fachbereich_kurzbz);
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($fachb_id != null)
$this->load($fachb_id);
}
/**
@@ -57,11 +42,11 @@ class fachbereich
*/
function getAll()
{
$qry = 'SELECT * FROM tbl_fachbereich order by fachbereich_kurzbz;';
$qry = 'SELECT * FROM fachbereich order by name;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
@@ -69,9 +54,11 @@ class fachbereich
{
$fachb_obj = new fachbereich($this->conn);
$fachb_obj->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$fachb_obj->erhalter_id = $row->erhalter_fk;
$fachb_obj->name = $row->name;
$fachb_obj->fachbereich_id = $row->fachbereich_pk;
$fachb_obj->erhalter_id = $row->erhalter_fk;
$fachb_obj->name = $row->name;
$fachb_obj->updateamum = $row->creationdate;
$fachb_obj->updatevon = $row->creationuser;
$this->result[] = $fachb_obj;
}
@@ -83,27 +70,29 @@ class fachbereich
* @param $fachb_id ID des zu ladenden Fachbereiches
* @return true wenn ok, false im Fehlerfall
*/
function load($fachbereich_kurzbz)
function load($fachb_id)
{
if($fachbereich_kurzbz == '')
if(!is_numeric($fachb_id) || $fachb_id == '')
{
$this->errormsg = 'fachbereich_kurzbz ungueltig!';
$this->errormsg = 'fachb_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM tbl_fachbereich WHERE fachbereich_kurzbz = '$fachbereich_kurzbz';";
$qry = "SELECT * FROM fachbereich WHERE fachbereich_pk = '$fachb_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$this->erhalter_id = $row->erhalter_fk;
$this->name = $row->name;
$this->fachbereich_id = $row->fachbereich_pk;
$this->erhalter_id = $row->erhalter_fk;
$this->name = $row->name;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
@@ -124,106 +113,15 @@ class fachbereich
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
$this->fachbereich_kurzbz = str_replace("'",'´',$this->fachbereich_kurzbz);
//Laenge Pruefen
if(strlen($this->bezeichnung)>128)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->ext_id</b> - $this->bezeichnung";
return false;
}
if(strlen($this->fachbereich_kurzbz)>16)
{
$this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->fachbereich_kurzbz";
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Pruefen ob fachbereich_kurzbz gueltig ist
if($this->fachbereich_kurzbz == '')
{
$this->errormsg = 'fachbereich_id ungueltig!';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_fachbereich (fachbereich_kurzbz, bezeichnung, farbe, ext_id, studiengang_kz) VALUES ('.
$this->addslashes($this->fachbereich_kurzbz).', '.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->farbe).', '.
$this->addslashes($this->ext_id).', '.
$this->addslashes($this->studiengang_kz).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob fachbereich_kurzbz gueltig ist
if($this->fachbereich_kurzbz == '')
{
$this->errormsg = 'fachbereich_kurzbz ungueltig.';
return false;
}
$qry = 'UPDATE tbl_fachbereich SET '.
'fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).', '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'farbe='.$this->addslashes($this->farbe).', '.
'ext_id='.$this->addslashes($this->ext_id).', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).' '.
'WHERE fachbereich_kurzbz = '.$this->addslashes($this->fachbereich_kurzbz).';';
}
if(pg_query($this->conn, $qry))
{
/*//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
$this->errormsg = 'Noch nicht implementiert';
return false;
}
}
?>
-155
View File
@@ -1,155 +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 feedback
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $feedback = array(); // feedback Objekt
//Tabellenspalten
var $feedback_id; // integer
var $betreff; // varchar(128)
var $text; // text
var $datum; // date
var $uid; // varchar(16)
var $lehrveranstaltung_id; // integer
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $feedback_id
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function feedback($conn, $feedback_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($feedback_id!=null)
$this->load($feedback_id);
}
// *********************************************************
// * Laedt ein Feedback
// * @param
// *********************************************************
function load($feedback_id)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->betreff)>128)
{
$this->errormsg = 'Betreff darf nicht laenger als 128 Zeichen sein';
return false;
}
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return false;
}
if(!is_numeric($this->lehrveranstaltung_id))
{
$this->errormsg = 'Lehrveranstaltung_id 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 Feedback 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)
{
//ToDo: Feedback_ID wieder entfernen und per Seq fuellen
$qry = 'INSERT INTO campus.tbl_feedback (feedback_id, betreff, text, datum, uid, lehrveranstaltung_id)
VALUES('.$this->addslashes($this->feedback_id).','.
$this->addslashes($this->betreff).','.
$this->addslashes($this->text).','.
$this->addslashes($this->datum).','.
$this->addslashes($this->uid).','.
$this->addslashes($this->lehrveranstaltung_id).');';
}
else
{
$qry = 'UPDATE campus.tbl_feedback SET'.
' betreff='.$this->addslashes($this->betreff).','.
' text='.$this->addslashes($this->text).','.
' datum='.$this->addslashes($this->datum).','.
' uid='.$this->addslashes($this->uid).
" WHERE feedback_id='".addslashes($this->feedback_id)."'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Feedbacks:'.$qry;
return false;
}
}
}
?>
-217
View File
@@ -1,217 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse ferien (FAS-Online)
* @create 07-12-2006
*/
class ferien
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var ferien Objekt
//Tabellenspalten
var $bezeichnung; // @var varchar(64)
var $studiengang_kz; // @var integer
var $vondatum; // @var date
var $bisdatum; // @var date
/**
* Konstruktor
* @param $conn Connection zur DB
* $bezeichnung und studiengang_kz ID der zu ladenden Ferien
*/
function ferien($conn, $bezeichnung=null, $studiengang_kz=null)
{
$this->conn = $conn;
if($bezeichnung != null && $studiengang_kz != null && !is_numeric($studiengang_kz))
$this->load($bezeichnung, studiengang_kz);
}
/**
* Laedt alle verfuegbaren Feriendaten
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = 'SELECT * FROM lehre.tbl_ferien order by bezeichnung, studiengang_kz;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$ferien_obj = new ferien($this->conn);
$ferien_obj->bezeichnung = $row->bezeichnung;
$ferien_obj->studiengang_kz = $row->studiengang_kz;
$ferien_obj->vondatum = $row->vondatum;
$ferien_obj->bisdatum = $row->bisdatum;
$this->result[] = $ferien_obj;
}
return true;
}
/**
* Laedt einen Feriendatensatz
* @param $bezeichnung, studiengang_kz ID der zu ladenden Ferien
* @return true wenn ok, false im Fehlerfall
*/
function load($bezeichnung, $studiengang_kz)
{
if($studiengang_kz == '' || !is_numeric($studiengang_kz) || $bezeichnung=='')
{
$this->errormsg = 'ID ungültig';
return false;
}
$qry = "SELECT * FROM lehre.tbl_ferien WHERE bezeichnung = '$this->bezeichnung' AND studiengang_kz = '$this->studiengang_kz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->bezeichnung = $row->bezeichnung;
$this->studiengang_kz = $row->studiengang_kz;
$this->vondatum = $row->vondatum;
$this->bisdatum = $row->bisdatum;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $bezeichnung, studiengang_kz id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($bezeichnung, $studiengang_kz)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
//Laenge Pruefen
if(strlen($this->bezeichnung)>64)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 64 Zeichen sein bei <b>$this->studiengang_kz</b> - $this->bezeichnung";
return false;
}
$this->errormsg = '';
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Neuen Datensatz anlegen
if($this->studiengang_kz == '' || !is_numeric($this->studiengang_kz) || $this->bezeichnung=='')
{
$this->errormsg = 'ID ungültig';
return false;
}
$qry = 'INSERT INTO lehre.tbl_ferien (bezeichnung, studiengang_kz, vondatum, bisdatum) VALUES ('.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->vondatum).', '.
$this->addslashes($this->bisdatum).'); ';
}
else
{
//bestehenden Datensatz akualisieren
if($this->studiengang_kz == '' || !is_numeric($this->studiengang_kz) || $this->bezeichnung=='')
{
$this->errormsg = 'ID der Ferien ungültig';
return false;
}
$qry = 'UPDATE lehre.tbl_ferien SET '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '.
'vondatum='.$this->addslashes($this->vondatum).', '.
'bisdatum='.$this->addslashes($this->bisdatum).';';
}
if(pg_query($this->conn, $qry))
{
/*//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes - '.$this->uid;
return false;
}
}
}
?>
+617 -143
View File
@@ -1,194 +1,288 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse funktion (FAS-Online)
* @create 14-03-2006
/**
* Klasse funktionen (FAS-Online)
* Verwaltet die Funktionen der Mitarbeiter
* @create 07-03-2006
*/
class funktion
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $funktion_kurzbz; // @var integer
var $bezeichnung; // @var string
var $aktiv; // @var boolean
var $ext_id; // @var bigint
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $result = array(); // @var funktion Objekt
//vars fuer Tabellenspalten
var $funktion_id; // @var integer
var $mitarbeiter_id; // @var integer
var $studiensemester_id; // @var integer
var $erhalter_id; // @var integer
var $studiengang_id; // @var integer
var $fachbereich_id; // @var integer
var $name; // @var string
var $funktion; // @var integer ( 0 = Mitarbeiter, 1 = Lektor, 2 = Fachbereichskoordinatior, 3 = Assistenz,
// 4 = Rektor, 5 = Studiengangsleiter, 6 = Fachbereichsleiter)
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $beschart1; // @var integer ( 1 = Dienstverhaeltnis zum Bund, 2 = Dienstverhaeltnis zu einer anderen Gebietskoerperschaft,
// 3 = Echter Dienstvertrag, 4 = Freier Dienstvertrag, 5 = Lehre/Ausbildung, 6 = Sonstiges)
var $beschart2; // @var integer ( 1 = befristet, 2 = unbefristet)
var $verwendung; // @var integer
var $hauptberuflich; // @var boolean
var $hauptberuf; // @var integer
var $entwicklungsteam; // @var boolean
var $besonderequalifikation; // @var integer
var $sws; // @var float wird nicht verwendet
var $ausmass; // @var float ( 1 = Vollzeit, 2 = <=15 Wochenstd, 3 = 15-25 Wochenstd, 4 = 26-36 Wochenstd, 5 = Karenz)
var $status; // @var integer Aktstatus der Person (wird bei loeschen einer funktion gesetzt)
/**
* Konstruktor
* @param $conn Connection zur DB
* $funktion_kurzbz ID der zu ladenden Funktion
* @param $conn Connection zur Datenbank
* $fkt_id Id der zu ladenden Funktion (Default=null)
*/
function funktion($conn, $funktion_kurzbz=null)
function funktion($conn, $fkt_id=null)
{
$this->conn = $conn;
if($funktion_kurzbz != null)
$this->load($funktion_kurzbz);
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($fkt_id != null)
$this->load($fkt_id);
}
/**
* Laedt alle verfuegbaren Funktionen
* loescht die Funktion mit der uebergebenen ID
* @param $funktion_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
function delete($funktion_id)
{
$qry = 'SELECT * FROM tbl_funktion order by funktion_kurzbz;';
if(!$res = pg_query($this->conn, $qry))
//Pruefen ob funktion_id gueltig ist
if(is_numeric($funktion_id) && $funktion_id != '')
{
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$funktion_obj = new funktion($this->conn);
//Person ermitteln
$person_id=0;
$mitarbeiter_id=0;
$qry = "Select person_fk, mitarbeiter_pk from mitarbeiter join funktion on(mitarbeiter_pk=mitarbeiter_fk) where funktion_pk = $funktion_id";
if($row=pg_fetch_object(pg_query($this->conn,$qry)))
{
$person_id = $row->person_fk;
$mitarbeiter_id = $row->mitarbeiter_pk;
}
else
{
$this->errormsg = 'Fehler beim ermitteln der Person';
return false;
}
$funktion_obj->funktion_kurzbz = $row->funktion_kurzbz;
$funktion_obj->bezeichnung = $row->bezeichnung;
$funktion_obj->aktiv = $row->aktiv;
$this->result[] = $funktion_obj;
}
return true;
}
/**
* Laedt eine Funktion
* @param $funktion_kurzbz ID der zu ladenden Funktion
* @return true wenn ok, false im Fehlerfall
*/
function load($funktion_kurzbz)
{
if($funktion_kurzbz == '')
{
$this->errormsg = 'funktion_bz darf nicht leer sein';
return false;
}
$qry = "SELECT * FROM tbl_funktion WHERE funktion_kurzbz = '$funktion_kurzbz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->funktion_kurzbz = $row->funktion_kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->aktiv = $row->aktiv;
$qry = "DELETE FROM funktion WHERE funktion_pk=$funktion_id;";
$sql = $qry;
if(pg_query($this->conn,$qry))
{
//Neuen aktstatus ermitteln
$qry = "Select aktstatus from person where person_pk=$person_id";
if($row=pg_fetch_object(pg_query($this->conn,$qry)))
{
$aktstatus = $row->aktstatus;
if($aktstatus!=150) //wenn er nicht ausgeschieden ist
{
//Funktionen holen
$qry = "Select funktion from funktion where ".
"studiensemester_fk = (Select studiensemester_pk from studiensemester where aktuell='J')".
" AND mitarbeiter_fk = '$mitarbeiter_id'";
if($result = pg_query($this->conn, $qry))
{
$fkt=array();
$i=0;
while($row=pg_fetch_object($result))
{
$fkt[$i]=$row->funktion;
$i++;
}
//Aktstatus ermitteln
if(in_array(5,$fkt)) //STGL
$aktstatus = 104;
elseif(in_array(6,$fkt)) //FBL
$aktstatus = 103;
elseif(in_array(2,$fkt)) //FBK
$aktstatus = 102;
elseif(in_array(1,$fkt)) //LKT
$aktstatus = 101;
else
$aktstatus = 100; //Mitarbeiter
$this->status = $aktstatus;
//neuen akstatus setzen
$qry = "Update person set aktstatus = $aktstatus where person_pk = $person_id";
if(pg_query($qry))
{
//Log schreiben
$sql .= $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim setzen des Aktstatus';
return false;
}
}
}
else
return true;
}
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
return false;
}
}
else
{
$this->errormsg = 'Beim loeschen ist ein Fehler aufgetreten';
return false;
}
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
$this->errormsg = 'funktion_id muss eine gueltige Zahl sein';
return false;
}
return true;
}
}
/**
* Loescht einen Datensatz
* @param $funktion_id id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($funktion_kurzbz)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
/**
* Prueft die Gueltigkeit der Variablen
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
{
//Hochkomma und HTML Tags ersetzen
//$this->name = htmlentities($this->name, ENT_QUOTES);
//Laenge Pruefen
if(strlen($this->bezeichnung)>64)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->funktion_kurzbz</b> - $this->bezeichnung";
return false;
}
//Maximallaenge pruefen
$this->errormsg = 'Die Maximallaenge eines Feldes wurde ueberschritten';
if(strlen($this->name)>255) return false;
//Zahlenwerte ueberpruefen
/*
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
if(!is_numeric($this->funktion)) return false;
if(!is_numeric($this->beschart1)) return false;
if(!is_numeric($this->beschart2)) return false;
if(!is_numeric($this->verwendung)) return false;
if(!is_numeric($this->hauptberuf)) return false;
if(!is_numeric($this->sws)) $this->sws=0;
if(!is_numeric($this->ausmass)) return false;
if(!is_numeric($this->mitarbeiter_id)) return false;
if(!is_numeric($this->erhalter_id)) return false;
if(!is_numeric($this->studiengang_id)) return false;
if(!is_numeric($this->fachbereich_id)) return false;
if(!is_numeric($this->studiensemester_id)) return false;
if(!is_numeric($this->besonderequalifikation)) return false;
*/
$this->errormsg = '';
return true;
return true;
}
/**
* Speichert die Daten in die Datenbank
* @return true wenn OK, false im Fehlerfall
*/
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
//neuen aktstatus ermitteln
if($status=$this->getaktstatus())
$statusqry = "Update person SET aktstatus=$status where person_pk = (Select person_fk from mitarbeiter where mitarbeiter_pk='$this->mitarbeiter_id');";
else
$statusqry = "";
if($this->new)
{
//Pruefen ob funktion_kurzbz befüllt ist
if($this->funktion_kurzbz == '')
//Naechste ID aus der Sequence holen
$qry = "SELECT nextval('funktion_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
{
$this->errormsg = 'funktion_kurzbz darf nicht leer sein';
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_funktion (funktion_kurzbz, bezeichnung, aktiv) VALUES ('.
$this->addslashes($this->funktion_kurzbz).', '.
$this->addslashes($this->bezeichnung).', '.
($this->aktiv?'true':'false').'); ';
$this->funktion_id = $row->id;
$qry= $statusqry."INSERT INTO funktion (funktion_pk, mitarbeiter_fk, studiensemester_fk, erhalter_fk, studiengang_fk,".
" fachbereich_fk, name, funktion, creationdate, creationuser, beschart1, beschart2, verwendung,".
" hauptberuflich, hauptberuf, entwicklungsteam, besonderequalifikation, sws, ausmass) VALUES(".
" '$this->funktion_id','$this->mitarbeiter_id', '$this->studiensemester_id', '$this->erhalter_id',".
($this->studiengang_id!=''?" '$this->studiengang_id'":'null').",".
($this->fachbereich_id!=''?" '$this->fachbereich_id'":'null').",".
($this->name!=''?" '$this->name'":'null').",".
($this->funktion!=''?" '$this->funktion'":'null').", now(), $this->updatevon,".
($this->beschart1!=''?" '$this->beschart1'":'null').",".
($this->beschart2!=''?" '$this->beschart2'":'null').",".
($this->verwendung!=''?" '$this->verwendung'":'null').", '".($this->hauptberuflich?'J':'N')."',".
($this->hauptberuf!=''?" '$this->hauptberuf'":'null').", '".($this->entwicklungsteam?'J':'N')."',".
($this->besonderequalifikation!=''?" '$this->besonderequalifikation'":'null').", null,".
($this->ausmass!=''?" '$this->ausmass'":'null').")";
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob fachbereich_id eine gueltige Zahl ist
if( $this->funktion_kurzbz == '')
if(!is_numeric($this->mitarbeiter_id) && !is_numeric($this->funktion_id))
{
$this->errormsg = 'funktion_kurzbz darf nicht leer sein';
$this->errormsg = 'mitarbeiter_id und funktion_id muessen eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE tbl_funktion SET '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'aktiv='.($this->aktiv?'true':'false') .' '.
'WHERE funktion_kurzbz = '.$this->addslashes($this->funktion_kurzbz).';';
$qry= $statusqry. "UPDATE funktion SET ".
" studiensemester_fk=".($this->studiensemester_id!=''?"'$this->studiensemester_id'":'null').",".
" erhalter_fk=".($this->erhalter_id!=''?"'$this->erhalter_id'":'null').",".
" studiengang_fk=".($this->studiengang_id!=''?"'$this->studiengang_id'":'null').",".
" fachbereich_fk=".($this->fachbereich_id!=''?"'$this->fachbereich_id'":'null').",".
" name=".($this->name!=''?"'$this->name'":'null').",".
" funktion=".($this->funktion!=''?"'$this->funktion'":'null').",".
" beschart1=".($this->beschart1!=''?"'$this->beschart1'":'null').",".
" beschart2=".($this->beschart2!=''?"'$this->beschart2'":'null').",".
" verwendung=".($this->verwendung!=''?"'$this->verwendung'":'null').",".
" hauptberuflich='".($this->hauptberuflich?'J':'N')."',".
" hauptberuf=".($this->hauptberuf!=''?"'$this->hauptberuf'":'null').",".
" entwicklungsteam='".($this->entwicklungsteam?'J':'N')."',".
" besonderequalifikation=".($this->besonderequalifikation!=''?"'$this->besonderequalifikation'":'null').",".
" sws=".($this->sws!=''?"'$this->sws'":'null').",".
" ausmass=".($this->ausmass!=''?"'$this->ausmass'":'null').
" WHERE funktion_pk=$this->funktion_id"; // AND mitarbeiter_fk=$this->mitarbeiter_id";
}
if(pg_query($this->conn, $qry))
if(pg_query($this->conn,$qry))
{
/*//Log schreiben
$qry = "UPDATE funktion SET hauptberuflich='".($this->hauptberuflich?'J':'N')."', hauptberuf=".($this->hauptberuf!=''?"'$this->hauptberuf'":'null')." WHERE mitarbeiter_fk ='$this->mitarbeiter_id' AND studiensemester_fk='$this->studiensemester_id'";
if(!pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim Updaten der Funktionen';
return false;
}
//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
@@ -204,14 +298,394 @@ class funktion
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
}
}
else
{
$this->errormsg = 'Fehler beim Speichern der Daten'.$qry;
return false;
}
}
/**
* Ermittelt den neuen aktstatus einer Person
*/
function getaktstatus()
{
$aktstatus=100;
//Aktuellen Status holen
$qry = "Select aktstatus from person join mitarbeiter on(person_fk=person_pk) where mitarbeiter_pk='".$this->mitarbeiter_id."'";
if($result = pg_query($this->conn,$qry))
{
if($row = pg_fetch_object($result))
$aktstatus = $row->aktstatus;
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Status';
return false;
}
/*
//Wenn die Funktion das aktuelle Studiensemester betrifft
$qry = "Select studiensemester_pk from studiensemester where aktuell='J'";
if($result = pg_query($this->conn,$qry))
{
if($row=pg_fetch_object($result))
{
if($row->studiensemester_pk == $this->studiensemester_id)
{
*/
//Neuen Status setzen
if($this->funktion == 1 && $aktstatus < 101) //Lektor
$aktstatus = 101;
elseif($this->funktion == 2 && $aktstatus < 102) //Fachbereichskoordinator
$aktstatus = 102;
elseif($this->funktion == 6 && $aktstatus < 103) //Fachbereichsleiter
$aktstatus = 103;
elseif($this->funktion == 5 && $aktstatus < 104) //Studiengangsleiter
$aktstatus = 104;
/* }
}
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Studiensemesters';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Laden des aktuellen Studiensemesters';
return false;
}*/
$this->status = $aktstatus;
return $aktstatus;
}
/**
* Laedt eine Funktion aus der DB
* @param $fkt_id ID der zu ladenden Funktion
* @return true wenn erfolgreich geladen, false im Fehlerfall
*/
function load($fkt_id)
{
//Pruefen ob fkt_id gueltig ist
if(!is_numeric($fkt_id))
{
$this->errormsg = 'funktion_id muss eine Zahl sein';
return false;
}
$qry = "SELECT * FROM funktion WHERE funktion_pk=$fkt_id";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = pg_fetch_object($res))
{
$this->funktion_id = $row->funktion_pk;
$this->mitarbeiter_id = $row->mitarbeiter_fk;
$this->studiensemester_id = $row->studiensemester_fk;
$this->erhalter_id = $row->erhalter_fk;
$this->studiengang_id = $row->studiengang_fk;
$this->fachbereich_id = $row->fachbereich_fk;
$this->name = $row->name;
$this->funktion = $row->funktion;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->beschart1 = $row->beschart1;
$this->beschart2 = $row->beschart2;
$this->verwendung = $row->verwendung;
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$this->hauptberuf = $row->hauptberuf;
$this->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
$this->besonderequalifikation = $row->besonderequalifikation;
$this->sws = $row->sws;
$this->ausmass = $row->ausmass;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Laedt die Funktion(en) eines Mitarbeiters
* @param $ma_id ID des zu ladenden Mitarbeiters
* @return true wenn erfolgreich geladen, false im Fehlerfall
*/
function load_pers($ma_id, $stsem='')
{
//pruefen ob ma_id gueltig ist
if(!is_numeric($ma_id))
{
$this->errormsg = 'mitarbeiter_id muss eine Zahl sein';
return false;
}
$qry="SELECT * FROM funktion WHERE mitarbeiter_fk=$ma_id";
if($stsem!='')
$qry.= " AND studiensemester_fk='$stsem'";
$qry.=" ORDER BY studiensemester_fk DESC, funktion_pk";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$fkt_obj = new funktion($this->conn);
$fkt_obj->funktion_id = $row->funktion_pk;
$fkt_obj->mitarbeiter_id = $row->mitarbeiter_fk;
$fkt_obj->studiensemester_id = $row->studiensemester_fk;
$fkt_obj->erhalter_id = $row->erhalter_fk;
$fkt_obj->studiengang_id = $row->studiengang_fk;
$fkt_obj->fachbereich_id = $row->fachbereich_fk;
$fkt_obj->name = $row->name;
$fkt_obj->funktion = $row->funktion;
$fkt_obj->updateamum = $row->creationdate;
$fkt_obj->updatevon = $row->creationuser;
$fkt_obj->beschart1 = $row->beschart1;
$fkt_obj->beschart2 = $row->beschart2;
$fkt_obj->verwendung = $row->verwendung;
$fkt_obj->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$fkt_obj->hauptberuf = $row->hauptberuf;
$fkt_obj->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
$fkt_obj->besonderequalifikation = $row->besonderequalifikation;
$fkt_obj->sws = $row->sws;
$fkt_obj->ausmass = $row->ausmass;
$this->result[] = $fkt_obj;
}
return true;
}
function getMitarbeiter($stg,$fb,$funktion,$stsem=null)
{
$qry = "SELECT
mitarbeiter_fk
FROM
funktion
WHERE
studiengang_fk='$stg' AND
fachbereich_fk='$fb'
GROUP BY mitarbeiter_fk";
if($result = pg_query($this->conn,$qry))
{
while($row = pg_fetch_object($result))
{
$fkt = new funktion($this->conn);
$fkt->mitarbeiter_id = $row->mitarbeiter_fk;
$this->result[] = $fkt;
}
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
$this->errormsg = 'Fehler beim laden der Mitarbeiter';
return false;
}
}
}
/**
* Laedt alle Funktionen
* @return true wenn erfolgreich geladen, false im Fehlerfall
*/
function getAll()
{
/*Eventuell Speicherprobleme
$qry = "SELECT * FROM funktion";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row=pg_fetch_object($res))
{
$fkt_obj = new funktion($this->conn);
$fkt_obj->funktion_id = $row->funktion_pk;
$fkt_obj->mitarbeiter_id = $row->mitarbeiter_fk;
$fkt_obj->studiensemester_id = $row->studiensemester_fk;
$fkt_obj->erhalter_id = $row->erhalter_fk;
$fkt_obj->studiengang_id = $row->studiengang_fk;
$fkt_obj->fachbereich_id = $row->fachbereich_fk;
$fkt_obj->name = $row->name;
$fkt_obj->funktion = $row->funktion;
$fkt_obj->updateamum = $row->creationdate;
$fkt_obj->updatevon = $row->creationuser;
$fkt_obj->beschart1 = $row->beschart1;
$fkt_obj->beschart2 = $row->beschart2;
$fkt_obj->verwendung = $row->verwendung;
$fkt_obj->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$fkt_obj->hauptberuf = $row->hauptberuf;
$fkt_obj->entwicklungsteam = ($row->entwicklungsteam=='J'?true:false);
$fkt_obj->besonderequalifikation = $row->besonderequalifikation;
$fkt_obj->sws = $row->sws;
$fkt_obj->ausmass = $row->ausmass;
$this->result[] = $fkt_obj;
}
return true;
*/
return false;
}
function FunktionExists($mitarbeiter_id, $studiengang_id, $fachbereich_id, $studiensemester_id, $funktion)
{
$qry = "SELECT
count(*) as anzahl
FROM
funktion
WHERE
mitarbeiter_fk='$mitarbeiter_id' AND
studiengang_fk='$studiengang_id' AND
fachbereich_fk='$fachbereich_id' AND
studiensemester_fk = '$studiensemester_id' AND
funktion='$funktion'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
{
if($row->anzahl>0)
return true;
else
{
return false;
}
}
else
{
return false;
$this->errormsg = 'Fehler beim auslesen der Funktionen';
}
}
else
{
return false;
$this->errormsg = 'Fehler beim auslesen der Funktionen';
}
}
function getNameFunktion($id)
{
switch($id)
{
case 0: return 'Mitarbeiter';
case 1: return 'Lektor';
case 2: return 'Fachbereichskoordinatior';
case 3: return 'Assistenz';
case 4: return 'Rektor';
case 5: return 'Studiengangsleiter';
case 6: return 'Fachbereichsleiter';
default: return '';
}
}
function getNameBeschart1($id)
{
switch($id)
{
case 1: return 'Dienstverhältnis zum Bund';
case 2: return 'Dienstverhältnis zu einer anderen Gebietskörperschaft';
case 3: return 'Echter Dienstvertrag';
case 4: return 'Freier Dienstvertrag';
case 5: return 'Lehr- oder Ausbildungsverhältnis';
case 6: return 'Sonstiges Beschäftigungsverhältnis';
default: return '';
}
}
function getNameBeschart2($id)
{
switch($id)
{
case 1: return 'befristet';
case 2: return 'unbefristet';
default: return '';
}
}
function getNameVerwendung($id)
{
switch($id)
{
case 1: return 'Lehr- und Forschungspersonal';
case 2: return 'Lehr- und Forschungshilfspersonal';
case 3: return 'Akademische dienste für Studierende';
case 4: return 'Soziale Dienste und Gesundheitsdienste';
case 5: return 'Studiengangsleiter/in';
case 6: return 'Leiter/in FH-Kollegium';
case 7: return 'Management';
case 8: return 'Verwaltung';
case 9: return 'Hauspersonal, Gebäude-/Haustechnik';
default: return '';
}
}
function getNameHauptberuf($id)
{
switch($id)
{
case '': return '';
case 0: return 'Universität';
case 1: return 'Fachhochschule';
case 2: return 'Andere postsekundäre Bildungseinrichtung';
case 3: return 'Allgemeinbildende höhere Schule';
case 4: return 'Berufsbildende höhere Schule';
case 5: return 'Andere Schule';
case 6: return 'Öffentlicher Sektor';
case 7: return 'Unternehmenssektor';
case 8: return 'Freiberuflich tätig';
case 9: return 'Privater gemeinnütziger Sektor';
case 10: return 'Ausserhochschulische Forschungseinrichtung';
case 11: return 'Internationale Organisation';
case 12: return 'Sonstiges';
default: return '';
}
}
function getNameBesonderequalifikation($id)
{
switch($id)
{
case 0: return 'keine';
case 1: return 'Habilitation';
case 2: return 'der Habilitation gleichwertige Qualifikation';
case 3: return 'berufliche Tätigkeit';
default: return '';
}
}
function getNameAusmass($id)
{
switch($id)
{
case 1: return 'Vollzeit';
case 2: return '<= 15 Wochenstunden';
case 3: return '16 - 25 Wochenstunden';
case 4: return '26 - 35 Wochenstunden';
case 5: return 'Karenz';
default: return '';
}
}
}
?>
+201 -246
View File
@@ -1,247 +1,202 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class gruppe
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $gruppen = array(); // gruppen Objekt
//Tabellenspalten
var $gruppe_kurzbz; // varchar(16)
var $studiengang_kz; // integer
var $bezeichnung; // varchar(32)
var $semester; // smallint
var $sort; // smallint
var $mailgrp; // boolean
var $beschreibung; // varchar(128)
var $sichtbar; // boolean
var $aktiv; // boolean
var $updateamum; // timestamp
var $updatevon; // varchar(16)
var $insertamum; // timestamp
var $insertvon; // varchar(16)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Gruppe
// * @param $conn Datenbank-Connection
// * $gruppe_kurzbz
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function gruppe($conn, $gruppe_kurzbz=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($gruppe_kurzbz!=null)
$this->load($gruppe_kurzbz);
}
// ****************************************
// * Prueft ob bereits eine Gruppe mit der
// * uebergebenen Kurzbezeichnung existiert
// * @param gruppe_kurzbz
// ****************************************
function exists($gruppe_kurzbz)
{
$qry = "SELECT count(*) as anzahl FROM tbl_gruppe WHERE gruppe_kurzbz='".addslashes($gruppe_kurzbz)."'";
if($row = pg_fetch_object(pg_query($this->conn,$qry)))
{
if($row->anzahl>0)
return true;
else
return false;
}
else
{
$this->errormsg = 'Fehler bei einer Abfrage: '.$qry;
return false;
}
}
// *********************************************************
// * Laedt die Gruppe
// * @param gruppe_kurzbz
// *********************************************************
function load($gruppe_kurzbz)
{
return false;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->gruppe_kurzbz)>16)
{
$this->errormsg = 'Gruppe_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->gruppe_kurzbz=='')
{
$this->errormsg = 'Gruppe muss angegeben werden';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->bezeichnung)>32)
{
$this->errormsg = 'Bezeichnung darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
return false;
}
if($this->sort!='' && !is_numeric($this->sort))
{
$this->errormsg = 'Typ muss eine gueltige Zahl sein';
return false;
}
if(!is_bool($this->mailgrp))
{
$this->errormsg = 'Mailgrp muss ein boolscher wert sein';
return false;
}
if(strlen($this->beschreibung)>128)
{
$this->errormsg = 'Beschreibung darf nicht laenger als 128 Zeichen sein';
return false;
}
if(!is_bool($this->sichtbar))
{
$this->errormsg = 'Sichtbar muss ein boolscher Wert sein';
return false;
}
if(!is_bool($this->aktiv))
{
$this->errormsg = 'Aktiv muss ein boolscher Wert sein';
return false;
}
if(strlen($this->updatevon)>16)
{
$this->errormsg = 'Updatevon darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->insertvon)>16)
{
$this->errormsg = 'Insertvon darf nicht laenger als 16 Zeichen sein';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert Gruppe in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save($new=null)
{
if(is_null($new))
$new = $this->new;
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($new)
{
$qry = 'INSERT INTO tbl_gruppe (gruppe_kurzbz, studiengang_kz, bezeichnung, semester, sort,
mailgrp, beschreibung, sichtbar, aktiv,
updateamum, updatevon, insertamum, insertvon)
VALUES('.$this->addslashes($this->gruppe_kurzbz).','.
$this->addslashes($this->studiengang_kz).','.
$this->addslashes($this->bezeichnung).','.
$this->addslashes($this->semester).','.
$this->addslashes($this->sort).','.
($this->mailgrp?'true':'false').','.
$this->addslashes($this->beschreibung).','.
($this->sichtbar?'true':'false').','.
($this->aktiv?'true':'false').','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->insertamum).','.
$this->addslashes($this->insertvon).');';
}
else
{
$qry = 'UPDATE tbl_gruppe SET'.
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
' bezeichnung='.$this->addslashes($this->bezeichnung).','.
' semester='.$this->addslashes($this->semester).','.
' sort='.$this->addslashes($this->sort).','.
' mailgrp='.($this->mailgrp?'true':'false').','.
' beschreibung='.$this->addslashes($this->beschreibung).','.
' sichtbar='.($this->sichtbar?'true':'false').','.
' aktiv='.($this->aktiv?'true':'false').','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE gruppe_kurzbz=".$this->addslashes($this->gruppe_kurzbz).";";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Gruppe:'.$qry;
return false;
}
}
}
<?php
/**
* Klasse gruppe (FAS-Online)
* @create 15-03-2006
*/
class gruppe
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var gruppe Objekt
var $ausbildungssemester_id; // @var integer
var $gruppe_id; // @var integer
var $name; // @var string
var $nummerintern; // @var integer
var $obergruppe_id; // @var integer
var $ordnung; // @var integer
var $studiengang_id; // @var integer
var $typ; // @var integer ( Ebene ??)
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $fullname; // @var string
/**
* Konstruktor
* @param $conn Connection zur Datenbank
* $gruppe_id ID der zu ladenden Gruppe
*/
function gruppe($conn, $gruppe_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($gruppe_id != null)
$this->load($gruppe_id);
}
/**
* Laedt eine Gruppe
* @param gruppe_id ID der Gruppe
* @return true wenn ok, false im Fehlerfall
*/
function load($gruppe_id)
{
//gruppe_id auf gueltigkeit pruefen
if(!is_numeric($gruppe_id) || $gruppe_id =='')
{
$this->errormsg = 'gruppe_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM gruppe WHERE gruppe_pk='$gruppe_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
if($row = pg_fetch_object($res))
{
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
$this->gruppe_id = $row->gruppe_pk;
$this->name = $row->name;
$this->nummerintern = $row->nummerintern;
$this->obergruppe_id = $row->obergruppe_fk;
$this->ordnung = $row->ordnung;
$this->studiengang_id = $row->studiengang_fk;
$this->typ = $row->typ;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->fullname = $this->getFullName($row->gruppe_pk);
}
else
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
return true;
}
/**
* Liefert den vollen namen einer Gruppe
* @param $gruppe_id
* @return voller name, false im Fehlerfall
*/
function getFullName($gruppe_id)
{
//gruppe_id auf gueltigkeit pruefen
if(!is_numeric($gruppe_id) || $gruppe_id == '')
{
$this->errormsg = 'gruppe_id muss eine gueltige Zahl sein';
return false;
}
//gesamten gruppennamen ermitteln
$qry = "SELECT fas_function_get_fullname_from_gruppe($gruppe_id) as fullname;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Gruppenname konnte nicht ermittelt werden';
return false;
}
return $row->fullname;
}
/**
* Laedt alle Gruppen eines Studienganges/studiensemesters/ausbildungssemesters
* @param studiengang_id ID des studienganges
* studiensemester_id ID des Studiensemesters (optional)
* ausbildungssemester_id ID des Ausbildungssemesters (optional)
* @return true wenn ok, false im Fehlerfall
*/
function load_gruppen($studiengang_id, $studiensemester_id=null, $ausbildungssemester_id=null)
{
//Pruefen ob gueltige Werte uebergeben wurden
if(!is_numeric($studiengang_id) || $studiengang_id == '')
{
$this->errormsg = 'studiengang_id muss eine gueltige Zahl sein';
return false;
}
if($studiensemester_id!=null && (!is_numeric($studiensemester_id) || $studiensemester_id == ''))
{
$this->errormsg = 'studiensemester_id muss eine gueltige Zahl sein';
return false;
}
if($ausbildungssemester_id!=null && (!is_numeric($ausbildungssemester_id) || $ausbildungssemester_id == ''))
{
$this->errormsg = 'ausbildungssemester_id muss eine gueltige Zahl sein';
return false;
}
//Befehl zusammenbauen
$qry = "SELECT * FROM gruppe WHERE studiengang_fk='$studiengang_id' ";
if($ausbildungssemester_id!=null)
$qry .= "AND ausbildungssemester_fk='$ausbildungssemester_id' ";
if($studiensemester_id != null)
$qry .= "AND studiensemester_fk='$studiensemester_id' ";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Datensatz konnte nicht geladen werden';
return false;
}
//Daten laden
while($row = pg_fetch_object($res))
{
$grp_obj = new gruppe($this->conn);
$grp_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$grp_obj->gruppe_id = $row->gruppe_pk;
$grp_obj->name = $row->name;
$grp_obj->nummerintern = $row->nummerintern;
$grp_obj->obergruppe_id = $row->obergruppe_fk;
$grp_obj->ordnung = $row->ordnung;
$grp_obj->studiengang_id = $row->studiengang_fk;
$grp_obj->typ = $row->typ;
$grp_obj->updateamum = $row->creationdate;
$grp_obj->updatevon = $row->creationuser;
$grp_obj->fullname = $this->getFullName($row->gruppe_pk);
$this->result[] = $grp_obj;
}
return true;
}
/**
* Speichert den aktuellen Datensatz in die DB
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
/**
* Loescht einen Datensatz
* @param $gruppe_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($gruppe_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
}
?>
File diff suppressed because it is too large Load Diff
-175
View File
@@ -1,175 +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 lehreinheitgruppe
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehreinheitgruppe = array(); // lehreinheitgruppe Objekt
//Tabellenspalten
var $lehreinheitgruppe_id; //integer
var $lehreinheit_id; // integer
var $studiengang_kz; // integer
var $semester; // smalint
var $verband; // char(1)
var $gruppe; // char(1)
var $gruppe_kurzbz; // varchar(16)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine LE
// * @param $conn Datenbank-Connection
// * $gruppelehreinheit_id
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function lehreinheitgruppe($conn, $lehreinheitgruppe_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($lehreinheitgruppe_id!=null)
$this->load($lehreinheitgruppe_id);
}
// *********************************************************
// * Laedt die LEGruppe
// * @param lehreinheit_id
// *********************************************************
function load($lehreinheitgruppe_id)
{
return false;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(!is_numeric($this->lehreinheit_id))
{
$this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->verband)>1)
{
$this->verband = 'Verband darf nicht laenger als 1 Zeichen sein';
return false;
}
if(strlen($this->gruppe)>1)
{
$this->gruppe = 'Gruppe darf nicht laenger als 1 Zeichen sein';
return false;
}
if(strlen($this->gruppe_kurzbz)>16)
{
$this->errormsg = 'Gruppe_kurzbz 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 GruppeLE 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)
{
//ToDo ID entfernen
$qry = 'INSERT INTO lehre.tbl_lehreinheitgruppe (lehreinheit_id, studiengang_kz, semester, verband, gruppe, gruppe_kurzbz)
VALUES('.$this->addslashes($this->lehreinheit_id).','.
$this->addslashes($this->studiengang_kz).','.
$this->addslashes($this->semester).','.
$this->addslashes($this->verband).','.
$this->addslashes($this->gruppe).','.
$this->addslashes($this->gruppe_kurzbz).');';
}
else
{
$qry = 'UPDATE lehre.tbl_lehreinheitgruppe SET'.
' lehreinheit_id='.$this->addslashes($this->lehreinheit_id).','.
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
' semester='.$this->addslashes($this->semester).','.
' verband='.$this->addslashes($this->verband).','.
' gruppe='.$this->addslashes($this->gruppe).','.
' gruppe_kurzbz='.$this->addslashes($this->gruppe_kurzbz).','.
" WHERE lehreinheitgruppe_id=".$this->addslashes($this->lehreinheitgruppe_id).";";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der GruppeLE:'.$qry;
return false;
}
}
}
?>
@@ -1,148 +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 lehreinheitmitarbeiter
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehreinheitmitarbeiter = array(); // lehreinheitmitarbeiter Objekt
//Tabellenspalten
var $lehreinheit_id; // integer
var $mitarbeiter_uid; // varchar(16)
var $semesterstunden; // smalint
var $planstunden; // smalint
var $stundensatz; // numeric(6,2)
var $faktor; // numeric(2,1)
var $anmerkung; // varchar(256)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine LE
// * @param $conn Datenbank-Connection
// * $lehreinheit_id
// * $uid
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function lehreinheitmitarbeiter($conn, $lehreinheit_id=null, $mitarbeiter_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($lehreinheit_id!=null && $mitarbeiter_uid!=null)
$this->load($lehreinheit_id, $mitarbeiter_uid);
}
// *********************************************************
// * Laedt die LEMitarbeiter
// * @param lehreinheit_id
// *********************************************************
function load($lehreinheit_id, $mitarbeiter_uid)
{
return false;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
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 LEMitarbeiter 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)
{
//ToDo ID entfernen
$qry = 'INSERT INTO lehre.tbl_lehreinheitmitarbeiter (lehreinheit_id, mitarbeiter_uid, semesterstunden, planstunden,
stundensatz, faktor, anmerkung)
VALUES('.$this->addslashes($this->lehreinheit_id).','.
$this->addslashes($this->mitarbeiter_uid).','.
$this->addslashes($this->semesterstunden).','.
$this->addslashes($this->planstunden).','.
$this->addslashes($this->stundensatz).','.
$this->addslashes($this->faktor).','.
$this->addslashes($this->anmerkung).');';
}
else
{
$qry = 'UPDATE lehre.tbl_lehreinheitmitarbeiter SET'.
' semesterstunden='.$this->addslashes($this->semesterstunden).','.
' planstunden='.$this->addslashes($this->planstunden).','.
' stundensatz='.$this->addslashes($this->stundensatz).','.
' faktor='.$this->addslashes($this->faktor).','.
' anmerkung='.$this->addslashes($this->anmerkung).','.
" WHERE lehreinheit_id=".$this->addslashes($this->lehreinheit_id)." AND
mitarbeiter_uid=".$this->addslashes($this->mitarbeiter_uid).";";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der LEMitarbeiter:'.$qry;
return false;
}
}
}
?>
-232
View File
@@ -1,232 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class lehrfach
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehrfaecher = array(); // lehrfach Objekt
//Tabellenspalten
var $lehrfach_id; // integer
var $studiengang_kz; // integer
var $fachbereich_kurzbz;// integer
var $kurzbz; // varchar(12)
var $bezeichnung; // varchar(255)
var $farbe; // char(6)
var $aktiv; // boolean
var $semester; // smallint
var $sprache; // varchar(16)
// ***********************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional ein LF
// * @param $conn Datenbank-Connection
// * $lehrfach_nr Lehrfach das geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// ***********************************************************************
function lehrfach($conn, $lehrfach_id=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($lehrfach_id != null)
$this->load($lehrfach_id);
}
// *********************************************************
// * Laedt Lehrfach mit der uebergebenen ID
// * @param $lehrfach_nr Nr des LF das geladen werden soll
// *********************************************************
function load($lehrfach_id)
{
//lehrfach_nr auf Gueltigkeit pruefen
if(is_numeric($lehrfach_id) && $lehrfach_id!='')
{
$qry = "SELECT * FROM lehre.tbl_lehrfach WHERE lehrfach_id='$lehrfach_id'";
if(!$result=pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim lesen des Lehrfaches';
return false;
}
if($row = pg_fetch_object($result))
{
$this->lehrfach_id = $row->lehrfach_id;
$this->studiengang_kz = $row->studiengang_kz;
$this->fachbereich_kurzbz = $row->fachbereich_kurzbz;
$this->kurzbz = $row->kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->farbe = $row->farbe;
$this->aktiv = ($row->aktiv=='t'?true:false);
$this->semester = $row->semester;
$this->sprache = $row->sprache;
}
else
{
$this->errormsg = 'Es ist kein Lehrfach mit der ID '.$lehrfach_id.' vorhanden';
return false;
}
return true;
}
else
{
$this->errormsg = 'Die lehrfach_nr muss eine gueltige Zahl sein';
return false;
}
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_kz muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->fachbereich_kurzbz)>16)
{
$this->errormsg = 'Fachbereich_kurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->kurzbz)>12)
{
$this->errormsg = 'Kurzbezeichnung darf nicht laenger als 12 Zeichen sein';
return false;
}
if(strlen($this->bezeichnung)>255)
{
$this->errormsg = 'Bezeichnung darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->farbe)>6)
{
$this->errormsg = 'Farbe darf nicht laenger als 6 Zeichen sein';
return false;
}
if(!is_bool($this->aktiv))
{
$this->errormsg = 'Aktiv muss ein boolscher Wert sein';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine Zahl sein';
return false;
}
if(strlen($this->sprache)>16)
{
$this->errormsg = 'Sprache darf nicht laenger als 16 Zeichen sein';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird "null" zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * zeichen mit backslash versehen und das ergbnis
// * unter hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert das Lehrfach in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = 'INSERT INTO lehre.tbl_lehrfach (lehrfach_id, studiengang_kz, fachbereich_kurzbz, kurzbz,
bezeichnung, farbe, aktiv, semester, sprache)
VALUES('.$this->addslashes($this->lehrfach_id).','.
$this->addslashes($this->studiengang_kz).','.
$this->addslashes($this->fachbereich_kurzbz).','.
$this->addslashes($this->kurzbz).','.
$this->addslashes($this->bezeichnung).','.
$this->addslashes($this->farbe).','.
($this->aktiv?'true':'false').','.
$this->addslashes($this->semester).','.
$this->addslashes($this->sprache).');';
}
else
{
//lehrfach_nr auf Gueltigkeit pruefen
if(!is_numeric($this->lehrfach_nr))
{
$this->errormsg = 'Lehrfach_nr muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE lehre.tbl_lehrfach SET'.
' studiengang_kz='.$this->addslashes($this->studiengang_kz).','.
' fachbereich_kurzbz='.$this->addslashes($this->fachbereich_kurzbz).','.
' kurzbz='.$this->addslashes($this->kurzbz).','.
' bezeichnung='.$this->addslashes($this->bezeichnung).','.
' farbe='.$this->addslashes($this->farbe).','.
' aktiv='.($this->aktiv?'true':'false').','.
' semester='.$this->semester.','.
' sprache='.$this->addslashes($this->sprache).
" WHERE lehrfach_id='$this->lehrfach_id'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Lehrfaches:'.$qry;
return false;
}
}
}
?>
+130 -165
View File
@@ -1,166 +1,131 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class lehrform
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehrform = array(); // lehrform Objekt
//Tabellenspalten
var $lehrform_kurbz; // varchar(8)
var $bezeichnung; // varchar (256)
var $verplanen; // boolean
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform
// * @param $conn Datenbank-Connection
// * $lehrform_kurbz Lehrform die geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function lehrform($conn, $lehrform_kurzbz=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($lehrform_kurzbz != null)
$this->load($lehrform_kurzbz);
}
// *********************************************************
// * Laedt Lehrform mit der uebergebenen ID
// * @param $lehrform_kurzbz Lehrform die geladen werden soll
// *********************************************************
function load($lehrform_kurzbz)
{
$qry = "SELECT * FROM lehre.tbl_lehrform WHERE lehrform_kurzbz='".addslashes($lehrfach_nr)."'";
if(!$result=pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim lesen der Lehrform';
return false;
}
if($row = pg_fetch_object($result))
{
$this->lehrform_kurbz = $row->lehrform_kurzbz;
$this->bezeichnung = $row->bezeichung;
$this->verplanen = ($row->verplanen?true:false);
}
else
{
$this->errormsg = 'Es ist keine Lehrform mit der Kurzbz '.$lehrform_kurzbz.' vorhanden';
return false;
}
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->lehrform_kurbz)>8)
{
$this->errormsg = 'Lehrform Kurzbezeichnung darf nicht laenger als 8 Zeichen sein.';
return false;
}
if(strlen($this->bezeichnung)>256)
{
$this->errormsg = 'Bezeichnung darf nicht laenger als 256 Zeichen sein';
return false;
}
if(!is_bool($this->verplanen))
{
$this->errormsg = 'Verplanen muss ein boolscher Wert sein';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird "null" zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * zeichen mit backslash versehen und das ergbnis
// * unter hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert die Lehrform in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = "INSERT INTO lehre.tbl_lehrform (lehrform_kurzbz, bezeichnung, verplanen)
VALUES('".addslashes($this->lehrform_kurzbz)."',".
$this->addslashes($this->bezeichnung).','.
($this->verplanen?'true':'false').');';
}
else
{
$qry = 'UPDATE lehre.tbl_lehrform SET'.
' bezeichnung='.$this->addslashes($this->bezeichnung).','.
' verplanen='.($this->verplanen?'true':'false').
" WHERE lehrform_kurzbz='$this->lehrform_kurzbz'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Lehrform:'.$qry;
return false;
}
}
}
<?php
/**
* Klasse lehrform (FAS-Online)
* @create 15-03-2006
*/
class lehrform
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var lehrform Objekt
var $lehrform_id; // @var integer
var $bezeichnung; // @var string
var $kurzbezeichnung; // @var string
var $standardfaktor; // @var float
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
/**
* Konstruktor
* @param $conn Conection zur Datenbank
* $lehrform_id ID der zu Ladenden Lehrform
*/
function lehrform($conn, $lehrform_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($lehrform_id != null)
$this->load($lehrform_id);
}
/**
* Laedt einen Datensatz
* @param $lform_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($lform_id)
{
//pruefen ob lform_id eine gueltige Zahl ist
if(!is_numeric($lform_id) || $lform_id == '')
{
$this->errormsg = 'lehrform_id muss eine gueltige Zahl sein';
return false;
}
//Datensatz laden
$qry = "SELECT * FROM lehrform WHERE lehrform_pk = '$lform_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
return false;
}
if($row = pg_fetch_object($res))
{
$this->lehrform_id = $row->lehrform_pk;
$this->bezeichnung = $row->bezeichnung;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->standardfaktor = $row->standardfaktor;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
return false;
}
return true;
}
/**
* Liefert alle lehrformen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM lehrform;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Der Datensatz konnte nicht geladen werden';
return false;
}
while($row = pg_fetch_object($res))
{
$form_obj = new lehrform($this->conn);
$form_obj->lehrform_id = $row->lehrform_pk;
$form_obj->bezeichnung = $row->bezeichnung;
$form_obj->kurzbezeichnung = $row->kurzbezeichnung;
$form_obj->standardfaktor = $row->standardfaktor;
$form_obj->updateamum = $row->creationdate;
$form_obj->updatevon = $row->creationdate;
$this->result[] = $form_obj;
}
return true;
}
/**
* Loescht einen Datensatz
* @param lehrform_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($lehrform_id)
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
/**
* Speichert einen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
$this->errormsg = 'Noch nicht implemeniert';
return false;
}
}
?>
+164 -185
View File
@@ -1,56 +1,33 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
/**
* Klasse lehrveranstaltung (FAS-Online)
* @create 06-12-2006
* @create 16-03-2006
*/
class lehrveranstaltung
{
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $lehrveranstaltungen = array(); // @var lehrveranstaltung Objekt
var $lehrveranstaltung_id; // @var serial
var $studiengang_kz; //@var integer
var $bezeichnung; //@var string
var $kurzbz; //@var string
var $semester; //@var smallint
var $ects; //@var numeric(5,2)
var $semesterstunden; //@var smallint
var $anmerkung; //@var string
var $lehre; //@var boolean
var $lehreverzeichnis; //@var string
var $aktiv; //@var boolean
var $ext_id; //@var bigint
var $insertamum; //@var timestamp
var $insertvon; //@var string
var $planfaktor; //@var numeric(3,2)
var $planlektoren; //@var integer
var $planpersonalkosten; //@var numeric(7,2)
var $updateamum; //@var timestamp
var $updatevon; //@var string
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $result = array(); // @var lehrveranstaltung Objekt
var $lehrveranstaltung_id; // @var integer
var $art; // @var integer
var $ausbildungssemester_id; // @var integer
var $beschreibung; // @var string
var $ectspunkte; // @var float
var $fachbereich_id; // @var integer
var $kategorie; // @var integer
var $kurzbezeichnung; // @var string
var $name; // @var string
var $notenlektor_id; // @var integer
var $nummer; // @var string
var $nummerintern; // @var integer
var $sortierung; // @var integer
var $studentenwochenstunden; // @var float
var $studiengang_id; // @var integer
var $studiensemester_id; // @var integer
var $updateamum=0; // @var timestamp
var $updatevon; // @var string
/**
* Konstruktor
@@ -60,13 +37,19 @@ class lehrveranstaltung
function lehrveranstaltung($conn, $lehrveranstaltung_id=null)
{
$this->conn = $conn;
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($lehrveranstaltung_id != null)
$this->load($lehrveranstaltung_id);
}
/**
* Laedt einen Datensatz
* @param $lehrveranstaltung_id ID des zu ladenden Datensatzes
* @param $lehrveranstaltung_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($lehrveranstaltung_id)
@@ -78,7 +61,7 @@ class lehrveranstaltung
return false;
}
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
$qry = "SELECT * FROM lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
if(!$res = pg_query($this->conn, $qry))
{
@@ -88,24 +71,24 @@ class lehrveranstaltung
if($row = pg_fetch_object($res))
{
$this->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$this->art = $row->art;
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
$this->beschreibung = $row->beschreibung;
$this->ectspunkte = $row->ectspunkte;
$this->fachbereich_id = $row->fachbereich_fk;
$this->kategorie = $row->kategorie;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->name = $row->name;
$this->notenlektor_id = $row->notenlektor_fk;
$this->nummer = $row->nummer;
$this->nummerintern = $row->nummerintern;
$this->sortierung = $row->sortierung;
$this->studentenwochenstunden = $row->studentenwochenstunden;
$this->studiengang_id = $row->studiengang_fk;
$this->studiensemester_id = $row->studiensemester_fk;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$this->art = $row->art;
$this->ausbildungssemester_id = $row->ausbildungssemester_fk;
$this->beschreibung = $row->beschreibung;
$this->ectspunkte = $row->ectspunkte;
$this->fachbereich_id = $row->fachbereich_fk;
$this->kategorie = $row->kategorie;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->name = $row->name;
$this->notenlektor_id = $row->notenlektor_fk;
$this->nummer = $row->nummer;
$this->nummerintern = $row->nummerintern;
$this->sortierung = $row->sortierung;
$this->studentenwochenstunden = $row->studentenwochenstunden;
$this->studiengang_id = $row->studiengang_fk;
$this->studiensemester_id = $row->studiensemester_fk;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
@@ -122,7 +105,7 @@ class lehrveranstaltung
*/
function getAll()
{
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung;";
$qry = "SELECT * FROM lehrveranstaltung;";
if(!$res = pg_query($this->conn, $qry))
{
@@ -134,24 +117,24 @@ class lehrveranstaltung
{
$lv_obj = new lehrveranstaltung($this->conn);
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$this->result[] = $lv_obj;
}
@@ -186,7 +169,7 @@ class lehrveranstaltung
}
//Select Befehl zusammenbauen
$qry = "SELECT * FROM lehre.tbl_lehrveranstaltung WHERE studiengang_fk = '$studiengang_id'";
$qry = "SELECT * FROM lehrveranstaltung WHERE studiengang_fk = '$studiengang_id'";
if($studiensemester_id != null)
$qry .= " AND studiensemester_fk = '$studiensemester_id'";
@@ -205,34 +188,30 @@ class lehrveranstaltung
{
$lv_obj = new lehrveranstaltung($this->conn);
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$lv_obj->lehrveranstaltung_id = $row->lehrveranstaltung_pk;
$lv_obj->art = $row->art;
$lv_obj->ausbildungssemester_id = $row->ausbildungssemester_fk;
$lv_obj->beschreibung = $row->beschreibung;
$lv_obj->ectspunkte = $row->ectspunkte;
$lv_obj->fachbereich_id = $row->fachbereich_fk;
$lv_obj->kategorie = $row->kategorie;
$lv_obj->kurzbezeichnung = $row->kurzbezeichnung;
$lv_obj->name = $row->name;
$lv_obj->notenlektor_id = $row->notenlektor_fk;
$lv_obj->nummer = $row->nummer;
$lv_obj->nummerintern = $row->nummerintern;
$lv_obj->sortierung = $row->sortierung;
$lv_obj->studentenwochenstunden = $row->studentenwochenstunden;
$lv_obj->studiengang_id = $row->studiengang_fk;
$lv_obj->studiensemester_id = $row->studiensemester_fk;
$lv_obj->updateamum = $row->creationdate;
$lv_obj->updatevon = $row->creationuser;
$this->result[] = $lv_obj;
}
return true;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
@@ -240,67 +219,85 @@ class lehrveranstaltung
*/
function checkvars()
{
//$this->name = str_replace("'",'´',$this->name);
$this->bezeichnung = str_replace("'",'´',$this->bezeichnung);
$this->kurzbz = str_replace("'",'´',$this->kurzbz);
$this->anmerkung = str_replace("'",'´',$this->anmerkung);
$this->name = str_replace("'",'´',$this->name);
$this->nummer = str_replace("'",'´',$this->nummer);
$this->kurzbezeichnung = str_replace("'",'´',$this->kurzbezeichnung);
//Laenge Pruefen
if(strlen($this->bezeichnung)>128)
$this->errormsg = 'Eine der Gesamtlaengen wurde ueberschritten';
if(strlen($this->name)>255)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 128 Zeichen sein bei <b>$this->ext_id</b> - $this->bezeichnung";
$this->errormsg = 'Name darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->kurzbz)>16)
if(strlen($this->nummer)>20)
{
$this->errormsg = "Kurzbez darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->kurzbz";
$this->errormsg = 'Nummer darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->anmerkung)>64)
if(strlen($this->kurzbezeichnung)>20)
{
$this->errormsg = "Anmerkung darf nicht laenger als 64 Zeichen sein bei <b>$this->ext_id</b> - $this->anmerkung";
$this->errormsg = 'kurzbezeichnung darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->lehreverzeichnis)>16)
if(!is_numeric($this->fachbereich_id))
{
$this->errormsg = "Lehreverzeichnis darf nicht laenger als 16 Zeichen sein bei <b>$this->ext_id</b> - $this->lehreverzeichnis";
$this->errormsg = 'Fachbereich_id ist ungueltig';
return false;
}
if(!is_numeric($this->studiengang_kz))
if(!is_numeric($this->studiengang_id))
{
$this->errormsg = "Studiengang_kz ist ungueltig bei <b>$this->ext_id</b> - $this->studiengang_kz";
$this->errormsg = 'Studiengang_id ist ungueltig';
return false;
}
if($this->semester!='' && !is_numeric($this->semester))
if(!is_numeric($this->ausbildungssemester_id))
{
$this->errormsg = "Semester ist ungueltig bei <b>$this->ext_id</b> - $this->semester";
$this->errormsg = 'Ausbildungssemester_id ist ungueltig';
return false;
}
if($this->planfaktor!='' && !is_numeric($this->planfaktor))
if($this->art!='' && !is_numeric($this->art))
{
$this->errormsg = "Planfaktor ist ungueltig bei <b>$this->ext_id</b> - $this->planfaktor";
$this->errormsg = 'Art ist ungueltig';
return false;
}
if($this->semesterstunden!='' && !is_numeric($this->semesterstunden))
if($this->studentenwochenstunden!='' && !is_numeric($this->studentenwochenstunden))
{
$this->errormsg = "Semesterstunden ist ungueltig bei <b>$this->ext_id</b> - $this->semesterstunden";
$this->errormsg = 'Studentenwochenstunden ist ungueltig';
return false;
}
if($this->planlektoren!='' && !is_numeric($this->planlektoren))
if($this->kategorie!='' && !is_numeric($this->kategorie))
{
$this->errormsg = "Planlektoren ist ungueltig bei <b>$this->ext_id</b> - $this->planlektoren";
$this->errormsg = "Kategorie ist ungueltig";
return false;
}
if($this->ects!='' && !is_numeric($this->ects))
if($this->ectspunkte!='' && !is_numeric($this->ectspunkte))
{
$this->errormsg = "ECTS sind ungueltig bei <b>$this->ext_id</b> - $this->ects";
$this->errormsg = 'ECTSPunkte sind ungueltig';
return false;
}
if($this->ects>40)
}
if($this->notentlektor_id!='' && !is_numeric($this->notenlektor_id))
{
$this->errormsg = "ECTS größer als 40 bei <b>$this->ext_id</b> - $this->ects";
$this->errormsg = 'Notenlektor ist ungueltig';
return false;
}
}
if($this->sortierung!='' && !is_numeric($this->sortierung))
{
$this->errormsg = 'Sortierung ist ungueltig';
return false;
}
if($this->nummerintern!='' && !is_numeric($this->nummerintern))
{
$this->errormsg = 'NummerIntern ist ungueltig';
return false;
}
if(!is_numeric($this->studiensemester_id))
{
$this->errormsg = 'Studiensemester_id ist ungueltig';
return false;
}
$this->errormsg = '';
return true;
}
@@ -318,27 +315,23 @@ class lehrveranstaltung
if($this->new)
{
//Neuen Datensatz anlegen
$qry = 'INSERT INTO lehre.tbl_lehrveranstaltung (studiengang_kz, bezeichnung, kurzbz,
semester, ects, semesterstunden, anmerkung, lehre, lehreverzeichnis, aktiv, ext_id, insertamum,
insertvon, planfaktor, planlektoren, planpersonalkosten, updateamum, updatevon) VALUES ('.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->kurzbz).', '.
$this->addslashes($this->semester).', '.
$this->addslashes($this->ects).', '.
$this->addslashes($this->semesterstunden).', '.
$this->addslashes($this->anmerkung).', '.
($this->lehre?'true':'false').','.
$this->addslashes($this->lehreverzeichnis).', '.
($this->aktiv?'true':'false').', '.
$this->addslashes($this->ext_id).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->planfaktor).', '.
$this->addslashes($this->planlektoren).', '.
$this->addslashes($this->planpersonalkosten).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).');';
//naechste ID aus der Sequence holen
$qry = "SELECT nextval('lehrveranstaltung_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
return false;
}
$this->lehrveranstaltung_id = $row->id;
$qry = "INSERT INTO lehrveranstaltung(lehrveranstaltung_pk, fachbereich_fk, studiengang_fk, ausbildungssemester_fk,".
" name, nummer, kurzbezeichnung, beschreibung, art, studentenwochenstunden, creationdate, creationuser,".
" kategorie, ectspunkte, studiensemester_fk, notenlektor_fk, sortierung, nummerintern) VALUES(".
" '$this->lehrveranstaltung_id', '$this->fachbereich_id', '$this->studiengang_id', '$this->ausbildungssemester_id',".
" '$this->name', '$this->nummer', '$this->kurzbezeichnung', '$this->beschreibung', '$this->art',".
" '$this->studentenwochenstunden', now(), $this->updatevon, '$this->kategorie', '$this->ectspunkte', '$this->studiensemester_id',".
" '$this->notenlektor_id', '$this->sortierung', '$this->nummerintern');";
}
else
{
@@ -350,33 +343,20 @@ class lehrveranstaltung
$this->errormsg = 'lehrveranstaltung_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE lehre.tbl_lehrveranstaltung SET '.
//'lehrveranstaltung_id= '.$this->addslashes($this->lehrveranstaltung_id) .', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz) .', '.
'bezeichnung='.$this->addslashes($this->bezeichnung) .', '.
'kurzbz='.$this->addslashes($this->kurzbz) .', '.
'semester='.$this->addslashes($this->semester) .', '.
'ects='.$this->addslashes($this->ects) .', '.
'semesterstunden='.$this->addslashes($this->semesterstunden) .', '.
'anmerkung='.$this->addslashes($this->anmerkung) .', '.
'lehre='.$this->addslashes($this->lehre) .', '.
'lehreverzeichnis='.$this->addslashes($this->lehreverzeichnis) .', '.
'aktiv='.($this->aktiv?'true':'false') .', '.
'ext_id='.$this->addslashes($this->ext_id) .', '.
'insertamum='.$this->addslashes($this->insertamum) .', '.
'insertvon='.$this->addslashes($this->insertvon) .', '.
'planfaktor='.$this->addslashes($this->planfaktor) .', '.
'planlektoren='.$this->addslashes($this->planlektoren) .', '.
'planpersonalkosten='.$this->addslashes($this->planpersonalkosten) .', '.
'updateamum='.$this->addslashes($this->updateamum) .','.
'updatevon='.$this->addslashes($this->updatevon) .' '.
'WHERE ext_id = '.$this->addslashes($this->lehrveranstaltung_id).';';
$qry = "UPDATE lehrveranstaltung SET fachbereich_fk = '$this->fachbereich_id', studiengang_fk = '$this->studiengang_id',".
" ausbildungssemester_fk = '$this->ausbildungssemester_id', name = '$this->name', nummer = '$this->nummer',".
" kurzbezeichnung = '$this->kurzbezeichnung', beschreibung = '$this->beschreibung', art = '$this->art',".
" studentenwochenstunden = '$this->studentenwochenstunden', kategorie = '$this->kategorie', ".
" ectspunkte = '$this->ectspunkte', studiensemester_fk = '$this->studiensemester_id',".
" notenlektor_fk = '$this->notenlektor_id', sortierung = '$this->sortierung', nummerintern = '$this->nummerintern'".
" WHERE lehrveranstaltung_pk = '$this->lehrveranstaltung_id';";
}
if(pg_query($this->conn, $qry))
{
//Log schreiben
/*$sql = $qry;
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
@@ -384,19 +364,18 @@ class lehrveranstaltung
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".$this->addslashes($sql)."')";
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
return true;
}
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
$this->errormsg = 'Fehler beim speichern des Datensatzes';
return false;
}
}
@@ -416,7 +395,7 @@ class lehrveranstaltung
}
//Loeschen des Datensatzes
$qry = "DELETE FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
$qry = "DELETE FROM lehrveranstaltung WHERE lehrveranstaltung_pk = '$lehrveranstaltung_id';";
if(pg_query($this->conn, $qry))
{
@@ -429,7 +408,7 @@ class lehrveranstaltung
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".$this->addslashes($sql)."')";
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
-154
View File
@@ -1,154 +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 lehrverband
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $lehrverbaende = array(); // lehrverband Objekt
//Tabellenspalten
var $studiengang_kz; // integer
var $semester; // integer
var $verband; // integer
var $gruppe; // integer
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional einen Lehrverband
// * @param $conn Datenbank-Connection
// *
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function lehrverband($conn, $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;
}
}
function exists($studiengang_kz, $semester, $verband, $gruppe)
{
$qry = "SELECT count(*) as anzahl FROM tbl_lehrverband WHERE
studiengang_kz='".addslashes($studiengang_kz)."' AND
semester='".addslashes($semester)."' AND
verband='".addslashes($verband)."' AND
gruppe='".addslashes($gruppe)."'";
if($row=pg_fetch_object(pg_query($this->conn, $qry)))
{
if($row->anzahl>0)
{
return true;
}
else
{
return false;
}
}
else
{
$this->errormsg = 'Fehler bei Abfrage: '.$qry;
return false;
}
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(!is_numeric($this->semester))
{
$this->errormsg = 'Semester muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang muss eine gueltige Zahl sein';
return false;
}
if($this->verband=='')
{
$this->verband=' ';
}
if($this->gruppe=='')
{
$this->gruppe=' ';
}
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 Lehrverband 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;
$qry = 'INSERT INTO tbl_lehrverband (studiengang_kz, semester, verband, gruppe)
VALUES('.$this->addslashes($this->studiengang_kz).','.
$this->addslashes($this->semester).','.
$this->addslashes($this->verband).','.
$this->addslashes($this->gruppe).');';
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Lehrverbands:'.$qry;
return false;
}
}
}
?>
-293
View File
@@ -1,293 +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 lvinfo (FAS-Online)
* @create 04-12-2006
*/
class lvinfo
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $lvinfo_id; // @var integer
var $lehrziele; // @var string
var $lehrinhalte; // @var string
var $voraussetzungen; // @var string
var $unterlagen; // @var string
var $pruefungsordnung; // @var string
var $anmerkungen; // @var string
var $kurzbeschreibung; // @var string
var $genehmigt; // @var boolean
var $aktiv; // @var boolean
var $sprache; // @var string
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $insertamum; // @var timestamp
var $insertvon=0; // @var string
/**
* Konstruktor
* @param $conn Connection zur DB
* $lvinfo_id ID des zu ladenden Ortes
*/
function lvinfo($conn, $lvinfo_id=null)
{
$this->conn = $conn;
if($lvinfo_id != null && is_numeric($lvinfo_id))
$this->load($lvinfo_id);
}
/**
* Laedt alle verfuegbaren LVInfos
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = 'SELECT * FROM campus.tbl_lvinfo order by lvinfo_id;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$lvinfo_obj = new lvinfo($this->conn);
$lvinfo_obj->lvinfo_id = $row->lvinfo_id;
$lvinfo_obj->lehrziele = $row->lehrziele;
$lvinfo_obj->lehrinhalte = $row->lehrinhalte;
$lvinfo_obj->voraussetzungen = $row->voraussetzungen;
$lvinfo_obj->unterlagen = $row->unterlagen;
$lvinfo_obj->pruefungsordnung = $row->pruefungsordnung;
$lvinfo_obj->anmerkungen = $row->anmerkungen;
$lvinfo_obj->kurzbeschreibung = $row->kurzbeschreibung;
$lvinfo_obj->genehmigt = $row->genehmigt;
$lvinfo_obj->aktiv = $row->aktiv;
$lvinfo_obj->sprache = $row->sprache;
$lvinfo_obj->insertamum = $row->insertamum;
$lvinfo_obj->insertvon = $row->insertvon;
$lvinfo_obj->updateamum = $row->updateamum;
$lvinfo_obj->updatevon = $row->updatevon;
$this->result[] = $lvinfo_obj;
}
return true;
}
/**
* Laedt eine LVInfo
* @param $lvinfo_id ID der zu ladenden LVInfo
* @return true wenn ok, false im Fehlerfall
*/
function load($lvinfo_id)
{
if($lvinfo == '' || !is_numeric($lvinfo_id))
{
$this->errormsg = 'lvinfo_id ungültig';
return false;
}
$qry = "SELECT * FROM campus.tbl_lvinfo WHERE lvinfo_id = '$lvinfo_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->lvinfo_id = $row->lvinfo_id;
$this->lehrziele = $row->lehrziele;
$this->lehrinhalte = $row->lehrinhalte;
$this->voraussetzungen = $row->voraussetzungen;
$this->unterlagen = $row->unterlagen;
$this->pruefungsordnung = $row->pruefungsordnung;
$this->anmerkungen = $row->anmerkungen;
$this->kurzbeschreibung = $row->kurzbeschreibung;
$this->genehmigt = $row->genehmigt;
$this->aktiv = $row->aktiv;
$this->sprache = $row->sprache;
$this->kosten = $row->kosten;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID ('.$lvinfo_id.') vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $lvinfo_id ID des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($lvinfo_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->lehrziele = str_replace("'",'´',$this->lehrziele);
$this->lehrinhalte = str_replace("'",'´',$this->lehrinhalte);
$this->voraussetzungen = str_replace("'",'´',$this->voraussetzungen);
$this->unterlagen = str_replace("'",'´',$this->unterlagen);
$this->pruefungsordnung = str_replace("'",'´',$this->pruefungsordnung);
$this->anmerkungen = str_replace("'",'´',$this->anmerkungen);
$this->kurzbeschreibung = str_replace("'",'´',$this->kurzbeschreibung);
$this->sprache = str_replace("'",'´',$this->sprache);
//Laenge Pruefen
if(strlen($this->sprache)>16)
{
$this->errormsg = "Sprache darf nicht laenger als 16 Zeichen sein bei <b>".$this->$lvinfo_id."</b> - $this->sprache";
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 lvinfo_id eine gueltige Bezeichnung ist
if($this->lvinfo_id == '' || !is_numeric($this->lvinfo_id))
{
$this->errormsg = 'lvinfo_id ungültig';
return false;
}
//Neuen Datensatz anlegen
$qry = 'BEGIN; INSERT INTO campus.tbl_lvinfo (lehrziele, lehrinhalte, voraussetzungen, unterlagen, pruefungsordnung, anmerkungen,
kurzbeschreibung, genehmigt, aktiv, sprache, insertamum, insertvon, updateamum,
updatevon) VALUES ('.
$this->addslashes($this->lehrziele).', '.
$this->addslashes($this->lehrinhalte).', '.
$this->addslashes($this->voraussetzungen).', '.
$this->addslashes($this->unterlagen).', '.
$this->addslashes($this->pruefungsordnung).', '.
$this->addslashes($this->anmerkungen).', '.
$this->addslashes($this->kurzbeschreibung).', '.
($this->genehmigt?'true':'false').', '.
($this->aktiv?'true':'false').', '.
$this->addslashes($this->sprache).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob lvinfo_id gueltig ist
if($this->lvinfo_id == '' || !is_numeric($this->lvinfo_id))
{
$this->errormsg = 'lvinfo_id '.$this->lvinfo_id.' ungültig';
return false;
}
$qry = 'BEGIN; UPDATE campus.tbl_lvinfo SET '.
//'lvinfo_id='.$this->addslashes($this->lvinfo_id).', '.
'lehrziele='.$this->addslashes($this->lehrziele).', '.
'lehrinhalte='.$this->addslashes($this->lehrinhalte).', '.
'voraussetzungen='.$this->addslashes($this->voraussetzungen).', '.
'pruefungsordnung='.$this->addslashes($this->pruefungsordnung).', '.
'anmerkungen='.$this->addslashes($this->anmerkungen).', '.
'kurzbeschreibung='.$this->addslashes($this->kurzbeschreibung).', '.
'genehmigt='.($this->aktiv?'true':'false') .', '.
'aktiv='.($this->aktiv?'true':'false') .', '.
'sprache='.$this->addslashes($this->sprache).', '.
'insertamum='.$this->addslashes($this->insertamum).', '.
'insertvon='.$this->addslashes($this->insertvon).', '.
'updateamum='.$this->addslashes($this->updateamum).', '.
'updatevon='.$this->addslashes($this->updatevon).' '.
'WHERE lvinfo_id = '.$this->addslashes($this->lvinfo_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;
}*/
$qry = "SELECT currval('campus.tbl_lvinfo_lvinfo_id_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler!';
pg_query($this->conn, "ROLLBACK");
return false;
}
else
{
$this->lvinfo_id = $row->id;
pg_query($this->conn, "COMMIT");
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
}
}
?>
+697 -134
View File
@@ -1,179 +1,742 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Klasse Mitarbeiter abgeleitet von Person (FAS-Online)
* @create 06-03-2006
*/
class mitarbeiter extends benutzer
class mitarbeiter extends person
{
//Tabellenspalten
var $ausbildungcode; //integer
var $personalnummer; //serial
var $kurzbz; //varchar(8)
var $lektor; //boolean
var $fixangestellt; //boolean
var $telefonklappe; //varchar(25)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional einen Mitarbeiter
// * @param $conn Datenbank-Connection
// * $uid Mitarbeiter der geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function mitarbeiter($conn, $uid=null, $unicode=false)
var $mitarbeiter_id; // @var bigint
var $beginndatum; // @var timestamp
var $akadgrad; // @var boolean
var $akadgrad_bezeichnung; // @var boolean
var $habilitation; // @var boolean
var $mitgliedentwicklungsteam; // @var boolean
var $qualifikation; // @var integer
var $hauptberuflich; // @var boolean
var $hauptberuf; // @var integer
var $semesterwochenstunden; // @var float
var $persnr; // @var string
var $beendigungsdatum; // @var timestamp
var $ausgeschieden; // @var boolean
var $ausgeschieden_bezeichnung; // @var string
var $kurzbez; // @var string
var $stundensatz; // @var float
var $ausbildung; // @var integer
var $ausbildung_bezeichnung; // @var string
var $aktiv; // @var boolean
var $aktiv_bezeichnung; // @var boolean
var $zustelladresse_plz;
var $zustelladresse_strasse;
var $zustelladresse_ort;
/**
* Konstruktor
*/
function mitarbeiter($conn, $person_id=null)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
//Mitarbeiter laden
if($person_id!=null)
$this->load($person_id);
}
/**
* ueberprueft die Variablen auf Gueltigkeit
* @return true wenn gueltig, false im Fehlerfall
*/
function checkvars()
{
//Hochkomma herausfiltern
$this->persnr = str_replace("'","`", $this->persnr);
$this->kurzbez = str_replace("'","`", $this->kurzbez);
//Maximallaenge pruefen
$this->errormsg='Die Maximallaenge eines Feldes wurde ueberschritten';
if(strlen($this->persnr)>20)
{
$this->errormsg='PersonalNr darf nicht länger als 20 Zeichen sein';
return false;
}
if(strlen($this->kurzbez)>10)
{
$this->errormsg="Kurzbezeichnung darf nicht länger als 10 Zeichen sein:".strlen($this->kurzbez);
return false;
}
//Zahlenwerte ueberpruefen
$this->errormsg='Ein Zahlenfeld enthaelt ungueltige Zeichen';
//if(!is_numeric($this->qualifikation)) return false;
//if(!is_numeric($this->hauptberuf)) return false;
if(!is_numeric($this->stundensatz) && $this->stundensatz!='')
{
$this->errormsg='Stundensatz muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->ausbildung) && $this->ausbildung!='')
{
$this->errormsg='ausbildung muss eine gueltige Zahl sein';
return false;
}
/*if(!is_numeric($this->semesterwochenstunden))
{
$this->errormsg='SWS muss eine gueltige Zahl sein';
return false;
}*/
if($this->kurzbz_exists($this->kurzbez, $this->mitarbeiter_id))
{
$this->errormsg = 'Diese Kurzbezeichnung wird bereits verwendet';
return false;
}
//Mitarbeiter laden
//if($uid!=null)
// $this->load($uid);
}
// ************************************************
// * ueberprueft die Variablen auf Gueltigkeit
// * @return true wenn gueltig, false im Fehlerfall
// ************************************************
function validate()
{
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->uid=='')
{
$this->errormsg = 'UID muss eingegeben werden';
return false;
}
if($this->ausbildungcode!='' && !is_numeric($this->ausbildungcode))
{
$this->errormsg = 'Ausbildungscode ist ungueltig';
return false;
}
if($this->personalnummer!='' && !is_numeric($this->personalnummer))
{
$this->errormsg = 'Personalnummer muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->kurzbz)>8)
{
$this->errormsg = 'kurzbz darf nicht laenger als 8 Zeichen sein';
return false;
}
if(!is_bool($this->lektor))
{
$this->errormsg = 'lektor muss boolean sein'.$this->lektor;
return false;
}
if(!is_bool($this->fixangestellt))
{
$this->errormsg = 'fixangestellt muss boolean sein';
return false;
}
if(strlen($this->telefonklappe)>25)
{
$this->errormsg = 'telefonklappe darf nicht laenger als 25 Zeichen sein';
return false;
}
if(strlen($this->updatevon)>32)
{
$this->errormsg = 'updatevon darf nicht laenger als 32 Zeichen sein';
return false;
}
$this->errormsg = '';
return true;
}
// *************************************************
// * Speichert die Mitarbeiterdaten in die Datenbank
// * @return true wenn ok, false im Fehlerfall
// *************************************************
/**
* Speichert die Mitarbeiterdaten in die Datenbank
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Variablen checken
if(!$this->validate())
if(!$this->checkvars())
return false;
pg_query($this->conn,'BEGIN;');
pg_query($this->conn,"Begin;");
//Basisdaten speichern
if(!benutzer::save())
if(!person::save())
{
pg_query($this->conn,'ROLLBACK;');
pg_query($this->conn,"Rollback;");
return false;
}
if($this->new)
{
//Neuen Datensatz anlegen
$qry = "INSERT INTO tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor,
fixangestellt, telefonklappe, updateamum, updatevon)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->ausbildungcode).",".
$this->addslashes($this->personalnummer).",". //TODO: in Produktivversion nicht angeben
$this->addslashes($this->kurzbz).','.
($this->lektor?'true':'false').','.
($this->fixangestellt?'true':'false').','.
$this->addslashes($this->telefonklappe).','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).');';
//Neuen Datensatz einfuegen
//naechste ID aus Sequence auslesen
$qry = "SELECT nextval('mitarbeiter_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn,$qry)))
{
$this->errormsg = 'Fehler beim auslesen der Sequence';
return false;
}
$this->mitarbeiter_id = $row->id;
$qry = "INSERT INTO mitarbeiter (mitarbeiter_pk, beginndatum, akadgrad, habilitation,".
//" mitgliedentwicklungsteam,".
//" qualifikation, hauptberuflich, hauptberuf, semesterwochenstunden,".
" creationdate, creationuser, persnr,".
" person_fk, beendigungsdatum, ausgeschieden, kurzbez, stundensatz, ausbildung, aktiv) VALUES (".
" '$this->mitarbeiter_id',".
(strlen($this->beginndatum)>0?"'$this->beginndatum'":"NULL") .", '".($this->akadgrad?'J':'N')."',".
" '".($this->habilitation?'J':'N')."', ".
//"'".($this->mitgliedentwicklungsteam?'J':'N')."',".
//" '$this->qualifikation', '".($this->hauptberuflich?'J':'N')."', '$this->hauptberuf', '$this->semesterwochenstunden',".
" now(),".
" '$this->updatevon', '$this->persnr', '$this->person_id',".
(strlen($this->beendigungsdatum)>0?"'$this->beendigungsdatum'":"null").",".
" '".($this->ausgeschieden?'J':'N')."',".
(strlen($this->kurzbez)>0?"'$this->kurzbez'":"null").", '$this->stundensatz',".
($this->ausbildung!=''?"'$this->ausbildung'":'null').",'$this->aktiv');";
}
else
{
//Bestehenden Datensatz updaten
$qry = 'UPDATE tbl_mitarbeiter SET'.
' ausbildungcode='.$this->addslashes($this->ausbildungcode).','.
" personalnummer=".$this->addslashes($this->personalnummer).",". //TODO: in Produktivversion nicht angeben
' kurzbz='.$this->addslashes($this->kurzbz).','.
' lektor='.($this->lektor?'true':'false').','.
' fixangestellt='.($this->fixangestellt?'true':'false').','.
' telefonklappe='.$this->addslashes($this->telefonklappe).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).
" WHERE mitarbeiter_uid='".addslashes($this->uid)."';";
//Bestehenden Datensatz ueberschreiben
//mitarbeiter_id auf Gueltigkeit pruefen
if(!is_numeric($this->mitarbeiter_id))
{
$this->errormsg = 'mitarbeiter_id muss eine gueltige Zahl sein';
return false;
}
$qry = "UPDATE mitarbeiter SET".
" beginndatum=".($this->beginndatum!=''?"'$this->beginndatum'":'null').",".
" akadgrad='".($this->akadgrad?'J':'N')."',".
" habilitation='".($this->habilitation?'J':'N')."',".
//" mitgliedentwicklungsteam='".($this->mitgliedentwicklungsteam?'J':'N')."',".
//" qualifikation='$this->qualifikation', hauptberuflich='".($this->hauptberuflich?'J':'N')."',".
//" hauptberuf='$this->hauptberuf', semesterwochenstunden='$this->semesterwochenstunden',".
" persnr=".($this->persnr!=''?"'$this->persnr'":'null').",".
" person_fk='$this->person_id',".
" beendigungsdatum=".($this->beendigungsdatum!=''?"'$this->beendigungsdatum'":'null').",".
" ausgeschieden='".($this->ausgeschieden?'J':'N')."',".
" kurzbez=".($this->kurzbez!=''?"'$this->kurzbez'":'null').",".
" stundensatz=".($this->stundensatz!=''?"'$this->stundensatz'":'null').",".
" ausbildung=".($this->ausbildung!=''?"'$this->ausbildung'":'null').",".
" aktiv='$this->aktiv'".
" WHERE mitarbeiter_pk=$this->mitarbeiter_id;";
}
if(pg_query($this->conn,$qry))
{
pg_query($this->conn,'COMMIT;');
//Wenn nicht ausgeschieden dann den Status neu setzen
//Da sonst beim ruecksetzen des Hakerls ausgeschieden der status bleibt
if(!$this->ausgeschieden)
{
if(!person::updateaktstatus($this->person_id))
{
pg_query($this->conn,"Rollback;");
return false;
}
}
else
{
if(!person::setaktstatus(150,$this->person_id))
{
pg_query($this->conn,"Rollback;");
return false;
}
}
pg_query($this->conn,"Commit;");
//Log schreiben
return true;
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
else
{
pg_query($this->conn,'ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Mitarbeiter-Datensatzes'.$qry;
pg_query($this->conn,"Rollback;");
$this->errormsg = 'Fehler beim Speichern des Mitarbeiter-Datensatzes';
return false;
}
}
/**
* Ladet die Daten aus der Datenbank
* @param $fix wenn 'true' Fixangestellte laden
* wenn 'false' Freie MA laden
* $stgl wenn 'true' Studiengangsleiter laden
* $fbl wenn 'true' Fachbereichsleiter laden
* $aktiv wenn 'true' Aktive MA laden
* $karrenziert wenn 'true' Karenzierte laden
* $ausgesch wenn 'true' Ausgeschiedene laden
* @return true wenn ok, false im Fehlerfall
*/
function getMitarbeiter($mitarbeiter_id='', $fix='', $stgl='', $fbl='', $aktiv='', $karenziert='', $ausgesch='', $adresse=false, $studiensemester_id='')
{
$qry = "SELECT * FROM (mitarbeiter JOIN person ON (person_pk=mitarbeiter.person_fk))";
if($adresse)
$qry .= " LEFT JOIN adresse on(person_pk=adresse.person_fk)";
$qry .= " WHERE true";
if($mitarbeiter_id!='')
if(is_numeric($mitarbeiter_id))
$qry .= " AND mitarbeiter_pk = $mitarbeiter_id";
else
{
$this->errormsg = "mitarbeiter_id muss eine gueltige Zahl sein";
return false;
}
if($studiensemester_id=='')
{
$query = "Select studiensemester_pk FROM studiensemester WHERE aktuell='J'";
if($row = pg_fetch_object(pg_query($this->conn, $query)))
$studiensemester_id = $row->studiensemester_pk;
}
if($fix=='true') // Alle Fixangestellten
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.beschart1=3 AND funktion.studiensemester_fk='$studiensemester_id')";
if($fix=='false') // Freie Mitarbeiter
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.beschart1=4 AND funktion.studiensemester_fk='$studiensemester_id')";
if($stgl=='true') //Alle Studiengangsleiter
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.funktion=5 AND funktion.studiensemester_fk='$studiensemester_id')";
if($fbl=='true') //Alle Fachbereichsleiter
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.funktion=6 AND funktion.studiensemester_fk='$studiensemester_id')";
if($aktiv=='true') //Alle aktiven
$qry .= " AND aktiv=true";
if($karenziert=='true') //Alle Karenzierten
$qry .= " AND mitarbeiter_pk IN(SELECT distinct funktion.mitarbeiter_fk FROM funktion WHERE funktion.ausmass=5 AND funktion.studiensemester_fk='$studiensemester_id')";
if($ausgesch=='true') // Alle Ausgeschiedenen
$qry .= " AND beendigungsdatum is not null";
$qry .= " ORDER BY familienname";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$mitarb = new mitarbeiter($this->conn);
//Personendaten
$mitarb->person_id = $row->person_pk;
$mitarb->familienname = $row->familienname;
$mitarb->angelegtam = $row->angelegtam;
$mitarb->vorname = $row->vorname;
$mitarb->anrede = $row->anrede;
$mitarb->vornamen = $row->vornamen;
$mitarb->geschlecht = $row->geschlecht;
$mitarb->gebdat = $row->gebdat;
$mitarb->gebort = $row->gebort;
$mitarb->staatsbuergerschaft = $row->staatsbuergerschaft;
$mitarb->familienstand = $row->familienstand;
$mitarb->familienstand_bezeichnung = $this->getFamilienstandBezeichnung($row->familienstand);
$mitarb->svnr = $row->svnr;
$mitarb->anzahlderkinder = $row->anzahlderkinder;
$mitarb->ersatzkennzeichen = $row->ersatzkennzeichen;
$mitarb->bemerkung = $row->bemerkung;
$mitarb->aktstatus = $row->aktstatus;
$mitarb->aktstatus_bezeichnung = $this->getAktstatusBezeichnung($row->aktstatus);
$mitarb->bismelden = ($row->bismelden=='J'?true:false);
$mitarb->bismelden_bezeichnung = ($row->bismelden=='J'?'Ja':'Nein');
$mitarb->titelpre = $row->titel;
$mitarb->titelpost = $row->postnomentitel;
$mitarb->uid = $row->uid;
$mitarb->gebnation = $row->gebnation;
//Mitarbeiterdaten
$mitarb->mitarbeiter_id = $row->mitarbeiter_pk;
$mitarb->beginndatum = $row->beginndatum;
$mitarb->akadgrad = ($row->akadgrad=='J'?true:false);
$mitarb->akadgrad_bezeichnung = ($row->akadgrad=='J'?'Ja':'Nein');
$mitarb->habilitation = ($row->habilitation=='J'?true:false);
$mitarb->habilitation_bezeichnung = ($row->habilitation=='J'?'Ja':'Nein');
$mitarb->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
$mitarb->qualifikation = $row->qualifikation;
$mitarb->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$mitarb->hauptberuf = $row->hauptberuf;
$mitarb->updateamum = $row->creationdate;
$mitarb->updatevon = $row->creationuser;
$mitarb->semesterwochenstunden = $row->semesterwochenstunden;
$mitarb->persnr = $row->persnr;
$mitarb->beendigungsdatum = $row->beendigungsdatum;
$mitarb->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
$mitarb->ausgeschieden_bezeichnung = ($row->ausgeschieden=='J'?'Ja':'Nein');
$mitarb->kurzbez = $row->kurzbez;
$mitarb->stundensatz = $row->stundensatz;
$mitarb->ausbildung = $row->ausbildung;
$mitarb->ausbildung_bezeichnung = $this->getAusbildungBezeichnung($row->ausbildung);
$mitarb->aktiv = ($row->aktiv=='t'?true:false);
$mitarb->aktiv_bezeichnung = ($row->aktiv=='t'?'Ja':'Nein');
if($adresse)
{
$mitarb->zustelladresse_plz = $row->plz;
$mitarb->zustelladresse_strasse = $row->strasse;
$mitarb->zustelladresse_ort = $row->ort;
}
$this->result[] = $mitarb;
}
return true;
}
/**
* Liefert alle Mitarbeiter
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "Select person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk)";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
while($row = pg_fetch_object($res))
{
$mitarb = new mitarbeiter($this->conn);
//Personendaten
$mitarb->person_id = $row->person_pk;
$mitarb->familienname = $row->familienname;
$mitarb->angelegtam = $row->angelegtam;
$mitarb->vorname = $row->vorname;
$mitarb->anrede = $row->anrede;
$mitarb->vornamen = $row->vornamen;
$mitarb->geschlecht = $row->geschlecht;
$mitarb->gebdat = $row->gebdat;
$mitarb->gebort = $row->gebort;
$mitarb->staatsbuergerschaft = $row->staatsbuergerschaft;
$mitarb->familienstand = $row->familienstand;
$mitarb->svnr = $row->svnr;
$mitarb->anzahlderkinder = $row->anzahlderkinder;
$mitarb->ersatzkennzeichen = $row->ersatzkennzeichen;
$mitarb->bemerkung = $row->bemerkung;
$mitarb->aktstatus = $row->aktstatus;
$mitarb->bismelden = ($row->bismelden=='J'?true:false);
$mitarb->titelpre = $row->titel;
$mitarb->titelpost = $row->postnomentitel;
$mitarb->uid = $row->uid;
$mitarb->gebnation = $row->gebnation;
//Mitarbeiterdaten
$mitarb->mitarbeiter_id = $row->mitarbeiter_pk;
$mitarb->beginndatum = $row->beginndatum;
$mitarb->akadgrad = ($row->akadgrad=='J'?true:false);
$mitarb->habilitation = ($row->habilitation=='J'?true:false);
$mitarb->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
$mitarb->qualifikation = $row->qualifikation;
$mitarb->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$mitarb->hauptberuf = $row->hauptberuf;
$mitarb->updateamum = $row->creationdate;
$mitarb->updatevon = $row->creationuser;
$mitarb->semesterwochenstunden = $row->semesterwochenstunden;
$mitarb->persnr = $row->persnr;
$mitarb->beendigungsdatum = $row->beendigungsdatum;
$mitarb->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
$mitarb->kurzbez = $row->kurzbez;
$mitarb->stundensatz = $row->stundensatz;
$mitarb->ausbildung = $row->ausbildung;
$mitarb->aktiv = ($row->aktiv=='t'?true:false);
$this->result[] = $mitarb;
}
return true;
}
/**
* Laedt die Mitarbeiterdaten der uebergebenen ID
* @param $person_id ID der Person die geladen werden soll
* @return true wenn ok, false im Fehlerfall
*/
function load($person_id)
{
//person_id auf Gueltigkeit pruefen
if(!is_numeric($person_id) || $person_id=='')
{
$this->errormsg = 'Person_id muss eine Zahl sein';
return false;
}
$qry = "SELECT person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk) where person_pk=$person_id";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = pg_fetch_object($res))
{
//Personendaten
$this->person_id = $row->person_pk;
$this->familienname = $row->familienname;
$this->angelegtam = $row->angelegtam;
$this->vorname = $row->vorname;
$this->anrede = $row->anrede;
$this->vornamen = $row->vornamen;
$this->geschlecht = $row->geschlecht;
$this->gebdat = $row->gebdat;
$this->gebort = $row->gebort;
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
$this->familienstand = $row->familienstand;
$this->svnr = $row->svnr;
$this->anzahlderkinder = $row->anzahlderkinder;
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->bemerkung = $row->bemerkung;
$this->aktstatus = $row->aktstatus;
$this->bismelden = ($row->bismelden=='J'?true:false);
$this->titelpre = $row->titel;
$this->titelpost = $row->postnomentitel;
$this->uid = $row->uid;
$this->gebnation = $row->gebnation;
//Mitarbeiterdaten
$this->mitarbeiter_id = $row->mitarbeiter_pk;
$this->beginndatum = $row->beginndatum;
$this->akadgrad = ($row->akadgrad=='J'?true:false);
$this->habilitation = ($row->habilitation=='J'?true:false);
$this->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
$this->qualifikation = $row->qualifikation;
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$this->hauptberuf = $row->hauptberuf;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->semesterwochenstunden = $row->semesterwochenstunden;
$this->persnr = $row->persnr;
$this->beendigungsdatum = $row->beendigungsdatum;
$this->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
$this->kurzbez = $row->kurzbez;
$this->stundensatz = $row->stundensatz;
$this->ausbildung = $row->ausbildung;
$this->aktiv = ($row->aktiv=='t'?true:false);
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Laedt die Mitarbeiterdaten der uebergebenen ID
* @param $mitarbeiter_id ID der Person die geladen werden soll
* @return true wenn ok, false im Fehlerfall
*/
function load_mitarbeiter($mitarbeiter_id)
{
//person_id auf Gueltigkeit pruefen
if(!is_numeric($mitarbeiter_id) || $mitarbeiter_id=='')
{
$this->errormsg = 'Person_id muss eine Zahl sein';
return false;
}
$qry = "SELECT person_pk, familienname, angelegtam, vorname, anrede, vornamen, geschlecht, gebdat, gebort, staatsbuergerschaft, ".
"familienstand, svnr, anzahlderkinder, ersatzkennzeichen, bemerkung, aktstatus, bismelden, titel, postnomentitel, uid, gebnation, ".
"mitarbeiter_pk, beginndatum, akadgrad, habilitation, mitgliedentwicklungsteam, qualifikation, hauptberuflich, hauptberuf, ".
"mitarbeiter.creationdate, mitarbeiter.creationuser, semesterwochenstunden, persnr, beendigungsdatum, ausgeschieden, ".
"kurzbez, stundensatz, ausbildung, aktiv FROM mitarbeiter JOIN person ON(person_pk=person_fk) where mitarbeiter_pk=$mitarbeiter_id";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
return false;
}
if($row = pg_fetch_object($res))
{
//Personendaten
$this->person_id = $row->person_pk;
$this->familienname = $row->familienname;
$this->angelegtam = $row->angelegtam;
$this->vorname = $row->vorname;
$this->anrede = $row->anrede;
$this->vornamen = $row->vornamen;
$this->geschlecht = $row->geschlecht;
$this->gebdat = $row->gebdat;
$this->gebort = $row->gebort;
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
$this->familienstand = $row->familienstand;
$this->svnr = $row->svnr;
$this->anzahlderkinder = $row->anzahlderkinder;
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->bemerkung = $row->bemerkung;
$this->aktstatus = $row->aktstatus;
$this->bismelden = ($row->bismelden=='J'?true:false);
$this->titelpre = $row->titel;
$this->titelpost = $row->postnomentitel;
$this->uid = $row->uid;
$this->gebnation = $row->gebnation;
//Mitarbeiterdaten
$this->mitarbeiter_id = $row->mitarbeiter_pk;
$this->beginndatum = $row->beginndatum;
$this->akadgrad = ($row->akadgrad=='J'?true:false);
$this->habilitation = ($row->habilitation=='J'?true:false);
$this->mitgliedentwicklungsteam = ($row->mitgliedentwicklungsteam=='J'?true:false);
$this->qualifikation = $row->qualifikation;
$this->hauptberuflich = ($row->hauptberuflich=='J'?true:false);
$this->hauptberuf = $row->hauptberuf;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
$this->semesterwochenstunden = $row->semesterwochenstunden;
$this->persnr = $row->persnr;
$this->beendigungsdatum = $row->beendigungsdatum;
$this->ausgeschieden = ($row->ausgeschieden=='J'?true:false);
$this->kurzbez = $row->kurzbez;
$this->stundensatz = $row->stundensatz;
$this->ausbildung = $row->ausbildung;
$this->aktiv = ($row->aktiv=='t'?true:false);
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* loescht den Mitarbeiter mit der uebergebenen ID
* @param ma_id Mitarbeiter_id
* @return true wenn ok, false im Fehlerfall
*/
function delete($person_id)
{
//person_id auf Gueltigkeit pruefen
if(!is_numeric($person_id) || $person_id=='')
{
$this->errormsg = 'Person_id muss eine Zahl sein';
return false;
}
$qry = "DELETE FROM funktion where mitarbeiter_fk=(Select mitarbeiter_pk from mitarbeiter where person_fk=$person_id);".
" DELETE FROM adresse where person_fk=$person_id;".
" DELETE FROM telefonnummer where person_fk=$person_id;".
" DELETE FROM email where person_fk=$person_id;".
" DELETE FROM mitarbeiter where person_fk=$person_id";
if(!pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim Loeschen';
return false;
}
else
{
if(!person::delete($person_id))
return false;
else
{
//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
}
return true;
}
/**
* Liefert die passende Bezeichnung des Familienstandes
* @param $id ID des Familienstandes
*/
function getFamilienstandBezeichnung($id)
{
switch($id)
{
case 1: return 'ledig';
case 2: return 'verheiratet';
case 3: return 'geschieden';
case 4: return 'verwitwet';
default: return '';
}
}
/**
* Liefert die passende Bezeichnung der Ausbildung
* @param $id ID der Ausbildung
*/
function getAusbildungBezeichnung($id)
{
switch($id)
{
case 1: return 'Universitätsabschluss mit Doktorat als Zweit- oder Dritt- oder PhD-Abschluss';
case 2: return 'Universitäts- oder Hochschulabschluss auf Diplom oder Magisterebene, Doktor als Erstabschluss';
case 3: return 'Fachhochschulabschluss auf Diplom- oder Magisterebene';
case 4: return 'Universitätsabschluss auf Bakkalaureatsebene';
case 5: return 'Fachhochschulabschluss auf Bakkalaureatsebene';
case 6: return 'Diplom einer Akademie';
case 7: return 'Anderer tertiärer Bildungsabschluss';
case 8: return 'Reifeprüfung einer allgemeinbildenden höheren Schule';
case 9: return 'Reifeprüfung einer berufsbildenden höheren Schule';
case 10: return 'Lehrabschlussprüfung';
case 11: return 'Pflichtschule';
default: return '';
}
}
/**
* Liefert die passende Bezeichnung des Aktuellen Status
* @param $id ID des Status
*/
function getAktstatusBezeichnung($id)
{
switch($id)
{
case 100: return 'Mitarbeiter';
case 101: return 'Lektor';
case 102: return 'Koordinator';
case 103: return 'Fachbereichsleiter';
case 104: return 'Studiengangsleiter';
case 150: return 'Ausgeschieden';
default: return '';
}
}
/**
* Prüft ob eine Kurzbezeichnung schon existiert. Falls eine mitarbeiter_id
* angegeben wird, dann wird dieser Datensatz von der ueberpruefung ausgeschlossen
* ( fuer Update eines Datensatzes)
*/
function kurzbz_exists($kurzbz, $mitarbeiter_id='')
{
if($kurzbz!='')
{
$this->errormsg = '';
$qry = "SELECT count(*) as anz from mitarbeiter where kurzbez='$kurzbz'";
if($mitarbeiter_id!='')
$qry .= " AND mitarbeiter_pk<>".$mitarbeiter_id;
if($result = pg_query($this->conn,$qry))
{
while ($row=pg_fetch_object($result))
{
if($row->anz == 0)
{
return false;
}
else
{
return true;
}
}
}
else
{
$this->errormsg = 'Fehler beim pruefen der Kurzbezeichnung';
return false;
}
}
return false;
}
/**
* Liefert die naechste Personalnummer
*/
function getNextPersonalnr()
{
$qry = "SELECT max(persnr) AS persnr FROM mitarbeiter WHERE length(persnr)=(SELECT max(length(persnr)) FROM mitarbeiter)";
if($row = pg_fetch_object(pg_query($this->conn,$qry)))
return $row->persnr+1;
else
return false;
}
}
?>
-264
View File
@@ -1,264 +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 news (FAS-Online)
* @create 04-12-2006
*/
class news
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
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 $studiengang_kz; // @var integer
var $verfasser; // @var varchar(64)
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
var $insertamum; // @var timestamp
var $insertvon=0; // @var string
/**
* Konstruktor
* @param $conn Connection zur DB
* $news_id ID der zu ladenden Funktion
*/
function news($conn, $news_id=null)
{
$this->conn = $conn;
if($news_id != null)
$this->load($news_id);
}
/**
* Laedt alle verfuegbaren Benutzerfunktionen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = 'SELECT * FROM campus.tbl_news order by news_id;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$news_obj = new news($this->conn);
$news_obj->news_id = $row->news_id;
$news_obj->betreff = $row->betreff;
$news_obj->text = $row->text;
$news_obj->semester = $row->semester;
$news_obj->uid = $row->uid;
$news_obj->studiengang_kz=$row->studiengang_kz;
$news_obj->verfasser = $row->verfasser;
$news_obj->insertamum=$row->insertamum;
$news_obj->insertvon=$row->insertvon;
$news_obj->updateamum=$row->updateamum;
$news_obj->updatevon=$row->updatevon;
$this->result[] = $news_obj;
}
return true;
}
/**
* Laedt eine News
* @param $news_id ID der zu ladenden Funktion
* @return true wenn ok, false im Fehlerfall
*/
function load($news_id)
{
if($news_id == '' || !is_nan($news_id))
{
$this->errormsg = 'news_id muß eine gültige Zahl sein';
return false;
}
$qry = "SELECT * FROM campus.tbl_news WHERE news_id = '$this->news_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->news_id = $row->news_id;
$this->betreff = $row->betreff;
$this->text = $row->text;
$this->semester = $row->semester;
$this->uid = $row->uid;
$this->studiengang_kz = $row->studiengang_kz;
$this->verfasser = $row->verfasser;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $news_id id des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($news_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->betreff = str_replace("'",'´',$this->betreff);
$this->text = str_replace("'",'´',$this->text);
$this->verfasser = str_replace("'",'´',$this->verfasser);
//Laenge Pruefen
if(strlen($this->betreff)>128)
{
$this->errormsg = "Betreff darf nicht laenger als 128 Zeichen sein bei <b>$this->news_id</b> - $this->betreff";
return false;
}
if(strlen($this->verfasser)>64)
{
$this->errormsg = "Verfasser darf nicht laenger als 64 Zeichen sein bei <b>$this->news_id</b> - $this->verfasser";
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
//Pruefen ob funktion_kurzbz befüllt ist
if($this->news_id == '' || !is_numeric($this->news_id))
{
$this->errormsg = 'News_id ungültig';
return false;
}
$qry = 'INSERT INTO campus.tbl_news (news_id, betreff, text, semester, uid, studiengang_kz, verfasser, insertamum, insertvon,
updateamum, updatevon) VALUES ('.
$this->addslashes($this->news_id).', '.
$this->addslashes($this->betreff).', '.
$this->addslashes($this->text).', '.
$this->addslashes($this->semester).', '.
$this->addslashes($this->uid).', '.
$this->addslashes($this->studiengang_kz).', '.
$this->addslashes($this->verfasser).', '.
$this->addslashes($this->insertamum).', '.
$this->addslashes($this->insertvon).', '.
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).'); ';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob news_id eine gueltige Zahl ist
if(!is_numeric($this->news_id) || $this->news_id == '')
{
$this->errormsg = 'News_id muss eine gueltige Zahl sein';
return false;
}
$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).', '.
'uid='.$this->addslashes($this->uid).', '.
'studiengang_kz='.$this->addslashes($this->studiengang_kz).', '.
'verfasser='.$this->addslashes($this->verfasser).', '.
'insertamum='.$this->addslashes($this->insertamum).', '.
'insertvon='.$this->addslashes($this->insertvon).', '.
'updateamum='.$this->addslashes($this->updateamum).', '.
'updatevon='.$this->addslashes($this->updatevon).' '.
'WHERE news_id = '.$this->addslashes($this->news_id).';';
}
if(pg_query($this->conn, $qry))
{
/*//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes - '.$this->uid;
return false;
}
}
}
?>
-254
View File
@@ -1,254 +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 ort (FAS-Online)
* @create 04-12-2006
*/
class ort
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $ort_kurzbz; // @var string
var $bezeichnung; // @var string
var $planbezeichnung; // @var string
var $max_person; // @var integer
var $aktiv; // @var boolean
var $lageplan; // @var oid
var $dislozierung; // @var smallint
var $kosten; // @var numeric(8,2)
/**
* Konstruktor
* @param $conn Connection zur DB
* $fachb_id ID des zu ladenden Ortes
*/
function ort($conn, $ort_kurzbz=null)
{
$this->conn = $conn;
if($ort_kurzbz != null)
$this->load($ort_kurzbz);
}
/**
* Laedt alle verfuegbaren Orte
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = 'SELECT * FROM tbl_ort order by ort_kurzbz;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$ort_obj = new ort($this->conn);
$ort_obj->ort_kurzbz = $row->ort_kurzbz;
$ort_obj->bezeichnung = $row->bezeichnung;
$ort_obj->planbezeichnung = $row->planbezeichnung;
$ort_obj->max_person = $row->max_person;
$ort_obj->aktiv = $row->aktiv;
$ort_obj->lageplan = $row->lageplan;
$ort_obj->dislozierung = $row->dislozierung;
$ort_obj->kosten = $row->kosten;
$this->result[] = $ort_obj;
}
return true;
}
/**
* Laedt einen Ort
* @param $fachb_id ID des zu ladenden Ortes
* @return true wenn ok, false im Fehlerfall
*/
function load($ort_kurzbz)
{
if($ort_kurzbz == '')
{
$this->errormsg = 'kurzbz darf nicht leer sein';
return false;
}
$qry = "SELECT * FROM tbl_ort WHERE ort_kurzbz = '$ort_kurzbz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->ort_kurzbz = $row->ort_kurzbz;
$this->bezeichnung = $row->bezeichnung;
$this->planbezeichnung = $row->planbezeichnung;
$this->max_person = $row->max_person;
$this->aktiv = $row->aktiv;
$this->lageplan = $row->lageplan;
$this->dislozierung = $row->dislozierung;
$this->kosten = $row->kosten;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $ort_kurzbz ID des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($ort_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->bezeichnung = str_replace("'",'´',$this->bezeichnung);
$this->ort_kurzbz = str_replace("'",'´',$this->ort_kurzbz);
$this->planbezeichnung = str_replace("'",'´',$this->planbezeichnung);
//Laenge Pruefen
if(strlen($this->bezeichnung)>30)
{
$this->errormsg = "Bezeichnung darf nicht laenger als 30 Zeichen sein bei <b>$this->ort_kurzbz</b> - $this->bezeichnung";
return false;
}
if(strlen($this->planbezeichnung)>30)
{
$this->errormsg = "Planbezeichnung darf nicht laenger als 30 Zeichen sein bei <b>$this->ort_kurzbz</b> - $this->planbezeichnung";
return false;
}
if(strlen($this->ort_kurzbz)>8)
{
$this->errormsg = "Ort_kurzbz darf nicht laenger als 8 Zeichen sein bei <b>$this->ort_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 ort_kurzbz eine gueltige Bezeichnung ist
if($this->ort_kurzbz == '')
{
$this->errormsg = 'ort_kurzbz darf nicht leer sein';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_ort (ort_kurzbz, bezeichnung, planbezeichnung, max_person, aktiv, lageplan,
dislozierung, kosten) VALUES ('.
$this->addslashes($this->ort_kurzbz).', '.
$this->addslashes($this->bezeichnung).', '.
$this->addslashes($this->planbezeichnung).', '.
$this->addslashes($this->max_person).', '.
($this->aktiv?'true':'false').', '.
$this->addslashes($this->lageplan).', '.
$this->addslashes($this->dislozierung).', '.
$this->addslashes($this->kosten).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob ort_kurzbz gueltig ist
if($this->ort_kurzbz == '')
{
$this->errormsg = 'ort_kurzbz darf nicht leer sein';
return false;
}
$qry = 'UPDATE tbl_ort SET '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
'planbezeichnung='.$this->addslashes($this->planbezeichnung).', '.
'max_person='.$this->addslashes($this->max_person).', '.
'aktiv='.($this->aktiv?'true':'false') .', '.
'lageplan='.$this->addslashes($this->lageplan).', '.
'dislozierung='.$this->addslashes($this->dislozierung).', '.
'kosten='.$this->addslashes($this->kosten).' '.
'WHERE ort_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;
}
}
}
?>
-221
View File
@@ -1,221 +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 ortraumtyp (FAS-Online)
* @create 04-12-2006
*/
class ortraumtyp
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $ort_kurzbz; // @var string
var $hierarchie; // @var smallint
var $raumtyp_kurzbz; // @var string
/**
* Konstruktor
* @param $conn Connection zur DB
* $ort_kurzbz und hierarchie ID des zu ladenden OrtRaumtyps
*/
function ortraumtyp($conn, $ort_kurzbz=null, $hierarchie=0)
{
$this->conn = $conn;
if($ort_kurzbz != null && $hierarchie!=null && is_numeric($hierarchie))
$this->load($ort_kurzbz, $hierarchie);
}
/**
* Laedt alle verfuegbaren OrtRaumtypen
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = 'SELECT * FROM tbl_ortraumtyp order by ort_kurzbz, hierarchie;';
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$ortraumtyp_obj = new ort($this->conn);
$ortraumtyp_obj->ort_kurzbz = $row->ort_kurzbz;
$ortraumtyp_obj->hierarchie = $row->hierarchie;
$ortraumtyp_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz;
$this->result[] = $ortraumtyp_obj;
}
return true;
}
/**
* Laedt einen OrtRaumtyp
* @param $ortraumtyp, hierarchie ID des zu ladenden OrtRaumtyps
* @return true wenn ok, false im Fehlerfall
*/
function load($ort_kurzbz, $hierarchie)
{
if($ort_kurzbz == '' || !is_numeric($hierarche) || $hierarchie=='')
{
$this->errormsg = 'Kein gültiger Schlüssel vorhanden';
return false;
}
$qry = "SELECT * FROM tbl_ortraumtyp WHERE ort_kurzbz = '$ort_kurzbz' AND hierarchie = '$hierarchie';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->ort_kurzbz = $row->ort_kurzbz;
$this->hierarchie = $row->hierarchie;
$this->raumtyp_kurzbz = $row->kurzbz;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $ort_kurzbz, hierarchie ID des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
*/
function delete($ort_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->ort_kurzbz = str_replace("'",'´',$this->ort_kurzbz);
$this->raumtyp_kurzbz = str_replace("'",'´',$this->raumtyp_kurzbz);
//Laenge Pruefen
if(strlen($this->ort_kurzbz)>8)
{
$this->errormsg = "Ort_kurzbz darf nicht laenger als 8 Zeichen sein bei <b>$this->kurzbz, $hierarchie</b>";
return false;
}
if(strlen($this->raumtyp_kurzbz)>8)
{
$this->errormsg = "Raumtyp_kurzbz darf nicht laenger als 8 Zeichen sein bei <b>$this->kurzbz, $hierarchie</b> - $this->raumtyp_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 id gültig ist
if($this->ort_kurzbz == '' || !is_numeric($this->hierarchie) || $this->hierarchie=='')
{
$this->errormsg = 'Keine gültige ID';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_ortraumtyp (ort_kurzbz, hierarchie, raumtyp_kurzbz) VALUES ('.
$this->addslashes($this->ort_kurzbz).', '.
$this->addslashes($this->hierarchie).', '.
$this->addslashes($this->raumtyp_kurzbz).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob id gueltig ist
if($this->ort_kurzbz == '' || !is_numeric($this->hierarchie) || $this->hierarchie=='')
{
$this->errormsg = 'Keine gültige ID';
return false;
}
$qry = 'UPDATE tbl_ortraumtyp SET '.
'raumtyp_kurzbz='.$this->addslashes($this->raumtyp_kurzbz).' '.
'WHERE ort_kurzbz = '.$this->addslashes($this->ort_kurzbz).' AND hierarchie = '.$this->addslashes($this->hierarchie).';';
}
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;
}
}
}
?>
+549 -306
View File
@@ -1,372 +1,615 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Basisklasse Person (FAS-Online)
* @create 06-03-2006
*/
class person
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $personen = array(); // person Objekt
var $conn; // @var resource DB-Handle
var $errormsg; // @var string
var $new; // @var boolean
var $result = array(); // @var person Objekt
//Tabellenspalten
var $person_id; // integer
var $sprache; // varchar(16)
var $anrede; // varchar(16)
var $titelpost; // varchar(32)
var $titelpre; // varchar(64)
var $nachname; // varchar(64)
var $vorname; // varchar(32)
var $vornamen; // varchar(128)
var $gebdatum; // date
var $gebort; // varchar(128)
var $gebzeit; // time
var $foto; // oid
var $anmerkungen; // varchar(256)
var $homepage; // varchar(256)
var $svnr; // char(10)
var $ersatzkennzeichen; // char(10)
var $familienstand; // char(1)
var $anzahlkinder; // smalint
var $aktiv; // boolean
var $insertamum; // timestamp
var $insertvon; // varchar(16)
var $updateamum; // timestamp
var $updatevon; // varchar(16)
var $ext_id; // bigint
var $person_id; // @var integer
var $aktstatus; // @var integer
var $aktstatus_bezeichnung; // @var integer
var $angelegtam; // @var timestamp
var $anrede; // @var string
var $anzahlderkinder; // @var integer
var $bemerkung; // @var string
var $bismelden; // @var boolean
var $bismelden_bezeichnung; // @var boolean
var $ersatzkennzeichen; // @var string
var $familienname; // @var string
var $familienstand; // @var integer ( 1=ledig, 2=verheiratet, 3=?, 4=?, 5=? )
var $familienstand_bezeichnung; // @var integer ( 1=ledig, 2=verheiratet, 3=?, 4=?, 5=? )
var $gebdat; // @var date
var $gebnation; // @var string
var $gebort; // @var string
var $geschlecht; // @var string
var $staatsbuergerschaft; // @var string
var $svnr; // @var string
var $titelpost; // @var string Titel nach dem Namen (BA, MA, etc)
var $titelpre; // @var string Titel vor dem Namen (Dr, Mag, Dipl.Ing, etc)
var $uid; // @var string
var $vorname; // @var string
var $vornamen; // @var string
var $updateamum; // @var timestamp
var $updatevon=0; // @var string
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Person
// * @param $conn Datenbank-Connection
// * $person_id Person die geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function person($conn, $person_id=null, $unicode=false)
/**
* Konstruktor - Uebergibt die Connection und Laedt optional eine Person
* @param $conn Datenbank-Connection
* $pers_id Person die geladen werden soll (default=null)
*/
function person($conn, $pers_id=null)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($person_id != null)
$this->load($person_id);
if($pers_id != null)
$this->load($pers_id);
}
// *********************************************************
// * Laedt Person mit der uebergebenen ID
// * @param $person_id ID der Person die geladen werden soll
// *********************************************************
/**
* Laden einen Datensatz mit der Personal_id die uebergeben wird
* @param $person_id ID der Person die geladen werden soll
*/
function load($person_id)
{
//person_id auf gueltigkeit pruefen
if(is_numeric($person_id) && $person_id!='')
{
$qry = "SELECT person_id, sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen,
gebdatum, gebort, gebzeit, foto, anmerkungen, homepage, svnr, ersatzkennzeichen,
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon, ext_id
FROM tbl_person WHERE person_id='$person_id'";
if(!$result=pg_query($this->conn,$qry))
$qry = "SELECT * FROM person WHERE person_pk=$person_id";
if(!$res=pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim lesen der Personendaten';
$this->errormsg = 'Fehler beim auslesen der Daten';
return false;
}
if($row = pg_fetch_object($result))
{
$this->person_id = $row->person_id;
$this->sprache = $row->sprache;
$this->anrede = $row->anrede;
$this->titelpost = $row->titelpost;
$this->titelpre = $row->titelpre;
$this->nachname = $row->nachname;
$this->vorname = $row->vorname;
$this->vornamen = $row->vornamen;
$this->gebdatum = $row->gebdatum;
$this->gebort = $row->gebort;
$this->gebzeit = $row->gebzeit;
$this->foto = $row->foto;
$this->anmerkungen = $row->anmerkungen;
$this->homepage = $row->homepage;
$this->svnr = $row->svnr;
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->familienstand = $row->familienstand;
$this->anzahlkinder = $row->anzahlkinder;
$this->aktiv = ($row->aktiv=='t'?true:false);
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->updateamum = $row->updateamum;
$this->updatevon = $row->updatevon;
$this->ext_id = $row->ext_id;
if($row = pg_fetch_object($res))
{
$this->person_id = $row->person_pk;
$this->aktstatus = $row->aktstatus;
$this->angelegtam = $row->angelegtam;
$this->anrede = $row->anrede;
$this->anzahlderkinder = $row->anzahlderkinder;
$this->bemerkung = $row->bemerkung;
$this->bismelden = ($row->bismelden=='J'?true:false);
$this->ersatzkennzeichen = $row->ersatzkennzeichen;
$this->familienname = $row->familienname;
$this->familienstand = $row->familienstand;
$this->gebdat = $row->gebdat;
$this->gebnation = $row->gebnation;
$this->gebort = $row->gebort;
$this->geschlecht = $row->geschlecht;
$this->staatsbuergerschaft = $row->staatsbuergerschaft;
$this->svnr = $row->svnr;
$this->titelpre = $row->titel;
$this->titlepost = $row->postnomentitel;
$this->uid = $row->uid;
$this->vorname = $row->vorname;
$this->vornamen = $row->vornamen;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
else
{
$this->errormsg = 'Es ist kein Personendatensatz mit der ID '.$person_id.' vorhanden';
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
else
else
{
$this->errormsg = 'Die person_id muss eine gueltige Zahl sein';
$this->errormsg = "Die person_id muss eine Zahl sein";
return false;
}
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
// Clean stuff from a string
function clean_string1($string)
{
$trans = array("" => "ae",
"" => "Ae",
"" => "oe",
"" => "Oe",
"" => "ue",
"" => "Ue",
"" => "a",
"" => "a",
"" => "e",
"" => "e",
"" => "o",
"" => "o",
"" => "i",
"" => "i",
"" => "u",
"" => "u",
"" => "ss");
$string = strtr($string, $trans);
return ereg_replace("[^a-zA-Z0-9]", "", $string);
//[:space:]
}
/**
* Prueft die Variablen auf Gueltigkeit
* @return true wenn ok, false wenn Variablen ungueltig sind
*/
function checkvars1()
{
if(strlen($this->sprache)>16)
//Hochkomma herausfiltern
$this->familienname = str_replace("'","`", $this->familienname);
$this->vorname = str_replace("'","`", $this->vorname);
$this->anrede = str_replace("'","`", $this->anrede);
$this->vornamen = str_replace("'","`", $this->vornamen);
$this->gebort = str_replace("'","`", $this->gebort);
$this->svnr = str_replace("'","`", $this->svnr);
$this->titelpre = str_replace("'","`", $this->titelpre);
$this->titelpost = str_replace("'","`", $this->titelpost);
$this->gebnation = str_replace("'","`", $this->gebnation);
$this->ersatzkennzeichen = str_replace("'","`", $this->ersatzkennzeichen);
$this->bemerkung = str_replace("'","`", $this->bemerkung);
if(ereg("[^a-zA-Z0-9]", $this->uid))
{
$this->errormsg = 'Sprache darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->anrede)>16)
{
$this->errormsg = 'Anrede darf nicht laenger als 16 Zeichen sein';
return false;
}
if(strlen($this->titelpost)>32)
{
$this->errormsg = 'Titelpost darf nicht laenger als 32 Zeichen sein';
return false;
}
if(strlen($this->titelpre)>64)
{
$this->errormsg = 'Titelpre darf nicht laenger als 64 Zeichen sein';
return false;
}
if(strlen($this->nachname)>64)
{
$this->errormsg = 'Nachname darf nicht laenger als 64 Zeichen sein';
return false;
}
if($this->nachname=='' || is_null($this->nachname))
{
$this->errormsg = 'Nachname muss eingegeben werden';
return false;
}
if(strlen($this->vorname)>32)
{
$this->errormsg = 'Vorname darf nicht laenger als 32 Zeichen sein';
return false;
}
if(strlen($this->vornamen)>128)
{
$this->errormsg = 'Vornamen darf nicht laenger als 128 Zeichen sein';
return false;
}
//ToDo Gebdatum pruefen -> laut bis muss er aelter als 10 Jahre sein
if(strlen($this->gebdatum)==0 || is_null($this->gebdatum))
{
$this->errormsg = 'Geburtsdatum muss eingegeben werden';
return false;
}
if(strlen($this->gebort)>128)
{
$this->errormsg = 'Geburtsort darf nicht laenger als 128 Zeichen sein';
return false;
}
if($this->foto!='' && !is_numeric($this->foto))
{
$this->errormsg = 'FotoOID ist ungueltig';
return false;
}
if(strlen($this->anmerkungen)>256)
{
$this->errormsg = 'Anmerkungen darf nicht laenger als 256 Zeichen sein';
return false;
}
if(strlen($this->homepage)>256)
{
$this->errormsg = 'Homepage darf nicht laenger als 256 Zeichen sein';
return false;
}
if(strlen($this->svnr)>10)
{
$this->errormsg = 'SVNR darf nicht laenger als 10 Zeichen sein';
return false;
}
if(strlen($this->ersatzkennzeichen)>10)
{
$this->errormsg = 'Ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
return false;
}
if(strlen($this->familienstand)>1)
{
$this->errormsg = 'Familienstand ist ungueltig';
return false;
}
if($this->anzahlkinder!='' && !is_numeric($this->anzahlkinder))
{
$this->errormsg = 'Anzahl der Kinder ist ungueltig';
return false;
}
if(!is_bool($this->aktiv))
{
$this->errormsg = 'Aktiv ist ungueltig';
return false;
}
if(strlen($this->insertvon)>16)
{
$this->errormsg = 'Insertvon darf nicht laenger als 16 Zeichen sien';
return false;
}
if(strlen($this->updatevon)>16)
{
$this->errormsg = 'Updatevon darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->ext_id!='' && !is_numeric($this->ext_id))
{
$this->errormsg = 'Ext_ID ist keine gueltige Zahl';
$this->errormsg = "UID darf keine Umlaute oder Sonderzeichen enthalten";
return false;
}
return true;
//Maximallaenge pruefen
if(strlen($this->familienname)>255)
{
$this->errormsg = 'Familienname darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->vorname)>255)
{
$this->errormsg = 'Vorname darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->anrede)>20)
{
$this->errormsg = 'Anrede darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->vornamen)>255)
{
$this->errormsg = 'Vornamen darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->geschlecht)>1)
{
$this->errormsg = 'Geschlecht darf nicht laenger als 1 Zeichen sein';
return false;
}
if(strlen($this->gebort)>255)
{
$this->errormsg = 'Geburtsort darf nicht laenger als 255 Zeichen sein';
return false;
}
if(strlen($this->svnr)!=10)
{
$this->errormsg = 'SVNR muss 10 Zeichen lang sein';
return false;
}
if(!is_numeric($this->svnr))
{
$this->errormsg = 'SVNR muss eine gueltige Zahl sein';
return false;
}
if($this->svnr=='0000000000') //Leere SVNR wird zum anlegen des neuen Leerdatensatzes benoetigt
$this->svnr='';
else
{
//SVNR mit Pruefziffer pruefen
//Die 4. Stelle in der SVNR ist die Pruefziffer
//(Summe von (gewichtung[i]*svnr[i])) modulo 11 ergibt diese Pruefziffer
//Falls nicht, ist die SVNR ungueltig
$gewichtung = array(3,7,9,0,5,8,4,2,1,6);
$erg=0;
//Quersumme bilden
for($i=0;$i<10;$i++)
$erg += $gewichtung[$i] * $this->svnr{$i};
if($this->svnr{3}!=($erg%11)) //Vergleichen der Pruefziffer mit Quersumme Modulo 11
{
$this->errormsg = 'SVNR ist ungueltig';
return false;
}
}
if(strlen($this->bismelden)>1)
{
$this->errormsg = 'bismelden darf nicht laenger als 1 Zeichen sein';
return false;
}
if(strlen($this->titelpre)>30)
{
$this->errormsg = 'titelpre darf nicht laenger als 30 Zeichen sein';
return false;
}
if(strlen($this->titelpost)>30)
{
$this->errormsg = 'titelpost darf nicht laenger als 30 Zeichen sein';
return false;
}
if(strlen($this->uid)>20)
{
$this->errormsg = 'uid darf nicht laenger als 20 Zeichen sein';
return false;
}
if(strlen($this->gebnation)>3)
{
$this->errormsg = 'Geburtsnation darf nicht laenger als 3 Zeichen sein';
return false;
}
if(strlen($this->staatsbuergerschaft)>3)
{
$this->errormsg = 'Staatsb羹rgerschaft darf nicht laenger als 3 Zeichen sein';
return false;
}
if(strlen($this->ersatzkennzeichen)>10)
{
$this->errormsg = 'ersatzkennzeichen darf nicht laenger als 10 Zeichen sein';
return false;
}
//Zahlenwerte ueberpruefen
$this->errormsg = 'Ein Zahlenfeld enthaelt ungueltige Zeichen';
if(!is_numeric($this->familienstand) && $this->familienstand!='') return false;
if(!is_numeric($this->anzahlderkinder) && $this->anzahlderkinder!='') return false;
if(!is_numeric($this->aktstatus) && $this->aktstatus!='') return false;
if($this->gebdat!='' && (time() - strtotime($this->gebdat))<315360000) // Wenn nicht aelter als 10 Jahre = 315360000 Sekunden
{
$this->errormsg = 'Geburtsdatum ist falsch: Person muss 鄟ter als 10 Jahre sein';
return false;
}
if($this->uid_exists($this->uid, $this->person_id))
{
$this->errormsg = 'Diese UID existiert bereits';
return false;
}
$this->errormsg='';
return true;
}
// ************************************************
// * wenn $var '' ist wird "null" zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * zeichen mit backslash versehen und das ergbnis
// * unter hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert die Personendaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $person_id upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
/**
* Speichert die Daten in die Datenbank
* Wenn $new auf true gesetzt ist wird eingefuegt
* ansonsten der datensatz $person_id upgedated
* @return true wenn erfolgreich, false im Fehlerfall
*/
function save()
{
{
//Variablen auf Gueltigkeit pruefen
if(!person::validate())
if(!$this->checkvars1())
return false;
if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE
{
$qry = 'INSERT INTO tbl_person (sprache, anrede, titelpost, titelpre, nachname, vorname, vornamen,
gebdatum, gebort, gebzeit, foto, anmerkungen, homepage, svnr, ersatzkennzeichen,
familienstand, anzahlkinder, aktiv, insertamum, insertvon, updateamum, updatevon , ext_id)
VALUES('.$this->addslashes($this->sprache).','.
$this->addslashes($this->anrede).','.
$this->addslashes($this->titelpost).','.
$this->addslashes($this->titelpre).','.
$this->addslashes($this->nachname).','.
$this->addslashes($this->vorname).','.
$this->addslashes($this->vornamen).','.
$this->addslashes($this->gebdatum).','.
$this->addslashes($this->gebort).','.
$this->addslashes($this->gebzeit).','.
$this->addslashes($this->foto).','.
$this->addslashes($this->anmerkungen).','.
$this->addslashes($this->homepage).','.
$this->addslashes($this->svnr).','.
$this->addslashes($this->ersatzkennzeichen).','.
$this->addslashes($this->familienstand).','.
$this->addslashes($this->anzahlkinder).','.
($this->aktiv?'true':'false').','.
$this->addslashes($this->insertamum).','.
$this->addslashes($this->insertvon).','.
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->ext_id).');';
{
//Naechste ID aus Sequence holen
$qry = "SELECT nextval('person_seq') as id;";
if(!$row=pg_fetch_object(pg_query($this->conn,$qry)))
{
$this->errormsg = "Fehler beim Auslesen der Sequence";
return false;
}
$this->person_id = $row->id;
$qry = "INSERT INTO person (person_pk, familienname, angelegtam, vorname, anrede, vornamen,".
" geschlecht, gebdat, gebort, staatsbuergerschaft, familienstand, svnr, anzahlderkinder,".
" ersatzkennzeichen, bemerkung, creationdate,creationuser, aktstatus, bismelden, titel, postnomentitel,".
" uid, gebnation) VALUES( $this->person_id,".
" '$this->familienname', now(), '$this->vorname', '$this->anrede', '$this->vornamen',".
($this->geschlecht!=''?"'$this->geschlecht'":"'M'").", ".
($this->gebdat!=''?"'$this->gebdat'":'null').", '$this->gebort', '$this->staatsbuergerschaft',".
($this->familienstand!=''?"'$this->familienstand'":'null').",".
" '$this->svnr', ".
($this->anzahlderkinder!=''?"'$this->anzahlderkinder'":'null').",".
" '$this->ersatzkennzeichen', '$this->bemerkung', now(),".
" '$this->updatevon', '".($this->aktstatus>0?$this->aktstatus:100)."', '".($this->bismelden?'J':'N')."', '$this->titelpre', '$this->titelpost',".
(strlen($this->uid)>0?" '$this->uid'":'null').",".
" '$this->gebnation');";
}
else
{
//person_id auf gueltigkeit pruefen
//peson_id auf gueltigkeit pruefen
if(!is_numeric($this->person_id))
{
{
$this->errormsg = 'person_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE tbl_person SET'.
' sprache='.$this->addslashes($this->sprache).','.
' anrede='.$this->addslashes($this->anrede).','.
' titelpost='.$this->addslashes($this->titelpost).','.
' titelpre='.$this->addslashes($this->titelpre).','.
' nachname='.$this->addslashes($this->nachname).','.
' vorname='.$this->addslashes($this->vorname).','.
' vornamen='.$this->addslashes($this->vornamen).','.
' gebdatum='.$this->addslashes($this->gebdatum).','.
' gebort='.$this->addslashes($this->gebort).','.
' gebzeit='.$this->addslashes($this->gebzeit).','.
' foto='.$this->addslashes($this->foto).','.
' anmerkungen='.$this->addslashes($this->anmerkungen).','.
' homepage='.$this->addslashes($this->homepage).','.
' svnr='.$this->addslashes($this->svnr).','.
' ersatzkennzeichen='.$this->addslashes($this->ersatzkennzeichen).','.
' familienstand='.$this->addslashes($this->familienstand).','.
' anzahlkinder='.$this->addslashes($this->anzahlkinder).','.
' aktiv='.($this->aktiv?'true':'false').','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).','.
' ext_id='.$this->addslashes($this->ext_id).
" WHERE person_id='$this->person_id'";
$qry = "UPDATE person SET ".
" familienname='$this->familienname',".
" vorname='$this->vorname',".
" anrede='$this->anrede',".
" vornamen='$this->vornamen',".
" geschlecht=".($this->geschlecht!=''?"'$this->geschlecht'":"'M'").",".
" gebdat=".($this->gebdat!=''?"'$this->gebdat'":'null').",".
" gebort='$this->gebort',".
" staatsbuergerschaft='$this->staatsbuergerschaft',".
" familienstand=".($this->familienstand!=''?"'$this->familienstand'":'0').",".
" svnr=".($this->svnr!=''?"'$this->svnr'":'null').",".
" anzahlderkinder=".($this->anzahlderkinder!=''?"'$this->anzahlderkinder'":'0').",".
" ersatzkennzeichen='$this->ersatzkennzeichen',".
" bemerkung='$this->bemerkung',".
" aktstatus='$this->aktstatus',".
" bismelden='".($this->bismelden?'J':'N')."',".
" titel='$this->titelpre',".
" postnomentitel='$this->titelpost',".
" uid='$this->uid',".
" gebnation='$this->gebnation'".
" WHERE person_pk='$this->person_id'";
}
if(pg_query($this->conn,$qry))
{
if($this->new)
{
$qry = "SELECT currval('tbl_person_person_id_seq') AS id;";
if($row=pg_fetch_object(pg_query($this->conn,$qry)))
$this->person_id=$row->id;
else
{
$this->errormsg = 'Sequence konnte nicht ausgelesen werden';
return false;
}
}
//Log schreiben
return true;
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Speichern des Person-Datensatzes:'.$this->nachname.' '.$qry;
else
{
$this->errormsg = "Fehler beim Speichern des Person-Datensatzes:".$qry;
return false;
}
}
/**
* Loescht einen Datensatz
* @param $person_id ID des zu loeschenden Datensatzes
* @return true wenn OK false im Fehlerfall
*/
function delete($person_id)
{
//person_id auf Gueltigkeit pruefen
if(!is_numeric($person_id) || $person_id=='')
{
$this->errormsg = 'Person_id muss eine Zahl sein';
return false;
}
$qry = "Delete from person where person_pk=$person_id";
if(!pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim Loeschen';
return false;
}
else
{
//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
}
/**
* Holt alle Personen aus der Datenbank
* @return true wenn OK, false im Fehlerfall
*/
function getAll()
{
/** Braucht zuviel Speicher
$qry = "SELECT * FROM person";
if(!$res = pg_query($this->conn,$qry))
{
$this->errormsg = 'Fehler beim auslesen der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$pers=new person($this->conn);
$pers->person_id = $row->person_pk;
$pers->aktstatus = $row->aktstatus;
$pers->angelegtam = $row->angelegtam;
$pers->anrede = $row->anrede;
$pers->anzahlderkinder = $row->anzahlderkinder;
$pers->bemerkung = $row->bemerkung;
$pers->bismelden = ($row->bismelden=='J'?true:false);
$pers->ersatzkennzeichen = $row->ersatzkennzeichen;
$pers->familienname = $row->familienname;
$pers->familienstand = $row->familienstand;
$pers->gebdat = $row->gebdat;
$pers->gebnation = $row->gebnation;
$pers->gebort = $row->gebort;
$pers->geschlecht = $row->geschlecht;
$pers->staatsbuergerschaft = $row->staatsbuergerschaft;
$pers->svnr = $row->svnr;
$pers->titelpre = $row->titel;
$pers->titelpost = $row->postnomentitel;
$pers->uid = $row->uid;
$pers->vorname = $row->vorname;
$pers->vornamen = $row->vornamen;
$pers->updateamum = $row->creationdate;
$pers->updatevon = $row->creationuser;
$this->result[] = $pers;
}
return true;
*/
return false;
}
/**
* Prueft ob die UID schon vergeben ist. Wenn ein zweiter
* Parameter angegeben wird, wird diese ID von der ueberpruefung
* ausgeschlossen ( fuer Update eines Datensatzes )
*/
function uid_exists($uid, $person_id='')
{
if($uid!='')
{
$this->errormsg = '';
//Datenbank Check
$qry = "SELECT count(*) as anz from person where uid='$uid'";
if($person_id!='')
$qry .= " AND person_pk<>".$person_id;
if($result = pg_query($this->conn,$qry))
{
while ($row=pg_fetch_object($result))
{
if($row->anz == 0)
{
//Wurde deaktiviert weil der Zugriff vom auf den LDAP Server
//vom der Calva aus nicht funktioniert
//Ldap Check
//$ds = ldap_connect(LDAP_SERVER);
//$dn = "ou=People, dc=technikum-wien, dc=at";
//$sr = ldap_search($ds,$dn,"uid=$uid");
//if(ldap_count_entries($ds,$sr)>0)
// return true;
//else
return false;
}
else
return true;
}
}
else
{
$this->errormsg = 'Fehler beim checken der uid';
return false;
}
}
return false;
}
/**
* Aktualisiert den AktStatus
*/
function updateaktstatus($person_id)
{
$mitarbeiter_id = '';
$qry = "Select mitarbeiter_pk from mitarbeiter where person_fk='$person_id'";
if($result = pg_query($this->conn, $qry))
{
if($row = pg_fetch_object($result))
$mitarbeiter_id = $row->mitarbeiter_pk;
else
{
$this->errormsg = 'Fehler beim ermitteln der Mitarbeiter_id';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim ermitteln der mitarbeiter_id';
return false;
}
//Funktionen holen
$qry = "Select funktion from funktion where ".
"studiensemester_fk = (Select studiensemester_pk from studiensemester where aktuell='J')".
" AND mitarbeiter_fk = '$mitarbeiter_id'";
if($result = pg_query($this->conn, $qry))
{
$fkt=array();
$i=0;
while($row=pg_fetch_object($result))
{
$fkt[$i]=$row->funktion;
$i++;
}
//Aktstatus ermitteln
if(in_array(5,$fkt)) //STGL
$aktstatus = 104;
elseif(in_array(6,$fkt)) //FBL
$aktstatus = 103;
elseif(in_array(2,$fkt)) //FBK
$aktstatus = 102;
elseif(in_array(1,$fkt)) //LKT
$aktstatus = 101;
else
$aktstatus = 100; //Mitarbeiter
$this->status = $aktstatus;
//neuen akstatus setzen
$qry = "Update person set aktstatus = $aktstatus where person_pk = $person_id";
if(pg_query($qry))
{
//Log schreiben
$sql .= $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim setzen des Aktstatus';
return false;
}
}
}
function setaktstatus($status, $person_id)
{
$qry = "Update person set aktstatus = '$status' where person_pk='$person_id'";
if(!pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Setzen des aktuellen Status'.$qry;
return false;
}
return true;
}
}
?>
+78 -172
View File
@@ -1,220 +1,126 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Klasse raumtyp (FAS-Online)
* @create 14-03-2006
*/
/**
* Klasse ortraumtyp (FAS-Online)
* @create 04-12-2006
*/
class raumtyp
{
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var fachbereich Objekt
//Tabellenspalten
var $beschreibung; // @var string
var $raumtyp_kurzbz; // @var string
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var raumtyp Objekt
var $raumtyp_id; // @var integer
var $bezeichnung; // @var string
var $kurzbezeichnung; // @var string
var $plaetze; // @var integer
var $updateamum; // @var timestamp
var $updatevon; // @var string
/**
* Konstruktor
* @param $conn Connection zur DB
* $ort_kurzbz und hierarchie ID des zu ladenden OrtRaumtyps
* @param conn Connection zur Datenbank
* raum_id ID des zu ladenden Raumes (default=null)
*/
function raumtyp($conn, $raumtyp_kurzbz=null)
function raumtyp($conn, $raum_id=null)
{
$this->conn = $conn;
if($raumtyp_kurzbz != null)
$this->load($raumtyp_kurzbz);
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($raum_id != null)
$this->load($raum_id);
}
/**
* Laedt alle verfuegbaren OrtRaumtypen
/**
* Laedt einen Datensatz
* @param $raum_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
function load($raum_id)
{
$qry = 'SELECT * FROM tbl_raumtyp order by raumtyp_kurzbz;';
if(!is_numeric($raum_id) || $raum_id == '')
{
$this->errormsg = 'raum_id muss eine gueltige Zahl sein';
return false;
}
$qry = "SELECT * FROM raumtyp WHERE raumtyp_pk = '$raum_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden der Datensaetze';
$this->errormsg = 'Fehler beim laden des Datenstatzes';
return false;
}
while($row = pg_fetch_object($res))
if($row = pg_fetch_object($res))
{
$raumtyp_obj = new ort($this->conn);
$raumtyp_obj->beschreibung = $row->beschreibung;
$raumtyp_obj->raumtyp_kurzbz = $row->raumtyp_kurzbz;
$this->result[] = $raumtyp_obj;
}
return true;
}
/**
* Laedt einen Raumtyp
* @param $raumtyp ID des zu ladenden Raumtyps
* @return true wenn ok, false im Fehlerfall
*/
function load($raumtyp_kurzbz)
{
if($raum_kurzbz == '')
{
$this->errormsg = 'Kein gültiger Schlüssel vorhanden';
return false;
}
$qry = "SELECT * FROM tbl_raumtyp WHERE raumtyp_kurzbz = '$raumtyp_kurzbz';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->beschreibung = $row->beschreibung;
$this->raumtyp_kurzbz = $row->kurzbz;
$this->raumtyp_id = $row->raumtyp_pk;
$this->bezeichnung = $row->bezeichnung;
$this->kurzbezeichnung = $row->kurzbezeichnung;
$this->plaetze = $row->plaetze;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $raumtyp_kurzbz ID des Datensatzes der geloescht werden soll
* @return true wenn ok, false im Fehlerfall
* Laedt alle Datensaetze
* @return ture wenn ok, false im Fehlerfall
*/
function delete($raumtyp_kurzbz)
function getAll()
{
$this->errormsg = 'Noch nicht implementiert';
return false;
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
*/
function checkvars()
{
$this->beschreibung = str_replace("'",'´',$this->beschreibung);
$this->raumtyp_kurzbz = str_replace("'",'´',$this->raumtyp_kurzbz);
$qry = "SELECT * FROM raumtyp;";
//Laenge Pruefen
if(strlen($this->beschreibung)>256)
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = "Beschreibung darf nicht laenger als 256 Zeichen sein bei <b>$this->raumtyp_kurzbz</b> - ".$this->beschreibung;
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
if(strlen($this->raumtyp_kurzbz)>8)
}
while($row = pg_fetch_object($res))
{
$this->errormsg = "Raumtyp_kurzbz darf nicht laenger als 8 Zeichen sein bei <b>$this->raumtyp_kurzbz</b>";
return false;
}
$this->errormsg = '';
return true;
$raum_obj = new raumtyp($this->conn);
$raum_obj->raumtyp_id = $row->raumtyp_pk;
$raum_obj->bezeichnung = $row->bezeichnung;
$raum_obj->kurzbezeichnung = $row->kurzbezeichnung;
$raum_obj->plaetze = $row->plaetze;
$raum_obj->updateamum = $row->creationdate;
$raum_obj->updatevon = $row->creationuser;
$this->result[] = $raum_obj;
}
return true;
}
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
function save()
{
//Gueltigkeit der Variablen pruefen
if(!$this->checkvars())
return false;
if($this->new)
{
//Pruefen ob id gültig ist
if($this->raumtyp_kurzbz == '')
{
$this->errormsg = 'Keine gültige ID';
return false;
}
//Neuen Datensatz anlegen
$qry = 'INSERT INTO tbl_raumtyp (beschreibung, raumtyp_kurzbz) VALUES ('.
$this->addslashes($this->beschreibung).', '.
$this->addslashes($this->raumtyp_kurzbz).');';
}
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob id gueltig ist
if($this->raumtyp_kurzbz == '')
{
$this->errormsg = 'Keine gültige ID';
return false;
}
$qry = 'UPDATE tbl_raumtyp SET '.
'beschreibung='.$this->addslashes($this->beschreibung).' '.
'WHERE raumtyp_kurzbz = '.$this->addslashes($this->ort_kurzbz).';';
}
if(pg_query($this->conn, $qry))
{
/*//Log schreiben
$sql = $qry;
$qry = "SELECT nextval('log_seq') as id;";
if(!$row = pg_fetch_object(pg_query($this->conn, $qry)))
{
$this->errormsg = 'Fehler beim Auslesen der Log-Sequence';
return false;
}
$qry = "INSERT INTO log(log_pk, creationdate, creationuser, sql) VALUES('$row->id', now(), '$this->updatevon', '".addslashes($sql)."')";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim Speichern des Log-Eintrages';
return false;
}*/
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
$this->errormsg = 'Noch nicht Implementiert';
return false;
}
/**
* Loescht einen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function delete($raum_id)
{
$this->errormsg = 'Noch nicht Implementiert';
return false;
}
}
?>
-126
View File
@@ -1,126 +0,0 @@
<?php
/**
* Klasse raumtyp (FAS-Online)
* @create 14-03-2006
*/
class raumtyp
{
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 Datenbank
* raum_id ID des zu ladenden Raumes (default=null)
*/
function raumtyp($conn, $raum_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($raum_id != null)
$this->load($raum_id);
}
/**
* Laedt einen Datensatz
* @param $raum_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function load($raum_id)
{
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 des Datenstatzes';
return false;
}
if($row = pg_fetch_object($res))
{
$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;
}
/**
* Laedt alle Datensaetze
* @return ture wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM raumtyp;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden der Datensaetze';
return false;
}
while($row = pg_fetch_object($res))
{
$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()
{
$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;
}
}
?>
-216
View File
@@ -1,216 +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 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;
}
}
}
?>
-182
View File
@@ -1,182 +0,0 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
class student extends benutzer
{
//Tabellenspalten
var $matrikelnr;
var $prestudent_id;
var $studiengang_kz;
var $semester;
var $verband;
var $gruppe;
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional einen Studenten
// * @param $conn Datenbank-Connection
// * $student_id Student der geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function student($conn, $student_id=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
//Student laden
if($student_id!=null)
$this->load($student_id);
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->uid=='')
{
$this->errormsg = 'UID muss eingegeben werden';
return false;
}
if(strlen($this->matrikelnr)>15)
{
$this->errormsg = 'Matrikelnummer darf nicht laenger als 15 Zeichen sein';
return false;
}
if(strlen($this->updatevon)>32)
{
$this->errormsg = 'Updatevon darf nicht laenger als 32 Zeichen sein';
return false;
}
if($this->prestudent_id!='' && !is_numeric($this->prestudent_id))
{
$this->errormsg = 'Prestudent_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->studiengang_kz))
{
$this->errormsg = 'Studiengang_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->semester))
{
$this->errormsg = 'Semester muss ein gueltige Zahl sein';
return false;
}
if(strlen($this->verband)>1)
{
$this->errormsg = 'Verband darf nicht laenger als 1 Zeichen sein';
return false;
}
if(strlen($this->gruppe)>1)
{
$this->errormsg = 'Gruppe darf nicht laenger als 1 Zeichen sein';
return false;
}
return true;
}
// ************************************************************
// * Speichert die Studentendaten in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz mit $person_id upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save()
{
//Variablen checken
if(!$this->validate())
return false;
pg_query($this->conn,'BEGIN;');
//Basisdaten speichern
if(!benutzer::save())
{
pg_query($this->conn,'ROLLBACK;');
return false;
}
if($this->new)
{
//Neuen Datensatz anlegen
$qry = "INSERT INTO tbl_student(student_uid, matrikelnr, updateamum, updatevon, prestudent_id,
studiengang_kz, semester, verband, gruppe)
VALUES('".addslashes($this->uid)."',".
$this->addslashes($this->matrikelnr).",".
$this->addslashes($this->updateamum).','.
$this->addslashes($this->updatevon).','.
$this->addslashes($this->prestudent_id).','.
$this->studiengang_kz.','.
$this->semester.','.
($this->verband!=''?"'".addslashes($this->verband)."'":' ').','.
($this->gruppe!=''?"'".addslashes($this->gruppe)."'":' ').');';
}
else
{
//Bestehenden Datensatz updaten
$qry = 'UPDATE tbl_student SET'.
' matrikelnr='.$this->addslashes($this->matrikelnr).','.
' updateamum='.$this->addslashes($this->updateamum).','.
' updatevon='.$this->addslashes($this->updatevon).','.
' prestudent_id='.$this->addslashes($this->prestudent_id).','.
' studiengang_kz='.$this->studiengang_kz.','.
' semester='.$this->semester.','.
' verband='.$this->addslashes($this->verband).','.
' gruppe='.$this->addslashes($this->gruppe).
" WHERE student_uid='".addslashes($this->uid)."';";
}
if(pg_query($this->conn,$qry))
{
pg_query($this->conn,'COMMIT;');
//Log schreiben
return true;
}
else
{
pg_query($this->conn,'ROLLBACK;');
$this->errormsg = 'Fehler beim Speichern des Studenten-Datensatzes'.$qry;
return false;
}
}
}
?>
+2 -2
View File
@@ -22,10 +22,12 @@ class studiengang
var $betreuerstunden; // @var float
var $emailkuerzel; // @var string
var $endedatum; // @var date
var $erhalter_id; // @var integer
var $kennzahl; // @var integer
var $kennzahl_neu; // @var integer
var $kuerzel; // @var string
var $name; // @var string
var $nummerintern; // @var integer
var $organisationsform; // @var integer
var $regelstudiendauer; // @var integer
var $regelwochenstunden; // @var integer
@@ -36,8 +38,6 @@ class studiengang
var $telefonnummer; // @var string
var $updateamum; // @var timestamp
var $updatevon; // @var string
var $insertamum; // @var timestamp
var $insertvon; // @var string
/**
* Konstruktor
+125 -122
View File
@@ -1,160 +1,163 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
/**
* Klasse studiensemester (FAS-Online)
* @create 15-03-2006
*/
class studiensemester
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $studiensemester = array(); // studiensemester Objekt
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var studiensemester Objekt
//Tabellenspalten
var $studiensemester_kurzbz; // varchar(16)
var $start; // date
var $ende; // date
var $studiensemester_id; // @var integer
var $aktuell; // @var boolean
var $art; // @var integer ( 1 = Wintersemester, 2 = Sommersemester )
var $jahr; // @var integer
var $updateamum; // @var timestamp
var $updatevon; // @var string
// ***********************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional ein LF
// * @param $conn Datenbank-Connection
// * $studiensemester_kurzbz StSem das geladen werden soll (default=null)
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// ***********************************************************************
function studiensemester($conn, $studiensemester_kurzbz=null, $unicode=false)
/**
* Konstruktor
* @param $conn Connection zur Datenbank
* $stsem_id ID des Studiensemesters das geladen werden soll
*/
function studiensemester($conn, $stsem_id=null)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
$this->errormsg = "Encoding konnte nicht gesetzt werden";
return false;
}
if($studiensemester_kurzbz != null)
$this->load($studiensemester_kurzbz);
if($stsem_id != null)
$this->load($stsem_id);
}
// **************************************************************
// * Laedt das Studiensemester mit der uebergebenen ID
// * @param $studiensemester_kurzbz Stsem das geladen werden soll
// **************************************************************
function load($studiensemester_kurzbz)
/**
* Laedt den Datensatz mit der ID die uebergeben wird
* @param stsem_id ID des zu ladenden Datensatzes
* @return true wenn ok, false im fehlerfall;
*/
function load($stsem_id)
{
$qry = "SELECT * FROM tbl_studiensemester WHERE studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
if(!$result=pg_query($this->conn,$qry))
//Pruefen ob stsem_id eine gueltige Zahl ist
if(!is_numeric($stsem_id) || $stsem_id == '')
{
$this->errormsg = 'Fehler beim lesen des Studiensemesters';
$this->errormsg = 'stsem_id muss eine gueltige Zahl sein';
return false;
}
if($row = pg_fetch_object($result))
//Laden eines Datensatzes
$qry = "SELECT * FROM studiensemester WHERE studiensemester_pk = '$stsem_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->start = $row->start;
$this->ende = $row->ende;
}
else
{
$this->errormsg = "Es ist kein Studiensemester mit der Kurzbezeichung $studiensemester_kurzbz vorhanden";
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($row = pg_fetch_object($res))
{
$this->studiensemester_id = $row->studiensemester_pk;
$this->aktuell = ($row->aktuell=='J'?true:false);
$this->art = $row->art;
$this->jahr = $row->jahr;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
/**
* Laedt das aktuelle Studiensemester
* @return true wenn ok, false im Fehlerfall
*/
function load_akt()
{
if(strlen($this->studiensemester_kurzbz)>16)
$qry = "SELECT * FROM studiensemester WHERE aktuell='J'";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Studiensemester Kurzbezeichnung darf nicht laenger als 16 Zeichen sein';
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
if($this->studiensemester_kurzbz=='')
if($row = pg_fetch_object($res))
{
$this->errormsg = 'Es muss eine Kurzbezeichnung eingegeben werden';
$this->studiensemester_id = $row->studiensemester_pk;
$this->aktuell = ($row->aktuell=='J'?true:false);
$this->art = $row->art;
$this->jahr = $row->jahr;
$this->updateamum = $row->creationdate;
$this->updatevon = $row->creationuser;
}
else
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
return true;
}
/**
* Laedt alle studiensemester
* @return true wenn ok, false im Fehlerfall
*/
function getAll()
{
$qry = "SELECT * FROM studiensemester order by jahr, art desc;";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim laden des Datensatzes';
return false;
}
while($row = pg_fetch_object($res))
{
$stsem_obj = new studiensemester($this->conn);
$stsem_obj->studiensemester_id = $row->studiensemester_pk;
$stsem_obj->aktuell = ($row->aktuell=='J'?true:false);
$stsem_obj->art = $row->art;
$stsem_obj->jahr = $row->jahr;
$stsem_obj->updateamum = $row->creationdate;
$stsem_obj->updatevon = $row->creationuser;
$this->result[] = $stsem_obj;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird "null" zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * zeichen mit backslash versehen und das ergbnis
// * unter hochkomma gesetzt.
// ************************************************
function addslashes($var)
/**
* Loescht einen Datensatz
* @param $stsem_id ID des zu loeschenden Datensatzes
* @return true wenn ok, false im Fehlerfall
*/
function delete($stsem_id)
{
return ($var!=''?"'".addslashes($var)."'":'null');
$this->errormsg = 'Noch nicht implementiert';
return false;
}
// ************************************************************
// * Speichert das Studiensemester in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
/**
* Speichert den aktuellen Datensatz
* @return true wenn ok, false im Fehlerfall
*/
function save()
{
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($this->new)
{
$qry = "INSERT INTO tbl_studiensemester (studiensemester_kurzbz, start, ende)
VALUES('".addslashes($this->studiensemester_kurzbz)."',".
$this->addslashes($this->start).','.
$this->addslashes($this->ende).');';
}
else
{
$qry = 'UPDATE tbl_studiensemester SET'.
' start='.$this->addslashes($this->start).','.
' ende='.$this->addslashes($this->ende).
" WHERE studiensemester_kurzbz='$this->studiensemester_kurzbz'";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern des Studiensemesters:'.$qry;
return false;
}
$this->errormsg = 'Noch nicht implementiert';
return false;
}
}
?>
-135
View File
@@ -1,135 +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 stunde
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $stunden = array(); // stunde Objekt
//Tabellenspalten
var $stunde; // smalint
var $beginn; // time without timezone
var $ende; // time without timezone
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Stunde
// * @param $conn Datenbank-Connection
// * $stunde Stunde die geladen werden soll
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function stunde($conn, $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($stunde!=null)
$this->load($stunde);
}
// *********************************************************
// * Laedt eine Stunde
// * @param $stunde
// *********************************************************
function load($stunde)
{
return true;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(!is_numeric($this->stunde))
{
$this->errormsg = 'Stunde 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 eine Stunde 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_stunde (stunde, beginn, ende)
VALUES('".$this->stunde."',".
$this->addslashes($this->beginn).','.
$this->addslashes($this->ende).');';
}
else
{
$qry = 'UPDATE lehre.tbl_stunde SET'.
' beginn='.$this->addslashes($this->beginn).','.
' ende='.$this->addslashes($this->ende).
" WHERE stunde=".$this->stunde;
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Stunde:'.$qry;
return false;
}
}
}
?>
-261
View File
@@ -1,261 +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 stundenplan
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $stundenplan = array(); // stundenplan Objekt
//Tabellenspalten
var $lehreinheit_id; // integer
var $lehrveranstaltung_nr; // integer
var $studiensemester_kurzbz; // varchar(16)
var $lehrfach_nr; // integer
var $lehrform_kurzbz; // varchar(8)
var $stundenblockung; // smalint
var $wochenrythmus; // smalint
var $start_kw; // smalint
var $raumtyp; // varchar(8)
var $raumtypalternativ; // varchar(8)
var $lehre; // boolean
var $anmerkung; // varchar(255)
var $unr; // integer
var $ext_id; // bigint
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine LE
// * @param $conn Datenbank-Connection
// * $gruppe_kurzbz
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function lehreinheit($conn, $lehreinheit_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($lehreinheit_id!=null)
$this->load($lehreinheit_id);
}
// *********************************************************
// * Laedt die LE
// * @param lehreinheit_id
// *********************************************************
function load($lehreinheit_id)
{
return false;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if($this->lehreinheit_id!='' && !is_numeric($this->lehreinheit_id))
{
$this->errormsg = 'Lehreinheit_id muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->lehrveranstaltung_nr))
{
$this->errormsg = 'LehrveranstaltungsNr muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->studiensemester_kurzbz)>16)
{
$this->errormsg = 'Studiensemesterkurzbz darf nicht laenger als 16 Zeichen sein';
return false;
}
if($this->studiensemester_kurzbz=='')
{
$this->errormsg = 'Studiensemester muss angegeben werden';
return false;
}
if(!is_numeric($this->lehrfach_nr))
{
$this->errormsg = 'Lehrfach_nr muss eine gueltige Zahl sein';
return false;
}
if(strlen($this->lehrform_kurzbz)>8)
{
$this->errormsg = 'Lehrform_kurzbz darf nicht laenger als 8 Zeichen sein';
return false;
}
if($this->lehrform_kurzbz=='')
{
$this->lehrform_kurzbz='SO';
//TODO
//$this->errormsg = 'Lehrform muss angegeben werden';
//return false;
}
if(!is_numeric($this->stundenblockung))
{
$this->errormsg = 'Stundenblockung muss eine gueltige Zahl sein';
return false;
}
if(!is_numeric($this->wochenrythmus))
{
$this->errormsg = 'Wochenrythmus muss eine gueltige Zahl sein';
return false;
}
if($this->start_kw!='' && !is_numeric($this->start_kw))
{
$this->errormsg = 'StartKW muss eine gueltige Zahl sein';
return false;
}
if($this->start_kw!='' && ($this->start_kw>53 || $this->start_kw<1))
{
$this->errormsg = 'StartKW muss zwischen 1 und 53 liegen';
return false;
}
if(strlen($this->raumtyp)>8)
{
$this->errormsg = 'Raumtyp darf nicht laenger als 8 Zeichen sein';
return false;
}
if(strlen($this->raumtypalternativ)>8)
{
$this->errormsg = 'Raumtypalternativ darf nicht alenger als 8 Zeichen sein';
return false;
}
if($this->raumtypalternativ=='')
{
//TODO
$this->raumtypalternativ='Dummy';
}
if(!is_bool($this->lehre))
{
$this->errormsg = 'Lehre muss ein boolscher Wert sein';
return false;
}
if(strlen($this->anmerkung)>255)
{
$this->errormsg = 'Anmerkung darf nicht laenger als 255 Zeichen sein';
return false;
}
if($this->unr!='' && !is_numeric($this->unr))
{
$this->errormsg = 'UNR muss eine gueltige Zahl sein';
return false;
}
if($this->ext_id!='' && !is_numeric($this->ext_id))
{
$this->errormsg = 'Ext_id 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 LE 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)
{
//ToDo ID entfernen
$qry = 'INSERT INTO lehre.tbl_lehreinheit (lehrveranstaltung_nr, studiensemester_kurzbz,
lehrfach_nr, lehrform_kurzbz, stundenblockung, wochenrythmus,
start_kw, raumtyp, raumtypalternativ, lehre, anmerkung, unr, ext_id)
VALUES('.$this->addslashes($this->lehrveranstaltung_nr).','.
$this->addslashes($this->studiensemester_kurzbz).','.
$this->addslashes($this->lehrfach_nr).','.
$this->addslashes($this->lehrform_kurzbz).','.
$this->addslashes($this->stundenblockung).','.
$this->addslashes($this->wochenrythmus).','.
$this->addslashes($this->start_kw).','.
$this->addslashes($this->raumtyp).','.
$this->addslashes($this->raumtypalternativ).','.
($this->lehre?'true':'false').','.
$this->addslashes($this->anmerkung).','.
$this->addslashes($this->unr).','.
$this->addslashes($this->ext_id).');';
}
else
{
$qry = 'UPDATE lehre.tbl_lehreinheit SET'.
' lehrveranstaltung_nr='.$this->addslashes($this->lehrveranstaltung_nr).','.
' studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).','.
' lehrfach_nr='.$this->addslashes($this->lehrfach_nr).','.
' lehrform_kurzbz='.$this->addslashes($this->lehrform_kurzbz).','.
' stundenblockung='.$this->addslashes($this->stundenblockung).','.
' wochenrythmus='.$this->addslashes($this->wochenrythmus).','.
' start_kw='.$this->addslashes($this->start_kw).','.
' raumtyp='.$this->addslashes($this->raumtyp).','.
' raumtypalternativ='.$this->addslashes($this->raumtypalternativ).','.
' lehre='.($this->lehre?'true':'false').','.
' anmerkung='.$this->addslashes($this->anmerkung).','.
' unr='.$this->addslashes($this->unr).','.
' ext_id='.$this->addslashes($this->ext_id).
" WHERE lehreinheit_id=".$this->addslashes($this->lehreinheit_id).";";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der LE:'.$qry;
return false;
}
}
}
?>
-149
View File
@@ -1,149 +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 variable
{
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $variables = array(); // variable Objekt
//Tabellenspalten
var $uid; // varchar(16)
var $name; // varchar(64)
var $wert; // varchar(64)
// *************************************************************************
// * Konstruktor - Uebergibt die Connection und laedt optional eine Variable
// * @param $conn Datenbank-Connection
// * $uid
// * $name
// * $unicode Gibt an ob die Daten mit UNICODE Codierung
// * oder LATIN9 Codierung verarbeitet werden sollen
// *************************************************************************
function variable($conn, $uid=null, $name=null, $unicode=false)
{
$this->conn = $conn;
if($unicode)
$qry = "SET CLIENT_ENCODING TO 'UNICODE';";
else
$qry = "SET CLIENT_ENCODING TO 'LATIN9';";
if(!pg_query($conn,$qry))
{
$this->errormsg = 'Encoding konnte nicht gesetzt werden';
return false;
}
if($uid!=null && $name!=null)
$this->load($uid, $name);
}
// *********************************************************
// * Laedt die Variablen
// * @param
// *********************************************************
function load($uid, $name)
{
return false;
}
// *******************************************
// * Prueft die Variablen vor dem Speichern
// * auf Gueltigkeit.
// * @return true wenn ok, false im Fehlerfall
// *******************************************
function validate()
{
if(strlen($this->uid)>16)
{
$this->errormsg = 'UID darf nicht laenger als 16 Zeichen sein';
return true;
}
if(strlen($this->name)>64)
{
$this->errormsg = 'Name darf nicht laenger als 64 Zeichen sein';
return false;
}
if(strlen($this->wert)>64)
{
$this->errormsg = 'Wert darf nicht laenger als 64 Zeichen sein';
return false;
}
return true;
}
// ************************************************
// * wenn $var '' ist wird NULL zurueckgegeben
// * wenn $var !='' ist werden Datenbankkritische
// * Zeichen mit Backslash versehen und das Ergbnis
// * unter Hochkomma gesetzt.
// ************************************************
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
// ************************************************************
// * Speichert Variable in die Datenbank
// * Wenn $new auf true gesetzt ist wird ein neuer Datensatz
// * angelegt, ansonsten der Datensatz upgedated
// * @return true wenn erfolgreich, false im Fehlerfall
// ************************************************************
function save($new=null)
{
if(is_null($new))
$new = $this->new;
//Variablen auf Gueltigkeit pruefen
if(!$this->validate())
return false;
if($new)
{
$qry = 'INSERT INTO tbl_variable (uid, name, wert)
VALUES('.$this->addslashes($this->uid).','.
$this->addslashes($this->name).','.
$this->addslashes($this->wert).');';
}
else
{
$qry = 'UPDATE tbl_variable SET'.
' wert='.$this->addslashes($this->wert).
" WHERE uid='".addslashes($this->uid)."' AND name='".addslashes($this->name)."';";
}
if(pg_query($this->conn,$qry))
{
//Log schreiben
return true;
}
else
{
$this->errormsg = 'Fehler beim Speichern der Variable:'.$qry;
return false;
}
}
}
?>
-158
View File
@@ -1,158 +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 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;
}
}
}
?>