From 8d2c85734ec76ba9ba89d427ece74c86f509eb8b Mon Sep 17 00:00:00 2001 From: Cris Date: Tue, 29 Oct 2019 13:16:38 +0100 Subject: [PATCH] Adapted Controller to UPDATE also CHANGED HOURS Up to now changes were identified only by comparing betrag with vertrag_betrag. Problem is: when a new Lehrauftrag betrag is set with 0 or NULL and only hours are set, a later change of hours cannot be identified (as the betrag and vertrag_betrag do not change). This is fixed now. --- .../lehre/lehrauftrag/Lehrauftrag.php | 44 ++++++++++++------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php index 3d108e791..60bc2c791 100644 --- a/application/controllers/lehre/lehrauftrag/Lehrauftrag.php +++ b/application/controllers/lehre/lehrauftrag/Lehrauftrag.php @@ -128,8 +128,8 @@ class Lehrauftrag extends Auth_Controller $mitarbeiter_uid = (isset($lehrauftrag->mitarbeiter_uid)) ? $lehrauftrag->mitarbeiter_uid : null; $vertrag_id = (isset($lehrauftrag->vertrag_id)) ? $lehrauftrag->vertrag_id : null; $projektarbeit_id = (isset($lehrauftrag->projektarbeit_id)) ? $lehrauftrag->projektarbeit_id : null; - $stunden = (isset($lehrauftrag->stunden)) ? $lehrauftrag->stunden : null; - $betrag = (isset($lehrauftrag->betrag)) ? $lehrauftrag->betrag : null; + $stunden = (isset($lehrauftrag->stunden)) ? $lehrauftrag->stunden : 0; + $betrag = (isset($lehrauftrag->betrag)) ? $lehrauftrag->betrag : 0; $vertrag_betrag = (isset($lehrauftrag->vertrag_betrag)) ? $lehrauftrag->vertrag_betrag : null; $studiensemester_kurzbz = (isset($lehrauftrag->studiensemester_kurzbz)) ? $lehrauftrag->studiensemester_kurzbz : null; $studiengang_kz = (isset($lehrauftrag->studiengang_kz)) ? $lehrauftrag->studiengang_kz : null; @@ -140,24 +140,36 @@ class Lehrauftrag extends Auth_Controller } // update contract if contract exists and the betrag was changed - $hasChanged = (floatval($betrag) != floatval($vertrag_betrag)) ? true : false; - if (!is_null($vertrag_id) && $hasChanged) + if (!is_null($vertrag_id)) { - $result = $this->VertragModel->updateVertrag( - $vertrag_id, - $stunden, - $betrag, - $mitarbeiter_uid - ); + $this->VertragModel->addSelect('vertragsstunden, betrag'); - if (isSuccess($result)) + if($result = getData($this->VertragModel->load($vertrag_id))) { - $json []= array( - 'row_index' => $lehrauftrag->row_index, - 'bestellt' => date('Y-m-d'), - 'vertrag_betrag' => $betrag, - 'erteilt' => null + $vertrag_betrag = $result[0]->betrag; + $vertrag_stunden = $result[0]->vertragsstunden; + } + + $hasChanged = ($betrag != floatval($vertrag_betrag) || $stunden != $vertrag_stunden) ? true : false; + + if ($hasChanged) + { + $result = $this->VertragModel->updateVertrag( + $vertrag_id, + $stunden, + $betrag, + $mitarbeiter_uid ); + + if (isSuccess($result)) + { + $json []= array( + 'row_index' => $lehrauftrag->row_index, + 'bestellt' => date('Y-m-d'), + 'vertrag_betrag' => $betrag, + 'erteilt' => null + ); + } } } // else save new contract