From 07400e7551ddb7a8b8a0066d76d9461a96f5e7d5 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Tue, 6 Aug 2024 14:49:20 +0200 Subject: [PATCH] change all setAbbrecher to setAbbrecherNeu and rename --- .../api/frontend/v1/studstatus/Leitung.php | 3 +- .../api/frontend/v1/stv/Status.php | 2 +- application/controllers/jobs/AntragJob.php | 18 ++- application/libraries/AntragLib.php | 31 ++++- application/libraries/PrestudentLib.php | 118 +----------------- system/phrasesupdate.php | 20 +++ 6 files changed, 66 insertions(+), 126 deletions(-) diff --git a/application/controllers/api/frontend/v1/studstatus/Leitung.php b/application/controllers/api/frontend/v1/studstatus/Leitung.php index 2699a3dbb..87099ad74 100644 --- a/application/controllers/api/frontend/v1/studstatus/Leitung.php +++ b/application/controllers/api/frontend/v1/studstatus/Leitung.php @@ -53,7 +53,8 @@ class Leitung extends FHCAPI_Controller // Load language phrases $this->loadPhrases([ - 'studierendenantrag' + 'studierendenantrag', + 'lehre' ]); } diff --git a/application/controllers/api/frontend/v1/stv/Status.php b/application/controllers/api/frontend/v1/stv/Status.php index 6e4a671ee..9df1a8ec4 100644 --- a/application/controllers/api/frontend/v1/stv/Status.php +++ b/application/controllers/api/frontend/v1/stv/Status.php @@ -444,7 +444,7 @@ class Status extends FHCAPI_Controller switch($status_kurzbz){ case Prestudentstatus_model::STATUS_ABBRECHER: - $result = $this->prestudentlib->setAbbrecherNeu( + $result = $this->prestudentlib->setAbbrecher( $prestudent_id, $studiensemester_kurzbz, null, diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php index 0bac8794f..d079658af 100644 --- a/application/controllers/jobs/AntragJob.php +++ b/application/controllers/jobs/AntragJob.php @@ -29,6 +29,10 @@ class AntragJob extends JOB_Controller $this->load->model('crm/Student_model', 'StudentModel'); $this->load->model('organisation/Studiengang_model', 'StudiengangModel'); $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); + + $this->loadPhrases([ + 'lehre' + ]); } /** @@ -451,11 +455,23 @@ class AntragJob extends JOB_Controller if (isError($result)) $this->logError(getError($result)); + $this->load->model('crm/Statusgrund_model', 'StatusgrundModel'); + $result = $this->StatusgrundModel->loadWhere(['statusgrund_kurzbz' => 'abbrecherStgl']); + if (isError($result)) { + $this->logError(getError($result)); + continue; + } elseif (!hasData($result)) { + $this->logError($this->p->t('lehre', 'error_noStatusgrund', ['statusgrund_kurzbz' => 'abbrecherStgl'])); // TODO(chris): phrase + continue; + } + + $statusgrund = current(getData($result)); + $result = $this->prestudentlib->setAbbrecher( $antrag->prestudent_id, $antrag->studiensemester_kurzbz, 'AntragJob', - 'abbrecherStgl', + $statusgrund->statusgrund_id, $antrag->insertamum, null, $antrag->insertvon ?: $insertvon diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php index ce4485279..c1649587d 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -121,7 +121,7 @@ class AntragLib public function unpauseAntrag($antrag_id, $insertvon) { if ($insertvon == Studierendenantragstatus_model::INSERTVON_DEREGISTERED) - return error($this->p->t('studierendenantrag', 'error_no_right')); + return error($this->_ci->p->t('studierendenantrag', 'error_no_right')); if ($insertvon == Studierendenantragstatus_model::INSERTVON_ABMELDUNGSTGL) { return $this->_ci->StudierendenantragstatusModel->resumeAntraegeForAbmeldungStgl($antrag_id); } @@ -257,18 +257,28 @@ class AntragLib if (isError($result)) $errors[] = getError($result); + $this->_ci->load->model('crm/Statusgrund_model', 'StatusgrundModel'); + $result = $this->_ci->StatusgrundModel->loadWhere(['statusgrund_kurzbz' => 'abbrecherStud']); + if (isError($result)) { + $errors[] = getError($result); + continue; + } elseif (!hasData($result)) { + $errors[] = $this->_ci->p->t('lehre', 'error_noStatusgrund', ['statusgrund_kurzbz' => 'abbrecherStud']); + continue; + } + $statusgrund = current(getData($result)); + $result = $this->_ci->prestudentlib->setAbbrecher( $antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, - 'abbrecherStud', + $statusgrund->statusgrund_id, $antrag->datum, $insertam ); - if (isError($result)) - { + if (isError($result)) { $errors[] = getError($result); - return $errors; + continue; } $result = $this->_ci->PersonModel->loadPrestudent($antrag->prestudent_id); @@ -421,11 +431,20 @@ class AntragLib // NOTE(chris): here we should have error handling but at the // moment there is no way to notify the user for "soft" errors + $this->_ci->load->model('crm/Statusgrund_model', 'StatusgrundModel'); + $result = $this->_ci->StatusgrundModel->loadWhere(['statusgrund_kurzbz' => 'abbrecherStgl']); + if (isError($result)) + return $result; + if (!hasData($result)) + return error($this->_ci->p->t('lehre', 'error_noStatusgrund', ['statusgrund_kurzbz' => 'abbrecherStgl'])); + + $statusgrund = current(getData($result)); + $result = $this->_ci->prestudentlib->setAbbrecher( $antrag->prestudent_id, $antrag->studiensemester_kurzbz, $insertvon, - 'abbrecherStgl', + $statusgrund->statusgrund_id, $status->insertamum ); diff --git a/application/libraries/PrestudentLib.php b/application/libraries/PrestudentLib.php index 58e519565..e8ee7902f 100644 --- a/application/libraries/PrestudentLib.php +++ b/application/libraries/PrestudentLib.php @@ -35,7 +35,7 @@ class PrestudentLib $this->_ci->load->model('organisation/Studiengang_model', 'StudiengangModel'); } - public function setAbbrecherNeu( + public function setAbbrecher( $prestudent_id, $studiensemester_kurzbz, $insertvon = null, @@ -170,122 +170,6 @@ class PrestudentLib return success(); } - public function setAbbrecher($prestudent_id, $studiensemester_kurzbz, $insertvon = null, $statusgrund_kurzbz = null, $datum = null, $bestaetigtam = null, $bestaetigtvon = null) - { - if (!$insertvon) - $insertvon = getAuthUID(); - if (!$bestaetigtvon) - $bestaetigtvon = $insertvon; - - $result = $this->_ci->PrestudentstatusModel->getLastStatus($prestudent_id, $studiensemester_kurzbz); - if (isError($result)) - 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 - ])); - - $prestudent_status = current($result); - - $result = $this->_ci->StudentModel->loadWhere(['prestudent_id' => $prestudent_id]); - - if (isError($result)) - return $result; - $result = getData($result); - if (!$result) - return error($this->_ci->p->t('studierendenantrag', 'error_no_student_for_prestudent', ['prestudent_id' => $prestudent_id])); - - $student = current($result); - - if(!$datum) - $datum = date('c'); - - if(!$bestaetigtam) - $bestaetigtam = date('c'); - - //Status und Statusgrund updaten - $result = $this->_ci->PrestudentstatusModel->withGrund($statusgrund_kurzbz)->insert([ - 'prestudent_id' => $prestudent_id, - 'status_kurzbz' => Prestudentstatus_model::STATUS_ABBRECHER, - 'studiensemester_kurzbz' => $prestudent_status->studiensemester_kurzbz, - 'ausbildungssemester' => $prestudent_status->ausbildungssemester, - 'datum' => $datum, - 'insertvon' => $insertvon, - 'insertamum' => date('c'), - 'orgform_kurzbz'=> $prestudent_status->orgform_kurzbz, - 'studienplan_id'=> $prestudent_status->studienplan_id, - 'bestaetigtvon' => $bestaetigtvon, - 'bestaetigtam' => $bestaetigtam - ]); - - if (isError($result)) - return $result; - - //refactored with processStudentlehrverband - $result = $this->_ci->StudentlehrverbandModel->processStudentlehrverband( - $student->student_uid, - $student->studiengang_kz, - 0, - 'A', - '', - $studiensemester_kurzbz, - Prestudentstatus_model::STATUS_ABBRECHER - ); - - if (isError($result)) - return $result; - - - //noch nicht eingetragene Zeugnisnoten auf 9 setzen - $result = $this->_ci->ZeugnisnoteModel->getZeugnisnoten($student->student_uid, $prestudent_status->studiensemester_kurzbz); - if (isError($result)) - return $result; - $result = getData($result) ?: []; - - foreach ($result as $lv) - { - if (!$lv->note) - { - $result = $this->_ci->ZeugnisnoteModel->insert([ - 'note' => 9, - 'studiensemester_kurzbz' => $lv->studiensemester_kurzbz, - 'student_uid' => $lv->uid, - 'lehrveranstaltung_id' => $lv->lehrveranstaltung_id - ]); - if (isError($result)) { - $result = $this->_ci->ZeugnisnoteModel->update([ - 'studiensemester_kurzbz' => $lv->studiensemester_kurzbz, - 'student_uid' => $lv->uid, - 'lehrveranstaltung_id' => $lv->lehrveranstaltung_id - ], [ - 'note' => 9 - ]); - - if (isError($result)) - return $result; - } - } - } - - // TODO(chris): student updaten (hier oder in studentlehrverband) - // TODO(chris): db transaction - - //Benutzer inaktiv setzen - $this->_ci->BenutzerModel->update([ - 'uid' => $student->student_uid - ], [ - 'aktiv' => false, - 'updateaktivvon' => $insertvon, - 'updateaktivam' => date('c'), - 'updatevon' => $insertvon, - 'updateamum' => date('c') - ]); - - return success(); - } - public function setUnterbrecher($prestudent_id, $studiensemester_kurzbz, $studierendenantrag_id = null, $insertvon = null, $ausbildungssemester = null) { $ausbildungssemester_plus = 0; diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 69773fef3..5be674fc5 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -30065,6 +30065,26 @@ array( ) ) ), + array( + 'app' => 'core', + 'category' => 'lehre', + 'phrase' => 'error_noStatusgrund', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Statusgrund {statusgrundkurzbz} nicht gefunden', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Statusgrund {statusgrundkurzbz} not found', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), array( 'app' => 'core', 'category' => 'lehre',