diff --git a/vilesci/lehre/check/verplanungsuebersicht.php b/vilesci/lehre/check/verplanungsuebersicht.php index ac62de540..f2355bdbf 100644 --- a/vilesci/lehre/check/verplanungsuebersicht.php +++ b/vilesci/lehre/check/verplanungsuebersicht.php @@ -1,12 +1,32 @@ - - -
- - - - - , + * Andreas Oesterreicher| Studiengang/Semester | Lehreinheiten | Stunden | ||||
|---|---|---|---|---|---|---|
| Studiengang/Semester | Lehreinheiten | Stunden | ||||
".$row_stg->kuerzel.' | ||||||
| '; $content.= $row_sem->semester.'.Semester | '; + + //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.= ' | '; + //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.= ' | '; - $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.= ' | '; + $content.=drawprogress($prozent, $prozentueber); + $content.= 'offene Stunden: '.$offen; $content.=' | ||
| Gesamtstatus: (".$gesamt_verplant.'/'.$gesamt.') | ';
+echo " \n
"; echo $content; ?> |