Zeitwünsche speichern jetzt auch Updateamum und Updatevon

This commit is contained in:
Andreas Österreicher
2010-07-01 14:00:19 +00:00
parent 9b94fa7fc6
commit 6516b0a468
2 changed files with 282 additions and 215 deletions
+219 -201
View File
@@ -19,227 +19,245 @@
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
// **
// * @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);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Zeitwunsch/Zeitsperre</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<script language="Javascript">
// Pruefen ob nur die erlaubten Werte verwendet wurden
function checkvalues()
{
var elem = document.getElementsByTagName('input');
var error=false;
for (var i = 0;i<elem.length;i++)
{
if(elem[i].name.match("^wunsch"))
{
if(!elem[i].value.match("[12]"))
error=true;
}
}
if(error)
{
alert('Es duerfen nur die Werte -2, -1, 1 und 2 eingetragen werden');
return false;
}
else
return true;
}
</script>
</head>
<body id="inhalt">
<H2><table class="tabcontent">
<tr>
<td>
&nbsp;<a class="Item" href="index.php">Userprofil</a> &gt;&gt;
&nbsp;Zeitw&uuml;nsche
</td>
<td align="right"><A onclick="window.open('zeitwunsch_help.html','Hilfe', 'height=320,width=480,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');" class="hilfe" target="_blank">HELP&nbsp;</A></td>
</tr>
</table>
</H2>
<!--<div align="right">Results: <?php echo $num_rows; ?> - <?php echo $uid; ?></div>-->
<H3>
Zeitw&uuml;nsche von <?php echo $person->titelpre.' '.$person->vorname.' '.$person->nachname; ?>
</H3>
<FORM name="zeitwunsch" method="post" action="zeitwunsch.php?type=save" onsubmit="return checkvalues()">
<TABLE>
<TR>
<?php
echo '<th>Stunde<br>Beginn<br>Ende</th>';
for ($i=0;$i<$num_rows_stunde; $i++)
<head>
<title>Zeitwunsch</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
<script type="text/javascript">
// Pruefen ob nur die erlaubten Werte verwendet wurden
function checkvalues()
{
$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 "<th><div align=\"center\">$stunde<br>$beginn<br>$ende</div></th>";
}
?>
</TR>
<?php
for ($j=1; $j<7; $j++)
{
echo '<TR><TD>'.$tagbez[$j].'</TD>';
for ($i=0;$i<$num_rows_stunde;$i++)
{
if (isset($wunsch[$j][$i+1]))
$index=$wunsch[$j][$i+1];
var elem = document.getElementsByTagName('input');
var error=false;
for (var i = 0;i<elem.length;i++)
{
if(elem[i].name.match("^wunsch"))
{
if(!elem[i].value.match("[12]"))
error=true;
}
}
if(error)
{
alert('Es duerfen nur die Werte -2, -1, 1 und 2 eingetragen werden');
return false;
}
else
$index=1;
$id='bgcolor';
$id.=$index+3;
echo '<TD align="center" id="'.$id.'"><INPUT align="right" type="text" name="wunsch'.$j.'_'.$i.'" size="1" maxlength="2" value="'.$index.'"></TD>';
return true;
}
echo '</TR>';
}
?>
</TABLE>
<INPUT type="hidden" name="uid" value="<?php echo $uid; ?>">
<INPUT type="submit" name="Abschicken" value="Speichern">
</FORM>
<hr>
Das Formular zum Eintragen der Zeitsperren finden Sie <a href='zeitsperre_resturlaub.php' class='Item'>hier</a>
<H3>Erkl&auml;rung:</H3>
<P>Bitte kontrollieren/&auml;ndern Sie Ihre Zeitw&uuml;nsche und klicken Sie anschlie&szlig;end
auf &quot;Speichern&quot;!<BR><BR>
</P>
<TABLE align="center" name="Zeitwerte">
<TR>
<TH><B>Wert</B></TH>
<TH>
<DIV align="center"><B>Bedeutung</B></DIV>
</TH>
</TR>
<TR>
<TD>
<DIV align="right">2</DIV>
</TD>
<TD>Hier m&ouml;chte ich unterrichten</TD>
</TR>
<TR>
<TD>
<DIV align="right">1</DIV>
</TD>
<TD>Hier kann ich unterrichten</TD>
</TR>
<!--<TR>
<TD>
<DIV align="right">0</DIV>
</TD>
<TD>keine Bedeutung</TD>
</TR>-->
<TR>
<TD>
<DIV align="right">-1</DIV>
</TD>
<TD>Hier nur in extremen Notf&auml;llen</TD>
</TR>
<TR>
<TD>
<DIV align="right">-2</DIV>
</TD>
<TD>Hier auf gar keinen Fall !!!</TD>
</TR>
</TABLE>
<P>&nbsp;</P>
<H3>Folgende Punkte sind zu beachten:</H3>
<OL>
<LI> Verwenden Sie den Wert -2 nur, wenn Sie zu dieser Stunde wirklich nicht
k&ouml;nnen, um eine bessere Optimierung zu erm&ouml;glichen.</LI>
<LI>Es sollten f&uuml;r jede Stunde die tats&auml;chlich unterrichtet wird,
mindestens das 3-fache an positiven Zeitw&uuml;nschen angegeben werden.<BR>
Beispiel: Sie unterrichten 4 Stunden/Woche, dann sollten Sie mindestens
12 Stunden im Raster mit positiven Werten ausf&uuml;llen.</LI>
</OL>
<P>Bei Problemen wenden Sie sich bitte an die <A class="Item" href="mailto:<?php echo MAIL_LVPLAN;?>">LV-Koordinationsstelle</A>.</P>
</script>
</head>
</body>
<body>
<table class="tabcontent">
<tr>
<td class="tdwidth10">&nbsp;</td>
<td>
<table class="tabcontent">
<tr>
<td class="ContentHeader" width="95%"><font class="ContentHeader">&nbsp;Zeitwunsch</font></td>
<td class="ContentHeader" align="right">
<A onclick="window.open('zeitwunsch_help.html','Hilfe', 'height=320,width=480,left=0,top=0,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes');" class="hilfe" target="_blank">
<font class="ContentHeader">
HELP&nbsp;
</font>
</A>
</td>
</tr>
</table>
<?php
echo "<H3>Zeitw&uuml;nsche von $person->titelpre $person->vorname $person->nachname $person->titelpost</H3>";
echo '<FORM name="zeitwunsch" method="post" action="zeitwunsch.php?type=save" onsubmit="return checkvalues()">
<TABLE>
<TR>';
echo '<th>Stunde<br>Beginn<br>Ende</th>';
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 "<th><div align=\"center\">$stunde<br>$beginn<br>$ende</div></th>";
}
echo '</TR>';
for ($j=1; $j<7; $j++)
{
echo '<TR><TD>'.$tagbez[$j].'</TD>';
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 '<TD style="padding-left: 5px; padding-right:5px;" align="center" id="'.$id.'"><INPUT align="right" type="text" name="wunsch'.$j.'_'.$i.'" size="1" maxlength="2" value="'.$index.'"></TD>';
}
echo '</TR>';
}
echo '
</TABLE>
<INPUT type="hidden" name="uid" value="'.$uid.'">
<INPUT type="submit" name="Abschicken" value="Speichern">
';
if($zw->updateamum!='')
{
echo '<font size="x-small">Letzte Änderung: '.$datum_obj->formatDatum($zw->updateamum,'d.m.Y H:i:s').' von '.$zw->updatevon.'</font>';
}
?>
</FORM>
<hr>
Das Formular zum Eintragen der Zeitsperren finden Sie <a href='zeitsperre_resturlaub.php' class='Item'>hier</a>
<H3>Erkl&auml;rung:</H3>
<P>Bitte kontrollieren/&auml;ndern Sie Ihre Zeitw&uuml;nsche und klicken Sie anschlie&szlig;end
auf &quot;Speichern&quot;!<BR><BR>
</P>
<TABLE align="center">
<TR>
<TH><B>Wert</B></TH>
<TH>
<DIV align="center"><B>Bedeutung</B></DIV>
</TH>
</TR>
<TR>
<TD>
<DIV align="right">2</DIV>
</TD>
<TD>Hier m&ouml;chte ich unterrichten</TD>
</TR>
<TR>
<TD>
<DIV align="right">1</DIV>
</TD>
<TD>Hier kann ich unterrichten</TD>
</TR>
<!--<TR>
<TD>
<DIV align="right">0</DIV>
</TD>
<TD>keine Bedeutung</TD>
</TR>-->
<TR>
<TD>
<DIV align="right">-1</DIV>
</TD>
<TD>Hier nur in extremen Notf&auml;llen</TD>
</TR>
<TR>
<TD>
<DIV align="right">-2</DIV>
</TD>
<TD>Hier auf gar keinen Fall !!!</TD>
</TR>
</TABLE>
<P>&nbsp;</P>
<H3>Folgende Punkte sind zu beachten:</H3>
<OL>
<LI> Verwenden Sie den Wert -2 nur, wenn Sie zu dieser Stunde wirklich nicht
k&ouml;nnen, um eine bessere Optimierung zu erm&ouml;glichen.</LI>
<LI>Es sollten f&uuml;r jede Stunde die tats&auml;chlich unterrichtet wird,
mindestens das 3-fache an positiven Zeitw&uuml;nschen angegeben werden.<BR>
Beispiel: Sie unterrichten 4 Stunden/Woche, dann sollten Sie mindestens
12 Stunden im Raster mit positiven Werten ausf&uuml;llen.</LI>
</OL>
<P>Bei Problemen wenden Sie sich bitte an die <A class="Item" href="mailto:<?php echo MAIL_LVPLAN;?>">LV-Koordinationsstelle</A>.</P>
</td>
</tr>
</table>
</body>
</html>
+63 -14
View File
@@ -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;$i<count($le_id);$i++)
$sql_query_leid.=' OR lehreinheit_id='.$le_id[$i];
$sql_query_leid.=" OR lehreinheit_id='".$le_id[$i]."'";
$sql_query_leid=mb_substr($sql_query_leid,3);
$sql_query_le.=$sql_query_leid;
@@ -305,5 +325,34 @@ class zeitwunsch extends basis_db
}
return true;
}
/**
* Prueft ob bereits ein Zeitwunsch eingetragen ist
*
* @param $uid
* @param $stunde
* @param $tag
* @return true wenn vorhanden sonst false
*/
function exists($uid, $stunde, $tag)
{
$qry = "SELECT 1 FROM campus.tbl_zeitwunsch
WHERE
mitarbeiter_uid='".addslashes($uid)."'
AND stunde='".addslashes($stunde)."'
AND tag='".addslashes($tag)."';";
if($this->db_query($qry))
{
if($this->db_num_rows()>0)
return true;
else
return false;
}
else
{
$this->errormsg='Fehler beim Abfragen des Zeitwunsches';
return false;
}
}
}
?>