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',