diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php index 131cfdced..0663be94b 100644 --- a/application/controllers/jobs/AntragJob.php +++ b/application/controllers/jobs/AntragJob.php @@ -306,11 +306,24 @@ class AntragJob extends JOB_Controller foreach ($prestudents as $prestudent) { - $result = $this->prestudentlib->setAbbrecher($prestudent->prestudent_id, $prestudent->studiensemester_kurzbz, $insertvon); - if (isError($result)) + $result = $this->StudierendenantragstatusModel->insert([ + 'studierendenantrag_id' => $prestudent->studierendenantrag_id, + 'studierendenantrag_statustyp_kurzbz' => Studierendenantragstatus_model::STATUS_DEREGISTERED, + 'insertvon' => 'AntragJob' + ]); + if (isError($result)) { $this->logError(getError($result)); - else - $count++; + } else { + $deregisterStatus = getData($result); + + $result = $this->prestudentlib->setAbbrecher($prestudent->prestudent_id, '', $insertvon); + if (isError($result)) { + $this->StudierendenantragstatusModel->delete($deregisterStatus); + $this->logError(getError($result)); + } else { + $count++; + } + } } $this->logInfo($count . " Students set to Abbrecher"); } diff --git a/application/libraries/PrestudentLib.php b/application/libraries/PrestudentLib.php index 989e14585..ae4ad59c6 100644 --- a/application/libraries/PrestudentLib.php +++ b/application/libraries/PrestudentLib.php @@ -74,7 +74,7 @@ class PrestudentLib $result = $this->_ci->PrestudentstatusModel->withGrund($statusgrund_kurzbz)->insert([ 'prestudent_id' => $prestudent_id, 'status_kurzbz' => Prestudentstatus_model::STATUS_ABBRECHER, - 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'studiensemester_kurzbz' => $prestudent_status->studiensemester_kurzbz, 'ausbildungssemester' => $prestudent_status->ausbildungssemester, 'datum' => $datum, 'insertvon' => $insertvon, @@ -135,7 +135,7 @@ class PrestudentLib } //noch nicht eingetragene Zeugnisnoten auf 9 setzen - $result = $this->_ci->ZeugnisnoteModel->getZeugnisnoten($student->student_uid, $studiensemester_kurzbz); + $result = $this->_ci->ZeugnisnoteModel->getZeugnisnoten($student->student_uid, $prestudent_status->studiensemester_kurzbz); if (isError($result)) return $result; $result = getData($result) ?: []; @@ -181,7 +181,7 @@ class PrestudentLib //Studentlehrverband setzen $this->_ci->StudentlehrverbandModel->update([ - 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'studiensemester_kurzbz' => $prestudent_status->studiensemester_kurzbz, 'student_uid' => $student->student_uid ], [ 'studiengang_kz' => $student->studiengang_kz, diff --git a/application/models/education/Pruefung_model.php b/application/models/education/Pruefung_model.php index 0d6ad4158..4debc3e28 100644 --- a/application/models/education/Pruefung_model.php +++ b/application/models/education/Pruefung_model.php @@ -164,6 +164,7 @@ class Pruefung_model extends DB_Model $this->addSelect('ps.prestudent_id'); $this->addSelect('lv.bezeichnung as lvbezeichnung'); $this->addSelect('le.studiensemester_kurzbz'); + $this->addSelect('a.studierendenantrag_id'); $this->addSelect('a.typ'); $this->addSelect('campus.get_status_studierendenantrag(a.studierendenantrag_id) status'); diff --git a/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js b/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js index 1650d3638..aafff8ac6 100644 --- a/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js +++ b/public/js/components/Studierendenantrag/Form/AbmeldungStgl.js @@ -29,7 +29,8 @@ export default { switch (this.data?.status) { case 'Erstellt': return 'info'; - case 'Genehmigt': return 'success'; + case 'Genehmigt': + case 'Abgemeldet': return 'success'; default: return 'info'; } }, diff --git a/public/js/components/Studierendenantrag/Form/Wiederholung.js b/public/js/components/Studierendenantrag/Form/Wiederholung.js index c2aea93f2..c1c668ecb 100644 --- a/public/js/components/Studierendenantrag/Form/Wiederholung.js +++ b/public/js/components/Studierendenantrag/Form/Wiederholung.js @@ -37,7 +37,8 @@ export default { { case 'Erstellt': return 'info'; case 'Genehmigt': return 'success'; - case 'Verzichtet': return 'danger'; + case 'Verzichtet': + case 'Abgemeldet': return 'danger'; default: return 'info'; } },