diff --git a/vilesci/personen/incoming_lehrveranstaltungen.php b/vilesci/personen/incoming_lehrveranstaltungen.php index 70523a9b3..b1b6fe76d 100644 --- a/vilesci/personen/incoming_lehrveranstaltungen.php +++ b/vilesci/personen/incoming_lehrveranstaltungen.php @@ -52,6 +52,12 @@ $stsem->getNextStudiensemester(); $stg = new studiengang(); $stg->getAll(); +$message = ''; + +$filter_url = ''; +if (isset($_GET['filter']) || isset($_GET['unterrichtssprache']) || isset($_GET['studiengang'])) + $filter_url = 'filter='.$_GET['filter'].'&unterrichtssprache='.$_GET['unterrichtssprache'].'&studiengang='.$_GET['studiengang'].'&go=Filter&'; + ?> @@ -66,14 +72,20 @@ $stg->getAll(); $(document).ready(function() { $("#t1").tablesorter( - { - sortList: [[0,0],[2,0],[3,0],[4,0]], - widgets: ["zebra"] - }); + { + sortList: [[1,0],[3,0],[4,0],[5,0]], + widgets: ["zebra"], + headers: {10: {sorter: false}, 11: {sorter: false}} + }); + $("#t2").tablesorter( + { + sortList: [[0,0],[1,0]], + widgets: ["zebra"] + }); }); function conf(val1) { - return confirm("Incomingplätze von '"+val1+"' auf 0 setzen?"); + return confirm("Incomingplätze der LV '"+val1+"' auf 0 setzen?"); } @@ -96,88 +108,101 @@ if($method=="lehrveranstaltungen") $lehrveranstaltung->incoming = 0; if($lehrveranstaltung->save()) - echo $p->t('global/erfolgreichgespeichert'); + $message = $p->t('global/erfolgreichgespeichert'); else - echo $p->t('global/fehleraufgetreten'); + $message = $p->t('global/fehleraufgetreten'); } // Übersicht aller LVs echo '

Lehrveranstaltungs-Verwaltung

'; echo ' -
- - - + +
'.$p->t('incoming/filter').': - + + + + + + + + - -
'.$p->t('incoming/studentenImWS').'
'.$p->t('incoming/studentenImSS').'
'.$p->t('incoming/filter').': +
'; - echo $p->t('courseInformation/unterrichtssprache').':
'; - echo $p->t('global/studiengang').':
'; + echo $p->t('courseInformation/unterrichtssprache').':
'; + echo $p->t('global/studiengang').':'; - echo '
- - - + } + + echo'

