add methods to end dv

This commit is contained in:
Harald Bamberger
2023-06-06 16:24:49 +02:00
parent 42a6dd7508
commit ff6ddf8c46
2 changed files with 79 additions and 0 deletions
@@ -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');
}
}
}
@@ -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');
}
}
}