From 615a55eccc7cff90c0f0a93d15174560c4a06a96 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 3 Feb 2022 14:49:29 +0100 Subject: [PATCH] Adaptierungen Zeiterfassungen von Sprint177 --- cis/private/tools/zeitaufzeichnung.php | 86 ++++++++++++++++--- .../tools/zeitaufzeichnung_zeitsperren.php | 56 +++++++++--- include/zeitsperre.class.php | 17 ++-- locale/de-AT/zeitaufzeichnung.php | 1 + 4 files changed, 129 insertions(+), 31 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 8ee09891c..1a830ea99 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -651,7 +651,6 @@ echo ' } projphasenhtml += "<\/option>"; } - $("#projektphase").append(projphasenhtml); $("#projektphaseformgroup").show(); } @@ -785,7 +784,9 @@ echo ' { $.ajax ({ + type: "GET", url: "zeitaufzeichnung_zeitsperren.php", + dataType: "json", data: { day: day, @@ -793,15 +794,25 @@ echo ' }, success: function (json) { - if (json.length > 1) + if (json.length > 0) + { + var output = ""; + for (var i = 0; i < json.length; i++) { - $("#buttonSave").hide(); + output = "Für den Tag " + json[i].day + " ist bereits eine Zeitsperre vom Typ " + json[i].typ + " eingetragen!"; + alert("'.$p->t("zeitaufzeichnung/zeitsperreVorhanden1").'"); + $("#buttonSave").attr("disabled","disabled"); + $("#triggerPhasenReset").hide(); } - else - { - $("#buttonSave").show(); - } - $("#outputZs").html(json); + } + else + { + $("#buttonSave").prop("disabled",false); + output = ""; + } + $("#outputZeitsperren").html(output); + + } }); } @@ -811,8 +822,17 @@ echo ' '; + echo '

'.$p->t("zeitaufzeichnung/zeitaufzeichnungVon").' '.$db->convert_html_chars($bn->vorname).' '.$db->convert_html_chars($bn->nachname).'

'; +echo ' + + +

+

+ + +'; // Wenn Kartennummer übergeben wurde dann hole uid von Karteninhaber if($kartennummer != '') { @@ -1772,6 +1792,54 @@ if ($projekt->getProjekteMitarbeiter($user, true)) echo ''; //echo ''; + // $test = '2022-02-01'; + // echo "hello " . $test . "
"; + // + // $zs = new zeitsperre(); + // $sperreVorhanden = false; + // $stunde = '09'; + // $zs->getSperreByDate($user, $test, $stunde); + + //var_dump($zs->result); + + // foreach ($zs->result as $z) + // { + // if ($z->zeitsperretyp_kurzbz) + // { + // $sperreVorhanden = true; + // echo "zeitsperre vorhanden: ". $z->zeitsperretyp_kurzbz . " am: " . $test; + // } + // else { + // echo "zeitsperre nicht vorhanden"; + // } + // } + //Testausgaben + // echo ' + // + //   + // + // + // TESTAUSGABEN + // + // + // + // + // '; + // + // echo ' + // + //   + // + // + // TESTAUSGABEN + // + // + // + // '; + + + + $za = new zeitaufzeichnung(); if(isset($_GET['filter'])) $za->getListeProjekt($_GET['filter']); @@ -1788,8 +1856,6 @@ if ($projekt->getProjekteMitarbeiter($user, true)) $dr->getDienstreisenUser($user, 180); $dr_arr = $dr->result; - //var_dump($dr->result); - if(count($za->result)>0) { //Uebersichtstabelle diff --git a/cis/private/tools/zeitaufzeichnung_zeitsperren.php b/cis/private/tools/zeitaufzeichnung_zeitsperren.php index 2ab602c29..eb52bb84e 100644 --- a/cis/private/tools/zeitaufzeichnung_zeitsperren.php +++ b/cis/private/tools/zeitaufzeichnung_zeitsperren.php @@ -26,14 +26,16 @@ 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/zeitsperre.class.php'); +//require_once('../../../include/datum.class.php'); +// require_once('../../../include/Excel/excel.php'); +//require_once('../../../include/benutzer.class.php'); + +// require_once('../../../include/mitarbeiter.class.php'); +//require_once('../../../include/zeitaufzeichnung.class.php'); +// require_once('../../../include/projekt.class.php'); + $sprache = getSprache(); @@ -44,16 +46,42 @@ if ((isset($_GET['uid'])) && (isset($_GET['day']))) $uid = $_GET['uid']; $day = $_GET['day']; - $zs = new zeitsperre(); - $zs->getZeitsperrenForZeitaufzeichnung($uid, '180'); - $zeitsperren = $zs->result; + //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 (array_key_exists($day, $zeitsperren)) - { - echo ''.$p->t('zeitaufzeichnung/zeitsperreVorhanden', [$day, $zeitsperren[$day]]).'
'; + if ($rechte->isBerechtigt('admin')) + { + $uid = $_GET['uid']; + } + else + { + die($p->t('global/FuerDieseAktionBenoetigenSieAdministrationsrechte')); + } } - else + + $zs = new zeitsperre(); + $sperreVorhanden = false; + $typ = ''; + $zs->getSperreByDate($uid, $day, null); + $result_obj = array(); + $now = new DateTime($day); + $now = $now->format('d.m.Y'); + + foreach ($zs->result as $z) { - echo ""; + if ($z->zeitsperretyp_kurzbz) + { + $item['typ'] = $z->zeitsperretyp_kurzbz; + $item['day'] = $now; + $item['sperreVorhanden'] = true; + $result_obj[] = $item; + } } + //var_dump($result_obj); + echo json_encode($result_obj); } diff --git a/include/zeitsperre.class.php b/include/zeitsperre.class.php index 681916c26..b28a305f8 100644 --- a/include/zeitsperre.class.php +++ b/include/zeitsperre.class.php @@ -368,10 +368,10 @@ class zeitsperre extends basis_db * * @param $user * @param $datum - * @param $stunde + * @param $stunde optional, wird nur abgefragt, wenn != null * @return true wenn ok, false im Fehlerfall */ - public function getSperreByDate($user, $datum, $stunde) + public function getSperreByDate($user, $datum, $stunde=null) { $qry = " SELECT @@ -380,16 +380,19 @@ class zeitsperre extends basis_db campus.tbl_zeitsperre WHERE vondatum<=".$this->db_add_param($datum)." - AND bisdatum>=".$this->db_add_param($datum)." AND - ((vondatum=".$this->db_add_param($datum)." AND vonstunde<=".$this->db_add_param($stunde).") OR vonstunde is null OR vondatum<>".$this->db_add_param($datum).") AND - ((bisdatum=".$this->db_add_param($datum)." AND bisstunde>=".$this->db_add_param($stunde).") OR bisstunde is null OR bisdatum<>".$this->db_add_param($datum).") AND - mitarbeiter_uid=".$this->db_add_param($user); + AND bisdatum>=".$this->db_add_param($datum); + + if(!is_null($stunde)) + $qry.=" AND + ((vondatum=".$this->db_add_param($datum)." AND vonstunde<=".$this->db_add_param($stunde).") OR vonstunde is null OR vondatum<>".$this->db_add_param($datum).") AND + ((bisdatum=".$this->db_add_param($datum)." AND bisstunde>=".$this->db_add_param($stunde).") OR bisstunde is null OR bisdatum<>".$this->db_add_param($datum).")"; + + $qry .= "AND mitarbeiter_uid=".$this->db_add_param($user); if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) { - $obj = new zeitsperre(); $obj->zeitsperre_id = $row->zeitsperre_id; diff --git a/locale/de-AT/zeitaufzeichnung.php b/locale/de-AT/zeitaufzeichnung.php index 22bf69918..af7d15b58 100644 --- a/locale/de-AT/zeitaufzeichnung.php +++ b/locale/de-AT/zeitaufzeichnung.php @@ -66,3 +66,4 @@ $this->phrasen['zeitaufzeichnung/zeitraumZuKurz']='Zeitraum zu kurz für automat $this->phrasen['zeitaufzeichnung/supportAnfragen']='


Supportanfragen unter
zeiterfassung@technikum-wien.at

'; $this->phrasen['zeitaufzeichnung/homeofficeNichtErlaubt']='Homeoffice für den Tag %s nicht erlaubt'; $this->phrasen['zeitaufzeichnung/zeitsperreVorhanden']='

Achtung: Für den Tag %s existiert eine ganztägige Zeitsperre vom Typ %s!

'; +$this->phrasen['zeitaufzeichnung/zeitsperreVorhanden1']='Für diesen Tag ist bereits eine ganztägige Zeitsperre eingetragen!';