'; + echo ''; + //echo ''; + echo ''; + echo '
'; // Filter für Semester setzen @@ -192,114 +217,344 @@ if($method=="lehrveranstaltungen") if(isset($_GET['unterrichtssprache']) && $_GET['unterrichtssprache']!='') $filterqry .= " AND tbl_lehrveranstaltung.sprache='".$_GET['unterrichtssprache']."'"; - //Uebersicht LVs - $qry = "SELECT - tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.ects, - tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, - tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.incoming, tbl_lehrveranstaltung.orgform_kurzbz, - ( - Select count(*) - FROM ( - SELECT - person_id - FROM - campus.vw_student_lehrveranstaltung - JOIN public.tbl_benutzer using(uid) - JOIN public.tbl_student ON(uid=student_uid) - JOIN public.tbl_prestudentstatus USING(prestudent_id) + /* Erklaerung der Datumszeitraeume ab Zeile 857: + * |=============== Studiensemester ===============| + * |--------------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend innerhalb SS + * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS + * |----------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend außerhalb SS + * |---------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend außerhalb SS + * |------------------------------| Incoming ist innerhalb oder GENAU SS da + * |------------------------------------------------------| Incoming ist VOR SS-Anfang und NACH SS-Ende da, jedoch ueberwiegend ueberlappend mit SS + * ------------------------------------------------------------ Von und Bis ist NULL + * -------------------| Von ist NULL und bis innerhalb SS + * |--------------------------- Bis ist NULL und von innerhalb SS + */ + + $studiensemester_array = array(); + $studiensemester = new studiensemester(); + $studiensemester_array[] = $studiensemester->getakt(); + + $studiensemester->getFutureStudiensemester('',2); + foreach ($studiensemester->studiensemester AS $row) + $studiensemester_array[] = $row->studiensemester_kurzbz; + + if(isset($_GET['go'])) + { + // QUERY liefert LVs aus den gültigen Studienordnungen UND jene mit Anmeldungen, auch wenn Incomingplätze 0 sind oder die LV in keinem gültigen Studienplan liegt + $qry = "SELECT + tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.ects, + tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, + tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.incoming, tbl_lehrveranstaltung.orgform_kurzbz, + ( + Select count(*) + FROM ( + SELECT + person_id + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer using(uid) + JOIN public.tbl_student ON(uid=student_uid) + JOIN public.tbl_prestudentstatus USING(prestudent_id) + WHERE + lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') + AND + tbl_prestudentstatus.status_kurzbz='Incoming' + AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' + UNION + SELECT + person_id + FROM + public.tbl_preincoming_lehrveranstaltung + JOIN public.tbl_preincoming using(preincoming_id) + WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + ( + (bis - '$stsem->start' > '$stsem->start' - von) OR + ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR + (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR + ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR + (von >= '$stsem->start' AND bis <= '$stsem->ende') OR + (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (von IS NULL AND bis IS NULL) OR + (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR + (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + ) + AND aktiv = true + )a ) as anzahl + FROM + lehre.tbl_lehrveranstaltung + JOIN + public.tbl_studiengang USING(studiengang_kz) WHERE - lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - AND - lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit - WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - AND - tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') - AND - tbl_prestudentstatus.status_kurzbz='Incoming' - AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' + tbl_lehrveranstaltung.incoming>0 AND + tbl_lehrveranstaltung.aktiv AND + tbl_lehrveranstaltung.lehre AND + tbl_lehrveranstaltung.lehrveranstaltung_id IN + ( + SELECT lehrveranstaltung_id FROM lehre.tbl_studienplan_lehrveranstaltung + JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN lehre.tbl_studienordnung USING (studienordnung_id) + JOIN lehre.tbl_studienplan_semester USING (studienplan_id) + WHERE tbl_studienordnung.status_kurzbz='approved' + AND tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id + AND tbl_studienplan_semester.studiensemester_kurzbz IN ('".implode("','", $studiensemester_array)."') + AND tbl_studienplan_semester.semester=tbl_lehrveranstaltung.semester + ) + AND ((tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000) OR tbl_lehrveranstaltung.studiengang_kz=10006)"; + + if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; + + $qry .= " AND tbl_studiengang.aktiv ".$filterqry; + + $qry .= " UNION - SELECT - person_id - FROM - public.tbl_preincoming_lehrveranstaltung - JOIN public.tbl_preincoming using(preincoming_id) - WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - AND - (von is null OR von <= '$stsem->start') - AND - (bis is null OR bis >= (DATE '$stsem->ende')) - AND aktiv = true - )a ) as anzahl - FROM - lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - /*tbl_lehrveranstaltung.incoming>0 AND*/ - tbl_lehrveranstaltung.aktiv AND - tbl_lehrveranstaltung.lehre - AND tbl_lehrveranstaltung.studiengang_kz>0 AND tbl_lehrveranstaltung.studiengang_kz<10000"; - - if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') - $qry .= "AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; - - $qry .= "AND tbl_studiengang.aktiv ".$filterqry." order by studiengang_kz - "; - echo ' + SELECT + tbl_lehrveranstaltung.lehrveranstaltung_id, tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.ects, + tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.sprache, + tbl_lehrveranstaltung.bezeichnung_english, tbl_lehrveranstaltung.incoming, tbl_lehrveranstaltung.orgform_kurzbz, + ( + Select count(*) + FROM ( + SELECT + person_id + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer using(uid) + JOIN public.tbl_student ON(uid=student_uid) + JOIN public.tbl_prestudentstatus USING(prestudent_id) + WHERE + lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') + AND + tbl_prestudentstatus.status_kurzbz='Incoming' + AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' + UNION + SELECT + person_id + FROM + public.tbl_preincoming_lehrveranstaltung + JOIN public.tbl_preincoming using(preincoming_id) + WHERE lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id + AND + ( + (bis - '$stsem->start' > '$stsem->start' - von) OR + ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR + (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR + ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR + (von >= '$stsem->start' AND bis <= '$stsem->ende') OR + (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (von IS NULL AND bis IS NULL) OR + (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR + (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + ) + AND aktiv = true + )a ) as anzahl + FROM + public.tbl_preincoming_lehrveranstaltung + JOIN public.tbl_preincoming using(preincoming_id) + JOIN lehre.tbl_lehrveranstaltung USING (lehrveranstaltung_id) + JOIN public.tbl_studiengang USING(studiengang_kz) + WHERE + ( + (bis - '$stsem->start' > '$stsem->start' - von) OR + ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR + (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR + ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR + (von >= '$stsem->start' AND bis <= '$stsem->ende') OR + (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (von IS NULL AND bis IS NULL) OR + (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR + (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + ) + AND tbl_preincoming.aktiv = true + "; + + if (isset($_GET['studiengang']) && $_GET['studiengang'] !='') + $qry .= " AND tbl_lehrveranstaltung.studiengang_kz=".$_GET['studiengang']; + + $qry .= " AND tbl_studiengang.aktiv ".$filterqry." order by studiengang_kz"; + + if($result = $db->db_query($qry)) + { + if ($db->db_num_rows($result)>0) + { + echo '
'.$message.'
'; + echo '

'.$p->t('incoming/tabelleSortierinformation').'

'; + echo '
+ + + + + + + + + + + + + + + + + + '; + while($row = $db->db_fetch_object($result)) + { + $freieplaetze = $row->incoming - $row->anzahl; + $style = ''; + + $studiengang = new studiengang(); + $studiengang->load($row->studiengang_kz); + $studiengang_language = ($sprache == 'German') ? $studiengang->bezeichnung : $studiengang->english; + $typ = $studiengang->typ; + if ($studiengang->typ == 'b') + $typ = 'Bachelor'; + else if ($studiengang->typ == 'm') + $typ = 'Master'; + else + $typ = '-'; + echo ''; + + if ($freieplaetze<=0) + $style = 'style="background-color: #FF8888"'; + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + } + echo '
LV-ID'.$p->t('global/studiengang').''.$p->t('abgabetool/typ').''.$p->t('incoming/orgform').''.$p->t('global/semester').''.$p->t('global/lehrveranstaltung').''.$p->t('global/lehrveranstaltung').' '.$p->t('global/englisch').''.$p->t('incoming/ects').''.$p->t('courseInformation/unterrichtssprache').''.$p->t('incoming/lvInfo').''.$p->t('incoming/freieplätze').'
',$row->lehrveranstaltung_id,'',$studiengang_language,'',$typ,'',$row->orgform_kurzbz,'',$row->semester,'',$row->bezeichnung,'',$row->bezeichnung_english,'',$row->ects,'',($row->sprache=='German'?$p->t("global/deutsch"):$p->t("global/englisch")),' + '.$p->t("global/deutsch").'  + '.$p->t("global/englisch").' + ',($freieplaetze<$row->incoming?''.$freieplaetze.' ('.$p->t('incoming/von').' '.$row->incoming.')':$freieplaetze.' ('.$p->t('incoming/von').' '.$row->incoming.')').'AnmeldungenIncomingplätze auf 0
'; + } + else + echo '
'.$p->t('incoming/derzeitKeineLehrveranstaltungen').'
'; + } + } + else + echo '
'.$p->t('incoming/waehlenSieAusDenOptionen').'
'; + echo ''; +} +elseif($method=="anmeldungen") +{ + // Übersicht aller LVs + echo '

Übersicht Anmeldungen

'; + + // Filter für Semester setzen + + + //Uebersicht LVs + /* Erklaerung der Datumszeitraeume + * |=============== Studiensemester ===============| + * |--------------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend innerhalb SS + * |--------------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend innerhalb SS + * |----------| Incoming beginnt vor SS-Beginn und endet VOR SS-Ende jedoch ueberwiegend außerhalb SS + * |---------| Incoming beginnt VOR SS-Ende und endet NACH SS-Ende, jedoch ueberwiegend außerhalb SS + * |------------------------------| Incoming ist innerhalb oder GENAU SS da + * |------------------------------------------------------| Incoming ist VOR SS-Anfang und NACH SS-Ende da, jedoch ueberwiegend ueberlappend mit SS + * ------------------------------------------------------------ Von und Bis ist NULL + * -------------------| Von ist NULL und bis innerhalb SS + * |--------------------------- Bis ist NULL und von innerhalb SS + */ + if (isset($_GET['id'])) + { + $id = $db->db_add_param($_GET['id'], FHC_INTEGER, false); + $qry = " SELECT + nachname, vorname + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer using(uid) + JOIN public.tbl_student ON(uid=student_uid) + JOIN public.tbl_prestudentstatus USING(prestudent_id) + JOIN public.tbl_person USING(person_id) + WHERE + lehrveranstaltung_id=".$id." + AND + lehreinheit_id in (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id=".$id." + AND + tbl_lehreinheit.studiensemester_kurzbz='$stsem->studiensemester_kurzbz') + AND + tbl_prestudentstatus.status_kurzbz='Incoming' + AND tbl_prestudentstatus.studiensemester_kurzbz='$stsem->studiensemester_kurzbz' + UNION + SELECT + nachname, vorname + FROM + public.tbl_preincoming_lehrveranstaltung + JOIN public.tbl_preincoming using(preincoming_id) + JOIN public.tbl_person USING(person_id) + WHERE lehrveranstaltung_id=".$id." + AND + ( + (bis - '$stsem->start' > '$stsem->start' - von) OR + ('$stsem->start' <= von AND bis >= '$stsem->ende' AND '$stsem->ende' - von > bis - '$stsem->ende') OR + (bis <= '$stsem->ende' AND bis >= '$stsem->start' AND von < '$stsem->start') OR + ('$stsem->start' <= von AND von < '$stsem->ende' AND bis > '$stsem->ende') OR + (von >= '$stsem->start' AND bis <= '$stsem->ende') OR + (von <= '$stsem->start' AND bis >= '$stsem->ende') OR + (von IS NULL AND bis IS NULL) OR + (von IS NULL AND bis <= '$stsem->ende' AND bis > '$stsem->start') OR + (bis IS NULL AND von < '$stsem->ende' AND von >= '$stsem->start') + ) + AND tbl_preincoming.aktiv = true"; + + + if($result = $db->db_query($qry)) + { + if ($db->db_num_rows($result)>0) + { + echo ' - - - - - - - - - - - + + '; - if($result = $db->db_query($qry)) - { - while($row = $db->db_fetch_object($result)) - { - $freieplaetze = $row->incoming - $row->anzahl; - - $studiengang = new studiengang(); - $studiengang->load($row->studiengang_kz); - $studiengang_language = ($sprache == 'German') ? $studiengang->bezeichnung : $studiengang->english; - $typ = $studiengang->typ; - $style=''; - if ($row->incoming=='0') - $style = 'style="color:grey"'; - if ($studiengang->typ == 'b') - $typ = 'BA'; - else if ($studiengang->typ == 'm') - $typ = 'MA'; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - + while($row = $db->db_fetch_object($result)) + { + + echo ''; + echo ''; + echo ''; + echo ''; + + } + echo '
'.$p->t('global/studiengang').''.$p->t('abgabetool/typ').''.$p->t('incoming/orgform').''.$p->t('global/semester').''.$p->t('global/lehrveranstaltung').''.$p->t('global/lehrveranstaltung').' '.$p->t('global/englisch').''.$p->t('incoming/ects').''.$p->t('courseInformation/unterrichtssprache').'Info'.$p->t('incoming/freieplätze').''.$p->t('global/nachname').''.$p->t('global/vorname').'
',$studiengang_language,'',$typ,'',$row->orgform_kurzbz,'',$row->semester,'',$row->bezeichnung,'',$row->bezeichnung_english,'',$row->ects,'',$row->sprache,' - Deutsch  - Englisch - ',($freieplaetze<$row->incoming?''.$freieplaetze.'/'.$row->incoming.'':$freieplaetze.'/'.$row->incoming),'Plätze auf 0 setzen
',$row->nachname,'',$row->vorname,'
'; } + else + echo '
Keine Anmeldungen gefunden
'; } - echo ''; } + else + '
Es wurde keine Lehrveranstaltungs-ID übergeben
'; +} ?> \ No newline at end of file