From b950d666d0b1e2583639f3a82845260d226c91d1 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 13 Jun 2019 12:42:46 +0200 Subject: [PATCH 1/7] Created table campus.tbl_zeitaufzeichnung_gd --- system/dbupdate_3.3.php | 81 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index ac5f5fdba..08141c744 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -2938,6 +2938,86 @@ if(!$result = @$db->db_query("SELECT bezeichnung_mehrsprachig FROM bis.tbl_orgfo } } +// Create SEQUENCE tbl_zeitaufzeichnung_gd_id +if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_zeitaufzeichnung_gd_id_seq'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = ' + CREATE SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq + START WITH 1 + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + '; + if (!$db->db_query($qry)) + echo 'campus.tbl_zeitaufzeichnung_gd_id_seq '.$db->db_last_error().'
'; + else + echo '
Created sequence: campus.tbl_zeitaufzeichnung_gd_id_seq'; + + // GRANT SELECT, UPDATE ON SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq TO web; + $qry = 'GRANT SELECT, UPDATE ON SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq TO web;'; + if (!$db->db_query($qry)) + echo 'campus.tbl_zeitaufzeichnung_gd_id_seq '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on campus.tbl_zeitaufzeichnung_gd_id_seq'; + + // GRANT SELECT, UPDATE ON SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq TO vilesci; + $qry = 'GRANT SELECT, UPDATE ON SEQUENCE campus.tbl_zeitaufzeichnung_gd_id_seq TO vilesci;'; + if (!$db->db_query($qry)) + echo 'campus.tbl_zeitaufzeichnung_gd_id_seq '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on campus.tbl_zeitaufzeichnung_gd_id_seq'; + } +} + +// Create TABLE campus.tbl_zeitaufzeichnung_gd +if(!@$db->db_query("SELECT 0 FROM campus.tbl_zeitaufzeichnung_gd WHERE 0 = 1")) { + $qry = ' + CREATE TABLE campus.tbl_zeitaufzeichnung_gd + ( + zeitaufzeichnung_gd_id integer NOT NULL DEFAULT NEXTVAL(\'campus.tbl_zeitaufzeichnung_gd_id_seq\'::regclass), + uid varchar(32) NOT NULL, + studiensemester_kurzbz varchar(16) NOT NULL, + selbstverwaltete_pause boolean NOT NULL, + insertamum TIMESTAMP DEFAULT NOW(), + insertvon varchar(32), + updateamum TIMESTAMP, + updatevon varchar(32) + ); + + ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT pk_zeitaufzeichnung_gd_zeitaufzeichnung_gd_id PRIMARY KEY (zeitaufzeichnung_gd_id); + + ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT fk_zeitaufzeichnung_gd_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT; + ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT fk_zeitaufzeichnung_gd_studiensemester_kurzbz FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; + + COMMENT ON TABLE campus.tbl_zeitaufzeichnung_gd IS \'Table to manage the lectors parted working times; gd = Geteilte Dienste\'; + COMMENT ON COLUMN campus.tbl_zeitaufzeichnung_gd.selbstverwaltete_pause IS \'Lectors (dis-)agreement to self-manage breaks\'; + + '; + if (!$db->db_query($qry)) + echo 'campus.tbl_zeitaufzeichnung_gd ' . $db->db_last_error() . '
'; + else + echo '
Created table campus.tbl_zeitaufzeichnung_gd'; + + + // GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE campus.tbl_zeitaufzeichnung_gd TO web; + $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE campus.tbl_zeitaufzeichnung_gd TO web;'; + if (!$db->db_query($qry)) + echo 'campus.tbl_zeitaufzeichnung_gd ' . $db->db_last_error() . '
'; + else + echo '
Granted privileges to web on campus.tbl_zeitaufzeichnung_gd'; + + // GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE campus.tbl_zeitaufzeichnung_gd TO vilesci; + $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE campus.tbl_zeitaufzeichnung_gd TO vilesci;'; + if (!$db->db_query($qry)) + echo 'campus.tbl_zeitaufzeichnung_gd ' . $db->db_last_error() . '
'; + else + echo '
Granted privileges to vilesci on campus.tbl_zeitaufzeichnung_gd'; + +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -3022,6 +3102,7 @@ $tabellen=array( "campus.tbl_veranstaltung" => array("veranstaltung_id","titel","beschreibung","veranstaltungskategorie_kurzbz","inhalt","start","ende","freigabevon","freigabeamum","updateamum","updatevon","insertamum","insertvon"), "campus.tbl_veranstaltungskategorie" => array("veranstaltungskategorie_kurzbz","bezeichnung","bild","farbe"), "campus.tbl_zeitaufzeichnung" => array("zeitaufzeichnung_id","uid","aktivitaet_kurzbz","projekt_kurzbz","start","ende","beschreibung","oe_kurzbz_1","oe_kurzbz_2","insertamum","insertvon","updateamum","updatevon","ext_id","service_id","kunde_uid"), + "campus.tbl_zeitaufzeichnung_gd" => array("zeitaufzeichnung_gd_id","uid","studiensemester_kurzbz","selbstverwaltete_pause","insertamum","insertvon","updateamum","updatevon"), "campus.tbl_zeitsperre" => array("zeitsperre_id","zeitsperretyp_kurzbz","mitarbeiter_uid","bezeichnung","vondatum","vonstunde","bisdatum","bisstunde","vertretung_uid","updateamum","updatevon","insertamum","insertvon","erreichbarkeit_kurzbz","freigabeamum","freigabevon"), "campus.tbl_zeitsperretyp" => array("zeitsperretyp_kurzbz","beschreibung","farbe"), "campus.tbl_zeitwunsch" => array("stunde","mitarbeiter_uid","tag","gewicht","updateamum","updatevon","insertamum","insertvon"), From c887c61d968933b5a6bc7be30dc1d872d496cacc Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 13 Jun 2019 16:19:23 +0200 Subject: [PATCH 2/7] Created class zeitaufzeichnung_gd & method save() The save method saves the lectors decision about self-managing breaks during parted working times. --- include/zeitaufzeichnung_gd.class.php | 83 +++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 include/zeitaufzeichnung_gd.class.php diff --git a/include/zeitaufzeichnung_gd.class.php b/include/zeitaufzeichnung_gd.class.php new file mode 100644 index 000000000..c88cc9525 --- /dev/null +++ b/include/zeitaufzeichnung_gd.class.php @@ -0,0 +1,83 @@ +uid) && + is_string($this->studiensemester_kurzbz) && + is_bool($this->selbstverwaltete_pause)) + { + $qry = ' + INSERT INTO campus.tbl_zeitaufzeichnung_gd ( + uid, + studiensemester_kurzbz, + selbstverwaltete_pause, + insertvon + ) + VALUES ('. + $this->db_add_param($this->uid). ', '. + $this->db_add_param($this->studiensemester_kurzbz). ', '. + $this->db_add_param($this->selbstverwaltete_pause). ', '. + $this->db_add_param($this->uid). ' + ); + '; + + if ($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der selbstverwalteten Pause'; + return false; + } + } + else + { + $this->errormsg = 'Falsche Parameterübergabe'; + return false; + } + } +} \ No newline at end of file From 041d1be048b8aaeb3cf30084192359e55d778af1 Mon Sep 17 00:00:00 2001 From: Cris Date: Thu, 13 Jun 2019 16:23:16 +0200 Subject: [PATCH 3/7] Added GUI for acceptance of self-managed breaks + saving logic --- cis/private/profile/zeitwunsch.php | 54 ++++++++++++++++++++++++++---- 1 file changed, 48 insertions(+), 6 deletions(-) diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index ef0840c87..ffa38721f 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -29,6 +29,8 @@ require_once('../../../include/globals.inc.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/datum.class.php'); require_once('../../../include/zeitwunsch.class.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/zeitaufzeichnung_gd.class.php'); require_once('../../../include/benutzer.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/sprache.class.php'); @@ -107,6 +109,28 @@ $person = new benutzer(); if(!$person->load($uid)) die($person->errormsg); +// Nächstes Studiensemester +$ss = new Studiensemester(); +$ss->getNextStudiensemester(); +$next_ss = $ss->studiensemester_kurzbz; + +// Erklärung zu Pausen bei geteilten Arbeitszeiten speichern +if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit'])) +{ + $selbstverwaltete_pause = ($_GET['selbstverwaltete-pause'] == 'yes') ? true : false; + + $zeitaufzeichnung_gd = new Zeitaufzeichnung_gd(); + $zeitaufzeichnung_gd->uid = $uid; + $zeitaufzeichnung_gd->studiensemester_kurzbz = $next_ss; + $zeitaufzeichnung_gd->selbstverwaltete_pause = $selbstverwaltete_pause; + + if (!$zeitaufzeichnung_gd->save()) + { + echo $zeitaufzeichnung_gd->errormsg; + } + +} + ?> @@ -206,12 +230,30 @@ if(!$person->load($uid)) ?> -
"; - echo $p->t('zeitwunsch/formularZumEintragenDerZeitsperren', array($href)); - ?> - -

