Testtool Login shows applicants only once (Only application of first priority) -> Only for FHTW!

New function getFirstPrioPrestudentRT in prestudent.class.php
Link to pivot-table in mail to assistants
auswertung_fhtw berücksichtigt nun orgformen (studienpläne) aus tbl_ablauf
This commit is contained in:
Manfred Kindl
2020-02-24 18:43:38 +01:00
parent 96150dd5a2
commit 8c30666043
3 changed files with 91 additions and 7 deletions
+13 -2
View File
@@ -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 '<tr>';
$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 '<td style="width: 50%;">'. $ps_obj->typ_bz .' '. ($sprache_user == 'English' ? $stg->english : $stg->bezeichnung). '</td>';
if($ps_obj->ausbildungssemester == '1')
+56
View File
@@ -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.
+22 -5
View File
@@ -562,10 +562,9 @@ if ($testende)
<tr>
<td style="padding-left: 8%; padding-right: 8%; padding-top: 5%; padding-bottom: 5%; font-family: verdana, sans-serif; font-size: 1em; border-bottom: 2px solid #000000;">';
$mailtext .= 'Der Reihungstest vom ' . $datum_obj->convertISODate($reihungstest->datum) . ' um ' . $datum_obj->formatDatum($reihungstest->uhrzeit, 'H:i') . ' Uhr ist beendet.';
$mailtext .= '<br> Es haben <b>'.$anzahl.'</b> Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen';
$mailtext .= '<br> Sie finden die Auswertung unter dem folgendem Link:';
$mailtext .= '<br> Es haben <b>'.$anzahl.'</b> Person(en) aus dem Studiengang '.$stg->kuerzel.'-'.$orgForm.' teilgenommen.';
$mailtext .= '<br><br><a href="' . APP_ROOT . 'vilesci/stammdaten/auswertung_fhtw.php?reihungstest=' . $reihungstest->reihungstest_id . '&studiengang=' . $studiengang_kz . '&orgform_kurzbz=' . $orgForm . '">Link zur Auswertung</a>';
$mailtext .= '<br><br><a href="' . APP_ROOT . 'addons/reports/cis/vorschau.php?statistik_kurzbz=BewerberReihungstestPriorisierung&debug=true">Link zur Pivot-Tabelle für die Priorisierung</a>';
$mailtext .= '</td>
</tr>
<tr>
@@ -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 '<pre>', var_dump($query), '</pre>';
if (!($result = $db->db_query($query)))
{
die($db->db_last_error());