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