t('zeitwunsch/erklärung');?>:

+ + +
+
+
+

Erklärung zu Pausen bei geteilten Arbeitszeiten


+

+ Ich kenne die arbeitsrechtlichen Betriebsvereinbarungen zur Pauseneinhaltung bei geteilten Arbeitszeiten.
+ Für das kommende Studiensemester erkläre ich mich einverstanden, meine Pausen selbst zu verwalten. + ja + nein

+ +

+
+
+

+ +

t('zeitwunsch/erklärung');?>:

+ + "; + echo $p->t('zeitwunsch/formularZumEintragenDerZeitsperren', array($href)); + ?> +

t('zeitwunsch/kontrollierenSieIhreZeitwuensche');?>!

From 8843462c7daeff10b19b8ff85da0dc42b6bb1e55 Mon Sep 17 00:00:00 2001 From: raab Date: Fri, 14 Jun 2019 11:49:50 +0200 Subject: [PATCH 4/7] load entry and display if exists --- cis/private/profile/zeitwunsch.php | 20 +++++++++-- include/zeitaufzeichnung_gd.class.php | 49 +++++++++++++++++++++++++-- 2 files changed, 63 insertions(+), 6 deletions(-) diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index ffa38721f..5b5b13d35 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -239,9 +239,23 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit']))

