From ff6ddf8c46135b284550a55001441b7e4165ede7 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Tue, 6 Jun 2023 16:24:49 +0200 Subject: [PATCH] add methods to end dv --- .../GehaltsbestandteilLib.php | 15 +++++ .../VertragsbestandteilLib.php | 64 +++++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/application/libraries/vertragsbestandteil/GehaltsbestandteilLib.php b/application/libraries/vertragsbestandteil/GehaltsbestandteilLib.php index f70d5a58f..1253f752f 100644 --- a/application/libraries/vertragsbestandteil/GehaltsbestandteilLib.php +++ b/application/libraries/vertragsbestandteil/GehaltsbestandteilLib.php @@ -111,4 +111,19 @@ class GehaltsbestandteilLib throw new Exception('error deleting gehaltsbestandteil'); } } + + public function endGehaltsbestandteil(Gehaltsbestandteil $gehaltsbestandteil, $enddate) + { + $ret = $this->GehaltsbestandteilModel->update($gehaltsbestandteil->getGehaltsbestandteil_id(), + (object) array( + 'bis' => $enddate, + 'updatevon' => getAuthUID(), + 'updateamum' => strftime('%Y-%m-%d %H:%M') + )); + + if (isError($ret)) + { + throw new Exception('error ending gehaltsbestandteil'); + } + } } diff --git a/application/libraries/vertragsbestandteil/VertragsbestandteilLib.php b/application/libraries/vertragsbestandteil/VertragsbestandteilLib.php index 1585eab99..073eb84c2 100644 --- a/application/libraries/vertragsbestandteil/VertragsbestandteilLib.php +++ b/application/libraries/vertragsbestandteil/VertragsbestandteilLib.php @@ -359,4 +359,68 @@ class VertragsbestandteilLib $dv->getDienstverhaeltnis_id() ); } + + public function endDienstverhaeltnis(Dienstverhaeltnis $dv, $enddate) + { + $this->CI->db->trans_begin(); + try + { + if( intval($dv->getDienstverhaeltnis_id()) > 0 ) + { + $gbs = $this->GehaltsbestandteilLib->fetchGehaltsbestandteile($dv->getDienstverhaeltnis_id()); + foreach ($gbs as $gb) + { + $this->GehaltsbestandteilLib->endGehaltsbestandteil($gb, $enddate); + } + + $vbs = $this->fetchVertragsbestandteile($dv->getDienstverhaeltnis_id()); + foreach ($vbs as $vb) + { + $this->endVertragsbestandteil($vb, $enddate); + } + + $ret = $this->DienstverhaeltnisModel->update($dv->getDienstverhaeltnis_id(), + (object) array( + 'bis' => $enddate, + 'updatevon' => getAuthUID(), + 'updateamum' => strftime('%Y-%m-%d %H:%M') + )); + if(isError($ret) ) + { + log_message('debug', "end DV failed"); + throw new Exception('error ending dienstverhaeltnis ' + . $dv->getDienstverhaeltnis_id()); + } + + if( $this->CI->db->trans_status() === false ) + { + log_message('debug', "Transaction failed"); + throw new Exception("Transaction failed"); + } + $this->CI->db->trans_commit(); + } + } + catch (Exception $ex) + { + log_message('debug', "Transaction rolled back. " . $ex->getMessage()); + $this->CI->db->trans_rollback(); + return $ex->getMessage(); + } + return true; + } + + public function endVertragsbestandteil(Vertragsbestandteil $vertragsbestandteil, $enddate) + { + $ret = $this->VertragsbestandteilModel->update($vertragsbestandteil->getVertragsbestandteil_id(), + (object) array( + 'bis' => $enddate, + 'updatevon' => getAuthUID(), + 'updateamum' => strftime('%Y-%m-%d %H:%M') + )); + + if (isError($ret)) + { + throw new Exception('error ending vertragsbestandteil'); + } + } }