Reihungstestverwaltung BugFix Doppelte PreStudenten

This commit is contained in:
Manfred Kindl
2019-04-26 17:20:33 +02:00
parent df73c0456e
commit 484a53a37c
+68 -35
View File
@@ -2547,59 +2547,92 @@ if($reihungstest_id!='')
{
//Liste der Interessenten die zum Reihungstest angemeldet sind
$qry = "
SELECT DISTINCT
rt_person_id,
SELECT DISTINCT rt_person_id,
rt_id,
'0' as prestudent_id,
'0' AS prestudent_id,
tbl_rt_person.person_id,
vorname,
nachname,
ort_kurzbz,
studienplan_id,
studiengang_kz,
tbl_rt_person.ort_kurzbz,
tbl_rt_person.studienplan_id,
tbl_prestudent.studiengang_kz,
gebdatum,
geschlecht,
punkte
,(
punkte,
(
SELECT kontakt
FROM tbl_kontakt
WHERE kontakttyp = 'email'
AND person_id = tbl_rt_person.person_id
AND zustellung = true LIMIT 1
) AS email
,(
) AS email,
(
SELECT ausbildungssemester
FROM public.tbl_prestudentstatus
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND datum = (
SELECT MAX(datum)
FROM public.tbl_prestudentstatus
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS ausbildungssemester
,(
SELECT orgform_kurzbz
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND datum = (
SELECT MAX(datum)
FROM public.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS orgform_kurzbz
FROM
public.tbl_rt_person
JOIN public.tbl_person USING (person_id)
JOIN public.tbl_prestudent ON (tbl_rt_person.person_id=tbl_prestudent.person_id)
WHERE
rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)."
AND tbl_rt_person.studienplan_id IN (
SELECT studienplan_id
FROM public.tbl_prestudentstatus
WHERE prestudent_id=tbl_prestudent.prestudent_id)
ORDER BY ort_kurzbz NULLS FIRST,nachname,vorname";
) AS ausbildungssemester,
(
SELECT orgform_kurzbz
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND datum = (
SELECT MAX(datum)
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Interessent'
) LIMIT 1
) AS orgform_kurzbz
FROM PUBLIC.tbl_rt_person
JOIN PUBLIC.tbl_person USING (person_id)
JOIN PUBLIC.tbl_reihungstest rt ON (rt_id = rt.reihungstest_id)
JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
WHERE rt_id = ".$db->db_add_param($reihungstest_id, FHC_INTEGER)."
AND tbl_rt_person.studienplan_id IN (
SELECT studienplan_id
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
)
AND tbl_prestudentstatus.studiensemester_kurzbz IN (
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
UNION
(
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
WHERE ende <= (
SELECT start
FROM PUBLIC.tbl_studiensemester
WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
)
ORDER BY ende DESC LIMIT 1
)
UNION
(
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
WHERE start >= (
SELECT ende
FROM PUBLIC.tbl_studiensemester
WHERE studiensemester_kurzbz = rt.studiensemester_kurzbz
)
ORDER BY start ASC LIMIT 1
)
)
ORDER BY ort_kurzbz NULLS FIRST,
nachname,
vorname";
$mailto = '';
$result_arr = array();