diff --git a/cis/testtool/login.php b/cis/testtool/login.php index fac890bc8..f69065aa0 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -276,7 +276,15 @@ else //$prestudent_id=null; $ps=new prestudent(); $datum=date('Y-m-d'); - $ps->getPrestudentRT($datum); + // An der FHTW wird ein Bewerber nur einmal ausgegeben (1. Prio) falls es mehrere Bewerbungen gibt + if (CAMPUS_NAME == 'FH Technikum Wien') + { + $ps->getFirstPrioPrestudentRT($datum); + } + else + { + $ps->getPrestudentRT($datum); + } } @@ -491,7 +499,10 @@ if (isset($prestudent_id)) echo ''; $stg = new Studiengang($ps_obj->studiengang_kz); - if($ps_obj->lastStatus == "Interessent") + if($ps_obj->lastStatus == "Interessent" + || $ps_obj->lastStatus == "Bewerber" + || $ps_obj->lastStatus == "Wartender" + || $ps_obj->lastStatus == "Aufgenommener") { echo ''. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). ''; if($ps_obj->ausbildungssemester == '1') diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 4304e5341..923ca81be 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -420,6 +420,62 @@ class prestudent extends person return true; } + /** + * Laden aller Prestudenten, die an $datum zum Reihungstest geladen sind. + * Wenn es mehrere Bewerbungen für ein Person gibt, wird nur die höchste Prestudent_id zurückgeliefert + * @param string $datum Datum in der Form YYYY-MM-DD an dem der Reihungstest stattfindet + * @return true wenn erfolgreich, false im Fehlerfall + */ + public function getFirstPrioPrestudentRT($datum) + { + $sql_query='SELECT DISTINCT + ps.prestudent_id, + pers.vorname, pers.nachname, pers.person_id, pers.titelpre, + pers.titelpost, pers.gebdatum, + tbl_reihungstest.*, + ps.studiengang_kz as studiengang_kz + FROM + public.tbl_prestudent ps + JOIN public.tbl_person pers USING(person_id) + JOIN public.tbl_rt_person USING(person_id) + JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) + WHERE + tbl_reihungstest.datum='.$this->db_add_param($datum).' + AND tbl_rt_person.studienplan_id IN (SELECT studienplan_id FROM public.tbl_prestudentstatus WHERE prestudent_id=ps.prestudent_id) + AND EXISTS(SELECT * FROM public.tbl_prestudentstatus JOIN public.tbl_studiensemester USING(studiensemester_kurzbz) + WHERE prestudent_id=ps.prestudent_id AND tbl_studiensemester.ende>'.$this->db_add_param($datum).') + AND priorisierung = (SELECT priorisierung FROM public.tbl_prestudent + WHERE person_id = pers.person_id + AND get_rolle_prestudent (ps.prestudent_id,NULL) IN (\'Interessent\',\'Bewerber\',\'Wartender\',\'Aufgenommener\') + ORDER BY priorisierung ASC LIMIT 1) + ORDER BY nachname,vorname'; + + if(!$this->db_query($sql_query)) + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + + $this->num_rows=0; + + while($row = $this->db_fetch_object()) + { + $ps=new prestudent(); + $ps->prestudent_id = $row->prestudent_id; + $ps->person_id = $row->person_id; + $ps->reihungstest_id = $row->reihungstest_id; + $ps->titelpost = $row->titelpost; + $ps->titelpre = $row->titelpre; + $ps->nachname = $row->nachname; + $ps->vorname = $row->vorname; + $ps->gebdatum = $row->gebdatum; + $ps->studiengang_kz = $row->studiengang_kz; + $this->result[]=$ps; + $this->num_rows++; + } + return true; + } + /** * Laedt über einen Prestudenten alle anderen Prestudenten einer Person, die aktuell an STG interessiert sind. * @integer $prestudent_id Prestudent ID, über die alle weiteren Prestudenten ermittelt werden sollen. diff --git a/vilesci/stammdaten/auswertung_fhtw.php b/vilesci/stammdaten/auswertung_fhtw.php index a47230087..e38be43bf 100644 --- a/vilesci/stammdaten/auswertung_fhtw.php +++ b/vilesci/stammdaten/auswertung_fhtw.php @@ -562,10 +562,9 @@ if ($testende) '; $mailtext .= 'Der Reihungstest vom ' . $datum_obj->convertISODate($reihungstest->datum) . ' um ' . $datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i') . ' Uhr ist beendet.'; - $mailtext .= '
Es haben '.$anzahl.' Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen'; - $mailtext .= '
Sie finden die Auswertung unter dem folgendem Link:'; + $mailtext .= '
Es haben '.$anzahl.' Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen.'; $mailtext .= '

