From d85a3cb08fd0c4e2751c6aa56157403628d6ff08 Mon Sep 17 00:00:00 2001 From: Werner Masik Date: Wed, 12 Aug 2026 15:18:27 +0200 Subject: [PATCH] extract DB migration for gehaltsanpassungtyp into separate file --- system/dbupdate_3.4.php | 1 + system/dbupdate_3.4/28260_vertraege.php | 40 ----------------- .../78292_gehaltsanpassungtyp.php | 45 +++++++++++++++++++ 3 files changed, 46 insertions(+), 40 deletions(-) create mode 100644 system/dbupdate_3.4/78292_gehaltsanpassungtyp.php diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index c57f88984..9f0137e28 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -100,6 +100,7 @@ require_once('dbupdate_3.4/68530_Dashboard_Cleanup.php'); require_once('dbupdate_3.4/75959_StudVw_Automatische_Tags.php'); require_once('dbupdate_3.4/76160_lvv_favorites.php'); require_once('dbupdate_3.4/77080_tabulator_presets_table.php'); +require_once('dbupdate_3.4/78292_gehaltsanpassungtyp.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; diff --git a/system/dbupdate_3.4/28260_vertraege.php b/system/dbupdate_3.4/28260_vertraege.php index 5615dc1f4..1e0e4e048 100644 --- a/system/dbupdate_3.4/28260_vertraege.php +++ b/system/dbupdate_3.4/28260_vertraege.php @@ -49,7 +49,6 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table dienstverhaeltnis_id integer NOT NULL, vertragsbestandteil_id integer, gehaltstyp_kurzbz character varying(32) NOT NULL, - gehaltsanpassungtyp_kurzbz character varying(32), von date, bis date, anmerkung text, @@ -70,7 +69,6 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.auszahlungen IS E'Wie oft im Jahr wird das Gehalt bezahlt. zb 14x oder nur 12x'; COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.valorisierung IS E'Wird dieser Bestandteil mitvalorisiert'; COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.valorisierungssperre IS E'Bis zu welchem Datum ist dieser Bestandteil von der Valorisierung ausgenommen'; - COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.gehaltsanpassungtyp_kurzbz IS E'Ersteinstufung, indiv. Erhöhung, etc.'; ALTER TABLE hr.tbl_gehaltsbestandteil ADD CONSTRAINT tbl_dienstverhaeltnis_fk FOREIGN KEY (dienstverhaeltnis_id) REFERENCES hr.tbl_dienstverhaeltnis (dienstverhaeltnis_id) MATCH FULL @@ -122,21 +120,6 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table REFERENCES hr.tbl_gehaltstyp (gehaltstyp_kurzbz) MATCH FULL ON DELETE RESTRICT ON UPDATE CASCADE; - CREATE TABLE hr.tbl_gehaltsanpassungtyp - ( - gehaltsanpassungtyp_kurzbz character varying(32) NOT NULL, - bezeichnung varchar(256), - sort smallint, - aktiv boolean NOT NULL DEFAULT true, - CONSTRAINT tbl_gehaltsanpassungtyp_pk PRIMARY KEY (gehaltsanpassungtyp_kurzbz) - ); - - COMMENT ON TABLE hr.tbl_gehaltsanpassungtyp IS E'Key-Table of Salary Adaption Types'; - - ALTER TABLE hr.tbl_gehaltsbestandteil ADD CONSTRAINT tbl_gehaltsanpassungtyp_fk FOREIGN KEY (gehaltsanpassungtyp_kurzbz) - REFERENCES hr.tbl_gehaltsanpassungtyp (gehaltsanpassungtyp_kurzbz) MATCH FULL - ON DELETE RESTRICT ON UPDATE CASCADE; - CREATE TABLE hr.tbl_vertragsart ( vertragsart_kurzbz varchar(32) NOT NULL, @@ -385,7 +368,6 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_gehaltsbestandteil TO vilesci; GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_gehaltshistorie TO vilesci; GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_gehaltstyp TO vilesci; - GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_gehaltsanpassungtyp TO vilesci; GRANT USAGE ON SCHEMA hr TO vilesci; GRANT USAGE ON SCHEMA hr TO web; @@ -416,10 +398,6 @@ if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table 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_gehaltsanpassungtyp(gehaltsanpassungtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('ersteinstufung','Ersteinstufung', 1, true); - INSERT INTO hr.tbl_gehaltsanpassungtyp(gehaltsanpassungtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('individuelle_anpassung','Indiv. Anpassung', 2, true); - INSERT INTO hr.tbl_gehaltsanpassungtyp(gehaltsanpassungtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('strukturelle_anpassung','Strukturelle Anpassung', 3, 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); INSERT INTO hr.tbl_vertragsbestandteil_freitexttyp(freitexttyp_kurzbz, bezeichnung, ueberlappend, kuendigungsrelevant) VALUES('zusatzvereinbarung','Zusatzvereinbarung', true, false); @@ -629,24 +607,6 @@ if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE colu } } - -if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE column_name='gehaltsanpassungtyp_kurzbz' AND table_name='tbl_gehaltsbestandteil' AND table_schema='hr'")) -{ - if ($db->db_num_rows($result) == 0) - { - $qry = " - ALTER TABLE - hr.tbl_gehaltsbestandteil - ADD COLUMN - gehaltsanpassungtyp_kurzbz character varying(32) - "; - if (! $db->db_query($qry)) - echo 'Vertraege: ' . $db->db_last_error() . '
'; - else - echo 'Spalte gehaltsanpassungtyp_kurzbz wurde in hr.tbl_gehaltsbestandteil neu erstellt
'; - } -} - if ($result = $db->db_query("SELECT * FROM information_schema.columns WHERE column_name='betrag' AND table_name='tbl_sachaufwand' AND table_schema='hr'")) { if ($db->db_num_rows($result) == 0) diff --git a/system/dbupdate_3.4/78292_gehaltsanpassungtyp.php b/system/dbupdate_3.4/78292_gehaltsanpassungtyp.php new file mode 100644 index 000000000..43810f09b --- /dev/null +++ b/system/dbupdate_3.4/78292_gehaltsanpassungtyp.php @@ -0,0 +1,45 @@ +db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_gehaltsanpassungtyp' AND table_schema='hr'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = " + + ALTER TABLE + hr.tbl_gehaltsbestandteil + ADD COLUMN IF NOT EXISTS + gehaltsanpassungtyp_kurzbz character varying(32); + + COMMENT ON COLUMN hr.tbl_gehaltsbestandteil.gehaltsanpassungtyp_kurzbz IS E'Ersteinstufung, indiv. Erhöhung, etc.'; + + CREATE TABLE IF NOT EXISTS hr.tbl_gehaltsanpassungtyp + ( + gehaltsanpassungtyp_kurzbz character varying(32) NOT NULL, + bezeichnung varchar(256), + sort smallint, + aktiv boolean NOT NULL DEFAULT true, + CONSTRAINT tbl_gehaltsanpassungtyp_pk PRIMARY KEY (gehaltsanpassungtyp_kurzbz) + ); + + COMMENT ON TABLE hr.tbl_gehaltsanpassungtyp IS E'Key-Table of Salary Adaption Types'; + + ALTER TABLE hr.tbl_gehaltsbestandteil DROP CONSTRAINT IF EXISTS tbl_gehaltsanpassungtyp_fk; + ALTER TABLE hr.tbl_gehaltsbestandteil ADD CONSTRAINT tbl_gehaltsanpassungtyp_fk FOREIGN KEY (gehaltsanpassungtyp_kurzbz) + REFERENCES hr.tbl_gehaltsanpassungtyp (gehaltsanpassungtyp_kurzbz) MATCH FULL + ON DELETE RESTRICT ON UPDATE CASCADE; + + GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_gehaltsanpassungtyp TO vilesci; + + INSERT INTO hr.tbl_gehaltsanpassungtyp(gehaltsanpassungtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('ersteinstufung','Ersteinstufung', 1, true); + INSERT INTO hr.tbl_gehaltsanpassungtyp(gehaltsanpassungtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('individuelle_anpassung','Indiv. Anpassung', 2, true); + INSERT INTO hr.tbl_gehaltsanpassungtyp(gehaltsanpassungtyp_kurzbz, bezeichnung, sort, aktiv) VALUES('strukturelle_anpassung','Strukturelle Anpassung', 3, true); + "; + + if (! $db->db_query($qry)) + echo 'Gehaltsanpassungtyp: ' . $db->db_last_error() . '
'; + else + echo 'Tabelle und Feld für Gehaltsanpassungtyp wurden neu erstellt
'; + } +}