add missing reference to kollektivvertrag

This commit is contained in:
Werner Masik
2026-05-26 16:39:45 +02:00
parent ca1df4460d
commit 8e728b0bfe
4 changed files with 129 additions and 0 deletions
@@ -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 '
@@ -0,0 +1,110 @@
<?php
namespace vertragsbestandteil;
use vertragsbestandteil\Vertragsbestandteil;
use vertragsbestandteil\VertragsbestandteilFactory;
class VertragsbestandteilKollektivvertrag extends Vertragsbestandteil
{
protected $kv_jahre;
protected $verwendungsgruppe_kurzbz;
protected $kommentar;
public function __construct()
{
parent::__construct();
$this->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 = <<<EOTXT
verwendungsgruppe_kurzbz: {$this->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();
} */
}
@@ -0,0 +1,11 @@
<?php
class VertragsbestandteilKollektivvertrag_model extends DB_Model
{
public function __construct()
{
parent::__construct();
$this->dbTable = 'hr.tbl_vertragsbestandteil_kollektivvertrag';
$this->pk = 'vertragsbestandteil_id';
}
}
@@ -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
);