diff --git a/application/libraries/vertragsbestandteil/Dienstverhaeltnis.php b/application/libraries/vertragsbestandteil/Dienstverhaeltnis.php
index 309d3dfdc..07c417077 100644
--- a/application/libraries/vertragsbestandteil/Dienstverhaeltnis.php
+++ b/application/libraries/vertragsbestandteil/Dienstverhaeltnis.php
@@ -29,6 +29,9 @@ class Dienstverhaeltnis extends AbstractBestandteil {
protected $updateamum;
protected $updatevon;
+ protected $dvendegrund_kurzbz;
+ protected $dvendegrund_anmerkung;
+
public function __construct()
{
parent::__construct();
@@ -49,6 +52,8 @@ class Dienstverhaeltnis extends AbstractBestandteil {
isset($data->insertvon) && $this->setInsertvon($data->insertvon);
isset($data->updateamum) && $this->setUpdateamum($data->updateamum);
isset($data->updatevon) && $this->setUpdatevon($data->updatevon);
+ isset($data->dvendegrund_kurzbz) && $this->setDvendegrund_kurzbz($data->dvendegrund_kurzbz);
+ isset($data->dvendegrund_anmerkung) && $this->setDvendegrund_anmerkung($data->dvendegrund_anmerkung);
$this->fromdb = false;
}
@@ -64,7 +69,9 @@ class Dienstverhaeltnis extends AbstractBestandteil {
'insertamum' => $this->getInsertamum(),
'insertvon' => $this->getInsertvon(),
'updateamum' => $this->getUpdateamum(),
- 'updatevon' => $this->getUpdatevon()
+ 'updatevon' => $this->getUpdatevon(),
+ 'dvendegrund_kurzbz' => $this->getDvendegrund_kurzbz(),
+ 'dvendegrund_anmerkung' => $this->getDvendegrund_anmerkung()
);
$tmp = array_filter($tmp, function($k) {
@@ -139,6 +146,16 @@ EOTXT;
return $this->updatevon;
}
+ public function getDvendegrund_kurzbz()
+ {
+ return $this->dvendegrund_kurzbz;
+ }
+
+ public function getDvendegrund_anmerkung()
+ {
+ return $this->dvendegrund_anmerkung;
+ }
+
public function setDienstverhaeltnis_id($dienstverhaeltnis_id)
{
$this->markDirty('dienstverhaeltnis_id', $this->dienstverhaeltnis_id, $dienstverhaeltnis_id);
@@ -214,6 +231,20 @@ EOTXT;
return $this;
}
+ public function setDvendegrund_kurzbz($dvendegrund_kurzbz)
+ {
+ $this->markDirty('dvendegrund_kurzbz', $this->dvendegrund_kurzbz, $dvendegrund_kurzbz);
+ $this->dvendegrund_kurzbz = $dvendegrund_kurzbz;
+ return $this;
+ }
+
+ public function setDvendegrund_anmerkung($dvendegrund_anmerkung)
+ {
+ $this->markDirty('dvendegrund_anmerkung', $this->dvendegrund_anmerkung, $dvendegrund_anmerkung);
+ $this->dvendegrund_anmerkung = $dvendegrund_anmerkung;
+ return $this;
+ }
+
public function validate() {
//do Validation here
$ci = get_instance();
diff --git a/application/libraries/vertragsbestandteil/VertragsbestandteilLib.php b/application/libraries/vertragsbestandteil/VertragsbestandteilLib.php
index 297896a02..b58c514e1 100644
--- a/application/libraries/vertragsbestandteil/VertragsbestandteilLib.php
+++ b/application/libraries/vertragsbestandteil/VertragsbestandteilLib.php
@@ -435,7 +435,7 @@ class VertragsbestandteilLib
return $result;
}
- public function endDienstverhaeltnis(Dienstverhaeltnis $dv, $enddate)
+ public function endDienstverhaeltnis(Dienstverhaeltnis $dv, $enddate, $dvendegrund_kurzbz=null, $dvendegrund_anmerkung=null)
{
if( $dv->getBis() !== null && $dv->getBis() < $enddate )
{
@@ -460,6 +460,14 @@ class VertragsbestandteilLib
$this->endVertragsbestandteil($vb, $enddate);
}
+ if( $dvendegrund_kurzbz !== null )
+ {
+ $dv->setDvendegrund_kurzbz($dvendegrund_kurzbz);
+ }
+ if( $dvendegrund_anmerkung !== null )
+ {
+ $dv->setDvendegrund_anmerkung($dvendegrund_anmerkung);
+ }
$dv->setBis($enddate);
$this->updateDienstverhaeltnis($dv);
diff --git a/application/models/vertragsbestandteil/Dienstverhaeltnis_model.php b/application/models/vertragsbestandteil/Dienstverhaeltnis_model.php
index 2fdfcffe2..6827beaa4 100644
--- a/application/models/vertragsbestandteil/Dienstverhaeltnis_model.php
+++ b/application/models/vertragsbestandteil/Dienstverhaeltnis_model.php
@@ -31,9 +31,13 @@ class Dienstverhaeltnis_model extends DB_Model
org.bezeichnung oe_bezeichnung,
dv.von,
dv.bis,
+ dv.dvendegrund_kurzbz,
+ dv.dvendegrund_anmerkung,
dv.vertragsart_kurzbz,
dv.updateamum,
- dv.updatevon
+ dv.updatevon,
+ dv.dvendegrund_kurzbz,
+ dv.dvendegrund_anmerkung
FROM tbl_mitarbeiter
JOIN tbl_benutzer ON tbl_mitarbeiter.mitarbeiter_uid::text = tbl_benutzer.uid::text
JOIN tbl_person USING (person_id)
diff --git a/system/dbupdate_3.4/28260_vertraege.php b/system/dbupdate_3.4/28260_vertraege.php
index dd43f362e..8fc6be05f 100644
--- a/system/dbupdate_3.4/28260_vertraege.php
+++ b/system/dbupdate_3.4/28260_vertraege.php
@@ -437,7 +437,83 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table
if (! $db->db_query($qry))
echo 'Vertraege: ' . $db->db_last_error() . '
';
else
- echo 'HR Schema und Vertagstabellen wurden neu erstellt
';
+ echo 'HR Schema und Vertagstabellen wurden neu erstellt
';
+ }
+}
+
+if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_dvendegrund' AND table_schema='hr'"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "
+ CREATE TABLE hr.tbl_dvendegrund (
+ dvendegrund_kurzbz character varying(32) NOT NULL ,
+ bezeichnung character varying(255) NOT NULL,
+ bezeichnung_mehrsprachig character varying(255)[] NOT NULL,
+ aktiv boolean DEFAULT true NOT NULL,
+ sort integer DEFAULT 1 NOT NULL,
+ PRIMARY KEY (dvendegrund_kurzbz),
+ CONSTRAINT tbl_dvendegrund_bezeichnung_key UNIQUE (bezeichnung)
+ );
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_dvendegrund TO vilesci;
+
+ INSERT INTO
+ hr.tbl_dvendegrund (dvendegrund_kurzbz, bezeichnung, bezeichnung_mehrsprachig)
+ VALUES
+ ('kuendigung_arbeitnehmer', 'Kündigung durch Arbeitnehmer', ARRAY['Kündigung durch Arbeitnehmer', 'Cancellation by Employee']),
+ ('kuendigung_arbeitgeber', 'Kündigung durch Arbeitgeber', ARRAY['Kündigung durch Arbeitgeber', 'Cancellation by Employer']),
+ ('entlassung', 'Entlassung', ARRAY['Entlassung', 'Dismissal']),
+ ('sonstige', 'Sonstige', ARRAY['Sonstige', 'Miscellaneous']),
+ ('einvernehmlich', 'Einvernehmliche Auflösung', ARRAY['Einvernehmliche Auflösung', 'Rescission']),
+ ('ablaufzeit', 'Ablauf durch Zeit', ARRAY['Ablauf durch Zeit', 'Expired by lapse of time']);
+ ";
+ if (! $db->db_query($qry))
+ echo 'Vertraege: ' . $db->db_last_error() . '
';
+ else
+ echo 'Tabelle tbl_dvendegrund wurde im HR Schema neu erstellt
';
+ }
+}
+
+if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE column_name='dvendegrund_kurzbz' AND table_name='tbl_dienstverhaeltnis' AND table_schema='hr'"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "
+ ALTER TABLE
+ hr.tbl_dienstverhaeltnis
+ ADD COLUMN
+ dvendegrund_kurzbz character varying(255)
+ CONSTRAINT
+ tbl_dvendegrund_fk
+ REFERENCES
+ hr.tbl_dvendegrund(dvendegrund_kurzbz)
+ ON UPDATE
+ cascade
+ ON DELETE
+ restrict
+ ";
+ if (! $db->db_query($qry))
+ echo 'Vertraege: ' . $db->db_last_error() . '
';
+ else
+ echo 'Spalte dvendegrund_kurzbz wurde in hr.tbl_dienstverhaeltnis neu erstellt
';
+ }
+}
+
+if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE column_name='dvendegrund_anmerkung' AND table_name='tbl_dienstverhaeltnis' AND table_schema='hr'"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "
+ ALTER TABLE
+ hr.tbl_dienstverhaeltnis
+ ADD COLUMN
+ dvendegrund_anmerkung character varying(255)
+ ";
+ if (! $db->db_query($qry))
+ echo 'Vertraege: ' . $db->db_last_error() . '
';
+ else
+ echo 'Spalte dvendegrund_anmerkung wurde in hr.tbl_dienstverhaeltnis neu erstellt
';
}
}
@@ -493,4 +569,4 @@ if ($result = $db->db_query("SELECT * FROM hr.tbl_vertragsart WHERE vertragsart_
else
echo 'Vertragsart "Dienstverhältnis zu einer anderen Bildungseinrichtung oder einem anderen Träger" erstellt.
';
}
-}
\ No newline at end of file
+}