mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-25 00:24:35 +00:00
Merge branch 'werner/gehaelter_permission_fix' into feature-53904/Vertragshistorie_valorisierte_Gehaelter_anzeigen
This commit is contained in:
@@ -15,6 +15,13 @@ class GehaltsbestandteilLib
|
|||||||
protected $CI;
|
protected $CI;
|
||||||
/** @var Gehaltsbestandteil_model */
|
/** @var Gehaltsbestandteil_model */
|
||||||
protected $GehaltsbestandteilModel;
|
protected $GehaltsbestandteilModel;
|
||||||
|
/** @var Dienstverhaeltnis_model */
|
||||||
|
protected $DienstverhaeltnisModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var PermissionLib
|
||||||
|
*/
|
||||||
|
protected $PermissionLib;
|
||||||
|
|
||||||
protected $loggedInUser;
|
protected $loggedInUser;
|
||||||
|
|
||||||
@@ -24,8 +31,25 @@ class GehaltsbestandteilLib
|
|||||||
$this->CI = get_instance();
|
$this->CI = get_instance();
|
||||||
$this->CI->load->model('vertragsbestandteil/Gehaltsbestandteil_model',
|
$this->CI->load->model('vertragsbestandteil/Gehaltsbestandteil_model',
|
||||||
'GehaltsbestandteilModel');
|
'GehaltsbestandteilModel');
|
||||||
|
$this->CI->load->model('vertragsbestandteil/Dienstverhaeltnis_model',
|
||||||
|
'DienstverhaeltnisModel');
|
||||||
|
$this->DienstverhaeltnisModel = $this->CI->DienstverhaeltnisModel;
|
||||||
$this->CI->load->library('extensions/FHC-Core-Personalverwaltung/abrechnung/GehaltsLib');
|
$this->CI->load->library('extensions/FHC-Core-Personalverwaltung/abrechnung/GehaltsLib');
|
||||||
$this->GehaltsbestandteilModel = $this->CI->GehaltsbestandteilModel;
|
$this->GehaltsbestandteilModel = $this->CI->GehaltsbestandteilModel;
|
||||||
|
$this->CI->load->library('PermissionLib', null, 'PermissionLib');
|
||||||
|
$this->PermissionLib = $this->CI->PermissionLib;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function fetchDienstverhaeltnis($dienstverhaeltnis_id)
|
||||||
|
{
|
||||||
|
$result = $this->DienstverhaeltnisModel->load($dienstverhaeltnis_id);
|
||||||
|
$dv = null;
|
||||||
|
if(null !== ($row = getData($result)))
|
||||||
|
{
|
||||||
|
$dv = new Dienstverhaeltnis();
|
||||||
|
$dv->hydrateByStdClass($row[0], true);
|
||||||
|
}
|
||||||
|
return $dv;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function fetchGehaltsbestandteileValorisiertForChart($dienstverhaeltnis_id, $stichtag=null, $includefuture=false)
|
public function fetchGehaltsbestandteileValorisiertForChart($dienstverhaeltnis_id, $stichtag=null, $includefuture=false)
|
||||||
@@ -121,16 +145,24 @@ class GehaltsbestandteilLib
|
|||||||
{
|
{
|
||||||
$this->setUIDtoPGSQL();
|
$this->setUIDtoPGSQL();
|
||||||
|
|
||||||
// delete Gehaltsabrechnung
|
$dv = $this->fetchDienstverhaeltnis($gehaltsbestandteil->getDienstverhaeltnis_id());
|
||||||
$ret = $this->CI->gehaltslib->deleteAbrechnung($gehaltsbestandteil);
|
if($dv && $this->PermissionLib->isberechtigt('basis/gehaelter', 'd', $dv->getOe_kurzbz()))
|
||||||
|
|
||||||
//
|
|
||||||
$ret = $this->GehaltsbestandteilModel->delete($gehaltsbestandteil->getGehaltsbestandteil_id());
|
|
||||||
|
|
||||||
if (isError($ret))
|
|
||||||
{
|
{
|
||||||
throw new Exception('error deleting gehaltsbestandteil');
|
// delete Gehaltsabrechnung
|
||||||
|
$ret = $this->CI->gehaltslib->deleteAbrechnung($gehaltsbestandteil);
|
||||||
|
|
||||||
|
//
|
||||||
|
$ret = $this->GehaltsbestandteilModel->delete($gehaltsbestandteil->getGehaltsbestandteil_id());
|
||||||
|
|
||||||
|
if (isError($ret))
|
||||||
|
{
|
||||||
|
throw new Exception('error deleting gehaltsbestandteil');
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
throw new Exception('permission denied for deleting gehaltsbestandteil');
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function endGehaltsbestandteil(Gehaltsbestandteil $gehaltsbestandteil, $enddate)
|
public function endGehaltsbestandteil(Gehaltsbestandteil $gehaltsbestandteil, $enddate)
|
||||||
|
|||||||
@@ -34,6 +34,8 @@ class VertragsbestandteilLib
|
|||||||
protected $DienstverhaeltnisModel;
|
protected $DienstverhaeltnisModel;
|
||||||
/** @var Vertragsbestandteil_model */
|
/** @var Vertragsbestandteil_model */
|
||||||
protected $VertragsbestandteilModel;
|
protected $VertragsbestandteilModel;
|
||||||
|
/** @var GehaltsbestandeilModel */
|
||||||
|
protected $GehaltbestandteilModel;
|
||||||
/** @var Benutzer_model */
|
/** @var Benutzer_model */
|
||||||
protected $BenutzerModel;
|
protected $BenutzerModel;
|
||||||
/**
|
/**
|
||||||
@@ -58,6 +60,9 @@ class VertragsbestandteilLib
|
|||||||
$this->CI->load->model('vertragsbestandteil/Vertragsbestandteil_model',
|
$this->CI->load->model('vertragsbestandteil/Vertragsbestandteil_model',
|
||||||
'VertragsbestandteilModel');
|
'VertragsbestandteilModel');
|
||||||
$this->VertragsbestandteilModel = $this->CI->VertragsbestandteilModel;
|
$this->VertragsbestandteilModel = $this->CI->VertragsbestandteilModel;
|
||||||
|
$this->CI->load->model('vertragsbestandteil/Gehaltsbestandteil_model',
|
||||||
|
'GehaltbestandteilModel');
|
||||||
|
$this->GehaltbestandteilModel = $this->CI->GehaltbestandteilModel;
|
||||||
$this->CI->load->model('person/benutzer_model',
|
$this->CI->load->model('person/benutzer_model',
|
||||||
'BenutzerModel');
|
'BenutzerModel');
|
||||||
$this->BenutzerModel = $this->CI->BenutzerModel;
|
$this->BenutzerModel = $this->CI->BenutzerModel;
|
||||||
@@ -326,6 +331,15 @@ class VertragsbestandteilLib
|
|||||||
private function deleteVertragsbestandteilHelper(Vertragsbestandteil $vertragsbestandteil)
|
private function deleteVertragsbestandteilHelper(Vertragsbestandteil $vertragsbestandteil)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
$dv = $this->fetchDienstverhaeltnis($vertragsbestandteil->getDienstverhaeltnis_id());
|
||||||
|
$hasGehaltsPermission = $this->PermissionLib->isberechtigt('basis/gehaelter', 's', $dv->getOe_kurzbz());
|
||||||
|
$vbHasGehaltsbestandteile = $this->GehaltbestandteilModel->existsGehaltsbestandteil($vertragsbestandteil->getVertragsbestandteil_id());
|
||||||
|
|
||||||
|
if (!$hasGehaltsPermission && $vbHasGehaltsbestandteile)
|
||||||
|
{
|
||||||
|
throw new Exception('delete Gehaltsbestandteil permission denied');
|
||||||
|
}
|
||||||
|
|
||||||
$specialisedModel = VertragsbestandteilFactory::getVertragsbestandteilDBModel(
|
$specialisedModel = VertragsbestandteilFactory::getVertragsbestandteilDBModel(
|
||||||
$vertragsbestandteil->getVertragsbestandteiltyp_kurzbz());
|
$vertragsbestandteil->getVertragsbestandteiltyp_kurzbz());
|
||||||
$retspecial = $specialisedModel->delete($vertragsbestandteil->getVertragsbestandteil_id());
|
$retspecial = $specialisedModel->delete($vertragsbestandteil->getVertragsbestandteil_id());
|
||||||
|
|||||||
@@ -130,6 +130,15 @@ LEFT JOIN
|
|||||||
$this->getEncryptedColumns());
|
$this->getEncryptedColumns());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function existsGehaltsbestandteil($vertragsbestandteil_id)
|
||||||
|
{
|
||||||
|
$qry = "select count(*) from hr.tbl_gehaltsbestandteil where vertragsbestandteil_id=?";
|
||||||
|
$ret = $this->execQuery($qry,
|
||||||
|
array($vertragsbestandteil_id));
|
||||||
|
$d = getData($ret);
|
||||||
|
return $d !== null && $d > 0;
|
||||||
|
}
|
||||||
|
|
||||||
public function getGehaltsbestandteile($dienstverhaeltnis_id, $stichtag=null,
|
public function getGehaltsbestandteile($dienstverhaeltnis_id, $stichtag=null,
|
||||||
$includefuture=false, $withvalorisationhistory=true)
|
$includefuture=false, $withvalorisationhistory=true)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user