Ich kenne die arbeitsrechtlichen Betriebsvereinbarungen zur Pauseneinhaltung bei geteilten Arbeitszeiten.
Für das kommende Studiensemester erkläre ich mich einverstanden, meine Pausen selbst zu verwalten. - ja - nein

- + load($uid, $next_ss); + if ( ! $gd->uid ) + { + echo 'ja + nein

+ + '; + } + else + { + echo '

Zustimmung für '.$next_ss.': '.$gd->selbstverwaltete_pause; + } + //var_dump($gd); + ?> +

diff --git a/include/zeitaufzeichnung_gd.class.php b/include/zeitaufzeichnung_gd.class.php index c88cc9525..f8a68d653 100644 --- a/include/zeitaufzeichnung_gd.class.php +++ b/include/zeitaufzeichnung_gd.class.php @@ -39,6 +39,49 @@ class zeitaufzeichnung_gd extends basis_db parent::__construct(); } + /** + * Loads etry for specific user and semester + * @return boolean True, if saving succeeded. + */ + public function load($user, $sem) + { + if ($user && $sem) + { + $qry = ' + SELECT * FROM campus.tbl_zeitaufzeichnung_gd + WHERE uid = '.$this->db_add_param($user). + ' AND studiensemester_kurzbz = ' . $this->db_add_param($sem) . + 'limit 1'; + + if(!$this->db_query($qry)) + { + $this->errormsg = 'Fehler bei einer Datenbankabfrage'; + return false; + } + if($row = $this->db_fetch_object()) + { + $this->zeitaufzeichnung_gd_id = $row->zeitaufzeichnung_gd_id; + $this->uid = $row->uid; + $this->studiensemester_kurzbz = $row->studiensemester_kurzbz; + $this->insertamum = $row->insertamum; + $this->insertvon = $row->insertvon; + $this->updateamum = $row->updateamum; + $this->updatevon = $row->updatevon; + $this->selbstverwaltete_pause = $row->selbstverwaltete_pause; + } + else + { + $this->errormsg = 'Es ist kein Datensatz vorhanden'; + return false; + } + } + else + { + $this->errormsg = 'Falsche Parameterübergabe'; + return false; + } + } + /** * Saves decision about self-managing breaks during parted working times. * @return boolean True, if saving succeeded. @@ -49,7 +92,7 @@ class zeitaufzeichnung_gd extends basis_db is_string($this->studiensemester_kurzbz) && is_bool($this->selbstverwaltete_pause)) { - $qry = ' + $qry = ' INSERT INTO campus.tbl_zeitaufzeichnung_gd ( uid, studiensemester_kurzbz, @@ -59,7 +102,7 @@ class zeitaufzeichnung_gd extends basis_db VALUES ('. $this->db_add_param($this->uid). ', '. $this->db_add_param($this->studiensemester_kurzbz). ', '. - $this->db_add_param($this->selbstverwaltete_pause). ', '. + $this->db_add_param($this->selbstverwaltete_pause, FHC_BOOLEAN). ', '. $this->db_add_param($this->uid). ' ); '; @@ -80,4 +123,4 @@ class zeitaufzeichnung_gd extends basis_db return false; } } -} \ No newline at end of file +} From 6ad63faa86e15f85acdf86c5250653e0e54c55af Mon Sep 17 00:00:00 2001 From: raab Date: Mon, 24 Jun 2019 14:43:08 +0200 Subject: [PATCH 5/7] geteilte dienste --- cis/private/profile/zeitwunsch.php | 76 ++++++++++++++++----------- include/zeitaufzeichnung_gd.class.php | 4 +- system/dbupdate_3.3.php | 11 ++-- 3 files changed, 53 insertions(+), 38 deletions(-) diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index 5b5b13d35..8f7e0238d 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -123,8 +123,13 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit'])) $zeitaufzeichnung_gd->uid = $uid; $zeitaufzeichnung_gd->studiensemester_kurzbz = $next_ss; $zeitaufzeichnung_gd->selbstverwaltete_pause = $selbstverwaltete_pause; - - if (!$zeitaufzeichnung_gd->save()) + $za_gd = new Zeitaufzeichnung_gd(); + $za_gd->load($uid, $next_ss); + if ($za_gd->uid) + { + echo 'Bereits eingetragen'; + } + else if (!$zeitaufzeichnung_gd->save()) { echo $zeitaufzeichnung_gd->errormsg; } @@ -167,8 +172,45 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit'])) +
+ + + + + +
+

Zustimmung zu selbstverwalteten Pausen

+ +
+

Erklärung zu Pausen bei geteilten Arbeitszeiten


+

+ Ich bin mit der Verplanung meiner Lehre in getrennten Blöcken (Vormittags und Abends) einverstanden und berücksichtige bei der Einteilung meiner Pause,
+ dass ich die tägliche Höchstgrenze laut AZG (10 Stunden) nicht überschreite. Diese Zustimmung gilt jeweils für ein Semester. + load($uid, $next_ss); + if ( ! $gd->uid ) + { + echo '

Für das kommende Studiensemester '.$next_ss.' erkläre ich mich einverstanden, meine Pausen entsprechend selbst zu verwalten: '; + echo 'ja'; + echo 'nein'; + echo '




'; + } + else + { + $zustimmung = ($gd->selbstverwaltete_pause) ? ' erteilt' : 'abgelehnt'; + echo '

Zustimmung für '.$next_ss.': '.$zustimmung.' am '.$datum_obj->formatDatum($gd->insertamum,'d.m.Y H:i:s').'

'; + } + //var_dump($gd); + ?> + +

+
+ +

+

t('zeitwunsch/zeitwunsch');?>

@@ -231,35 +273,7 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit'])) - -
-
-
-

Erklärung zu Pausen bei geteilten Arbeitszeiten


-

- Ich kenne die arbeitsrechtlichen Betriebsvereinbarungen zur Pauseneinhaltung bei geteilten Arbeitszeiten.
- Für das kommende Studiensemester erkläre ich mich einverstanden, meine Pausen selbst zu verwalten. - load($uid, $next_ss); - if ( ! $gd->uid ) - { - echo 'ja - nein

- - '; - } - else - { - echo '

Zustimmung für '.$next_ss.': '.$gd->selbstverwaltete_pause; - } - //var_dump($gd); - ?> - -

-
-
-

+

t('zeitwunsch/erklärung');?>:

diff --git a/include/zeitaufzeichnung_gd.class.php b/include/zeitaufzeichnung_gd.class.php index f8a68d653..e91e2158a 100644 --- a/include/zeitaufzeichnung_gd.class.php +++ b/include/zeitaufzeichnung_gd.class.php @@ -40,7 +40,7 @@ class zeitaufzeichnung_gd extends basis_db } /** - * Loads etry for specific user and semester + * Loads entry for specific user and semester * @return boolean True, if saving succeeded. */ public function load($user, $sem) @@ -67,7 +67,7 @@ class zeitaufzeichnung_gd extends basis_db $this->insertvon = $row->insertvon; $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; - $this->selbstverwaltete_pause = $row->selbstverwaltete_pause; + $this->selbstverwaltete_pause = $this->db_parse_bool($row->selbstverwaltete_pause); } else { diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 08141c744..dfb52baad 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -2975,7 +2975,7 @@ if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_zeitauf // Create TABLE campus.tbl_zeitaufzeichnung_gd if(!@$db->db_query("SELECT 0 FROM campus.tbl_zeitaufzeichnung_gd WHERE 0 = 1")) { $qry = ' - CREATE TABLE campus.tbl_zeitaufzeichnung_gd + CREATE TABLE campus.tbl_zeitaufzeichnung_gd ( zeitaufzeichnung_gd_id integer NOT NULL DEFAULT NEXTVAL(\'campus.tbl_zeitaufzeichnung_gd_id_seq\'::regclass), uid varchar(32) NOT NULL, @@ -2986,15 +2986,16 @@ if(!@$db->db_query("SELECT 0 FROM campus.tbl_zeitaufzeichnung_gd WHERE 0 = 1")) updateamum TIMESTAMP, updatevon varchar(32) ); - + ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT pk_zeitaufzeichnung_gd_zeitaufzeichnung_gd_id PRIMARY KEY (zeitaufzeichnung_gd_id); - + ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT fk_zeitaufzeichnung_gd_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT; ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT fk_zeitaufzeichnung_gd_studiensemester_kurzbz FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; - + ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT uk_uid_stsem UNIQUE (uid, studiensemester_kurzbz); + COMMENT ON TABLE campus.tbl_zeitaufzeichnung_gd IS \'Table to manage the lectors parted working times; gd = Geteilte Dienste\'; COMMENT ON COLUMN campus.tbl_zeitaufzeichnung_gd.selbstverwaltete_pause IS \'Lectors (dis-)agreement to self-manage breaks\'; - + '; if (!$db->db_query($qry)) echo 'campus.tbl_zeitaufzeichnung_gd ' . $db->db_last_error() . '
'; From a8f7199ee8076bbd0fe3272c6c5baf4583c0d695 Mon Sep 17 00:00:00 2001 From: raab Date: Mon, 1 Jul 2019 15:53:57 +0200 Subject: [PATCH 6/7] =?UTF-8?q?nur=20f=C3=BCr=20fixangestellte,=20neuer=20?= =?UTF-8?q?text?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/zeitwunsch.php | 25 +++++++++++++++++-------- include/zeitaufzeichnung_gd.class.php | 2 +- system/dbupdate_3.3.php | 2 +- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index 8f7e0238d..623bc78fe 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -32,6 +32,7 @@ require_once('../../../include/zeitwunsch.class.php'); require_once('../../../include/studiensemester.class.php'); require_once('../../../include/zeitaufzeichnung_gd.class.php'); require_once('../../../include/benutzer.class.php'); +require_once('../../../include/mitarbeiter.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/sprache.class.php'); @@ -48,6 +49,7 @@ $uid = get_uid(); if(!check_lektor($uid)) die($p->t('global/keineBerechtigungFuerDieseSeite')); + $PHP_SELF = $_SERVER['PHP_SELF']; if(isset($_GET['type'])) @@ -109,6 +111,9 @@ $person = new benutzer(); if(!$person->load($uid)) die($person->errormsg); +$ma = new mitarbeiter($uid); +$fixangestellt = $ma->fixangestellt; + // Nächstes Studiensemester $ss = new Studiensemester(); $ss->getNextStudiensemester(); @@ -175,23 +180,28 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit']))
- + - +
-

