From dbf644c9edf3693ba906647a85d80c7c16d4a2ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 29 Oct 2012 09:15:12 +0000 Subject: [PATCH] Fehler bei der Detailanzeige von Spezialgruppen und Reservierungen behoben --- cis/private/lvplan/stpl_detail.php | 240 ++++++++++++++++++----------- 1 file changed, 149 insertions(+), 91 deletions(-) diff --git a/cis/private/lvplan/stpl_detail.php b/cis/private/lvplan/stpl_detail.php index d251b2746..dc31c7b54 100644 --- a/cis/private/lvplan/stpl_detail.php +++ b/cis/private/lvplan/stpl_detail.php @@ -81,30 +81,60 @@ if(!$datum_obj->checkDatum($datum)) $stsem = getStudiensemesterFromDatum($datum); //Stundenplan -$sql_query='SELECT campus.vw_stundenplan.*, tbl_lehrfach.bezeichnung, vw_mitarbeiter.titelpre, vw_mitarbeiter.titelpost, vw_mitarbeiter.nachname, vw_mitarbeiter.vorname'; -$sql_query.=", (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='".addslashes($stsem)."') as anzahl_lvb - , (SELECT count(*) FROM public.tbl_benutzergruppe - WHERE gruppe_kurzbz=vw_stundenplan.gruppe_kurzbz AND studiensemester_kurzbz='".addslashes($stsem)."') as anzahl_grp"; -$sql_query.=' FROM (campus.vw_stundenplan JOIN lehre.tbl_lehrfach USING (lehrfach_id)) JOIN campus.vw_mitarbeiter USING (uid)'; -$sql_query.=" WHERE datum='".addslashes($datum)."' AND stunde='".addslashes($stunde)."'"; +$sql_query=" +SELECT + campus.vw_stundenplan.*, tbl_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_lehrfach USING (lehrfach_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='".addslashes($pers_uid)."' "; +{ + $sql_query.=" AND vw_stundenplan.uid=".$db->db_add_param($pers_uid); +} elseif ($type=='ort') - $sql_query.=" AND vw_stundenplan.ort_kurzbz='".addslashes($ort_kurzbz)."' "; + $sql_query.=" AND vw_stundenplan.ort_kurzbz=".$db->db_add_param($ort_kurzbz); else { if($stg_kz=='' || $sem=='') die('Fehlerhafte Parameteruebergabe'); - $sql_query.=" AND vw_stundenplan.studiengang_kz='".addslashes($stg_kz)."' AND (vw_stundenplan.semester='".addslashes($sem)."'"; - if ($type=='student') - $sql_query.=' OR vw_stundenplan.semester='.($sem+1); - $sql_query.=')'; - + 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 /* @@ -117,101 +147,129 @@ else $sql_query.=' ORDER BY unr ASC, stg_kurzbz, vw_stundenplan.semester, verband, gruppe, gruppe_kurzbz LIMIT 100'; //echo $sql_query.'
'; -$erg_stpl=$db->db_query($sql_query); -$num_rows_stpl=$db->db_num_rows($erg_stpl); + +$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='".addslashes($datum)."' AND stunde='".addslashes($stunde)."'"; -if (isset($ort_kurzbz)) - $sql_query.=" AND vw_reservierung.ort_kurzbz='".addslashes($ort_kurzbz)."'"; +$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='".addslashes($pers_uid)."' "; + $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='".addslashes($stg_kz)."' AND (semester='".addslashes($sem)."' OR semester=0 OR semester IS NULL)"; +{ + $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.'
'; -$erg_repl=$db->db_query($sql_query); -$num_rows_repl=$db->db_num_rows($erg_repl); -?> - +$erg_repl = $db->db_query($sql_query); +$num_rows_repl = $db->db_num_rows($erg_repl); + +echo ' - <?php echo $p->t('lvplan/lehrveranstaltungsplanDetails');?> + '.$p->t('lvplan/lehrveranstaltungsplanDetails').' -

t('lvplan/lehrveranstaltungsplan');?> ⇒ t('abgabetool/details');?>

-t('abgabetool/datum');?>:
-t('global/stunde').': '.htmlentities($stunde); ?>

+

'.$p->t('lvplan/lehrveranstaltungsplan').' ⇒ '.$p->t('abgabetool/details').'

+'.$p->t('abgabetool/datum').': '.htmlentities($datum_obj->formatDatum($datum, 'd.m.Y')).'
+'.$p->t('global/stunde').': '.htmlentities($stunde).'

