From c36d0358a9da63a6a1965edf1dabd91e1971343d Mon Sep 17 00:00:00 2001 From: ma0048 Date: Thu, 13 Jan 2022 15:16:34 +0100 Subject: [PATCH] check duplicate auch studiengang wird nun beruecksichtigt --- application/models/person/Person_model.php | 74 +++++++++++++++------- system/phrasesupdate.php | 4 +- 2 files changed, 52 insertions(+), 26 deletions(-) diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php index 37d6fb9ff..25aa0414b 100644 --- a/application/models/person/Person_model.php +++ b/application/models/person/Person_model.php @@ -268,35 +268,61 @@ class Person_model extends DB_Model public function checkDuplicate($person_id) { - $qry = "SELECT p.person_id - FROM public.tbl_person p - JOIN public.tbl_prestudent USING (person_id) - JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE status_kurzbz = 'Abbrecher' - AND person_id IN (SELECT p2.person_id + $qry = "SELECT person_id + FROM public.tbl_prestudent p + JOIN + ( + 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 p.vorname = p2.vorname AND p.nachname = p2.nachname AND p.gebdatum = p2.gebdatum - WHERE p.person_id = ? - )"; + 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 = 'Interessent' + AND studiengang_kz IN + ( + SELECT studiengang_kz + FROM public.tbl_prestudent p + JOIN + ( + 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 p.vorname = p2.vorname + AND p.nachname = 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' + ) + "; - $person = $this->execQuery($qry, array($person_id)); - - if (hasData($person)) - { - $qry = "SELECT p2.person_id - FROM public.tbl_person p - JOIN public.tbl_person p2 - ON p.vorname = p2.vorname - AND p.nachname = p2.nachname - AND p.gebdatum = p2.gebdatum - WHERE p.person_id = ?"; - - return $this->execQuery($qry, array($person_id)); - } - - return $person; + return $this->execQuery($qry, array($person_id, $person_id)); } } diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index b3518c79f..87908293f 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -896,13 +896,13 @@ $phrases = array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'BewerberIn bereits vorhanden', + 'text' => 'BewerberIn möglicherweise vorhanden', 'description' => '', 'insertvon' => 'system' ), array( 'sprache' => 'English', - 'text' => 'Applicant already available', + 'text' => 'Applicant maybe available', 'description' => '', 'insertvon' => 'system' )