From 8566039cc49506e37dc67ca95dad1c5fc6dbf4f6 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 19 Sep 2019 13:23:12 +0200 Subject: [PATCH] Fixed: Added check before DB insert A check was missing if the contract already had that status. Error was given. This is fixed now. --- .../models/accounting/Vertrag_model.php | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/application/models/accounting/Vertrag_model.php b/application/models/accounting/Vertrag_model.php index 181f89ab7..c135a5572 100644 --- a/application/models/accounting/Vertrag_model.php +++ b/application/models/accounting/Vertrag_model.php @@ -115,7 +115,7 @@ class Vertrag_model extends DB_Model // If updating vertrag_id was successfully, set Status to 'bestellt' if (isSuccess($result)) { - $result = $this->setStatus($vertrag_id, 'bestellt', $mitarbeiter_uid); + $result = $this->setStatus($vertrag_id, $mitarbeiter_uid,'bestellt'); } // Transaction complete! @@ -142,10 +142,25 @@ class Vertrag_model extends DB_Model * @param $vertrag_id * @param $vertragsstatus_kurzbz * @param $mitarbeiter_uid - * @return array|null On success object. On failure null. + * @return array|null On success object, retval is true. Null if status already exist for this vertrag. */ - public function setStatus($vertrag_id, $vertragsstatus_kurzbz, $mitarbeiter_uid){ + public function setStatus($vertrag_id, $mitarbeiter_uid, $vertragsstatus_kurzbz){ + // First check if vertrag has already this status + $this->addJoin('lehre.tbl_vertrag_vertragsstatus', 'vertrag_id'); + + $result = $this->loadWhere(array( + 'vertrag_id' => $vertrag_id, + 'uid' => $mitarbeiter_uid, + 'vertragsstatus_kurzbz' => $vertragsstatus_kurzbz + )); + + if (!isEmptyArray($result->retval)) + { + return success(null); // return null if status already set + } + + // Set new status $query = ' INSERT INTO lehre.tbl_vertrag_vertragsstatus( vertragsstatus_kurzbz,