From 1af0ed466bed8dc693c020989215d4396c06471c Mon Sep 17 00:00:00 2001 From: Cris Date: Fri, 11 Oct 2019 13:38:58 +0200 Subject: [PATCH] Added UPDATE contract logic to Controller orderLehrauftrag() If a contract already exist and there is a difference between the origin contract betrag and the lehrauftrag/projektbetreuer-betrag (after FAS changes), the contract is updated. --- .../lehre/lehrauftrag/Lehrauftrag.php | 115 +++++++++++++++--- 1 file changed, 97 insertions(+), 18 deletions(-) diff --git a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php index 52fec3907..0c564bce5 100644 --- a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php +++ b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php @@ -100,28 +100,70 @@ class Lehrauftrag extends Auth_Controller public function orderLehrauftrag() { - $result = array(); $new_lehrvertrag_data_arr = array(); // information of new lehrvertraege to be used in mail + $lehrauftrag_arr = $this->input->post('selected_data'); - foreach ($_POST as $lehrauftrag) + // Loop through lehraufträge + if(is_array($lehrauftrag_arr)) { - if (!isEmptyArray($lehrauftrag)) { - if ($this->VertragModel->save( - element('person_id', $lehrauftrag), - element('mitarbeiter_uid', $lehrauftrag), - element('lehrveranstaltung_id', $lehrauftrag), - element('lehreinheit_id', $lehrauftrag), - element('projektarbeit_id', $lehrauftrag), - element('stunden', $lehrauftrag), - element('betrag', $lehrauftrag), - element('studiensemester_kurzbz', $lehrauftrag) - )->retval) + foreach($lehrauftrag_arr as $lehrauftrag) + { + $lehreinheit_id = (isset($lehrauftrag['lehreinheit_id']) && is_numeric($lehrauftrag['lehreinheit_id'])) ? $lehrauftrag['lehreinheit_id'] : null; + $lehrveranstaltung_id = (isset($lehrauftrag['lehrveranstaltung_id']) && is_numeric($lehrauftrag['lehrveranstaltung_id'])) ? $lehrauftrag['lehrveranstaltung_id'] : null; + $person_id = (isset($lehrauftrag['person_id']) && is_numeric($lehrauftrag['person_id'])) ? $lehrauftrag['person_id'] : null; + $mitarbeiter_uid = (isset($lehrauftrag['mitarbeiter_uid']) && is_string($lehrauftrag['mitarbeiter_uid'])) ? $lehrauftrag['mitarbeiter_uid'] : null; + $vertrag_id = (isset($lehrauftrag['vertrag_id']) && is_numeric($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null; + $projektarbeit_id = (isset($lehrauftrag['projektarbeit_id']) && is_numeric($lehrauftrag['projektarbeit_id'])) ? $lehrauftrag['projektarbeit_id'] : null; + $stunden = (isset($lehrauftrag['stunden']) && is_numeric($lehrauftrag['stunden'])) ? $lehrauftrag['stunden'] : null; + $betrag = (isset($lehrauftrag['betrag']) && is_numeric($lehrauftrag['betrag'])) ? $lehrauftrag['betrag'] : null; + $vertrag_betrag = (isset($lehrauftrag['vertrag_betrag']) && is_numeric($lehrauftrag['vertrag_betrag'])) ? $lehrauftrag['vertrag_betrag'] : null; + $studiensemester_kurzbz = (isset($lehrauftrag['studiensemester_kurzbz']) && is_string($lehrauftrag['studiensemester_kurzbz'])) ? $lehrauftrag['betrag'] : null; + + // update contract if contract exists and the betrag was changed + $hasChanged = (floatval($betrag) != floatval($vertrag_betrag)) ? true : false; + if (!is_null($vertrag_id) && $hasChanged) { - $result []= array( - 'row_index' => $lehrauftrag['row_index'], - 'bestellt' => date('Y-m-d') + $vertrag_obj = new StdClass(); + $vertrag_obj->vertrag_id = $vertrag_id; + $vertrag_obj->vertragsstunden = $stunden; + $vertrag_obj->betrag = $betrag; + + $result = $this->VertragModel->updateVertrag( + $vertrag_obj, + $mitarbeiter_uid ); + if (isSuccess($result)) + { + $json []= array( + 'row_index' => $lehrauftrag['row_index'], + 'bestellt' => date('Y-m-d'), + 'erteilt' => null + ); + } + } + // else save new contract + else + { + $result = $this->VertragModel->save( + element('person_id', $lehrauftrag), + element('mitarbeiter_uid', $lehrauftrag), + element('lehrveranstaltung_id', $lehrauftrag), + element('lehreinheit_id', $lehrauftrag), + element('projektarbeit_id', $lehrauftrag), + element('stunden', $lehrauftrag), + element('betrag', $lehrauftrag), + element('studiensemester_kurzbz', $lehrauftrag) + ); + + if (isSuccess($result)) + { + $json []= array( + 'row_index' => $lehrauftrag['row_index'], + 'bestellt' => date('Y-m-d') + ); + } + $new_lehrvertrag_data_arr[] = array( 'studiensemester_kurzbz' => $lehrauftrag['studiensemester_kurzbz'], 'studiengang_kz' => $lehrauftrag['studiengang_kz'], @@ -131,9 +173,9 @@ class Lehrauftrag extends Auth_Controller } } - if (!isEmptyArray($result)) + if (isset($json) && !isEmptyArray($json)) { - $this->outputJsonSuccess($result); + $this->outputJsonSuccess($json); } // Send email to Mitarbeiter @@ -235,4 +277,41 @@ class Lehrauftrag extends Auth_Controller return $unique_new_lehrvertrag_data_arr; } + + private function validateGetPost($lehrauftrag){ + $lehreinheit_id = (isset($lehrauftrag['lehreinheit_id']) && is_numeric($lehrauftrag['lehreinheit_id'])) ? $lehrauftrag['lehreinheit_id'] : null; + $lehrveranstaltung_id = (isset($lehrauftrag['lehrveranstaltung_id']) && is_numeric($lehrauftrag['lehrveranstaltung_id'])) ? $lehrauftrag['lehrveranstaltung_id'] : null; + $person_id = (isset($lehrauftrag['person_id']) && is_numeric($lehrauftrag['person_id'])) ? $lehrauftrag['person_id'] : null; + $mitarbeiter_uid = (isset($lehrauftrag['mitarbeiter_uid']) && is_string($lehrauftrag['mitarbeiter_uid'])) ? $lehrauftrag['mitarbeiter_uid'] : null; + $vertrag_id = (isset($lehrauftrag['vertrag_id']) && is_numeric($lehrauftrag['vertrag_id'])) ? $lehrauftrag['vertrag_id'] : null; + $projektarbeit_id = (isset($lehrauftrag['projektarbeit_id']) && is_numeric($lehrauftrag['projektarbeit_id'])) ? $lehrauftrag['projektarbeit_id'] : null; + $stunden = (isset($lehrauftrag['stunden']) && is_numeric($lehrauftrag['stunden'])) ? $lehrauftrag['stunden'] : null; + $betrag = (isset($lehrauftrag['betrag']) && is_numeric($lehrauftrag['betrag'])) ? $lehrauftrag['betrag'] : null; + $studiensemester_kurzbz = (isset($lehrauftrag['studiensemester_kurzbz']) && is_string($lehrauftrag['studiensemester_kurzbz'])) ? $lehrauftrag['betrag'] : null; + + return array( + $lehreinheit_id, + $lehrveranstaltung_id, + $person_id, + $mitarbeiter_uid, + $vertrag_id, + $projektarbeit_id, + $stunden, + $betrag, + $studiensemester_kurzbz + ); + +// LIST IS TO BE SET ABOVE!!!: +// list( +// $lehreinheit_id, +// $lehrveranstaltung_id, +// $person_id, +// $mitarbeiter_uid, +// $vertrag_id, +// $projektarbeit_id, +// $stunden, +// $betrag, +// $studiensemester_kurzbz +// ) = $this->_validateGetPost($lehrauftrag); + } }