mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-20 00:12:15 +00:00
extend VertragsbestandteilFunktion to be able to create a Benutzerfunktion entry before being persited
This commit is contained in:
@@ -171,5 +171,9 @@ EOTXT;
|
||||
|
||||
}
|
||||
|
||||
public abstract function toStdClass();
|
||||
public function beforePersist() {
|
||||
// can be overridden in childs
|
||||
}
|
||||
|
||||
public abstract function toStdClass();
|
||||
}
|
||||
|
||||
@@ -12,22 +12,44 @@ use vertragsbestandteil\VertragsbestandteilFactory;
|
||||
class VertragsbestandteilFunktion extends Vertragsbestandteil
|
||||
{
|
||||
protected $benutzerfunktion_id;
|
||||
protected $anmerkung;
|
||||
protected $kuendigungsrelevant;
|
||||
protected $benutzerfunktiondata;
|
||||
|
||||
protected $CI;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->benutzerfunktiondata = null;
|
||||
|
||||
$this->setVertragsbestandteiltyp_kurzbz(
|
||||
VertragsbestandteilFactory::VERTRAGSBESTANDTEIL_FUNKTION);
|
||||
|
||||
$this->CI = get_instance();
|
||||
$this->CI->load->model('person/Benutzerfunktion_model',
|
||||
'BenutzerfunktionModel');
|
||||
}
|
||||
|
||||
public function beforePersist()
|
||||
{
|
||||
if( $this->benutzerfunktiondata === null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
$ret = $this->BenutzerfunktionModel->insert($this->benutzerfunktiondata);
|
||||
|
||||
if(isError($ret) )
|
||||
{
|
||||
throw new Exception('failed to create Benutzerfunktion');
|
||||
}
|
||||
|
||||
$this->setBenutzerfunktion_id(getData($ret));
|
||||
}
|
||||
|
||||
public function toStdClass()
|
||||
{
|
||||
$tmp = array(
|
||||
'vertragsbestandteil_id' => $this->getVertragsbestandteil_id(),
|
||||
'benutzerfunktion_id' => $this->getBenutzerfunktion_id(),
|
||||
'anmerkung' => $this->getAnmerkung(),
|
||||
'kuendigungsrelevant' => $this->getKuendigungsrelevant()
|
||||
'benutzerfunktion_id' => $this->getBenutzerfunktion_id()
|
||||
);
|
||||
|
||||
$tmp = array_filter($tmp, function($v) {
|
||||
@@ -41,8 +63,6 @@ class VertragsbestandteilFunktion extends Vertragsbestandteil
|
||||
{
|
||||
$txt = <<<EOTXT
|
||||
benutzerfunktion_id: {$this->getBenutzerfunktion_id()}
|
||||
anmerkung: {$this->getAnmerkung()}
|
||||
kuendigungsrelevant: {$this->getKuendigungsrelevant()}
|
||||
|
||||
EOTXT;
|
||||
return parent::__toString() . $txt;
|
||||
@@ -52,39 +72,32 @@ EOTXT;
|
||||
{
|
||||
parent::hydrateByStdClass($data);
|
||||
isset($data->benutzerfunktion_id) && $this->setBenutzerfunktion_id($data->benutzerfunktion_id);
|
||||
isset($data->anmerkung) && $this->setAnmerkung($data->anmerkung);
|
||||
isset($data->kuendigungsrelevant) && $this->setKuendigungsrelevant($data->kuendigungsrelevant);
|
||||
isset($data->funktion_kurzbz) && isset($data->oe_kurzbz)
|
||||
&& isset($mitarbeiter_uid) && $this->createBenutzerfunktionData($data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function getBenutzerfunktion_id()
|
||||
{
|
||||
return $this->benutzerfunktion_id;
|
||||
}
|
||||
|
||||
public function getAnmerkung()
|
||||
{
|
||||
return $this->anmerkung;
|
||||
}
|
||||
|
||||
public function getKuendigungsrelevant()
|
||||
{
|
||||
return $this->kuendigungsrelevant;
|
||||
}
|
||||
|
||||
public function setBenutzerfunktion_id($benutzerfunktion_id)
|
||||
{
|
||||
$this->benutzerfunktion_id = $benutzerfunktion_id;
|
||||
return $this;
|
||||
}
|
||||
public function setAnmerkung($anmerkung)
|
||||
|
||||
protected function createBenutzerfunktionData($data)
|
||||
{
|
||||
$this->anmerkung = $anmerkung;
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function setKuendigungsrelevant($kuendigungsrelevant)
|
||||
{
|
||||
$this->kuendigungsrelevant = $kuendigungsrelevant;
|
||||
return $this;
|
||||
$this->benutzerfunktiondata = (object) array(
|
||||
'funktion_kurzbz' => $data->funktion_kurzbz,
|
||||
'oe_kurzbz' => $data->oe_kurzbz,
|
||||
'uid' => $data->mitarbeiter_uid,
|
||||
'datum_von' => $this->getVon(),
|
||||
'datum_bis' => $this->getBis(),
|
||||
'insertamum' => strftime('%Y-%m-%d %H:%M:%s'),
|
||||
'insertvon' => getAuthUID()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ class VertragsbestandteilLib
|
||||
protected function insertVertragsbestandteil(Vertragsbestandteil $vertragsbestandteil,
|
||||
Vertragsbestandteil $vertragsbestandteil_secondary = null /* i.e. Gehaltsbestandteil connected to Stunden*/)
|
||||
{
|
||||
$vertragsbestandteil->beforePersist();
|
||||
$ret = $this->VertragsbestandteilModel->insert($vertragsbestandteil->baseToStdClass());
|
||||
if( hasData($ret) )
|
||||
{
|
||||
@@ -134,6 +135,7 @@ class VertragsbestandteilLib
|
||||
{
|
||||
$vertragsbestandteil->setUpdateamum(strftime('%Y-%m-%d %H:%M'))
|
||||
->setUpdatevon('ma0080');
|
||||
$vertragsbestandteil->beforePersist();
|
||||
$ret = $this->VertragsbestandteilModel->update($vertragsbestandteil->getVertragsbestandteil_id(),
|
||||
$vertragsbestandteil->baseToStdClass());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user