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);
}