From 8e728b0bfe52db07116892e67f057bf93fb4e537 Mon Sep 17 00:00:00 2001 From: Werner Masik Date: Tue, 26 May 2026 16:39:45 +0200 Subject: [PATCH] add missing reference to kollektivvertrag --- .../VertragsbestandteilFactory.php | 6 + .../VertragsbestandteilKollektivvertrag.php | 110 ++++++++++++++++++ ...tragsbestandteilKollektivvertrag_model.php | 11 ++ .../dbupdate_3.4/76781_kollektivvertrag.php | 2 + 4 files changed, 129 insertions(+) create mode 100644 application/libraries/vertragsbestandteil/VertragsbestandteilKollektivvertrag.php create mode 100644 application/models/vertragsbestandteil/VertragsbestandteilKollektivvertrag_model.php diff --git a/application/libraries/vertragsbestandteil/VertragsbestandteilFactory.php b/application/libraries/vertragsbestandteil/VertragsbestandteilFactory.php index 50504099a..2f1415f48 100644 --- a/application/libraries/vertragsbestandteil/VertragsbestandteilFactory.php +++ b/application/libraries/vertragsbestandteil/VertragsbestandteilFactory.php @@ -24,6 +24,7 @@ class VertragsbestandteilFactory const VERTRAGSBESTANDTEIL_ZEITAUFZEICHNUNG = 'zeitaufzeichnung'; const VERTRAGSBESTANDTEIL_LEHRE = 'lehre'; const VERTRAGSBESTANDTEIL_LOHNGUIDE = 'lohnguide'; + const VERTRAGSBESTANDTEIL_KOLLEKTIVVERTRAG = 'kollektivvertrag'; public static function getVertragsbestandteil($data, $fromdb=false) { @@ -76,6 +77,11 @@ class VertragsbestandteilFactory $vertragsbestandteil = new VertragsbestandteilLohnguide(); $vertragsbestandteil->hydrateByStdClass($data, $fromdb); break; + + case self::VERTRAGSBESTANDTEIL_KOLLEKTIVVERTRAG: + $vertragsbestandteil = new VertragsbestandteilKollektivvertrag(); + $vertragsbestandteil->hydrateByStdClass($data, $fromdb); + break; default: throw new Exception('Unknown vertragsbestandteiltyp_kurzbz ' diff --git a/application/libraries/vertragsbestandteil/VertragsbestandteilKollektivvertrag.php b/application/libraries/vertragsbestandteil/VertragsbestandteilKollektivvertrag.php new file mode 100644 index 000000000..b6526999e --- /dev/null +++ b/application/libraries/vertragsbestandteil/VertragsbestandteilKollektivvertrag.php @@ -0,0 +1,110 @@ +setVertragsbestandteiltyp_kurzbz( + VertragsbestandteilFactory::VERTRAGSBESTANDTEIL_KOLLEKTIVVERTRAG); + } + + public function getKv_jahre() + { + return $this->kv_jahre; + } + + public function setKv_jahre($kv_jahre): self + { + $this->markDirty('kv_jahre', $this->kv_jahre, $kv_jahre); + $this->kv_jahre = $kv_jahre; + return $this; + } + + public function getVerwendungsgruppe_kurzbz() + { + return $this->verwendungsgruppe_kurzbz; + } + + public function setVerwendungsgruppe_kurzbz($verwendungsgruppe_kurzbz): self + { + $this->markDirty('verwendungsgruppe_kurzbz', $this->verwendungsgruppe_kurzbz, $verwendungsgruppe_kurzbz); + $this->verwendungsgruppe_kurzbz = $verwendungsgruppe_kurzbz; + return $this; + } + + public function getKommentar() + { + return $this->kommentar; + } + + public function setKommentar($kommentar): self + { + $this->markDirty('kommentar', $this->kommentar, $kommentar); + $this->kommentar = $kommentar; + return $this; + } + + + + + public function hydrateByStdClass($data, $fromdb=false) + { + parent::hydrateByStdClass($data, $fromdb); + $this->fromdb = $fromdb; + isset($data->verwendungsgruppe_kurzbz) && $this->setVerwendungsgruppe_kurzbz($data->verwendungsgruppe_kurzbz); + isset($data->kv_jahre) && $this->setKv_jahre($data->kv_jahre); + isset($data->kommentar) && $this->setKommentar($data->kommentar); + $this->fromdb = false; + } + + public function toStdClass(): \stdClass + { + $tmp = array( + 'vertragsbestandteil_id' => $this->getVertragsbestandteil_id(), + 'kv_jahre' => $this->getKv_jahre(), + 'verwendungsgruppe_kurzbz' => $this->getVerwendungsgruppe_kurzbz(), + 'kommentar' => $this->getKommentar(), + ); + + $tmp = array_filter($tmp, function($k) { + return in_array($k, $this->modifiedcolumns); + }, ARRAY_FILTER_USE_KEY); + + return (object) $tmp; + } + + public function __toString() + { + $txt = <<getVerwendungsgruppe_kurzbz()} + +EOTXT; + return parent::__toString() . $txt; + } + + /* public function validate() + { + if( !(filter_var($this->tage, FILTER_VALIDATE_INT, + array( + 'options' => array( + 'min_range' => 1, + 'max_range' => 50 + ) + ) + )) ) { + $this->validationerrors[] = 'Urlaubsanspruch muss eine Tagesanzahl im Bereich 1 bis 50 sein.'; + } + + return parent::validate(); + } */ +} diff --git a/application/models/vertragsbestandteil/VertragsbestandteilKollektivvertrag_model.php b/application/models/vertragsbestandteil/VertragsbestandteilKollektivvertrag_model.php new file mode 100644 index 000000000..eff58dc0f --- /dev/null +++ b/application/models/vertragsbestandteil/VertragsbestandteilKollektivvertrag_model.php @@ -0,0 +1,11 @@ +dbTable = 'hr.tbl_vertragsbestandteil_kollektivvertrag'; + $this->pk = 'vertragsbestandteil_id'; + } +} diff --git a/system/dbupdate_3.4/76781_kollektivvertrag.php b/system/dbupdate_3.4/76781_kollektivvertrag.php index 093e83163..1fbc9f09b 100644 --- a/system/dbupdate_3.4/76781_kollektivvertrag.php +++ b/system/dbupdate_3.4/76781_kollektivvertrag.php @@ -145,11 +145,13 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table $qry = " CREATE TABLE IF NOT EXISTS hr.tbl_vertragsbestandteil_kollektivvertrag ( vertragsbestandteil_id integer NOT NULL, + kollektivvertrag_kurzbz character varying(32) NOT NULL, verwendungsgruppe_kurzbz character varying(32) NOT NULL, kv_jahre integer NOT NULL, kommentar varchar(255), CONSTRAINT tbl_vertragsbestandteil_kollektivvertrag_pk PRIMARY KEY (vertragsbestandteil_id), CONSTRAINT tbl_vertragsbestandteil_fk FOREIGN KEY (vertragsbestandteil_id) REFERENCES hr.tbl_vertragsbestandteil (vertragsbestandteil_id) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE, + CONSTRAINT tbl_vertragsbestandteil_kollektivvertrag_kurzbz_fk FOREIGN KEY (kollektivvertrag_kurzbz) REFERENCES hr.tbl_kollektivvertrag (kollektivvertrag_kurzbz) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT tbl_vertragsbestandteil_kollektivvertrag_vg_kurzbz_fk FOREIGN KEY (verwendungsgruppe_kurzbz) REFERENCES hr.tbl_kollektivvertrag_verwendungsgruppe (verwendungsgruppe_kurzbz) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE, CONSTRAINT tbl_vertragsbestandteil_kollektivvertrag_kv_jahre_fk FOREIGN KEY (kv_jahre) REFERENCES hr.tbl_kollektivvertrag_verwendungsgruppenjahre (kv_jahre) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE );