From 8d09ee7299f5d1c40821e1980818f8ae58996450 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 28 Jan 2021 11:22:14 +0100 Subject: [PATCH] Modified to update Zeugnisnote, if already exists During approving process the zeugnisnote is set to 6 (angerechnet). If zeugnisnote already exists, it will be updated now. Signed-off-by: cris-technikum --- .../ApproveAnrechnungUebersicht.php | 2 +- .../lehre/anrechnung/RequestAnrechnung.php | 5 +- .../anrechnung/ReviewAnrechnungUebersicht.php | 8 ++- application/libraries/AnrechnungLib.php | 52 ++++++++++++++++--- 4 files changed, 57 insertions(+), 10 deletions(-) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php index 7b66a728c..829b3139a 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php @@ -1,6 +1,6 @@ load->view('lehre/anrechnung/requestAnrechnung.php', $viewData); } + /** + * Apply Anrechnungsantrag and send to STGL + */ public function apply() { $anmerkung = $this->input->post('anmerkung'); diff --git a/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php index bbf391281..6f777736f 100644 --- a/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php +++ b/application/controllers/lehre/anrechnung/ReviewAnrechnungUebersicht.php @@ -1,6 +1,6 @@ _uid) show_error('User authentification failed'); } + /** + * Send mails to STGL (if not present then to STGL assistance) + * @param $mail_params + * @param $empfehlung + * @return bool + */ private function _sendSanchoMails($mail_params, $empfehlung) { // Get studiengaenge diff --git a/application/libraries/AnrechnungLib.php b/application/libraries/AnrechnungLib.php index 17b2538a6..f9a0bc2a9 100644 --- a/application/libraries/AnrechnungLib.php +++ b/application/libraries/AnrechnungLib.php @@ -145,6 +145,11 @@ class AnrechnungLib return success($anrechnung_data); } + /** + * Get students data by Anrechnung + * @param $anrechnung_id + * @return mixed + */ public function getStudentData($anrechnung_id) { if (!is_numeric($anrechnung_id)) @@ -233,18 +238,50 @@ class AnrechnungLib $this->ci->AnrechnungModel->addSelect('lehrveranstaltung_id, student_uid, studiensemester_kurzbz'); $this->ci->AnrechnungModel->addJoin('public.tbl_student', 'prestudent_id'); $anrechnung = getData($this->ci->AnrechnungModel->load($anrechnung_id))[0]; - $result = $this->ci->ZeugnisnoteModel->insert(array( + + // Check if zeugnisnote exists + $result = $this->ci->ZeugnisnoteModel->loadWhere(array( 'lehrveranstaltung_id' => $anrechnung->lehrveranstaltung_id, 'student_uid' => $anrechnung->student_uid, - 'studiensemester_kurzbz' => $anrechnung->studiensemester_kurzbz, - 'uebernahmedatum' => (new DateTime())->format('Y-m-d H:m:i'), - 'benotungsdatum' => (new DateTime())->format('Y-m-d H:m:i'), - 'note' => 6, - 'insertvon' => $stgl_uid, - 'bemerkung' => 'Digitale Anrechnung' + 'studiensemester_kurzbz' => $anrechnung->studiensemester_kurzbz ) ); + // If zeugnisnote exists, update... + if (hasData($result)) + { + $this->ci->ZeugnisnoteModel->update( + array( + 'lehrveranstaltung_id' => $anrechnung->lehrveranstaltung_id, + 'student_uid' => $anrechnung->student_uid, + 'studiensemester_kurzbz' => $anrechnung->studiensemester_kurzbz + ), + array( + 'uebernahmedatum' => (new DateTime())->format('Y-m-d H:m:i'), + 'benotungsdatum' => (new DateTime())->format('Y-m-d H:m:i'), + 'note' => 6, + 'insertvon' => $stgl_uid, + 'bemerkung' => 'Digitale Anrechnung' + ) + ); + + } + // ...otherwise insert + else + { + $this->ci->ZeugnisnoteModel->insert(array( + 'lehrveranstaltung_id' => $anrechnung->lehrveranstaltung_id, + 'student_uid' => $anrechnung->student_uid, + 'studiensemester_kurzbz' => $anrechnung->studiensemester_kurzbz, + 'uebernahmedatum' => (new DateTime())->format('Y-m-d H:m:i'), + 'benotungsdatum' => (new DateTime())->format('Y-m-d H:m:i'), + 'note' => 6, + 'insertvon' => $stgl_uid, + 'bemerkung' => 'Digitale Anrechnung' + ) + ); + } + // Transaction complete $this->ci->db->trans_complete(); @@ -448,6 +485,7 @@ class AnrechnungLib return success(true); // recommended } + // Return an object with Anrechnungdata private function _setAnrechnungDataObject($anrechnung) { $anrechnung_data = new StdClass();