From 301c836255b7044dae7fb392cc61f651d3171b79 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 19 May 2021 11:48:29 +0200 Subject: [PATCH 01/27] add spalte homeoffice to zeitaufzeichnung --- system/dbupdate_3.3.php | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 62beadbce..0e0d4c9cb 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4700,6 +4700,19 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht } } +// ADD COLUMN homeoffice in campus.tbl_zeitaufzeichnung +if(!$result = @$db->db_query("SELECT homeoffice FROM campus.tbl_zeitaufzeichnung 1")) +{ + $qry = " + ALTER TABLE campus.tbl_zeitaufzeichnung ADD COLUMN homeoffice boolean NOT NULL DEFAULT false ; + "; + + if(!$db->db_query($qry)) + echo 'campus.tbl_zeitaufzeichnung: '.$db->db_last_error().'
'; + else + echo '
campus.tbl_zeitaufzeichnung Spalte homeoffice hinzugefügt.'; +} + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; From db1f0f5316c6611d55c77115cbb649c789401c0f Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 19 May 2021 11:57:27 +0200 Subject: [PATCH 02/27] add homeoffice checkbox --- cis/private/tools/zeitaufzeichnung.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index d009a3a10..59e6561b1 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1444,6 +1444,17 @@ if($projekt->getProjekteMitarbeiter($user, true)) '; + //Homeoffice Checkbox + echo ' + +   + + + Homeoffice + + + + '; //Beschreibung echo ''.$p->t("global/beschreibung").''; echo ''; From 9180328ab57888be6b37b95b785fcec4ab14f918 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 19 May 2021 13:59:44 +0200 Subject: [PATCH 03/27] save zeitaufzeichnung with homeoffice --- cis/private/tools/zeitaufzeichnung.php | 7 +++++-- include/zeitaufzeichnung.class.php | 10 +++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 59e6561b1..4dd1db6bb 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -131,6 +131,7 @@ $bis_datum = (isset($_REQUEST['bis_datum'])?$_REQUEST['bis_datum']:date('d.m.Y') $bis_uhrzeit = (isset($_POST['bis_uhrzeit'])?$_POST['bis_uhrzeit']:date('H:i',mktime(date('H'), date('i')+10))); $bis = $bis_datum.' '.$bis_uhrzeit; +$homeoffice = (isset($_POST['homeoffice'])?true:false); $pause_von = (isset($_POST['pause_von'])?$_POST['pause_von']:date('H:i')); $pause_bis = (isset($_POST['pause_bis'])?$_POST['pause_bis']:date('H:i')); $von_pause = $von_datum.' '.$pause_von; @@ -908,6 +909,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $zeit->updatevon = $user; $zeit->projekt_kurzbz = $projekt_kurzbz; $zeit->projektphase_id = $projektphase_id; + $zeit->homeoffice = $homeoffice; $zeit->service_id = $service_id; $zeit->kunde_uid = $kunde_uid; $saveerror = 0; @@ -1072,6 +1074,7 @@ if(isset($_GET['type']) && $_GET['type']=='edit') $oe_kurzbz_2 = $zeit->oe_kurzbz_2; $projekt_kurzbz = $zeit->projekt_kurzbz; $projektphase_id = $zeit->projektphase_id; + $homeoffice = $zeit->homeoffice; $service_id = $zeit->service_id; $kunde_uid = $zeit->kunde_uid; @@ -1449,8 +1452,8 @@ if($projekt->getProjekteMitarbeiter($user, true))   - - Homeoffice + + Homeoffice diff --git a/include/zeitaufzeichnung.class.php b/include/zeitaufzeichnung.class.php index 89dc84178..48e189c32 100644 --- a/include/zeitaufzeichnung.class.php +++ b/include/zeitaufzeichnung.class.php @@ -49,6 +49,7 @@ class zeitaufzeichnung extends basis_db public $ext_id; // bigint public $service_id; // integer public $kunde_uid; // varchar(32) + public $homeoffice; // bool /** * Konstruktor @@ -104,6 +105,7 @@ class zeitaufzeichnung extends basis_db $this->ext_id = $row->ext_id; $this->service_id = $row->service_id; $this->kunde_uid = $row->kunde_uid; + $this->homeoffice = $row->homeoffice; } else { @@ -203,7 +205,7 @@ class zeitaufzeichnung extends basis_db { //Neuen Datensatz einfuegen $qry='BEGIN;INSERT INTO campus.tbl_zeitaufzeichnung (uid, aktivitaet_kurzbz, start, ende, beschreibung, - oe_kurzbz_1, oe_kurzbz_2, insertamum, insertvon, updateamum, updatevon, projekt_kurzbz, projektphase_id, service_id, kunde_uid) VALUES('. + oe_kurzbz_1, oe_kurzbz_2, insertamum, insertvon, updateamum, updatevon, projekt_kurzbz, projektphase_id, service_id, homeoffice, kunde_uid) VALUES('. $this->db_add_param($this->uid).', '. $this->db_add_param($this->aktivitaet_kurzbz).', '. $this->db_add_param($this->start).', '. @@ -218,6 +220,7 @@ class zeitaufzeichnung extends basis_db $this->db_add_param($this->projekt_kurzbz).', '. $this->db_add_param($this->projektphase_id, FHC_INTEGER).', '. $this->db_add_param($this->service_id).', '. + $this->db_add_param($this->homeoffice, FHC_BOOLEAN).', '. $this->db_add_param($this->kunde_uid).');'; } else @@ -244,6 +247,7 @@ class zeitaufzeichnung extends basis_db ' projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).', '. ' projektphase_id='.$this->db_add_param($this->projektphase_id, FHC_INTEGER).', '. ' service_id='.$this->db_add_param($this->service_id).', '. + ' homeoffice ='.$this->db_add_param($this->homeoffice, FHC_BOOLEAN).', '. ' kunde_uid='.$this->db_add_param($this->kunde_uid).' '. 'WHERE zeitaufzeichnung_id='.$this->db_add_param($this->zeitaufzeichnung_id, FHC_INTEGER, false); } @@ -349,6 +353,7 @@ class zeitaufzeichnung extends basis_db $obj->updatevon = $row->updatevon; $obj->projekt_kurzbz = $row->projekt_kurzbz; $obj->projektphase_id = $row->projektphase_id; + $obj->homeoffice = $row->homeoffice; $obj->ext_id = $row->ext_id; $obj->service_id = $row->service_id; $obj->kunde_uid = $row->kunde_uid; @@ -430,6 +435,7 @@ class zeitaufzeichnung extends basis_db $obj->updatevon = $row->updatevon; $obj->projekt_kurzbz = $row->projekt_kurzbz; $obj->projektphase_id = $row->projektphase_id; + $obj->homeoffice = $row->homeoffice; $obj->ext_id = $row->ext_id; $obj->service_id = $row->service_id; $obj->kunde_uid = $row->kunde_uid; @@ -491,6 +497,7 @@ class zeitaufzeichnung extends basis_db $obj->updatevon = $row->updatevon; $obj->projekt_kurzbz = $row->projekt_kurzbz; $obj->projektphase_id = $row->projektphase_id; + $obj->homeoffice = $row->homeoffice; $obj->ext_id = $row->ext_id; $obj->service_id = $row->service_id; $obj->kunde_uid = $row->kunde_uid; @@ -556,6 +563,7 @@ class zeitaufzeichnung extends basis_db $obj->updatevon = $row->updatevon; $obj->projekt_kurzbz = $row->projekt_kurzbz; $obj->projektphase_id = $row->projektphase_id; + $obj->homeoffice = $row->homeoffice; $obj->ext_id = $row->ext_id; $obj->service_id = $row->service_id; $obj->kunde_uid = $row->kunde_uid; From 12a52ee79f69798beec3ef45aaf30a947ea88b53 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 19 May 2021 14:12:25 +0200 Subject: [PATCH 04/27] csv import --- cis/private/tools/zeitaufzeichnung.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 4dd1db6bb..e73c42ae4 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -807,6 +807,21 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $zeit->projektphase_id = $data[7]; if (isset($data[8])) $zeit->service_id = $data[8]; + if (isset($data[9])) + { + if(strtolower($data[9]=='true')) + { + $zeit->homeoffice = true; + } + else + { + $zeit->homeoffice = false; + } + } + else + { + $zeit->homeoffice = false; + } $tag = $datum->formatDatum($data[2], $format='Y-m-d'); if(!in_array($tag, $importtage_array)) From c8309df1712cc97fcd6aba90bdaceb5d73684ccc Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 19 May 2021 14:45:33 +0200 Subject: [PATCH 05/27] display homeoffice --- cis/private/tools/zeitaufzeichnung.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index e73c42ae4..0ced6f466 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1534,7 +1534,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo ''; else echo ''; - //echo ''; + //echo ''; $za = new zeitaufzeichnung(); if(isset($_GET['filter'])) @@ -1650,6 +1650,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000) $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; + $tagessaldo = date('H:i', ($tagessaldo)); $colspan = ($za_simple)?6:8; echo ''; @@ -1799,6 +1800,11 @@ if($projekt->getProjekteMitarbeiter($user, true)) $style = 'style="border-top: 3px solid #8DBDD8; border-bottom: 3px solid #8DBDD8"'; if ($row->aktivitaet_kurzbz=='Pause' || $row->aktivitaet_kurzbz=='LehreExtern'|| $row->aktivitaet_kurzbz=='Ersatzruhe') $style .= ' style="color: grey;"'; + if($db->convert_html_chars($row->homeoffice)=='t') + { + $homeoffice = " - Homeoffice"; + }else + $homeoffice=""; $summe = $row->summe; $service = new service(); $service->load($row->service_id); @@ -1814,7 +1820,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) { echo ' '.$db->convert_html_chars($row->oe_kurzbz_2).''; } - echo ''.$db->convert_html_chars($row->aktivitaet_kurzbz).''; + echo ''.$db->convert_html_chars($row->aktivitaet_kurzbz).($homeoffice).''; if(!$za_simple) { echo ' '.StringCut($db->convert_html_chars($service->bezeichnung),20,null,'...').' '; From 1249689813ac07e409404468ebd4acd7fd044598 Mon Sep 17 00:00:00 2001 From: OliiverHacker Date: Wed, 19 May 2021 19:59:48 +0200 Subject: [PATCH 06/27] =?UTF-8?q?Speichern=20bei=20automatischen=20Pausen?= =?UTF-8?q?=20m=C3=B6glich?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 0ced6f466..0dc621182 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -845,6 +845,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $pause->start = $ende_vorher; $pause->ende = $zeit->start; $pause->beschreibung = ''; + $pause->homeoffice = $homeoffice; if(!$pause->save()) { echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'
'; @@ -985,6 +986,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $pause->insertvon = $user; $pause->uid = $user; $pause->aktivitaet_kurzbz = 'Pause'; + $pause->homeoffice = $homeoffice; $pause->start = $datum->formatDatum($von_pause, $format='Y-m-d H:i:s'); $pause->ende = $datum->formatDatum($bis_pause, $format='Y-m-d H:i:s'); $pause->beschreibung = ''; From 531174dcb593f0e3c94eb37f0627ba92bffa4af7 Mon Sep 17 00:00:00 2001 From: manu Date: Fri, 11 Jun 2021 09:17:26 +0200 Subject: [PATCH 07/27] #13533 Button Homeoffice: Haken beim Editieren --- cis/private/tools/zeitaufzeichnung.php | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 0dc621182..9aa978f8b 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -136,6 +136,7 @@ $pause_von = (isset($_POST['pause_von'])?$_POST['pause_von']:date('H:i')); $pause_bis = (isset($_POST['pause_bis'])?$_POST['pause_bis']:date('H:i')); $von_pause = $von_datum.' '.$pause_von; $bis_pause = $bis_datum.' '.$pause_bis; +$homeofficeChecked = ''; $beschreibung = (isset($_POST['beschreibung'])?$_POST['beschreibung']:''); $service_id = (isset($_POST['service_id'])?$_POST['service_id']:''); @@ -517,7 +518,7 @@ echo ' } return true; } - + function resetProjekt() { $("#projekt").val(""); @@ -809,7 +810,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $zeit->service_id = $data[8]; if (isset($data[9])) { - if(strtolower($data[9]=='true')) + if (strtolower($data[9] == 'true')) { $zeit->homeoffice = true; } @@ -1074,13 +1075,13 @@ else echo ' '; //Laden der Daten zum aendern -if(isset($_GET['type']) && $_GET['type']=='edit') +if (isset($_GET['type']) && $_GET['type']=='edit') { $zeit = new zeitaufzeichnung(); - if($zeit->load($zeitaufzeichnung_id)) + if ($zeit->load($zeitaufzeichnung_id)) { - if($zeit->uid==$user) + if ($zeit->uid == $user) { $uid = $zeit->uid; $aktivitaet_kurzbz = $zeit->aktivitaet_kurzbz; @@ -1092,9 +1093,11 @@ if(isset($_GET['type']) && $_GET['type']=='edit') $projekt_kurzbz = $zeit->projekt_kurzbz; $projektphase_id = $zeit->projektphase_id; $homeoffice = $zeit->homeoffice; + $homeoffice[0] == 't' ? $homeofficeChecked = 'checked' : $homeofficeChecked = ''; $service_id = $zeit->service_id; $kunde_uid = $zeit->kunde_uid; + $projektphase = new projektphase(); $projektphasen = array(); @@ -1470,7 +1473,7 @@ if($projekt->getProjekteMitarbeiter($user, true))   - Homeoffice + Homeoffice From aa94110791964d4c0b1950f68aa9c5b1e47133a4 Mon Sep 17 00:00:00 2001 From: manu Date: Wed, 16 Jun 2021 13:34:31 +0200 Subject: [PATCH 08/27] 13623 Anzeige Projekt und Phasen in Editiersicht --- cis/private/tools/zeitaufzeichnung.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 9aa978f8b..277364a33 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -223,7 +223,7 @@ echo ' @@ -1503,6 +1535,8 @@ if ($projekt->getProjekteMitarbeiter($user, true)) $von_ts = $datum->mktime_fromtimestamp($datum->formatDatum($von, $format='Y-m-d H:i:s')); $bis_ts = $datum->mktime_fromtimestamp($datum->formatDatum($bis, $format='Y-m-d H:i:s')); $diff = $bis_ts - $von_ts; + + //outputTest Manu echo ' '.$p->t("global/von").' - '.$p->t("global/bis").' @@ -1548,8 +1582,26 @@ if ($projekt->getProjekteMitarbeiter($user, true)) //Homeoffice Checkbox $verwendung = new bisverwendung(); - $verwendung->getLastAktVerwendung($user); - $bvId = $verwendung->bisverwendung_id; + + //Ok: passt + //$verwendung->getLastAktVerwendung($user); + + //geht nicht...liefert keine bisverwendung_id, Format? + //sql-statement mit '2021-08-20' funktioniert einwandfrei.. + echo $vonForm = $datum->formatDatum($von, $format='Y-m-d'); + //echo $vonForm = '2021-08-20'; + echo $user; + // echo $von_ts; + $verwendung->getVerwendungDatum($user, $vonForm); + + //gleiches Problem: liefert keine bisverwendung_id + // $now = new DateTime('today'); + // var_dump($now); + // echo $now->format('Y-m-d'); + // $verwendung->getVerwendungDatum($user, $now->format('Y-m-d')); + + echo $bvId = $verwendung->bisverwendung_id; + if ($verwendung->homeoffice) { @@ -1566,6 +1618,7 @@ if ($projekt->getProjekteMitarbeiter($user, true)) bisId: ' . $bvId . ' + '; } @@ -1573,8 +1626,12 @@ if ($projekt->getProjekteMitarbeiter($user, true)) { echo "

Homeoffice nicht erlaubt

"; echo "BisId: $bvId "; + // echo "Datum: $vonForm "; } + echo ' + Manu + '; //Beschreibung diff --git a/cis/private/tools/zeitaufzeichnung_bisverwendung.php b/cis/private/tools/zeitaufzeichnung_bisverwendung.php new file mode 100644 index 000000000..93aa814c0 --- /dev/null +++ b/cis/private/tools/zeitaufzeichnung_bisverwendung.php @@ -0,0 +1,72 @@ + + */ +/** + * Checks, if there is the possibility for homeoffice for the given bisverwendung of + * a certain date. + */ + + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/globals.inc.php'); +require_once('../../../include/phrasen.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/Excel/excel.php'); +require_once('../../../include/benutzer.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/mitarbeiter.class.php'); +require_once('../../../include/zeitaufzeichnung.class.php'); +require_once('../../../include/projekt.class.php'); +require_once('../../../include/bisverwendung.class.php'); + + +// if (isset($_GET['day'])) +// { +// $day = $_GET['day']; +// echo " es ist ein schöner Tag: " . $day; +// echo "
bisid: "; +// +// +// } + +// if (isset($_GET['uid'])){ +// $uid = $_GET['uid']; +// $verwendung = new bisverwendung(); +// $verwendung->getLastAktVerwendung($uid); +// echo $bvId = $verwendung->bisverwendung_id; +// } + +if ((isset($_GET['uid'])) && (isset($_GET['day']))) { + + $uid = $_GET['uid']; + //$day = $_GET['day']; + + //$day = '2021-08-15'; + $day = "2021-08-15"; + + + $verwendung = new bisverwendung(); + $verwendung->getLastAktVerwendung($uid); //haut hin + //$verwendung->getVerwendungDatum($uid, $day); //hier kommt nix + //$verwendung ->getVerwendungDatumMonat($uid, $day); + // + echo $bvId = $verwendung->bisverwendung_id; + echo "check " . $uid . " on day " . $day; + +} From 437feb2fddffdd1bd1c6eb6658258f2d52ca857a Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 24 Aug 2021 18:01:15 +0200 Subject: [PATCH 19/27] =?UTF-8?q?dynamische=20Anzeige=20checkbox=20homeoff?= =?UTF-8?q?ice=20auch=20bei=20=C3=84ndern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 113 ++++++++++-------- .../tools/zeitaufzeichnung_bisverwendung.php | 41 +++---- 2 files changed, 74 insertions(+), 80 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index a06b3fcca..141602e01 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -284,18 +284,19 @@ echo ' } ) - $("#von_datum").change( - function() - { - var uid = $("#uidpass").val(); - var Datum = $(this).val(); - Tag=Datum.substring(0,2); - Monat=Datum.substring(3,5); - Jahr=Datum.substring(6,10); - var day = Jahr + "-" + Monat + "-" + Tag; - checkBisverwendung(day,uid); + useCheckedDate(); - } + $("#von_datum").change( + function() + { + var uid = $("#uidpass").val(); + var Datum = $(this).val(); + Tag=Datum.substring(0,2); + Monat=Datum.substring(3,5); + Jahr=Datum.substring(6,10); + var day = Jahr + "-" + Monat + "-" + Tag; + checkBisverwendung(day,uid); + } ) function isVisible() @@ -734,6 +735,16 @@ echo ' $("#pause_bis").val(""); } + function useCheckedDate(){ + var uid = $("#uidpass").val(); + var Datum = $("#von_datum").val(); + Tag=Datum.substring(0,2); + Monat=Datum.substring(3,5); + Jahr=Datum.substring(6,10); + var checkedDay = Jahr + "-" + Monat + "-" + Tag; + checkBisverwendung(checkedDay, uid); + } + function checkBisverwendung(day, uid) { $.ajax({ @@ -742,12 +753,21 @@ echo ' day: day, uid: uid }, - success: function (daten) { - $("#outputTest").html(daten); + success: function (json) + { + if (json.length > 3) + { + $("#outputTest").html(json); + $("#homeofficeBlock").show(); + } + else + { + $("#outputTest").html(json); + $("#homeofficeBlock").hide(); + + } } }); - - } @@ -1536,7 +1556,6 @@ if ($projekt->getProjekteMitarbeiter($user, true)) $bis_ts = $datum->mktime_fromtimestamp($datum->formatDatum($bis, $format='Y-m-d H:i:s')); $diff = $bis_ts - $von_ts; - //outputTest Manu echo ' '.$p->t("global/von").' - '.$p->t("global/bis").' @@ -1580,32 +1599,28 @@ if ($projekt->getProjekteMitarbeiter($user, true)) '; - //Homeoffice Checkbox - $verwendung = new bisverwendung(); + //Homeoffice Checkbox manu + //$homeofficeErlaubt = false; - //Ok: passt - //$verwendung->getLastAktVerwendung($user); - - //geht nicht...liefert keine bisverwendung_id, Format? - //sql-statement mit '2021-08-20' funktioniert einwandfrei.. - echo $vonForm = $datum->formatDatum($von, $format='Y-m-d'); - //echo $vonForm = '2021-08-20'; - echo $user; - // echo $von_ts; - $verwendung->getVerwendungDatum($user, $vonForm); - - //gleiches Problem: liefert keine bisverwendung_id - // $now = new DateTime('today'); - // var_dump($now); - // echo $now->format('Y-m-d'); + // $verwendung = new bisverwendung(); + // + // // $now = document.getElementById("von_datum"); + // // echo $now; + // //$now = new DateTime('today'); + // $now = new DateTime('checkedDay'); // $verwendung->getVerwendungDatum($user, $now->format('Y-m-d')); - - echo $bvId = $verwendung->bisverwendung_id; - - - if ($verwendung->homeoffice) - { - $bvHo = "erlaubt"; + // $verwendungArr = array(); + // + // foreach ($verwendung->result as $v) + // if ($v->homeoffice) + // if (!in_array($v->bisverwendung_id, $verwendungArr)) + // { + // $homeofficeErlaubt = true; + // $verwendungArr[] = $v->bisverwendung_id; + // } + // + // if ($homeofficeErlaubt) + // { echo '   @@ -1614,24 +1629,16 @@ if ($projekt->getProjekteMitarbeiter($user, true)) Homeoffice
- Homeoffice: ' . $bvHo . ' - bisId: ' . $bvId . ' - '; - } +// } - else - { - echo "

Homeoffice nicht erlaubt

"; - echo "BisId: $bvId "; - // echo "Datum: $vonForm "; - } - echo ' - Manu - '; + // echo ' + // Testausgaben + // bisId: ' . $verwendungArr[0] . ' + // '; //Beschreibung diff --git a/cis/private/tools/zeitaufzeichnung_bisverwendung.php b/cis/private/tools/zeitaufzeichnung_bisverwendung.php index 93aa814c0..210d63005 100644 --- a/cis/private/tools/zeitaufzeichnung_bisverwendung.php +++ b/cis/private/tools/zeitaufzeichnung_bisverwendung.php @@ -36,37 +36,24 @@ require_once('../../../include/projekt.class.php'); require_once('../../../include/bisverwendung.class.php'); -// if (isset($_GET['day'])) -// { -// $day = $_GET['day']; -// echo " es ist ein schöner Tag: " . $day; -// echo "
bisid: "; -// -// -// } - -// if (isset($_GET['uid'])){ -// $uid = $_GET['uid']; -// $verwendung = new bisverwendung(); -// $verwendung->getLastAktVerwendung($uid); -// echo $bvId = $verwendung->bisverwendung_id; -// } - if ((isset($_GET['uid'])) && (isset($_GET['day']))) { $uid = $_GET['uid']; - //$day = $_GET['day']; - - //$day = '2021-08-15'; - $day = "2021-08-15"; - + $day = $_GET['day']; $verwendung = new bisverwendung(); - $verwendung->getLastAktVerwendung($uid); //haut hin - //$verwendung->getVerwendungDatum($uid, $day); //hier kommt nix - //$verwendung ->getVerwendungDatumMonat($uid, $day); - // - echo $bvId = $verwendung->bisverwendung_id; - echo "check " . $uid . " on day " . $day; + + $verwendung->getVerwendungDatum($uid, $day); + $verwendungArr = array(); + + foreach ($verwendung->result as $v) + if ($v->homeoffice) + if (!in_array($v->bisverwendung_id, $verwendungArr)) + { + $bvId = $v->bisverwendung_id; + $verwendungArr[] = $v->bisverwendung_id; + } + +echo json_encode($verwendungArr); } From a36909763f18cf362e582bf63c8412b587bdb57f Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 30 Aug 2021 14:28:30 +0200 Subject: [PATCH 20/27] Delete comments --- cis/private/tools/zeitaufzeichnung.php | 33 +------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 141602e01..a5084e082 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -757,12 +757,10 @@ echo ' { if (json.length > 3) { - $("#outputTest").html(json); $("#homeofficeBlock").show(); } else { - $("#outputTest").html(json); $("#homeofficeBlock").hide(); } @@ -1599,28 +1597,7 @@ if ($projekt->getProjekteMitarbeiter($user, true)) '; - //Homeoffice Checkbox manu - //$homeofficeErlaubt = false; - - // $verwendung = new bisverwendung(); - // - // // $now = document.getElementById("von_datum"); - // // echo $now; - // //$now = new DateTime('today'); - // $now = new DateTime('checkedDay'); - // $verwendung->getVerwendungDatum($user, $now->format('Y-m-d')); - // $verwendungArr = array(); - // - // foreach ($verwendung->result as $v) - // if ($v->homeoffice) - // if (!in_array($v->bisverwendung_id, $verwendungArr)) - // { - // $homeofficeErlaubt = true; - // $verwendungArr[] = $v->bisverwendung_id; - // } - // - // if ($homeofficeErlaubt) - // { + //Homeoffice Checkbox echo '   @@ -1632,14 +1609,6 @@ if ($projekt->getProjekteMitarbeiter($user, true)) '; -// } - - - // echo ' - // Testausgaben - // bisId: ' . $verwendungArr[0] . ' - // '; - //Beschreibung echo ''.$p->t("global/beschreibung").''; From 62cfa27473582d615bdeb7d17eb79220bc4ca6e9 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 2 Sep 2021 09:55:14 +0200 Subject: [PATCH 21/27] 14774 Zeiterfassung: Homeoffice im CSV Import --- cis/private/tools/zeitaufzeichnung.php | 30 ++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index a5084e082..cf3435059 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -90,7 +90,7 @@ $fieldheadings = array( 'oe1' => $p->t("zeitaufzeichnung/oe"), 'oe2' => $p->t("zeitaufzeichnung/oe").'2', 'aktivitaet' => $p->t("zeitaufzeichnung/aktivitaet"), 'service' => $p->t("zeitaufzeichnung/service"), 'start' => $p->t("zeitaufzeichnung/start"), 'ende' => $p->t("zeitaufzeichnung/ende"), 'dauer' => $p->t("zeitaufzeichnung/dauer"), 'kunde' => $p->t("zeitaufzeichnung/kunde"), 'beschreibung' => $p->t("global/beschreibung"), 'aktion' => $p->t("global/aktion"), - 'datum' => $p->t("global/datum") + 'datum' => $p->t("global/datum"),'homeoffice' => $p->t("zeitaufzeichnung/homeoffice") ); if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung')) @@ -927,7 +927,25 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) { if (strtolower($data[9] == 'true')) { - $zeit->homeoffice = true; + // check, ob homeoffice gemäß Bisverwendung + $verwendung = new bisverwendung(); + $verwendung->getVerwendungDatum($data[0],$vonCSV); + + foreach ($verwendung->result as $v) + // echo "homeoffice für Tag " . $vonCSV . " ". $v->homeoffice . " " . $v->bisverwendung_id . "
"; + + if ($v->homeoffice) + { + + // echo "homeoffice erlaubt
"; + $zeit->homeoffice = true; + } + else + { + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$p->t("zeitaufzeichnung/homeofficeNichtErlaubt", ($vonCSV)) .'
'; + + $zeit->homeoffice = false; + } } else { @@ -2091,8 +2109,8 @@ function getDataForCSV($rawdata, $fieldheadings, $za_simple = false) $datum = new datum(); $csvData = array(); //headers schreiben - $csvData[] = ($za_simple) ? array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['ap'], $fieldheadings['oe1'], $fieldheadings['aktivitaet'], $fieldheadings['beschreibung']) - : array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['ap'], $fieldheadings['oe1'], $fieldheadings['oe2'], $fieldheadings['aktivitaet'], $fieldheadings['service'], $fieldheadings['kunde'], $fieldheadings['beschreibung']); + $csvData[] = ($za_simple) ? array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['ap'], $fieldheadings['oe1'], $fieldheadings['aktivitaet'], $fieldheadings['beschreibung'], $fieldheadings['homeoffice']) + : array($fieldheadings['user'], $fieldheadings['datum'], $fieldheadings['start'], $fieldheadings['ende'], $fieldheadings['projekt'], $fieldheadings['ap'], $fieldheadings['oe1'], $fieldheadings['oe2'], $fieldheadings['aktivitaet'], $fieldheadings['service'], $fieldheadings['kunde'], $fieldheadings['beschreibung'], $fieldheadings['homeoffice']); foreach ($rawdata as $zeitauf) { //Newline characters bei Beschreibung ersetzen @@ -2105,13 +2123,13 @@ function getDataForCSV($rawdata, $fieldheadings, $za_simple = false) if($za_simple) { $csvData[] = array($zeitauf->uid, $hauptdatum, $datum->formatDatum($zeitauf->start, 'H:i'), - $bisdatum, $zeitauf->projekt_kurzbz, $zeitauf->projektphase_id, $zeitauf->oe_kurzbz_1, $zeitauf->aktivitaet_kurzbz, $beschreibung); + $bisdatum, $zeitauf->projekt_kurzbz, $zeitauf->projektphase_id, $zeitauf->oe_kurzbz_1, $zeitauf->aktivitaet_kurzbz, $beschreibung, $zeitauf->homeoffice); } else { $servicebez = ($service->load($zeitauf->service_id))?$service->bezeichnung:""; $csvData[] = array($zeitauf->uid, $hauptdatum, $datum->formatDatum($zeitauf->start, 'H:i'), $bisdatum, - $zeitauf->projekt_kurzbz, $zeitauf->projektphase_id, $zeitauf->oe_kurzbz_1, $zeitauf->oe_kurzbz_2, $zeitauf->aktivitaet_kurzbz, $servicebez, $zeitauf->kunde_uid, $beschreibung); + $zeitauf->projekt_kurzbz, $zeitauf->projektphase_id, $zeitauf->oe_kurzbz_1, $zeitauf->oe_kurzbz_2, $zeitauf->aktivitaet_kurzbz, $servicebez, $zeitauf->kunde_uid, $beschreibung, $zeitauf->homeoffice); } } return $csvData; From f0c5c3acb46195de0b39bdb9b79f73a9a08fc456 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 2 Sep 2021 11:24:38 +0200 Subject: [PATCH 22/27] 14774 Zeiterfassung: Homeoffice im CSV Import --- include/bisverwendung.class.php | 109 +++++++++++++++++++++++++++--- locale/de-AT/zeitaufzeichnung.php | 2 + locale/en-US/zeitaufzeichnung.php | 2 + 3 files changed, 103 insertions(+), 10 deletions(-) diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php index 861684c98..ca15d03de 100644 --- a/include/bisverwendung.class.php +++ b/include/bisverwendung.class.php @@ -47,6 +47,7 @@ class bisverwendung extends basis_db public $dv_art; public $inkludierte_lehre; public $zeitaufzeichnungspflichtig; + public $azgrelevant; public $homeoffice; public $ba1bez; @@ -123,6 +124,7 @@ class bisverwendung extends basis_db $this->dv_art = $row->dv_art; $this->inkludierte_lehre = $row->inkludierte_lehre; $this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $this->azgrelevant = $this->db_parse_bool($row->azgrelevant); $this->homeoffice = $this->db_parse_bool($row->homeoffice); return true; } @@ -179,6 +181,24 @@ class bisverwendung extends basis_db } } + + /** + * Prueft das Datum + * @param $date = string + * @return true wenn ok, sonst false + */ + static public function verifyDate($date, $strict = true) + { + $dateTime = DateTime::createFromFormat('Y-m-d', $date); + if ($strict) { + $errors = DateTime::getLastErrors(); + if (!empty($errors['warning_count'])) { + return false; + } + } + return $dateTime !== false; + } + /** * Prueft die Daten vor dem Speichern * @@ -191,6 +211,17 @@ class bisverwendung extends basis_db $this->errormsg = 'Vertragsstunden sind ungueltig'; return false; } + elseif(!$this->verifyDate($this->beginn) && !empty($this->beginn)) + { + $this->errormsg = 'Start Datum ist kein Valides Datum: '.$this->beginn; + return false; + } + elseif(!$this->verifyDate($this->ende) && !empty($this->ende)) + { + $this->errormsg = 'End Datum ist kein Valides Datum: '.$this->ende; + return false; + } + return true; } @@ -220,13 +251,29 @@ class bisverwendung extends basis_db { $zeitaufzeichnungspflichtig = 'null'; } + if(is_bool($this->azgrelevant)) + { + $azgrelevant = $this->db_add_param($this->azgrelevant, FHC_BOOLEAN); + } + else + { + $azgrelevant = 'null'; + } + if(is_bool($this->homeoffice)) + { + $homeoffice = $this->db_add_param($this->homeoffice, FHC_BOOLEAN); + } + else + { + $homeoffice = 'null'; + } if($new) { //Neuen Datensatz anlegen $qry = "BEGIN;INSERT INTO bis.tbl_bisverwendung (ba1code, ba2code, beschausmasscode, verwendung_code, mitarbeiter_uid, hauptberufcode, hauptberuflich, habilitation, beginn, ende, vertragsstunden, - updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig) VALUES (". + updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig, azgrelevant) VALUES (". $this->db_add_param($this->ba1code, FHC_INTEGER).', '. $this->db_add_param($this->ba2code, FHC_INTEGER).', '. $this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '. @@ -244,7 +291,9 @@ class bisverwendung extends basis_db $this->db_add_param($this->insertvon).', '. $this->db_add_param($this->dv_art).','. $this->db_add_param($this->inkludierte_lehre).','. - $zeitaufzeichnungspflichtig. ');'; + $zeitaufzeichnungspflichtig.','. + $azgrelevant.','. + $homeoffice. ');'; } else @@ -268,7 +317,9 @@ class bisverwendung extends basis_db " insertvon=".$this->db_add_param($this->insertvon).",". " dv_art=".$this->db_add_param($this->dv_art).",". " inkludierte_lehre=".$this->db_add_param($this->inkludierte_lehre).",". - " zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig. + " zeitaufzeichnungspflichtig=". $zeitaufzeichnungspflichtig.",". + " azgrelevant =". $azgrelevant.",". + " homeoffice =". $homeoffice. " WHERE bisverwendung_id=".$this->db_add_param($this->bisverwendung_id, FHC_INTEGER); } @@ -361,8 +412,8 @@ class bisverwendung extends basis_db $obj->dv_art = $row->dv_art; $obj->inkludierte_lehre = $row->inkludierte_lehre; $obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $obj->azgrelevant = $this->db_parse_bool($row->azgrelevant); $obj->homeoffice = $this->db_parse_bool($row->homeoffice); - $this->result[] = $obj; } return true; @@ -419,6 +470,7 @@ class bisverwendung extends basis_db $obj->dv_art = $row->dv_art; $obj->inkludierte_lehre = $row->inkludierte_lehre; $obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $obj->azgrelevant = $this->db_parse_bool($row->azgrelevant); $obj->homeoffice = $this->db_parse_bool($row->homeoffice); $this->result[] = $obj; @@ -478,9 +530,9 @@ class bisverwendung extends basis_db $obj->dv_art = $row->dv_art; $obj->inkludierte_lehre = $row->inkludierte_lehre; $obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $obj->azgrelevant = $this->db_parse_bool($row->azgrelevant); $obj->homeoffice = $this->db_parse_bool($row->homeoffice); - $this->result[] = $obj; } return true; @@ -499,14 +551,15 @@ class bisverwendung extends basis_db */ public function getLastVerwendung($uid) { - //laden des Datensatzes18.08.2021 + //laden des Datensatzes $qry = "SELECT - * + *, tbl_hauptberuf.bezeichnung as hauptberuf FROM bis.tbl_bisverwendung + LEFT JOIN bis.tbl_hauptberuf USING(hauptberufcode) WHERE mitarbeiter_uid=".$this->db_add_param($uid)." - ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;"; + ORDER BY ende DESC NULLS FIRST,beginn DESC NULLS LAST LIMIT 1;"; if($this->db_query($qry)) { @@ -520,6 +573,7 @@ class bisverwendung extends basis_db $this->mitarbeiter_uid = $row->mitarbeiter_uid; $this->hauptberufcode = $row->hauptberufcode; $this->hauptberuflich = $this->db_parse_bool($row->hauptberuflich); + $this->hauptberuf = $row->hauptberuf; $this->habilitation = $this->db_parse_bool($row->habilitation); $this->beginn = $row->beginn; $this->ende = $row->ende; @@ -531,6 +585,8 @@ class bisverwendung extends basis_db $this->dv_art = $row->dv_art; $this->inkludierte_lehre = $row->inkludierte_lehre; $this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $this->azgrelevant = $this->db_parse_bool($row->azgrelevant); + $this->homeoffice = $this->db_parse_bool($row->homeoffice); } return true; } @@ -559,7 +615,7 @@ class bisverwendung extends basis_db (beginn<=now() OR beginn IS NULL) AND (ende>=now() OR ende IS NULL) - ORDER BY ende DESC NULLS LAST,beginn DESC NULLS LAST LIMIT 1;"; + ORDER BY ende DESC NULLS FIRST,beginn DESC NULLS LAST LIMIT 1;"; if($this->db_query($qry)) { @@ -583,8 +639,9 @@ class bisverwendung extends basis_db $this->vertragsstunden = $row->vertragsstunden; $this->dv_art = $row->dv_art; $this->inkludierte_lehre = $row->inkludierte_lehre; - $this->homeoffice = $this->db_parse_bool($row->homeoffice); $this->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $this->azgrelevant = $this->db_parse_bool($row->azgrelevant); + $this->homeoffice = $this->db_parse_bool($row->homeoffice); } return true; } @@ -647,6 +704,8 @@ class bisverwendung extends basis_db $obj->dv_art = $row->dv_art; $obj->inkludierte_lehre = $row->inkludierte_lehre; $obj->zeitaufzeichnungspflichtig = $this->db_parse_bool($row->zeitaufzeichnungspflichtig); + $obj->azgrelevant = $this->db_parse_bool($row->azgrelevant); + $obj->homeoffice = $this->db_parse_bool($row->homeoffice); $this->result[] = $obj; } @@ -775,5 +834,35 @@ class bisverwendung extends basis_db return false; } } + + public function inZeitaufzeichnungspflichtigPeriod($PeriodStartDate, $PeriodEndDate) + { + $PeriodStartDateISO = date('Y-m-d', strtotime($PeriodStartDate)); + $PeriodEndDateISO = date('Y-m-d', strtotime($PeriodEndDate)); + + $beginn = date('Y-m-d', strtotime($this->beginn)); + $end = date('Y-m-d', strtotime($this->ende)); + $zp = $this->zeitaufzeichnungspflichtig; + + if ($zp) + { + if ( + (($PeriodStartDateISO >= $beginn) && (($PeriodStartDateISO <= $end) || is_null($this->ende))) + || + (($PeriodEndDateISO >= $beginn) && (($PeriodEndDateISO <= $end) || is_null($this->ende))) + ) + { + return true; + } + else + { + return false; + } + } + else + { + return false; + } + } } ?> diff --git a/locale/de-AT/zeitaufzeichnung.php b/locale/de-AT/zeitaufzeichnung.php index e0b7047da..ad9a4de0c 100644 --- a/locale/de-AT/zeitaufzeichnung.php +++ b/locale/de-AT/zeitaufzeichnung.php @@ -7,6 +7,7 @@ $this->phrasen['zeitaufzeichnung/projekt']='Projekt'; $this->phrasen['zeitaufzeichnung/projektphase']='Projektphase'; $this->phrasen['zeitaufzeichnung/keineAuswahl']='keine Auswahl'; $this->phrasen['zeitaufzeichnung/aktivitaet']='Aktivität'; +$this->phrasen['zeitaufzeichnung/homeoffice']='Homeoffice'; $this->phrasen['zeitaufzeichnung/id']='ID'; $this->phrasen['zeitaufzeichnung/user']='User'; $this->phrasen['zeitaufzeichnung/start']='Start'; @@ -63,3 +64,4 @@ $this->phrasen['zeitaufzeichnung/projektphase']='AP'; $this->phrasen['zeitaufzeichnung/pauseEinfuegen']='Pause automatisch einfügen'; $this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Zeitraum zu kurz für automatische Pause'; $this->phrasen['zeitaufzeichnung/supportAnfragen']='


