mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-11 17:19:29 +00:00
This commit is contained in:
@@ -1,12 +1,32 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/vilesci.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php
|
||||
/* Copyright (C) 2009 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>,
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at> and
|
||||
* Gerald Simane-Sequens <gerald.simane-sequens@technikum-wien.at>
|
||||
*/
|
||||
/*
|
||||
* Liefert eine Statistik ueber folgende Daten des LV-Plans:
|
||||
* - Wie viele Lehreinheiten sind verplant
|
||||
* - Wie viele Stunden sind verplant
|
||||
* - Wie viel % der Stunden sind mehrfach verplant
|
||||
* aufgesplittet nach Studiensemester, Studiengang und Ausbildungssemester
|
||||
*/
|
||||
require_once('../../../config/vilesci.config.inc.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
@@ -34,6 +54,15 @@ else
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem_obj->getAll();
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/vilesci.css" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
|
||||
<body>';
|
||||
|
||||
echo '<h2>Übersicht - Verplanung der Lehreinheiten ('.$variable->variable->db_stpl_table.')</h2>';
|
||||
|
||||
echo '<form method="GET">Studiensemester <select name="stsem">';
|
||||
@@ -46,9 +75,11 @@ echo '</select> <input type="submit" value="Anzeigen"></form>';
|
||||
$gesamt=0;
|
||||
$gesamt_verplant=0;
|
||||
$gesamt_ps=0;
|
||||
$gesamt_ps_verplant=0;
|
||||
$gesamt_ps_offen=0;
|
||||
$content='';
|
||||
function drawprogress($prozent)
|
||||
|
||||
//Zeichnet den Fortschrittsbalken
|
||||
function drawprogress($prozent, $ueberplanung=0)
|
||||
{
|
||||
$color='red';
|
||||
if($prozent>=80)
|
||||
@@ -64,13 +95,22 @@ function drawprogress($prozent)
|
||||
$bordercolor='2px solid red';
|
||||
else
|
||||
$bordercolor='1px solid black';
|
||||
return '<div style="border: '.$bordercolor.'; width: 300px"><div style="background-color: '.$color.'; width: '.(intval($prozent*3)).'px"> '.$prozent.'%</div></div>';
|
||||
|
||||
$content = '<div style="border: '.$bordercolor.'; width: 300px"><div style="background-color: '.$color.'; width: '.(intval($prozent*3)).'px"> '.$prozent.'%</div>';
|
||||
if($ueberplanung>0)
|
||||
$content.= '<div style="background-color: gray; width: '.(intval($ueberplanung*3)).'px"> +'.$ueberplanung.'% Überbuchung</div>';
|
||||
$content.= '</div>';
|
||||
return $content;
|
||||
}
|
||||
|
||||
//Alle Studiengaenge durchlaufen
|
||||
$content.= "\n<table>";
|
||||
$content.= "\n<tr><th>Studiengang/Semester</th><th></th><th></th><th>Lehreinheiten</th><th></th><th>Stunden</th></tr>";
|
||||
$content.= "\n<tr><th>Studiengang/Semester</th><th></th><th colspan='2'>Lehreinheiten</th><th></th><th colspan='2'>Stunden</th></tr>";
|
||||
foreach($stg->result as $row_stg)
|
||||
{
|
||||
$content.= "\n<tr><td colspan='2'><h3>".$row_stg->kuerzel.'</h3></td></tr>';
|
||||
|
||||
//Anzahl der Lehreinheiten holen
|
||||
$qry = "SELECT count(*) as anzahl, semester
|
||||
FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id)
|
||||
WHERE studiengang_kz='$row_stg->studiengang_kz' AND studiensemester_kurzbz='$stsem'
|
||||
@@ -81,17 +121,17 @@ foreach($stg->result as $row_stg)
|
||||
|
||||
if($result_sem = $db->db_query($qry))
|
||||
{
|
||||
//echo $qry;
|
||||
|
||||
while($row_sem = $db->db_fetch_object($result_sem))
|
||||
{
|
||||
$content.= '<tr><td>';
|
||||
$content.= $row_sem->semester.'.Semester </td><td>';
|
||||
|
||||
//Anzahl der verplanten Lehreinheiten holen
|
||||
$qry = "SELECT count(*) as verplant FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
WHERE studiengang_kz='$row_stg->studiengang_kz' AND studiensemester_kurzbz='$stsem' AND semester='$row_sem->semester' AND tbl_lehreinheit.lehre
|
||||
AND lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_".$variable->variable->db_stpl_table." WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)
|
||||
AND lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)";
|
||||
//echo $qry;
|
||||
|
||||
if($result_verplant = $db->db_query($qry))
|
||||
{
|
||||
if($row_verplant = $db->db_fetch_object($result_verplant))
|
||||
@@ -106,6 +146,7 @@ foreach($stg->result as $row_stg)
|
||||
}
|
||||
$content.= '</td><td width="20px"></td><td>';
|
||||
|
||||
//Planstunden holen
|
||||
$qry = "SELECT sum(planstunden) as planstunden
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
@@ -121,13 +162,13 @@ foreach($stg->result as $row_stg)
|
||||
{
|
||||
if($row_ps = $db->db_fetch_object($result_ps))
|
||||
{
|
||||
$gesamt_ps+=$row_ps->planstunden;
|
||||
$ps = $row_ps->planstunden;
|
||||
}
|
||||
}
|
||||
|
||||
//verplante Stunden aus LVPlan holen
|
||||
$qry = "SELECT count(*) as verplant
|
||||
FROM (SELECT distinct datum, stunde, tbl_lehreinheit.unr, tbl_".$variable->variable->db_stpl_table.".mitarbeiter_uid
|
||||
FROM (SELECT distinct datum, stunde, tbl_lehreinheit.lehreinheit_id, tbl_".$variable->variable->db_stpl_table.".mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
@@ -140,21 +181,55 @@ foreach($stg->result as $row_stg)
|
||||
tbl_lehreinheit.lehre
|
||||
) a";
|
||||
$stdverplant=0;
|
||||
//echo $qry;
|
||||
|
||||
if($result_std = $db->db_query($qry))
|
||||
{
|
||||
if($row_std = $db->db_fetch_object($result_std))
|
||||
{
|
||||
$gesamt_ps_verplant+=$row_std->verplant;
|
||||
$stdverplant = $row_std->verplant;
|
||||
}
|
||||
}
|
||||
|
||||
//offene Stunden ermitteln
|
||||
$qry = "
|
||||
SELECT distinct lehreinheit_id, planstunden, mitarbeiter_uid FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id)
|
||||
WHERE studiengang_kz='$row_stg->studiengang_kz' AND semester='$row_sem->semester' AND studiensemester_kurzbz='$stsem' AND tbl_lehreinheit.lehre";
|
||||
|
||||
$offen=0;
|
||||
if($result_std = $db->db_query($qry))
|
||||
{
|
||||
while($row_std = $db->db_fetch_object($result_std))
|
||||
{
|
||||
$qry = "SELECT count(*) as anzahl FROM lehre.tbl_".$variable->variable->db_stpl_table." WHERE lehreinheit_id='$row_std->lehreinheit_id' AND mitarbeiter_uid='$row_std->mitarbeiter_uid'";
|
||||
if($result_o = $db->db_query($qry))
|
||||
{
|
||||
if($row_o = $db->db_fetch_object($result_o))
|
||||
{
|
||||
if($row_o->anzahl<$row_std->planstunden)
|
||||
$offen+=$row_std->planstunden-$row_o->anzahl;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$gesamt_ps+=$ps;
|
||||
$gesamt_ps_offen+=$offen;
|
||||
$content.= "($stdverplant/$ps)";
|
||||
$prozent = round($stdverplant*100/$ps,2);
|
||||
$content.= '</td><td>';
|
||||
$content.=drawprogress($prozent);
|
||||
$prozent = round(($ps-$offen)*100/$ps,2);
|
||||
|
||||
//Ueberbuchung berechnen
|
||||
/*
|
||||
Es werden teilweise Stunden mehrfach verplant damit Lektoren die Stunden der anderen
|
||||
Lektoren der gleichen LV sehen koennen. Deshalb ist es auch notwendig die offenen Stunden aus der DB zu holen
|
||||
anstatt zu berechnen
|
||||
*/
|
||||
$prozentueber = round(($stdverplant-$ps+$offen)*100/$ps,2);
|
||||
|
||||
$content.= '</td><td nowrap>';
|
||||
$content.=drawprogress($prozent, $prozentueber);
|
||||
$content.= 'offene Stunden: '.$offen;
|
||||
$content.='</td></tr>';
|
||||
//echo $qry;
|
||||
}
|
||||
$content.='<tr><td> </td><td> </td></tr>';
|
||||
}
|
||||
@@ -164,9 +239,17 @@ foreach($stg->result as $row_stg)
|
||||
}
|
||||
}
|
||||
$content.= '</table>';
|
||||
//Prozent der gesamten verplanten Lehreinheiten berechnen und anzeigen
|
||||
$prozent = round($gesamt_verplant*100/$gesamt,2);
|
||||
echo "<br><hr>\n<table><tr><td><b>Gesamtstatus:</b> (".$gesamt_verplant.'/'.$gesamt.')</td><td width="20px"></td><td>';
|
||||
echo "<br><hr>\n<table><tr><td><b>Lehreinheiten:</b> (".$gesamt_verplant.'/'.$gesamt.')</td><td width="20px"></td><td>';
|
||||
echo drawprogress($prozent);
|
||||
echo "</td></tr><tr><td>";
|
||||
//Prozent der gesamten verplanten Stunden berechnen und anzeigen
|
||||
$gesamt_ps_verplant = ($gesamt_ps-$gesamt_ps_offen);
|
||||
$prozent = round($gesamt_ps_verplant*100/$gesamt_ps,2);
|
||||
echo "<b>Stunden:</b> (".$gesamt_ps_verplant.'/'.$gesamt_ps.')</td><td width="20px"></td><td>';
|
||||
echo drawprogress($prozent);
|
||||
|
||||
echo "</td></tr></table>\n<hr>";
|
||||
echo $content;
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user