This commit is contained in:
Christian Paminger
2007-04-03 09:31:35 +00:00
parent 60f79e355d
commit ebdee1ff8b
5 changed files with 180 additions and 4 deletions
+4 -1
View File
@@ -191,7 +191,7 @@ else
<tr>
<td width="10" nowrap>&nbsp;</td>
<td nowrap>
<a href="?Location" class="MenuItem" onClick="return(js_toggle_container('Zeitsperren'));">
<a href="profile/zeitsperre_days.php?days=7" target="content" class="MenuItem" onClick="js_toggle_container('Zeitsperren');">
<img src="../../skin/images/menu_item.gif" width="7" height="9">&nbsp;Zeitsperren
</a>
</td>
@@ -205,7 +205,10 @@ else
<ul style="margin-top: 0px; margin-bottom: 0px;">
<?php
if ($rechte->isBerechtigt('admin',0))
{
echo '<li><a class="Item2" href="profile/zeitsperre.php?fix=true" target="content">Fix-Angestellte</a></li>';
echo '<li><a class="Item2" href="profile/zeitsperre.php?fix=true&lektor=true" target="content">Fixe Lektoren</a></li>';
}
$stge=$rechte->getStgKz('admin');
foreach($stg_obj->result as $row)
if (in_array($row->studiengang_kz,$stge))
+108
View File
@@ -0,0 +1,108 @@
<?php
/* Copyright (C) 2006 Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* 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 <christian.paminger@technikum-wien.at>,
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
*/
// **
// * @brief Uebersicht der Zeitsperren fuer Lektorengruppen
require_once('../../config.inc.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/person.class.php');
require_once('../../../include/benutzer.class.php');
require_once('../../../include/mitarbeiter.class.php');
require_once('../../../include/studiensemester.class.php');
require_once('../../../include/zeitsperre.class.php');
require_once('../../../include/datum.class.php');
if (!$conn = pg_pconnect(CONN_STRING))
die("Es konnte keine Verbindung zum Server aufgebaut werden.");
$datum_obj = new datum();
$datum_beginn=date('Y-m-d');
$ts_beginn=$datum_obj->mktime_fromdate($datum_beginn);
$ts_ende=$datum_obj->jump_week($ts_beginn,1);
$datum_ende=date('Y-m-d',$ts_ende);
// Lektoren holen
$ma=new mitarbeiter($conn);
$mitarbeiter=$ma->getMitarbeiterZeitsperre($datum_beginn,$datum_ende);
?>
<html>
<head>
<title>Zeitsperren <?php echo $studiensemester; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="../../../skin/cis.css" type="text/css">
</head>
<body>
<H2>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>&nbsp;Zeitsperren</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>
<H3>Zeitsperren von <?php echo $datum_beginn.' bis '.$datum_ende; ?></H3>
<TABLE id="zeitsperren">
<TR>
<?php
echo '<th>Monat<br>Tag</th>';
for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day)
{
$tag=date('d',$ts);
$wt=date('w',$ts);
$monat=date('M',$ts);
if ($wt==0)
$class='feiertag';
else
$class='';
echo "<th class='$class'><div align=\"center\">$monat<br>$tag</div></th>";
}
?>
</TR>
<?php
$zs=new zeitsperre($conn);
foreach ($mitarbeiter as $ma)
{
$zs->getzeitsperren($ma->uid);
echo '<TR>';
echo "<td>$ma->nachname $ma->vorname</td>";
for ($ts=$ts_beginn;$ts<$ts_ende; $ts+=$datum_obj->ts_day)
{
$tag=date('d',$ts);
$monat=date('M',$ts);
$grund=$zs->getTyp($ts);
$erbk=$zs->getErreichbarkeit($ts);
echo "<td>$grund<br>$erbk</td>";
}
echo '</TR>';
}
?>
</TABLE>
</body>
</html>
+14
View File
@@ -97,5 +97,19 @@ class datum
return false;
}
}
/**
* Springt von einen UNIX Timestamp ($datum) $wochen nach vor bzw. hinten
*/
function jump_week($datum, $wochen)
{
$stunde_vor=date("G",$datum);
// Eine Woche sind 604800 Sekunden
$datum+=604800*$wochen;
$stunde_nach=date("G",$datum);
if ($stunde_nach!=$stunde_vor)
$datum+=3600;
return $datum;
}
}
?>
+47
View File
@@ -375,5 +375,52 @@ class mitarbeiter extends benutzer
}
return $result;
}
function getMitarbeiterZeitsperre($von,$bis)
{
$sql_query="SELECT DISTINCT *
FROM campus.vw_mitarbeiter JOIN campus.tbl_zeitsperre ON (uid=mitarbeiter_uid)
WHERE ('$von'>=vondatum AND '$von'<=bisdatum) OR ('$bis'>=vondatum AND '$bis'<=bisdatum) ORDER BY nachname";
//echo $sql_query;
if(!($erg=pg_query($this->conn, $sql_query)))
{
$this->errormsg=pg_errormessage($conn);
return false;
}
$num_rows=pg_numrows($erg);
$result=array();
for($i=0;$i<$num_rows;$i++)
{
$row=pg_fetch_object($erg,$i);
$l=new mitarbeiter($this->conn);
// Personendaten
$l->uid=$row->uid;
$l->titelpre=$row->titelpre;
$l->titelpost=$row->titelpost;
$l->vorname=$row->vorname;
$l->vornamen=$row->vornamen;
$l->nachname=$row->nachname;
$l->gebdatum=$row->gebdatum;
$l->gebort=$row->gebort;
$l->gebzeit=$row->gebzeit;
$l->foto=$row->foto;
$l->anmerkungen=$row->anmerkungen;
$l->aktiv=$row->aktiv=='t'?true:false;
$l->homepage=$row->homepage;
$l->updateamum=$row->updateamum;
$l->updatevon=$row->updatevon;
// Lektorendaten
$l->personalnummer=$row->personalnummer;
$l->kurzbz=$row->kurzbz;
$l->lektor=$row->lektor=='t'?true:false;
$l->fixangestellt=$row->fixangestellt=='t'?true:false;
$l->standort_kurzbz = $row->standort_kurzbz;
$l->telefonklappe=$row->telefonklappe;
// Lektor in Array speichern
$result[]=$l;
}
return $result;
}
}
?>
+7 -3
View File
@@ -64,7 +64,9 @@ class zeitsperre
{
unset($this->result);
$this->result=array();
$qry = "SELECT * FROM campus.tbl_zeitsperre JOIN campus.tbl_zeitsperretyp USING (zeitsperretyp_kurzbz)
$qry = "SELECT tbl_zeitsperre.*, tbl_zeitsperretyp.*, tbl_erreichbarkeit.farbe AS erreichbarkeit_farbe
FROM (campus.tbl_zeitsperre JOIN campus.tbl_zeitsperretyp USING (zeitsperretyp_kurzbz))
JOIN campus.tbl_erreichbarkeit USING (erreichbarkeit_kurzbz)
WHERE mitarbeiter_uid='".addslashes($uid)."' AND bisdatum>=now() ORDER BY vondatum";
if($result = pg_query($this->conn, $qry))
{
@@ -84,7 +86,9 @@ class zeitsperre
$obj->vonstunde = $row->vonstunde;
$obj->bisdatum = $row->bisdatum;
$obj->bisstunde = $row->bisstunde;
$obj->erreichbarkeit = $row->erreichbarkeit;
$obj->erreichbarkeit = $row->erreichbarkeit_kurzbz;
$obj->erreichbarkeit_farbe = $row->erreichbarkeit_farbe;
$obj->erreichbarkeit = $row->erreichbarkeit_kurzbz;
$obj->vertretung_uid = $row->vertretung_uid;
$obj->updateamum = $row->updateamum;
$obj->updatevon = $row->updatevon;
@@ -226,7 +230,7 @@ class zeitsperre
//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_kurzbz, vertretung_uid, insertamum,'.
' insertvon, updateamum, updatevon) VALUES ('.
$this->addslashes($this->zeitsperretyp_kurzbz).', '.
$this->addslashes($this->mitarbeiter_uid).', '.