Supportanfragen unter
zeiterfassung@technikum-wien.at

'; +$this->phrasen['zeitaufzeichnung/homeofficeNichtErlaubt']='Homeoffice für den Tag %s nicht erlaubt'; diff --git a/locale/en-US/zeitaufzeichnung.php b/locale/en-US/zeitaufzeichnung.php index a67a35e4b..9e0b84ec1 100644 --- a/locale/en-US/zeitaufzeichnung.php +++ b/locale/en-US/zeitaufzeichnung.php @@ -7,6 +7,7 @@ $this->phrasen['zeitaufzeichnung/projekt']='Project'; $this->phrasen['zeitaufzeichnung/projektphase']='Projectphase'; $this->phrasen['zeitaufzeichnung/keineAuswahl']='no selection'; $this->phrasen['zeitaufzeichnung/aktivitaet']='Activity'; +$this->phrasen['zeitaufzeichnung/homeoffice']='Homeoffice'; $this->phrasen['zeitaufzeichnung/id']='ID'; $this->phrasen['zeitaufzeichnung/user']='User'; $this->phrasen['zeitaufzeichnung/start']='Start'; @@ -63,3 +64,4 @@ $this->phrasen['zeitaufzeichnung/projektphase']='WP'; $this->phrasen['zeitaufzeichnung/pauseEinfuegen']='insert break automatically'; $this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Timeslot too short for automatic break.'; $this->phrasen['zeitaufzeichnung/supportAnfragen']='


