From bb0776a80824b69a5de2d29d84fd55ee6314aac6 Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 20 Apr 2021 16:40:19 +0200 Subject: [PATCH] Added method createAnrechnungsantrag to Anrechnungsmodel + Refactored code Moved code from Controller to Anrechnungmodel. Signed-off-by: cris-technikum --- .../lehre/anrechnung/CreateAnrechnung.php | 38 +++++--------- .../lehre/anrechnung/RequestAnrechnung.php | 40 +++++--------- .../models/education/Anrechnung_model.php | 52 ++++++++++++++++++- 3 files changed, 76 insertions(+), 54 deletions(-) diff --git a/application/controllers/lehre/anrechnung/CreateAnrechnung.php b/application/controllers/lehre/anrechnung/CreateAnrechnung.php index 20bf10e2f..1102b7670 100644 --- a/application/controllers/lehre/anrechnung/CreateAnrechnung.php +++ b/application/controllers/lehre/anrechnung/CreateAnrechnung.php @@ -148,36 +148,22 @@ class CreateAnrechnung extends Auth_Controller $this->terminateWithJsonError($result->retval); } - // Store just inserted DMS ID + // Hold just inserted DMS ID $lastInsert_dms_id = $result->retval['dms_id']; - // Start DB transaction - $this->db->trans_start(false); + // Save Anrechnung and Anrechnungstatus + $result = $this->AnrechnungModel->createAnrechnungsantrag( + $prestudent_id, + $studiensemester_kurzbz, + $lehrveranstaltung_id, + $begruendung_id, + $lastInsert_dms_id, + $herkunftKenntnisse + ); - // Save Anrechnung - $result = $this->AnrechnungModel->insert(array( - 'prestudent_id' => $prestudent_id, - 'lehrveranstaltung_id' => $lehrveranstaltung_id, - 'begruendung_id' => $begruendung_id, - 'dms_id' => $lastInsert_dms_id, - 'studiensemester_kurzbz' => $studiensemester_kurzbz, - 'anmerkung_student' => $herkunftKenntnisse, - 'insertvon' => $this->_uid - )); - - // Store just inserted Anrechnung ID - $lastInsert_anrechnung_id = $result->retval; - - // Save Anrechnungstatus - $this->AnrechnungModel->saveAnrechnungstatus($lastInsert_anrechnung_id, self::ANRECHNUNGSTATUS_PROGRESSED_BY_STGL); - - // Transaction complete - $this->db->trans_complete(); - - if ($this->db->trans_status() === false) + if (isError($result)) { - $this->db->trans_rollback(); - show_error('Failed inserting Anrechnung', EXIT_ERROR); + $this->terminateWithJsonError(getError($result)); } // Success response to AJAX diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php index 024e080d7..99d5f7161 100644 --- a/application/controllers/lehre/anrechnung/RequestAnrechnung.php +++ b/application/controllers/lehre/anrechnung/RequestAnrechnung.php @@ -158,40 +158,26 @@ class requestAnrechnung extends Auth_Controller return $this->outputJsonError($result->retval); } - // Store just inserted DMS ID + // Hold just inserted DMS ID $lastInsert_dms_id = $result->retval['dms_id']; - // Start DB transaction - $this->db->trans_start(false); + // Save Anrechnung and Anrechnungstatus + $result = $this->AnrechnungModel->createAnrechnungsantrag( + $prestudent_id, + $studiensemester_kurzbz, + $lehrveranstaltung_id, + $begruendung_id, + $lastInsert_dms_id, + $anmerkung + ); - // Save Anrechnung - $result = $this->AnrechnungModel->insert(array( - 'prestudent_id' => $prestudent_id, - 'lehrveranstaltung_id' => $lehrveranstaltung_id, - 'begruendung_id' => $begruendung_id, - 'dms_id' => $lastInsert_dms_id, - 'studiensemester_kurzbz' => $studiensemester_kurzbz, - 'anmerkung_student' => $anmerkung, - 'insertvon' => $this->_uid - )); - - // Store just inserted Anrechnung ID - $lastInsert_anrechnung_id = $result->retval; - - // Save Anrechnungstatus - $this->AnrechnungModel->saveAnrechnungstatus($lastInsert_anrechnung_id, self::ANRECHNUNGSTATUS_PROGRESSED_BY_STGL); - - // Transaction complete - $this->db->trans_complete(); - - if ($this->db->trans_status() === false) + if (isError($result)) { - $this->db->trans_rollback(); - show_error('Failed inserting Anrechnung', EXIT_ERROR); + $this->terminateWithJsonError(getError($result)); } // Output to AJAX - return $this->outputJsonSuccess(array( + $this->outputJsonSuccess(array( 'antragdatum' => (new DateTime())->format('d.m.Y'), 'dms_id' => $lastInsert_dms_id )); diff --git a/application/models/education/Anrechnung_model.php b/application/models/education/Anrechnung_model.php index ce0cfe8d8..d3d1561ba 100644 --- a/application/models/education/Anrechnung_model.php +++ b/application/models/education/Anrechnung_model.php @@ -1,7 +1,8 @@ pk = 'anrechnung_id'; } + /** + * Creates new Anrechnungsantrag. + * Saves new Anrechnung and sets Anrechnungstatus for the new Anrechnung. + * + * @param $prestudent_id + * @param $studiensemester_kurzbz + * @param $lehrveranstaltung_id + * @param $begruendung_id + * @param $dms_id DMS ID of uploaded Nachweisdokument + * @param null $anmerkung_student = Herkunft der Kenntnisse + * @return array + */ + public function createAnrechnungsantrag( + $prestudent_id, $studiensemester_kurzbz, $lehrveranstaltung_id, + $begruendung_id, $dms_id, $anmerkung_student = null + ) + { + // Start DB transaction + $this->db->trans_start(false); + + // Save Anrechnung + $result = $this->AnrechnungModel->insert(array( + 'prestudent_id' => $prestudent_id, + 'lehrveranstaltung_id' => $lehrveranstaltung_id, + 'begruendung_id' => $begruendung_id, + 'dms_id' => $dms_id, + 'studiensemester_kurzbz' => $studiensemester_kurzbz, + 'anmerkung_student' => $anmerkung_student, + 'insertvon' => $this->_uid + )); + + // Store just inserted Anrechnung ID + $lastInsert_anrechnung_id = $result->retval; + + // Save Anrechnungstatus + $this->AnrechnungModel->saveAnrechnungstatus($lastInsert_anrechnung_id, self::ANRECHNUNGSTATUS_PROGRESSED_BY_STGL); + + // Transaction complete + $this->db->trans_complete(); + + if ($this->db->trans_status() === false) + { + $this->db->trans_rollback(); + return error('Failed inserting Anrechnung', EXIT_ERROR); + } + + return success(); + } + /** * Save Anrechnungstatus. * @param $anrechnung_id