From 17adaf79b06ddabba582783469adf8bf6623e4d5 Mon Sep 17 00:00:00 2001 From: Manfred Date: Mon, 27 Mar 2023 10:52:35 +0200 Subject: [PATCH 1/2] =?UTF-8?q?Nur=20verplanbare=20LV-Teile=20werden=20gez?= =?UTF-8?q?=C3=A4hlt;=20Studiengangsfilter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vilesci/lehre/check/verplanungsuebersicht.php | 86 ++++++++++++++++--- 1 file changed, 73 insertions(+), 13 deletions(-) diff --git a/vilesci/lehre/check/verplanungsuebersicht.php b/vilesci/lehre/check/verplanungsuebersicht.php index 67b0d847e..90cdd3a37 100644 --- a/vilesci/lehre/check/verplanungsuebersicht.php +++ b/vilesci/lehre/check/verplanungsuebersicht.php @@ -30,6 +30,7 @@ require_once('../../../config/vilesci.config.inc.php'); require_once('../../../include/studiengang.class.php'); require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); require_once('../../../include/variable.class.php'); require_once('../../../include/functions.inc.php'); @@ -39,8 +40,38 @@ $user = get_uid(); $variable = new variable(); $variable->loadVariables($user); +//Studiengänge ermitteln, auf die die Person Rechte hat +$qryOE = " SELECT + studiengang_kz + FROM + public.tbl_organisationseinheit + JOIN + public.tbl_studiengang USING (oe_kurzbz) + WHERE + oe_kurzbz IN( + SELECT oe_kurzbz + FROM public.tbl_benutzerfunktion + WHERE + funktion_kurzbz='Leitung' + AND uid='$user' + AND (datum_von is null OR datum_von <= now()) + AND (datum_bis is null OR datum_bis >= now()) + ) + OR + tbl_organisationseinheit.oe_kurzbz IN(SELECT oe_kurzbz FROM system.vw_berechtigung WHERE uid='$user' AND berechtigung_kurzbz in('admin','assistenz'))"; + +if($result_rechte = $db->db_query($qryOE)) +{ + while($row_rechte = $db->db_fetch_object($result_rechte)) + { + $stgBerechtigt[] = $row_rechte->studiengang_kz; + } +} + +$stg_get = isset($_GET['stg'])?$_GET['stg'] : ''; + $stg = new studiengang(); -$stg->getAll('typ, kurzbz'); +$stg->loadArray($stgBerechtigt, 'typ, kurzbz'); if(isset($_GET['stsem'])) $stsem = $_GET['stsem']; @@ -65,12 +96,22 @@ echo 'Übersicht - Verplanung der Lehreinheiten ('.$variable->variable->db_stpl_table.')'; -echo '
Studiensemester '; foreach ($stsem_obj->studiensemester as $row) { echo ''; } -echo '
'; +echo '
'; +echo 'Studiengang '; +echo ''; +echo ''; $gesamt=0; $gesamt_verplant=0; @@ -98,24 +139,29 @@ function drawprogress($prozent, $ueberplanung=0) $content = '
 '.$prozent.'%
'; if($ueberplanung>0) - $content.= '
 +'.$ueberplanung.'% Überbuchung
'; + $content.= '
 +'.$ueberplanung.'% zusätzliche Planstunden
