This commit is contained in:
Christian Paminger
2007-03-22 15:16:54 +00:00
parent 6eb6a2e991
commit 9b1fbff625
3 changed files with 87 additions and 62 deletions
+15 -14
View File
@@ -15,7 +15,7 @@
* 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>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
@@ -25,8 +25,9 @@ class datum
var $conn; // resource DB-Handle
var $errormsg; // string
var $new; // boolean
var $ts_day=86400; // Timestamp eines Tages
var $result = array(); // studiensemester Objekt
function datum()
{
}
@@ -36,61 +37,61 @@ class datum
* Format "31.12.2007 14:30"
*/
function mktime_datumundzeit($datumundzeit)
{
{
if(ereg("([0-9]{2}).([0-9]{2}).([0-9]{4}) ([0-9]{2}):([0-9]{2})",$datumundzeit, $regs))
return mktime($regs[4],$regs[5],0,$regs[2],$regs[1],$regs[3]);
else
else
{
$this->errormsg = 'Falsches Datumsformat';
return false;
}
}
/**
* Liefert einen UNIX Timestamp von einem String im
* Format "31.12.2007"
*/
function mktime_datum($datum)
{
{
if(ereg("([0-9]{2}).([0-9]{2}).([0-9]{4})",$datum, $regs))
{
return mktime(0,0,0,$regs[2],$regs[1],$regs[3]);
}
else
else
{
$this->errormsg = 'Falsches Datumsformat';
return false;
}
}
/**
* Liefert einen UNIX Timestamp von einem Datum im
* Format "2007-01-31"
*/
function mktime_fromdate($datum)
{
{
if(ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$datum, $regs))
{
return mktime(0,0,0,$regs[2],$regs[3],$regs[1]);
}
else
else
{
$this->errormsg = 'Falsches Datumsformat';
return false;
}
}
/**
* Liefert einen UNIX Timestamp von einem String im
* Format "2007-01-31 14:30:12"
*/
function mktime_fromtimestamp($timestamp)
{
{
if(ereg("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})",$timestamp, $regs))
{
{
return mktime($regs[4],$regs[5],$regs[6],$regs[2],$regs[3],$regs[1]);
}
else
else
{
$this->errormsg = 'Falsches Datumsformat';
return false;
+8 -8
View File
@@ -65,7 +65,7 @@ class mitarbeiter extends benutzer
{
if(!benutzer::load($uid))
return false;
$qry = "SELECT * FROM public.tbl_mitarbeiter WHERE mitarbeiter_uid='$uid'";
if($result = pg_query($this->conn, $qry))
{
@@ -82,19 +82,19 @@ class mitarbeiter extends benutzer
$this->ext_id_mitarbeiter = $row->ext_id;
return true;
}
else
else
{
$this->errormsg = "Kein Eintrag gefunden fuer $uid\n";
return false;
}
}
else
else
{
$this->errormsg = "Fehler beim Laden: $qry\n";
return false;
}
}
// ************************************************
// * ueberprueft die Variablen auf Gueltigkeit
// * @return true wenn gueltig, false im Fehlerfall
@@ -177,7 +177,7 @@ class mitarbeiter extends benutzer
if($this->new)
{
//Neuen Datensatz anlegen
//Neuen Datensatz anlegen
$qry = "INSERT INTO public.tbl_mitarbeiter(mitarbeiter_uid, ausbildungcode, personalnummer, kurzbz, lektor, ort_kurzbz,
fixangestellt, standort_kurzbz, telefonklappe, updateamum, updatevon, ext_id)
@@ -290,8 +290,8 @@ class mitarbeiter extends benutzer
}
return $result;
}
function getMitarbeiterStg($lektor,$fixangestellt,$stge, $fkt_kurzbz)
function getMitarbeiterStg($lektor,$fixangestellt, $stge, $fkt_kurzbz)
{
$sql_query='SELECT DISTINCT campus.vw_mitarbeiter.*, tbl_benutzerfunktion.studiengang_kz FROM campus.vw_mitarbeiter
JOIN public.tbl_benutzerfunktion USING (uid)
@@ -325,7 +325,7 @@ class mitarbeiter extends benutzer
if($in!='')
$sql_query.=' AND studiengang_kz in (-1'.$in.')';
}
$sql_query.=' ORDER BY studiengang_kz, nachname, vornamen, kurzbz';
$sql_query.=' ORDER BY studiengang_kz, nachname, vorname, kurzbz';
//echo $sql_query;
if(!($erg=pg_query($this->conn, $sql_query)))
+64 -40
View File
@@ -15,7 +15,7 @@
* 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>,
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
@@ -25,8 +25,8 @@ class zeitsperre
var $conn; // @var resource DB-Handle
var $new; // @var boolean
var $errormsg; // @var string
var $result = array(); // @var news Objekt
var $result = array(); // @var news Objekt
//Tabellenspalten
var $zeitsperre_id; // serial
var $zeitsperretyp_kurzbz; // varchar(8)
@@ -42,8 +42,8 @@ class zeitsperre
var $updatevon; // string
var $insertamum; // timestamp
var $insertvon; // string
/**
* Konstruktor
* @param $conn Connection zur DB
@@ -55,25 +55,29 @@ class zeitsperre
if($zeitsperre_id != null)
$this->load($zeitsperre_id);
}
// **********************************
// * Laedt alle Zeitsperren bei denen
// * ende>=now() ist und uid=$uid
// **********************************
function getzeitsperren($uid)
{
$qry = "SELECT * FROM campus.tbl_zeitsperre WHERE mitarbeiter_uid='".addslashes($uid)."' AND bisdatum>=now() ORDER BY vondatum";
unset($this->result);
$this->result=array();
$qry = "SELECT * FROM campus.tbl_zeitsperre JOIN campus.tbl_zeitsperretyp USING (zeitsperretyp_kurzbz)
WHERE mitarbeiter_uid='".addslashes($uid)."' AND bisdatum>=now() ORDER BY vondatum";
if($result = pg_query($this->conn, $qry))
{
while($row = pg_fetch_object($result))
{
$obj = new zeitsperre($this->conn);
$obj->zeitsperre_id = $row->zeitsperre_id;
$obj->zeitsperretyp_kurzbz = $row->zeitsperretyp_kurzbz;
$obj->zeitsperretyp_beschreibung = $row->beschreibung;
$obj->zeitsperretyp_farbe = $row->farbe;
$obj->mitarbeiter_uid = $row->mitarbeiter_uid;
$obj->bezeichnung = $row->bezeichnung;
$obj->vondatum = $row->vondatum;
@@ -86,18 +90,19 @@ class zeitsperre
$obj->updatevon = $row->updatevon;
$obj->insertamum = $row->insertamum;
$obj->insertvon = $row->insertvon;
$this->result[] = $obj;
}
return true;
}
else
else
{
$this->errormsg = 'Fehler beim laden der Zeitsperren';
return false;
}
}
/**
* Laedt eine Zeitsperre
* @param $zeitsperre_id ID der zu laden ist
@@ -105,21 +110,21 @@ class zeitsperre
*/
function load($zeitsperre_id)
{
if(!is_numeric($zeitsperre_id))
{
$this->errormsg = 'zeitsperre_id muß eine gültige Zahl sein';
return false;
}
$qry = "SELECT * FROM campus.tbl_zeitsperre WHERE zeitsperre_id = '$zeitsperre_id';";
if(!$res = pg_query($this->conn, $qry))
{
$this->errormsg = 'Fehler beim Laden des Datensatzes';
return false;
}
if($row=pg_fetch_object($res))
{
$this->zeitsperre_id = $row->zeitsperre_id;
@@ -137,15 +142,15 @@ class zeitsperre
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
}
else
else
{
$this->errormsg = 'Es ist kein Datensatz mit dieser ID vorhanden';
return false;
}
return true;
}
/**
* Loescht einen Datensatz
* @param $zeitsperre_id id des Datensatzes der geloescht werden soll
@@ -158,23 +163,23 @@ class zeitsperre
$this->errormsg = 'Zeitsperre_id muss eine gueltige Zahl sein';
return false;
}
$qry = "DELETE FROM campus.tbl_zeitsperre WHERE zeitsperre_id='$zeitsperre_id'";
if(pg_query($this->conn, $qry))
return true;
else
{
$this->errormsg = 'Fehler beim L&ouml;schen';
return false;
}
}
}
function addslashes($var)
{
return ($var!=''?"'".addslashes($var)."'":'null');
}
/**
* Prueft die Gueltigkeit der Variablen
* @return true wenn ok, false im Fehlerfall
@@ -201,27 +206,27 @@ class zeitsperre
$this->errormsg = "Erreichbarkeit darf nicht laenger als 8 Zeichen sein";
return false;
}
$this->errormsg = '';
return true;
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
//Neuen Datensatz anlegen
$qry = 'INSERT INTO campus.tbl_zeitsperre (zeitsperretyp_kurzbz, mitarbeiter_uid, bezeichnung,'.
' vondatum ,vonstunde, bisdatum, bisstunde, erreichbarkeit, vertretung_uid, insertamum,'.
' vondatum ,vonstunde, bisdatum, bisstunde, erreichbarkeit, vertretung_uid, insertamum,'.
' insertvon, updateamum, updatevon) VALUES ('.
$this->addslashes($this->zeitsperretyp_kurzbz).', '.
$this->addslashes($this->mitarbeiter_uid).', '.
@@ -237,18 +242,18 @@ class zeitsperre
$this->addslashes($this->updateamum).', '.
$this->addslashes($this->updatevon).'); ';
}
else
else
{
//bestehenden Datensatz akualisieren
//Pruefen ob zeitsperre_id eine gueltige Zahl ist
if(!is_numeric($this->zeitsperre_id) || $this->zeitsperre_id == '')
{
$this->errormsg = 'Zeitsperre_id muss eine gueltige Zahl sein';
return false;
}
$qry = 'UPDATE campus.tbl_zeitsperre SET '.
$qry = 'UPDATE campus.tbl_zeitsperre SET '.
'zeitsperretyp_kurzbz='.$this->addslashes($this->zeitsperretyp_kurzbz).', '.
'mitarbeiter_uid='.$this->addslashes($this->mitarbeiter_uid).', '.
'bezeichnung='.$this->addslashes($this->bezeichnung).', '.
@@ -264,7 +269,7 @@ class zeitsperre
'updatevon='.$this->addslashes($this->updatevon).' '.
'WHERE zeitsperre_id = '.$this->addslashes($this->zeitsperre_id).';';
}
if(pg_query($this->conn, $qry))
{
return true;
@@ -273,7 +278,26 @@ class zeitsperre
{
$this->errormsg = 'Fehler beim Speichern des Datensatzes';
return false;
}
}
}
/**
* Liefert ZeitsperreTypen eines Tages
* @return string wenn ok, false im Fehlerfall
*/
function getTyp($datum)
{
$datum_obj=new datum();
$typ='';
foreach ($this->result as $zs)
{
$beginn=$datum_obj->mktime_fromdate($zs->vondatum);
$ende=$datum_obj->mktime_fromdate($zs->bisdatum);
if ($datum>$beginn && $datum<$ende)
$typ.=$zs->zeitsperretyp_kurzbz;
}
return $typ;
}
}
?>