From 7f3b1417fdb8b9e017bfb5fbc675f3d39c6f36bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 14 Nov 2023 13:37:03 +0100 Subject: [PATCH] =?UTF-8?q?Neuen=20Gehaltstyp=20f=C3=BCr=20Zusatzvereinbar?= =?UTF-8?q?ung=20hinzugef=C3=BCgt=20Anpassung=20am=20Gehaltsimport:=20-=20?= =?UTF-8?q?All-In=20Bestandteile=20werden=20als=20Zulage=20importiert=20-?= =?UTF-8?q?=20Zusatzvereinbarungen=20im=20neuem=20Typ=20Zusatzvereinbarung?= =?UTF-8?q?=20-=20Import=20funktioniert=20jetzt=20auch=20f=C3=BCr=20Person?= =?UTF-8?q?en=20die=20ihr=20DV=20nicht=20mit=20=20=20Monatsersten=20starte?= =?UTF-8?q?n=20sondern=20ein=20paar=20Tage=20sp=C3=A4ter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/system/MigrateSalary.php | 66 +++++++++++++++++-- system/dbupdate_3.4/28260_vertraege.php | 1 + 2 files changed, 62 insertions(+), 5 deletions(-) diff --git a/application/controllers/system/MigrateSalary.php b/application/controllers/system/MigrateSalary.php index 23f74253c..e8771f913 100644 --- a/application/controllers/system/MigrateSalary.php +++ b/application/controllers/system/MigrateSalary.php @@ -168,14 +168,30 @@ class MigrateSalary extends CLI_Controller $typ = ''; $allin = false; - //TODO: DV und VBS Ermitteln + //DV und VBS Ermitteln $dv = $this->DienstverhaeltnisModel->getDVByPersonUID($uid, $this->OE_DEFAULT, $row_gehalt['beginn']); if (!hasData($dv)) { - echo "\nKein passendes DV gefunden für User ".$uid." und Datum ".$row_gehalt['beginn']." -> ROLLBACK\n"; - $failed = true; - break; + $date = new DateTime($row_gehalt['beginn']); + $date->modify('last day of this month'); + $last_day_this_month = $date->format('Y-m-d'); + + // Wenn mit Monatsersten kein DV gefunden wird, wird stattdessen mit Monatsletzten gesucht um DVs zu finden + // für Personen die erst später im Monat in ihr DV einsteigen + $dv = $this->DienstverhaeltnisModel->getDVByPersonUID($uid, $this->OE_DEFAULT, $last_day_this_month); + + if (!hasData($dv)) + { + echo "\nKein passendes DV gefunden für User ".$uid." und Datum ".$row_gehalt['beginn']." -> ROLLBACK\n"; + $failed = true; + break; + } + else + { + // Gehaltsstart wird auf den Start des DV korrigiert wenn nicht der Monatserste + $row_gehalt['beginn'] = getData($dv)[0]->von; + } } $resultdata = getData($dv); @@ -216,7 +232,7 @@ class MigrateSalary extends CLI_Controller || $row_gehalt['lohnart']==1042 // 12x || $row_gehalt['lohnart']==3410) // USTDPausch { - $typ = 'zulage'; + $typ = 'zusatzvereinbarung'; // Freitextbestandteil anlegen fuer die Zulage // Gaehalt wird der Zuglage zugeordnet @@ -254,6 +270,46 @@ class MigrateSalary extends CLI_Controller break; } } + elseif ($row_gehalt['lohnart']==9999) // All-In Custom Lohnart nicht per Default vorhanden + { + $typ = 'zulage'; + + // Freitextbestandteil anlegen fuer die Zulage + // Gaehalt wird der Zuglage zugeordnet + + $data = array( + 'dienstverhaeltnis_id' => $dvid, + 'von' => $row_gehalt['beginn'], + 'vertragsbestandteiltyp_kurzbz' => 'freitext', + 'insertamum' => date('Y-m-d H:i:s'), + 'insertvon' => 'MigrateSalary' + ); + if (isset($row_gehalt['ende']) && $row_gehalt['ende']!='') + $data['bis'] = $row_gehalt['ende']; + + $resultVBS = $this->VertragsbestandteilModel->Insert($data); + if(!isSuccess($resultVBS)) + { + echo "VBS AllIn kann nicht erstellt werden -> ROLLBACK"; + $failed = true; + break; + } + $vbsid = getData($resultVBS); + + $data = array( + 'vertragsbestandteil_id' => $vbsid, + 'freitexttyp_kurzbz' => 'allin', + 'titel' => $row_gehalt['bezeichnung'], + 'anmerkung' => $row_gehalt['bezeichnung'], + ); + $resultVBSFreitext = $this->VertragsbestandteilFreitextModel->Insert($data); + if(!isSuccess($resultVBSFreitext)) + { + echo "VBS Freitext AllIn Zusatz kann nicht erstellt werden -> ROLLBACK"; + $failed = true; + break; + } + } elseif($row_gehalt['lohnart']==5500) // ATZ { $typ = 'lohnausgleichatz'; diff --git a/system/dbupdate_3.4/28260_vertraege.php b/system/dbupdate_3.4/28260_vertraege.php index 54b0b44f1..da7d95e88 100644 --- a/system/dbupdate_3.4/28260_vertraege.php +++ b/system/dbupdate_3.4/28260_vertraege.php @@ -389,6 +389,7 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('zulage','Zulage', true, 3, true); INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('praemie','Prämie', false, 4, true); INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('lohnausgleichatz','Lohnausgleich ATZ', false, 5, true); + INSERT INTO hr.tbl_gehaltstyp(gehaltstyp_kurzbz, bezeichnung, valorisierung, sort, aktiv) VALUES('zusatzvereinbarung','Zusatzvereinbarung',false, 6, true); INSERT INTO hr.tbl_vertragsbestandteil_freitexttyp(freitexttyp_kurzbz, bezeichnung, ueberlappend, kuendigungsrelevant) VALUES('allin','All-In', false, false); INSERT INTO hr.tbl_vertragsbestandteil_freitexttyp(freitexttyp_kurzbz, bezeichnung, ueberlappend, kuendigungsrelevant) VALUES('ersatzarbeitskraft','Ersatzarbeitskraft', false, true);