From 87220e17894b15cc586cf99ce3bb95f3405fd531 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Thu, 23 Jan 2025 16:13:47 +0100 Subject: [PATCH] move tbl_valorisierung_* to core since they are used in vertragsbestandteillib and gehaltsbestandteillib --- system/dbupdate_3.4.php | 11 +- system/dbupdate_3.4/53903_valorisierung.php | 113 ++++++++++++++++++++ 2 files changed, 121 insertions(+), 3 deletions(-) create mode 100644 system/dbupdate_3.4/53903_valorisierung.php diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index 57eee605c..c6e64edb3 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -68,6 +68,7 @@ require_once('dbupdate_3.4/33683_digitale_anwesenheitsliste_und_entschuldigungsm require_once('dbupdate_3.4/40717_lv_faktor.php'); require_once('dbupdate_3.4/48526_pep_tagging.php'); require_once('dbupdate_3.4/41950_perm_gehaelter.php'); +require_once('dbupdate_3.4/53903_valorisierung.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -206,11 +207,15 @@ $tabellen=array( "hr.tbl_karenztyp" => array("karenztyp_kurzbz","bezeichnung"), "hr.tbl_teilzeittyp" => array("teilzeittyp_kurzbz","bezeichnung","aktiv"), "hr.tbl_gehaltsbestandteil" => array("gehaltsbestandteil_id","dienstverhaeltnis_id","vertragsbestandteil_id","gehaltstyp_kurzbz","von","bis","anmerkung","grundbetrag","betrag_valorisiert","valorisierungssperre","insertamum", "insertvon","updateamum","updatevon","valorisierung","auszahlungen"), - "hr.tbl_gehaltshistorie" => array("gehaltshistorie_id", "datum","betrag","gehaltsbestandteil_id","mitarbeiter_uid"), + "hr.tbl_gehaltshistorie" => array("gehaltshistorie_id", "datum","betrag","gehaltsbestandteil_id","mitarbeiter_uid","gehaltsbestandteil_von","gehaltsbestandteil_bis"), "hr.tbl_gehaltstyp" => array("gehaltstyp_kurzbz","bezeichnung","valorisierung","sort","aktiv"), "hr.tbl_frist" => array("frist_id","mitarbeiter_uid","ereignis_kurzbz","bezeichnung","datum","status_kurzbz","parameter","insertvon","insertamum","updatevon","updateamum"), - "hr.tbl_frist_ereignis" => array("ereignis_kurzbz","bezeichnung","manuell"), - "hr.tbl_frist_status" => array("status_kurzbz", "bezeichnung"), + "hr.tbl_frist_ereignis" => array("ereignis_kurzbz","bezeichnung","manuell","sort"), + "hr.tbl_frist_status" => array("status_kurzbz", "bezeichnung","sort"), + "hr.tbl_valorisierung_historie" => array("valorisierung_historie_id", "gehaltsbestandteil_id", "valorisierungsdatum", "betrag_valorisiert", "insertvon", "insertamum"), + "hr.tbl_valorisierung_instanz" => array("updateamum", "oe_kurzbz", "valorisierungsdatum", "valorisierung_kurzbz", "beschreibung", "ausgewaehlt", "updatevon", "valorisierung_instanz_id"), + "hr.tbl_valorisierung_instanz_methode" => array("valorisierung_instanz_id", "valorisierung_methode_kurzbz", "beschreibung", "valorisierung_methode_parameter"), + "hr.tbl_valorisierung_methode" => array("beschreibung", "valorisierung_methode_kurzbz"), "lehre.tbl_abschlussbeurteilung" => array("abschlussbeurteilung_kurzbz","bezeichnung","bezeichnung_english","sort"), "lehre.tbl_abschlusspruefung" => array("abschlusspruefung_id","student_uid","vorsitz","pruefer1","pruefer2","pruefer3","abschlussbeurteilung_kurzbz","akadgrad_id","pruefungstyp_kurzbz","datum","uhrzeit","sponsion","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","note","protokoll","endezeit","pruefungsantritt_kurzbz","freigabedatum"), "lehre.tbl_abschlusspruefung_antritt" => array("pruefungsantritt_kurzbz","bezeichnung","bezeichnung_english","sort"), diff --git a/system/dbupdate_3.4/53903_valorisierung.php b/system/dbupdate_3.4/53903_valorisierung.php new file mode 100644 index 000000000..0aa443de0 --- /dev/null +++ b/system/dbupdate_3.4/53903_valorisierung.php @@ -0,0 +1,113 @@ +db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_valorisierung_methode' AND table_schema='hr'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = " +CREATE TABLE IF NOT EXISTS hr.tbl_valorisierung_methode ( + valorisierung_methode_kurzbz character varying(32) NOT NULL, + beschreibung character varying NOT NULL, + CONSTRAINT tbl_valorisierung_methode_pkey PRIMARY KEY (valorisierung_methode_kurzbz) +); + +GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_valorisierung_methode TO vilesci; + +INSERT INTO hr.tbl_valorisierung_methode (valorisierung_methode_kurzbz, beschreibung) VALUES + ('ValorisierungProzent', 'Valorisierung um einen Prozentsatz'), + ('ValorisierungFixBetrag', 'Valorisierung um einen fixen Betrag'), + ('ValorisierungGestaffelt', 'mehrere Stufen mit unterschiedlichen Prozentwerten') +ON CONFLICT(valorisierung_methode_kurzbz) DO NOTHING; + "; + + if (! $db->db_query($qry)) + echo 'Valorisierung: ' . $db->db_last_error() . '
'; + else + echo 'hr.tbl_valorisierung_methode wurden neu erstellt
'; + } +} + +if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_valorisierung_instanz' AND table_schema='hr'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = " +CREATE TABLE IF NOT EXISTS hr.tbl_valorisierung_instanz ( + valorisierung_instanz_id serial NOT NULL, + oe_kurzbz character varying(32), + valorisierungsdatum date NOT NULL, + valorisierung_kurzbz character varying(128) NOT NULL, + beschreibung text, + ausgewaehlt boolean DEFAULT false NOT NULL, + updatevon character varying(32), + updateamum timestamp without time zone, + CONSTRAINT tbl_valorisierung_instanz_pkey PRIMARY KEY (valorisierung_instanz_id), + CONSTRAINT tbl_valorisierung_instanz_fk1 FOREIGN KEY (oe_kurzbz) REFERENCES public.tbl_organisationseinheit(oe_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT, + UNIQUE(valorisierung_kurzbz) +); + +CREATE UNIQUE INDEX IF NOT EXISTS tbl_valorisierung_instanz_unique_idx ON hr.tbl_valorisierung_instanz (ausgewaehlt, valorisierungsdatum, oe_kurzbz) WHERE (ausgewaehlt = TRUE); + +GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_valorisierung_instanz TO vilesci; +GRANT SELECT,UPDATE ON SEQUENCE hr.tbl_valorisierung_instanz_valorisierung_instanz_id_seq TO vilesci; + "; + + if (! $db->db_query($qry)) + echo 'Valorisierung: ' . $db->db_last_error() . '
'; + else + echo 'hr.tbl_valorisierung_instanz wurden neu erstellt
'; + } +} + +if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_valorisierung_instanz_methode' AND table_schema='hr'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = " +CREATE TABLE IF NOT EXISTS hr.tbl_valorisierung_instanz_methode ( + valorisierung_instanz_id integer NOT NULL, + valorisierung_methode_kurzbz character varying(32) NOT NULL, + beschreibung text, + valorisierung_methode_parameter jsonb NOT NULL, + CONSTRAINT tbl_valorisierung_instanz_methode_pkey PRIMARY KEY (valorisierung_instanz_id, valorisierung_methode_kurzbz), + CONSTRAINT tbl_valorisierung_instanz_methode_fk1 FOREIGN KEY (valorisierung_instanz_id) REFERENCES hr.tbl_valorisierung_instanz(valorisierung_instanz_id) ON UPDATE CASCADE ON DELETE RESTRICT, + CONSTRAINT tbl_valorisierung_instanz_methode_fk2 FOREIGN KEY (valorisierung_methode_kurzbz) REFERENCES hr.tbl_valorisierung_methode(valorisierung_methode_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT +); + +GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_valorisierung_instanz_methode TO vilesci; + "; + + if (! $db->db_query($qry)) + echo 'Valorisierung: ' . $db->db_last_error() . '
'; + else + echo 'hr.tbl_valorisierung_instanz_methode wurde neu erstellt
'; + } +} + +if ($result = $db->db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_valorisierung_historie' AND table_schema='hr'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = " +CREATE TABLE IF NOT EXISTS hr.tbl_valorisierung_historie ( + valorisierung_historie_id serial NOT NULL, + gehaltsbestandteil_id integer NOT NULL, + valorisierungsdatum date NOT NULL, + betrag_valorisiert bytea NOT NULL, + insertvon character varying(32), + insertamum timestamp without time zone DEFAULT now(), + CONSTRAINT tbl_valorisierung_historie_pkey PRIMARY KEY (valorisierung_historie_id) +); + +GRANT SELECT,INSERT,DELETE,UPDATE ON TABLE hr.tbl_valorisierung_historie TO vilesci; +GRANT SELECT,UPDATE ON SEQUENCE hr.tbl_valorisierung_historie_valorisierung_historie_id_seq TO vilesci; + "; + + if (! $db->db_query($qry)) + echo 'Valorisierung: ' . $db->db_last_error() . '
'; + else + echo 'hr.tbl_valorisierung_historie wurde neu erstellt
'; + } +} + \ No newline at end of file