+'; - -0) -echo ''; -$ort = new ort(); -for ($i=0; $i<$num_rows_stpl; $i++) { - $unr=$db->db_result($erg_stpl,$i,"unr"); - $ortkurzbz=$db->db_result($erg_stpl,$i,"ort_kurzbz"); - $lehrfachkurzbz=$db->db_result($erg_stpl,$i,"lehrfach"); - $bezeichnung=$db->db_result($erg_stpl,$i,"bezeichnung"); - $pers_kurzbz=$db->db_result($erg_stpl,$i,"lektor"); - $titelpre=$db->db_result($erg_stpl,$i,"titelpre"); - $titelpost=$db->db_result($erg_stpl,$i,"titelpost"); - $pers_vorname=$db->db_result($erg_stpl,$i,"vorname"); - $pers_nachname=$db->db_result($erg_stpl,$i,"nachname"); - $pers_email=$db->db_result($erg_stpl,$i,"uid").'@'.DOMAIN; - $stgkurzbz=strtoupper(trim($db->db_result($erg_stpl,$i,"stg_typ").$db->db_result($erg_stpl,$i,"stg_kurzbz"))); - $semester=trim($db->db_result($erg_stpl,$i,"semester")); - $verband=trim($db->db_result($erg_stpl,$i,"verband")); - $gruppe=trim($db->db_result($erg_stpl,$i,"gruppe")); - $gruppe_kurzbz=trim($db->db_result($erg_stpl,$i,"gruppe_kurzbz")); - $anzahl_lvb=trim($db->db_result($erg_stpl,$i,"anzahl_lvb")); - $anzahl_grp=trim($db->db_result($erg_stpl,$i,"anzahl_grp")); - $titel=trim($db->db_result($erg_stpl,$i,"titel")); - $gesamtanzahl = ($anzahl_grp!=0?$anzahl_grp:$anzahl_lvb); - $ort->load($ortkurzbz); - ?> - - - - - - + echo ' +
'.$p->t('lvplan/unr').''.$p->t('lvaliste/lektor').''.$p->t('lvplan/ort').''.$p->t('lvaliste/lehrfach').''.$p->t('global/bezeichnung').''.$p->t('global/verband').''.$p->t('lvplan/einheit').''.$p->t('lvplan/info').'
'.$ortkurzbz.'':$ortkurzbz); ?>
+ + + + + + + + + + '; - - - - - - - db_fetch_object($erg_stpl)) + { + $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 ' + + + + + + + + + + + + '; + } + echo '
'.$p->t('lvplan/unr').''.$p->t('lvaliste/lektor').''.$p->t('lvplan/ort').''.$p->t('lvaliste/lehrfach').''.$p->t('global/bezeichnung').''.$p->t('global/verband').''.$p->t('lvplan/einheit').''.$p->t('lvplan/info').'
- t('lvplan/studierende').'" href="mailto:'.$stgkurzbz.$semester.mb_strtolower($verband).$gruppe.'@'.DOMAIN .'">':''); ?> - - ':''); ?> - -
'.$unr.''.$titelpre.' '.$pers_vorname.' '.$pers_nachname.' '.$titelpost.''.(!empty($ortkurzbz)?''.$ortkurzbz.'':$ortkurzbz).''.$lehrfachkurzbz.''.$bezeichnung.' + '.(!is_null($semester) && !empty($semester)?'':''); + echo $stgkurzbz.'-'.$semester.$verband.$gruppe; + echo (!is_null($semester) && !empty($semester)?'':''); + echo ' + + '.$gruppe_kurzbz.''.$titel.'

'; } -?> -
-0) { echo '

'.$p->t('lvplan/reservierungen').'

'; echo ''; echo ''; - for ($i=0; $i<$num_rows_repl; $i++) + while($row = $db->db_fetch_object($erg_repl)) { - $titel=$db->db_result($erg_repl,$i,"titel"); - $ortkurzbz=$db->db_result($erg_repl,$i,"ort_kurzbz"); - $titelpre=$db->db_result($erg_repl,$i,"titelpre"); - $titelpost=$db->db_result($erg_repl,$i,"titelpost"); - $pers_vorname=$db->db_result($erg_repl,$i,"vorname"); - $pers_nachname=$db->db_result($erg_repl,$i,"nachname"); - $pers_email=$db->db_result($erg_repl,$i,"uid").'@'.DOMAIN; - $beschreibung=$db->db_result($erg_repl,$i,"beschreibung"); + $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; + echo ''; echo ''; echo ''; @@ -220,6 +278,6 @@ if ($num_rows_repl>0) } echo '
'.$p->t('global/titel').''.$p->t('lvplan/ort').''.$p->t('global/person').''.$p->t('global/beschreibung').'
'.$titel.''.(!empty($ortkurzbz)?''.$ortkurzbz.'':$ortkurzbz).'
'; } -?> -

t('lvplan/fehlerUndFeedback')?> t('lvplan/lvKoordinationsstelle')?>.

- +echo '

'.$p->t('lvplan/fehlerUndFeedback').' '.$p->t('lvplan/lvKoordinationsstelle').'.

+'; +?> \ No newline at end of file