From b0df896f20b457d98f8a603bfbc8fde943637f3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Thu, 15 Feb 2007 16:57:30 +0000 Subject: [PATCH] =?UTF-8?q?-=20lector=5Fchoice.php=20berechtigungsfix=20-?= =?UTF-8?q?=20lvaliste=20nun=20mit=20LV-bezeichnung=20-=20Ansprechpartner?= =?UTF-8?q?=20aktualisiert=20-=20Zeitsperre=20eingef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/lector_choice.php | 4 +- cis/private/lehre/notenliste.php | 3 +- cis/private/profile/lva_liste.php | 6 +- cis/private/profile/zeitwunsch.php | 330 +++++++++++++++++++++------- cis/public/ansprechpartner.php | 23 +- include/datum.class.php | 36 ++- include/zeitsperre.class.php | 279 +++++++++++++++++++++++ 7 files changed, 594 insertions(+), 87 deletions(-) create mode 100644 include/zeitsperre.class.php diff --git a/cis/private/lehre/lector_choice.php b/cis/private/lehre/lector_choice.php index 9edac5919..6d3845676 100644 --- a/cis/private/lehre/lector_choice.php +++ b/cis/private/lehre/lector_choice.php @@ -108,9 +108,9 @@ $sql_query = "SELECT DISTINCT vorname, nachname, uid FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, campus.vw_mitarbeiter WHERE tbl_lehreinheit.lehrveranstaltung_id='$lvid' AND - studiensemester_kurzbz='$stsem' AND tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND - mitarbeiter_uid=uid ORDER BY nachname, vorname, uid"; + mitarbeiter_uid=uid AND uid='$user' ORDER BY nachname, vorname, uid"; + //studiensemester_kurzbz='$stsem' AND if($result = pg_query($sql_conn, $sql_query)) { diff --git a/cis/private/lehre/notenliste.php b/cis/private/lehre/notenliste.php index 6cf0e7181..43b264a65 100644 --- a/cis/private/lehre/notenliste.php +++ b/cis/private/lehre/notenliste.php @@ -61,7 +61,8 @@ $qry = "SELECT WHERE person.uid='$user' AND person.person_pk=student.person_fk AND - studiengang.studiengang_pk=student.studiengang_fk + studiengang.studiengang_pk=student.studiengang_fk + ORDER BY aufgenommenam DESC LIMIT 1 "; if(!$row=pg_fetch_object(pg_query($conn,$qry))) diff --git a/cis/private/profile/lva_liste.php b/cis/private/profile/lva_liste.php index 19fbde311..6327e68ad 100644 --- a/cis/private/profile/lva_liste.php +++ b/cis/private/profile/lva_liste.php @@ -63,7 +63,7 @@ if ($num_rows>0) { echo '

'; - echo ''; + echo ''; for ($i=0; $i<$num_rows; $i++) { $zeile=$i % 2; @@ -73,6 +73,10 @@ echo ''; echo ''; echo ''; + $qry = "SELECT bezeichnung FROM lehre.tbl_lehrveranstaltung WHERE lehrveranstaltung_id='$row->lehrveranstaltung_id'"; + $result_lv = pg_query($conn, $qry); + $row_lv = pg_fetch_object($result_lv); + echo ''; echo ''; echo ''; echo ''; diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index 21c9b5b3d..a3b694a3c 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -1,25 +1,43 @@ , + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + require_once('../../config.inc.php'); + require_once('../../../include/functions.inc.php'); + require_once('../../../include/zeitsperre.class.php'); + require_once('../../../include/datum.class.php'); + $uid = get_uid(); if(isset($_GET['type'])) $type=$_GET['type']; - + if (!$conn = @pg_pconnect(CONN_STRING)) die("Es konnte keine Verbindung zum Server aufgebaut werden."); - + + $datum_obj = new datum(); + //Stundentabelleholen - if(! $result_stunde=pg_exec($conn, "SET search_path TO campus; SELECT * FROM lehre.tbl_stunde ORDER BY stunde")) + if(! $result_stunde=pg_query($conn, "SET search_path TO campus; SELECT * FROM lehre.tbl_stunde ORDER BY stunde")) die(pg_last_error($conn)); - $num_rows_stunde=pg_numrows($result_stunde); + $num_rows_stunde=pg_num_rows($result_stunde); // Zeitwuensche speichern if (isset($type) && $type=='save') @@ -45,7 +63,7 @@ { $query="UPDATE tbl_zeitwunsch SET gewicht=$gewicht WHERE mitarbeiter_uid='$uid' AND stunde=$stunde AND tag=$t"; //echo $query; - if(!($erg=pg_exec($conn, $query))) + if(!($erg=pg_query($conn, $query))) die(pg_last_error($conn)); } else @@ -55,7 +73,7 @@ if(!($erg=pg_query($conn, "SELECT * FROM tbl_zeitwunsch WHERE mitarbeiter_uid='$uid'"))) die(pg_last_error($conn)); - $num_rows=pg_numrows($erg); + $num_rows=pg_num_rows($erg); for ($i=0;$i<$num_rows;$i++) { $tag=pg_result($erg,$i,"tag"); @@ -67,9 +85,9 @@ // Personendaten - if(! $result=pg_exec($conn, "SELECT * FROM vw_benutzer WHERE uid='$uid'")) + if(! $result=pg_query($conn, "SELECT * FROM vw_benutzer WHERE uid='$uid'")) die(pg_last_error($conn)); - if (pg_numrows($result)==1) + if (pg_num_rows($result)==1) $person=pg_fetch_object($result); ?> @@ -79,6 +97,12 @@ Profil + @@ -88,11 +112,11 @@  Userprofil >>  Zeitwünsche - +
LVNRLehrfachLehrformBezeichnungLektorSTGSVGGruppeRaumtypAlternativBlockWRStdKWAnmerkung
LVNRLehrfachLehrformLV BezeichnungLehrfach BezeichnungLektorSTGSVGGruppeRaumtypAlternativBlockWRStdKWAnmerkung
'.$row->lvnr.''.$row->lehrfach.''.$row->lehrform_kurzbz.''.$row_lv->bezeichnung.''.$row->lehrfach_bez.''.$row->lektor.''.$row->stg_kurzbz.'HELP HELP 
-
Results: -
+