Link zur Auswertung'; - + $mailtext .= '

Link zur Pivot-Tabelle für die Priorisierung'; $mailtext .= ' @@ -643,7 +642,7 @@ if (isset($_POST['method']) && $_POST['method'] == 'addPerson') if ($row->bewerbung_abgeschicktamum != '' && $row->bestaetigtam != '' && $row->studienplan_id != '') { $studienplan = $row->studienplan_id; - $break; + break; } } @@ -1154,7 +1153,7 @@ if (isset($_REQUEST['reihungstest'])) JOIN PUBLIC.tbl_person ON (tbl_rt_person.person_id = tbl_person.person_id) JOIN PUBLIC.tbl_prestudent ps ON (ps.person_id = tbl_rt_person.person_id) JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.rt_id = rt.reihungstest_id) - JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id) + JOIN PUBLIC.tbl_prestudentstatus pss USING (prestudent_id) JOIN public.tbl_studiengang ON (ps.studiengang_kz = tbl_studiengang.studiengang_kz) LEFT JOIN bis.tbl_zgv ON (ps.zgv_code = tbl_zgv.zgv_code) LEFT JOIN PUBLIC.tbl_ort ON (tbl_rt_person.ort_kurzbz = tbl_ort.ort_kurzbz) @@ -1196,6 +1195,20 @@ if (isset($_REQUEST['reihungstest'])) { $query .= " AND ps.prestudent_id=" . $db->db_add_param($prestudent_id, FHC_INTEGER); } + if ($orgform_kurzbz != '' && $studiengang != '') + { + $query .= " AND tbl_ablauf.studienplan_id=( + SELECT studienplan_id FROM lehre.tbl_studienplan + JOIN lehre.tbl_studienordnung USING (studienordnung_id) + WHERE studiengang_kz=".$db->db_add_param($studiengang, FHC_INTEGER)." + AND tbl_studienplan.orgform_kurzbz = ".$db->db_add_param($orgform_kurzbz)." + AND tbl_studienplan.aktiv + AND tbl_studienordnung.status_kurzbz='approved' + AND ((SELECT start FROM public.tbl_studiensemester WHERE studiensemester_kurzbz=tbl_studienordnung.gueltigvon) <= now() + OR tbl_studienordnung.gueltigvon IS NULL) + AND ((SELECT ende FROM public.tbl_studiensemester WHERE studiensemester_kurzbz=tbl_studienordnung.gueltigbis) >= now() OR tbl_studienordnung.gueltigbis IS NULL) + ORDER BY studienplan_id DESC LIMIT 1)"; + } //$query .= " AND nachname='Al-Mafrachi'"; $query .= " ORDER BY tbl_ablauf.studiengang_kz, tbl_ablauf.semester, reihung"; @@ -1403,6 +1416,9 @@ if (isset($_REQUEST['reihungstest'])) } if ($orgform_kurzbz != '') { + //$query .= " AND tbl_prestudentstatus.orgform_kurzbz=" . $db->db_add_param($orgform_kurzbz); + //$query .= " AND tbl_ablauf.studienplan_id = tbl_prestudentstatus.studienplan_id"; + //$query .= " AND tbl_ablauf.studienplan_id = 5"; $query .= " AND tbl_studienplan.orgform_kurzbz=" . $db->db_add_param($orgform_kurzbz); } //$query .= " AND nachname='Al-Mafrachi'"; @@ -1410,6 +1426,7 @@ if (isset($_REQUEST['reihungstest'])) vorname, person_id ";/*print_r($query);*/ + //echo '
', var_dump($query), '
'; if (!($result = $db->db_query($query))) { die($db->db_last_error());