From 9d0801676d0d64e9f7602142f92a315b8a2ba494 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Thu, 13 Jul 2023 14:44:51 +0200 Subject: [PATCH] Bug: Studierenden-Ansicht: Abmeldung bearbeiten bei mehrfachen Abmeldungen --- .../controllers/components/Antrag/Abmeldung.php | 10 +++++++--- application/libraries/AntragLib.php | 8 ++++++-- .../components/Studierendenantrag/Form/Abmeldung.js | 13 ++++++++++--- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/application/controllers/components/Antrag/Abmeldung.php b/application/controllers/components/Antrag/Abmeldung.php index 8c728c804..55435c1f6 100644 --- a/application/controllers/components/Antrag/Abmeldung.php +++ b/application/controllers/components/Antrag/Abmeldung.php @@ -57,13 +57,17 @@ class Abmeldung extends FHC_Controller } elseif ($result == -1) { - $result = $this->antraglib->getDetailsForLastAntrag($prestudent_id, Studierendenantrag_model::TYP_ABMELDUNG); + $result = $this->antraglib->getDetailsForLastAntrag($prestudent_id, [Studierendenantrag_model::TYP_ABMELDUNG, Studierendenantrag_model::TYP_ABMELDUNG_STGL]); if (isError($result)) { return $this->outputJsonError(getError($result)); } $data = getData($result); - $data->canCancel = (boolean)$this->antraglib->isEntitledToCancelAntrag($data->studierendenantrag_id); + + $data->canCancel = ( + $data->status == Studierendenantragstatus_model::STATUS_CREATED && + $this->antraglib->isEntitledToCancelAntrag($data->studierendenantrag_id) + ); return $this->outputJsonSuccess($data); } @@ -87,7 +91,7 @@ class Abmeldung extends FHC_Controller $data = getData($result); - if ($data->typ !== Studierendenantrag_model::TYP_ABMELDUNG_STGL) + if ($data->typ !== Studierendenantrag_model::TYP_ABMELDUNG_STGL && $data->typ !== Studierendenantrag_model::TYP_ABMELDUNG) return show_404(); $this->outputJsonSuccess($data); diff --git a/application/libraries/AntragLib.php b/application/libraries/AntragLib.php index c725c6ea9..bda165e0f 100644 --- a/application/libraries/AntragLib.php +++ b/application/libraries/AntragLib.php @@ -1204,8 +1204,12 @@ class AntragLib $where = [ 'prestudent_id' => $prestudent_id ]; - if ($typ) - $where['typ'] = $typ; + if ($typ) { + if (is_array($typ)) + $this->_ci->StudierendenantragModel->db->where_in('typ', $typ); + else + $where['typ'] = $typ; + } $result = $this->_ci->StudierendenantragModel->loadWithStatusWhere($where); if (isError($result)) return $result; diff --git a/public/js/components/Studierendenantrag/Form/Abmeldung.js b/public/js/components/Studierendenantrag/Form/Abmeldung.js index 0de6e3d16..7018237fb 100644 --- a/public/js/components/Studierendenantrag/Form/Abmeldung.js +++ b/public/js/components/Studierendenantrag/Form/Abmeldung.js @@ -15,7 +15,8 @@ export default { 'setStatus' ], props: { - prestudentId: Number + prestudentId: Number, + studierendenantragId: Number }, data() { return { @@ -35,6 +36,13 @@ export default { case 'Genehmigt': return 'success'; default: return 'info'; } + }, + loadUrl() { + if (this.studierendenantragId) + return '/components/Antrag/Abmeldung/getDetailsForAntrag/'+ + this.studierendenantragId; + return '/components/Antrag/Abmeldung/getDetailsForNewAntrag/' + + this.prestudentId; } }, methods: { @@ -42,8 +50,7 @@ export default { return axios.get( FHC_JS_DATA_STORAGE_OBJECT.app_root + FHC_JS_DATA_STORAGE_OBJECT.ci_router + - '/components/Antrag/Abmeldung/getDetailsForNewAntrag/' + - this.prestudentId + this.loadUrl ).then( result => { this.data = result.data.retval;