From b468f01d0e16c25ca335908485af59a8b1c0ad29 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 18 Aug 2023 11:34:38 +0200 Subject: [PATCH] =?UTF-8?q?Lv-zuweisung=20Breite=20vergr=C3=B6ssert,=20Pre?= =?UTF-8?q?student=20Status=20Unterbrechungssemester=20vor=20Vorr=C3=BCcku?= =?UTF-8?q?ng?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/libraries/PrestudentLib.php | 39 +++++++++++++++---- .../Studierendenantrag/Lvzuweisung.js | 4 +- system/phrasesupdate.php | 22 ++++++++++- 3 files changed, 55 insertions(+), 10 deletions(-) diff --git a/application/libraries/PrestudentLib.php b/application/libraries/PrestudentLib.php index 59cba0df1..5ce2cf8f0 100644 --- a/application/libraries/PrestudentLib.php +++ b/application/libraries/PrestudentLib.php @@ -32,6 +32,7 @@ class PrestudentLib $this->_ci->load->model('organisation/Lehrverband_model', 'LehrverbandModel'); $this->_ci->load->model('education/Studentlehrverband_model', 'StudentlehrverbandModel'); $this->_ci->load->model('person/Benutzer_model', 'BenutzerModel'); + $this->_ci->load->model('organisation/Studiengang_model', 'StudiengangModel'); } public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null, $statusgrund_kurzbz = null, $datum = null, $bestaetigtam = null) @@ -205,6 +206,7 @@ class PrestudentLib public function setUnterbrecher($prestudent_id, $studiensemester_kurzbz, $studierendenantrag_id, $insertvon = null) { + $ausbildungssemester_plus = 0; if (!$insertvon) $insertvon = getAuthUID(); @@ -213,14 +215,38 @@ class PrestudentLib return $result; $result = getData($result); if (!$result) { - return error($this->_ci->p->t('studierendenantrag', 'error_no_prestudent_in_sem', [ - 'prestudent_id' => $prestudent_id, - 'studiensemester_kurzbz' => $studiensemester_kurzbz - ])); + //NOTE(manu): only valid if nextSemester focus max + + $result = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id); + if (isError($result)) + return $result; + $result = getData($result); + + //check if ausbildungssemester is last + $this->_ci->StudiengangModel->addJoin('public.tbl_prestudent p', 'studiengang_kz'); + $res = $this->_ci->StudiengangModel->loadWhere(['p.prestudent_id' => $prestudent_id]); + if(isError($res)) + return $res; + if(!hasData($res)) + return error($this->_ci->p->t('studierendenantrag', 'error_no_stg_for_prestudent', [ + 'prestudent_id' => $prestudent_id + ])); + + $studiengang = current(getData($res)); + $prestudent_status = current($result); + if($prestudent_status->ausbildungssemester + 1 < $studiengang->max_semester) + $ausbildungssemester_plus = 1; + + if(!$result) + { + return error($this->_ci->p->t('studierendenantrag', 'error_no_prestudent_in_sem', [ + 'prestudent_id' => $prestudent_id, + 'studiensemester_kurzbz' => $studiensemester_kurzbz + ])); + } } $prestudent_status = current($result); - $result = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $prestudent_id]); if (isError($result)) @@ -245,7 +271,7 @@ class PrestudentLib 'prestudent_id' => $prestudent_id, 'status_kurzbz' => Prestudentstatus_model::STATUS_UNTERBRECHER, 'studiensemester_kurzbz' => $studiensemester_kurzbz, - 'ausbildungssemester' => $prestudent_status->ausbildungssemester, + 'ausbildungssemester' => $prestudent_status->ausbildungssemester + $ausbildungssemester_plus, 'datum' => date('c'), 'insertvon' => $insertvon, 'insertamum' => date('c'), @@ -256,7 +282,6 @@ class PrestudentLib 'anmerkung'=> 'Wiedereinstieg ' . $antrag->datum_wiedereinstieg ]); - //error try manu if (isError($result)) return $result; diff --git a/public/js/components/Studierendenantrag/Lvzuweisung.js b/public/js/components/Studierendenantrag/Lvzuweisung.js index f70812209..376e266d3 100644 --- a/public/js/components/Studierendenantrag/Lvzuweisung.js +++ b/public/js/components/Studierendenantrag/Lvzuweisung.js @@ -225,7 +225,7 @@ export default { ); }, template: ` -
+
@@ -244,7 +244,7 @@ export default {
-
+
` diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 65345aed1..c86d51d81 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -19934,7 +19934,7 @@ array( 'phrases' => array( array( 'sprache' => 'German', - 'text' => 'Kein Studiengang gefunden für Bakanntgabe #{id}', + 'text' => 'Kein Studiengang gefunden für Bekanntgabe #{id}', 'description' => '', 'insertvon' => 'system' ), @@ -20286,6 +20286,26 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'studierendenantrag', + 'phrase' => 'error_no_stg_for_prestudent', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Kein Studiengang für Prestudent #{prestudent_id} gefunden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'No course found for prestudent #{prestudent_id}', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'studierendenantrag',