From df3b1c9a7e4f9ae49f422aac9158a3685781752b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 13 Jun 2007 08:31:09 +0000 Subject: [PATCH] CIS: Resturlaubstage koennen nun bei den Zeitsperren eingegeben werden --- cis/private/profile/zeitwunsch.php | 60 +++++++++- include/resturlaub.class.php | 186 +++++++++++++++++++++++++++++ 2 files changed, 243 insertions(+), 3 deletions(-) create mode 100644 include/resturlaub.class.php diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index 717cb8dd5..b307e1af8 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -27,6 +27,7 @@ require_once('../../../include/functions.inc.php'); require_once('../../../include/zeitsperre.class.php'); require_once('../../../include/datum.class.php'); + require_once('../../../include/resturlaub.class.php'); $uid = get_uid(); @@ -415,14 +416,67 @@ if(isset($_GET['type']) && $_GET['type']=='edit') else $content_form.= ""; $content_form.= ''; -$content_form.= ''; +$content_form.= ''; + +// ******* RESTURLAUB ******** // +$content_resturlaub = ''; +$resturlaubstage = '0'; +$mehrarbeitsstunden = '0'; + +if(isset($_GET['type']) && $_GET['type']=='save_resturlaub') +{ + $_POST['mehrarbeitsstunden'] = str_replace(',','.',$_POST['mehrarbeitsstunden']); + + $resturlaub = new resturlaub($conn); + if($resturlaub->load($uid)) + { + $resturlaub->new = false; + } + else + { + $resturlaub->new = true; + $resturlaub->insertamum = date('Y-m-d H:i:s'); + $resturlaub->insertvon = $uid; + } + $resturlaub->mitarbeiter_uid = $uid; + $resturlaub->updateamum = date('Y-m-d H:i:s'); + $resturlaub->updatevon = $uid; + $resturlaub->resturlaubstage = $_POST['resturlaubstage']; + $resturlaub->mehrarbeitsstunden = $_POST['mehrarbeitsstunden']; + + if($resturlaub->save()) + { + $content_resturlaub .= 'Daten wurden gespeichert!'; + } + else + { + $content_resturlaub .= "Fehler beim Speichern der Daten: $resturlaub->errormsg"; + } + + $resturlaubstage = htmlspecialchars($_POST['resturlaubstage'],ENT_QUOTES); + $mehrarbeitsstunden = htmlspecialchars($_POST['mehrarbeitsstunden'],ENT_QUOTES); +} +else +{ + $resturlaub = new resturlaub($conn); + + if($resturlaub->load($uid)) + { + $resturlaubstage = $resturlaub->resturlaubstage; + $mehrarbeitsstunden = $resturlaub->mehrarbeitsstunden; + } +} +$content_resturlaub.='
'; +$content_resturlaub.=''; +$content_resturlaub.=''; +$content_resturlaub.='
Aktuelle Resturlaubstage:
Aktuelle Mehrarbeitsstunden:
'; echo ''; echo ''; echo "'; -echo ''; +echo ""; echo ''; diff --git a/include/resturlaub.class.php b/include/resturlaub.class.php new file mode 100644 index 000000000..86f67ba95 --- /dev/null +++ b/include/resturlaub.class.php @@ -0,0 +1,186 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/** + * Klasse bankverbindung + * @create 20-12-2006 + */ + +class resturlaub +{ + var $conn; // @var resource DB-Handle + var $new; // @var boolean + var $errormsg; // @var string + var $result = array(); // @var adresse Objekt + + //Tabellenspalten + var $mitarbeiter_uid; + var $resturlaubstage; + var $mehrarbeitsstunden; + var $updateamum; + var $updatevon; + var $insertamum; + var $insertvon; + + // ** + // * Konstruktor + // * @param $conn Connection + // * $uid + // ** + function resturlaub($conn, $uid=null, $unicode=false) + { + $this->conn = $conn; + + if($unicode!=null) + { + if ($unicode) + { + $qry = "SET CLIENT_ENCODING TO 'UNICODE';"; + } + else + { + $qry="SET CLIENT_ENCODING TO 'LATIN9';"; + } + + if(!pg_query($conn,$qry)) + { + $this->errormsg = "Encoding konnte nicht gesetzt werden"; + return false; + } + } + + if($uid!=null) + $this->load($uid); + + } + + // ** + // * Laedt die Resturlaubstage eines Mitarbeiters + // * @param $mitarbeiter_uid ID der zu ladenden Resturlaubstage + // * @return true wenn ok, false im Fehlerfall + // ** + function load($mitarbeiter_uid) + { + $qry = "SELECT * FROM campus.tbl_resturlaub WHERE mitarbeiter_uid='".addslashes($mitarbeiter_uid)."'"; + + if($result = pg_query($this->conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + $this->mitarbeiter_uid = $row->mitarbeiter_uid; + $this->resturlaubstage = $row->resturlaubstage; + $this->mehrarbeitsstunden = $row->mehrarbeitsstunden; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + return true; + } + else + { + $this->errormsg = 'Datensatz wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + // ** + // * Prueft die Variablen auf gueltigkeit + // * @return true wenn ok, false im Fehlerfall + // ** + function validate() + { + if(!is_numeric($this->resturlaubstage)) + { + $this->errormsg ='Resturlaubstage muss eine gueltige Zahl sein'; + return false; + } + if(!is_numeric($this->mehrarbeitsstunden)) + { + $this->errormsg ='Mehrarbeitsstunden 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 Ergebnis + // * unter Hochkomma gesetzt. + // ************************************************ + function addslashes($var) + { + return ($var!=''?"'".addslashes($var)."'":'null'); + } + + // ** + // * Speichert den aktuellen Datensatz in die Datenbank + // * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + // * andernfalls wird der Datensatz mit der ID in $bankverbindung_id aktualisiert + // * @return true wenn ok, false im Fehlerfall + // ** + function save() + { + //Variablen pruefen + if(!$this->validate()) + return false; + + if($this->new) + { + //Neuen Datensatz einfuegen + $qry = 'INSERT INTO campus.tbl_resturlaub (mitarbeiter_uid, resturlaubstage, mehrarbeitsstunden, insertamum, insertvon, updateamum, updatevon) VALUES('. + $this->addslashes($this->mitarbeiter_uid).', '. + $this->addslashes($this->resturlaubstage).', '. + $this->addslashes($this->mehrarbeitsstunden).', '. + $this->addslashes($this->insertamum).', '. + $this->addslashes($this->insertvon).', '. + $this->addslashes($this->updateamum).', '. + $this->addslashes($this->updatevon).');'; + } + else + { + //Updaten des bestehenden Datensatzes + $qry='UPDATE campus.tbl_resturlaub SET '. + 'resturlaubstage='.$this->addslashes($this->resturlaubstage).', '. + 'mehrarbeitsstunden='.$this->addslashes($this->mehrarbeitsstunden).', '. + 'updateamum='.$this->addslashes($this->updateamum).', '. + 'updatevon='.$this->addslashes($this->updatevon). + ' WHERE mitarbeiter_uid='.$this->addslashes($this->mitarbeiter_uid).';'; + } + //echo $qry; + if(pg_query($this->conn, $qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Daten'; + return false; + } + } +} +?> \ No newline at end of file
"; echo $content_form; -echo '
'; +echo '$content_resturlaub
'; echo $content_table; echo '