'; $content.= '
'; return $content; } //Alle Studiengaenge durchlaufen $content.= "\n"; -$content.= "\n"; +$content.= "\n"; foreach($stg->result as $row_stg) { + if (isset($stg_get) && $stg_get != '' && $stg_get != $row_stg->studiengang_kz) + continue; + $content.= "\n'; //Anzahl der Lehreinheiten holen $qry = "SELECT count(*) as anzahl, semester FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id) + JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz) WHERE studiengang_kz='$row_stg->studiengang_kz' AND studiensemester_kurzbz='$stsem' - AND lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheitmitarbeiter 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 AND tbl_lehreinheitmitarbeiter.planstunden > 0) AND tbl_lehreinheit.lehre + AND tbl_lehrform.verplanen GROUP BY semester ORDER BY semester ASC"; @@ -128,7 +174,9 @@ foreach($stg->result as $row_stg) //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 + JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz) + WHERE studiengang_kz='$row_stg->studiengang_kz' AND studiensemester_kurzbz='$stsem' AND semester='$row_sem->semester' + AND tbl_lehreinheit.lehre AND tbl_lehrform.verplanen 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)"; @@ -152,11 +200,13 @@ foreach($stg->result as $row_stg) lehre.tbl_lehreinheit JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) + JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz) WHERE tbl_lehrveranstaltung.studiengang_kz='$row_stg->studiengang_kz' AND tbl_lehrveranstaltung.semester='$row_sem->semester' AND tbl_lehreinheit.studiensemester_kurzbz='$stsem' AND - tbl_lehreinheit.lehre"; + tbl_lehreinheit.lehre AND + tbl_lehrform.verplanen"; $ps=0; if($result_ps = $db->db_query($qry)) { @@ -174,11 +224,13 @@ foreach($stg->result as $row_stg) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) JOIN lehre.tbl_".$variable->variable->db_stpl_table." USING(lehreinheit_id) + JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz) WHERE tbl_lehrveranstaltung.studiengang_kz='$row_stg->studiengang_kz' AND tbl_lehrveranstaltung.semester='$row_sem->semester' AND tbl_lehreinheit.studiensemester_kurzbz='$stsem' AND - tbl_lehreinheit.lehre + tbl_lehreinheit.lehre AND + tbl_lehrform.verplanen ) a"; $stdverplant=0; @@ -192,8 +244,16 @@ foreach($stg->result as $row_stg) //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"; + 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) + JOIN lehre.tbl_lehrform ON (tbl_lehreinheit.lehrform_kurzbz=tbl_lehrform.lehrform_kurzbz) + WHERE studiengang_kz='$row_stg->studiengang_kz' + AND semester='$row_sem->semester' + AND studiensemester_kurzbz='$stsem' + AND tbl_lehreinheit.lehre + AND tbl_lehrform.verplanen"; $offen=0; if($result_std = $db->db_query($qry)) @@ -234,7 +294,7 @@ foreach($stg->result as $row_stg) $content.= ''; } $content.=''; @@ -259,7 +319,7 @@ if($gesamt_ps==0) $prozent=0; else $prozent = round($gesamt_ps_verplant*100/$gesamt_ps,2); -echo "Stunden: (".$gesamt_ps_verplant.'/'.$gesamt_ps.')
Studiengang/SemesterLehreinheitenStunden
Studiengang/SemesterLehreinheitenPlanstunden

".$row_stg->kuerzel.'

'; $content.=drawprogress($prozent, $prozentueber); - $content.= 'offene Stunden: '.$offen; + $content.= 'offene Planstunden: '.$offen; $content.='
  
'; +echo "Planstunden: (".$gesamt_ps_verplant.'/'.$gesamt_ps.')'; echo drawprogress($prozent); echo "
\n
"; From f72da812d70fd3b32b108cb444b77948bde11eb7 Mon Sep 17 00:00:00 2001 From: Manfred Date: Mon, 27 Mar 2023 10:53:18 +0200 Subject: [PATCH 2/2] Ganzer SQL Filterbar --- vilesci/statistik/filter_overview.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vilesci/statistik/filter_overview.php b/vilesci/statistik/filter_overview.php index 90807d6bb..94bbb1632 100644 --- a/vilesci/statistik/filter_overview.php +++ b/vilesci/statistik/filter_overview.php @@ -81,7 +81,7 @@ if (!$filter->loadAll())
- +
-
@@ -144,8 +144,8 @@ if (!$filter->loadAll()) convert_html_chars($filter->htmlattr) ?> - convert_html_chars(substr($filter->sql,0,32)) ?>... + + convert_html_chars($filter->sql) ?>