From b41ef00b3d395e66505dfcae6cbb6ebd5e26fb88 Mon Sep 17 00:00:00 2001 From: alex Date: Tue, 11 Feb 2020 16:42:04 +0100 Subject: [PATCH] crm/Prestudent_model: hasBewerber can optionally check bewerber only for a Studiengangtyp. In InfoCenter, only Bachelors are checked after Freigabe (for setting Bewerber and Reihungstestbooleans) --- .../system/infocenter/InfoCenter.php | 4 +-- application/models/person/Person_model.php | 26 +++++++++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index e4d2c4e21..d5a751b05 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -560,7 +560,7 @@ class InfoCenter extends Auth_Controller else { // check if there is already a Bewerberstatus and Reihungsverfahren already absolviert - $bewerber = $this->PersonModel->hasBewerber($person_id, $lastStatus->studiensemester_kurzbz); + $bewerber = $this->PersonModel->hasBewerber($person_id, $lastStatus->studiensemester_kurzbz, 'b'); if (hasData($bewerber)) { @@ -1559,7 +1559,7 @@ class InfoCenter extends Auth_Controller } /** - * Sends infomail with prestudent and person data when Prestudent is freigegeben + * Sends infomail to Studiengang with prestudent and person data when Prestudent is freigegeben * @param $prestudent_id */ private function _sendFreigabeMail($prestudent_id) diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php index 4f826dac1..d8ddb381c 100644 --- a/application/models/person/Person_model.php +++ b/application/models/person/Person_model.php @@ -220,16 +220,32 @@ class Person_model extends DB_Model * @param $studiensemester_kurzbz * @return array */ - public function hasBewerber($person_id, $studiensemester_kurzbz) + public function hasBewerber($person_id, $studiensemester_kurzbz, $studiengangtyp = null) { + $parametersArray = array($person_id, $studiensemester_kurzbz); + $qry = "SELECT count(*) AS anzahl_bewerber FROM public.tbl_person JOIN public.tbl_prestudent USING (person_id) - JOIN public.tbl_prestudentstatus ON tbl_prestudentstatus.prestudent_id = tbl_prestudent.prestudent_id - WHERE person_id = ? + JOIN public.tbl_prestudentstatus ON tbl_prestudentstatus.prestudent_id = tbl_prestudent.prestudent_id"; + + if (isset($studiengangtyp)) + { + $qry .= " JOIN lehre.tbl_studienplan USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + JOIN public.tbl_studiengang ON tbl_studienordnung.studiengang_kz = tbl_studiengang.studiengang_kz"; + } + + $qry .= " WHERE person_id = ? AND studiensemester_kurzbz = ? - AND status_kurzbz = 'Bewerber' + AND tbl_prestudentstatus.status_kurzbz = 'Bewerber' AND reihungstestangetreten"; - return $this->execQuery($qry, array($person_id, $studiensemester_kurzbz)); + if (isset($studiengangtyp)) + { + $parametersArray[] = $studiengangtyp; + $qry .= " AND tbl_studiengang.typ = ?"; + } + + return $this->execQuery($qry, $parametersArray); } }