Zustimmung zu selbstverwalteten Pausen

+

Zustimmung zur Verplanung in geteilter Arbeitszeit

-

Erklärung zu Pausen bei geteilten Arbeitszeiten


- Ich bin mit der Verplanung meiner Lehre in getrennten Blöcken (Vormittags und Abends) einverstanden und berücksichtige bei der Einteilung meiner Pause,
- dass ich die tägliche Höchstgrenze laut AZG (10 Stunden) nicht überschreite. Diese Zustimmung gilt jeweils für ein Semester. + Ich bin mit der Verplanung meiner Lehre in getrennten Blöcken (vormittags und abends an einem Tag) einverstanden. +
Diese Zustimmung gilt jeweils für ein Semester. +

+ Erklärung zu täglichen Ruhepausen bei geteilter Arbeitszeit: Die Verplanung bei geteilter Arbeitszeit hat eine Auswirkung +
auf die zeitliche Gestaltung/Lage der täglichen Ruhepausen. +

+ Ich berücksichtige bei der Einteilung meiner täglichen Ruhepause, dass ich die tägliche Höchstgrenze der Arbeitszeit +
von 10 Stunden laut Arbeitszeitgesetz nicht überschritten wird. load($uid, $next_ss); if ( ! $gd->uid ) { - echo '

Für das kommende Studiensemester '.$next_ss.' erkläre ich mich einverstanden, meine Pausen entsprechend selbst zu verwalten: '; + echo '

Zustimmung für '.$next_ss.': '; echo 'ja'; echo 'nein'; echo '




'; @@ -206,11 +216,10 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit']))

