From 98de634393113e9eef06416b75fbc1e77da900dd Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Tue, 5 Dec 2023 09:27:20 +0100 Subject: [PATCH 1/3] s&d --- application/libraries/AntragLib.php | 35 ++++++++++++++----- .../education/Studierendenantrag_model.php | 1 + 2 files changed, 27 insertions(+), 9 deletions(-) diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php index ff4d5dc63..e3cc5bf14 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -967,6 +967,7 @@ class AntragLib $studiengang_kz = $result->studiengang_kz; $orgform_kurzbz = $result->orgform_kurzbz; $ausbildungssemester = $result->ausbildungssemester; + $sprache = $result->sprache; // NOTE(chris): check permission $allowedStgs = $this->_ci->permissionlib->getSTG_isEntitledFor('student/studierendenantrag') ?: []; @@ -1012,7 +1013,8 @@ class AntragLib $semA, $ausbildungssemester + 1, $antrag->prestudent_id, - $antrag->studiensemester_kurzbz + $antrag->studiensemester_kurzbz, + $sprache ); if (isError($result)) return $result; @@ -1035,7 +1037,8 @@ class AntragLib $semB, $ausbildungssemester, $antrag->prestudent_id, - $antrag->studiensemester_kurzbz + $antrag->studiensemester_kurzbz, + $sprache ); if (isError($result)) return $result; @@ -1062,7 +1065,8 @@ class AntragLib $studiensemester_kurzbz, $ausbildungssemester, $prestudent_id, - $note_stsem + $note_stsem, + $sprache ) { $this->_ci->load->model('organisation/Studienplan_model', 'StudienplanModel'); @@ -1091,12 +1095,25 @@ class AntragLib 'semester' => $ausbildungssemester ])); } - if (count($result) > 1) - return error($this->_ci->p->t('studierendenantrag', 'error_multiple_studienplan', [ - 'studiengang_kz' => $studiengang_kz, - 'studiensemester_kurzbz' => $studiensemester_kurzbz, - 'semester' => $ausbildungssemester - ])); + if (count($result) > 1) { + $langmap = array_unique(array_map(function ($a) { + return $a->sprache; + }, $result)); + if ($sprache + && count($langmap) == count($result) + && in_array($sprache, $langmap) + ) { + $result = array_filter($result, function ($a) use ($sprache) { + return $a->sprache == $sprache; + }); + } else { + return error($this->_ci->p->t('studierendenantrag', 'error_multiple_studienplan', [ + 'studiengang_kz' => $studiengang_kz, + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'semester' => $ausbildungssemester + ])); + } + } $studienplan = current($result); return $this->_ci->StudienplanModel->getStudienplanLehrveranstaltungForPrestudent( diff --git a/application/models/education/Studierendenantrag_model.php b/application/models/education/Studierendenantrag_model.php index 4931896cd..2ad942870 100644 --- a/application/models/education/Studierendenantrag_model.php +++ b/application/models/education/Studierendenantrag_model.php @@ -124,6 +124,7 @@ class Studierendenantrag_model extends DB_Model $this->addSelect('p.studiengang_kz'); $this->addSelect('stg.bezeichnung'); $this->addSelect('s.ausbildungssemester'); + $this->addSelect('plan.sprache'); $this->addSelect('COALESCE(plan.orgform_kurzbz, s.orgform_kurzbz, stg.orgform_kurzbz) AS orgform_kurzbz'); $this->addJoin( From 3e9dcf2911aaae2b735ff04a187f8e766e918da2 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Wed, 6 Dec 2023 09:46:34 +0100 Subject: [PATCH 2/3] =?UTF-8?q?task-35010:=20Abmeldung=20d.=20StG=20Pre-Ab?= =?UTF-8?q?brecher=20Statusgrund=20nach=20zur=C3=BCckgezogen=20wieder=20r?= =?UTF-8?q?=C3=BCckg=C3=A4ngig=20machen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/libraries/AntragLib.php | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php index e3cc5bf14..cb7431952 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -62,6 +62,24 @@ class AntragLib 'insertvon' => $insertvon ]); + // NOTE(chris): remove "preabbrecher" statusgrund for Stgl-Abmeldungen if set + $res = $this->_ci->StudierendenantragModel->load($antrag_id); + if (hasData($res) && current(getData($res))->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL) { + $this->_ci->PrestudentstatusModel->addSelect('tbl_status_grund.statusgrund_kurzbz'); + $res = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail(current(getData($res))->prestudent_id, '', 'Student'); + if (hasData($res) && current(getData($res))->statusgrund_kurzbz == 'preabbrecher') { + $prestudentstatus = current(getData($res)); + $this->_ci->PrestudentstatusModel->update([ + 'prestudent_id' => $prestudentstatus->prestudent_id, + 'status_kurzbz'=>$prestudentstatus->status_kurzbz, + 'studiensemester_kurzbz'=>$prestudentstatus->studiensemester_kurzbz, + 'ausbildungssemester'=>$prestudentstatus->ausbildungssemester + ], [ + 'statusgrund_id' => null + ]); + } + } + return $result; } From b15adf7b2335cb94067b231853fae4c8c51621a5 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Wed, 6 Dec 2023 14:32:29 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Revert=20"task-35010:=20Abmeldung=20d.=20St?= =?UTF-8?q?G=20Pre-Abbrecher=20Statusgrund=20nach=20zur=C3=BCckgezogen=20w?= =?UTF-8?q?ieder=20r=C3=BCckg=C3=A4ngig=20machen"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 3e9dcf2911aaae2b735ff04a187f8e766e918da2. --- application/libraries/AntragLib.php | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php index cb7431952..e3cc5bf14 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -62,24 +62,6 @@ class AntragLib 'insertvon' => $insertvon ]); - // NOTE(chris): remove "preabbrecher" statusgrund for Stgl-Abmeldungen if set - $res = $this->_ci->StudierendenantragModel->load($antrag_id); - if (hasData($res) && current(getData($res))->typ == Studierendenantrag_model::TYP_ABMELDUNG_STGL) { - $this->_ci->PrestudentstatusModel->addSelect('tbl_status_grund.statusgrund_kurzbz'); - $res = $this->_ci->PrestudentstatusModel->getLastStatusWithStgEmail(current(getData($res))->prestudent_id, '', 'Student'); - if (hasData($res) && current(getData($res))->statusgrund_kurzbz == 'preabbrecher') { - $prestudentstatus = current(getData($res)); - $this->_ci->PrestudentstatusModel->update([ - 'prestudent_id' => $prestudentstatus->prestudent_id, - 'status_kurzbz'=>$prestudentstatus->status_kurzbz, - 'studiensemester_kurzbz'=>$prestudentstatus->studiensemester_kurzbz, - 'ausbildungssemester'=>$prestudentstatus->ausbildungssemester - ], [ - 'statusgrund_id' => null - ]); - } - } - return $result; }