mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 16:44:28 +00:00
warning entfernt bei bewerbungen im selben studiengang
This commit is contained in:
@@ -316,60 +316,72 @@ class Person_model extends DB_Model
|
|||||||
|
|
||||||
public function checkDuplicate($person_id)
|
public function checkDuplicate($person_id)
|
||||||
{
|
{
|
||||||
$qry = "
|
$qry = "SELECT person_id
|
||||||
WITH person AS (
|
FROM public.tbl_prestudent p
|
||||||
SELECT *
|
JOIN
|
||||||
FROM public.tbl_person
|
(
|
||||||
WHERE person_id = ?
|
SELECT DISTINCT ON(prestudent_id) *
|
||||||
),
|
FROM public.tbl_prestudentstatus
|
||||||
allePersonen AS (
|
WHERE prestudent_id IN
|
||||||
SELECT p.person_id
|
(
|
||||||
FROM public.tbl_person p
|
SELECT prestudent_id
|
||||||
JOIN person
|
FROM public.tbl_prestudent
|
||||||
ON lower(p.vorname) = lower(person.vorname)
|
WHERE person_id IN
|
||||||
AND lower(p.nachname) = lower(person.nachname)
|
(
|
||||||
AND p.gebdatum = person.gebdatum
|
SELECT p2.person_id
|
||||||
),
|
FROM public.tbl_person p
|
||||||
lastStatus AS (
|
JOIN public.tbl_person p2
|
||||||
SELECT DISTINCT ON (tbl_prestudentstatus.prestudent_id)
|
ON lower(p.vorname) = lower(p2.vorname)
|
||||||
tbl_prestudentstatus.prestudent_id,
|
AND lower(p.nachname) = lower(p2.nachname)
|
||||||
tbl_prestudentstatus.status_kurzbz,
|
AND p.gebdatum = p2.gebdatum
|
||||||
tbl_prestudent.studiengang_kz,
|
AND p.person_id = ?
|
||||||
tbl_prestudent.person_id
|
)
|
||||||
FROM public.tbl_prestudentstatus
|
)
|
||||||
JOIN public.tbl_prestudent USING (prestudent_id)
|
ORDER BY prestudent_id, datum DESC, insertamum DESC
|
||||||
WHERE tbl_prestudent.person_id IN (SELECT person_id FROM allePersonen)
|
) ps USING(prestudent_id)
|
||||||
ORDER BY tbl_prestudentstatus.prestudent_id, tbl_prestudentstatus.datum DESC, tbl_prestudentstatus.insertamum DESC
|
JOIN public.tbl_status USING(status_kurzbz)
|
||||||
),
|
|
||||||
interessenten AS (
|
|
||||||
SELECT *
|
|
||||||
FROM lastStatus
|
|
||||||
WHERE status_kurzbz = 'Interessent'
|
WHERE status_kurzbz = 'Interessent'
|
||||||
),
|
AND studiengang_kz IN
|
||||||
keineInteressenten AS (
|
(
|
||||||
SELECT *
|
SELECT studiengang_kz
|
||||||
FROM lastStatus
|
FROM public.tbl_prestudent p
|
||||||
WHERE status_kurzbz != 'Interessent'
|
JOIN
|
||||||
),
|
(
|
||||||
doppeltePerson AS (
|
SELECT DISTINCT ON(prestudent_id) *
|
||||||
|
FROM public.tbl_prestudentstatus
|
||||||
|
WHERE prestudent_id IN
|
||||||
|
(
|
||||||
|
SELECT prestudent_id
|
||||||
|
FROM public.tbl_prestudent
|
||||||
|
WHERE person_id IN
|
||||||
|
(
|
||||||
|
SELECT p2.person_id
|
||||||
|
FROM public.tbl_person p
|
||||||
|
JOIN public.tbl_person p2
|
||||||
|
ON lower(p.vorname) = lower(p2.vorname)
|
||||||
|
AND lower(p.nachname) = lower(p2.nachname)
|
||||||
|
AND p.gebdatum = p2.gebdatum
|
||||||
|
AND p.person_id = ?
|
||||||
|
)
|
||||||
|
)
|
||||||
|
ORDER BY prestudent_id, datum DESC, insertamum DESC
|
||||||
|
) ps USING(prestudent_id)
|
||||||
|
JOIN public.tbl_status USING(status_kurzbz)
|
||||||
|
WHERE status_kurzbz = 'Abbrecher'
|
||||||
|
)
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
SELECT p2.person_id
|
SELECT p2.person_id
|
||||||
FROM public.tbl_person p1
|
FROM tbl_person p1
|
||||||
JOIN public.tbl_prestudent ps1 ON ps1.person_id = p1.person_id
|
JOIN tbl_prestudent ps ON p1.person_id = ps.person_id
|
||||||
JOIN public.tbl_person p2
|
INNER JOIN (
|
||||||
ON lower(p1.vorname) = lower(p2.vorname)
|
SELECT vorname, nachname, gebdatum, person.person_id
|
||||||
AND lower(p1.nachname) = lower(p2.nachname)
|
FROM tbl_person person
|
||||||
AND p1.gebdatum = p2.gebdatum
|
JOIN tbl_prestudent sps ON person.person_id = sps.person_id
|
||||||
WHERE p1.person_id = ?
|
) p2
|
||||||
AND p1.person_id <> p2.person_id
|
ON (lower(p1.vorname) = lower(p2.vorname) AND lower(p1.nachname) = lower(p2.nachname) AND p1.gebdatum = p2.gebdatum)
|
||||||
)
|
WHERE p1.person_id != p2.person_id AND (p1.person_id = ?)";
|
||||||
SELECT DISTINCT(interessenten.person_id)
|
|
||||||
FROM interessenten
|
|
||||||
JOIN keineInteressenten
|
|
||||||
ON interessenten.studiengang_kz = keineInteressenten.studiengang_kz
|
|
||||||
WHERE interessenten.person_id = ?
|
|
||||||
UNION
|
|
||||||
SELECT DISTINCT person_id
|
|
||||||
FROM doppeltePerson";
|
|
||||||
|
|
||||||
return $this->execQuery($qry, array($person_id, $person_id, $person_id));
|
return $this->execQuery($qry, array($person_id, $person_id, $person_id));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user