Zeitwünsche von titelpre.' '.$person->vorname.' '.$person->nachname; ?>

@@ -133,61 +157,219 @@ -

-

Erklärung:

-

Bitte kontrollieren/ändern Sie Ihre Zeitwünsche und klicken Sie anschließend - auf "Speichern"!

-

- - - - - - - - - - - - - - - - - - - - - - - - - -
Wert -
Bedeutung
-
-
2
-
Hier möchte ich unterrichten
-
1
-
Hier kann ich unterrichten
-
0
-
keine Bedeutung
-
-1
-
Hier nur in extremen Notfällen
-
-2
-
Hier auf gar keinen Fall !!!
-

 

-

Folgende Punkte sind zu beachten:

-
    -
  1. Verwenden Sie den Wert -2 nur, wenn Sie zu dieser Stunde wirklich nicht - können, um eine bessere Optimierung zu ermöglichen.
  2. -
  3. Es sollten für jede Stunde die tatsächlich unterrichtet wird, - mindestens das 3-fache an positiven Zeitwünschen angegeben werden.
    - Beispiel: Sie unterrichten 4 Stunden/Woche, dann sollten Sie mindestens - 12 Stunden im Raster mit positiven Werten ausfüllen.
  4. -
-

Bei Problemen wenden Sie sich bitte an die LV-Koordinationsstelle.

-

 

+ +

Zeitsperren

