Merge branch 'feature-39212/PV21-Grund_beim_Beenden_eines_DV' into merge_37107_37133_39212

This commit is contained in:
Harald Bamberger
2024-06-14 11:02:25 +02:00
4 changed files with 124 additions and 5 deletions
@@ -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();
@@ -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);
@@ -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)
+78 -2
View File
@@ -437,7 +437,83 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table
if (! $db->db_query($qry))
echo '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'HR Schema und Vertagstabellen wurden neu erstellt<br />';
echo 'HR Schema und Vertagstabellen wurden neu erstellt<br>';
}
}
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 '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Tabelle tbl_dvendegrund wurde im HR Schema neu erstellt<br>';
}
}
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 '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Spalte dvendegrund_kurzbz wurde in hr.tbl_dienstverhaeltnis neu erstellt<br>';
}
}
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 '<strong>Vertraege: ' . $db->db_last_error() . '</strong><br>';
else
echo 'Spalte dvendegrund_anmerkung wurde in hr.tbl_dienstverhaeltnis neu erstellt<br>';
}
}
@@ -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.<br />';
}
}
}