-

t('zeitwunsch/zeitwunsch');?>

diff --git a/include/zeitaufzeichnung_gd.class.php b/include/zeitaufzeichnung_gd.class.php index e91e2158a..db678addb 100644 --- a/include/zeitaufzeichnung_gd.class.php +++ b/include/zeitaufzeichnung_gd.class.php @@ -41,7 +41,7 @@ class zeitaufzeichnung_gd extends basis_db /** * Loads entry for specific user and semester - * @return boolean True, if saving succeeded. + * @return boolean True, if entry is found. */ public function load($user, $sem) { diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index dfb52baad..dcac98148 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -2991,7 +2991,7 @@ if(!@$db->db_query("SELECT 0 FROM campus.tbl_zeitaufzeichnung_gd WHERE 0 = 1")) ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT fk_zeitaufzeichnung_gd_uid FOREIGN KEY (uid) REFERENCES public.tbl_benutzer(uid) ON UPDATE CASCADE ON DELETE RESTRICT; ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT fk_zeitaufzeichnung_gd_studiensemester_kurzbz FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; - ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT uk_uid_stsem UNIQUE (uid, studiensemester_kurzbz); + ALTER TABLE campus.tbl_zeitaufzeichnung_gd ADD CONSTRAINT uk_zeitaufzeichnung_gd_uid_stsem UNIQUE (uid, studiensemester_kurzbz); COMMENT ON TABLE campus.tbl_zeitaufzeichnung_gd IS \'Table to manage the lectors parted working times; gd = Geteilte Dienste\'; COMMENT ON COLUMN campus.tbl_zeitaufzeichnung_gd.selbstverwaltete_pause IS \'Lectors (dis-)agreement to self-manage breaks\'; From 48c57136882495a88901533fcc5c4f209f1c86af Mon Sep 17 00:00:00 2001 From: raab Date: Thu, 4 Jul 2019 17:02:11 +0200 Subject: [PATCH 7/7] geteilte arbeitszeit konfigurierbar --- cis/private/profile/zeitwunsch.php | 11 ++--------- config/cis.config-default.inc.php | 4 ++++ locale/de-AT/zeitwunsch.php | 5 +++-- locale/en-US/zeitwunsch.php | 5 +++-- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/cis/private/profile/zeitwunsch.php b/cis/private/profile/zeitwunsch.php index 623bc78fe..73ba51bf9 100644 --- a/cis/private/profile/zeitwunsch.php +++ b/cis/private/profile/zeitwunsch.php @@ -180,7 +180,7 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit']))
- +
@@ -188,15 +188,8 @@ if (isset($_GET['selbstverwaltete-pause']) && !empty($_GET['submit']))

