From ba1ef83ba63fdf57fa19344050a868d6440077eb Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Fri, 30 May 2025 12:38:35 +0200 Subject: [PATCH] delete entry in tbl_studentlehrverband only if last prestudent status for the semester is deleted, update possibly existing entry in tbl_studentlehrverband when advancing prestudentstatus --- .../api/frontend/v1/stv/Status.php | 44 ++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/application/controllers/api/frontend/v1/stv/Status.php b/application/controllers/api/frontend/v1/stv/Status.php index 8167bd90f..fcc8007cd 100644 --- a/application/controllers/api/frontend/v1/stv/Status.php +++ b/application/controllers/api/frontend/v1/stv/Status.php @@ -739,8 +739,12 @@ class Status extends FHCAPI_Controller // Start DB transaction $this->db->trans_begin(); + //Delete Studentlehrverband if no Status left in this semester + $cilsresult = $this->PrestudentstatusModel->checkIfLastStatusEntry($prestudent_id, $studiensemester_kurzbz); + $isLastPrestudentStatusForSemester = $this->getDataOrTerminateWithError($cilsresult); + //Delete Status - $result = $this->PrestudentstatusModel->delete( + $delpsresult = $this->PrestudentstatusModel->delete( [ 'prestudent_id' => $prestudent_id, 'status_kurzbz' => $status_kurzbz, @@ -748,14 +752,9 @@ class Status extends FHCAPI_Controller 'studiensemester_kurzbz' => $studiensemester_kurzbz ] ); + $this->getDataOrTerminateWithError($delpsresult); - $this->getDataOrTerminateWithError($result); - - //Delete Studentlehrverband if no Status left in this semester - $result = $this->PrestudentstatusModel->checkIfLastStatusEntry($prestudent_id, $studiensemester_kurzbz); - - $result = $this->getDataOrTerminateWithError($result); - if ($result) + if ($isLastPrestudentStatusForSemester) { //get student_uid $this->load->model('crm/Student_model', 'StudentModel'); @@ -1529,9 +1528,32 @@ class Status extends FHCAPI_Controller $newStudentlvb['semester'] = $ausbildungssemester; } // If there is no lehrverband just use the same as in the previous studiensemester - - //add studentlehrverband - $result = $this->StudentlehrverbandModel->insert($newStudentlvb); + $checkres = $this->StudentlehrverbandModel->load(array( + 'student_uid' => $studentlvb->student_uid, + 'studiensemester_kurzbz' => $studiensemester_kurzbz + )); + if(hasData($checkres)) + { + $result = $this->StudentlehrverbandModel->update( + array( + 'student_uid' => $studentlvb->student_uid, + 'studiensemester_kurzbz' => $studiensemester_kurzbz + ), + array( + 'studiengang_kz' => $studentlvb->studiengang_kz, + 'semester' => $studentlvb->semester, + 'verband' => $studentlvb->verband, + 'gruppe' => $studentlvb->gruppe, + 'updateamum' => $now, + 'updatevon' => $authUID + ) + ); + } + else + { + //add studentlehrverband + $result = $this->StudentlehrverbandModel->insert($newStudentlvb); + } $this->getDataOrTerminateWithError($result);