Compare commits

...

3 Commits

Author SHA1 Message Date
ma0048 d86ef10d45 -fixed merge 2023-08-08 09:30:05 +02:00
ma0068 2e103ccdd8 merge master into feature-3379/rt_uebersicht_zeigt_abgewiesene_an 2022-09-06 10:01:18 +02:00
ma0048 3354634b97 abfragen bzgl rt gleichgezogen
abegewiesene vor dem rt werden nicht mehr angezeigt
2021-11-23 15:01:48 +01:00
4 changed files with 572 additions and 281 deletions
@@ -39,9 +39,66 @@
oeffentlich, studiensemester_kurzbz, anmeldefrist,
(SELECT count(*)
FROM public.tbl_rt_person
WHERE rt_id=tbl_reihungstest.reihungstest_id
(
SELECT count(DISTINCT(tbl_rt_person.rt_person_id))
FROM public.tbl_rt_person
JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.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 tbl_rt_person.rt_id = tbl_reihungstest.reihungstest_id
AND CASE WHEN
(
get_rolle_prestudent (tbl_prestudent.prestudent_id, null) IN ('Abgewiesener')
AND
rt.datum > (
SELECT MAX(insertamum)
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Abgewiesener'
LIMIT 1
)
)
THEN
false
ELSE
true
END
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
)
)
) as anzahl_angemeldet,
/* Bezeichnung der Studiengaenge der zugeordneten Personen*/
+175 -11
View File
@@ -377,8 +377,64 @@ class reihungstest extends basis_db
$qry = "
SELECT *,
(
SELECT count(*) FROM public.tbl_prestudent
WHERE reihungstest_id=a.reihungstest_id
SELECT count(DISTINCT(tbl_rt_person.rt_person_id))
FROM public.tbl_rt_person
JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
WHERE tbl_rt_person.rt_id = a.reihungstest_id
AND CASE WHEN
(
get_rolle_prestudent (tbl_prestudent.prestudent_id, a.studiensemester_kurzbz) IN ('Abgewiesener')
AND
a.datum > (
SELECT MAX(insertamum)
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Abgewiesener'
LIMIT 1
)
)
THEN
false
ELSE
true
END
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 = a.studiensemester_kurzbz
UNION
(
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
WHERE ende <= (
SELECT start
FROM PUBLIC.tbl_studiensemester
WHERE studiensemester_kurzbz = a.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 = a.studiensemester_kurzbz
)
ORDER BY start ASC LIMIT 1
)
)
) as angemeldete_teilnehmer
FROM
(
@@ -504,13 +560,65 @@ class reihungstest extends basis_db
*/
public function getTeilnehmerAnzahl($reihungstest_id)
{
$qry = 'SELECT
count(*) AS anzahl
FROM
public.tbl_rt_person
WHERE
rt_id = '.$this->db_add_param($reihungstest_id, FHC_INTEGER);
$qry = 'SELECT count(DISTINCT(tbl_rt_person.rt_person_id)) as anzahl
FROM public.tbl_rt_person
JOIN PUBLIC.tbl_reihungstest rt ON (tbl_rt_person.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 tbl_rt_person.rt_id = '.$this->db_add_param($reihungstest_id, FHC_INTEGER).'
AND CASE WHEN
(
get_rolle_prestudent (tbl_prestudent.prestudent_id, rt.studiensemester_kurzbz) IN (\'Abgewiesener\')
AND
rt.datum > (
SELECT MAX(insertamum)
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = \'Abgewiesener\'
LIMIT 1
)
)
THEN
false
ELSE
true
END
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
)
)';
if ($result = $this->db_query($qry))
{
if ($row = $this->db_fetch_object($result))
@@ -1126,8 +1234,64 @@ class reihungstest extends basis_db
$qry = "SELECT
distinct a.*,
(
SELECT count(*) FROM public.tbl_rt_person
WHERE rt_id=a.reihungstest_id
SELECT count(DISTINCT(tbl_rt_person.rt_person_id))
FROM public.tbl_rt_person
JOIN PUBLIC.tbl_prestudent ON (tbl_rt_person.person_id = tbl_prestudent.person_id)
JOIN PUBLIC.tbl_prestudentstatus USING (prestudent_id)
WHERE tbl_rt_person.rt_id = a.reihungstest_id
AND CASE WHEN
(
get_rolle_prestudent (tbl_prestudent.prestudent_id, a.studiensemester_kurzbz) IN ('Abgewiesener')
AND
a.datum > (
SELECT MAX(insertamum)
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Abgewiesener'
LIMIT 1
)
)
THEN
false
ELSE
true
END
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 = a.studiensemester_kurzbz
UNION
(
SELECT studiensemester_kurzbz
FROM PUBLIC.tbl_studiensemester
WHERE ende <= (
SELECT start
FROM PUBLIC.tbl_studiensemester
WHERE studiensemester_kurzbz = a.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 = a.studiensemester_kurzbz
)
ORDER BY start ASC LIMIT 1
)
)
) as angemeldete_teilnehmer
FROM
public.tbl_reihungstest a
File diff suppressed because it is too large Load Diff
@@ -2624,6 +2624,23 @@ if($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 CASE WHEN
(
get_rolle_prestudent (tbl_prestudent.prestudent_id, null) IN ('Abgewiesener')
AND
rt.datum > (
SELECT MAX(insertamum)
FROM PUBLIC.tbl_prestudentstatus
WHERE prestudent_id = tbl_prestudent.prestudent_id
AND status_kurzbz = 'Abgewiesener'
LIMIT 1
)
)
THEN
false
ELSE
true
END
AND tbl_rt_person.studienplan_id IN (
SELECT studienplan_id
FROM PUBLIC.tbl_prestudentstatus