diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php
index 3a3f0be78..711dc6b8a 100644
--- a/system/dbupdate_3.4.php
+++ b/system/dbupdate_3.4.php
@@ -48,6 +48,7 @@ require_once('dbupdate_3.4/30181_tabelle_anrechnung_neue_attribute_fuer_begruend
require_once('dbupdate_3.4/29529_infocenter_anpassungen.php');
require_once('dbupdate_3.4/29835_uhstat1_erfassung_der_uhstat1_daten_ueber_das_bewerbungstool.php');
require_once('dbupdate_3.4/33714_erhoehter_studienbeitrag_fuer_drittsaatenangehoerig.php');
+require_once('dbupdate_3.4/37107_fristenmanagement.php');
require_once('dbupdate_3.4/33003_bis_meldung_personal.php');
require_once('dbupdate_3.4/36275_zeitaufzeichnung_karenz.php');
require_once('dbupdate_3.4/21620_neues_feld_zum_erfassen_des_ESI.php');
@@ -188,6 +189,9 @@ $tabellen=array(
"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_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"),
"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/37107_fristenmanagement.php b/system/dbupdate_3.4/37107_fristenmanagement.php
new file mode 100644
index 000000000..ee023b13e
--- /dev/null
+++ b/system/dbupdate_3.4/37107_fristenmanagement.php
@@ -0,0 +1,88 @@
+db_query("SELECT * FROM information_schema.tables WHERE table_name='tbl_frist' AND table_schema='hr'"))
+{
+ if ($db->db_num_rows($result) == 0)
+ {
+ $qry = "
+ CREATE TABLE IF NOT EXISTS hr.tbl_frist (
+ frist_id bigserial NOT NULL,
+ mitarbeiter_uid character varying(32),
+ ereignis_kurzbz character varying(32) NOT NULL,
+ bezeichnung varchar(255),
+ datum date,
+ status_kurzbz character varying(32) NOT NULL,
+ parameter jsonb NOT NULL,
+ insertvon character varying(32) NOT NULL,
+ insertamum timestamp without time zone DEFAULT now() NOT NULL,
+ updatevon character varying(32),
+ updateamum timestamp without time zone,
+ CONSTRAINT tbl_frist_pkey PRIMARY KEY (frist_id)
+ );
+
+ CREATE TABLE IF NOT EXISTS hr.tbl_frist_ereignis (
+ ereignis_kurzbz character varying(32) NOT NULL,
+ bezeichnung varchar(32) NOT NULL,
+ manuell boolean DEFAULT FALSE,
+ sort smallint,
+ CONSTRAINT tbl_ereignis_pkey PRIMARY KEY (ereignis_kurzbz)
+ );
+
+ COMMENT ON TABLE hr.tbl_frist_ereignis IS E'Key-Table of fristen (deadline) events';
+
+ CREATE TABLE IF NOT EXISTS hr.tbl_frist_status (
+ status_kurzbz character varying(32) NOT NULL,
+ bezeichnung varchar(32),
+ sort smallint,
+ CONSTRAINT tbl_frist_status_pk PRIMARY KEY (status_kurzbz)
+ );
+
+ COMMENT ON TABLE hr.tbl_frist_status IS E'Key-Table of fristen status (new, done)';
+
+ ALTER TABLE hr.tbl_frist ADD CONSTRAINT tbl_frist_mitarbeiter_uid_fk FOREIGN KEY (mitarbeiter_uid)
+ REFERENCES public.tbl_mitarbeiter (mitarbeiter_uid) MATCH FULL
+ ON DELETE SET NULL ON UPDATE CASCADE;
+
+ ALTER TABLE hr.tbl_frist ADD CONSTRAINT tbl_frist_ereignis_kurzbz_fk FOREIGN KEY (ereignis_kurzbz)
+ REFERENCES hr.tbl_frist_ereignis (ereignis_kurzbz) MATCH FULL
+ ON DELETE SET NULL ON UPDATE CASCADE;
+
+ ALTER TABLE hr.tbl_frist ADD CONSTRAINT tbl_frist_status_kurzbz_fk FOREIGN KEY (status_kurzbz)
+ REFERENCES hr.tbl_frist_status (status_kurzbz) MATCH FULL
+ ON DELETE SET NULL ON UPDATE CASCADE;
+
+ GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_frist TO vilesci;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_frist_status TO vilesci;
+ GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_frist_ereignis TO vilesci;
+
+ GRANT USAGE ON hr.tbl_frist_frist_id_seq TO vilesci;
+
+ INSERT INTO hr.tbl_frist_status(status_kurzbz, bezeichnung, sort) VALUES('neu','Neu', 1);
+ INSERT INTO hr.tbl_frist_status(status_kurzbz, bezeichnung, sort) VALUES('in_bearbeitung','In Bearbeitung', 2);
+ INSERT INTO hr.tbl_frist_status(status_kurzbz, bezeichnung, sort) VALUES('erledigt','Erledigt', 3);
+
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('dv_beginn','DV Beginn', 1);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('dv_ende','DV Ende', 2);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('stunden_beginn','Stunden Beginn', 3);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('stunden_ende','Stunden Ende', 4);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('karenz_beginn','Karenz Beginn', 5);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('karenz_ende','Karenz Ende', 6);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('zeitaufzeichnung_beginn','Zeitaufzeichnung Beginn', 7);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('zeitaufzeichnung_ende','Zeitaufzeichnung Ende', 8);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('befristung_beginn','Befristung Beginn', 9);
+ INSERT INTO hr.tbl_frist_ereignis(ereignis_kurzbz, bezeichnung, sort) VALUES('befristung_ende','Befristung Ende', 10);
+ INSERT INTO hr.tbl_frist_ereignis (ereignis_kurzbz , bezeichnung, manuell, sort) VALUES('manuell1','Manuell 1', true, 11);
+ INSERT INTO hr.tbl_frist_ereignis (ereignis_kurzbz , bezeichnung, manuell, sort) VALUES('manuell2','Manuell 2', true, 12);
+ INSERT INTO hr.tbl_frist_ereignis (ereignis_kurzbz , bezeichnung, manuell, sort) VALUES('manuell3','Manuell 3', true, 13);
+ INSERT INTO hr.tbl_frist_ereignis (ereignis_kurzbz , bezeichnung, manuell, sort) VALUES('manuell4','Manuell 4', true, 14);
+
+
+ ";
+
+ if (! $db->db_query($qry))
+ echo 'Fristenmanagement: ' . $db->db_last_error() . '
';
+ else
+ echo 'Fristenmanagementtabellen wurden neu erstellt';
+ }
+}
diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php
index 20f155afe..4265602e9 100644
--- a/system/phrasesupdate.php
+++ b/system/phrasesupdate.php
@@ -24397,7 +24397,207 @@ array(
'insertvon' => 'system'
)
)
- ),
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'frist',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Frist',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadline',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'todo',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'To Do',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'To Do',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'fristStatusGespeichert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Status gespeichert.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Status saved.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'fristGespeichert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Frist gespeichert.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadline saved.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'fristGeloescht',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Frist gelöscht.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadline deleted.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'fristenAktualisiert',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Fristen aktualisiert.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Deadlines updated.',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'termin_frist',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Termin/Frist',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Date/Deadline',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'ereignis',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Ereignis',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Event',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'status',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'Status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Status',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
+ array(
+ 'app' => 'personalverwaltung',
+ 'category' => 'fristenmanagement',
+ 'phrase' => 'mitarbeiterin',
+ 'insertvon' => 'system',
+ 'phrases' => array(
+ array(
+ 'sprache' => 'German',
+ 'text' => 'MitarbeiterIn',
+ 'description' => '',
+ 'insertvon' => 'system'
+ ),
+ array(
+ 'sprache' => 'English',
+ 'text' => 'Employee',
+ 'description' => '',
+ 'insertvon' => 'system'
+ )
+ )
+ ),
// Personalverwaltung end
array(
'app' => 'core',