Added method createAnrechnungsantrag to Anrechnungsmodel + Refactored code

Moved code from Controller to Anrechnungmodel.

Signed-off-by: cris-technikum <hainberg@technikum-wien.at>
This commit is contained in:
Cris
2021-04-20 16:40:19 +02:00
committed by cris-technikum
parent 356435dbdd
commit bb0776a808
3 changed files with 76 additions and 54 deletions
@@ -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
@@ -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
));
@@ -1,7 +1,8 @@
<?php
class Anrechnung_model extends DB_Model
{
const ANRECHNUNGSTATUS_PROGRESSED_BY_STGL = 'inProgressDP';
/**
* Constructor
*/
@@ -12,6 +13,55 @@ class Anrechnung_model extends DB_Model
$this->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