Contact for support
zeiterfassung@technikum-wien.at

'; +$this->phrasen['zeitaufzeichnung/homeofficeNichtErlaubt']='Homeoffice for day %s not allowed'; From d3158b8ce09cca85b940b11aabebf94bf679e5d0 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 2 Sep 2021 11:31:58 +0200 Subject: [PATCH 23/27] merge dbupdate_3.3.php --- system/dbupdate_3.3.php | 155 +++++++++++++++++++++++++++++++++------- 1 file changed, 130 insertions(+), 25 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 0e0d4c9cb..02c6850be 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -212,21 +212,21 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.vw_msg_vars_user LIMIT 1")) JOIN public.tbl_mitarbeiter ma ON ma.mitarbeiter_uid = b.uid WHERE ma.personalnummer > 0 );'; - + if(!$db->db_query($qry)) echo 'public.vw_msg_vars_user: '.$db->db_last_error().'
'; else echo '
public.vw_msg_vars_user view created'; - + $qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_user TO web;'; - + if(!$db->db_query($qry)) echo 'public.vw_msg_vars_user: '.$db->db_last_error().'
'; else echo '
Granted privileges to web on public.vw_msg_vars_user'; - + $qry = 'GRANT SELECT ON TABLE public.vw_msg_vars_user TO vilesci;'; - + if(!$db->db_query($qry)) echo 'public.vw_msg_vars_user: '.$db->db_last_error().'
'; else @@ -4465,6 +4465,88 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE } } +// ADD COLUMN azgrelevant in bis.tbl_bisverwendung +if(!$result = @$db->db_query("SELECT azgrelevant FROM bis.tbl_bisverwendung LIMIT 1")) +{ + $qry = " + ALTER TABLE bis.tbl_bisverwendung ADD COLUMN azgrelevant boolean; + UPDATE bis.tbl_bisverwendung SET azgrelevant = zeitaufzeichnungspflichtig; + UPDATE bis.tbl_bisverwendung SET zeitaufzeichnungspflichtig = true WHERE ba1code=103 AND beschausmasscode!=5; + "; + + if(!$db->db_query($qry)) + echo 'bis.tbl_bisverwendung: '.$db->db_last_error().'
'; + else + echo '
bis.tbl_bisverwendung Spalte azgrelevant hinzugefügt.'; +} + +// Add new funktion type kstzuordnung for cost center assignment in public.tbl_funktion +if ($result = @$db->db_query("SELECT 1 FROM public.tbl_funktion WHERE funktion_kurzbz = 'kstzuordnung';")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO public.tbl_funktion(funktion_kurzbz, beschreibung, aktiv, fachbereich, semester) VALUES('kstzuordnung','Standardkostenstelle Zuordnung',true,false,false);"; + + if (!$db->db_query($qry)) + echo 'public.tbl_funktion '.$db->db_last_error().'
'; + else + echo '
public.tbl_funktion: Added funktion kstzuordnung
'; + } +} + +// Add column zugangstoken to tbl_projektbetreuer +if(!$result = @$db->db_query("SELECT zugangstoken FROM lehre.tbl_projektbetreuer LIMIT 1")) +{ + $qry = "ALTER TABLE lehre.tbl_projektbetreuer ADD COLUMN zugangstoken VARCHAR(32); + COMMENT ON COLUMN lehre.tbl_projektbetreuer.zugangstoken IS 'Zugangstoken zur Projektarbeitsbewertung fuer externe Betreuer'; + ALTER TABLE lehre.tbl_projektbetreuer ADD CONSTRAINT uk_tbl_projektbetreuer_zugangstoken UNIQUE (zugangstoken);"; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_projektbetreuer: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_projektbetreuer: Spalte zugangstoken hinzugefuegt'; +} + +// Add column zugangstoken_gueltigbis to tbl_projektbetreuer +if(!$result = @$db->db_query("SELECT zugangstoken_gueltigbis FROM lehre.tbl_projektbetreuer LIMIT 1")) +{ + $qry = "ALTER table lehre.tbl_projektbetreuer ADD COLUMN zugangstoken_gueltigbis date; + COMMENT ON COLUMN lehre.tbl_projektbetreuer.zugangstoken_gueltigbis IS 'Gueligkeitsdatum fuer Zugangstoken zur Projektarbeitsbewertung fuer externe Betreuer';"; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_projektbetreuer: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_projektbetreuer: Spalte zugangstoken_gueltigbis hinzugefuegt'; +} + +// App 'projektarbeitsbeurteilung' hinzufügen +if($result = $db->db_query("SELECT 1 FROM system.tbl_app WHERE app='projektarbeitsbeurteilung'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "INSERT INTO system.tbl_app(app) VALUES('projektarbeitsbeurteilung');"; + + if(!$db->db_query($qry)) + echo 'App: '.$db->db_last_error().'
'; + else + echo '
Neue App projektarbeitsbeurteilung in system.tbl_app hinzugefügt'; + } +} + +// UPDATE Berechtigung für lehre.tbl_projektbetreuer für web user hinzufügen +if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_projektbetreuer' AND table_schema='lehre' AND grantee='web' AND privilege_type='UPDATE'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "GRANT UPDATE ON lehre.tbl_projektbetreuer TO web;"; + + if(!$db->db_query($qry)) + echo 'Projektbetreuer Berechtigungen: '.$db->db_last_error().'
'; + else + echo '
Web User: update fuer lehre.tbl_projektbetreuer berechtigt'; + } +} + // Add column dms_id, studiensemester_kurzbz, anmerkung_student und empfehlung_anrechnung // Change genehmigt_von and begruendung_id to be NULLABLE if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung")) @@ -4482,8 +4564,8 @@ if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung")) ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN begruendung_id DROP NOT NULL; ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN insertamum SET DEFAULT NOW(); "; - - + + if(!$db->db_query($qry)) echo 'lehre.tbl_anrechnung: '.$db->db_last_error().'
'; else @@ -4558,11 +4640,11 @@ if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnungstatus LIMIT 1;" INSERT INTO lehre.tbl_anrechnungstatus(status_kurzbz, bezeichnung_mehrsprachig) VALUES('inProgressLektor', '{\"Empfehlung angefordert\",\"recommendation requested\"}'); INSERT INTO lehre.tbl_anrechnungstatus(status_kurzbz, bezeichnung_mehrsprachig) VALUES('approved', '{\"genehmigt\",\"approved\"}'); INSERT INTO lehre.tbl_anrechnungstatus(status_kurzbz, bezeichnung_mehrsprachig) VALUES('rejected', '{\"abgelehnt\",\"rejected\"}'); - + GRANT SELECT ON lehre.tbl_anrechnungstatus TO web; GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnungstatus TO vilesci; "; - + if(!$db->db_query($qry)) echo 'lehre.tbl_anrechnungstatus: '.$db->db_last_error().'
'; else @@ -4590,12 +4672,12 @@ if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'seq_anrechn NO MINVALUE CACHE 1; '; - + if(!$db->db_query($qry)) echo 'lehre.seq_anrechnungstatus_status_kurzbz '.$db->db_last_error().'
'; else echo '
Created sequence: lehre.seq_anrechnungstatus_status_kurzbz'; - + // GRANT SELECT, UPDATE ON SEQUENCE lehre.tbl_anrechnungstatus_status_kurzbz_seq to web; $qry = 'GRANT SELECT, UPDATE ON SEQUENCE lehre.seq_anrechnungstatus_status_kurzbz TO web;'; if (!$db->db_query($qry)) @@ -4623,7 +4705,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung_anrechnungstatu ALTER TABLE lehre.tbl_anrechnung_anrechnungstatus ADD CONSTRAINT pk_anrechnung_anrechnungstatus PRIMARY KEY (anrechnungstatus_id); ALTER TABLE lehre.tbl_anrechnung_anrechnungstatus ADD CONSTRAINT fk_anrechnung_anrechnungstatus_anrechnung FOREIGN KEY (anrechnung_id) REFERENCES lehre.tbl_anrechnung(anrechnung_id) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE lehre.tbl_anrechnung_anrechnungstatus ADD CONSTRAINT fk_anrechnung_anrechnungstatus_anrechnungstatus FOREIGN KEY (status_kurzbz) REFERENCES lehre.tbl_anrechnungstatus (status_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - + CREATE SEQUENCE lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id START WITH 1 INCREMENT BY 1 @@ -4631,14 +4713,14 @@ if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung_anrechnungstatu NO MINVALUE CACHE 1; ALTER TABLE lehre.tbl_anrechnung_anrechnungstatus ALTER COLUMN anrechnungstatus_id SET DEFAULT nextval('lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id'); - + INSERT INTO lehre.tbl_anrechnung_anrechnungstatus(anrechnung_id, status_kurzbz) SELECT anrechnung_id, 'approved' as status_kurzbz FROM lehre.tbl_anrechnung WHERE genehmigt_von is not null; - + GRANT SELECT ON lehre.tbl_anrechnung_anrechnungstatus TO web; GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnung_anrechnungstatus TO vilesci; GRANT SELECT, UPDATE ON lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id TO vilesci; "; - + if(!$db->db_query($qry)) echo 'lehre.tbl_anrechnung_anrechnungstatus: '.$db->db_last_error().'
'; else @@ -4664,7 +4746,7 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht if($db->db_num_rows($result) == 0) { $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('student/anrechnung_beantragen', 'Anrechnung beantragen');"; - + if(!$db->db_query($qry)) echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; else @@ -4678,7 +4760,7 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht if($db->db_num_rows($result) == 0) { $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnung_genehmigen', 'Anrechnung genehmigen');"; - + if(!$db->db_query($qry)) echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; else @@ -4692,7 +4774,7 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht if($db->db_num_rows($result) == 0) { $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnung_empfehlen', 'Anrechnung empfehlen');"; - + if(!$db->db_query($qry)) echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; else @@ -4700,7 +4782,32 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht } } -// ADD COLUMN homeoffice in campus.tbl_zeitaufzeichnung +// Add index to system.tbl_log +if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_pruefung_student_uid'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "CREATE INDEX idx_tbl_pruefung_student_uid ON lehre.tbl_pruefung USING btree (student_uid)"; + + if (! $db->db_query($qry)) + echo 'Indizes: ' . $db->db_last_error() . '
'; + else + echo 'Index fuer lehre.pruefung.student_uid hinzugefuegt
'; + } +} + +// Add column homeoffice to bis.tbl_bisverwendung +if (!$result = @$db->db_query("SELECT homeoffice FROM bis.tbl_bisverwendung LIMIT 1")) +{ + $qry = "ALTER TABLE bis.tbl_bisverwendung ADD COLUMN homeoffice boolean NOT NULL DEFAULT FALSE"; + + if(!$db->db_query($qry)) + echo 'bis.tbl_bisverwendung: '.$db->db_last_error().'
'; + else + echo '
bis.tbl_bisverwendung: Spalte homeoffice hinzugefuegt'; +} + +// ADD COLUMN homeoffice to campus.tbl_zeitaufzeichnung if(!$result = @$db->db_query("SELECT homeoffice FROM campus.tbl_zeitaufzeichnung 1")) { $qry = " @@ -4730,7 +4837,7 @@ $tabellen=array( "bis.tbl_bisfunktion" => array("bisverwendung_id","studiengang_kz","sws","updateamum","updatevon","insertamum","insertvon","ext_id"), "bis.tbl_bisio" => array("bisio_id","mobilitaetsprogramm_code","nation_code","von","bis","zweck_code","student_uid","updateamum","updatevon","insertamum","insertvon","ext_id","ort","universitaet","lehreinheit_id","ects_erworben","ects_angerechnet"), "bis.tbl_bisio_zweck" => array("bisio_id","zweck_code"), - "bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art","inkludierte_lehre","zeitaufzeichnungspflichtig"), + "bis.tbl_bisverwendung" => array("bisverwendung_id","ba1code","ba2code","vertragsstunden","beschausmasscode","verwendung_code","mitarbeiter_uid","hauptberufcode","hauptberuflich","habilitation","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id","dv_art","inkludierte_lehre","zeitaufzeichnungspflichtig","azgrelevant", "homeoffice"), "bis.tbl_bundesland" => array("bundesland_code","kurzbz","bezeichnung"), "bis.tbl_entwicklungsteam" => array("mitarbeiter_uid","studiengang_kz","besqualcode","beginn","ende","updateamum","updatevon","insertamum","insertvon","ext_id"), "bis.tbl_gemeinde" => array("gemeinde_id","plz","name","ortschaftskennziffer","ortschaftsname","bulacode","bulabez","kennziffer"), @@ -4799,7 +4906,7 @@ $tabellen=array( "campus.tbl_uebung" => array("uebung_id","gewicht","punkte","angabedatei","freigabevon","freigabebis","abgabe","beispiele","statistik","bezeichnung","positiv","defaultbemerkung","lehreinheit_id","maxstd","maxbsp","liste_id","prozent","nummer","updateamum","updatevon","insertamum","insertvon"), "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","projektphase_id"), + "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","projektphase_id","homeoffice"), "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"), @@ -4819,10 +4926,8 @@ $tabellen=array( "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"), "lehre.tbl_akadgrad" => array("akadgrad_id","akadgrad_kurzbz","studiengang_kz","titel","geschlecht"), - "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id", "dms_id", "studiensemester_kurzbz", "anmerkung_student", "empfehlung_anrechnung"), - "lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id","status_kurzbz","datum", "insertamum","insertvon"), + "lehre.tbl_anrechnung" => array("anrechnung_id","prestudent_id","lehrveranstaltung_id","begruendung_id","lehrveranstaltung_id_kompatibel","genehmigt_von","insertamum","insertvon","updateamum","updatevon","ext_id"), "lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"), - "lehre.tbl_anrechnungstatus" => array("status_kurzbz","bezeichnung_mehrsprachig"), "lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"), "lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"), "lehre.tbl_lehreinheit" => array("lehreinheit_id","lehrveranstaltung_id","studiensemester_kurzbz","lehrfach_id","lehrform_kurzbz","stundenblockung","wochenrythmus","start_kw","raumtyp","raumtypalternativ","sprache","lehre","anmerkung","unr","lvnr","updateamum","updatevon","insertamum","insertvon","ext_id","lehrfach_id_old","gewicht"), @@ -4843,7 +4948,7 @@ $tabellen=array( "lehre.tbl_notenschluesselzuordnung" => array("notenschluesselzuordnung_id","notenschluessel_kurzbz","lehrveranstaltung_id","studienplan_id","oe_kurzbz","studiensemester_kurzbz"), "lehre.tbl_note" => array("note","bezeichnung","anmerkung","farbe","positiv","notenwert","aktiv","lehre","offiziell","bezeichnung_mehrsprachig","lkt_ueberschreibbar"), "lehre.tbl_projektarbeit" => array("projektarbeit_id","projekttyp_kurzbz","titel","lehreinheit_id","student_uid","firma_id","note","punkte","beginn","ende","faktor","freigegeben","gesperrtbis","stundensatz","gesamtstunden","themenbereich","anmerkung","updateamum","updatevon","insertamum","insertvon","ext_id","titel_english","seitenanzahl","abgabedatum","kontrollschlagwoerter","schlagwoerter","schlagwoerter_en","abstract", "abstract_en", "sprache","final"), - "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id"), + "lehre.tbl_projektbetreuer" => array("person_id","projektarbeit_id","betreuerart_kurzbz","note","faktor","name","punkte","stunden","stundensatz","updateamum","updatevon","insertamum","insertvon","ext_id","vertrag_id", "zugangstoken", "zugangstoken_gueltigbis"), "lehre.tbl_projekttyp" => array("projekttyp_kurzbz","bezeichnung","aktiv"), "lehre.tbl_pruefung" => array("pruefung_id","lehreinheit_id","student_uid","mitarbeiter_uid","note","pruefungstyp_kurzbz","datum","anmerkung","insertamum","insertvon","updateamum","updatevon","ext_id","pruefungsanmeldung_id","vertrag_id", "punkte"), "lehre.tbl_pruefungstyp" => array("pruefungstyp_kurzbz","beschreibung","abschluss","sort"), From 30c2705b99fac4eeeb04a9567b943fa235b2506f Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 2 Sep 2021 11:43:43 +0200 Subject: [PATCH 24/27] fix syntax error system/dbupdate_3.3.php --- system/dbupdate_3.3.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 02c6850be..b781e22fc 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4808,7 +4808,7 @@ if (!$result = @$db->db_query("SELECT homeoffice FROM bis.tbl_bisverwendung LIMI } // ADD COLUMN homeoffice to campus.tbl_zeitaufzeichnung -if(!$result = @$db->db_query("SELECT homeoffice FROM campus.tbl_zeitaufzeichnung 1")) +if(!$result = @$db->db_query("SELECT homeoffice FROM campus.tbl_zeitaufzeichnung LIMIT 1")) { $qry = " ALTER TABLE campus.tbl_zeitaufzeichnung ADD COLUMN homeoffice boolean NOT NULL DEFAULT false ; From bdc61410def72dcc403bc6e87ad0873ac832bbc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 15 Sep 2021 18:06:44 +0200 Subject: [PATCH 25/27] =?UTF-8?q?Fehlermeldung=20beim=20Import=20von=20Hom?= =?UTF-8?q?eoffice=20auf=20Orange=20ge=C3=A4ndert=20da=20die=20Daten=20ges?= =?UTF-8?q?peichert=20werden=20nur=20ohne=20Homeoffice=20Flag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index fcb03ecab..2a1e66048 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -942,7 +942,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) } else { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$p->t("zeitaufzeichnung/homeofficeNichtErlaubt", ($vonCSV)) .'
'; + echo ''.$p->t("zeitaufzeichnung/homeofficeNichtErlaubt", ($vonCSV)) .'
'; $zeit->homeoffice = false; } From f5f3c38c5f9d57e308aeb20dc48a1da705d7a170 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 15 Sep 2021 18:20:05 +0200 Subject: [PATCH 26/27] =?UTF-8?q?Homeoffice=20wird=20nun=20beim=20Anlegen?= =?UTF-8?q?=20von=20neuen=20Datens=C3=A4tzen=20korrekt=20gespeichert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/bisverwendung.class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/bisverwendung.class.php b/include/bisverwendung.class.php index ca15d03de..82bb9d94e 100644 --- a/include/bisverwendung.class.php +++ b/include/bisverwendung.class.php @@ -273,7 +273,8 @@ class bisverwendung extends basis_db //Neuen Datensatz anlegen $qry = "BEGIN;INSERT INTO bis.tbl_bisverwendung (ba1code, ba2code, beschausmasscode, verwendung_code, mitarbeiter_uid, hauptberufcode, hauptberuflich, habilitation, beginn, ende, vertragsstunden, - updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig, azgrelevant) VALUES (". + updateamum, updatevon, insertamum, insertvon, dv_art, inkludierte_lehre, zeitaufzeichnungspflichtig, + azgrelevant, homeoffice) VALUES (". $this->db_add_param($this->ba1code, FHC_INTEGER).', '. $this->db_add_param($this->ba2code, FHC_INTEGER).', '. $this->db_add_param($this->beschausmasscode, FHC_INTEGER).', '. From 7073db5ebe7221b8f6aea3b33f3179181f1ad824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 27 Sep 2021 09:40:26 +0200 Subject: [PATCH 27/27] Added Permission check on Loading of Zeitaufzeichnung --- cis/private/tools/zeitaufzeichnung.php | 24 ++++++------ .../tools/zeitaufzeichnung_bisverwendung.php | 38 +++++++++++++------ 2 files changed, 39 insertions(+), 23 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 2a1e66048..824c0ba3c 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -287,16 +287,16 @@ echo ' useCheckedDate(); $("#von_datum").change( - function() - { - var uid = $("#uidpass").val(); - var Datum = $(this).val(); - Tag=Datum.substring(0,2); - Monat=Datum.substring(3,5); - Jahr=Datum.substring(6,10); - var day = Jahr + "-" + Monat + "-" + Tag; - checkBisverwendung(day,uid); - } + function() + { + var uid = $("#uidpass").val(); + var Datum = $(this).val(); + Tag=Datum.substring(0,2); + Monat=Datum.substring(3,5); + Jahr=Datum.substring(6,10); + var day = Jahr + "-" + Monat + "-" + Tag; + checkBisverwendung(day,uid); + } ) function isVisible() @@ -753,9 +753,9 @@ echo ' day: day, uid: uid }, - success: function (json) + success: function (result) { - if (json.length > 3) + if (result==\'true\') { $("#homeofficeBlock").show(); } diff --git a/cis/private/tools/zeitaufzeichnung_bisverwendung.php b/cis/private/tools/zeitaufzeichnung_bisverwendung.php index 210d63005..2f430ecda 100644 --- a/cis/private/tools/zeitaufzeichnung_bisverwendung.php +++ b/cis/private/tools/zeitaufzeichnung_bisverwendung.php @@ -21,8 +21,6 @@ * Checks, if there is the possibility for homeoffice for the given bisverwendung of * a certain date. */ - - require_once('../../../config/cis.config.inc.php'); require_once('../../../include/globals.inc.php'); require_once('../../../include/phrasen.class.php'); @@ -35,25 +33,43 @@ require_once('../../../include/zeitaufzeichnung.class.php'); require_once('../../../include/projekt.class.php'); require_once('../../../include/bisverwendung.class.php'); +if ((isset($_GET['uid'])) && (isset($_GET['day']))) +{ + $uid = get_uid(); -if ((isset($_GET['uid'])) && (isset($_GET['day']))) { + //Wenn User Administrator ist und UID uebergeben wurde, dann die Zeitaufzeichnung + //des uebergebenen Users anzeigen + if (isset($_GET['uid']) && $_GET['uid'] != $uid) + { + $p = new phrasen(); + $rechte = new benutzerberechtigung(); + $rechte->getBerechtigungen($uid); + + if ($rechte->isBerechtigt('admin')) + { + $uid = $_GET['uid']; + } + else + { + die($p->t('global/FuerDieseAktionBenoetigenSieAdministrationsrechte')); + } + } - $uid = $_GET['uid']; $day = $_GET['day']; $verwendung = new bisverwendung(); $verwendung->getVerwendungDatum($uid, $day); - $verwendungArr = array(); + $homeoffice = false; foreach ($verwendung->result as $v) + { if ($v->homeoffice) - if (!in_array($v->bisverwendung_id, $verwendungArr)) - { - $bvId = $v->bisverwendung_id; - $verwendungArr[] = $v->bisverwendung_id; - } + { + $homeoffice = true; + } + } -echo json_encode($verwendungArr); + echo json_encode($homeoffice); }