From 8fbd680ebd852a244cf1095a304c2a8ce4791fa0 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Wed, 7 Aug 2024 16:25:56 +0200 Subject: [PATCH] correct rolle_doesnt_exist validation in addStudent --- .../api/frontend/v1/stv/Status.php | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/application/controllers/api/frontend/v1/stv/Status.php b/application/controllers/api/frontend/v1/stv/Status.php index d9d9aa4b6..42cd81778 100644 --- a/application/controllers/api/frontend/v1/stv/Status.php +++ b/application/controllers/api/frontend/v1/stv/Status.php @@ -590,11 +590,26 @@ class Status extends FHCAPI_Controller return !$this->getDataOrTerminateWithError($result); }], //Check if Rolle already exists - ['rolle_doesnt_exist', function () use ($prestudent_id, $status_kurzbz, $studiensemester_kurzbz, $ausbildungssemester) { - if (!$status_kurzbz || !$studiensemester_kurzbz || !$ausbildungssemester) - return true; // Error will be handled by the required statements above + ['rolle_doesnt_exist', function () use ($prestudent_id) { + $this->PrestudentstatusModel->addOrder('datum', 'DESC'); + $this->PrestudentstatusModel->addOrder('insertamum', 'DESC'); + $this->PrestudentstatusModel->addLimit(1); + $result = $this->PrestudentstatusModel->loadWhere([ + 'prestudent_id' => $prestudent_id, + 'status_kurzbz' => Prestudentstatus_model::STATUS_AUFGENOMMENER + ]); + $lastAufgenommener = $this->getDataOrTerminateWithError($result); + if (!$lastAufgenommener) + return true; // Error will be handled by the checkIfExistingAufgenommenerstatus statement above - $result = $this->PrestudentstatusModel->load([$ausbildungssemester, $studiensemester_kurzbz, $status_kurzbz, $prestudent_id]); + $lastAufgenommener = current($lastAufgenommener); + + + $result = $this->PrestudentstatusModel->loadWhere([ + 'studiensemester_kurzbz' => $lastAufgenommener->studiensemester_kurzbz, + 'status_kurzbz' => Prestudentstatus_model::STATUS_STUDENT, + 'prestudent_id' => $prestudent_id + ]); return !$this->getDataOrTerminateWithError($result); }]