Lektoren- und Mitarbeiterstatistik wurden um eine Detailansicht erweitert, in der die Personen Namentlich aufgeführt werden.

This commit is contained in:
Andreas Österreicher
2009-04-01 13:32:26 +00:00
parent 4528e9fff4
commit 6f48c3138a
2 changed files with 233 additions and 65 deletions
+154 -62
View File
@@ -23,11 +23,14 @@
* Erstellt eine Tablle mit der Anzahl der Lektoren die im angegebenen
* StudienJAHR einen Lehrauftrag im jeweiligen Institut haben, getrennt nach Fixangestellten und Freien
* und der Anzahl der Stunden die in diesem Institut gehalten wurden
* Bei einem klick auf das Institut wird die Detailansicht angezeigt, in der die einzelnen
* Lektoren Namentlich aufscheinen.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/fachbereich.class.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim Connecten zur DB');
@@ -51,6 +54,95 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
</head>
<body>';
if(isset($_GET['details']) && isset($_GET['fachbereich_kurzbz']))
{
$ss = (isset($_GET['ss'])?$_GET['ss']:'');
$ws = (isset($_GET['ws'])?$_GET['ws']:'');
$fachbereich = new fachbereich($conn);
if(!$fachbereich->load($_GET['fachbereich_kurzbz']))
die('Institut existiert nicht');
echo "<h2>Lektorenstatistik (Lehrauftrag ohne Betreuungen) $ws / $ss - ".$fachbereich->bezeichnung.'</h2>';
$qry = "SELECT distinct mitarbeiter_uid, nachname, vorname, titelpre, titelpost
FROM lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrfach USING(lehrfach_id)
JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid)
JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
JOIN public.tbl_person USING(person_id)
WHERE studiensemester_kurzbz in('$ws','$ss')
AND fachbereich_kurzbz='".addslashes($fachbereich->fachbereich_kurzbz)."' AND fixangestellt
ORDER BY nachname, vorname";
if($result = pg_query($conn, $qry))
{
echo "Fixangestellt - Anzahl: ".pg_num_rows($result)."
<table class='liste table-stripeclass:alternate table-autostripe'>
<thead>
<tr>
<th>TitelPre</th>
<th>Nachname</th>
<th>Vorname</th>
<th>Titelpost</th>
</tr>
</thead>
<tbody>
";
while($row = pg_fetch_object($result))
{
echo '<tr>';
echo "<td>$row->titelpre</td>";
echo "<td>$row->nachname</td>";
echo "<td>$row->vorname</td>";
echo "<td>$row->titelpost</td>";
echo "</tr>";
}
}
echo '</tbody></table>';
$qry = "SELECT distinct mitarbeiter_uid, nachname, vorname, titelpre, titelpost
FROM lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrfach USING(lehrfach_id)
JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid)
JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
JOIN public.tbl_person USING(person_id)
WHERE studiensemester_kurzbz in('$ws','$ss')
AND fachbereich_kurzbz='".addslashes($fachbereich->fachbereich_kurzbz)."' AND NOT fixangestellt
ORDER BY nachname, vorname";
if($result = pg_query($conn, $qry))
{
echo "<br /><br />Freiangestellt - Anzahl: ".pg_num_rows($result)."
<table class='liste table-stripeclass:alternate table-autostripe'>
<thead>
<tr>
<th>TitelPre</th>
<th>Nachname</th>
<th>Vorname</th>
<th>Titelpost</th>
</tr>
</thead>
<tbody>
";
while($row = pg_fetch_object($result))
{
echo '<tr>';
echo "<td>$row->titelpre</td>";
echo "<td>$row->nachname</td>";
echo "<td>$row->vorname</td>";
echo "<td>$row->titelpost</td>";
echo "</tr>";
}
}
echo '</tbody></table>';
}
else
{
if(substr($stsem, 0, 2)=='WS')
{
$stsem_obj = new studiensemester($conn);
@@ -63,7 +155,6 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
$ws = $stsem_obj->getPreviousFrom($stsem);
$ss = $stsem;
}
echo "<h2>Lektorenstatistik (Lehrauftrag ohne Betreuungen) $ws / $ss";
echo '<span style="position:absolute; right:15px;">'.date('d.m.Y').'</span></h2><br>';
echo '</h2>';
@@ -89,76 +180,77 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
echo '</SELECT>
<input type="submit" value="Anzeigen" /></form><br><br>';
if($stsem!='')
{
echo "<table class='liste table-stripeclass:alternate table-autostripe'>
<thead>
<tr>
<th></th>
<th colspan=2>Anzahl</th>
<th colspan=2>ALVS</th>
</tr>
<tr>
<th>Institute</th>
<th>fix</th>
<th>extern</th>
<th>$ws</th>
<th>$ss</th>
</tr>
</thead>
<tbody>
";
$qry = "SELECT
bezeichnung,
(SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE studiensemester_kurzbz in('$ws','$ss') AND fachbereich_kurzbz=a.fachbereich_kurzbz AND fixangestellt) a) as fix,
(SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE studiensemester_kurzbz in('$ws','$ss') AND fachbereich_kurzbz=a.fachbereich_kurzbz AND NOT fixangestellt) a) as extern,
(SELECT sum(semesterstunden) FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) WHERE studiensemester_kurzbz='$ws' AND fachbereich_kurzbz=a.fachbereich_kurzbz AND faktor>0 AND stundensatz>0) as ws,
(SELECT sum(semesterstunden) FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) WHERE studiensemester_kurzbz='$ss' AND fachbereich_kurzbz=a.fachbereich_kurzbz AND faktor>0 AND stundensatz>0) as ss
FROM public.tbl_fachbereich a WHERE aktiv ORDER BY bezeichnung";
/*
Mitarbeiter laut institutszuordnung
(SELECT count(*) FROM public.tbl_benutzerfunktion JOIN public.tbl_mitarbeiter on (uid=mitarbeiter_uid) WHERE fachbereich_kurzbz=a.fachbereich_kurzbz AND funktion_kurzbz='oezuordnung' AND fixangestellt AND aktiv) as fix,
(SELECT count(*) FROM public.tbl_benutzerfunktion JOIN public.tbl_mitarbeiter on (uid=mitarbeiter_uid) WHERE fachbereich_kurzbz=a.fachbereich_kurzbz AND funktion_kurzbz='oezuordnung' AND NOT fixangestellt AND aktiv) as extern,
*/
//echo '<pre>'.$qry.'</pre><br><br>';
if($result = pg_query($conn, $qry))
if($stsem!='')
{
$gesamt_fix=0;
$gesamt_extern=0;
$gesamt_ws=0;
$gesamt_ss=0;
while($row = pg_fetch_object($result))
echo "<table class='liste table-stripeclass:alternate table-autostripe'>
<thead>
<tr>
<th></th>
<th colspan=2>Anzahl</th>
<th colspan=2>ALVS</th>
</tr>
<tr>
<th>Institute</th>
<th>fix</th>
<th>extern</th>
<th>$ws</th>
<th>$ss</th>
</tr>
</thead>
<tbody>
";
$qry = "SELECT
bezeichnung, fachbereich_kurzbz,
(SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE studiensemester_kurzbz in('$ws','$ss') AND fachbereich_kurzbz=a.fachbereich_kurzbz AND fixangestellt) a) as fix,
(SELECT count(*) FROM (SELECT distinct mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) JOIN public.tbl_mitarbeiter USING(mitarbeiter_uid) WHERE studiensemester_kurzbz in('$ws','$ss') AND fachbereich_kurzbz=a.fachbereich_kurzbz AND NOT fixangestellt) a) as extern,
(SELECT sum(semesterstunden) FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) WHERE studiensemester_kurzbz='$ws' AND fachbereich_kurzbz=a.fachbereich_kurzbz AND faktor>0 AND stundensatz>0) as ws,
(SELECT sum(semesterstunden) FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrfach USING(lehrfach_id) WHERE studiensemester_kurzbz='$ss' AND fachbereich_kurzbz=a.fachbereich_kurzbz AND faktor>0 AND stundensatz>0) as ss
FROM public.tbl_fachbereich a WHERE aktiv ORDER BY bezeichnung";
/*
Mitarbeiter laut institutszuordnung
(SELECT count(*) FROM public.tbl_benutzerfunktion JOIN public.tbl_mitarbeiter on (uid=mitarbeiter_uid) WHERE fachbereich_kurzbz=a.fachbereich_kurzbz AND funktion_kurzbz='oezuordnung' AND fixangestellt AND aktiv) as fix,
(SELECT count(*) FROM public.tbl_benutzerfunktion JOIN public.tbl_mitarbeiter on (uid=mitarbeiter_uid) WHERE fachbereich_kurzbz=a.fachbereich_kurzbz AND funktion_kurzbz='oezuordnung' AND NOT fixangestellt AND aktiv) as extern,
*/
//echo '<pre>'.$qry.'</pre><br><br>';
if($result = pg_query($conn, $qry))
{
if($row->fix==0 && $row->extern==0)
$gesamt_fix=0;
$gesamt_extern=0;
$gesamt_ws=0;
$gesamt_ss=0;
while($row = pg_fetch_object($result))
{
continue;
if($row->fix==0 && $row->extern==0)
{
continue;
}
echo '<tr>';
echo "<td><a href='".$_SERVER['PHP_SELF']."?details=true&fachbereich_kurzbz=$row->fachbereich_kurzbz&ss=$ss&ws=$ws'>$row->bezeichnung</a></td>";
echo "<td align='center'>$row->fix</td>";
echo "<td align='center'>$row->extern</td>";
echo "<td align='center'>$row->ws</td>";
echo "<td align='center'>$row->ss</td>";
echo "</tr>";
$gesamt_fix+=$row->fix;
$gesamt_extern+=$row->extern;
$gesamt_ws+=$row->ws;
$gesamt_ss+=$row->ss;
}
echo '<tr>';
echo "<td>$row->bezeichnung</td>";
echo "<td align='center'>$row->fix</td>";
echo "<td align='center'>$row->extern</td>";
echo "<td align='center'>$row->ws</td>";
echo "<td align='center'>$row->ss</td>";
echo '<td><b>SUMME</b></td>';
echo "<td align='center'>&nbsp;</td>";
echo "<td align='center'>&nbsp;</td>";
echo "<td align='center'><b>$gesamt_ws</b></td>";
echo "<td align='center'><b>$gesamt_ss</b></td>";
echo "</tr>";
$gesamt_fix+=$row->fix;
$gesamt_extern+=$row->extern;
$gesamt_ws+=$row->ws;
$gesamt_ss+=$row->ss;
}
echo '<tr>';
echo '<td><b>SUMME</b></td>';
echo "<td align='center'>&nbsp;</td>";
echo "<td align='center'>&nbsp;</td>";
echo "<td align='center'><b>$gesamt_ws</b></td>";
echo "<td align='center'><b>$gesamt_ss</b></td>";
echo "</tr>";
echo '</tbody></table>';
}
echo '</tbody></table>';
}
?>
</body>
+79 -3
View File
@@ -22,11 +22,14 @@
/*
* Generiert eine Liste mit den Institutszuordnungen der Mitarbeiter
* und einer aufschluesselung ob diese Fixangestellt sind
* Bei einem klick auf das Institut wird die Detailansicht angezeigt, in der die einzelnen
* Lektoren Namentlich aufscheinen.
*/
require_once('../../vilesci/config.inc.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/functions.inc.php');
require_once('../../include/fachbereich.class.php');
if(!$conn = pg_pconnect(CONN_STRING))
die('Fehler beim Connecten zur DB');
@@ -41,7 +44,79 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
</head>
<body>';
if(isset($_GET['details']) && isset($_GET['fachbereich_kurzbz']))
{
$fachbereich = new fachbereich($conn);
if(!$fachbereich->load($_GET['fachbereich_kurzbz']))
die('Institut existiert nicht');
echo "<h2>Lektorenstatistik (Lehrauftrag ohne Betreuungen) - ".$fachbereich->bezeichnung.'</h2>';
$qry = "SELECT distinct uid, nachname, vorname, titelpre, titelpost
FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid)
WHERE fachbereich_kurzbz='".addslashes($fachbereich->fachbereich_kurzbz)."'
AND fixangestellt AND funktion_kurzbz='oezuordnung' AND aktiv
ORDER BY nachname, vorname";
if($result = pg_query($conn, $qry))
{
echo "Fixangestellt - Anzahl: ".pg_num_rows($result)."
<table class='liste table-stripeclass:alternate table-autostripe'>
<thead>
<tr>
<th>TitelPre</th>
<th>Nachname</th>
<th>Vorname</th>
<th>Titelpost</th>
</tr>
</thead>
<tbody>
";
while($row = pg_fetch_object($result))
{
echo '<tr>';
echo "<td>$row->titelpre</td>";
echo "<td>$row->nachname</td>";
echo "<td>$row->vorname</td>";
echo "<td>$row->titelpost</td>";
echo "</tr>";
}
}
echo '</tbody></table>';
$qry = "SELECT distinct uid, nachname, vorname, titelpre, titelpost
FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid)
WHERE fachbereich_kurzbz='".addslashes($fachbereich->fachbereich_kurzbz)."'
AND NOT fixangestellt AND funktion_kurzbz='oezuordnung' AND aktiv
ORDER BY nachname, vorname";
if($result = pg_query($conn, $qry))
{
echo "<br /><br />Freiangestellt - Anzahl: ".pg_num_rows($result)."
<table class='liste table-stripeclass:alternate table-autostripe'>
<thead>
<tr>
<th>TitelPre</th>
<th>Nachname</th>
<th>Vorname</th>
<th>Titelpost</th>
</tr>
</thead>
<tbody>
";
while($row = pg_fetch_object($result))
{
echo '<tr>';
echo "<td>$row->titelpre</td>";
echo "<td>$row->nachname</td>";
echo "<td>$row->vorname</td>";
echo "<td>$row->titelpost</td>";
echo "</tr>";
}
}
echo '</tbody></table>';
}
else
{
echo "<h2>Mitarbeiterstatistik (Hauptzuordnung)";
echo '<span style="position:absolute; right:15px;">'.date('d.m.Y').'</span></h2><br>';
echo '</h2>';
@@ -65,7 +140,7 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
";
//Bachelor
$qry = "SELECT
bezeichnung,
bezeichnung, fachbereich_kurzbz,
(SELECT count(*) FROM (SELECT distinct uid FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE fachbereich_kurzbz=a.fachbereich_kurzbz AND fixangestellt AND funktion_kurzbz='oezuordnung' AND aktiv) a) as fix,
(SELECT count(*) FROM (SELECT distinct uid FROM public.tbl_benutzerfunktion JOIN campus.vw_mitarbeiter USING(uid) WHERE fachbereich_kurzbz=a.fachbereich_kurzbz AND NOT fixangestellt AND funktion_kurzbz='oezuordnung' AND aktiv) a) as extern
FROM public.tbl_fachbereich a WHERE aktiv ORDER BY bezeichnung";
@@ -83,7 +158,7 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
continue;
}
echo '<tr>';
echo "<td>$row->bezeichnung</td>";
echo "<td><a href='".$_SERVER['PHP_SELF']."?details=true&fachbereich_kurzbz=".$row->fachbereich_kurzbz."'>$row->bezeichnung</a></td>";
echo "<td align='center'>$row->fix</td>";
echo "<td align='center'>$row->extern</td>";
echo "</tr>";
@@ -116,6 +191,7 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www
}
echo '</tbody></table>';
}
?>
</body>
</html>