- Ich bin mit der Verplanung meiner Lehre in getrennten Blöcken (vormittags und abends an einem Tag) einverstanden. -
Diese Zustimmung gilt jeweils für ein Semester. -

- Erklärung zu täglichen Ruhepausen bei geteilter Arbeitszeit: Die Verplanung bei geteilter Arbeitszeit hat eine Auswirkung -
auf die zeitliche Gestaltung/Lage der täglichen Ruhepausen. -

- Ich berücksichtige bei der Einteilung meiner täglichen Ruhepause, dass ich die tägliche Höchstgrenze der Arbeitszeit -
von 10 Stunden laut Arbeitszeitgesetz nicht überschritten wird. t('zeitwunsch/geteilteArbeitszeit'); $gd = new zeitaufzeichnung_gd(); $gd->load($uid, $next_ss); if ( ! $gd->uid ) diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index 3f75b0af3..28376a04f 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -245,4 +245,8 @@ define('CIS_LVMENUE_CUTLENGTH', 21); // Gibt an, auf welche Seite TicketIds ala #1234 im Jahresplan verlinkt werden zB zur Verlinkung in Bugtracker define('JAHRESPLAN_TICKET_LINK','https://bug.technikum-wien.at/otrs/index.pl?Action=AgentTicketZoom;TicketNumber='); + +//Gibt an ob der Block zu Verplanung in geteilter Arbeitszeit bei den Zeitwünschen angezeigt wird. Default: false +define('CIS_ZEITWUNSCH_GD', false); + ?> diff --git a/locale/de-AT/zeitwunsch.php b/locale/de-AT/zeitwunsch.php index 19e188530..a84da2b0e 100644 --- a/locale/de-AT/zeitwunsch.php +++ b/locale/de-AT/zeitwunsch.php @@ -14,7 +14,7 @@ $this->phrasen['zeitwunsch/bedeutung']='Bedeutung'; $this->phrasen['zeitwunsch/hierMoechteIchUnterrichten']='Hier möchte ich unterrichten'; $this->phrasen['zeitwunsch/hierKannIchUnterrichten']='Hier kann ich unterrichten'; $this->phrasen['zeitwunsch/nurInNotfaellen']='Hier unterrichte ich nur ungern'; -$this->phrasen['zeitwunsch/hierAufGarKeinenFall']='Hier kann ich gar nicht unterrichten'; +$this->phrasen['zeitwunsch/hierAufGarKeinenFall']='Hier kann ich gar nicht unterrichten'; $this->phrasen['zeitwunsch/folgendePunkteSindZuBeachten']='Folgende Punkte sind zu beachten'; $this->phrasen['zeitwunsch/verwendenSieDenWertNur']='Verwenden Sie den Wert -2 nur, wenn Sie zu dieser Stunde wirklich nicht können, um eine bessere Optimierung zu ermöglichen.'; $this->phrasen['zeitwunsch/sperrenSieNurTermine']='Markieren Sie mit den Werten -1 und -2 bitte nur Termine, die für die Lehre an der FH nicht in Frage kommen.
Die Zeitsperren sind nicht dafür gedacht, bereits zugesagte Stunden für bestimmte Studiengänge zu reservieren.'; @@ -22,4 +22,5 @@ $this->phrasen['zeitwunsch/esSolltenFuerJedeStunde']='Es sollten für jede Stund $this->phrasen['zeitwunsch/erklaerung']='Erklärung'; $this->phrasen['zeitwunsch/beiProblemenWendenSieSichAn']='Bei Problemen wenden Sie sich bitte an die'; $this->phrasen['zeitwunsch/profil']='Profil'; -?> \ No newline at end of file +$this->phrasen['zeitwunsch/geteilteArbeitszeit']='Ich bin mit der Verplanung meiner Lehre in getrennten Blöcken am Tagesrand einverstanden.'; +?> diff --git a/locale/en-US/zeitwunsch.php b/locale/en-US/zeitwunsch.php index 9d6e32119..dd9abdc3e 100644 --- a/locale/en-US/zeitwunsch.php +++ b/locale/en-US/zeitwunsch.php @@ -14,7 +14,7 @@ $this->phrasen['zeitwunsch/bedeutung']='Meaning'; $this->phrasen['zeitwunsch/hierMoechteIchUnterrichten']='I would like to teach at this time'; $this->phrasen['zeitwunsch/hierKannIchUnterrichten']='I can teach at this time'; $this->phrasen['zeitwunsch/nurInNotfaellen']='I would prefer not to teach at this time'; -$this->phrasen['zeitwunsch/hierAufGarKeinenFall']='I can not at all teach at this time'; +$this->phrasen['zeitwunsch/hierAufGarKeinenFall']='I can not at all teach at this time'; $this->phrasen['zeitwunsch/folgendePunkteSindZuBeachten']='Please note:'; $this->phrasen['zeitwunsch/verwendenSieDenWertNur']='To make a better optimization possible, please only use the value of -2 if you really can not teach at this time.'; $this->phrasen['zeitwunsch/sperrenSieNurTermine']='Please only mark times where you are absolutely not available to teach at the UAS with the numbers 1 and 2.
Do not mark times for specific courses that you have already been assigned to teach at the UAS as unavailable.'; @@ -22,4 +22,5 @@ $this->phrasen['zeitwunsch/esSolltenFuerJedeStunde']='The amount of preferred te $this->phrasen['zeitwunsch/erklaerung']='Explanation'; $this->phrasen['zeitwunsch/beiProblemenWendenSieSichAn']='If you are having problems, please contact the '; $this->phrasen['zeitwunsch/profil']='Profile'; -?> \ No newline at end of file +$this->phrasen['zeitwunsch/geteilteArbeitszeit']='Ich bin mit der Verplanung meiner Lehre in getrennten Blöcken am Tagesrand einverstanden.'; +?>