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
@@ -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)}
;