diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index 9378488a5..7d4d5556b 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -19,227 +19,245 @@ * Andreas Oesterreicher and * Rudolf Hangl . */ -// ** -// * @brief bietet die Moeglichkeit zur Anzeige und -// * Aenderung der Zeitwuensche +/** + * @brief bietet die Moeglichkeit zur Anzeige und + * Aenderung der Zeitwuensche + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/basis_db.class.php'); +require_once('../../../include/globals.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/zeitwunsch.class.php'); +require_once('../../../include/benutzer.class.php'); - require_once('../../../config/cis.config.inc.php'); - require_once('../../../include/basis_db.class.php'); - if (!$db = new basis_db()) - die('Fehler beim Oeffnen der Datenbankverbindung'); +if (!$db = new basis_db()) + die('Fehler beim Oeffnen der Datenbankverbindung'); - require_once('../../../include/globals.inc.php'); - 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(); - $uid = get_uid(); +if(!check_lektor($uid)) + die('Sie haben keine Berechtigung fuer diese Seite'); - $PHP_SELF = $_SERVER['PHP_SELF']; +$PHP_SELF = $_SERVER['PHP_SELF']; - if(isset($_GET['type'])) - $type=$_GET['type']; +if(isset($_GET['type'])) + $type=$_GET['type']; - $datum_obj = new datum(); +$datum_obj = new datum(); - //Stundentabelleholen - if(! $result_stunde=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde")) - die($db->db_last_error()); - $num_rows_stunde=$db->db_num_rows($result_stunde); +//Stundentabelleholen +if(! $result_stunde=$db->db_query('SELECT * FROM lehre.tbl_stunde ORDER BY stunde')) + die($db->db_last_error()); +$num_rows_stunde=$db->db_num_rows($result_stunde); - // Zeitwuensche speichern - if (isset($type) && $type=='save') +// Zeitwuensche speichern +if (isset($type) && $type=='save') +{ + $zw = new zeitwunsch(); + + for ($t=1;$t<7;$t++) { - for ($t=1;$t<7;$t++) - for ($i=0;$i<$num_rows_stunde;$i++) + for ($i=0;$i<$num_rows_stunde;$i++) + { + $var='wunsch'.$t.'_'.$i; + if(!isset($_POST[$var])) + continue; + $gewicht=$_POST[$var]; + $stunde=$i+1; + + $zw->mitarbeiter_uid = $uid; + $zw->stunde = $stunde; + $zw->tag = $t; + $zw->gewicht = $gewicht; + $zw->updateamum = date('Y-m-d H:i:s'); + $zw->updatevon = $uid; + + if (!$zw->exists($uid, $stunde, $t)) { - $var='wunsch'.$t.'_'.$i; - //echo $$var; - $gewicht=$_POST[$var]; - $stunde=$i+1; - $query="SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid='$uid' AND stunde=$stunde AND tag=$t"; - if(! $erg_wunsch=$db->db_query($query)) - die($db->db_last_error()); - $num_rows_wunsch=$db->db_num_rows($erg_wunsch); - if ($num_rows_wunsch==0) - { - $query="INSERT INTO campus.tbl_zeitwunsch (mitarbeiter_uid, stunde, tag, gewicht) VALUES ('$uid', $stunde, $t, $gewicht)"; - if(!($erg=$db->db_query($query))) - die($db->db_last_error()); - } - elseif ($num_rows_wunsch==1) - { - $query="UPDATE campus.tbl_zeitwunsch SET gewicht=$gewicht WHERE mitarbeiter_uid='$uid' AND stunde=$stunde AND tag=$t"; - //echo $query; - if(!($erg=$db->db_query($query))) - die($db->db_last_error()); - } - else - die("Zuviele Eintraege fuer!"); + $zw->new = true; + $zw->insertamum = date('Y-m-d H:i:s'); + $zw->insertvon = $uid; } + else + $zw->new = false; + + if(!$zw->save()) + echo $zw->errormsg; + } } +} - if(!($erg=$db->db_query("SELECT * FROM campus.tbl_zeitwunsch WHERE mitarbeiter_uid='$uid'"))) - die($db->db_last_error()); - $num_rows=$db->db_num_rows($erg); - for ($i=0;$i<$num_rows;$i++) - { - $tag=$db->db_result($erg,$i,"tag"); - $stunde=$db->db_result($erg,$i,"stunde"); - $gewicht=$db->db_result($erg,$i,"gewicht"); - $wunsch[$tag][$stunde]=$gewicht; - } +$zw = new zeitwunsch(); +if(!$zw->loadPerson($uid)) + die($zw->errormsg); + +$wunsch = $zw->zeitwunsch; - - // Personendaten - if(! $result=$db->db_query("SELECT * FROM campus.vw_benutzer WHERE uid='$uid'")) - die($db->db_last_error()); - if ($db->db_num_rows($result)==1) - $person=$db->db_fetch_object($result); +// Personendaten +$person = new benutzer(); +if(!$person->load($uid)) + die($person->errormsg); ?> - + - -Zeitwunsch/Zeitsperre - - - - - - -

- - - - -
-  Userprofil >> -  Zeitwünsche - HELP 
-

- -

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

-
- - - Stunde
Beginn
Ende'; - for ($i=0;$i<$num_rows_stunde; $i++) + + Zeitwunsch + + + + - + +
+ + + + + +
  + + + + + +
 Zeitwunsch + + + HELP  + + +
