Files
FHC-Core/cis/private/lvplan/stpl_detail.php
T

290 lines
11 KiB
PHP

<?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@technikum-wien.at>.
*/
/****************************************************************************
* Script: stpl_detail.php
* Descr: Das Script dient zur Detailanzeige eines Eintrags im Stundenplan.
* Es wird in Verbandsplan und Reservierungen gesucht.
* Verzweigungen: von stpl_week.php
* Author: Christian Paminger
* Erstellt: 21.8.2001
* Update: 11.11.2004 von Christian Paminger
*****************************************************************************/
require_once('../../../config/cis.config.inc.php');
require_once('../../../include/ort.class.php');
require_once('../../../include/functions.inc.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/phrasen.class.php');
$sprache = getSprache();
$p = new phrasen($sprache);
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
// Variablen uebernehmen
if (isset($_GET['type']))
$type=$_GET['type'];
else
$type='';
if (isset($_GET['datum']))
$datum=$_GET['datum'];
if (isset($_GET['stunde']))
$stunde=$_GET['stunde'];
if (isset($_GET['ort_kurzbz']))
$ort_kurzbz=$_GET['ort_kurzbz'];
if (isset($_GET['pers_uid']))
$pers_uid=$_GET['pers_uid'];
if (isset($_GET['stg_kz']))
$stg_kz=$_GET['stg_kz'];
if (isset($_GET['sem']))
$sem=$_GET['sem'];
if($sem!='' && !is_numeric($sem))
die($p->t('lvplan/semesterIstUngueltig'));
if($stunde!='' && !is_numeric($stunde))
die($p->t('lvplan/stundeIstUngueltig'));
if (isset($_GET['ver']))
$ver=$_GET['ver'];
if (isset($_GET['grp']))
$grp=$_GET['grp'];
if (isset($_GET['gruppe_kurzbz']))
$gruppe_kurzbz=$_GET['gruppe_kurzbz'];
$datum_obj = new datum();
if(!$datum_obj->checkDatum($datum))
die($p->t('lvplan/datumIstUngueltig'));
$stsem = getStudiensemesterFromDatum($datum);
//Stundenplan
$sql_query="
SELECT
campus.vw_stundenplan.*, lehrfach.bezeichnung, vw_mitarbeiter.titelpre,
vw_mitarbeiter.titelpost, vw_mitarbeiter.nachname, vw_mitarbeiter.vorname,
(SELECT
count(*)
FROM
public.tbl_studentlehrverband
WHERE
studiengang_kz=vw_stundenplan.studiengang_kz
AND semester=vw_stundenplan.semester
AND (verband=vw_stundenplan.verband OR vw_stundenplan.verband is null OR trim(vw_stundenplan.verband)='')
AND (gruppe=vw_stundenplan.gruppe OR vw_stundenplan.gruppe is null OR trim(vw_stundenplan.gruppe)='')
AND studiensemester_kurzbz=".$db->db_add_param($stsem).") as anzahl_lvb,
(SELECT
count(*)
FROM
public.tbl_benutzergruppe
WHERE
gruppe_kurzbz=vw_stundenplan.gruppe_kurzbz
AND studiensemester_kurzbz=".$db->db_add_param($stsem).") as anzahl_grp
FROM
campus.vw_stundenplan
JOIN lehre.tbl_lehrveranstaltung as lehrfach ON (vw_stundenplan.lehrfach_id=lehrfach.lehrveranstaltung_id)
JOIN campus.vw_mitarbeiter USING (uid)
WHERE
datum=".$db->db_add_param($datum)."
AND stunde=".$db->db_add_param($stunde);
if ($type=='lektor')
{
$sql_query.=" AND vw_stundenplan.uid=".$db->db_add_param($pers_uid);
}
elseif ($type=='ort' || $type=='lva')
$sql_query.=" AND vw_stundenplan.ort_kurzbz=".$db->db_add_param($ort_kurzbz);
else
{
if($stg_kz=='' || $sem=='')
die('Fehlerhafte Parameteruebergabe');
if($type=="verband" && $stg_kz!='' && $sem!='')
{
// Studiengangsansicht
$sql_query.=" AND vw_stundenplan.studiengang_kz=".$db->db_add_param($stg_kz)." AND (vw_stundenplan.semester=".$db->db_add_param($sem);
if ($type=='student')
$sql_query.=' OR vw_stundenplan.semester='.$db->db_add_param($sem+1);
$sql_query.=')';
}
else
{
// Pers. Ansicht
$sql_query.=" AND EXISTS (SELECT 1 FROM campus.vw_student_lehrveranstaltung
WHERE lehreinheit_id=vw_stundenplan.lehreinheit_id AND uid=".$db->db_add_param($pers_uid).")";
}
// Manfred weiss nicht mehr warum, aber wir aktivieren 23-09-2009
// 01-10-2009: jetzt weiss ers wieder Grund: Student sieht sonst die uebergeordneten nicht
/*
if (isset($ver) && $ver!='0')
$sql_query.=" AND (verband='$ver' OR verband IS NULL OR verband='0')";
if (isset($ver) && $grp!='0')
$sql_query.=" AND (gruppe='$grp' OR gruppe IS NULL OR gruppe='0')";
*/
}
$sql_query.=' ORDER BY unr ASC, stg_kurzbz, vw_stundenplan.semester, verband, gruppe, gruppe_kurzbz LIMIT 100';
//echo $sql_query.'<BR>';
$erg_stpl = $db->db_query($sql_query);
$num_rows_stpl = $db->db_num_rows($erg_stpl);
//Reservierungen
$sql_query="
SELECT
vw_reservierung.*, vw_mitarbeiter.titelpre, vw_mitarbeiter.titelpost,
vw_mitarbeiter.vorname,vw_mitarbeiter.nachname
FROM
campus.vw_reservierung, campus.vw_mitarbeiter
WHERE
datum=".$db->db_add_param($datum)."
AND stunde=".$db->db_add_param($stunde);
if (isset($ort_kurzbz) && $type=='ort')
$sql_query.=" AND vw_reservierung.ort_kurzbz=".$db->db_add_param($ort_kurzbz);
if ($type=='lektor')
$sql_query.=" AND vw_reservierung.uid=".$db->db_add_param($pers_uid);
$sql_query.=" AND vw_reservierung.uid=vw_mitarbeiter.uid";
if ($type=='verband' || $type=='student')
{
$sql_query.=" AND studiengang_kz=".$db->db_add_param($stg_kz)."
AND (semester=".$db->db_add_param($sem)." OR semester=0 OR semester IS NULL)";
}
$sql_query.=' ORDER BY titel LIMIT 100';
//echo $sql_query.'<BR>';
$erg_repl = $db->db_query($sql_query);
$num_rows_repl = $db->db_num_rows($erg_repl);
echo '<html>
<head>
<title>'.$p->t('lvplan/lehrveranstaltungsplanDetails').'</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
</head>
<body id="inhalt">
<H2>'.$p->t('lvplan/lehrveranstaltungsplan').' &rArr; '.$p->t('abgabetool/details').'</H2>
'.$p->t('abgabetool/datum').': '.htmlentities($datum_obj->formatDatum($datum, 'd.m.Y')).'<BR>
'.$p->t('global/stunde').': '.htmlentities($stunde).'<BR><BR>
';
// LVPlan
if ($num_rows_stpl>0)
{
echo '
<table class="stdplan">
<tr>
<th>'.$p->t('lvplan/unr').'</th>
<th>'.$p->t('lvaliste/lektor').'</th>
<th>'.$p->t('lvplan/ort').'</th>
<th>'.$p->t('lvaliste/lehrfach').'</th>
<th>'.$p->t('global/bezeichnung').'</th>
<th>'.$p->t('global/verband').'</th>
<th>'.$p->t('lvplan/einheit').'</th>
<th>'.$p->t('lvplan/info').'</th>
</tr>';
$ort = new ort();
$i=0;
while($row = $db->db_fetch_object($erg_stpl))
{
$i++;
$unr = $row->unr;
$ortkurzbz = $row->ort_kurzbz;
$lehrfachkurzbz = $row->lehrfach;
$bezeichnung = $row->bezeichnung;
$pers_kurzbz = $row->lektor;
$titelpre = $row->titelpre;
$titelpost = $row->titelpost;
$pers_vorname = $row->vorname;
$pers_nachname = $row->nachname;
$pers_email = $row->uid.'@'.DOMAIN;
$stgkurzbz = mb_strtoupper(trim($row->stg_typ.$row->stg_kurzbz));
$semester = trim($row->semester);
$verband = trim($row->verband);
$gruppe = trim($row->gruppe);
$gruppe_kurzbz = trim($row->gruppe_kurzbz);
$anzahl_lvb = trim($row->anzahl_lvb);
$anzahl_grp = trim($row->anzahl_grp);
$titel = trim($row->titel);
$gesamtanzahl = ($anzahl_grp!=0?$anzahl_grp:$anzahl_lvb);
$ort->load($ortkurzbz);
echo '
<tr class="liste'.($i%2).'">
<td>'.$db->convert_html_chars($unr).'</td>
<td><A class="Item" href="../profile/index.php?uid='.$row->uid.'" target="_self" onClick="window.resizeTo(1200,880)">'.$db->convert_html_chars($titelpre.' '.$pers_vorname.' '.$pers_nachname.' '.$titelpost).'</A></td>
<td title="'.$db->convert_html_chars($ort->bezeichnung).'">'.(!empty($ortkurzbz)?($ort->content_id!=''?'<a href="../../../cms/content.php?content_id='.$ort->content_id.'" target="_self" onClick="window.resizeTo(1200,880)">'.$db->convert_html_chars($ortkurzbz).'</a>':$db->convert_html_chars($ortkurzbz)):$db->convert_html_chars($ortkurzbz)).'</td>
<td>'.$db->convert_html_chars($lehrfachkurzbz).'</td>
<td>'.$db->convert_html_chars($bezeichnung).'</td>
<td title="'.$db->convert_html_chars($stgkurzbz.$semester.mb_strtolower($verband).$gruppe).'">
'.(!is_null($semester) && !empty($semester)?'<A class="Item" title="'.$anzahl_lvb.' '.$p->t('lvplan/studierende').'" href="mailto:'.$stgkurzbz.$semester.mb_strtolower($verband).$gruppe.'@'.DOMAIN .'">':'');
echo $db->convert_html_chars($stgkurzbz.'-'.$semester.$verband.$gruppe);
echo (!is_null($semester) && !empty($semester)?'</A>':'');
echo '
</td>
<td><A class="Item" title="'.$anzahl_grp.' Studierende" href="mailto:'.mb_strtolower($gruppe_kurzbz).'@'.DOMAIN.'">
'.$db->convert_html_chars($gruppe_kurzbz).'</A></td>
<td>'.$db->convert_html_chars($titel).'</td>
</tr>';
}
echo '</table><BR>';
}
// Reservierungen
if ($num_rows_repl>0)
{
echo '<h2>'.$p->t('lvplan/reservierungen').'</h2>';
echo '<table class="stdplan">';
echo '<tr><th>'.$p->t('global/titel').'</th><th>'.$p->t('lvplan/ort').'</th><th>'.$p->t('global/person').'</th><th>'.$p->t('global/beschreibung').'</th></tr>';
$i=0;
$ort = new ort();
while($row = $db->db_fetch_object($erg_repl))
{
$i++;
$titel=$row->titel;
$ortkurzbz=$row->ort_kurzbz;
$titelpre=$row->titelpre;
$titelpost=$row->titelpost;
$pers_vorname=$row->vorname;
$pers_nachname=$row->nachname;
$pers_email=$row->uid.'@'.DOMAIN;
$beschreibung=$row->beschreibung;
$ort->load($ortkurzbz);
echo '<tr class="liste'.($i%2).'">';
echo '<td >'.$db->convert_html_chars($titel).'</td>';
echo '<td>'.(!empty($ortkurzbz)?($ort->content_id!=''?'<a href="../../../cms/content.php?content_id='.$ort->content_id.'" target="_self" onClick="window.resizeTo(1200,880)">'.$db->convert_html_chars($ortkurzbz).'</a>':$db->convert_html_chars($ortkurzbz)):$db->convert_html_chars($ortkurzbz)).'</td>';
echo '<td ><A href="mailto:'.$pers_email.'">'.$db->convert_html_chars($titelpre.' '.$pers_vorname.' '.$pers_nachname.' '.$titelpost).'</A></td>';
echo '<td >'.$db->convert_html_chars($beschreibung).'</td></tr>';
}
echo '</table><br>';
}
echo '<P>'.$p->t('lvplan/fehlerUndFeedback').' <A class="Item" href="mailto:'.MAIL_LVPLAN.'">'.$p->t('lvplan/lvKoordinationsstelle').'</A>.</P>
</body></html>';
?>