+ + +'; +echo ' + +
+load($_GET['id']); + $zeitsperre->new=false; + $zeitsperre->zeitsperre_id = $_GET['id']; + } + } + else + { + $zeitsperre->new=true; + $zeitsperre->insertamum = date('Y-m-d H:i:s'); + $zeitsperre->insertvon = $uid; + } + + if(!$error) + { + $zeitsperre->zeitsperretyp_kurzbz = $_POST['zeitsperretyp_kurzbz']; + $zeitsperre->mitarbeiter_uid = $uid; + $zeitsperre->bezeichnung = $_POST['bezeichnung']; + $zeitsperre->vondatum = $_POST['vondatum']; + $zeitsperre->vonstunde = $_POST['vonstunde']; + $zeitsperre->bisdatum = $_POST['bisdatum']; + $zeitsperre->bisstunde = $_POST['bisstunde']; + $zeitsperre->erreichbarkeit = $_POST['erreichbarkeit']; + $zeitsperre->vertretung_uid = $_POST['vertretung_uid']; + $zeitsperre->updateamum = date('Y-m-d H:i:s'); + $zeitsperre->updatevon = $uid; + + if($zeitsperre->save()) + { + echo "Daten wurden erfolgreich gespeichert"; + } + else + echo "Fehler beim Speichern der Daten"; + } + else + echo "$error_msg"; +} + +if(isset($_GET['type']) && $_GET['type']=='delete_sperre') +{ + $zeit = new zeitsperre($conn); + $zeit->load($_GET['id']); + if($zeit->mitarbeiter_uid==$uid) + { + if($zeit->delete($_GET['id'])) + { + echo "Eintrag wurde geloescht"; + } + else + echo "Fehler beim loeschen des Eintrages"; + } + else + echo "Sie haben keine Berechtigung diesen Datensatz zu loeschen"; +} + + +$zeit = new zeitsperre($conn); +$zeit->getzeitsperren($uid); +if(count($zeit->result)>0) +{ + echo ''; + foreach ($zeit->result as $row) + { + echo ""; + } + echo '
BezeichnungGrundVonBisVertretungErreichbarkeit
$row->bezeichnung$row->zeitsperretyp_kurzbz$row->vondatum ".($row->vonstunde!=''?'('.$row->vonstunde.')':'')."$row->bisdatum ".($row->bisstunde!=''?'('.$row->bisstunde.')':'')."$row->vertretung_uid$row->erreichbarkeiteditdelete
'; +} +else + echo "Derzeit sind keine Zeitsperren eingetragen!"; +echo '
'; + + + +$zeitsperre = new zeitsperre($conn); +$action = "$PHP_SELF?type=new_sperre"; +if(isset($_GET['type']) && $_GET['type']=='edit') +{ + if(isset($_GET['id']) && is_numeric($_GET['id'])) + { + $zeitsperre->load($_GET['id']); + if($zeitsperre->mitarbeiter_uid!=$uid) + { + die("Sie haben keine Berechtigung diese Zeitsperre zu aendern"); + } + $action = "$PHP_SELF?type=edit_sperre&id=".$_GET['id']; + } + else + { + die("Fehlerhafte Parameteruebergabe"); + } +} + +echo '
'; +echo "\n"; +echo ''; +echo '"; + +echo '"; + +echo ''; +echo "'; +echo ''; +echo '
Grund'; +echo '
Bezeichnung
von '; + +$qry = "SELECT stunde FROM lehre.tbl_stunde ORDER BY stunde"; +echo "Stunde (inklusive)"; + +echo "
bis '; + +$qry = "SELECT stunde FROM lehre.tbl_stunde ORDER BY stunde"; +echo "Stunde (inklusive)"; +echo "
Erreichbarkeit
Vertretung
 '; + +if(isset($_GET['type']) && $_GET['type']=='edit') + echo ""; +else + echo ""; +echo '
'; +?> +
diff --git a/cis/public/ansprechpartner.php b/cis/public/ansprechpartner.php index 59fde8db7..6919b6a2c 100644 --- a/cis/public/ansprechpartner.php +++ b/cis/public/ansprechpartner.php @@ -68,14 +68,7 @@ else   - Braunstorfer Michael (Leitung) - 240 - michael.braunstorfer@technikum-wien.at':'')?> -   - Termin nach Vereinbarung - - - Ing. Esberger Franz + Ing. Esberger Franz (Leitung interimistisch) 243 franz.esberger@technikum-wien.at':'')?>   @@ -95,6 +88,20 @@ else   Termin nach Vereinbarung + + Lechner Martin + 240 + lechner@technikum-wien.at':'')?> +   + Termin nach Vereinbarung + + + Braunstorfer Michael + 240 + michael.braunstorfer@technikum-wien.at':'')?> +   + Termin nach Vereinbarung +     diff --git a/include/datum.class.php b/include/datum.class.php index c34e8a929..6c913acab 100644 --- a/include/datum.class.php +++ b/include/datum.class.php @@ -48,7 +48,41 @@ class datum /** * Liefert einen UNIX Timestamp von einem String im - * Format "31.12.2007 14:30" + * 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 + { + $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 + { + $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) { diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php new file mode 100644 index 000000000..6d6aca8f1 --- /dev/null +++ b/include/zeitsperre.class.php @@ -0,0 +1,279 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ + +class zeitsperre +{ + var $conn; // @var resource DB-Handle + var $new; // @var boolean + var $errormsg; // @var string + var $result = array(); // @var news Objekt + + //Tabellenspalten + var $zeitsperre_id; // serial + var $zeitsperretyp_kurzbz; // varchar(8) + var $mitarbeiter_uid; // varchar(16) + var $bezeichnung; // varchar(32) + var $vondatum; // date + var $vonstunde; // smallint + var $bisdatum; // date + var $bisstunde; // smallint + var $erreichbarkeit; // varchar(5) + var $vertretung_uid; // varchar(16) + var $updateamum; // timestamp + var $updatevon; // string + var $insertamum; // timestamp + var $insertvon; // string + + + /** + * Konstruktor + * @param $conn Connection zur DB + * $zeitsperre_id ID der zu ladenden Funktion + */ + function zeitsperre($conn, $zeitsperre_id=null) + { + $this->conn = $conn; + 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"; + + 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->mitarbeiter_uid = $row->mitarbeiter_uid; + $obj->bezeichnung = $row->bezeichnung; + $obj->vondatum = $row->vondatum; + $obj->vonstunde = $row->vonstunde; + $obj->bisdatum = $row->bisdatum; + $obj->bisstunde = $row->bisstunde; + $obj->erreichbarkeit = $row->erreichbarkeit; + $obj->vertretung_uid = $row->vertretung_uid; + $obj->updateamum = $row->updateamum; + $obj->updatevon = $row->updatevon; + $obj->insertamum = $row->insertamum; + $obj->insertvon = $row->insertvon; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim laden der Zeitsperren'; + return false; + } + } + + /** + * Laedt eine Zeitsperre + * @param $zeitsperre_id ID der zu laden ist + * @return true wenn ok, false im Fehlerfall + */ + 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; + $this->zeitsperretyp_kurzbz = $row->zeitsperretyp_kurzbz; + $this->mitarbeiter_uid = $row->mitarbeiter_uid; + $this->bezeichnung = $row->bezeichnung; + $this->vondatum = $row->vondatum; + $this->vonstunde = $row->vonstunde; + $this->bisdatum = $row->bisdatum; + $this->bisstunde = $row->bisstunde; + $this->erreichbarkeit = $row->erreichbarkeit; + $this->vertretung_uid = $row->vertretung_uid; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + } + 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 + * @return true wenn ok, false im Fehlerfall + */ + function delete($zeitsperre_id) + { + if(!is_numeric($zeitsperre_id)) + { + $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 + */ + function checkvars() + { + if(strlen($this->bezeichnung)>32) + { + $this->errormsg = "Bezeichnung darf nicht laenger als 32 Zeichen sein"; + return false; + } + if(strlen($this->zeitsperretyp_kurzbz)>8) + { + $this->errormsg = "Zeitsperretyp_kurzbz darf nicht laenger als 8 Zeichen sein"; + return false; + } + if(strlen($this->mitarbeiter_uid)>16) + { + $this->errormsg = "Mitarbeiter_uid darf nicht laenger als 8 Zeichen sein"; + return false; + } + if(strlen($this->erreichbarkeit)>5) + { + $this->errormsg = "Erreichbarkeit darf nicht laenger als 8 Zeichen sein"; + 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 + + $qry = 'INSERT INTO campus.tbl_zeitsperre (zeitsperretyp_kurzbz, mitarbeiter_uid, bezeichnung,'. + ' vondatum ,vonstunde, bisdatum, bisstunde, erreichbarkeit, vertretung_uid, insertamum,'. + ' insertvon, updateamum, updatevon) VALUES ('. + $this->addslashes($this->zeitsperretyp_kurzbz).', '. + $this->addslashes($this->mitarbeiter_uid).', '. + $this->addslashes($this->bezeichnung).', '. + $this->addslashes($this->vondatum).', '. + $this->addslashes($this->vonstunde).', '. + $this->addslashes($this->bisdatum).', '. + $this->addslashes($this->bisstunde).', '. + $this->addslashes($this->erreichbarkeit).', '. + $this->addslashes($this->vertretung_uid).', '. + $this->addslashes($this->insertamum).', '. + $this->addslashes($this->insertvon).', '. + $this->addslashes($this->updateamum).', '. + $this->addslashes($this->updatevon).'); '; + } + 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 '. + 'zeitsperretyp_kurzbz='.$this->addslashes($this->zeitsperretyp_kurzbz).', '. + 'mitarbeiter_uid='.$this->addslashes($this->mitarbeiter_uid).', '. + 'bezeichnung='.$this->addslashes($this->bezeichnung).', '. + 'vondatum='.$this->addslashes($this->vondatum).', '. + 'vonstunde='.$this->addslashes($this->vonstunde).', '. + 'bisdatum='.$this->addslashes($this->bisdatum).', '. + 'bisstunde='.$this->addslashes($this->bisstunde).', '. + 'erreichbarkeit='.$this->addslashes($this->erreichbarkeit).', '. + 'vertretung_uid='.$this->addslashes($this->vertretung_uid).', '. + 'insertamum='.$this->addslashes($this->insertamum).', '. + 'insertvon='.$this->addslashes($this->insertvon).', '. + 'updateamum='.$this->addslashes($this->updateamum).', '. + 'updatevon='.$this->addslashes($this->updatevon).' '. + 'WHERE zeitsperre_id = '.$this->addslashes($this->zeitsperre_id).';'; + } + + if(pg_query($this->conn, $qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; + return false; + } + } +} +?> \ No newline at end of file