From 9b1fbff625bd2e3d00a53e8e8ac4711d7336f0ff Mon Sep 17 00:00:00 2001 From: Christian Paminger Date: Thu, 22 Mar 2007 15:16:54 +0000 Subject: [PATCH] --- include/datum.class.php | 29 +++++----- include/mitarbeiter.class.php | 16 +++--- include/zeitsperre.class.php | 104 +++++++++++++++++++++------------- 3 files changed, 87 insertions(+), 62 deletions(-) diff --git a/include/datum.class.php b/include/datum.class.php index 6c913acab..5b080c614 100644 --- a/include/datum.class.php +++ b/include/datum.class.php @@ -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 , + * Authors: Christian Paminger , * Andreas Oesterreicher and * Rudolf Hangl . */ @@ -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; diff --git a/include/mitarbeiter.class.php b/include/mitarbeiter.class.php index b3e88a7ff..f51c7ade2 100644 --- a/include/mitarbeiter.class.php +++ b/include/mitarbeiter.class.php @@ -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))) diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php index 6d6aca8f1..882c75d5b 100644 --- a/include/zeitsperre.class.php +++ b/include/zeitsperre.class.php @@ -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 , + * Authors: Christian Paminger , * Andreas Oesterreicher and * Rudolf Hangl . */ @@ -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ö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; + } + } ?> \ No newline at end of file