From de9446062b7cb647afb6812fc5a3ceeb181a71c9 Mon Sep 17 00:00:00 2001 From: Alexei Karpenko Date: Wed, 2 Sep 2026 14:33:59 +0200 Subject: [PATCH] Stundengrenze: added table for setting limit for each employee, added phrases for hour limit GUI --- .../models/ressource/Stundengrenze_model.php | 16 ++ system/dbupdate_3.4.php | 2 + ...ngrenze_fuer_externe_lehrende_aufheben.php | 47 ++++++ system/phrasesupdate.php | 140 ++++++++++++++++++ 4 files changed, 205 insertions(+) create mode 100644 application/models/ressource/Stundengrenze_model.php create mode 100644 system/dbupdate_3.4/51953_pv21_stundengrenze_fuer_externe_lehrende_aufheben.php diff --git a/application/models/ressource/Stundengrenze_model.php b/application/models/ressource/Stundengrenze_model.php new file mode 100644 index 000000000..4e277f814 --- /dev/null +++ b/application/models/ressource/Stundengrenze_model.php @@ -0,0 +1,16 @@ +dbTable = 'hr.tbl_stundengrenze'; + $this->pk = 'stundengrenze_id'; + $this->hasSequence = true; + } +} diff --git a/system/dbupdate_3.4.php b/system/dbupdate_3.4.php index 9f0137e28..58911e6be 100644 --- a/system/dbupdate_3.4.php +++ b/system/dbupdate_3.4.php @@ -101,6 +101,7 @@ 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'); +require_once('dbupdate_3.4/51953_pv21_stundengrenze_fuer_externe_lehrende_aufheben.php'); // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -221,6 +222,7 @@ $tabellen=array( "fue.tbl_scrumsprint" => array("scrumsprint_id","scrumteam_kurzbz","sprint_kurzbz","sprintstart","sprintende","insertamum","insertvon","updateamum","updatevon"), "hr.tbl_sachaufwand" => array("sachaufwand_id","mitarbeiter_uid","sachaufwandtyp_kurzbz","dienstverhaeltnis_id","beginn","ende","anmerkung","insertamum","insertvon","updateamum","updatevon","betrag"), "hr.tbl_sachaufwandtyp" => array("sachaufwandtyp_kurzbz","bezeichnung","sort", "aktiv"), + "hr.tbl_stundengrenze" => array("stundengrenze_id","mitarbeiter_uid","studiensemester_kurzbz","oe_kurzbz","stundengrenze","insertamum","insertvon","updateamum","updatevon"), "hr.tbl_stundensatz" => array("stundensatz_id","uid","stundensatztyp","stundensatz","oe_kurzbz","gueltig_von","gueltig_bis","insertamum","insertvon","updateamum","updatevon"), "hr.tbl_stundensatztyp" => array("stundensatztyp","bezeichnung","aktiv","insertamum","insertvon","updateamum","updatevon"), "hr.tbl_dienstverhaeltnis" => array("dienstverhaeltnis_id","mitarbeiter_uid","vertragsart_kurzbz","oe_kurzbz","von","bis","insertamum","insertvon","updateamum","updatevon","dvendegrund_kurzbz","dvendegrund_anmerkung"), diff --git a/system/dbupdate_3.4/51953_pv21_stundengrenze_fuer_externe_lehrende_aufheben.php b/system/dbupdate_3.4/51953_pv21_stundengrenze_fuer_externe_lehrende_aufheben.php new file mode 100644 index 000000000..687d25bac --- /dev/null +++ b/system/dbupdate_3.4/51953_pv21_stundengrenze_fuer_externe_lehrende_aufheben.php @@ -0,0 +1,47 @@ +db_query("SELECT 1 FROM hr.tbl_stundengrenze LIMIT 1")) +{ + $qry = " + CREATE TABLE IF NOT EXISTS hr.tbl_stundengrenze ( + stundengrenze_id bigserial NOT NULL, + mitarbeiter_uid character varying(32) NOT NULL, + studiensemester_kurzbz varchar(16) NOT NULL, + oe_kurzbz character varying(32), + stundengrenze smallint, + 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_stundengrenze_pkey PRIMARY KEY (stundengrenze_id), + UNIQUE(mitarbeiter_uid, studiensemester_kurzbz, oe_kurzbz) + ); + + ALTER TABLE hr.tbl_stundengrenze DROP CONSTRAINT IF EXISTS tbl_stundengrenze_mitarbeiter_uid_fk; + ALTER TABLE hr.tbl_stundengrenze ADD CONSTRAINT tbl_stundengrenze_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_stundengrenze DROP CONSTRAINT IF EXISTS tbl_stundengrenze_studiensemester_kurzbz_fk; + ALTER TABLE hr.tbl_stundengrenze ADD CONSTRAINT tbl_stundengrenze_studiensemester_kurzbz_fk FOREIGN KEY (studiensemester_kurzbz) + REFERENCES public.tbl_studiensemester (studiensemester_kurzbz) MATCH FULL + ON DELETE SET NULL ON UPDATE CASCADE; + + ALTER TABLE hr.tbl_stundengrenze DROP CONSTRAINT IF EXISTS tbl_stundengrenze_oe_kurzbz_fk; + ALTER TABLE hr.tbl_stundengrenze ADD CONSTRAINT tbl_stundengrenze_oe_kurzbz_fk FOREIGN KEY (oe_kurzbz) + REFERENCES public.tbl_organisationseinheit (oe_kurzbz) MATCH FULL + ON DELETE SET NULL ON UPDATE CASCADE; + + COMMENT ON TABLE hr.tbl_stundengrenze IS 'Definition of upper boundaries for hours of lecttureships.'; + + GRANT SELECT, UPDATE, INSERT, DELETE ON hr.tbl_stundengrenze TO vilesci; + GRANT USAGE ON hr.tbl_stundengrenze_stundengrenze_id_seq TO vilesci;"; + + if (!$db->db_query($qry)) + echo 'Stundengrenze Tabelle: ' . $db->db_last_error() . '
'; + else + echo 'Stundengrenze Tabelle erstellt'; + +} diff --git a/system/phrasesupdate.php b/system/phrasesupdate.php index 280a1cf42..576e7896b 100644 --- a/system/phrasesupdate.php +++ b/system/phrasesupdate.php @@ -62411,6 +62411,146 @@ I have been informed that I am under no obligation to consent to the transmissio ) ) ), + array( + 'app' => 'personalverwaltung', + 'category' => 'person', + 'phrase' => 'stundengrenzen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stundengrenzen', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Hour limits', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'personalverwaltung', + 'category' => 'person', + 'phrase' => 'stundengrenze', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stundengrenze', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'hour limit', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'personalverwaltung', + 'category' => 'core', + 'phrase' => 'alleOrganisationseinheiten', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Alle Organisationseinheiten', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'All organisational units', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'personalverwaltung', + 'category' => 'person', + 'phrase' => 'stundengrenzeNochNichtGespeichert', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stundengrenzen schließen? Geänderte Daten gehen verloren!', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Close hour limits? Changes will be lost!', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'personalverwaltung', + 'category' => 'person', + 'phrase' => 'stundengrenzeGespeichert', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stundengrenze gespeichert', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Hour limit saved', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'personalverwaltung', + 'category' => 'person', + 'phrase' => 'stundengrenzeGeloescht', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stundengrenze gelöscht', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Hour limit deleted', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), + array( + 'app' => 'personalverwaltung', + 'category' => 'person', + 'phrase' => 'stundengrenzeWirklichLoeschen', + 'insertvon' => 'system', + 'phrases' => array( + array( + 'sprache' => 'German', + 'text' => 'Stundengrenze wirklich löschen?', + 'description' => '', + 'insertvon' => 'system' + ), + array( + 'sprache' => 'English', + 'text' => 'Really delete hour limit?', + 'description' => '', + 'insertvon' => 'system' + ) + ) + ), );