Abhängigkeit von Tabelle Fachbereich entfernt

This commit is contained in:
Andreas Österreicher
2018-10-22 11:50:50 +02:00
parent e47cbd2c1c
commit 558a3fbdb1
+81 -63
View File
@@ -24,7 +24,7 @@
require_once('../../config/vilesci.config.inc.php'); require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php'); require_once('../../include/functions.inc.php');
require_once('../../include/studiengang.class.php'); require_once('../../include/studiengang.class.php');
require_once('../../include/fachbereich.class.php'); require_once('../../include/organisationseinheit.class.php');
require_once('../../include/studiensemester.class.php'); require_once('../../include/studiensemester.class.php');
require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/benutzerberechtigung.class.php');
@@ -34,8 +34,15 @@ if (!$db = new basis_db())
$stg_obj = new studiengang(); $stg_obj = new studiengang();
$stg_obj->getAll('typ, kurzbz', false); $stg_obj->getAll('typ, kurzbz', false);
$fb_obj = new fachbereich(); $oe_typ = new organisationseinheit();
$fb_obj->getAll(); $oe_typ->getTypen();
foreach($oe_typ->result as $row)
$oe_typ_arr[$row->organisationseinheittyp_kurzbz]=$row->bezeichnung;
$oe_obj = new organisationseinheit();
$oe_obj->getAll();
foreach($oe_obj->result as $row)
$oe_arr[$row->oe_kurzbz] = $oe_typ_arr[$row->organisationseinheittyp_kurzbz].' '.$row->bezeichnung;
$rechte = new benutzerberechtigung(); $rechte = new benutzerberechtigung();
$rechte->getBerechtigungen(get_uid()); $rechte->getBerechtigungen(get_uid());
@@ -55,26 +62,26 @@ echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script> <script type="text/javascript" src="../../vendor/jquery/sizzle/sizzle.js"></script>
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/> <link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
<script type="text/javascript"> <script type="text/javascript">
$(document).ready(function() $(document).ready(function()
{ {
$("#t1").tablesorter( $("#t1").tablesorter(
{ {
sortList: [[1,0]], sortList: [[1,0]],
widgets: ["zebra"], widgets: ["zebra"],
headers: {11: {sorter: false}, 12: {sorter: false}, 13: {sorter: false}} headers: {11: {sorter: false}, 12: {sorter: false}, 13: {sorter: false}}
}); });
}); });
</script> </script>
</head> </head>
<body class="Background_main"> <body class="Background_main">
<h2>Liste der MitarbeiterInnen der Institute</h2>'; <h2>Liste der MitarbeiterInnen der Abteilungen</h2>';
$stsem = new studiensemester(); $stsem = new studiensemester();
if(isset($_GET['ws']) && check_stsem($_GET['ws'])) if(isset($_GET['ws']) && check_stsem($_GET['ws']))
$ws = $_GET['ws']; $ws = $_GET['ws'];
else else
$ws = $stsem->getNearest(1); $ws = $stsem->getNearest(1);
if(isset($_GET['ss']) && check_stsem($_GET['ss'])) if(isset($_GET['ss']) && check_stsem($_GET['ss']))
$ss = $_GET['ss']; $ss = $_GET['ss'];
else else
@@ -82,49 +89,55 @@ else
if($rechte->isBerechtigt('admin', 0) || $rechte->isBerechtigt('mitarbeiter', 0)) if($rechte->isBerechtigt('admin', 0) || $rechte->isBerechtigt('mitarbeiter', 0))
$where = ''; $where = '';
else else
{ {
$fb = $rechte->getFbKz(); $oe = $rechte->getOEkurzbz('assistenz');
if(count($fb)>0) if(count($oe)>0)
{ {
$where = " AND EXISTS (SELECT * FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehrveranstaltung lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) WHERE $where = " AND EXISTS (
tbl_lehreinheit.studiensemester_kurzbz in(".$db->db_add_param($ws).",".$db->db_add_param($ss).") AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND SELECT * FROM
fachbereich_kurzbz IN("; lehre.tbl_lehreinheitmitarbeiter
foreach ($fb as $fachbereich_kurzbz) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
WHERE
tbl_lehreinheit.studiensemester_kurzbz in(".$db->db_add_param($ws).",".$db->db_add_param($ss).")
AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid
AND lehrfach.oe_kurzbz IN(";
foreach ($oe as $oe_kurzbz)
{ {
$where.=$db->db_add_param($fachbereich_kurzbz).","; $where.=$db->db_add_param($oe_kurzbz).",";
} }
$where.="''))"; $where.="''))";
} }
else else
die('Sie haben keine Berechtigung fuer diese Seite'); die('Sie haben keine Berechtigung fuer diese Seite');
} }
//Alle aktiven Mitarbeiter holen mit den ALVS-Stunden und der Hauptinstitutszuteilung //Alle aktiven Mitarbeiter holen mit den ALVS-Stunden und der Hauptinstitutszuteilung
$qry = "SELECT $qry = "SELECT
personalnummer, vorname, nachname, fixangestellt, mitarbeiter_uid, kompetenzen, personalnummer, vorname, nachname, fixangestellt, mitarbeiter_uid, kompetenzen,
( (
SELECT SELECT
sum(semesterstunden) sum(semesterstunden)
FROM FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
studiensemester_kurzbz=".$db->db_add_param($ws)." studiensemester_kurzbz=".$db->db_add_param($ws)."
) as lvs_wintersemester, ) as lvs_wintersemester,
( (
SELECT SELECT
sum(semesterstunden) sum(semesterstunden)
FROM FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE WHERE
mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND mitarbeiter_uid=tbl_mitarbeiter.mitarbeiter_uid AND
studiensemester_kurzbz=".$db->db_add_param($ss)." studiensemester_kurzbz=".$db->db_add_param($ss)."
) as lvs_sommersemester, ) as lvs_sommersemester,
( (
SELECT SELECT
tbl_organisationseinheit.bezeichnung tbl_organisationseinheit.oe_kurzbz
FROM FROM
public.tbl_benutzerfunktion JOIN public.tbl_organisationseinheit USING(oe_kurzbz) public.tbl_benutzerfunktion JOIN public.tbl_organisationseinheit USING(oe_kurzbz)
WHERE WHERE
uid=tbl_mitarbeiter.mitarbeiter_uid AND uid=tbl_mitarbeiter.mitarbeiter_uid AND
@@ -133,9 +146,9 @@ $qry = "SELECT
AND (datum_bis>=now() OR datum_bis is null) AND (datum_bis>=now() OR datum_bis is null)
LIMIT 1 LIMIT 1
) as hauptzuteilung ) as hauptzuteilung
FROM FROM
public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid) public.tbl_mitarbeiter JOIN public.tbl_benutzer ON(uid=mitarbeiter_uid)
JOIN public.tbl_person USING(person_id) JOIN public.tbl_person USING(person_id)
WHERE tbl_benutzer.aktiv $where"; WHERE tbl_benutzer.aktiv $where";
if($result = $db->db_query($qry)) if($result = $db->db_query($qry))
@@ -149,12 +162,11 @@ if($result = $db->db_query($qry))
<th>Nachname</th> <th>Nachname</th>
<th>Vorname</th> <th>Vorname</th>
<th>Fix / Frei</th> <th>Fix / Frei</th>
<th>Kompetenzen</th>
<th>ALVS<br>".$db->convert_html_chars($ws)."</th> <th>ALVS<br>".$db->convert_html_chars($ws)."</th>
<th>ALVS<br>".$db->convert_html_chars($ss)."</th> <th>ALVS<br>".$db->convert_html_chars($ss)."</th>
<th>Studiengang</th> <th>Studiengang</th>
<th>Institut Hauptzuteilung</th> <th>Disziplinäre Zuordnung</th>
<th>Sonstige Institutszuteilungen</th> <th>Zuteilungen laut Lehrauträge</th>
</tr> </tr>
</thead> </thead>
<tbody>"; <tbody>";
@@ -166,46 +178,52 @@ if($result = $db->db_query($qry))
echo "<td>".$db->convert_html_chars($row->nachname)."</td>"; echo "<td>".$db->convert_html_chars($row->nachname)."</td>";
echo "<td>".$db->convert_html_chars($row->vorname)."</td>"; echo "<td>".$db->convert_html_chars($row->vorname)."</td>";
echo "<td>".($row->fixangestellt=='t'?'fix':'frei')."</td>"; echo "<td>".($row->fixangestellt=='t'?'fix':'frei')."</td>";
echo "<td>".$db->convert_html_chars($row->kompetenzen)."</td>";
echo "<td>$row->lvs_wintersemester</td>"; echo "<td>$row->lvs_wintersemester</td>";
echo "<td>$row->lvs_sommersemester</td>"; echo "<td>$row->lvs_sommersemester</td>";
echo '<td>'; echo '<td>';
$qry = " $qry = "
SELECT SELECT
distinct studiengang_kz distinct studiengang_kz
FROM FROM
lehre.tbl_lehreinheitmitarbeiter lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
WHERE WHERE
mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)." mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")"; AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")";
$text=''; $text='';
if($row->hauptzuteilung!='')
$abteilung = $oe_arr[$row->hauptzuteilung];
else
$abteilung = '';
if($result_stg = $db->db_query($qry)) if($result_stg = $db->db_query($qry))
while($row_stg = $db->db_fetch_object($result_stg)) while($row_stg = $db->db_fetch_object($result_stg))
$text.= $stg_obj->kuerzel_arr[$row_stg->studiengang_kz].', '; $text.= $stg_obj->kuerzel_arr[$row_stg->studiengang_kz].', ';
echo mb_substr($text, 0, mb_strlen($text)-2); echo mb_substr($text, 0, mb_strlen($text)-2);
echo '</td>'; echo '</td>';
echo "<td>".$db->convert_html_chars($row->hauptzuteilung)."</td>"; echo "<td>".$db->convert_html_chars($abteilung)."</td>";
echo "<td>"; echo "<td>";
$qry = " $qry = "
SELECT SELECT
distinct fachbereich_kurzbz distinct lehrfach.oe_kurzbz
FROM FROM
lehre.tbl_lehreinheitmitarbeiter lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id) JOIN lehre.tbl_lehrveranstaltung as lehrfach ON(tbl_lehreinheit.lehrfach_id=lehrfach.lehrveranstaltung_id)
JOIN public.tbl_fachbereich ON(lehrfach.oe_kurzbz=tbl_fachbereich.oe_kurzbz) WHERE
WHERE mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
mitarbeiter_uid=".$db->db_add_param($row->mitarbeiter_uid)."
AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")"; AND studiensemester_kurzbz in(".$db->db_add_param($ss).", ".$db->db_add_param($ws).")";
$text=''; $text='';
if($result_fb = $db->db_query($qry)) if($result_oe = $db->db_query($qry))
while($row_fb = $db->db_fetch_object($result_fb)) while($row_oe = $db->db_fetch_object($result_oe))
$text.= $fb_obj->bezeichnung_arr[$row_fb->fachbereich_kurzbz].', '; {
if($row_oe->oe_kurzbz!='')
$text.= $oe_arr[$row_oe->oe_kurzbz].', ';
}
echo mb_substr($text, 0, mb_strlen($text)-2); echo mb_substr($text, 0, mb_strlen($text)-2);
echo "</td>"; echo "</td>";
echo '</tr>'; echo '</tr>';