+ Zeitwünsche von $person->titelpre $person->vorname $person->nachname $person->titelpost"; + + echo ' + + '; + + echo ''; + for ($i=0;$i<$num_rows_stunde; $i++) + { + $beginn=$db->db_result($result_stunde,$i,'"beginn"'); + $beginn=substr($beginn,0,5); + $ende=$db->db_result($result_stunde,$i,'"ende"'); + $ende=substr($ende,0,5); + $stunde=$db->db_result($result_stunde,$i,'"stunde"'); + echo ""; + } + + echo ''; + + for ($j=1; $j<7; $j++) + { + echo ''; + for ($i=0;$i<$num_rows_stunde;$i++) + { + if (isset($wunsch[$j][$i+1])) + $index=$wunsch[$j][$i+1]; + else + $index=1; + $id='bgcolor'; + $id.=$index+3; + echo ''; + } + echo ''; + } + + echo ' +
Stunde
Beginn
Ende
$stunde
$beginn
$ende
'.$tagbez[$j].'
+ + + '; + + if($zw->updateamum!='') + { + echo 'Letzte Änderung: '.$datum_obj->formatDatum($zw->updateamum,'d.m.Y H:i:s').' von '.$zw->updatevon.''; + } + ?> + + +
+ Das Formular zum Eintragen der Zeitsperren finden Sie hier +

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
+
-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.

+
+ diff --git a/include/zeitwunsch.class.php b/include/zeitwunsch.class.php index 4e5903687..c34199a9e 100644 --- a/include/zeitwunsch.class.php +++ b/include/zeitwunsch.class.php @@ -23,22 +23,23 @@ require_once(dirname(__FILE__).'/basis_db.class.php'); class zeitwunsch extends basis_db { - public $conn; // resource DB-Handle - public $errormsg; // string public $new; // boolean - public $zeitwuensche = array(); // zeitwunsch Objekt public $zeitwunsch; //Tabellenspalten - public $stunde; // smalint + public $stunde; // smalint public $mitarbeiter_uid; // varchar(32) public $tag; // smalint public $gewicht; // smalint public $min_stunde; public $max_stunde; + public $insertamum; + public $insertvon; + public $updateamum; + public $updatevon; /** - * Konstruktor - Uebergibt die Connection und laedt optional eine Lehrform + * Konstruktor */ public function __construct() { @@ -108,7 +109,7 @@ class zeitwunsch extends basis_db /** * Speichert einen Zeitwunsch in die Datenbank * Wenn $new auf true gesetzt ist wird ein neuer Datensatz - * angelegt, ansonsten der Datensatz mit $lehrfach_nr upgedated + * angelegt, ansonsten der Datensatz upgedated * @return true wenn erfolgreich, false im Fehlerfall */ public function save() @@ -119,16 +120,25 @@ class zeitwunsch extends basis_db 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.');'; + $qry = 'INSERT INTO campus.tbl_zeitwunsch (mitarbeiter_uid, tag, stunde, gewicht, + insertamum, insertvon, updateamum, updatevon) VALUES('. + $this->addslashes($this->mitarbeiter_uid).','. + $this->addslashes($this->tag).','. + $this->addslashes($this->stunde).','. + $this->addslashes($this->gewicht).','. + $this->addslashes($this->insertamum).','. + $this->addslashes($this->insertvon).','. + $this->addslashes($this->updateamum).','. + $this->addslasheS($this->updatevon).');'; } else { $qry = 'UPDATE campus.tbl_zeitwunsch SET'. - ' gewicht='.$this->gewicht. + ' gewicht='.$this->addslashes($this->gewicht).', '. + ' updateamum='.$this->addslashes($this->updateamum).', '. + ' updatevon='.$this->addslashes($this->updatevon). " WHERE mitarbeiter_uid='".addslashes($this->mitarbeiter_uid)."' AND - tag=".$this->tag.' AND stunde='.$this->stunde; + tag='".addslashes($this->tag)."' AND stunde='".addslashes($this->stunde)."'"; } if($this->db_query($qry)) @@ -137,7 +147,7 @@ class zeitwunsch extends basis_db } else { - $this->errormsg = 'Fehler beim Speichern des Zeitwunsches:'.$qry; + $this->errormsg = 'Fehler beim Speichern des Zeitwunsches'; return false; } } @@ -157,9 +167,17 @@ class zeitwunsch extends basis_db return false; } else + { while ($row = $this->db_fetch_object()) + { $this->zeitwunsch[$row->tag][$row->stunde]=$row->gewicht; - + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + } + } + if (!is_null($datum)) { $beginn=montag($datum); @@ -221,6 +239,8 @@ class zeitwunsch extends basis_db /** * Zeitwunsch der Personen in Lehreinheiten laden + * @param $le_id LehreinheitID Array + * @param $datum * @return true oder false */ public function loadZwLE($le_id,$datum=null) @@ -230,7 +250,7 @@ class zeitwunsch extends basis_db $sql_query_leid=''; $sql_query_le='SELECT DISTINCT mitarbeiter_uid FROM campus.vw_lehreinheit WHERE '; for ($i=0;$idb_query($qry)) + { + if($this->db_num_rows()>0) + return true; + else + return false; + } + else + { + $this->errormsg='Fehler beim Abfragen des Zeitwunsches'; + return false; + } + } } ?> \ No newline at end of file