From 9b11b19cf9a4d4bf2e16a92141768e1c25ebec18 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 22 Sep 2023 13:33:54 +0200 Subject: [PATCH 01/15] Zeitsperre: Maxwert bei Bisdatum --- cis/private/profile/zeitsperre_resturlaub.php | 106 +++++++++++------- config/cis.config-default.inc.php | 2 + locale/de-AT/zeitsperre.php | 1 + locale/en-US/zeitsperre.php | 1 + 4 files changed, 69 insertions(+), 41 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 46d342971..7f13e0da4 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -79,7 +79,21 @@ else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GE else $gesperrt_bis = '2015-08-31'; -//echo $gesperrt_bis; +$todayDate = new DateTime(); +$today = strtotime($todayDate->format('Y-m-d')); + +//MaxDatum für BisFeld berechnen: Default 2 Jahre, über Config veränderbar +$maxPeriodeBisDatum = '+2 years'; + +if (defined('CIS_MAXTIME_ENDEDATUM') && CIS_MAXTIME_ENDEDATUM != '') { + $maxPeriodeBisDatum = CIS_MAXTIME_ENDEDATUM; +} +$maxBisDatum = strtotime($maxPeriodeBisDatum, $today); + +$maxBisDatumDate = new DateTime($maxBisDatum); +$maxInterval = $todayDate->diff($maxBisDatumDate); +$diffTageMax = $maxInterval->days; +echo ""; //Stundentabelleholen if(! $result_stunde=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde")) @@ -96,7 +110,7 @@ $num_rows_stunde=$db->db_num_rows($result_stunde); - + @@ -204,65 +218,65 @@ function berechnen() function checkdatum() { - if(document.getElementById('vondatum').value.length<10) + if (document.getElementById('vondatum').value.length < 10) { alert('t('zeitsperre/vonDatumIstUngueltigNullenAngeben');?>'); return false; } - if(document.getElementById('bisdatum').value.length<10) + if (document.getElementById('bisdatum').value.length < 10) { alert('t('zeitsperre/bisDatumIstUngueltigNullenAngeben');?>'); return false; } - var Datum, Tag, Monat,Jahr,vonDatum,bisDatum, diff; + var Datum, Tag, Monat, Jahr, vonDatum, bisDatum, diff, diffmax; - Datum=document.getElementById('vondatum').value; - Tag=Datum.substring(0,2); - Monat=Datum.substring(3,5); - if (parseInt(Monat,10)<1 || parseInt(Monat,10)>12) - { - alert('t('zeitsperre/vonDatumMonat');?>'+ document.getElementById('vondatum').value+ ' t('zeitsperre/istNichtRichtig');?>.'); + Datum = document.getElementById('vondatum').value; + Tag = Datum.substring(0, 2); + Monat = Datum.substring(3, 5); + if (parseInt(Monat, 10) < 1 || parseInt(Monat, 10) > 12) + { + alert('t('zeitsperre/vonDatumMonat');?>' + document.getElementById('vondatum').value + ' t('zeitsperre/istNichtRichtig');?>.'); document.getElementById('vondatum').focus(); - return false; - } + return false; + } - Jahr=Datum.substring(6,10); + Jahr = Datum.substring(6, 10); - vonDatum=Jahr+''+Monat+''+Tag; + vonDatum = Jahr + '' + Monat + '' + Tag; - Datum=document.getElementById('bisdatum').value; - Tag=Datum.substring(0,2); - Monat=Datum.substring(3,5); - if (parseInt(Monat,10)<1 || parseInt(Monat,10)>12) - { - alert('t('zeitsperre/bisDatumMonat');?>'+ document.getElementById('bisdatum').value+ ' t('zeitsperre/istNichtRichtig');?>.'); + Datum = document.getElementById('bisdatum').value; + Tag = Datum.substring(0, 2); + Monat = Datum.substring(3, 5); + if (parseInt(Monat, 10) < 1 || parseInt(Monat, 10) > 12) { + alert('t('zeitsperre/bisDatumMonat');?>' + document.getElementById('bisdatum').value + ' t('zeitsperre/istNichtRichtig');?>.'); document.getElementById('bisdatum').focus(); - return false; - } + return false; + } - Jahr=Datum.substring(6,10); + Jahr = Datum.substring(6, 10); + bisDatum = Jahr + '' + Monat + '' + Tag; - bisDatum=Jahr+''+Monat+''+Tag; + diff = bisDatum - vonDatum; + diffmax = $("#maxdiff").val(); - diff=bisDatum-vonDatum; - - if (vonDatum>bisDatum) - { - alert('t('zeitsperre/vonDatum');?> '+ document.getElementById('vondatum').value+ ' t('zeitsperre/istGroesserAlsBisDatum');?> '+document.getElementById('bisdatum').value); + if (vonDatum > bisDatum) { + alert('t('zeitsperre/vonDatum');?> ' + document.getElementById('vondatum').value + ' t('zeitsperre/istGroesserAlsBisDatum');?> ' + document.getElementById('bisdatum').value); document.getElementById('vondatum').focus(); - return false; - } - else if (diff>14) - { - Check = confirm('t('zeitaufzeichnung/zeitraumAuffallendHoch');?>'); + return false; + } else if (diff > 14 && diff < diffmax) { + Check = confirm('t('zeitaufzeichnung/zeitraumAuffallendHoch');?>'); document.getElementById('bisdatum').focus(); - if (Check == false) - return false; - else - return true; - } + if (Check == false) + return false; + else + return true; + } else if (diff >= diffmax){ + alert('t('zeitsperre/bisDatumGroesserMax');?> '); + document.getElementById('bisdatum').focus(); + return false; + } return true; } @@ -445,7 +459,8 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ $date=explode('.',$_POST['bisdatum']); if (@checkdate($date[1], $date[0], $date[2])) { - $bisdatum=$date[2].$date[1].$date[0]; + $bisdatum=$date[2].$date[1].$date[0]; + $bisdatum_iso = $date[2].'-'.$date[1].'-'.$date[0]; } else { @@ -464,6 +479,15 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ $error_msg .= $p->t('zeitsperre/vonDatumGroesserAlsBisDatum').'! '; } + //check if bis-Datum > MaxDatum + $bis = new DateTime($bisdatum); + + if (strtotime($bis->format('Y-m-d')) > $maxBisDatum) + { + $error=true; + $error_msg .= $p->t('zeitsperre/bisDatumGroesserMax',date('d.m.Y', $maxBisDatum)).' '; + } + //von-datum pruefen TODO if($vondatum_iso < $gesperrt_bis && in_array($_POST['zeitsperretyp_kurzbz'],$typen_arr)) { diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index 27e0a9a70..a2d61dbcb 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -294,5 +294,7 @@ define ('DEFAULT_ALLIN_DIENSTVERTRAG',[111]); //Echter Dienstvertrag define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,111]); +//Max-Ende-Datum für Zeitsperren (Aktuelles Datum + angegebenes Intervall +define('CIS_MAXTIME_ENDEDATUM', '+2 years'); ?> diff --git a/locale/de-AT/zeitsperre.php b/locale/de-AT/zeitsperre.php index 463c092cf..c3acd00d0 100644 --- a/locale/de-AT/zeitsperre.php +++ b/locale/de-AT/zeitsperre.php @@ -26,6 +26,7 @@ $this->phrasen['zeitsperre/vonDatumMonat']='Von-Datum Monat'; $this->phrasen['zeitsperre/bisDatumMonat']='Bis-Datum Monat'; $this->phrasen['zeitsperre/istGroesserAlsBisDatum']='ist größer als das Bis-Datum'; $this->phrasen['zeitsperre/vonDatum']='Von-Datum'; +$this->phrasen['zeitsperre/bisDatumGroesserMax']='Datumswert liegt zu weit in der Zukunft, nicht zulässig!'; $this->phrasen['zeitsperre/resturlaubstage']='Resturlaubstage'; $this->phrasen['zeitsperre/aktuellerStand']='aktueller Stand'; diff --git a/locale/en-US/zeitsperre.php b/locale/en-US/zeitsperre.php index 44123529f..5f54250b8 100644 --- a/locale/en-US/zeitsperre.php +++ b/locale/en-US/zeitsperre.php @@ -26,6 +26,7 @@ $this->phrasen['zeitsperre/vonDatumMonat']='From-date month'; $this->phrasen['zeitsperre/bisDatumMonat']='To-date month'; $this->phrasen['zeitsperre/istGroesserAlsBisDatum']='is later than To-date'; $this->phrasen['zeitsperre/vonDatum']='From-date'; +$this->phrasen['zeitsperre/bisDatumGroesserMax']='Date value is too far in the future, action not permitted'; $this->phrasen['zeitsperre/resturlaubstage']='Carry-over days'; $this->phrasen['zeitsperre/aktuellerStand']='Available vacation'; From 9eeeeca62cc261b54e38c4275aa3a861bccd3641 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 25 Sep 2023 09:54:49 +0200 Subject: [PATCH 02/15] Fix format --- cis/private/profile/zeitsperre_resturlaub.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 7f13e0da4..007ae18f9 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -89,9 +89,9 @@ if (defined('CIS_MAXTIME_ENDEDATUM') && CIS_MAXTIME_ENDEDATUM != '') { $maxPeriodeBisDatum = CIS_MAXTIME_ENDEDATUM; } $maxBisDatum = strtotime($maxPeriodeBisDatum, $today); - -$maxBisDatumDate = new DateTime($maxBisDatum); +$maxBisDatumDate = new DateTime($maxPeriodeBisDatum); $maxInterval = $todayDate->diff($maxBisDatumDate); + $diffTageMax = $maxInterval->days; echo ""; From f71b0e500e9fa43a466d2e39e3c8ee9c28560249 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 25 Sep 2023 14:15:33 +0200 Subject: [PATCH 03/15] Adaptierung Berechnung diff --- cis/private/profile/zeitsperre_resturlaub.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 007ae18f9..0e9c46cc1 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -230,7 +230,7 @@ function checkdatum() return false; } - var Datum, Tag, Monat, Jahr, vonDatum, bisDatum, diff, diffmax; + var Datum, Tag, Monat, Jahr, vonDatum, bisDatum, vonDatumDate, bisDatumDate, diff, diffTime, diffmax; Datum = document.getElementById('vondatum').value; Tag = Datum.substring(0, 2); @@ -245,6 +245,7 @@ function checkdatum() Jahr = Datum.substring(6, 10); vonDatum = Jahr + '' + Monat + '' + Tag; + vonDatumDate = Jahr + '-' + Monat + '-' + Tag; Datum = document.getElementById('bisdatum').value; Tag = Datum.substring(0, 2); @@ -257,8 +258,13 @@ function checkdatum() Jahr = Datum.substring(6, 10); bisDatum = Jahr + '' + Monat + '' + Tag; + bisDatumDate = Jahr + '-' + Monat + '-' + Tag; - diff = bisDatum - vonDatum; + bisDatumDate = new Date(bisDatumDate); + vonDatumDate = new Date(vonDatumDate); + + diffTime = bisDatumDate.getTime() - vonDatumDate.getTime(); + diff = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); diffmax = $("#maxdiff").val(); if (vonDatum > bisDatum) { From 746ee76a3b30a1d5ea48011ab5ec4ce73deaf545 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 25 Sep 2023 15:11:14 +0200 Subject: [PATCH 04/15] Validierungen Von- und Bis-Felder vilesci --- vilesci/personen/urlaubsverwaltung.php | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/vilesci/personen/urlaubsverwaltung.php b/vilesci/personen/urlaubsverwaltung.php index 274a04b94..be3647732 100644 --- a/vilesci/personen/urlaubsverwaltung.php +++ b/vilesci/personen/urlaubsverwaltung.php @@ -34,6 +34,7 @@ require_once('../../include/datum.class.php'); require_once('../../include/benutzerberechtigung.class.php'); require_once('../../include/addon.class.php'); require_once('../../include/benutzerfunktion.class.php'); +require_once('../../include/phrasen.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -63,6 +64,17 @@ $message=''; $error=false; $mlAbgeschickt = ''; +//Phrasen +$sprache = getSprache(); +$p = new phrasen($sprache); + +//MaxDatum für BisFeld berechnen: Default 2 Jahre, über Config veränderbar +$maxPeriodeBisDatum = '+2 years'; + +if (defined('MAXTIME_ENDEDATUM') && MAXTIME_ENDEDATUM != '') { + $maxPeriodeBisDatum = MAXTIME_ENDEDATUM; +} + //prüfen, ob addon casetime aktiviert ist $addon_obj = new addon(); $addoncasetime = $addon_obj->checkActiveAddon("casetime"); @@ -205,6 +217,26 @@ if(isset($_POST['save'])) if(!$berechtigt) die('Sie haben keine Berechtigung für diese Aktion'); + //Validierungen Felder Bis-Datum und Von-Datum + if($vondatum > $bisdatum) + { + $errormsg = $p->t('zeitsperre/vonDatumGroesserAlsBisDatum').'! '; + $error=true; + } + + //check if bis-Datum > MaxDatum + $von = new DateTime($vondatum); + $bis = new DateTime($bisdatum); + $vonTime = strtotime($von->format('Y-m-d')); + $maxBisDatum = strtotime($maxPeriodeBisDatum, $vonTime); + $maxBisDatumDate = new DateTime($maxPeriodeBisDatum); + + if (strtotime($bis->format('Y-m-d')) > $maxBisDatum) + { + $error=true; + $errormsg = $p->t('zeitsperre/bisDatumGroesserMax',date('d.m.Y', $maxBisDatum)).' '; + } + //Speichern der Daten $zeitsperre = new zeitsperre(); @@ -225,6 +257,8 @@ if(isset($_POST['save'])) $zeitsperre->mitarbeiter_uid=$uid; } + + if(!$error) { $zeitsperre->zeitsperretyp_kurzbz=$zeitsperretyp_kurzbz; From b1f3916e49f02fef05893ccf2d355b0926bb4a2e Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 25 Sep 2023 15:33:17 +0200 Subject: [PATCH 05/15] Adaptierung bismax-Validierung --- cis/private/profile/zeitsperre_resturlaub.php | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 0e9c46cc1..174d341f0 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -79,20 +79,14 @@ else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GE else $gesperrt_bis = '2015-08-31'; -$todayDate = new DateTime(); -$today = strtotime($todayDate->format('Y-m-d')); - //MaxDatum für BisFeld berechnen: Default 2 Jahre, über Config veränderbar $maxPeriodeBisDatum = '+2 years'; +$diffTageMax = $maxPeriodeBisDatum *365; if (defined('CIS_MAXTIME_ENDEDATUM') && CIS_MAXTIME_ENDEDATUM != '') { $maxPeriodeBisDatum = CIS_MAXTIME_ENDEDATUM; } -$maxBisDatum = strtotime($maxPeriodeBisDatum, $today); -$maxBisDatumDate = new DateTime($maxPeriodeBisDatum); -$maxInterval = $todayDate->diff($maxBisDatumDate); -$diffTageMax = $maxInterval->days; echo ""; //Stundentabelleholen @@ -110,7 +104,7 @@ $num_rows_stunde=$db->db_num_rows($result_stunde); - @@ -488,6 +482,13 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ //check if bis-Datum > MaxDatum $bis = new DateTime($bisdatum); +/* $todayDate = new DateTime(); + $today = strtotime($todayDate->format('Y-m-d'));*/ + + $vonDate = new DateTime($vondatum); + $von = strtotime($vonDate->format('Y-m-d')); + $maxBisDatum = strtotime($maxPeriodeBisDatum, $von); + if (strtotime($bis->format('Y-m-d')) > $maxBisDatum) { $error=true; From be3e4e552bc55598e968610f5c4a82a564f917e7 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 25 Sep 2023 15:44:48 +0200 Subject: [PATCH 06/15] Adapt diffTageMax --- cis/private/profile/zeitsperre_resturlaub.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 174d341f0..861317bfb 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -81,12 +81,11 @@ else //MaxDatum für BisFeld berechnen: Default 2 Jahre, über Config veränderbar $maxPeriodeBisDatum = '+2 years'; -$diffTageMax = $maxPeriodeBisDatum *365; if (defined('CIS_MAXTIME_ENDEDATUM') && CIS_MAXTIME_ENDEDATUM != '') { $maxPeriodeBisDatum = CIS_MAXTIME_ENDEDATUM; } - +$diffTageMax = $maxPeriodeBisDatum *365; echo ""; //Stundentabelleholen From 1809ff30084f8ee3f5ef7e41328122519d65429c Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 27 Sep 2023 08:30:03 +0200 Subject: [PATCH 07/15] accept days, weeks, month and years in config --- cis/private/profile/zeitsperre_resturlaub.php | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index 861317bfb..f85cfcb88 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -79,14 +79,23 @@ else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GE else $gesperrt_bis = '2015-08-31'; -//MaxDatum für BisFeld berechnen: Default 2 Jahre, über Config veränderbar -$maxPeriodeBisDatum = '+2 years'; +//MaxDatum für BisFeld berechnen: Default 730 Tage (2 Jahre), über Config veränderbar +$maxPeriodeBisDatum = '+730 days'; -if (defined('CIS_MAXTIME_ENDEDATUM') && CIS_MAXTIME_ENDEDATUM != '') { +if (defined('CIS_MAXTIME_ENDEDATUM') && CIS_MAXTIME_ENDEDATUM != '' && CIS_MAXTIME_ENDEDATUM != 0) { $maxPeriodeBisDatum = CIS_MAXTIME_ENDEDATUM; } -$diffTageMax = $maxPeriodeBisDatum *365; -echo ""; + +if (strpos($maxPeriodeBisDatum,'day') != false) + $diffTageMax = $maxPeriodeBisDatum * 1; +elseif (strpos($maxPeriodeBisDatum,'week')!= false) + $diffTageMax = $maxPeriodeBisDatum * 7; +elseif (strpos($maxPeriodeBisDatum,'month')!= false) + $diffTageMax = $maxPeriodeBisDatum * 30; +elseif (strpos($maxPeriodeBisDatum,'year') != false) + $diffTageMax = $maxPeriodeBisDatum * 365; +else + $diffTageMax = 730; //Stundentabelleholen if(! $result_stunde=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde")) @@ -271,7 +280,7 @@ function checkdatum() return false; else return true; - } else if (diff >= diffmax){ + } else if (diff >= diffmax) { alert('t('zeitsperre/bisDatumGroesserMax');?> '); document.getElementById('bisdatum').focus(); return false; @@ -1013,6 +1022,7 @@ echo ""; echo $content_form; echo ''; echo ""; +echo ""; echo ''; echo $content_table; echo ''; From f9af5638f59781496273b2cfe7019f48cae22f09 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 28 Sep 2023 09:31:40 +0200 Subject: [PATCH 08/15] =?UTF-8?q?Update=20Config:=20Format=20in=20Tagen=20?= =?UTF-8?q?f=C3=BCr=20Validierung=20JS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/profile/zeitsperre_resturlaub.php | 17 ++++------------- config/cis.config-default.inc.php | 4 ++-- config/vilesci.config-default.inc.php | 3 +++ vilesci/personen/urlaubsverwaltung.php | 4 ++-- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index f85cfcb88..bf81562a9 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -81,22 +81,13 @@ else //MaxDatum für BisFeld berechnen: Default 730 Tage (2 Jahre), über Config veränderbar $maxPeriodeBisDatum = '+730 days'; +$diffTageMax = 730; -if (defined('CIS_MAXTIME_ENDEDATUM') && CIS_MAXTIME_ENDEDATUM != '' && CIS_MAXTIME_ENDEDATUM != 0) { - $maxPeriodeBisDatum = CIS_MAXTIME_ENDEDATUM; +if (defined('MAXTIME_FROM_ENDEDATUM') && MAXTIME_FROM_ENDEDATUM != '') { + $maxPeriodeBisDatum = MAXTIME_FROM_ENDEDATUM[0]; + $diffTageMax = MAXTIME_FROM_ENDEDATUM[1]; } -if (strpos($maxPeriodeBisDatum,'day') != false) - $diffTageMax = $maxPeriodeBisDatum * 1; -elseif (strpos($maxPeriodeBisDatum,'week')!= false) - $diffTageMax = $maxPeriodeBisDatum * 7; -elseif (strpos($maxPeriodeBisDatum,'month')!= false) - $diffTageMax = $maxPeriodeBisDatum * 30; -elseif (strpos($maxPeriodeBisDatum,'year') != false) - $diffTageMax = $maxPeriodeBisDatum * 365; -else - $diffTageMax = 730; - //Stundentabelleholen if(! $result_stunde=$db->db_query("SELECT * FROM lehre.tbl_stunde ORDER BY stunde")) die($db->db_last_error()); diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index a2d61dbcb..a9a5f5a18 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -294,7 +294,7 @@ define ('DEFAULT_ALLIN_DIENSTVERTRAG',[111]); //Echter Dienstvertrag define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,111]); -//Max-Ende-Datum für Zeitsperren (Aktuelles Datum + angegebenes Intervall -define('CIS_MAXTIME_ENDEDATUM', '+2 years'); +//Max-Ende-Datum für Zeitsperren (Parameter 1: Intervall serverside, Parameter 2: Tage clientside) +define('MAXTIME_FROM_ENDEDATUM', ['+2 years', 730]); ?> diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php index fdd971be0..2c56ed6e3 100644 --- a/config/vilesci.config-default.inc.php +++ b/config/vilesci.config-default.inc.php @@ -289,4 +289,7 @@ define ('DEFAULT_LEHRMODUS','regulaer'); //Echter Dienstvertrag define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,110]); +//Max-Ende-Datum für Zeitsperren (Parameter 1: Intervall serverside, Parameter 2: Tage clientside) +define('MAXTIME_FROM_ENDEDATUM', ['+2 years', 730]); + ?> diff --git a/vilesci/personen/urlaubsverwaltung.php b/vilesci/personen/urlaubsverwaltung.php index be3647732..6aa901aab 100644 --- a/vilesci/personen/urlaubsverwaltung.php +++ b/vilesci/personen/urlaubsverwaltung.php @@ -71,8 +71,8 @@ $p = new phrasen($sprache); //MaxDatum für BisFeld berechnen: Default 2 Jahre, über Config veränderbar $maxPeriodeBisDatum = '+2 years'; -if (defined('MAXTIME_ENDEDATUM') && MAXTIME_ENDEDATUM != '') { - $maxPeriodeBisDatum = MAXTIME_ENDEDATUM; +if (defined('MAXTIME_FROM_ENDEDATUM') && MAXTIME_FROM_ENDEDATUM != '') { + $maxPeriodeBisDatum = MAXTIME_FROM_ENDEDATUM[0]; } //prüfen, ob addon casetime aktiviert ist From 23aeba4620800698b924b2bd6e7e8289d2c489a3 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 6 Oct 2023 12:30:14 +0200 Subject: [PATCH 09/15] Verwendung von datetime-funktionen anstelle von strtotime, Adaptierung config-eintrag, update Phrasen --- cis/private/profile/zeitsperre_resturlaub.php | 32 +++++++------------ config/cis.config-default.inc.php | 3 -- config/global.config-default.inc.php | 3 ++ config/vilesci.config-default.inc.php | 3 -- locale/de-AT/zeitsperre.php | 2 +- locale/en-US/zeitsperre.php | 2 +- vilesci/personen/urlaubsverwaltung.php | 19 +++++------ 7 files changed, 25 insertions(+), 39 deletions(-) diff --git a/cis/private/profile/zeitsperre_resturlaub.php b/cis/private/profile/zeitsperre_resturlaub.php index bf81562a9..ffd179401 100644 --- a/cis/private/profile/zeitsperre_resturlaub.php +++ b/cis/private/profile/zeitsperre_resturlaub.php @@ -79,13 +79,11 @@ else if (defined('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS') && CIS_ZEITAUFZEICHNUNG_GE else $gesperrt_bis = '2015-08-31'; -//MaxDatum für BisFeld berechnen: Default 730 Tage (2 Jahre), über Config veränderbar -$maxPeriodeBisDatum = '+730 days'; -$diffTageMax = 730; +//Default-Wert für Max-Intervall in Tagen für Zeitsperre, über Config veränderbar +$maxDauerZS = 730; -if (defined('MAXTIME_FROM_ENDEDATUM') && MAXTIME_FROM_ENDEDATUM != '') { - $maxPeriodeBisDatum = MAXTIME_FROM_ENDEDATUM[0]; - $diffTageMax = MAXTIME_FROM_ENDEDATUM[1]; +if (defined('CIS_ZEITSPERREN_MAX_DAUER') && CIS_ZEITSPERREN_MAX_DAUER != '') { + $maxDauerZS = CIS_ZEITSPERREN_MAX_DAUER; } //Stundentabelleholen @@ -258,13 +256,14 @@ function checkdatum() diffTime = bisDatumDate.getTime() - vonDatumDate.getTime(); diff = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); - diffmax = $("#maxdiff").val(); + diffmax = if (vonDatum > bisDatum) { alert('t('zeitsperre/vonDatum');?> ' + document.getElementById('vondatum').value + ' t('zeitsperre/istGroesserAlsBisDatum');?> ' + document.getElementById('bisdatum').value); document.getElementById('vondatum').focus(); return false; - } else if (diff > 14 && diff < diffmax) { + } + else if (diff > 14 && diff < diffmax) { Check = confirm('t('zeitaufzeichnung/zeitraumAuffallendHoch');?>'); document.getElementById('bisdatum').focus(); if (Check == false) @@ -276,7 +275,6 @@ function checkdatum() document.getElementById('bisdatum').focus(); return false; } - return true; } @@ -478,20 +476,15 @@ if(isset($_GET['type']) && ($_GET['type']=='edit_sperre' || $_GET['type']=='new_ $error_msg .= $p->t('zeitsperre/vonDatumGroesserAlsBisDatum').'! '; } - //check if bis-Datum > MaxDatum + //check if bis-Datum zu weit in der Zukunft $bis = new DateTime($bisdatum); + $von = new DateTime($vondatum); -/* $todayDate = new DateTime(); - $today = strtotime($todayDate->format('Y-m-d'));*/ - - $vonDate = new DateTime($vondatum); - $von = strtotime($vonDate->format('Y-m-d')); - $maxBisDatum = strtotime($maxPeriodeBisDatum, $von); - - if (strtotime($bis->format('Y-m-d')) > $maxBisDatum) + $intervall = $bis->diff($von); + if ($intervall->days >= $maxDauerZS) { $error=true; - $error_msg .= $p->t('zeitsperre/bisDatumGroesserMax',date('d.m.Y', $maxBisDatum)).' '; + $error_msg = $p->t('zeitsperre/bisDatumGroesserMax'); } //von-datum pruefen TODO @@ -1013,7 +1006,6 @@ echo ""; echo $content_form; echo ''; echo ""; -echo ""; echo ''; echo $content_table; echo ''; diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index a9a5f5a18..346af8801 100644 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -294,7 +294,4 @@ define ('DEFAULT_ALLIN_DIENSTVERTRAG',[111]); //Echter Dienstvertrag define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,111]); -//Max-Ende-Datum für Zeitsperren (Parameter 1: Intervall serverside, Parameter 2: Tage clientside) -define('MAXTIME_FROM_ENDEDATUM', ['+2 years', 730]); - ?> diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index 8990bbd81..c4da2f6e3 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -47,6 +47,9 @@ define('CIS_PROFIL_STUDIENINFORMATION_ANZEIGEN',true); // Zeitaufzeichnung gesperrt_bis Datum YYYY-MM-DD define('CIS_ZEITAUFZEICHNUNG_GESPERRT_BIS',''); +// maximale Dauer einer Zeitsperre in Tagen +define('CIS_ZEITSPERREN_MAX_DAUER', 730); + // Anzeige des Links zur Noteneingabe in der LVA Uebersicht define('CIS_LVALISTE_NOTENEINGABE_ANZEIGEN',true); diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php index 2c56ed6e3..fdd971be0 100644 --- a/config/vilesci.config-default.inc.php +++ b/config/vilesci.config-default.inc.php @@ -289,7 +289,4 @@ define ('DEFAULT_LEHRMODUS','regulaer'); //Echter Dienstvertrag define ('DEFAULT_ECHTER_DIENSTVERTRAG',[103,110]); -//Max-Ende-Datum für Zeitsperren (Parameter 1: Intervall serverside, Parameter 2: Tage clientside) -define('MAXTIME_FROM_ENDEDATUM', ['+2 years', 730]); - ?> diff --git a/locale/de-AT/zeitsperre.php b/locale/de-AT/zeitsperre.php index c3acd00d0..413cd5be5 100644 --- a/locale/de-AT/zeitsperre.php +++ b/locale/de-AT/zeitsperre.php @@ -26,7 +26,7 @@ $this->phrasen['zeitsperre/vonDatumMonat']='Von-Datum Monat'; $this->phrasen['zeitsperre/bisDatumMonat']='Bis-Datum Monat'; $this->phrasen['zeitsperre/istGroesserAlsBisDatum']='ist größer als das Bis-Datum'; $this->phrasen['zeitsperre/vonDatum']='Von-Datum'; -$this->phrasen['zeitsperre/bisDatumGroesserMax']='Datumswert liegt zu weit in der Zukunft, nicht zulässig!'; +$this->phrasen['zeitsperre/bisDatumGroesserMax']='BisDatum liegt zu weit in der Zukunft, nicht zulässig!'; $this->phrasen['zeitsperre/resturlaubstage']='Resturlaubstage'; $this->phrasen['zeitsperre/aktuellerStand']='aktueller Stand'; diff --git a/locale/en-US/zeitsperre.php b/locale/en-US/zeitsperre.php index 5f54250b8..31cdef6f8 100644 --- a/locale/en-US/zeitsperre.php +++ b/locale/en-US/zeitsperre.php @@ -26,7 +26,7 @@ $this->phrasen['zeitsperre/vonDatumMonat']='From-date month'; $this->phrasen['zeitsperre/bisDatumMonat']='To-date month'; $this->phrasen['zeitsperre/istGroesserAlsBisDatum']='is later than To-date'; $this->phrasen['zeitsperre/vonDatum']='From-date'; -$this->phrasen['zeitsperre/bisDatumGroesserMax']='Date value is too far in the future, action not permitted'; +$this->phrasen['zeitsperre/bisDatumGroesserMax']='TO-Date value is too far in the future, action not permitted'; $this->phrasen['zeitsperre/resturlaubstage']='Carry-over days'; $this->phrasen['zeitsperre/aktuellerStand']='Available vacation'; diff --git a/vilesci/personen/urlaubsverwaltung.php b/vilesci/personen/urlaubsverwaltung.php index 6aa901aab..20b2d293c 100644 --- a/vilesci/personen/urlaubsverwaltung.php +++ b/vilesci/personen/urlaubsverwaltung.php @@ -68,13 +68,12 @@ $mlAbgeschickt = ''; $sprache = getSprache(); $p = new phrasen($sprache); -//MaxDatum für BisFeld berechnen: Default 2 Jahre, über Config veränderbar -$maxPeriodeBisDatum = '+2 years'; +//Default-Wert für Max-Intervall in Tagen für Zeitsperre, über Config veränderbar +$maxDauerZS = 730; -if (defined('MAXTIME_FROM_ENDEDATUM') && MAXTIME_FROM_ENDEDATUM != '') { - $maxPeriodeBisDatum = MAXTIME_FROM_ENDEDATUM[0]; +if (defined('CIS_ZEITSPERREN_MAX_DAUER') && CIS_ZEITSPERREN_MAX_DAUER != '') { + $maxDauerZS = CIS_ZEITSPERREN_MAX_DAUER; } - //prüfen, ob addon casetime aktiviert ist $addon_obj = new addon(); $addoncasetime = $addon_obj->checkActiveAddon("casetime"); @@ -224,17 +223,15 @@ if(isset($_POST['save'])) $error=true; } - //check if bis-Datum > MaxDatum + //Check if Bisdatum zu weit in der Zukunft $von = new DateTime($vondatum); $bis = new DateTime($bisdatum); - $vonTime = strtotime($von->format('Y-m-d')); - $maxBisDatum = strtotime($maxPeriodeBisDatum, $vonTime); - $maxBisDatumDate = new DateTime($maxPeriodeBisDatum); - if (strtotime($bis->format('Y-m-d')) > $maxBisDatum) + $intervall = $bis->diff($von); + if ($intervall->days > $maxDauerZS) { $error=true; - $errormsg = $p->t('zeitsperre/bisDatumGroesserMax',date('d.m.Y', $maxBisDatum)).' '; + $errormsg = $p->t('zeitsperre/bisDatumGroesserMax'); } //Speichern der Daten From 548a3e39b9df2fac0899d9cc8b8bca59e6242970 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Fri, 20 Oct 2023 15:50:48 +0200 Subject: [PATCH 10/15] change label --- locale/de-AT/fas.dtd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/de-AT/fas.dtd b/locale/de-AT/fas.dtd index 53008a4e6..3fd593833 100644 --- a/locale/de-AT/fas.dtd +++ b/locale/de-AT/fas.dtd @@ -212,7 +212,7 @@ - + From 01ca5831677f2ec95f8b48c84666a8166c1d095c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 23 Oct 2023 15:02:34 +0200 Subject: [PATCH 11/15] Vertragsstunden werden auf 2 Nachkommastellen gerundet anstatt auf 1 --- .../views/lehre/lehrauftrag/acceptLehrauftragData.php | 6 +++--- .../views/lehre/lehrauftrag/approveLehrauftragData.php | 6 +++--- .../views/lehre/lehrauftrag/orderLehrauftragData.php | 10 +++++----- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php index 92c896ce7..26a05c30b 100644 --- a/application/views/lehre/lehrauftrag/acceptLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/acceptLehrauftragData.php @@ -142,7 +142,7 @@ FROM WHEN oe.organisationseinheittyp_kurzbz = \'Department\' THEN (\'DEP \' || oe.bezeichnung) ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung) END AS "lv_oe_kurzbz", - TRUNC(lema.semesterstunden, 1) AS "stunden", + TRUNC(lema.semesterstunden, 2) AS "stunden", TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag", vertrag_id, vertragsstunden AS "vertrag_stunden", @@ -375,9 +375,9 @@ $filterWidgetArray = array( orgform_kurzbz: {visible: false, headerFilter:"input"}, person_id: {visible: false, headerFilter:"input"}, lv_oe_kurzbz: {visible: false, headerFilter:"input"}, - stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, + stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, - bottomCalc:"sum", bottomCalcParams:{precision:1} + bottomCalc:"sum", bottomCalcParams:{precision:2} }, betrag: {align:"right", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, diff --git a/application/views/lehre/lehrauftrag/approveLehrauftragData.php b/application/views/lehre/lehrauftrag/approveLehrauftragData.php index 0414ddbf6..4f0c61193 100644 --- a/application/views/lehre/lehrauftrag/approveLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/approveLehrauftragData.php @@ -149,7 +149,7 @@ FROM ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung) END AS "lv_oe_kurzbz", (person.nachname || \' \' || person.vorname) AS "lektor", - TRUNC(lema.semesterstunden, 1) AS "stunden", + TRUNC(lema.semesterstunden, 2) AS "stunden", lema.stundensatz, TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag", vertrag_id, @@ -400,9 +400,9 @@ $filterWidgetArray = array( person_id: {visible: false, headerFilter:"input"}, lv_oe_kurzbz: {visible: false, headerFilter:"input"}, lektor: {headerFilter:"input", widthGrow: 2}, - stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, + stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, - bottomCalc:"sum", bottomCalcParams:{precision:1}}, + bottomCalc:"sum", bottomCalcParams:{precision:2}}, stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator}, betrag: {align:"right", formatter: form_formatNulltoStringNumber, diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index 5a2ad98bd..48afd72a6 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -179,7 +179,7 @@ FROM ELSE (oe.organisationseinheittyp_kurzbz || \' \' || oe.bezeichnung) END AS "lv_oe_kurzbz", (person.nachname || \' \' || person.vorname) AS "lektor", - TRUNC(lema.semesterstunden, 1) AS "stunden", + TRUNC(lema.semesterstunden, 2) AS "stunden", lema.stundensatz, TRUNC((lema.semesterstunden * lema.stundensatz), 2) AS "betrag", vertrag_id, @@ -219,7 +219,7 @@ FROM (SELECT uid FROM - public.tbl_benutzer JOIN public.tbl_mitarbeiter ma + public.tbl_benutzer JOIN public.tbl_mitarbeiter ma ON tbl_benutzer.uid = ma.mitarbeiter_uid WHERE person_id = tmp_projektbetreuung.person_id @@ -414,7 +414,7 @@ $filterWidgetArray = array( row_index: {visible: false}, personalnummer: {visible: false, headerFilter:"input"}, auftrag: { - headerFilter:"input", widthGrow: 2, + headerFilter:"input", widthGrow: 2, bottomCalc:"count", bottomCalcFormatter:function(cell){return "'. ucfirst($this->p->t('global', 'anzahl')). ': " + cell.getValue();} }, stg_typ_kurzbz: {headerFilter:"input"}, @@ -432,9 +432,9 @@ $filterWidgetArray = array( person_id: {visible: false, headerFilter:"input"}, lv_oe_kurzbz: {headerFilter:"input"}, lektor: {headerFilter:"input", widthGrow: 2}, - stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:1}, + stunden: {align:"right", formatter: form_formatNulltoStringNumber, formatterParams:{precision:2}, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator, - bottomCalc:"sum", bottomCalcParams:{precision:1}}, + bottomCalc:"sum", bottomCalcParams:{precision:2}}, stundensatz: {visible: true, align:"right", formatter: form_formatNulltoStringNumber, headerFilter:"input", headerFilterFunc: hf_filterStringnumberWithOperator}, betrag: {align:"right", formatter: form_formatNulltoStringNumber, From aead4f3380a0d8e91f418d31a6ccf384a7cf58d1 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 24 Oct 2023 10:44:17 +0200 Subject: [PATCH 12/15] =?UTF-8?q?Assistenz=20als=20CC=20zu=20SammelmailSTG?= =?UTF-8?q?L=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/controllers/jobs/AntragJob.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/application/controllers/jobs/AntragJob.php b/application/controllers/jobs/AntragJob.php index 6f5747232..d435f1818 100644 --- a/application/controllers/jobs/AntragJob.php +++ b/application/controllers/jobs/AntragJob.php @@ -166,8 +166,12 @@ class AntragJob extends JOB_Controller $data['table'] = $data['table_' . DEFAULT_LANGUAGE]; + //Mail an Stgl und Assistenz + $to = $leitung['Details']->uid . '@' . DOMAIN; + $cc = $leitung['Details']->email; + // NOTE(chris): Sancho mail - if (sendSanchoMail("Sancho_Mail_Antrag_Stgl", $data, $leitung['Details']->uid . '@' . DOMAIN, 'Anträge - Aktion(en) erforderlich')) + if (sendSanchoMail("Sancho_Mail_Antrag_Stgl", $data, $to, 'Anträge - Aktion(en) erforderlich', DEFAULT_SANCHO_HEADER_IMG, DEFAULT_SANCHO_FOOTER_IMG, '', $cc)) $count++; } From 73cbaf77f171efabe415d202f5e1722afec8e738 Mon Sep 17 00:00:00 2001 From: cgfhtw Date: Tue, 24 Oct 2023 14:16:13 +0200 Subject: [PATCH 13/15] CSV Options adjusted for German MS Office --- public/js/components/Studierendenantrag/Leitung/Table.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/public/js/components/Studierendenantrag/Leitung/Table.js b/public/js/components/Studierendenantrag/Leitung/Table.js index ea8dae107..aa1bc3734 100644 --- a/public/js/components/Studierendenantrag/Leitung/Table.js +++ b/public/js/components/Studierendenantrag/Leitung/Table.js @@ -44,7 +44,10 @@ export default { this.table.replaceData(this.ajaxUrl + (stg || '')); }, download() { - this.table.download("csv", "data.csv"); + this.table.download("csv", "data.csv", { + delimiter: ';', + bom: true + }); }, getHistory() { if (this.lastHistoryClickedId === null) From 684a741f2a86b2ffa56d70f299d0cb73a73e643a Mon Sep 17 00:00:00 2001 From: ma0048 Date: Tue, 31 Oct 2023 08:33:10 +0100 Subject: [PATCH 14/15] - bugfix --- application/models/crm/Rueckstellung_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/models/crm/Rueckstellung_model.php b/application/models/crm/Rueckstellung_model.php index d2c39ffde..c84c625eb 100644 --- a/application/models/crm/Rueckstellung_model.php +++ b/application/models/crm/Rueckstellung_model.php @@ -20,7 +20,7 @@ class Rueckstellung_model extends DB_Model $this->addLimit(1); $this->addJoin('tbl_rueckstellung_status', 'status_kurzbz'); $this->addSelect('*, - array_to_json(bezeichnung_mehrsprachig::varchar[])->>'.$language_index . 'as bezeichnung'); + array_to_json(bezeichnung_mehrsprachig::varchar[])->>'.$language_index . ' as bezeichnung'); $this->addOrder('datum_bis', 'DESC'); $where['person_id'] = $person_id; From ccace2f826533094f6475afb6f4c5dc867cadab6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 31 Oct 2023 11:16:53 +0100 Subject: [PATCH 15/15] Fehler beim Laden der Lehrauftragsliste korrigiert mit Postgres15 --- application/views/lehre/lehrauftrag/orderLehrauftragData.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/views/lehre/lehrauftrag/orderLehrauftragData.php b/application/views/lehre/lehrauftrag/orderLehrauftragData.php index 48afd72a6..85b663d4a 100644 --- a/application/views/lehre/lehrauftrag/orderLehrauftragData.php +++ b/application/views/lehre/lehrauftrag/orderLehrauftragData.php @@ -159,7 +159,7 @@ FROM ( SELECT /* lehrauftraege also planned with dummies, therefore personalnummer is needed */ - ma.personalnummer, + ma.personalnummer::text, lema.lehreinheit_id, lv.lehrveranstaltung_id, lv.bezeichnung AS "lv_bezeichnung", @@ -272,7 +272,7 @@ FROM pa.lehreinheit_id, lv.lehrveranstaltung_id, lv.bezeichnung AS "lv_bezeichnung", - pa.projektarbeit_id AS "projektarbeit_id", + pa.projektarbeit_id::text AS "projektarbeit_id", le.studiensemester_kurzbz, stg.studiengang_kz, upper(stg.typ || stg.kurzbz) AS "stg_typ_kurzbz",