update vertragsbestandteile

This commit is contained in:
Werner Masik
2023-05-16 17:05:49 +02:00
parent a198a740f4
commit 24bf2f95a2
4 changed files with 94 additions and 55 deletions
@@ -21,6 +21,7 @@ class VertragsbestandteilFreitext extends Vertragsbestandteil
{
parent::hydrateByStdClass($data);
isset($data->freitexttyp) && $this->setFreitexttypKurzbz($data->freitexttyp);
isset($data->freitexttyp_kurzbz) && $this->setFreitexttypKurzbz($data->freitexttyp_kurzbz);
isset($data->titel) && $this->setTitel($data->titel);
isset($data->freitext) && $this->setAnmerkung($data->freitext);
}
@@ -73,8 +73,11 @@ EOTXT;
{
parent::hydrateByStdClass($data);
isset($data->benutzerfunktionid) && $this->setBenutzerfunktion_id($data->benutzerfunktionid);
isset($data->benutzerfunktion_id) && $this->setBenutzerfunktion_id($data->benutzerfunktion_id);
isset($data->funktion) && isset($data->orget)
&& isset($data->mitarbeiter_uid) && $this->createBenutzerfunktionData($data);
isset($data->funktion_bezeichnung) && isset($data->oe_bezeichnung)
&& $this->createBenutzerfunktionData4Display($data);
}
@@ -106,6 +109,22 @@ EOTXT;
'insertvon' => getAuthUID()
);
}
protected function createBenutzerfunktionData4Display($data)
{
if( empty($data->funktion_bezeichnung) || empty($data->oe_bezeichnung) )
{
return;
}
$this->benutzerfunktiondata = (object) array(
'funktion_kurzbz' => $data->funktion_kurzbz,
'funktion_bezeichnung' => $data->funktion_bezeichnung,
'oe_kurzbz' => $data->oe_kurzbz,
'oe_bezeichnung' => $data->oe_bezeichnung,
'oe_kurzbz_sap' => $data->oe_kurzbz_sap
);
}
public function validate()
{
@@ -28,7 +28,7 @@ class Gehaltsbestandteil_model extends DB_Model implements IEncryption
}
public function getCurrentGBTByDV($dienstverhaeltnis_id)
{
{/*
$qry = "
SELECT
gehaltsbestandteil_id,
@@ -39,13 +39,31 @@ class Gehaltsbestandteil_model extends DB_Model implements IEncryption
gehaltstyp_kurzbz,
valorisierungssperre,
gbt.valorisierung,
grundbetrag,
betrag_valorisiert,
grundbetrag as grund_betrag_decrypted,
betrag_valorisiert as betrag_val_decrypted,
gt.bezeichnung as gehaltstyp_bezeichnung
FROM hr.tbl_gehaltsbestandteil gbt JOIN hr.tbl_gehaltstyp gt using(gehaltstyp_kurzbz)
WHERE gbt.dienstverhaeltnis_id=? AND
(gbt.von<=CURRENT_DATE::text::date and (gbt.bis is null OR gbt.bis>=CURRENT_DATE::text::date))
ORDER BY gt.sort
"; */
$qry = "
SELECT
gehaltsbestandteil_id,
von,
bis,
anmerkung,
dienstverhaeltnis_id,
gehaltstyp_kurzbz,
valorisierungssperre,
gbt.valorisierung,
grundbetrag as grund_betrag_decrypted,
betrag_valorisiert as betrag_val_decrypted,
gt.bezeichnung as gehaltstyp_bezeichnung
FROM hr.tbl_gehaltsbestandteil gbt JOIN hr.tbl_gehaltstyp gt using(gehaltstyp_kurzbz)
WHERE gbt.dienstverhaeltnis_id=?
ORDER BY gt.sort
";
return $this->execQuery($qry, array($dienstverhaeltnis_id), $this->getEncryptedColumns());
@@ -17,6 +17,48 @@ class Vertragsbestandteil_model extends DB_Model
$this->pk = 'vertragsbestandteil_id';
}
protected function getVertragsbestandteilSQL()
{
$sql = <<<EOSQL
SELECT
v.*,
bf.funktion_kurzbz, funktion.beschreibung funktion_bezeichnung,
oe.oe_kurzbz, oe.bezeichnung oe_bezeichnung, sap.oe_kurzbz_sap,
ft.freitexttyp_kurzbz, ft.titel, ft.anmerkung,
f.benutzerfunktion_id,
k.karenztyp_kurzbz, k.geplanter_geburtstermin, k.tatsaechlicher_geburtstermin,
kf.arbeitgeber_frist, kf.arbeitnehmer_frist,
s.wochenstunden, s.teilzeittyp_kurzbz,
u.tage,
z.zeitaufzeichnung, z.azgrelevant, z.homeoffice
FROM
hr.tbl_vertragsbestandteil v
LEFT JOIN
hr.tbl_vertragsbestandteil_freitext ft USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_funktion f USING(vertragsbestandteil_id)
LEFT JOIN
public.tbl_benutzerfunktion bf USING(benutzerfunktion_id)
LEFT JOIN
public.tbl_funktion funktion USING(funktion_kurzbz)
LEFT JOIN
public.tbl_organisationseinheit oe USING(oe_kurzbz)
LEFT JOIN
sync.tbl_sap_organisationsstruktur sap USING(oe_kurzbz)
LEFT JOIN
hr.tbl_vertragsbestandteil_karenz k USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_kuendigungsfrist kf USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_stunden s USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_urlaubsanspruch u USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_zeitaufzeichnung z USING(vertragsbestandteil_id)
EOSQL;
return $sql;
}
public function getVertragsbestandteile($dienstverhaeltnis_id=1, $stichtag=null)
{
$stichtagclause = '';
@@ -29,31 +71,7 @@ class Vertragsbestandteil_model extends DB_Model
}
$sql = <<<EOSQL
SELECT
v.*,
ft.freitexttyp_kurzbz, ft.titel, ft.anmerkung,
f.benutzerfunktion_id,
k.karenztyp_kurzbz, k.geplanter_geburtstermin, k.tatsaechlicher_geburtstermin,
kf.arbeitgeber_frist, kf.arbeitnehmer_frist,
s.wochenstunden, s.teilzeittyp_kurzbz,
u.tage,
z.zeitaufzeichnung, z.azgrelevant, z.homeoffice
FROM
hr.tbl_vertragsbestandteil v
LEFT JOIN
hr.tbl_vertragsbestandteil_freitext ft USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_funktion f USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_karenz k USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_kuendigungsfrist kf USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_stunden s USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_urlaubsanspruch u USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_zeitaufzeichnung z USING(vertragsbestandteil_id)
{$this->getVertragsbestandteilSQL()}
WHERE
v.dienstverhaeltnis_id = {$this->escape($dienstverhaeltnis_id)}
{$stichtagclause}
@@ -61,10 +79,16 @@ class Vertragsbestandteil_model extends DB_Model
EOSQL;
// echo $sql . "\n\n";
$query = $this->db->query($sql); // TODO add decryption
$query = $this->execReadOnlyQuery($sql); // TODO add decryption
$data = getData($query);
if ($data == null)
{
return array();
}
$vertragsbestandteile = array();
foreach( $query->result() as $row ) {
foreach( $data as $row ) {
try
{
$vertragsbestandteile[] = VertragsbestandteilFactory::getVertragsbestandteil($row);
@@ -75,6 +99,7 @@ EOSQL;
}
}
$dummy = json_encode($vertragsbestandteile);
return $vertragsbestandteile;
}
@@ -83,31 +108,7 @@ EOSQL;
{
$sql = <<<EOSQL
SELECT
v.*,
ft.freitexttyp_kurzbz, ft.titel, ft.anmerkung,
f.benutzerfunktion_id,
k.karenztyp_kurzbz, k.geplanter_geburtstermin, k.tatsaechlicher_geburtstermin,
kf.arbeitgeber_frist, kf.arbeitnehmer_frist,
s.wochenstunden, s.teilzeittyp_kurzbz,
u.tage,
z.zeitaufzeichnung, z.azgrelevant, z.homeoffice
FROM
hr.tbl_vertragsbestandteil v
LEFT JOIN
hr.tbl_vertragsbestandteil_freitext ft USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_funktion f USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_karenz k USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_kuendigungsfrist kf USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_stunden s USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_urlaubsanspruch u USING(vertragsbestandteil_id)
LEFT JOIN
hr.tbl_vertragsbestandteil_zeitaufzeichnung z USING(vertragsbestandteil_id)
{$this->getVertragsbestandteilSQL()}
WHERE
v.vertragsbestandteil_id = {$this->escape($id)}
;