From b7d5fef30a4a852444332451aeda7c5c62d5e901 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 16 Jun 2021 08:03:54 +0200 Subject: [PATCH 001/227] nachrichten wegschicken auch wenn die Sprache nicht gefunden wurde --- application/libraries/VorlageLib.php | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/application/libraries/VorlageLib.php b/application/libraries/VorlageLib.php index 9679dff1c..d8d443a41 100644 --- a/application/libraries/VorlageLib.php +++ b/application/libraries/VorlageLib.php @@ -114,7 +114,7 @@ class VorlageLib if (!hasData($vorlage)) { // Builds where clause - $where = $this->_where($vorlage_kurzbz, $orgform_kurzbz, $sprache); + $where = $this->_where($vorlage_kurzbz); $vorlage = $this->ci->organisationseinheitlib->treeSearch( 'public', @@ -134,20 +134,11 @@ class VorlageLib /** * _where */ - private function _where($vorlage_kurzbz, $orgform_kurzbz, $sprache) + private function _where($vorlage_kurzbz) { // Builds where clause $where = "vorlage_kurzbz = ".$this->ci->VorlageModel->escape($vorlage_kurzbz); - if (is_null($sprache)) - { - $where .= " AND sprache IS NULL"; - } - else - { - $where .= " AND sprache = ".$this->ci->VorlageModel->escape($sprache); - } - $where .= " AND aktiv = true"; return $where; From dc5ca70645bb92047975e3e96f2881474db1410c Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Fri, 20 Aug 2021 13:55:13 +0200 Subject: [PATCH 002/227] Create zgvdoktor.rdf.php ZGV Doktor und zgv_erfuellt --- rdf/zgvdoktor.rdf.php | 79 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 rdf/zgvdoktor.rdf.php diff --git a/rdf/zgvdoktor.rdf.php b/rdf/zgvdoktor.rdf.php new file mode 100644 index 000000000..dc0b38ff7 --- /dev/null +++ b/rdf/zgvdoktor.rdf.php @@ -0,0 +1,79 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +// header fr no cache +header("Cache-Control: no-cache"); +header("Cache-Control: post-check=0, pre-check=0",false); +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/xhtml+xml"); + +echo ''; +require_once('../config/vilesci.config.inc.php'); +require_once('../include/basis_db.class.php'); + +$rdf_url='http://www.technikum-wien.at/zgvdoktor'; + +?> + + + + + + + + + + -- keine Auswahl -- + -- keine Auswahl -- + + +'; +} +$qry = 'SELECT * FROM bis.tbl_zgvdoktor ORDER BY zgvdoktor_code'; +$db = new basis_db(); + +if($db->db_query($qry)) +{ + while($row = $db->db_fetch_object()) + { +?> + + + zgvdoktor_code; ?>]]> + zgvdoktor_bez; ?>]]> + zgvdoktor_kurzbz; ?>]]> + + + + + \ No newline at end of file From 713374f4d867ef1404807f79d20d2f40e53ec81c Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Fri, 20 Aug 2021 13:59:16 +0200 Subject: [PATCH 003/227] ZGV Doktor und zgv_erfuellt --- rdf/student.rdf.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index 3771f7d5e..ae2016aea 100644 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -126,14 +126,16 @@ function checkfilter($row, $filter2, $buchungstyp = null) elseif($filter2=='zgvohnedatum') { //Alle Personen die den ZGV Typ eingetragen haben aber noch kein Datum - $qry = "SELECT zgv_code, zgvdatum, zgvmas_code, zgvmadatum + $qry = "SELECT zgv_code, zgvdatum, zgvmas_code, zgvmadatum,zgvdoktor_code, zgvdoktordatum FROM public.tbl_prestudent WHERE prestudent_id=".$db->db_add_param($row->prestudent_id); if($db->db_query($qry)) { if($row_filter = $db->db_fetch_object()) { if(($row_filter->zgv_code!='' && $row_filter->zgvdatum=='') - || ($row_filter->zgvmas_code!='' && $row_filter->zgvmadatum=='')) + || ($row_filter->zgvmas_code!='' && $row_filter->zgvmadatum=='') + || ($row_filter->zgvdoktor_code!='' && $row_filter->zgvdoktordatum=='') + ) return true; else return false; @@ -352,11 +354,18 @@ function draw_prestudent($row) convertISODate($row->zgvdatum).']]> zgvdatum.']]> zgvnation.']]> + zgv_erfuellt.']]> zgvmas_code.']]> zgvmaort.']]> convertISODate($row->zgvmadatum).']]> zgvmadatum.']]> zgvmanation.']]> + zgvmas_erfuellt.']]> + zgvdoktor_code.']]> + zgvdoktorort.']]> + convertISODate($row->zgvdoktordatum).']]> + zgvdoktordatum.']]> + zgvdoktornation.']]> zgvdoktor_erfuellt.']]> ausstellungsstaat.']]> aufnahmeschluessel.']]> facheinschlberuf?'true':'false').']]> From ced3f0f97858f6e9f168e40f1d8d4c8d1648ad58 Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Fri, 20 Aug 2021 14:04:43 +0200 Subject: [PATCH 004/227] ZGV Doktor und zgv_erfuellt --- rdf/prestudent.rdf.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/rdf/prestudent.rdf.php b/rdf/prestudent.rdf.php index bc7c17036..b7b8aa6d9 100644 --- a/rdf/prestudent.rdf.php +++ b/rdf/prestudent.rdf.php @@ -68,11 +68,19 @@ if(isset($_GET['prestudent_id']) && is_numeric($_GET['prestudent_id'])) zgvdatum; ?>]]> convertISODate($prestd->zgvdatum); ?>]]> zgvnation; ?>]]> + zgv_erfuellt; ?>]]> zgvmas_code; ?>]]> zgvmaort; ?>]]> zgvmadatum; ?>]]> convertISODate($prestd->zgvmadatum); ?>]]> zgvmanation; ?>]]> + zgvmas_erfuellt; ?>]]> + zgvdoktor_code; ?>]]> + zgvdoktorort; ?>]]> + zgvdoktordatum; ?>]]> + convertISODate($prestd->zgvdoktordatum); ?>]]> + zgvdoktornation; ?>]]> + zgvdoktor_erfuellt; ?>]]> aufnahmeschluessel; ?>]]> facheinschlberuf?'true':'false'); ?>]]> reihungstest_id; ?>]]> From cf0957f8a494126561095503d1f8f618cf9b82db Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Fri, 20 Aug 2021 14:10:37 +0200 Subject: [PATCH 005/227] ZGV Doktor und zgv_erfuellt --- content/student/studentdetailoverlay.xul.php | 64 ++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php index 18e69874e..7771c17cb 100644 --- a/content/student/studentdetailoverlay.xul.php +++ b/content/student/studentdetailoverlay.xul.php @@ -294,6 +294,8 @@ echo ''; + + @@ -332,6 +334,14 @@ echo ''; + + + + + + From 8423b3e30af659d28ef2bf45d368987e26681d46 Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Fri, 20 Aug 2021 14:21:10 +0200 Subject: [PATCH 006/227] ZGV Doktor und zgv_erfuellt --- content/student/studentoverlay.js.php | 56 ++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/content/student/studentoverlay.js.php b/content/student/studentoverlay.js.php index f034ae473..fa142d8fa 100644 --- a/content/student/studentoverlay.js.php +++ b/content/student/studentoverlay.js.php @@ -1137,10 +1137,18 @@ function StudentAuswahl() zgvort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvort" )); zgvnation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvnation" )); zgvdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdatum" )); + zgv_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgv_erfuellt" )); zgvmaster_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmas_code" )); zgvmasterort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmaort" )); zgvmasternation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmanation" )); - zgvmasterdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmadatum" )); + zgvmasterdatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmadatum" )); + zgvmas_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvmas_erfuellt" )); + zgvdoktor_code = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktor_code" )); + zgvdoktorort = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktorort" )); + zgvdoktornation = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktornation" )); + zgvdoktordatum = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktordatum" )); + zgvdoktor_erfuellt = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#zgvdoktor_erfuellt" )); + aufnahmeschluessel = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#aufnahmeschluessel" )); facheinschlberuf = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#facheinschlberuf" )); bismelden = getTargetHelper(dsource,subject,rdfService.GetResource( predicateNS + "#bismelden" )); @@ -1157,10 +1165,26 @@ function StudentAuswahl() document.getElementById('student-prestudent-textbox-zgvort').value=zgvort; MenulistSelectItemOnValue('student-prestudent-menulist-zgvnation', zgvnation); document.getElementById('student-prestudent-textbox-zgvdatum').value=zgvdatum; + if(zgv_erfuellt=='t') + document.getElementById('student-prestudent-checkbox-zgverfuellt').checked=true; + else + document.getElementById('student-prestudent-checkbox-zgverfuellt').checked=false; document.getElementById('student-prestudent-menulist-zgvmastercode').value=zgvmaster_code; document.getElementById('student-prestudent-textbox-zgvmasterort').value=zgvmasterort; MenulistSelectItemOnValue('student-prestudent-menulist-zgvmasternation', zgvmasternation); document.getElementById('student-prestudent-textbox-zgvmasterdatum').value=zgvmasterdatum; + if(zgvmas_erfuellt=='t') + document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked=true; + else + document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked=false; + document.getElementById('student-prestudent-menulist-zgvdoktorcode').value=zgvdoktor_code; + document.getElementById('student-prestudent-textbox-zgvdoktorort').value=zgvdoktorort; + MenulistSelectItemOnValue('student-prestudent-menulist-zgvdoktornation', zgvdoktornation); + document.getElementById('student-prestudent-textbox-zgvdoktordatum').value=zgvdoktordatum; + if(zgvdoktor_erfuellt=='t') + document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked=true; + else + document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked=false; document.getElementById('student-prestudent-menulist-aufnahmeschluessel').value=aufnahmeschluessel; if(facheinschlberuf=='true') document.getElementById('student-prestudent-checkbox-facheinschlberuf').checked=true; @@ -1694,10 +1718,18 @@ function StudentPrestudentDisableFields(val) document.getElementById('student-prestudent-textbox-zgvort').disabled=val; document.getElementById('student-prestudent-menulist-zgvnation').disabled=val; document.getElementById('student-prestudent-textbox-zgvdatum').disabled=val; + document.getElementById('student-prestudent-checkbox-zgverfuellt').disabled=val; document.getElementById('student-prestudent-menulist-zgvmastercode').disabled=val; document.getElementById('student-prestudent-textbox-zgvmasterort').disabled=val; document.getElementById('student-prestudent-menulist-zgvmasternation').disabled=val; document.getElementById('student-prestudent-textbox-zgvmasterdatum').disabled=val; + document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').disabled=val; + document.getElementById('student-prestudent-menulist-zgvdoktorcode').disabled=val; + document.getElementById('student-prestudent-textbox-zgvdoktorort').disabled=val; + document.getElementById('student-prestudent-menulist-zgvdoktornation').disabled=val; + document.getElementById('student-prestudent-textbox-zgvdoktordatum').disabled=val; + document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').disabled=val; + document.getElementById('student-prestudent-menulist-aufnahmeschluessel').disabled=val; document.getElementById('student-prestudent-checkbox-facheinschlberuf').disabled=val; document.getElementById('student-prestudent-checkbox-bismelden').disabled=val; @@ -1763,10 +1795,18 @@ function StudentPrestudentSave() zgvort = document.getElementById('student-prestudent-textbox-zgvort').value; zgvnation = document.getElementById('student-prestudent-menulist-zgvnation').value; zgvdatum = document.getElementById('student-prestudent-textbox-zgvdatum').value; + zgv_erfuellt = document.getElementById('student-prestudent-checkbox-zgverfuellt').checked; zgvmaster_code = document.getElementById('student-prestudent-menulist-zgvmastercode').value; zgvmasterort = document.getElementById('student-prestudent-textbox-zgvmasterort').value; zgvmasternation = document.getElementById('student-prestudent-menulist-zgvmasternation').value; zgvmasterdatum = document.getElementById('student-prestudent-textbox-zgvmasterdatum').value; + zgvmas_erfuellt = document.getElementById('student-prestudent-checkbox-zgvmaserfuellt').checked; + zgvdoktor_code = document.getElementById('student-prestudent-menulist-zgvdoktorcode').value; + zgvdoktorort = document.getElementById('student-prestudent-textbox-zgvdoktorort').value; + zgvdoktornation = document.getElementById('student-prestudent-menulist-zgvdoktornation').value; + zgvdoktordatum = document.getElementById('student-prestudent-textbox-zgvdoktordatum').value; + zgvdoktor_erfuellt = document.getElementById('student-prestudent-checkbox-zgvdoktorerfuellt').checked; + aufnahmeschluessel = document.getElementById('student-prestudent-menulist-aufnahmeschluessel').value; facheinschlberuf = document.getElementById('student-prestudent-checkbox-facheinschlberuf').checked; bismelden = document.getElementById('student-prestudent-checkbox-bismelden').checked; @@ -1790,7 +1830,11 @@ function StudentPrestudentSave() alert('ZGVMaster Datum ist ungueltig'); return false; } - + if(zgvdoktordatum!='' && !CheckDatum(zgvdoktordatum)) + { + alert('ZGVDoktor Datum ist ungueltig'); + return false; + } var url = 'content/student/studentDBDML.php'; var req = new phpRequest(url,'',''); @@ -1809,10 +1853,18 @@ function StudentPrestudentSave() req.add('zgvort', zgvort); req.add('zgvnation', zgvnation); req.add('zgvdatum', ConvertDateToISO(zgvdatum)); + req.add('zgv_erfuellt', zgv_erfuellt); req.add('zgvmas_code', zgvmaster_code); req.add('zgvmaort', zgvmasterort); req.add('zgvmanation', zgvmasternation); req.add('zgvmadatum', ConvertDateToISO(zgvmasterdatum)); + req.add('zgvmas_erfuellt', zgvmas_erfuellt); + req.add('zgvdoktor_code', zgvdoktor_code); + req.add('zgvdoktorort', zgvdoktorort); + req.add('zgvdoktornation', zgvdoktornation); + req.add('zgvdoktordatum', ConvertDateToISO(zgvdoktordatum)); + req.add('zgvdoktor_erfuellt', zgvdoktor_erfuellt); + req.add('aufnahmeschluessel', aufnahmeschluessel); req.add('facheinschlberuf', facheinschlberuf); req.add('bismelden', bismelden); From ed43b03e378fa057bbd5d3245a586528e147bcc7 Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Fri, 20 Aug 2021 14:33:03 +0200 Subject: [PATCH 007/227] ZGV Doktor und zgv_erfuellt --- content/student/studentDBDML.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/content/student/studentDBDML.php b/content/student/studentDBDML.php index 79e330c7f..6aa407c5e 100644 --- a/content/student/studentDBDML.php +++ b/content/student/studentDBDML.php @@ -365,6 +365,7 @@ if(!$error) $error = true; $errormsg = 'Sie haben keine Schreibrechte fuer diesen Studiengang'; } + //Studentendaten speichern if(!$error) { @@ -384,7 +385,8 @@ if(!$error) $return = false; $errormsg = 'Geburtsdatum ist nicht korrekt.'; $error = true; - } + } + if(!$error) { $student->uid = $_POST['uid']; @@ -624,10 +626,17 @@ if(!$error) $prestudent->zgvort = $_POST['zgvort']; $prestudent->zgvdatum = $_POST['zgvdatum']; $prestudent->zgvnation = $_POST['zgvnation']; + $prestudent->zgv_erfuellt = $_POST['zgv_erfuellt']; $prestudent->zgvmas_code = $_POST['zgvmas_code']; $prestudent->zgvmaort = $_POST['zgvmaort']; $prestudent->zgvmadatum = $_POST['zgvmadatum']; $prestudent->zgvmanation = $_POST['zgvmanation']; + $prestudent->zgvmas_erfuellt = $_POST['zgvmas_erfuellt']; + $prestudent->zgvdoktor_code = $_POST['zgvdoktor_code']; + $prestudent->zgvdoktorort = $_POST['zgvdoktorort']; + $prestudent->zgvdoktordatum = $_POST['zgvdoktordatum']; + $prestudent->zgvdoktornation = $_POST['zgvdoktornation']; + $prestudent->zgvdoktor_erfuellt = $_POST['zgvdoktor_erfuellt']; $prestudent->aufnahmeschluessel = $_POST['aufnahmeschluessel']; $prestudent->facheinschlberuf = ($_POST['facheinschlberuf']=='true'?true:false); $prestudent->bismelden = ($_POST['bismelden']=='true'?true:false); @@ -2308,7 +2317,7 @@ if(!$error) { if ($dokument_kurzbz === 'Sonst' && $sonst !== 0) continue; - + if($dokument_kurzbz!='') { $dok = new dokument(); @@ -2321,6 +2330,7 @@ if(!$error) $dok->new = true; if ($dokument_kurzbz === 'Sonst') $sonst++; + if(!$dok->save()) { @@ -2515,7 +2525,6 @@ if(!$error) $dokumente = explode(';',$_POST['dokumente']); $errormsg = ''; $sonst = 0; - foreach ($dokumente as $dokument_kurzbz) { if ($dokument_kurzbz === 'Sonst' && $sonst !== 0) From 624b910edd9c396d47142d7508d3a2dd7783a8ac Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Fri, 20 Aug 2021 15:30:37 +0200 Subject: [PATCH 008/227] ZGV Doktor und zgv_erfuellt --- include/prestudent.class.php | 76 ++++++++++++++++++++++++++++-------- 1 file changed, 59 insertions(+), 17 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index eb8767883..8ff3a8724 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -44,10 +44,12 @@ class prestudent extends person public $zgvort; public $zgvdatum; public $zgvnation; + public $zgv_erfuellt; public $zgvmas_code; public $zgvmaort; public $zgvmadatum; public $zgvmanation; + public $zgvmas_erfuellt; public $ausstellungsstaat; public $aufnahmeschluessel; public $facheinschlberuf; @@ -68,6 +70,7 @@ class prestudent extends person public $zgvdoktorort; public $zgvdoktordatum; public $zgvdoktornation; + public $zgvdoktor_erfuellt; public $gsstudientyp_kurzbz='Intern'; public $aufnahmegruppe_kurzbz; public $priorisierung = null; @@ -137,10 +140,12 @@ class prestudent extends person $this->zgvort = $row->zgvort; $this->zgvdatum = $row->zgvdatum; $this->zgvnation = $row->zgvnation; + $this->zgv_erfuellt = $row->zgv_erfuellt; $this->zgvmas_code = $row->zgvmas_code; $this->zgvmaort = $row->zgvmaort; $this->zgvmadatum = $row->zgvmadatum; $this->zgvmanation = $row->zgvmanation; + $this->zgvmas_erfuellt = $row->zgvmas_erfuellt; $this->aufnahmeschluessel = $row->aufnahmeschluessel; $this->facheinschlberuf = $this->db_parse_bool($row->facheinschlberuf); $this->anmeldungreihungstest = $row->anmeldungreihungstest; @@ -161,6 +166,7 @@ class prestudent extends person $this->zgvdoktorort = $row->zgvdoktorort; $this->zgvdoktordatum = $row->zgvdoktordatum; $this->zgvdoktornation = $row->zgvdoktornation; + $this->zgvdoktor_erfuellt = $row->zgvdoktor_erfuellt; $this->gsstudientyp_kurzbz = $row->gsstudientyp_kurzbz; $this->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz; $this->priorisierung = $row->priorisierung; @@ -220,6 +226,11 @@ class prestudent extends person $this->errormsg = 'ZGV Master Ort darf nicht länger als 64 Zeichen sein.'; return false; } + if(mb_strlen($this->zgvdoktorort)>64) + { + $this->errormsg = 'ZGV Doktor Ort darf nicht länger als 64 Zeichen sein.'; + return false; + } return true; } @@ -245,12 +256,13 @@ class prestudent extends person if($this->new) //Wenn new true ist dann ein INSERT absetzen ansonsten ein UPDATE { $qry = 'BEGIN;INSERT INTO public.tbl_prestudent (aufmerksamdurch_kurzbz, person_id, - studiengang_kz, berufstaetigkeit_code, ausbildungcode, zgv_code, zgvort, zgvdatum, zgvnation, - zgvmas_code, zgvmaort, zgvmadatum, zgvmanation, aufnahmeschluessel, facheinschlberuf, + studiengang_kz, berufstaetigkeit_code, ausbildungcode, zgv_code, zgvort, zgvdatum, zgvnation, zgv_erfuellt, + zgvmas_code, zgvmaort, zgvmadatum, zgvmanation, zgvmas_erfuellt, zgvdoktor_code, zgvdoktorort, zgvdoktordatum, + zgvdoktornation,aufnahmeschluessel, facheinschlberuf, reihungstest_id, anmeldungreihungstest, reihungstestangetreten, rt_gesamtpunkte, rt_punkte1, rt_punkte2, rt_punkte3, bismelden, insertamum, insertvon, updateamum, updatevon, anmerkung, dual, ausstellungsstaat, mentor, - gsstudientyp_kurzbz, aufnahmegruppe_kurzbz, priorisierung) VALUES('. + gsstudientyp_kurzbz, aufnahmegruppe_kurzbz, priorisierung,zgvdoktor_erfuellt) VALUES('. $this->db_add_param($this->aufmerksamdurch_kurzbz).",". $this->db_add_param($this->person_id).",". $this->db_add_param($this->studiengang_kz).",". @@ -260,10 +272,16 @@ class prestudent extends person $this->db_add_param($this->zgvort).",". $this->db_add_param($this->zgvdatum).",". $this->db_add_param($this->zgvnation).",". + $this->db_add_param($this->zgv_erfuellt).",". $this->db_add_param($this->zgvmas_code).",". $this->db_add_param($this->zgvmaort).",". $this->db_add_param($this->zgvmadatum).",". $this->db_add_param($this->zgvmanation).",". + $this->db_add_param($this->zgvmas_erfuellt).",". + $this->db_add_param($this->zgvdoktor_code).",". + $this->db_add_param($this->zgvdoktorort).",". + $this->db_add_param($this->zgvdoktordatum).",". + $this->db_add_param($this->zgvdoktornation).",". $this->db_add_param($this->aufnahmeschluessel).",". $this->db_add_param($this->facheinschlberuf, FHC_BOOLEAN).",". $this->db_add_param($this->reihungstest_id).",". @@ -284,7 +302,8 @@ class prestudent extends person $this->db_add_param($this->mentor).",". $this->db_add_param($this->gsstudientyp_kurzbz).",". $this->db_add_param($this->aufnahmegruppe_kurzbz).",". - $this->db_add_param($this->priorisierung).");"; + $this->db_add_param($this->priorisierung).",". + $this->db_add_param($this->zgvdoktor_erfuellt).");"; } else { @@ -298,10 +317,16 @@ class prestudent extends person ' zgvort='.$this->db_add_param($this->zgvort).",". ' zgvdatum='.$this->db_add_param($this->zgvdatum).",". ' zgvnation='.$this->db_add_param($this->zgvnation).",". + ' zgv_erfuellt='.$this->db_add_param($this->zgv_erfuellt).",". ' zgvmas_code='.$this->db_add_param($this->zgvmas_code).",". ' zgvmaort='.$this->db_add_param($this->zgvmaort).",". ' zgvmadatum='.$this->db_add_param($this->zgvmadatum).",". ' zgvmanation='.$this->db_add_param($this->zgvmanation).",". + ' zgvmas_erfuellt='.$this->db_add_param($this->zgvmas_erfuellt).",". + ' zgvdoktor_code='.$this->db_add_param($this->zgvdoktor_code).",". + ' zgvdoktorort='.$this->db_add_param($this->zgvdoktorort).",". + ' zgvdoktordatum='.$this->db_add_param($this->zgvdoktordatum).",". + ' zgvdoktornation='.$this->db_add_param($this->zgvdoktornation).",". ' aufnahmeschluessel='.$this->db_add_param($this->aufnahmeschluessel).",". ' facheinschlberuf='.$this->db_add_param($this->facheinschlberuf, FHC_BOOLEAN).",". ' reihungstest_id='.$this->db_add_param($this->reihungstest_id).",". @@ -320,7 +345,8 @@ class prestudent extends person ' dual='.$this->db_add_param($this->dual, FHC_BOOLEAN).",". ' ausstellungsstaat='.$this->db_add_param($this->ausstellungsstaat).",". ' aufnahmegruppe_kurzbz='.$this->db_add_param($this->aufnahmegruppe_kurzbz).",". - ' priorisierung='.$this->db_add_param($this->priorisierung).' '. + ' priorisierung='.$this->db_add_param($this->priorisierung).",". + ' zgvdoktor_erfuellt='.$this->db_add_param($this->zgvdoktor_erfuellt).' '. " WHERE prestudent_id=".$this->db_add_param($this->prestudent_id).";"; } @@ -796,10 +822,12 @@ class prestudent extends person case "zgv": $stg_obj = new studiengang(); $stg_obj->load($studiengang_kz); - if($stg_obj->typ=='m') - $qry.=" AND a.rolle='Interessent' AND a.zgvmas_code is not null"; + if($stg_obj->typ=='m') + $qry.=" AND a.rolle='Interessent' AND a.zgvmas_code is not null AND a.zgvmas_erfuellt = 't'"; + elseif($stg_obj->typ=='p') + $qry.=" AND a.rolle='Interessent' AND a.zgvdoktor_code is not null AND a.zgvdoktor_erfuellt = 't'"; else - $qry.=" AND a.rolle='Interessent' AND a.zgv_code is not null"; + $qry.=" AND a.rolle='Interessent' AND a.zgv_code is not null AND a.zgv_erfuellt = 't'"; break; case "reihungstestangemeldet": $qry.=" @@ -896,10 +924,17 @@ class prestudent extends person $ps->zgvort = $row->zgvort; $ps->zgvdatum = $row->zgvdatum; $ps->zgvnation = $row->zgvnation; + $ps->zgv_erfuellt = $row->zgv_erfuellt; $ps->zgvmas_code = $row->zgvmas_code; $ps->zgvmaort = $row->zgvmaort; $ps->zgvmadatum = $row->zgvmadatum; $ps->zgvmanation = $row->zgvmanation; + $ps->zgvmas_erfuellt = $row->zgvmas_erfuellt; + $ps->zgvdoktor_code = $row->zgvdoktor_code; + $ps->zgvdoktorort = $row->zgvdoktorort; + $ps->zgvdoktordatum = $row->zgvdoktordatum; + $ps->zgvdoktornation = $row->zgvdoktornation; + $ps->zgvdoktor_erfuellt = $row->zgvdoktor_erfuellt; $ps->ausstellungsstaat = $row->ausstellungsstaat; $ps->aufnahmeschluessel = $row->aufnahmeschluessel; $ps->facheinschlberuf = $this->db_parse_bool($row->facheinschlberuf); @@ -1418,10 +1453,12 @@ class prestudent extends person $obj->zgvort = $row->zgvort; $obj->zgvdatum = $row->zgvdatum; $obj->zgvnation = $row->zgvnation; + $obj->zgv_erfuellt = $row->zgv_erfuellt; $obj->zgvmas_code = $row->zgvmas_code; $obj->zgvmaort = $row->zgvmaort; $obj->zgvmadatum = $row->zgvmadatum; $obj->zgvmanation = $row->zgvmanation; + $obj->zgvmas_erfuellt = $row->zgvmas_erfuellt; $obj->aufnahmeschluessel = $row->aufnahmeschluessel; $obj->facheinschlberuf = $this->db_parse_bool($row->facheinschlberuf); $obj->anmeldungreihungstest = $row->anmeldungreihungstest; @@ -1441,11 +1478,12 @@ class prestudent extends person $obj->zgvdoktor_code = $row->zgvdoktor_code; $obj->zgvdoktorort = $row->zgvdoktorort; $obj->zgvdoktordatum = $row->zgvdoktordatum; - $obj->zgvdoktornation = $row->zgvdoktornation; + $obj->zgvdoktornation = $row->zgvdoktornation; $obj->gsstudientyp_kurzbz = $row->gsstudientyp_kurzbz; $obj->aufnahmegruppe_kurzbz = $row->aufnahmegruppe_kurzbz; $obj->priorisierung = $row->priorisierung; - + $obj->zgvdoktor_erfuellt = $row->zgvdoktor_erfuellt; + $this->result[] = $obj; } return true; @@ -1468,7 +1506,7 @@ class prestudent extends person ( 'bachelor' => array(), 'master' => array(), - //'doktor' => array(), + 'doktor' => array(), ); $attribute = array ( @@ -2065,11 +2103,11 @@ class prestudent extends person $log->sql = $qry; $log->sqlundo = 'INSERT INTO public.tbl_prestudent( prestudent_id, aufmerksamdurch_kurzbz, studiengang_kz, berufstaetigkeit_code, ausbildungcode, - zgv_code, zgvort, zgvdatum, zgvnation, zgvmas_code, zgvmaort, zgvmadatum, zgvmanation, + zgv_code, zgvort, zgvdatum, zgvnation,zgv_erfuellt, zgvmas_code, zgvmaort, zgvmadatum, zgvmanation,zgvmas_erfuellt, aufnahmeschluessel, facheinschlberuf, anmeldungreihungstest, reihungstestangetreten, reihungstest_id, punkte, rt_punkte1, rt_punkte2, rt_punkte3, bismelden, person_id, anmerkung, mentor, ext_id_prestudent, dual, ausstellungsstaat, zgvdoktor_code, zgvdoktorort, zgvdoktordatum, zgvdoktornation, - gsstudientyp_kurzbz, aufnahmegruppe_kurzbz, priorisierung) VALUES('. + gsstudientyp_kurzbz, aufnahmegruppe_kurzbz, priorisierung,zgvdoktor_erfuellt) VALUES('. $this->db_add_param($this->prestudent_id).','. $this->db_add_param($this->aufmerksamdurch_kurzbz).','. $this->db_add_param($this->studiengang_kz).','. @@ -2079,10 +2117,12 @@ class prestudent extends person $this->db_add_param($this->zgvort).','. $this->db_add_param($this->zgvdatum).','. $this->db_add_param($this->zgvnation).','. + $this->db_add_param($this->zgv_erfuellt).','. $this->db_add_param($this->zgvmas_code).','. $this->db_add_param($this->zgvmaort).','. $this->db_add_param($this->zgvmadatum).','. $this->db_add_param($this->zgvmanation).','. + $this->db_add_param($this->zgvmas_erfuellt).','. $this->db_add_param($this->aufnahmeschluessel).','. $this->db_add_param($this->facheinschlberuf, FHC_BOOLEAN).','. $this->db_add_param($this->anmeldungreihungstest).','. @@ -2105,7 +2145,8 @@ class prestudent extends person $this->db_add_param($this->zgvdoktornation).','. $this->db_add_param($this->gsstudientyp_kurzbz).','. $this->db_add_param($this->aufnahmegruppe_kurzbz).','. - $this->db_add_param($this->priorisierung).');'; + $this->db_add_param($this->priorisierung).','. + $this->db_add_param($this->zgvdoktor_erfuellt).');'; if($log->save(true)) { @@ -2216,9 +2257,9 @@ class prestudent extends person WHERE laststatus NOT IN ('Abbrecher', 'Abgewiesener', 'Absolvent') AND priorisierung <= ".$this->db_add_param($priorisierungAbsolut, FHC_INTEGER); - if ($result = $this->db_query($qry)) + if($result = $this->db_query($qry)) { - if ($row = $this->db_fetch_object($result)) + if($row = $this->db_fetch_object($result)) { return $row->prio_relativ; } @@ -2233,8 +2274,9 @@ class prestudent extends person $this->errormsg = 'Fehler beim Laden der Daten'; return false; } - } + + } /** * Prueft, ob eine Person einen aktuellen PreStudentstatus-Eintrag besitzt, der die ZGV Master ersetzt * @param int $person_id ID der zu überprüfenden Person. From a6d83ef321ed4fdb0f777a2866426a63b825d0cc Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Fri, 20 Aug 2021 15:39:36 +0200 Subject: [PATCH 009/227] ZGV Doktor und zgv_erfuellt --- system/dbupdate_3.3.php | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 7e0aefe09..ba6852747 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -2567,7 +2567,6 @@ if(!@$db->db_query("SELECT zeitaufzeichnungspflichtig FROM bis.tbl_bisverwendung . "
Fix angestellte Mitarbeiter auf true gesetzt, alle anderen auf false"; } - // Spalte Priorisierung für tbl_prestudent if(!$result = @$db->db_query("SELECT priorisierung FROM public.tbl_prestudent LIMIT 1")) { @@ -2579,6 +2578,40 @@ if(!$result = @$db->db_query("SELECT priorisierung FROM public.tbl_prestudent LI echo '
public.tbl_prestudent: Spalte priorisierung hinzugefuegt'; } +// Spalte zgv_erfuellt für tbl_prestudent +if(!$result = @$db->db_query("SELECT zgv_erfuellt FROM public.tbl_prestudent LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgv_erfuellt boolean default false;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; + else + echo '
public.tbl_prestudent: Spalte zgv_erfuellt hinzugefuegt'; +} + +// Spalte zgvmas_erfuellt für tbl_prestudent +if(!$result = @$db->db_query("SELECT zgvmas_erfuellt FROM public.tbl_prestudent LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgvmas_erfuellt boolean default false;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; + else + echo '
public.tbl_prestudent: Spalte zgvmas_erfuellt hinzugefuegt'; +} + +// Spalte zgvdoktor_erfuellt für tbl_prestudent +if(!$result = @$db->db_query("SELECT zgvdoktor_erfuellt FROM public.tbl_prestudent LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgvdoktor_erfuellt boolean default false;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; + else + echo '
public.tbl_prestudent: Spalte zgvdoktor_erfuellt hinzugefuegt'; +} + + // Spalte lieferant in tbl_firma if(!$result = @$db->db_query("SELECT lieferant FROM public.tbl_firma LIMIT 1")) { @@ -5145,7 +5178,7 @@ $tabellen=array( "public.tbl_preoutgoing_lehrveranstaltung" => array("preoutgoing_lehrveranstaltung_id","preoutgoing_id","bezeichnung","ects","endversion","insertamum","insertvon","updateamum","updatevon","wochenstunden","unitcode"), "public.tbl_preoutgoing_preoutgoing_status" => array("status_id","preoutgoing_status_kurzbz","preoutgoing_id","datum","insertamum","insertvon","updateamum","updatevon"), "public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"), - "public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung"), + "public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung","zgv_erfuellt","zgvmas_erfuellt","zgvdoktor_erfuellt"), "public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum","rt_stufe","statusgrund_id"), "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"), "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz","aufnahmegruppe_kurzbz","stufe","anmeldefrist"), @@ -5299,4 +5332,4 @@ if (!$result=@$db->db_query($sql_query)) } if($error==false) echo '
Gegenpruefung fehlerfrei'; -?> +?> \ No newline at end of file From b7c22ac56fb254ed3fc556d70884dabffe45d1e0 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Mon, 6 Sep 2021 12:25:29 +0200 Subject: [PATCH 010/227] Fixed: Now including correctly config start- and enddate Signed-off-by: cris-technikum --- .../controllers/lehre/anrechnung/RequestAnrechnung.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php index 45a770cf5..306ce5841 100644 --- a/application/controllers/lehre/anrechnung/RequestAnrechnung.php +++ b/application/controllers/lehre/anrechnung/RequestAnrechnung.php @@ -80,7 +80,7 @@ class requestAnrechnung extends Auth_Controller $prestudent_id = getData($result)[0]->prestudent_id; // Check if application deadline is expired - $is_expired = self::_checkAntragDeadline( + $is_expired = self::_isExpired( $this->config->item('submit_application_start'), $this->config->item('submit_application_end'), $studiensemester_kurzbz @@ -226,10 +226,10 @@ class requestAnrechnung extends Auth_Controller * @param $start Start date for application submission. * @param $ende End date for application submission. * @param $studiensemester_kurzbz - * @return bool True if today is not during the start- and ending deadlines (= if is expired) + * @return bool True if deadline is expired * @throws Exception */ - private function _checkAntragDeadline($start, $ende, $studiensemester_kurzbz) + private function _isExpired($start, $ende, $studiensemester_kurzbz) { $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); @@ -253,8 +253,8 @@ class requestAnrechnung extends Auth_Controller $start = new DateTime($start); $ende = new DateTime($ende); - // True if today is not during the start- and ending deadlines (= if is expired) - return ($today <= $start || $today >= $ende); + // True if expired + return ($today < $start || $today > $ende); } /** From 4f46476f877ec9c851446383b4c037d117cfc846 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Mon, 6 Sep 2021 12:56:43 +0200 Subject: [PATCH 011/227] Fixed: Now entitlement checked for all STGL. Also added hasData checks. Before only the first returning STGL was checked for entitlement. Also added hasData checks to avoid using getData on NULL values. Signed-off-by: cris-technikum --- .../anrechnung/ApproveAnrechnungDetail.php | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php index d76c0d79b..209ad75b9 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungDetail.php @@ -412,28 +412,31 @@ class approveAnrechnungDetail extends Auth_Controller { $result = $this->AnrechnungModel->load($anrechnung_id); - if(!$result = getData($result)[0]) + if(!hasData($result)) { show_error('Failed loading Anrechnung'); } - + $result = $this->LehrveranstaltungModel->loadWhere(array( - 'lehrveranstaltung_id' => $result->lehrveranstaltung_id + 'lehrveranstaltung_id' => getData($result)[0]->lehrveranstaltung_id )); - if(!$result = getData($result)[0]) + if(!hasData($result)) { show_error('Failed loading Lehrveranstaltung'); } // Get STGL - $result = $this->StudiengangModel->getLeitung($result->studiengang_kz); - - if($result = getData($result)[0]) + $result = $this->StudiengangModel->getLeitung(getData($result)[0]->studiengang_kz); + + if (hasData($result)) { - if ($result->uid == $this->_uid) + foreach (getData($result) as $stgl) { - return; + if ($stgl->uid == $this->_uid) + { + return; + } } } From 2d755e82b47176f2aad46db29b44c15e1b2ce269 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Tue, 7 Sep 2021 14:36:06 +0200 Subject: [PATCH 012/227] Fixed: Added DB-Update Gegenchecks for new tables / columns in DB Signed-off-by: cris-technikum --- system/dbupdate_3.3.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 2bd3afed6..b60f09de4 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -5017,7 +5017,9 @@ $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"), + "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_anrechnungstatus" => array("status_kurzbz", "bezeichnung_mehrsprachig"), + "lehre.tbl_anrechnung_anrechnungstatus" => array("anrechnungstatus_id", "anrechnung_id", "status_kurzbz", "datum", "insertamum", "insertvon"), "lehre.tbl_anrechnung_begruendung" => array("begruendung_id","bezeichnung"), "lehre.tbl_betreuerart" => array("betreuerart_kurzbz","beschreibung","aktiv"), "lehre.tbl_ferien" => array("bezeichnung","studiengang_kz","vondatum","bisdatum"), From 4cfad06f2d459506b1d74f57e65296bc7273ca80 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Tue, 7 Sep 2021 14:37:39 +0200 Subject: [PATCH 013/227] Fixed: Added check to only add columns if no already present Signed-off-by: cris-technikum --- system/dbupdate_3.3.php | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index b60f09de4..caf562368 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4565,19 +4565,22 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants // Change genehmigt_von and begruendung_id to be NULLABLE if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung")) { - $qry = " - ALTER TABLE lehre.tbl_anrechnung ADD COLUMN dms_id bigint; - ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6); - ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text; - ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean; - - ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE; - - ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL; - 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_num_rows($result) == 0) + { + $qry = " + ALTER TABLE lehre.tbl_anrechnung ADD COLUMN dms_id bigint; + ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6); + ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text; + ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean; + + ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE; + + ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL; + 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)) From 0cf782601c7f851a1cad76702ae06004d628af4c Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 8 Sep 2021 15:40:17 +0200 Subject: [PATCH 014/227] =?UTF-8?q?Dropdown=20f=C3=BCr=20MA-Ansicht?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 76 +++++++++++++++++++++++--- 1 file changed, 68 insertions(+), 8 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 2a7939e17..0fd1f8e91 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1,5 +1,5 @@ * Gerald Raab * Alexei Karpenko + * Manuela Thamer */ require_once('../../../config/cis.config.inc.php'); require_once('../../../include/functions.inc.php'); @@ -55,26 +56,64 @@ if (!$db = new basis_db()) $user = get_uid(); + $passuid = false; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); -//Wenn User Administrator ist und UID uebergeben wurde, dann die Zeitaufzeichnung +$mas = new mitarbeiter(); +$mas->getUntergebene($user, true); +$untergebenen_arr = array(); +$untergebenen_arr = $mas->untergebene; + +//Wenn User Administrator ist und UID uebergeben wurde (bzw. Vorgesetzter ist und die übergebene UID von einem MA) dann die Zeitaufzeichnung //des uebergebenen Users anzeigen if(isset($_GET['uid'])) { - if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid')) + if($rechte->isBerechtigt('admin') || (in_array($_GET['uid'], $untergebenen_arr)) ) { $user = $_GET['uid']; + //$username = $_GET['uid']; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); $passuid = true; + // echo "Adminview"; + // + // if(in_array($user, $untergebenen_arr)) + // { + // echo "
" . $user . " ist ein/e Mitarbeiterin"; + // } + // echo "
"; } + // if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid')) + // { + // $user = $_GET['uid']; + // $rechte = new benutzerberechtigung(); + // $rechte->getBerechtigungen($user); + // $passuid = true; + // echo "Adminview"; + // + // // if(in_array($_GET['uid'], $untergebenen_arr)) + // // { + // // echo "
" . $_GET['uid'] . " ist ein/e Mitarbeiterin"; + // // } + // // echo "
"; + // } + // elseif(($rechte->isBerechtigt('mitarbeiter')) && in_array($_GET['uid'], $untergebenen_arr)) + // { + // echo "Vorgesetztenview"; + // $user = $_GET['uid']; + // $rechte = new benutzerberechtigung(); + // $rechte->getBerechtigungen($user); + // $passuid = true; + // } else { die($p->t('global/FuerDieseAktionBenoetigenSieAdministrationsrechte')); } } + + if($rechte->isBerechtigt('addon/casetimeGenerateXLS')) $export_xls = 'true'; else { @@ -516,7 +555,7 @@ echo ' } return true; } - + function resetProjekt() { $("#projekt").val(""); @@ -1130,8 +1169,27 @@ if($projekt->getProjekteMitarbeiter($user, true)) } echo '

'.$p->t("urlaubstool/meineZeitsperren").'

'; echo $p->t("zeitaufzeichnung/supportAnfragen"); - echo ' - + + //Dropdown timesheets Mitarbeiter + if ($untergebenen_arr) + { + $ben = new benutzer(); + echo " +

+ + "; + } + echo ' '; echo ' @@ -1499,6 +1557,7 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo ''; echo '
'; echo ''; + echo '
'; echo '

'.($alle===true?$p->t('zeitaufzeichnung/alleEintraege'):$p->t('zeitaufzeichnung/xTageAnsicht', array($angezeigte_tage))).'

'; if ($alle===true) @@ -1525,6 +1584,9 @@ if($projekt->getProjekteMitarbeiter($user, true)) //var_dump($dr->result); + + + if(count($za->result)>0) { //Uebersichtstabelle @@ -1669,8 +1731,6 @@ if($projekt->getProjekteMitarbeiter($user, true)) // echo ''.$datum->formatDatum($row->datum,'D d.m.Y').' '; //} - - } // Nach jeder Woche eine Summenzeile einfuegen und eine neue Tabelle beginnen $datumwoche = $datum_obj->formatDatum($row->datum, 'W'); From 87ba21cf950a62213b2645aa4585385a0f45a627 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 9 Sep 2021 10:08:41 +0200 Subject: [PATCH 015/227] Entfernen von Buttons und Links in der Vorgesetzten- und Adminview --- cis/private/tools/zeitaufzeichnung.php | 1227 ++++++++++++------------ 1 file changed, 605 insertions(+), 622 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 0fd1f8e91..b2fad730b 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -46,17 +46,16 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/benutzerberechtigung.class.php'); $sprache = getSprache(); -$p=new phrasen($sprache); +$p = new phrasen($sprache); $sprache_obj = new sprache(); $sprache_obj->load($sprache); -$sprache_index=$sprache_obj->index; +$sprache_index = $sprache_obj->index; if (!$db = new basis_db()) die($p->t("global/fehlerBeimOeffnenDerDatenbankverbindung")); $user = get_uid(); - $passuid = false; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); @@ -65,55 +64,27 @@ $mas = new mitarbeiter(); $mas->getUntergebene($user, true); $untergebenen_arr = array(); $untergebenen_arr = $mas->untergebene; +$adminView = false; -//Wenn User Administrator ist und UID uebergeben wurde (bzw. Vorgesetzter ist und die übergebene UID von einem MA) dann die Zeitaufzeichnung -//des uebergebenen Users anzeigen -if(isset($_GET['uid'])) +//Wenn User Administrator (bzw Vorgesetzter mit UID von MA) ist und UID uebergeben wurde +//dann die Zeitaufzeichnung des uebergebenen Users anzeigen +if (isset($_GET['uid'])) { - if($rechte->isBerechtigt('admin') || (in_array($_GET['uid'], $untergebenen_arr)) ) + if ($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid') || + (in_array($_GET['uid'], $untergebenen_arr))) { $user = $_GET['uid']; - //$username = $_GET['uid']; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); $passuid = true; - // echo "Adminview"; - // - // if(in_array($user, $untergebenen_arr)) - // { - // echo "
" . $user . " ist ein/e Mitarbeiterin"; - // } - // echo "
"; + $adminView = true; } - // if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid')) - // { - // $user = $_GET['uid']; - // $rechte = new benutzerberechtigung(); - // $rechte->getBerechtigungen($user); - // $passuid = true; - // echo "Adminview"; - // - // // if(in_array($_GET['uid'], $untergebenen_arr)) - // // { - // // echo "
" . $_GET['uid'] . " ist ein/e Mitarbeiterin"; - // // } - // // echo "
"; - // } - // elseif(($rechte->isBerechtigt('mitarbeiter')) && in_array($_GET['uid'], $untergebenen_arr)) - // { - // echo "Vorgesetztenview"; - // $user = $_GET['uid']; - // $rechte = new benutzerberechtigung(); - // $rechte->getBerechtigungen($user); - // $passuid = true; - // } else { die($p->t('global/FuerDieseAktionBenoetigenSieAdministrationsrechte')); } } - if($rechte->isBerechtigt('addon/casetimeGenerateXLS')) $export_xls = 'true'; else { @@ -1155,166 +1126,194 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo " | ".$p->t("zeitaufzeichnung/projektexport").""; echo " "; - if ($p->t("dms_link/handbuchZeitaufzeichnung")!='') - { - // An der FHTW wird ins Moodle verlinkt - if (CAMPUS_NAME == 'FH Technikum Wien') - echo '

'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'

'; - else - echo '

'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'

'; - } - if ($p->t("dms_link/fiktiveNormalarbeitszeit")!='') - { - echo '

'.$p->t("zeitaufzeichnung/fiktiveNormalarbeitszeit").'

'; - } - echo '

'.$p->t("urlaubstool/meineZeitsperren").'

'; - echo $p->t("zeitaufzeichnung/supportAnfragen"); - - //Dropdown timesheets Mitarbeiter - if ($untergebenen_arr) - { - $ben = new benutzer(); - echo " -

- - "; - } - echo ' - '; - echo ' - - '; - - echo ''; + echo '\n"; - echo " \n"; - echo " \n"; + + if (!$adminView) + { + if(!isset($_GET['filter']) && ($row->uid==$user && $row->datum > $sperrdatum)) + echo ''.$p->t("global/bearbeiten").''; + } + echo "\n"; + echo " \n"; + echo " \n"; if (($tagesbeginn=='' || $datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s')) > $datum->mktime_fromtimestamp($datum->formatDatum($row->start, $format='Y-m-d H:i:s'))) && $row->aktivitaet_kurzbz != 'LehreExtern' && $row->aktivitaet_kurzbz != 'Ersatzruhe') $tagesbeginn = $row->start; From 7dcddb9d49f2465354ee9a5f8fc4cc4e7f44d105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Tue, 19 Oct 2021 13:52:00 +0200 Subject: [PATCH 041/227] Removed wrong comment --- cis/private/tools/zeitaufzeichnung.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 946001b3b..3b1d9af2a 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -2153,9 +2153,6 @@ function getZeitaufzeichnung($user, $von, $bis) * Exportiert Zeitaufzeichnungsdaten als CSV * @param $data Zeitaufzeichnungsdaten * @param string $delimiter CSV-Trennzeichen - * @param $fieldheadings Namen der Spaltenüberschriften - * @param bool $za_simple Zeitaufzeichnung lang (für Infrastrukturmitarbeiter) oder kurz (simple) - * @param $uid Id des Users für CSV-Filenamen "zeitaufzeichnung_uid" */ function exportProjectOverviewAsCSV($user, $delimiter = ',') { From 3f90efaed2be5155fd6aab62e0bf8e515a3dc583 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 19 Oct 2021 14:54:39 +0200 Subject: [PATCH 042/227] Hinweis: Pause fehlt bei AllIn eingetragen --- cis/private/tools/zeitaufzeichnung.php | 32 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index fcf3dd811..724323f4c 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -762,7 +762,6 @@ echo ' else { $("#homeofficeBlock").hide(); - } } }); @@ -932,12 +931,8 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $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 @@ -1800,10 +1795,29 @@ if ($projekt->getProjekteMitarbeiter($user, true)) $tagessaldo = $tagessaldo-$pausesumme; // fehlende Pausen berechnen $pausefehlt_str = ''; - if ($tagessaldo > 19800 && $pausesumme < 1800) - $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; - elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000) - $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; + + //Prüfung auf azgrelevant + $azgrelevant = false; + $verwendung = new bisverwendung(); + + $verwendung->getVerwendungDatum($user, $datum->formatDatum($tag, 'Y-m-d')); + $azgrelevant = true; + foreach ($verwendung->result as $v) + { + if ($v->azgrelevant) + { + $azgrelevant = false; + } + } + + if ($tagessaldo > 19800 && $pausesumme < 1800 && !$azgrelevant) + $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; + elseif ($tagessaldo > 19800 && $pausesumme < 1800 && $azgrelevant) + $pausefehlt_str = '-- Hinweis: Pause fehlt --'; + elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000 && !$azgrelevant) + $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; + elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000 && $azgrelevant) + $pausefehlt_str = '-- Hinweis: Pause fehlt --'; $tagessaldo = date('H:i', ($tagessaldo)); From 4fb4b72b26c0cee617c9a856c0d36932a47c3c63 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 22 Oct 2021 10:39:48 +0200 Subject: [PATCH 043/227] =?UTF-8?q?Hinweis-=20und=20Warnsymbol=20f=C3=BCr?= =?UTF-8?q?=20Pause=20fehlt=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 1d4bb418d..cfa2105cf 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1846,6 +1846,8 @@ if ($projekt->getProjekteMitarbeiter($user, true)) $verwendung->getVerwendungDatum($user, $datum->formatDatum($tag, 'Y-m-d')); $azgrelevant = true; + $linkExclamation = APP_ROOT. 'skin/images/exclamation.png'; + $linkInformation = APP_ROOT. 'skin/images/information.png'; foreach ($verwendung->result as $v) { if ($v->azgrelevant) @@ -1855,14 +1857,13 @@ if ($projekt->getProjekteMitarbeiter($user, true)) } if ($tagessaldo > 19800 && $pausesumme < 1800 && !$azgrelevant) - $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; + $pausefehlt_str = ' -- Pause fehlt oder zu kurz --'; elseif ($tagessaldo > 19800 && $pausesumme < 1800 && $azgrelevant) - $pausefehlt_str = '-- Hinweis: Pause fehlt --'; + $pausefehlt_str = ' -- Pause fehlt --'; elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000 && !$azgrelevant) - $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; + $pausefehlt_str = ' -- Pause fehlt oder zu kurz --'; elseif ($tagessaldo > 18000 && $tagessaldo < 19800 && $pausesumme < $tagessaldo - 18000 && $azgrelevant) - $pausefehlt_str = '-- Hinweis: Pause fehlt --'; - + $pausefehlt_str = ' -- Pause fehlt --'; $tagessaldo = date('H:i', ($tagessaldo)); $colspan = ($za_simple)?6:8; From e6ba6f9beabc74c3b8a3115653b0fbf7a1e48b80 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Fri, 22 Oct 2021 10:44:54 +0200 Subject: [PATCH 044/227] dropdown im fas angepasst --- content/student/studentprojektarbeit.js.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php index 66f52f15c..c30f7ea1c 100644 --- a/content/student/studentprojektarbeit.js.php +++ b/content/student/studentprojektarbeit.js.php @@ -652,11 +652,11 @@ function StudentProjektarbeitNeu() StudentProjektarbeitResetFields(); StudentProjektarbeitDetailDisableFields(false); StudentProjektbetreuerDisableFields(true); - var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value; + var student_uid = document.getElementById('student-detail-textbox-uid').value; //Lehrveranstaltung DropDown laden var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung'); - url='rdf/lehrveranstaltung.rdf.php?stg_kz='+stg_kz+"&projektarbeit=true&"+gettimestamp(); + url='rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&projektarbeit=true&"+gettimestamp(); //Alte DS entfernen var oldDatasources = LvDropDown.database.GetDataSources(); From 4e9eb12a71dccafce527114c6759bffe630cd29b Mon Sep 17 00:00:00 2001 From: ma0068 Date: Sat, 23 Oct 2021 10:40:05 +0200 Subject: [PATCH 045/227] =?UTF-8?q?Detailsicht:=20Parameteruebergabe=20uid?= =?UTF-8?q?=20f=C3=BCr=20Projekt-=20und=20Projekt=C3=BCbersichtexport?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 20 +++++++++++-------- .../tools/zeitaufzeichnung_projektliste.php | 11 +++++++--- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index cfa2105cf..10d2efdd7 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -182,7 +182,7 @@ if(isset($_POST['export'])) } //CSV export für Übersicht zugeteilter Projekte - Konflikt mit normalen HTML headern deshalb weiter vorne -if(isset($_POST['projektübersichtexport'])) +if(isset($_GET['projektübersichtexport'])) { exportProjectOverviewAsCSV($user, ','); } @@ -1275,13 +1275,19 @@ if ($projekt->getProjekteMitarbeiter($user, true)) echo "
'; - echo ''; - if (isset($_GET['projektexport'])) - { - $projektexpurl = dirname($_SERVER["PHP_SELF"]) .'/zeitaufzeichnung_projektliste.php'; - $aktjahr = intval(date("Y")); - $aktmonat = intval(date("m")) - 1; - $jahreanz = 3; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - if ($passuid) - echo ''; - echo ''; - echo ''; - echo ''; - } - - //Formular - echo '
'; - -/* echo '

'.$p->t('zeitaufzeichnung/projektexport').''.$p->t('zeitaufzeichnung/monat').' '.$p->t('zeitaufzeichnung/jahr').'

- - +
'; - echo '';*/ - if (isset($_GET['csvimport'])) - { - echo ''; - echo ''; - echo ''; - echo ''; - } + if ($p->t("dms_link/handbuchZeitaufzeichnung")!='') + { + // An der FHTW wird ins Moodle verlinkt + if (CAMPUS_NAME == 'FH Technikum Wien') + echo '

'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'

'; else - echo ''; + echo '

'.$p->t("zeitaufzeichnung/handbuchZeitaufzeichnung").'

'; + } + if ($p->t("dms_link/fiktiveNormalarbeitszeit")!='') + { + echo '

'.$p->t("zeitaufzeichnung/fiktiveNormalarbeitszeit").'

'; + } + echo '

'.$p->t("urlaubstool/meineZeitsperren").'

'; + echo $p->t("zeitaufzeichnung/supportAnfragen"); - if (isset($_GET['csvexport'])) + //Dropdown timesheets Mitarbeiter + if ($untergebenen_arr) + { + $ben = new benutzer(); + echo " +

+ + '; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - } - - if (isset($_GET['projektübersichtexport'])) - { - - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - - } - - //Aktivitaet - echo ''; - echo ''; - - - if($za_simple >= 0) + echo ""; + echo ""; + } + echo ' +

CSV-Import
Informationen zum Format der CSV-Datei s. Leitfaden Arbeitszeitaufzeichnung


CSV-Export'.$p->t('zeitaufzeichnung/startdatum').' '.$p->t('zeitaufzeichnung/enddatum').'


CSV-Export

'.$p->t("zeitaufzeichnung/aktivitaet").''; - //if ($za_simple == 1) - $qry = "SELECT * FROM fue.tbl_aktivitaet where aktivitaet_kurzbz in (".$activities_str.") ORDER by sort,beschreibung"; - //else - // $qry = "SELECT * FROM fue.tbl_aktivitaet where sort != 5 or sort is null ORDER by sort,beschreibung"; - if($result = $db->db_query($qry)) - { - echo ''; } - echo '
'; + echo ' + + '; - if (!$za_simple) - { - echo ''; - } - echo ''; - if (!$za_simple) - { - echo ' - '; - } - echo ' - - - - - '; + if (!$za_simple) + { + echo ''; + } + echo ''; + if (!$za_simple) + { + echo ' + '; + } + echo ' + + + + + '; } /** From ab4c7ee19480e89a97f6a564fd813e6f8602ab9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Wed, 15 Sep 2021 18:24:42 +0200 Subject: [PATCH 016/227] =?UTF-8?q?Limit=20beim=20Pr=C3=BCfen=20der=20Spal?= =?UTF-8?q?tenverf=C3=BCgbarkeit=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- system/dbupdate_3.3.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index caf562368..a12729383 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4563,7 +4563,7 @@ if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants // 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")) +if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung LIMIT 1")) { if($db->db_num_rows($result) == 0) { @@ -4572,10 +4572,10 @@ if(!$result = @$db->db_query("SELECT dms_id FROM lehre.tbl_anrechnung")) ALTER TABLE lehre.tbl_anrechnung ADD COLUMN studiensemester_kurzbz varchar(6); ALTER TABLE lehre.tbl_anrechnung ADD COLUMN anmerkung_student text; ALTER TABLE lehre.tbl_anrechnung ADD COLUMN empfehlung_anrechnung boolean; - + ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_studiensemester FOREIGN KEY (studiensemester_kurzbz) REFERENCES public.tbl_studiensemester(studiensemester_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE lehre.tbl_anrechnung ADD CONSTRAINT fk_anrechnung_dms FOREIGN KEY (dms_id) REFERENCES campus.tbl_dms(dms_id) ON DELETE RESTRICT ON UPDATE CASCADE; - + ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN genehmigt_von DROP NOT NULL; ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN begruendung_id DROP NOT NULL; ALTER TABLE lehre.tbl_anrechnung ALTER COLUMN insertamum SET DEFAULT NOW(); From 9d59fcbfbfda3c01a8c31381db29b1bba9f3cf1a Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Wed, 22 Sep 2021 10:34:06 +0200 Subject: [PATCH 017/227] change of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) --- system/dbupdate_3.3.php | 246 ++++++++++++++++++++++++++-------------- 1 file changed, 158 insertions(+), 88 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index ba6852747..1f7fff366 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -504,6 +504,38 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefung } } +// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) +if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) +{ + if($db->db_num_rows($result)>0) + { + $qry = " + ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note '.$db->db_last_error().'
'; + else + echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; + } +} + +// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) +if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) +{ + if($db->db_num_rows($result)>0) + { + $qry = " + ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note '.$db->db_last_error().'
'; + else + echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; + } +} + // Note "entschuldigt" hinzufügen if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');")) { @@ -532,6 +564,46 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'ue' } } +// Note "intern angerechnet" hinzufügen +if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'iar' AND (bezeichnung = 'intern angerechnet' OR bezeichnung = 'Intern angerechnet');")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = " + INSERT INTO + lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre, offiziell, bezeichnung_mehrsprachig, lkt_ueberschreibbar) + VALUES( + (SELECT max(note)+1 FROM lehre.tbl_note),'intern angerechnet', 'iar', NULL, TRUE, NULL, TRUE, FALSE, FALSE, '{\"intern angerechnet\",\"internally credited\"}', FALSE + ); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_note: Note intern angerechnet hinzugefuegt!
'; + } +} + +// Note "nicht zugelassen" hinzufügen +if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'nz' AND (bezeichnung = 'nicht zugelassen' OR bezeichnung = 'Nicht zugelassen');")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = " + INSERT INTO + lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre, offiziell, bezeichnung_mehrsprachig, lkt_ueberschreibbar) + VALUES( + (SELECT max(note)+1 FROM lehre.tbl_note), 'nicht zugelassen', 'nz', NULL, TRUE, NULL, TRUE, FALSE, FALSE, '{\"nicht zugelassen\",\"not admitted\"}', FALSE + ); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note: '.$db->db_last_error().'
'; + else + echo '
lehre.tbl_note: Note nicht zugelassen hinzugefuegt!
'; + } +} + // Spalte offiziell in lehre.tbl_note if(!$result = @$db->db_query("SELECT offiziell FROM lehre.tbl_note LIMIT 1;")) { @@ -1315,7 +1387,7 @@ if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_verarbeitungstaetigkeit" } // system.tbl_log.taetigkeit_kurzbz -if (!$result = @$db->db_query("SELECT taetigkeit_kurzbz FROM system.tbl_log")) +if (!$result = @$db->db_query("SELECT taetigkeit_kurzbz FROM system.tbl_log LIMIT 1")) { $qry = " ALTER TABLE system.tbl_log ADD COLUMN taetigkeit_kurzbz varchar(32); @@ -2567,6 +2639,7 @@ if(!@$db->db_query("SELECT zeitaufzeichnungspflichtig FROM bis.tbl_bisverwendung . "
Fix angestellte Mitarbeiter auf true gesetzt, alle anderen auf false"; } + // Spalte Priorisierung für tbl_prestudent if(!$result = @$db->db_query("SELECT priorisierung FROM public.tbl_prestudent LIMIT 1")) { @@ -2578,40 +2651,6 @@ if(!$result = @$db->db_query("SELECT priorisierung FROM public.tbl_prestudent LI echo '
public.tbl_prestudent: Spalte priorisierung hinzugefuegt'; } -// Spalte zgv_erfuellt für tbl_prestudent -if(!$result = @$db->db_query("SELECT zgv_erfuellt FROM public.tbl_prestudent LIMIT 1")) -{ - $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgv_erfuellt boolean default false;"; - - if(!$db->db_query($qry)) - echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; - else - echo '
public.tbl_prestudent: Spalte zgv_erfuellt hinzugefuegt'; -} - -// Spalte zgvmas_erfuellt für tbl_prestudent -if(!$result = @$db->db_query("SELECT zgvmas_erfuellt FROM public.tbl_prestudent LIMIT 1")) -{ - $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgvmas_erfuellt boolean default false;"; - - if(!$db->db_query($qry)) - echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; - else - echo '
public.tbl_prestudent: Spalte zgvmas_erfuellt hinzugefuegt'; -} - -// Spalte zgvdoktor_erfuellt für tbl_prestudent -if(!$result = @$db->db_query("SELECT zgvdoktor_erfuellt FROM public.tbl_prestudent LIMIT 1")) -{ - $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgvdoktor_erfuellt boolean default false;"; - - if(!$db->db_query($qry)) - echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; - else - echo '
public.tbl_prestudent: Spalte zgvdoktor_erfuellt hinzugefuegt'; -} - - // Spalte lieferant in tbl_firma if(!$result = @$db->db_query("SELECT lieferant FROM public.tbl_firma LIMIT 1")) { @@ -4670,7 +4709,7 @@ if ($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie_gruppe WHER } } -// Add table anrechnung_status +// Add table anrechnungstatus if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnungstatus LIMIT 1;")) { $qry = " @@ -4698,42 +4737,6 @@ if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnungstatus LIMIT 1;" echo ' lehre.tbl_anrechnungstatus: Tabelle hinzugefuegt
'; } -// GRANT INSERT, UPDATE, DELETE ON TABLE lehre.tbl_anrechnungstatus TO web; -$qry = 'GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE lehre.tbl_anrechnungstatus TO web;'; -if (!$db->db_query($qry)) - echo 'lehre.tbl_anrechnungstatus '.$db->db_last_error().'
'; -else - echo '
Granted privileges to web on lehre.tbl_anrechnungstatus'; - - -// SEQUENCE seq_anrechnungstatus_status_kurzbz -if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'seq_anrechnungstatus_status_kurzbz'")) -{ - if ($db->db_num_rows($result) == 0) - { - $qry = ' - CREATE SEQUENCE lehre.seq_anrechnungstatus_status_kurzbz - START WITH 1 - INCREMENT BY 1 - NO MAXVALUE - 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)) - echo 'lehre.seq_anrechnungstatus_status_kurzbz '.$db->db_last_error().'
'; - else - echo '
Granted privileges to vilesci on lehre.seq_anrechnungstatus_status_kurzbz'; - } -} - // Add table anrechnung_anrechnungstatus // Für bestehende genehmigte Anrechnungsanträge wird ein Eintrag mit dem Status 'approved' angelegt if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung_anrechnungstatus LIMIT 1;")) @@ -4763,9 +4766,10 @@ if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung_anrechnungstatu 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 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; + GRANT SELECT, UPDATE ON lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id TO web; "; if(!$db->db_query($qry)) @@ -4829,6 +4833,19 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht } } +// Add permission to create Anrechnung +if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/anrechnung_anlegen';")) +{ + if($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnung_anlegen', 'Anrechnung anlegen');"; + + if(!$db->db_query($qry)) + echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; + else + echo ' system.tbl_berechtigung: Added permission for lehre/anrechnung_anlegen
'; + } +} // INSERT,DELETE,UPDATE Berechtigung für tbl_dokumentprestudent hinzufügen if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_dokumentprestudent' AND table_schema='public' AND grantee='web' AND privilege_type in ('INSERT','DELETE','UPDATE')")) @@ -4853,13 +4870,11 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus LIMIT 1 status_kurzbz character varying(32), bezeichnung character varying(256) ); - ALTER TABLE public.tbl_zgvpruefungstatus ADD CONSTRAINT status_kurzbz PRIMARY KEY (status_kurzbz); INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('pruefung_stg', 'Wird vom Studiengang geprüft'); INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('rejected', 'Vom Studiengang abgelehnt'); INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted', 'Vom Studiengang akzeptiert'); INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted_pruefung', 'Vom Studiengang akzeptiert mit Prüfung'); - GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus TO vilesci; GRANT SELECT ON public.tbl_zgvpruefungstatus TO web; "; @@ -4883,8 +4898,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefung LIMIT 1;")) updateamum timestamp without time zone, updatevon character varying(32) ); - - CREATE SEQUENCE public.tbl_zgvpruefung_id_seq + CREATE SEQUENCE public.tbl_zgvpruefung_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -4892,11 +4906,9 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefung LIMIT 1;")) ALTER TABLE public.tbl_zgvpruefung ADD CONSTRAINT pk_tbl_zgvpruefung PRIMARY KEY (zgvpruefung_id); ALTER TABLE public.tbl_zgvpruefung ALTER COLUMN zgvpruefung_id SET DEFAULT nextval('public.tbl_zgvpruefung_id_seq'); ALTER TABLE public.tbl_zgvpruefung ADD CONSTRAINT fk_tbl_zgvpruefung_student FOREIGN KEY (prestudent_id) REFERENCES public.tbl_prestudent (prestudent_id) ON DELETE RESTRICT ON UPDATE CASCADE; - GRANT SELECT, UPDATE ON public.tbl_zgvpruefung_id_seq TO vilesci; GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefung TO vilesci; GRANT SELECT ON public.tbl_zgvpruefung TO web; - "; if(!$db->db_query($qry)) @@ -4916,18 +4928,15 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus_status status character varying(32), datum timestamp without time zone DEFAULT now() ); - - CREATE SEQUENCE public.tbl_zgvpruefungstatus_status_id_seq + CREATE SEQUENCE public.tbl_zgvpruefungstatus_status_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; - ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT pk_tbl_zgvpruefungstatus_status PRIMARY KEY (zgv_pruefung_status_id); ALTER TABLE public.tbl_zgvpruefungstatus_status ALTER COLUMN zgv_pruefung_status_id SET DEFAULT nextval('tbl_zgvpruefungstatus_status_id_seq'); ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT fk_tbl_zgvpruefung_zgvpruefung FOREIGN KEY (zgvpruefung_id) REFERENCES public.tbl_zgvpruefung (zgvpruefung_id) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT fk_tbl_zgvpruefung_status FOREIGN KEY (status) REFERENCES public.tbl_zgvpruefungstatus (status_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; - GRANT SELECT, UPDATE ON public.tbl_zgvpruefungstatus_status_id_seq TO vilesci; GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus_status TO vilesci; GRANT SELECT ON public.tbl_zgvpruefungstatus_status TO web; @@ -4939,8 +4948,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus_status echo ' public.tbl_zgvpruefungstatus_status: Tabelle hinzugefuegt
'; } - -// Add index to system.tbl_log +// Add index to lehre.tbl_pruefung if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_pruefung_student_uid'")) { if ($db->db_num_rows($result) == 0) @@ -4966,6 +4974,67 @@ if ($result = @$db->db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchung echo ' public.tbl_buchungstyp: Added buchungstyp "ZuschussIO"
'; } } +//Add Column statusgrund_kurzbz to public.tbl_status_grund +if(!@$db->db_query("SELECT statusgrund_kurzbz FROM public.tbl_status_grund LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_status_grund ADD COLUMN statusgrund_kurzbz varchar(32); + ALTER TABLE public.tbl_status_grund ADD CONSTRAINT uk_tbl_statusgrund_kurzbz UNIQUE (statusgrund_kurzbz); + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_status_grund '.$db->db_last_error().'
'; + else + echo '
Neue Spalte statusgrund_kurzbz zu Tabelle public.tbl_status_grund hinzugefügt'; +} + +// INDEX idx_anrechnung_anrechnung_status_anrechnung_id +if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'idx_anrechnung_anrechnung_status_anrechnung_id'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = 'CREATE INDEX idx_anrechnung_anrechnung_status_anrechnung_id ON lehre.tbl_anrechnung_anrechnungstatus USING btree (anrechnung_id)'; + if (!$db->db_query($qry)) + echo 'idx_anrechnung_anrechnung_status_anrechnung_id '.$db->db_last_error().'
'; + else + echo '
Created Index idx_anrechnung_anrechnung_status_anrechnung_id'; + } +} + +// Add Table lehre.tbl_lehrmodus +if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_lehrmodus LIMIT 1;")) +{ + $qry = " + CREATE TABLE lehre.tbl_lehrmodus + ( + lehrmodus_kurzbz varchar(32) NOT NULL, + bezeichnung_mehrsprachig varchar(255)[], + aktiv boolean DEFAULT true + ); + ALTER TABLE lehre.tbl_lehrmodus ADD CONSTRAINT pk_lehrmodus PRIMARY KEY (lehrmodus_kurzbz); + INSERT INTO lehre.tbl_lehrmodus(lehrmodus_kurzbz, bezeichnung_mehrsprachig) VALUES('regulaer', '{\"regulaer\",\"regular\"}'); + INSERT INTO lehre.tbl_lehrmodus(lehrmodus_kurzbz, bezeichnung_mehrsprachig) VALUES('standardisiert', '{\"standardisiert\",\"standardized\"}'); + GRANT SELECT ON lehre.tbl_lehrmodus TO web; + GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_lehrmodus TO vilesci; + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_lehrmodus: '.$db->db_last_error().'
'; + else + echo ' lehre.tbl_lehrmodus: Tabelle hinzugefuegt
'; +} + +//Add Column lehrmodus_kurzbz to lehre.tbl_lehrveranstaltung +if(!@$db->db_query("SELECT lehrmodus_kurzbz FROM lehre.tbl_lehrveranstaltung LIMIT 1")) +{ + $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lehrmodus_kurzbz varchar(32); + ALTER TABLE lehre.tbl_lehrveranstaltung ADD CONSTRAINT fk_lehrveranstaltung_lehrmodus FOREIGN KEY (lehrmodus_kurzbz) REFERENCES lehre.tbl_lehrmodus(lehrmodus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_lehrveranstaltung '.$db->db_last_error().'
'; + else + echo '
Spalte lehrmodus_kurzbz in lehre.tbl_lehrveranstaltung hinzugefügt'; +} // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -5084,8 +5153,9 @@ $tabellen=array( "lehre.tbl_lehrform" => array("lehrform_kurzbz","bezeichnung","verplanen","bezeichnung_kurz","bezeichnung_lang"), "lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"), "lehre.tbl_lehrmittel" => array("lehrmittel_kurzbz","beschreibung","ort_kurzbz"), + "lehre.tbl_lehrmodus" => array("lehrmodus_kurzbz","bezeichnung_mehrsprachig","aktiv"), "lehre.tbl_lehrtyp" => array("lehrtyp_kurzbz","bezeichnung"), - "lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag"), + "lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag","lehrmodus_kurzbz"), "lehre.tbl_lehrveranstaltung_kompatibel" => array("lehrveranstaltung_id","lehrveranstaltung_id_kompatibel"), "lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"), @@ -5178,7 +5248,7 @@ $tabellen=array( "public.tbl_preoutgoing_lehrveranstaltung" => array("preoutgoing_lehrveranstaltung_id","preoutgoing_id","bezeichnung","ects","endversion","insertamum","insertvon","updateamum","updatevon","wochenstunden","unitcode"), "public.tbl_preoutgoing_preoutgoing_status" => array("status_id","preoutgoing_status_kurzbz","preoutgoing_id","datum","insertamum","insertvon","updateamum","updatevon"), "public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"), - "public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung","zgv_erfuellt","zgvmas_erfuellt","zgvdoktor_erfuellt"), + "public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung"), "public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum","rt_stufe","statusgrund_id"), "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"), "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz","aufnahmegruppe_kurzbz","stufe","anmeldefrist"), @@ -5186,7 +5256,7 @@ $tabellen=array( "public.tbl_rt_person" => array("rt_person_id","person_id","rt_id","studienplan_id","anmeldedatum","teilgenommen","ort_kurzbz","punkte","insertamum","insertvon","updateamum","updatevon"), "public.tbl_rt_studienplan" => array("reihungstest_id","studienplan_id"), "public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id","bezeichnung_mehrsprachig"), - "public.tbl_status_grund" => array("statusgrund_id","status_kurzbz","aktiv","bezeichnung_mehrsprachig","beschreibung"), + "public.tbl_status_grund" => array("statusgrund_id","status_kurzbz","aktiv","bezeichnung_mehrsprachig","beschreibung","statusgrund_kurzbz"), "public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"), "public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id","design_uid","betrieb_uid","operativ_uid","servicekategorie_kurzbz"), "public.tbl_servicekategorie" => array("servicekategorie_kurzbz", "bezeichnung","sort"), From bfa0f722ae4fdca5a2a2ed1cce711cf02e840e6e Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Wed, 22 Sep 2021 10:46:28 +0200 Subject: [PATCH 018/227] change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) --- system/dbupdate_3.3.php | 230 +++++++++++++++------------------------- 1 file changed, 88 insertions(+), 142 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 1f7fff366..1d4f33d36 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -520,22 +520,6 @@ if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE } } -// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) -if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) -{ - if($db->db_num_rows($result)>0) - { - $qry = " - ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); - "; - - if(!$db->db_query($qry)) - echo 'lehre.tbl_note '.$db->db_last_error().'
'; - else - echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; - } -} - // Note "entschuldigt" hinzufügen if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');")) { @@ -564,46 +548,6 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'ue' } } -// Note "intern angerechnet" hinzufügen -if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'iar' AND (bezeichnung = 'intern angerechnet' OR bezeichnung = 'Intern angerechnet');")) -{ - if($db->db_num_rows($result) == 0) - { - $qry = " - INSERT INTO - lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre, offiziell, bezeichnung_mehrsprachig, lkt_ueberschreibbar) - VALUES( - (SELECT max(note)+1 FROM lehre.tbl_note),'intern angerechnet', 'iar', NULL, TRUE, NULL, TRUE, FALSE, FALSE, '{\"intern angerechnet\",\"internally credited\"}', FALSE - ); - "; - - if(!$db->db_query($qry)) - echo 'lehre.tbl_note: '.$db->db_last_error().'
'; - else - echo '
lehre.tbl_note: Note intern angerechnet hinzugefuegt!
'; - } -} - -// Note "nicht zugelassen" hinzufügen -if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'nz' AND (bezeichnung = 'nicht zugelassen' OR bezeichnung = 'Nicht zugelassen');")) -{ - if($db->db_num_rows($result) == 0) - { - $qry = " - INSERT INTO - lehre.tbl_note(note, bezeichnung, anmerkung, farbe, positiv, notenwert, aktiv, lehre, offiziell, bezeichnung_mehrsprachig, lkt_ueberschreibbar) - VALUES( - (SELECT max(note)+1 FROM lehre.tbl_note), 'nicht zugelassen', 'nz', NULL, TRUE, NULL, TRUE, FALSE, FALSE, '{\"nicht zugelassen\",\"not admitted\"}', FALSE - ); - "; - - if(!$db->db_query($qry)) - echo 'lehre.tbl_note: '.$db->db_last_error().'
'; - else - echo '
lehre.tbl_note: Note nicht zugelassen hinzugefuegt!
'; - } -} - // Spalte offiziell in lehre.tbl_note if(!$result = @$db->db_query("SELECT offiziell FROM lehre.tbl_note LIMIT 1;")) { @@ -1387,7 +1331,7 @@ if (!$result = @$db->db_query("SELECT 1 FROM system.tbl_verarbeitungstaetigkeit" } // system.tbl_log.taetigkeit_kurzbz -if (!$result = @$db->db_query("SELECT taetigkeit_kurzbz FROM system.tbl_log LIMIT 1")) +if (!$result = @$db->db_query("SELECT taetigkeit_kurzbz FROM system.tbl_log")) { $qry = " ALTER TABLE system.tbl_log ADD COLUMN taetigkeit_kurzbz varchar(32); @@ -2639,7 +2583,6 @@ if(!@$db->db_query("SELECT zeitaufzeichnungspflichtig FROM bis.tbl_bisverwendung . "
Fix angestellte Mitarbeiter auf true gesetzt, alle anderen auf false"; } - // Spalte Priorisierung für tbl_prestudent if(!$result = @$db->db_query("SELECT priorisierung FROM public.tbl_prestudent LIMIT 1")) { @@ -2651,6 +2594,40 @@ if(!$result = @$db->db_query("SELECT priorisierung FROM public.tbl_prestudent LI echo '
public.tbl_prestudent: Spalte priorisierung hinzugefuegt'; } +// Spalte zgv_erfuellt für tbl_prestudent +if(!$result = @$db->db_query("SELECT zgv_erfuellt FROM public.tbl_prestudent LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgv_erfuellt boolean default false;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; + else + echo '
public.tbl_prestudent: Spalte zgv_erfuellt hinzugefuegt'; +} + +// Spalte zgvmas_erfuellt für tbl_prestudent +if(!$result = @$db->db_query("SELECT zgvmas_erfuellt FROM public.tbl_prestudent LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgvmas_erfuellt boolean default false;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; + else + echo '
public.tbl_prestudent: Spalte zgvmas_erfuellt hinzugefuegt'; +} + +// Spalte zgvdoktor_erfuellt für tbl_prestudent +if(!$result = @$db->db_query("SELECT zgvdoktor_erfuellt FROM public.tbl_prestudent LIMIT 1")) +{ + $qry = "ALTER TABLE public.tbl_prestudent ADD COLUMN zgvdoktor_erfuellt boolean default false;"; + + if(!$db->db_query($qry)) + echo 'public.tbl_prestudent: '.$db->db_last_error().'
'; + else + echo '
public.tbl_prestudent: Spalte zgvdoktor_erfuellt hinzugefuegt'; +} + + // Spalte lieferant in tbl_firma if(!$result = @$db->db_query("SELECT lieferant FROM public.tbl_firma LIMIT 1")) { @@ -4709,7 +4686,7 @@ if ($result = @$db->db_query("SELECT 1 FROM campus.tbl_dms_kategorie_gruppe WHER } } -// Add table anrechnungstatus +// Add table anrechnung_status if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnungstatus LIMIT 1;")) { $qry = " @@ -4737,6 +4714,42 @@ if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnungstatus LIMIT 1;" echo ' lehre.tbl_anrechnungstatus: Tabelle hinzugefuegt
'; } +// GRANT INSERT, UPDATE, DELETE ON TABLE lehre.tbl_anrechnungstatus TO web; +$qry = 'GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE lehre.tbl_anrechnungstatus TO web;'; +if (!$db->db_query($qry)) + echo 'lehre.tbl_anrechnungstatus '.$db->db_last_error().'
'; +else + echo '
Granted privileges to web on lehre.tbl_anrechnungstatus'; + + +// SEQUENCE seq_anrechnungstatus_status_kurzbz +if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'seq_anrechnungstatus_status_kurzbz'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = ' + CREATE SEQUENCE lehre.seq_anrechnungstatus_status_kurzbz + START WITH 1 + INCREMENT BY 1 + NO MAXVALUE + 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)) + echo 'lehre.seq_anrechnungstatus_status_kurzbz '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on lehre.seq_anrechnungstatus_status_kurzbz'; + } +} + // Add table anrechnung_anrechnungstatus // Für bestehende genehmigte Anrechnungsanträge wird ein Eintrag mit dem Status 'approved' angelegt if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung_anrechnungstatus LIMIT 1;")) @@ -4766,10 +4779,9 @@ if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_anrechnung_anrechnungstatu 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, UPDATE, INSERT, DELETE ON lehre.tbl_anrechnung_anrechnungstatus TO web; + 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; - GRANT SELECT, UPDATE ON lehre.seq_anrechnung_anrechnungstatus_anrechnungstatus_id TO web; "; if(!$db->db_query($qry)) @@ -4833,19 +4845,6 @@ if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berecht } } -// Add permission to create Anrechnung -if($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'lehre/anrechnung_anlegen';")) -{ - if($db->db_num_rows($result) == 0) - { - $qry = "INSERT INTO system.tbl_berechtigung(berechtigung_kurzbz, beschreibung) VALUES('lehre/anrechnung_anlegen', 'Anrechnung anlegen');"; - - if(!$db->db_query($qry)) - echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; - else - echo ' system.tbl_berechtigung: Added permission for lehre/anrechnung_anlegen
'; - } -} // INSERT,DELETE,UPDATE Berechtigung für tbl_dokumentprestudent hinzufügen if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_dokumentprestudent' AND table_schema='public' AND grantee='web' AND privilege_type in ('INSERT','DELETE','UPDATE')")) @@ -4870,11 +4869,13 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus LIMIT 1 status_kurzbz character varying(32), bezeichnung character varying(256) ); + ALTER TABLE public.tbl_zgvpruefungstatus ADD CONSTRAINT status_kurzbz PRIMARY KEY (status_kurzbz); INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('pruefung_stg', 'Wird vom Studiengang geprüft'); INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('rejected', 'Vom Studiengang abgelehnt'); INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted', 'Vom Studiengang akzeptiert'); INSERT INTO public.tbl_zgvpruefungstatus(status_kurzbz, bezeichnung) VALUES('accepted_pruefung', 'Vom Studiengang akzeptiert mit Prüfung'); + GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus TO vilesci; GRANT SELECT ON public.tbl_zgvpruefungstatus TO web; "; @@ -4898,7 +4899,8 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefung LIMIT 1;")) updateamum timestamp without time zone, updatevon character varying(32) ); - CREATE SEQUENCE public.tbl_zgvpruefung_id_seq + + CREATE SEQUENCE public.tbl_zgvpruefung_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE @@ -4906,9 +4908,11 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefung LIMIT 1;")) ALTER TABLE public.tbl_zgvpruefung ADD CONSTRAINT pk_tbl_zgvpruefung PRIMARY KEY (zgvpruefung_id); ALTER TABLE public.tbl_zgvpruefung ALTER COLUMN zgvpruefung_id SET DEFAULT nextval('public.tbl_zgvpruefung_id_seq'); ALTER TABLE public.tbl_zgvpruefung ADD CONSTRAINT fk_tbl_zgvpruefung_student FOREIGN KEY (prestudent_id) REFERENCES public.tbl_prestudent (prestudent_id) ON DELETE RESTRICT ON UPDATE CASCADE; + GRANT SELECT, UPDATE ON public.tbl_zgvpruefung_id_seq TO vilesci; GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefung TO vilesci; GRANT SELECT ON public.tbl_zgvpruefung TO web; + "; if(!$db->db_query($qry)) @@ -4928,15 +4932,18 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus_status status character varying(32), datum timestamp without time zone DEFAULT now() ); - CREATE SEQUENCE public.tbl_zgvpruefungstatus_status_id_seq + + CREATE SEQUENCE public.tbl_zgvpruefungstatus_status_id_seq INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1; + ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT pk_tbl_zgvpruefungstatus_status PRIMARY KEY (zgv_pruefung_status_id); ALTER TABLE public.tbl_zgvpruefungstatus_status ALTER COLUMN zgv_pruefung_status_id SET DEFAULT nextval('tbl_zgvpruefungstatus_status_id_seq'); ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT fk_tbl_zgvpruefung_zgvpruefung FOREIGN KEY (zgvpruefung_id) REFERENCES public.tbl_zgvpruefung (zgvpruefung_id) ON DELETE RESTRICT ON UPDATE CASCADE; ALTER TABLE public.tbl_zgvpruefungstatus_status ADD CONSTRAINT fk_tbl_zgvpruefung_status FOREIGN KEY (status) REFERENCES public.tbl_zgvpruefungstatus (status_kurzbz) ON DELETE RESTRICT ON UPDATE CASCADE; + GRANT SELECT, UPDATE ON public.tbl_zgvpruefungstatus_status_id_seq TO vilesci; GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_zgvpruefungstatus_status TO vilesci; GRANT SELECT ON public.tbl_zgvpruefungstatus_status TO web; @@ -4948,7 +4955,8 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus_status echo ' public.tbl_zgvpruefungstatus_status: Tabelle hinzugefuegt
'; } -// Add index to lehre.tbl_pruefung + +// 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) @@ -4974,67 +4982,6 @@ if ($result = @$db->db_query("SELECT 1 FROM public.tbl_buchungstyp WHERE buchung echo ' public.tbl_buchungstyp: Added buchungstyp "ZuschussIO"
'; } } -//Add Column statusgrund_kurzbz to public.tbl_status_grund -if(!@$db->db_query("SELECT statusgrund_kurzbz FROM public.tbl_status_grund LIMIT 1")) -{ - $qry = "ALTER TABLE public.tbl_status_grund ADD COLUMN statusgrund_kurzbz varchar(32); - ALTER TABLE public.tbl_status_grund ADD CONSTRAINT uk_tbl_statusgrund_kurzbz UNIQUE (statusgrund_kurzbz); - "; - - if(!$db->db_query($qry)) - echo 'public.tbl_status_grund '.$db->db_last_error().'
'; - else - echo '
Neue Spalte statusgrund_kurzbz zu Tabelle public.tbl_status_grund hinzugefügt'; -} - -// INDEX idx_anrechnung_anrechnung_status_anrechnung_id -if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'idx_anrechnung_anrechnung_status_anrechnung_id'")) -{ - if ($db->db_num_rows($result) == 0) - { - $qry = 'CREATE INDEX idx_anrechnung_anrechnung_status_anrechnung_id ON lehre.tbl_anrechnung_anrechnungstatus USING btree (anrechnung_id)'; - if (!$db->db_query($qry)) - echo 'idx_anrechnung_anrechnung_status_anrechnung_id '.$db->db_last_error().'
'; - else - echo '
Created Index idx_anrechnung_anrechnung_status_anrechnung_id'; - } -} - -// Add Table lehre.tbl_lehrmodus -if(!$result = @$db->db_query("SELECT 1 FROM lehre.tbl_lehrmodus LIMIT 1;")) -{ - $qry = " - CREATE TABLE lehre.tbl_lehrmodus - ( - lehrmodus_kurzbz varchar(32) NOT NULL, - bezeichnung_mehrsprachig varchar(255)[], - aktiv boolean DEFAULT true - ); - ALTER TABLE lehre.tbl_lehrmodus ADD CONSTRAINT pk_lehrmodus PRIMARY KEY (lehrmodus_kurzbz); - INSERT INTO lehre.tbl_lehrmodus(lehrmodus_kurzbz, bezeichnung_mehrsprachig) VALUES('regulaer', '{\"regulaer\",\"regular\"}'); - INSERT INTO lehre.tbl_lehrmodus(lehrmodus_kurzbz, bezeichnung_mehrsprachig) VALUES('standardisiert', '{\"standardisiert\",\"standardized\"}'); - GRANT SELECT ON lehre.tbl_lehrmodus TO web; - GRANT SELECT, UPDATE, INSERT, DELETE ON lehre.tbl_lehrmodus TO vilesci; - "; - - if(!$db->db_query($qry)) - echo 'lehre.tbl_lehrmodus: '.$db->db_last_error().'
'; - else - echo ' lehre.tbl_lehrmodus: Tabelle hinzugefuegt
'; -} - -//Add Column lehrmodus_kurzbz to lehre.tbl_lehrveranstaltung -if(!@$db->db_query("SELECT lehrmodus_kurzbz FROM lehre.tbl_lehrveranstaltung LIMIT 1")) -{ - $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lehrmodus_kurzbz varchar(32); - ALTER TABLE lehre.tbl_lehrveranstaltung ADD CONSTRAINT fk_lehrveranstaltung_lehrmodus FOREIGN KEY (lehrmodus_kurzbz) REFERENCES lehre.tbl_lehrmodus(lehrmodus_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; - "; - - if(!$db->db_query($qry)) - echo 'lehre.tbl_lehrveranstaltung '.$db->db_last_error().'
'; - else - echo '
Spalte lehrmodus_kurzbz in lehre.tbl_lehrveranstaltung hinzugefügt'; -} // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

'; @@ -5153,9 +5100,8 @@ $tabellen=array( "lehre.tbl_lehrform" => array("lehrform_kurzbz","bezeichnung","verplanen","bezeichnung_kurz","bezeichnung_lang"), "lehre.tbl_lehrfunktion" => array("lehrfunktion_kurzbz","beschreibung","standardfaktor","sort"), "lehre.tbl_lehrmittel" => array("lehrmittel_kurzbz","beschreibung","ort_kurzbz"), - "lehre.tbl_lehrmodus" => array("lehrmodus_kurzbz","bezeichnung_mehrsprachig","aktiv"), "lehre.tbl_lehrtyp" => array("lehrtyp_kurzbz","bezeichnung"), - "lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag","lehrmodus_kurzbz"), + "lehre.tbl_lehrveranstaltung" => array("lehrveranstaltung_id","kurzbz","bezeichnung","lehrform_kurzbz","studiengang_kz","semester","sprache","ects","semesterstunden","anmerkung","lehre","lehreverzeichnis","aktiv","planfaktor","planlektoren","planpersonalkosten","plankostenprolektor","koordinator","sort","zeugnis","projektarbeit","updateamum","updatevon","insertamum","insertvon","ext_id","bezeichnung_english","orgform_kurzbz","incoming","lehrtyp_kurzbz","oe_kurzbz","raumtyp_kurzbz","anzahlsemester","semesterwochen","lvnr","farbe","semester_alternativ","old_lehrfach_id","sws","lvs","alvs","lvps","las","benotung","lvinfo","lehrauftrag"), "lehre.tbl_lehrveranstaltung_kompatibel" => array("lehrveranstaltung_id","lehrveranstaltung_id_kompatibel"), "lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"), "lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"), @@ -5248,7 +5194,7 @@ $tabellen=array( "public.tbl_preoutgoing_lehrveranstaltung" => array("preoutgoing_lehrveranstaltung_id","preoutgoing_id","bezeichnung","ects","endversion","insertamum","insertvon","updateamum","updatevon","wochenstunden","unitcode"), "public.tbl_preoutgoing_preoutgoing_status" => array("status_id","preoutgoing_status_kurzbz","preoutgoing_id","datum","insertamum","insertvon","updateamum","updatevon"), "public.tbl_preoutgoing_status" => array("preoutgoing_status_kurzbz","bezeichnung"), - "public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung"), + "public.tbl_prestudent" => array("prestudent_id","aufmerksamdurch_kurzbz","person_id","studiengang_kz","berufstaetigkeit_code","ausbildungcode","zgv_code","zgvort","zgvdatum","zgvmas_code","zgvmaort","zgvmadatum","aufnahmeschluessel","facheinschlberuf","reihungstest_id","anmeldungreihungstest","reihungstestangetreten","rt_gesamtpunkte","rt_punkte1","rt_punkte2","bismelden","anmerkung","dual","insertamum","insertvon","updateamum","updatevon","ext_id","ausstellungsstaat","rt_punkte3", "zgvdoktor_code", "zgvdoktorort", "zgvdoktordatum","mentor","zgvnation","zgvmanation","zgvdoktornation","gsstudientyp_kurzbz","aufnahmegruppe_kurzbz","udf_values","priorisierung","zgv_erfuellt","zgvmas_erfuellt","zgvdoktor_erfuellt"), "public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum","rt_stufe","statusgrund_id"), "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"), "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz","aufnahmegruppe_kurzbz","stufe","anmeldefrist"), @@ -5256,7 +5202,7 @@ $tabellen=array( "public.tbl_rt_person" => array("rt_person_id","person_id","rt_id","studienplan_id","anmeldedatum","teilgenommen","ort_kurzbz","punkte","insertamum","insertvon","updateamum","updatevon"), "public.tbl_rt_studienplan" => array("reihungstest_id","studienplan_id"), "public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id","bezeichnung_mehrsprachig"), - "public.tbl_status_grund" => array("statusgrund_id","status_kurzbz","aktiv","bezeichnung_mehrsprachig","beschreibung","statusgrund_kurzbz"), + "public.tbl_status_grund" => array("statusgrund_id","status_kurzbz","aktiv","bezeichnung_mehrsprachig","beschreibung"), "public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"), "public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id","design_uid","betrieb_uid","operativ_uid","servicekategorie_kurzbz"), "public.tbl_servicekategorie" => array("servicekategorie_kurzbz", "bezeichnung","sort"), From ad95088abd4b258ef3e669859dfccfb938bc2440 Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Wed, 22 Sep 2021 10:53:51 +0200 Subject: [PATCH 019/227] Update dbupdate_3.3.php --- system/dbupdate_3.3.php | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 1d4f33d36..ba6852747 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -504,22 +504,6 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefung } } -// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) -if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) -{ - if($db->db_num_rows($result)>0) - { - $qry = " - ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); - "; - - if(!$db->db_query($qry)) - echo 'lehre.tbl_note '.$db->db_last_error().'
'; - else - echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; - } -} - // Note "entschuldigt" hinzufügen if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');")) { From 3acf5ba45e769bbe38a8175279c0c454a724f95c Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Wed, 22 Sep 2021 11:03:25 +0200 Subject: [PATCH 020/227] change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) --- system/dbupdate_3.3.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index ba6852747..1d4f33d36 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -504,6 +504,22 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefung } } +// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) +if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) +{ + if($db->db_num_rows($result)>0) + { + $qry = " + ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note '.$db->db_last_error().'
'; + else + echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; + } +} + // Note "entschuldigt" hinzufügen if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');")) { From a20d947b377bd3f5c02b9fc48b46e112a31587b9 Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Wed, 22 Sep 2021 11:19:48 +0200 Subject: [PATCH 021/227] Update dbupdate_3.3.php --- system/dbupdate_3.3.php | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 1d4f33d36..ba6852747 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -504,22 +504,6 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefung } } -// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) -if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) -{ - if($db->db_num_rows($result)>0) - { - $qry = " - ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); - "; - - if(!$db->db_query($qry)) - echo 'lehre.tbl_note '.$db->db_last_error().'
'; - else - echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; - } -} - // Note "entschuldigt" hinzufügen if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');")) { From d704e09e822705a0ae64614af71bd3b732bf08b8 Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Wed, 22 Sep 2021 11:29:36 +0200 Subject: [PATCH 022/227] Revert "Update dbupdate_3.3.php" This reverts commit a20d947b377bd3f5c02b9fc48b46e112a31587b9. --- system/dbupdate_3.3.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index ba6852747..1d4f33d36 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -504,6 +504,22 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefung } } +// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) +if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) +{ + if($db->db_num_rows($result)>0) + { + $qry = " + ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note '.$db->db_last_error().'
'; + else + echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; + } +} + // Note "entschuldigt" hinzufügen if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');")) { From 9493d6a99b3eb0362411aee4eab8b5aa8086d988 Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Wed, 22 Sep 2021 11:35:17 +0200 Subject: [PATCH 023/227] Revert "change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64)" This reverts commit 3acf5ba45e769bbe38a8175279c0c454a724f95c. --- system/dbupdate_3.3.php | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 1d4f33d36..ba6852747 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -504,22 +504,6 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefung } } -// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) -if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) -{ - if($db->db_num_rows($result)>0) - { - $qry = " - ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); - "; - - if(!$db->db_query($qry)) - echo 'lehre.tbl_note '.$db->db_last_error().'
'; - else - echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; - } -} - // Note "entschuldigt" hinzufügen if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');")) { From 6cb8987fb429662304db478b3380ecd29203239a Mon Sep 17 00:00:00 2001 From: Monika70 <46781283+Monika70@users.noreply.github.com> Date: Wed, 22 Sep 2021 11:41:03 +0200 Subject: [PATCH 024/227] change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) --- system/dbupdate_3.3.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index ba6852747..1d4f33d36 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -504,6 +504,22 @@ if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_pruefungstyp WHERE pruefung } } +// change Datatype of lehre.tbl_note.bezeichnung from varchar(32) to varchar(64) +if($result = $db->db_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA='lehre' AND TABLE_NAME='tbl_note' AND COLUMN_NAME = 'bezeichnung' AND character_maximum_length < 64")) +{ + if($db->db_num_rows($result)>0) + { + $qry = " + ALTER TABLE lehre.tbl_note ALTER COLUMN bezeichnung TYPE varchar(64); + "; + + if(!$db->db_query($qry)) + echo 'lehre.tbl_note '.$db->db_last_error().'
'; + else + echo '
Spalte bezeichnung in lehre.tbl_note von kleiner varchar(64) auf varchar(64) geändert
'; + } +} + // Note "entschuldigt" hinzufügen if($result = @$db->db_query("SELECT 1 FROM lehre.tbl_note WHERE anmerkung = 'en' AND (bezeichnung = 'entschuldigt' OR bezeichnung = 'Entschuldigt');")) { From bd90876277b3571b279d3177aae3c6d4227f6a6e Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Thu, 23 Sep 2021 12:34:58 +0200 Subject: [PATCH 025/227] Fixed: Now sending mails to ALL STGLs of the concerning STG Before it was sending only to first in array. Now sending to all. Signed-off-by: cris-technikum --- .../controllers/jobs/AnrechnungJob.php | 49 +++++++++++-------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/application/controllers/jobs/AnrechnungJob.php b/application/controllers/jobs/AnrechnungJob.php index f92410dbc..f32a8268a 100644 --- a/application/controllers/jobs/AnrechnungJob.php +++ b/application/controllers/jobs/AnrechnungJob.php @@ -188,7 +188,7 @@ class AnrechnungJob extends JOB_Controller $studiengang_bezeichnung = $this->StudiengangModel->load($studiengang_kz)->retval[0]->stg_bezeichnung; // Get STGL mail address - list ($to, $vorname) = self::_getSTGLMailAddress($studiengang_kz); + $stglMailReceiver_arr = self::_getSTGLMailAddress($studiengang_kz); // Get HTML table with new Anrechnungen of that STG plus amount of them list ($anrechnungen_amount, $anrechnungen_table) = self::_getSTGLMailDataTable($studiengang_kz, $anrechnungen); @@ -199,22 +199,25 @@ class AnrechnungJob extends JOB_Controller CIS_ROOT. 'cis/menu.php?content_id=&content='. CIS_ROOT. index_page(). self::APPROVE_ANRECHNUNG_URI; + foreach ($stglMailReceiver_arr as $stgl) + { // Prepare mail content - $body_fields = array( - 'vorname' => $vorname, - 'studiengang' => $studiengang_bezeichnung, - 'anzahl' => $anrechnungen_amount, - 'datentabelle' => $anrechnungen_table, - 'link' => anchor($url, 'Anrechnungsanträge Übersicht') - ); - - // Send mail - sendSanchoMail( - 'AnrechnungAntragStellen', - $body_fields, - $to, - 'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt' - ); + $body_fields = array( + 'vorname' => $stgl['vorname'], + 'studiengang' => $studiengang_bezeichnung, + 'anzahl' => $anrechnungen_amount, + 'datentabelle' => $anrechnungen_table, + 'link' => anchor($url, 'Anrechnungsanträge Übersicht') + ); + + // Send mail + sendSanchoMail( + 'AnrechnungAntragStellen', + $body_fields, + $stgl['to'], + 'Anerkennung nachgewiesener Kenntnisse: Neuer Antrag wurde gestellt' + ); + } } $this->logInfo('SUCCEDED: Sending emails to STGL about yesterdays new Anrechnungen succeded.'); @@ -342,15 +345,21 @@ html; // Get STGL mail address private function _getSTGLMailAddress($studiengang_kz) { + $stglMailAdress_arr = array(); $result = $this->StudiengangModel->getLeitung($studiengang_kz); // Get STGL mail address if (hasData($result)) { - return array( - $result->retval[0]->uid. '@'. DOMAIN, - $result->retval[0]->vorname - ); + foreach (getData($result) as $stgl) + { + $stglMailAdress_arr[]= array( + 'to' => $stgl->uid. '@'. DOMAIN, + 'vorname' => $stgl->vorname + ); + } + + return $stglMailAdress_arr; } // If not available, get assistance mail address else From 72868f4207e428c4b0e6f42f4b38b741ca81ba55 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Thu, 23 Sep 2021 12:47:05 +0200 Subject: [PATCH 026/227] Fixed: Now downloading documents is possible for ALL STGLs of the concerning STG Before it was possible only for first in array. Now sending to all. Signed-off-by: cris-technikum --- .../lehre/anrechnung/ApproveAnrechnungUebersicht.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php index d59d97514..70fae2b57 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php @@ -285,11 +285,14 @@ class approveAnrechnungUebersicht extends Auth_Controller // Get STGL $result = $this->StudiengangModel->getLeitung($result->studiengang_kz); - if($result = getData($result)[0]) + if (hasData($result)) { - if ($result->uid == $this->_uid) + foreach (getData($result) as $stgl) { - return; + if ($stgl->uid == $this->_uid) + { + return; + } } } From 072d1437e6a0ad7512bf6f89204933e3436b5510 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 27 Sep 2021 13:31:01 +0200 Subject: [PATCH 027/227] Bugfix: nun werden nach jedem Fehler die Projektphasen neu geladen --- cis/private/tools/zeitaufzeichnung.php | 44 +++++++++++++------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 824c0ba3c..626150dac 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -853,11 +853,11 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) if($data[0] == $user){ if(!empty($data[6]) && !in_array($data[6], $project_kurzbz_array) && empty($data[7])) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie folgendem Projekt entweder nicht zugewiesen sind oder das Projekt schon abgeschlossen wurde: ('.$data[6].')
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie folgendem Projekt entweder nicht zugewiesen sind oder das Projekt schon abgeschlossen wurde: ('.$data[6].')
'; } elseif(!empty($data[7]) && !in_array($data[7], $projectphasen_kurzbz_array)) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie folgender Projektphase entweder nicht zugewiesen sind oder die Projektphase schon abgeschlossen wurde: ('.$data[7].')
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da Sie folgender Projektphase entweder nicht zugewiesen sind oder die Projektphase schon abgeschlossen wurde: ('.$data[7].')
'; } else { @@ -875,24 +875,24 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) if (!isset($data[8])) $data[8] = NULL; if ($datum->formatDatum($data[2], $format='Y-m-d H:i:s') < $sperrdatum) - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum ('.$data[2].')
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum ('.$data[2].')
'; elseif ($datum->formatDatum($data[2], $format='Y-m-d H:i:s') > $limitdatum) - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da ('.$data[2].') zu weit in der Zukunft liegt.
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da ('.$data[2].') zu weit in der Zukunft liegt.
'; elseif ($dateVonCSV!=$dateBisCSV && $data[1]!="DienstreiseMT") { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).
'; } elseif (empty($data[7]) && !empty($data[6]) && !$projects_of_user->checkProjectInCorrectTime($data[6], $data[2], $data[3])) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt: ('.$data[2].') ('.$data[3].')
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt: ('.$data[2].') ('.$data[3].')
'; } elseif (!empty($data[7]) && !$projektph_of_user ->checkProjectphaseInCorrectTime($data[7], $data[2], $data[3])) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektphasenzeitrahmen fällt: ('.$data[2].') ('.$data[3].')
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektphasenzeitrahmen fällt: ('.$data[2].') ('.$data[3].')
'; } elseif (checkVals($data[5],$data[6],$data[7],$data[8])) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Fehlerhafte Werte ('.$data[2].')
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Fehlerhafte Werte ('.$data[2].')
'; } else { @@ -982,7 +982,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $pause->homeoffice = $homeoffice; if(!$pause->save()) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'
'; } } } @@ -999,7 +999,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) */ if(!$zeit->save()) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'('.$zeit->start.')
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'('.$zeit->start.')
'; } else $anzahl++; @@ -1012,7 +1012,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) } else if (strpos($data[0],'#') === false) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Falsche UID nicht importiert ('.$data[0].')
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Falsche UID nicht importiert ('.$data[0].')
'; } } if($anzahl>0) @@ -1030,7 +1030,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) } } else if ($datum->formatDatum($von, $format='Y-m-d H:i:s') < $sperrdatum) - echo '' .$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum'; + echo '' .$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum'; else if (isset($_POST['save']) || isset($_POST['edit'])) { @@ -1066,12 +1066,12 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) if (!$projects_of_user->checkProjectInCorrectTime($projekt_kurzbz, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d'))) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt.
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt.
'; $saveerror = 1; } elseif ($datum->formatDatum($von, $format='Y-m-d') > $limitdatum || $datum->formatDatum($bis, $format='Y-m-d') > $limitdatum) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs oder Enddatum zu weit in der Zukunft liegt.
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs oder Enddatum zu weit in der Zukunft liegt.
'; $saveerror = 1; } elseif (!$projectphase->checkProjectphaseInCorrectTime($projektphase_id, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d'))) @@ -1083,7 +1083,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) } elseif (abs($von-$bis)>0 && $aktivitaet_kurzbz!="DienstreiseMT") { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).
'; $saveerror = 1; } elseif (isset($_POST['genPause']) && (isset($_POST['save']) || isset($_POST['edit']))) @@ -1095,13 +1095,13 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) // checken ob Pause innerhalb der Arbeitszeit ist if ($zeit->start > $p_start || $zeit->ende < $p_end) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Pause außerhalb der Arbeitszeit
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Pause außerhalb der Arbeitszeit
'; $saveerror = 1; } elseif ($p_start > $p_end) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Fehlerhafte Pausenzeiten
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Fehlerhafte Pausenzeiten
'; $saveerror = 1; } else @@ -1110,7 +1110,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $zeit->ende = $datum->formatDatum($von_pause, $format='Y-m-d H:i:s'); if(!$zeit->save()) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'
'; $saveerror = 1; } //Eintrag für die Pause @@ -1128,7 +1128,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $pause->beschreibung = ''; if(!$pause->save()) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$pause->errormsg.'
'; $saveerror = 1; } // Eintrag Arbeit ab der Pause @@ -1143,7 +1143,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $zeit->ende = $datum->formatDatum($bis, $format='Y-m-d H:i:s'); if(!$zeit->save()) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.'
'; $saveerror = 1; } } @@ -1152,7 +1152,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) { if(!$zeit->save()) { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.''; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': '.$zeit->errormsg.''; $saveerror = 1; } } @@ -1189,7 +1189,7 @@ if(isset($_GET['type']) && $_GET['type']=='delete') { if ($zeit->start < $sperrdatum) - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich da vor dem Sperrdatum'; else { if($zeit->uid==$user) From ddfee4499a760cd9d1aba1ba1b31db16b5581de1 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 27 Sep 2021 13:35:13 +0200 Subject: [PATCH 028/227] correct typo --- 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 626150dac..85156b1a0 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1,5 +1,5 @@ Date: Mon, 4 Oct 2021 09:55:21 +0200 Subject: [PATCH 029/227] neuer adresstyp fuer homeoffice und dynmaischen adressentyp im FAS --- cis/private/profile/index.php | 29 +-------------- content/adressedialog.xul.php | 12 ++++--- include/adresse.class.php | 34 ++++++++++++++++-- rdf/adressentyp.rdf.php | 67 +++++++++++++++++++++++++++++++++++ system/dbupdate_3.3.php | 37 +++++++++++++++++++ 5 files changed, 143 insertions(+), 36 deletions(-) create mode 100644 rdf/adressentyp.rdf.php diff --git a/cis/private/profile/index.php b/cis/private/profile/index.php index 80062a932..1f1330839 100644 --- a/cis/private/profile/index.php +++ b/cis/private/profile/index.php @@ -293,36 +293,9 @@ if (!$ansicht) $adresse = new adresse(); $adresse->load_pers($user->person_id); - function sortAdresse($a , $b) - { - if ($a->typ === $b->typ) - return 0; - - return ($a->typ < $b->typ) ? -1 : 1; - } - usort($adresse->result, "sortAdresse"); foreach($adresse->result as $a) { - if ($a->zustelladresse) - { - switch ($a->typ) - { - case "h": - $typ = $p->t("global/hauptwohnsitz"); - break; - case "n": - $typ = $p->t("global/nebenwohnsitz"); - break; - default: - $typ = NULL; - break; - } - if ($typ !== NULL) - { - echo "".$typ.":
"; - echo $a->strasse."
".$a->plz." ".$a->ort."

"; - } - } + echo $a->strasse . " (" . $a->bezeichnung_mehrsprachig[$sprache] .") " . "
".$a->plz." ".$a->ort."

"; } } diff --git a/content/adressedialog.xul.php b/content/adressedialog.xul.php index f4f530bf0..50fb92b00 100644 --- a/content/adressedialog.xul.php +++ b/content/adressedialog.xul.php @@ -70,13 +70,15 @@ else diff --git a/include/adresse.class.php b/include/adresse.class.php index ffdb08582..801a95650 100644 --- a/include/adresse.class.php +++ b/include/adresse.class.php @@ -53,6 +53,9 @@ class adresse extends basis_db public $rechnungsadresse=false; // boolean public $anmerkung; // string public $co_name; + public $adressentyp; + public $bezeichnung; + public $bezeichnung_mehrsprachig; /** * Konstruktor @@ -133,10 +136,10 @@ class adresse extends basis_db $this->errormsg = 'person_id muss eine gültige Zahl sein'; return false; } - + $sprache = new sprache(); //Lesen der Daten aus der Datenbank - $qry = "SELECT * FROM public.tbl_adresse WHERE person_id=".$this->db_add_param($pers_id, FHC_INTEGER, false); - $qry.=" ORDER BY zustelladresse DESC"; + $qry = "SELECT *, ". $sprache->getSprachQuery('bezeichnung_mehrsprachig') ." FROM public.tbl_adresse JOIN public.tbl_adressentyp ON typ = adressentyp_kurzbz WHERE person_id=".$this->db_add_param($pers_id, FHC_INTEGER, false); + $qry.=" ORDER BY zustelladresse DESC, sort"; if(!$this->db_query($qry)) { @@ -167,6 +170,7 @@ class adresse extends basis_db $adr_obj->co_name = $row->co_name; $adr_obj->rechnungsadresse = $this->db_parse_bool($row->rechnungsadresse); $adr_obj->anmerkung = $row->anmerkung; + $adr_obj->bezeichnung_mehrsprachig = $sprache->parseSprachResult('bezeichnung_mehrsprachig',$row); $this->result[] = $adr_obj; } @@ -519,5 +523,29 @@ class adresse extends basis_db } return true; } + + public function getAdressentyp() + { + $qry = "SELECT * FROM public.tbl_adressentyp ORDER BY sort;"; + + if($this->db_query($qry)) + { + while($row = $this->db_fetch_object()) + { + $obj = new adresse(); + + $obj->adressentyp = $row->adressentyp_kurzbz; + $obj->bezeichnung = $row->bezeichnung; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> diff --git a/rdf/adressentyp.rdf.php b/rdf/adressentyp.rdf.php new file mode 100644 index 000000000..b34a96cc6 --- /dev/null +++ b/rdf/adressentyp.rdf.php @@ -0,0 +1,67 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +// header für no cache +header("Cache-Control: no-cache"); +header("Cache-Control: post-check=0, pre-check=0",false); +header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); +header("Pragma: no-cache"); +// content type setzen +header("Content-type: application/xhtml+xml"); +// xml +echo ''; +// DAO +require_once('../config/vilesci.config.inc.php'); +require_once('../include/adresse.class.php'); + +$adresse = new adresse(); + +$rdf_url='http://www.technikum-wien.at/adressentyp'; +echo ' + + + +'; + +if ($adresse->getAdressentyp()) +{ + foreach ($adresse->result as $row) + { + echo ' + + + adressentyp.']]> + bezeichnung.']]> + + + '; + } +} +else +{ + echo $adresse->errormsg; +} +?> + + diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 45c9e9e42..7d16dad1b 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4916,6 +4916,42 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_zgvpruefungstatus_status echo ' public.tbl_zgvpruefungstatus_status: Tabelle hinzugefuegt
'; } +// Add table adressentyp +if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_adressentyp LIMIT 1;")) +{ + $qry = " + CREATE TABLE public.tbl_adressentyp + ( + adressentyp_kurzbz varchar(32), + bezeichnung varchar(256), + bezeichnung_mehrsprachig varchar(256)[], + sort smallint + ); + + COMMENT ON TABLE public.tbl_adressentyp IS 'Types of Addresses'; + ALTER TABLE public.tbl_adressentyp ADD CONSTRAINT pk_tbl_adressentyp PRIMARY KEY (adressentyp_kurzbz); + + INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('h', 'Hauptwohnsitz', '{\"Hauptwohnsitz\", \"Principal residence\"}', 1); + INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('n', 'Nebenwohnsitz', '{\"Nebenwohnsitz\", \"Secondary residence\"}', 2); + INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('ho', 'Homeoffice', '{\"Homeoffice\", \"Homeoffice\"}', 3); + INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('r', 'Rechnungsadresse', '{\"Rechnungsadresse\", \"Billing address\"}', 4); + INSERT INTO public.tbl_adressentyp(adressentyp_kurzbz, bezeichnung, bezeichnung_mehrsprachig, sort) VALUES ('f', 'Firma', '{\"Firma\", \"Company\"}', 5); + + UPDATE public.tbl_adresse SET typ = 'f' WHERE person_id IS NULL AND (typ IS NULL OR typ = ''); + UPDATE public.tbl_adresse SET typ = 'h' WHERE person_id IS NOT NULL AND typ IS NULL; + + ALTER TABLE public.tbl_adresse ADD CONSTRAINT fk_tbl_adresse_adressentyp FOREIGN KEY (typ) REFERENCES public.tbl_adressentyp (adressentyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; + + GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_adressentyp TO vilesci; + GRANT SELECT ON public.tbl_adressentyp TO web; + "; + + if(!$db->db_query($qry)) + echo 'public.tbl_adressentyp: '.$db->db_last_error().'
'; + else + echo ' public.tbl_adressentyp: Tabelle hinzugefuegt
'; +} + // Add index to lehre.tbl_pruefung if ($result = $db->db_query("SELECT * FROM pg_class WHERE relname='idx_tbl_pruefung_student_uid'")) { @@ -5181,6 +5217,7 @@ $tabellen=array( "lehre.tbl_zeugnisnote" => array("lehrveranstaltung_id","student_uid","studiensemester_kurzbz","note","uebernahmedatum","benotungsdatum","bemerkung","updateamum","updatevon","insertamum","insertvon","ext_id","punkte"), "public.ci_apikey" => array("apikey_id","key","level","ignore_limits","date_created"), "public.tbl_adresse" => array("adresse_id","person_id","name","strasse","plz","ort","gemeinde","nation","typ","heimatadresse","zustelladresse","firma_id","updateamum","updatevon","insertamum","insertvon","ext_id","rechnungsadresse","anmerkung", "co_name"), + "public.tbl_adressentyp" => array("adressentyp_kurzbz", "bezeichnung", "bezeichnung_mehrsprachig", "sort"), "public.tbl_akte" => array("akte_id","person_id","dokument_kurzbz","uid","inhalt","mimetype","erstelltam","gedruckt","titel","bezeichnung","updateamum","updatevon","insertamum","insertvon","ext_id","dms_id","nachgereicht","anmerkung","titel_intern","anmerkung_intern","nachgereicht_am","ausstellungsnation","formal_geprueft_amum","archiv","signiert","stud_selfservice","akzeptiertamum"), "public.tbl_ampel" => array("ampel_id","kurzbz","beschreibung","benutzer_select","deadline","vorlaufzeit","verfallszeit","insertamum","insertvon","updateamum","updatevon","email","verpflichtend","buttontext"), "public.tbl_ampel_benutzer_bestaetigt" => array("ampel_benutzer_bestaetigt_id","ampel_id","uid","insertamum","insertvon"), From 79d7f91794892954366f48a05d0d6fdcc0352379 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 4 Oct 2021 09:57:51 +0200 Subject: [PATCH 030/227] deleted ; --- include/adresse.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/adresse.class.php b/include/adresse.class.php index 801a95650..0d4e6a7ca 100644 --- a/include/adresse.class.php +++ b/include/adresse.class.php @@ -526,7 +526,7 @@ class adresse extends basis_db public function getAdressentyp() { - $qry = "SELECT * FROM public.tbl_adressentyp ORDER BY sort;"; + $qry = "SELECT * FROM public.tbl_adressentyp ORDER BY sort"; if($this->db_query($qry)) { From 3ff3353aae398d9dc910b4bd5ee5490d217752ec Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 8 Oct 2021 10:24:46 +0200 Subject: [PATCH 031/227] Aufnahme von hacek-Sonderzeichen in Funktion covertProblemChars --- content/mitarbeiter/mitarbeiteroverlay.js.php | 13 ++++ include/functions.inc.php | 64 +++++++++++-------- 2 files changed, 49 insertions(+), 28 deletions(-) diff --git a/content/mitarbeiter/mitarbeiteroverlay.js.php b/content/mitarbeiter/mitarbeiteroverlay.js.php index b87a309f8..13a6d011c 100644 --- a/content/mitarbeiter/mitarbeiteroverlay.js.php +++ b/content/mitarbeiter/mitarbeiteroverlay.js.php @@ -2010,3 +2010,16 @@ function MitarbeiterUDFIFrameLoad() } catch(e) {} } + +// **** +// * Validierung Alias auf Sonderzeichen (analog zu checkWunschUid, außerdem . und _ erlaubt) +// **** +function checkAlias() +{ + var alias = document.getElementById('mitarbeiter-detail-textbox-alias').value; + + if (/^[a-z0-9 . _]*$/i.test(alias) === false) + { + alert('Der Alias darf keine Sonderzeichen enthalten'); + } +} diff --git a/include/functions.inc.php b/include/functions.inc.php index 587860982..8109a2035 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -455,42 +455,50 @@ function intersect($str1, $str2) * Konvertiert Problematische Sonderzeichen in Strings fuer * Accountnamen und EMail-Aliase * - * @param $str - * @return bereinigter String + * @param string $str Inputparameter. + * @return string bereinigter String. */ function convertProblemChars($str) { $enc = 'UTF-8'; $acentos = array( - 'A' => '/À|Á|Â|Ã|Å/', - 'Ae' => '/Ä/', - 'a' => '/à|á|â|ã|å/', - 'ae'=> '/ä/', - 'C' => '/Ç/', - 'c' => '/ç/', - 'E' => '/È|É|Ê|Ë/', - 'e' => '/è|é|ê|ë/', - 'I' => '/Ì|Í|Î|Ï/', - 'i' => '/ì|í|î|ï/', - 'N' => '/Ñ/', - 'n' => '/ñ/', - 'O' => '/Ò|Ó|Ô|Õ/', - 'Oe' => '/Ö/', - 'o' => '/ò|ó|ô|õ/', - 'oe' => '/ö/', - 'U' => '/Ù|Ú|Û/', - 'Ue' => '/Ü/', - 'u' => '/ù|ú|û/', - 'ue' => '/ü/', - 'Y' => '/Ý/', - 'y' => '/ý|ÿ/', - 'a.' => '/ª/', - 'o.' => '/º/', - 'ss' => '/ß/' + 'A' => '/À|Á|Â|Ã|Å|Ă|Ǎ/', + 'Ae' => '/Ä/', + 'a' => '/à|á|â|ã|å|ă|ǎ/', + 'ae' => '/ä/', + 'C' => '/Ç|Č/', + 'c' => '/ç|č/', + 'E' => '/È|É|Ê|Ë/', + 'e' => '/è|é|ê|ë/', + 'I' => '/Ì|Í|Î|Ï|Ǐ/', + 'i' => '/ì|í|î|ï|ǐ/', + 'N' => '/Ñ|Ň|ň/', + 'n' => '/ñ/', + 'O' => '/Ò|Ó|Ô|Õ|Ǒ/', + 'Oe' => '/Ö/', + 'o' => '/ò|ó|ô|õ|ǒ/', + 'oe' => '/ö/', + 'R' => '/Ř/', + 'r' => '/ř/', + 'S' => '/Š/', + 's' => '/š/', + 'T' => '/Ť/', + 't' => '/ť/', + 'U' => '/Ù|Ú|Û|Ŭ|Ǔ/', + 'Ue' => '/Ü/', + 'u' => '/ù|ú|û|ŭ|ǔ/', + 'ue' => '/ü/', + 'Y' => '/Ý/', + 'y' => '/ý|ÿ/', + 'Z' => '/Ž/', + 'z' => '/ž/', + 'a.' => '/ª/', + 'o.' => '/º/', + 'ss' => '/ß/' ); - return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc)); + return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc)); } //Ersetzt alle Problemzeichen in einem String bevor dieser als xml oder rdf ausgegeben wird From 4f0b34137b3a943067094beba2785c7e6bb93f5a Mon Sep 17 00:00:00 2001 From: KarpAlex Date: Mon, 11 Oct 2021 18:48:25 +0200 Subject: [PATCH 032/227] replacement of hatschek letters added in hlp_common_helper.php to be the same as in function.inc.php --- application/helpers/hlp_common_helper.php | 34 ++++++++++++++--------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/application/helpers/hlp_common_helper.php b/application/helpers/hlp_common_helper.php index a7eda8827..7b937d73d 100644 --- a/application/helpers/hlp_common_helper.php +++ b/application/helpers/hlp_common_helper.php @@ -314,32 +314,40 @@ function sanitizeProblemChars($str) $enc = 'UTF-8'; $acentos = array( - 'A' => '/À|Á|Â|Ã|Å/', + 'A' => '/À|Á|Â|Ã|Å|Ă|Ǎ/', 'Ae' => '/Ä/', - 'a' => '/à|á|â|ã|å/', - 'ae'=> '/ä/', - 'C' => '/Ç/', - 'c' => '/ç/', + 'a' => '/à|á|â|ã|å|ă|ǎ/', + 'ae' => '/ä/', + 'C' => '/Ç|Č/', + 'c' => '/ç|č/', 'E' => '/È|É|Ê|Ë/', 'e' => '/è|é|ê|ë/', - 'I' => '/Ì|Í|Î|Ï/', - 'i' => '/ì|í|î|ï/', - 'N' => '/Ñ/', + 'I' => '/Ì|Í|Î|Ï|Ǐ/', + 'i' => '/ì|í|î|ï|ǐ/', + 'N' => '/Ñ|Ň|ň/', 'n' => '/ñ/', - 'O' => '/Ò|Ó|Ô|Õ/', + 'O' => '/Ò|Ó|Ô|Õ|Ǒ/', 'Oe' => '/Ö/', - 'o' => '/ò|ó|ô|õ/', + 'o' => '/ò|ó|ô|õ|ǒ/', 'oe' => '/ö/', - 'U' => '/Ù|Ú|Û/', + 'R' => '/Ř/', + 'r' => '/ř/', + 'S' => '/Š/', + 's' => '/š/', + 'T' => '/Ť/', + 't' => '/ť/', + 'U' => '/Ù|Ú|Û|Ŭ|Ǔ/', 'Ue' => '/Ü/', - 'u' => '/ù|ú|û/', + 'u' => '/ù|ú|û|ŭ|ǔ/', 'ue' => '/ü/', 'Y' => '/Ý/', 'y' => '/ý|ÿ/', + 'Z' => '/Ž/', + 'z' => '/ž/', 'a.' => '/ª/', 'o.' => '/º/', 'ss' => '/ß/' ); - return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc)); + return preg_replace($acentos, array_keys($acentos), htmlentities($str, ENT_NOQUOTES | ENT_HTML5, $enc)); } From 35cdac0438dc7399028c2b500a5b0e64bd981295 Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Tue, 12 Oct 2021 10:51:10 +0200 Subject: [PATCH 033/227] Small Code Enhencement Signed-off-by: cris-technikum --- .../lehre/anrechnung/ApproveAnrechnungUebersicht.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php index 70fae2b57..25c802caf 100644 --- a/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php +++ b/application/controllers/lehre/anrechnung/ApproveAnrechnungUebersicht.php @@ -379,23 +379,24 @@ class approveAnrechnungUebersicht extends Auth_Controller $this->load->model('education/Lehrveranstaltung_model', 'LehrveranstaltungModel'); $result = $this->LehrveranstaltungModel->getLecturersByLv($anrechnung['studiensemester_kurzbz'], $anrechnung['lehrveranstaltung_id']); - if (!$result = getData($result)) + if (!hasData($result)) { show_error('Failed retrieving lectors of Lehrveranstaltung'); } + $lecturersByLv = getData($result); + // Check if lv has LV-Leitung - $key = array_search(true, array_column($result, 'lvleiter')); - + $key = array_search(true, array_column($lecturersByLv, 'lvleiter')); // If lv has LV-Leitung, keep only the one if ($key !== false) { - $lector_arr[]= $result[$key]; + $lector_arr[]= $lecturersByLv[$key]; } // ...otherwise keep all lectors else { - $lector_arr = array_merge($lector_arr, $result); + $lector_arr = array_merge($lector_arr, $lecturersByLv); } } From 8677cbf6dc9dd4b1c878cf8ba404534ff2e90d8b Mon Sep 17 00:00:00 2001 From: cris-technikum Date: Tue, 12 Oct 2021 12:11:06 +0200 Subject: [PATCH 034/227] Fixed requesting Anrechnungsantrag although grade is a blocking grade Blocking grades (eg angerechnet), that should not allow the student to request for Anrechnung, were not fully blocking. This is fixed now. Signed-off-by: cris-technikum --- .../controllers/lehre/anrechnung/RequestAnrechnung.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/controllers/lehre/anrechnung/RequestAnrechnung.php b/application/controllers/lehre/anrechnung/RequestAnrechnung.php index 306ce5841..bc886a876 100644 --- a/application/controllers/lehre/anrechnung/RequestAnrechnung.php +++ b/application/controllers/lehre/anrechnung/RequestAnrechnung.php @@ -324,8 +324,8 @@ class requestAnrechnung extends Auth_Controller private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id) { // Get Note of Lehrveranstaltung - $this->load->model('education/Lvgesamtnote_model', 'LvgesamtnoteModel'); - $result = $this->LvgesamtnoteModel->load(array( + $this->load->model('education/Zeugnisnote_model', 'ZeugnisnoteModel'); + $result = $this->ZeugnisnoteModel->load(array( 'student_uid' => $this->_uid, 'studiensemester_kurzbz' => $studiensemester_kurzbz, 'lehrveranstaltung_id' => $lehrveranstaltung_id From f82315cfe748aaa25bdf1241eddf6aa9969df3aa Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 13 Oct 2021 10:46:05 +0200 Subject: [PATCH 035/227] ermoeglicht das einloggen wenn 2 Reihungstests am selben Tag sind --- cis/testtool/login.php | 5 +++-- include/reihungstest.class.php | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cis/testtool/login.php b/cis/testtool/login.php index a738c0a88..f10d4928a 100644 --- a/cis/testtool/login.php +++ b/cis/testtool/login.php @@ -132,7 +132,7 @@ if (isset($_REQUEST['prestudent'])) } else { - if ($rt->getReihungstestPersonDatum($ps->prestudent_id, date('Y-m-d'))) + if ($rt->getReihungstestPersonDatum($ps->prestudent_id, $ps->studiengang_kz, date('Y-m-d'))) { // TODO Was ist wenn da mehrere Zurueckkommen?! if (isset($rt->result[0])) @@ -149,6 +149,7 @@ if (isset($_REQUEST['prestudent'])) } if ($reihungstest_id != '' && $rt->load($reihungstest_id)) { + if ($rt->freigeschaltet) { // regenerate Session ID after Login @@ -699,7 +700,7 @@ else // LOGIN Site (vor Login) else $selected=''; echo ' - \n'; + \n'; } // An der FHTW gibt es 3 Testuser für den Camus International if (CAMPUS_NAME == 'FH Technikum Wien') diff --git a/include/reihungstest.class.php b/include/reihungstest.class.php index f5cd72b4a..138c6996e 100644 --- a/include/reihungstest.class.php +++ b/include/reihungstest.class.php @@ -1245,7 +1245,7 @@ class reihungstest extends basis_db * @param date $datum Datum an dem der Reihugnstest stattfindet. * @return boolean true wenn erfolgreich geladen, false im Fehlerfall */ - public function getReihungstestPersonDatum($prestudent_id, $datum) + public function getReihungstestPersonDatum($prestudent_id, $studiengang_kz,$datum) { $qry = "SELECT tbl_rt_person.* @@ -1255,6 +1255,7 @@ class reihungstest extends basis_db JOIN public.tbl_reihungstest ON(tbl_reihungstest.reihungstest_id=tbl_rt_person.rt_id) WHERE tbl_prestudent.prestudent_id = ".$this->db_add_param($prestudent_id)." + AND tbl_reihungstest.studiengang_kz = ". $this->db_add_param($studiengang_kz) ." AND tbl_reihungstest.datum=".$this->db_add_param($datum); if ($result = $this->db_query($qry)) { From 9d08d0067653e3321d499acbecbfaaad59034a73 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Thu, 14 Oct 2021 15:37:15 +0200 Subject: [PATCH 036/227] tbl_adresse typ von char auf varchar geaendert --- system/dbupdate_3.3.php | 1 + 1 file changed, 1 insertion(+) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 7d16dad1b..b857c7c64 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -4941,6 +4941,7 @@ if(!$result = @$db->db_query("SELECT 1 FROM public.tbl_adressentyp LIMIT 1;")) UPDATE public.tbl_adresse SET typ = 'h' WHERE person_id IS NOT NULL AND typ IS NULL; ALTER TABLE public.tbl_adresse ADD CONSTRAINT fk_tbl_adresse_adressentyp FOREIGN KEY (typ) REFERENCES public.tbl_adressentyp (adressentyp_kurzbz) ON UPDATE CASCADE ON DELETE RESTRICT; + ALTER TABLE public.tbl_adresse ALTER COLUMN typ TYPE varchar(32); GRANT SELECT, INSERT, UPDATE, DELETE ON public.tbl_adressentyp TO vilesci; GRANT SELECT ON public.tbl_adressentyp TO web; From 269f3542d7b28bd4f485ef877c8b69a43d751fd8 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 14 Oct 2021 15:39:17 +0200 Subject: [PATCH 037/227] Zeiterfassung: keine Bis-Buchungen 00:00:00 bzw. 24:00:00 erlaubt --- cis/private/tools/zeitaufzeichnung.php | 27 +++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index fcf3dd811..92f32d114 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -861,10 +861,11 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) } else { - $vonCSV = $datum->formatDatum($data[2], $format='Y-m-d'); - $bisCSV = $datum->formatDatum($data[3], $format='Y-m-d'); + $vonCSV = $datum->formatDatum($data[2], $format = 'Y-m-d'); + $bisCSV = $datum->formatDatum($data[3], $format = 'Y-m-d'); $dateVonCSV = new DateTime($vonCSV); $dateBisCSV = new DateTime($bisCSV); + $extractHourBis = $datum->formatDatum($data[3], $format = 'H:i:s'); if (!isset($data[5])) $data[5] = NULL; @@ -882,6 +883,10 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) { echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).
'; } + elseif ($extractHourBis == '00:00:00') + { + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Bitte Arbeitszeiten gemäß Arbeitsaufzeichnung Leitfaden tagesgenau abgrenzen: Nur Eingaben von 00:00 bis 23:59 erlaubt!
'; + } elseif (empty($data[7]) && !empty($data[6]) && !$projects_of_user->checkProjectInCorrectTime($data[6], $data[2], $data[3])) { echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektzeitrahmen fällt: ('.$data[2].') ('.$data[3].')
'; @@ -932,18 +937,13 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $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("zeitaufzeichnung/homeofficeNichtErlaubt", ($vonCSV)) .'
'; - $zeit->homeoffice = false; } } @@ -1050,8 +1050,8 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $zeit->uid = $user; $zeit->aktivitaet_kurzbz = $aktivitaet_kurzbz; - $zeit->start = $datum->formatDatum($von, $format='Y-m-d H:i:s'); - $zeit->ende = $datum->formatDatum($bis, $format='Y-m-d H:i:s'); + $zeit->start = $datum->formatDatum($von, $format = 'Y-m-d H:i:s'); + $zeit->ende = $datum->formatDatum($bis, $format = 'Y-m-d H:i:s'); $zeit->beschreibung = $beschreibung; $zeit->oe_kurzbz_1 = $oe_kurzbz_1; $zeit->oe_kurzbz_2 = $oe_kurzbz_2; @@ -1063,6 +1063,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $zeit->service_id = $service_id; $zeit->kunde_uid = $kunde_uid; $saveerror = 0; + $extractTimeBis = $datum->formatDatum($bis, $format = 'H:i:s'); if (!$projects_of_user->checkProjectInCorrectTime($projekt_kurzbz, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d'))) { @@ -1081,11 +1082,16 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $saveerror = 1; } - elseif (abs($von-$bis)>0 && $aktivitaet_kurzbz!="DienstreiseMT") + elseif (abs($von-$bis)>0 && $aktivitaet_kurzbz!="DienstreiseMT" && $extractTimeBis != '00:00:00') { echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).
'; $saveerror = 1; } + elseif ($extractTimeBis == '00:00:00') + { + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Bitte Arbeitszeiten gemäß Arbeitsaufzeichnung Leitfaden tagesgenau abgrenzen: Nur Eingaben von 00:00 bis 23:59 erlaubt!
'; + $saveerror = 1; + } elseif (isset($_POST['genPause']) && (isset($_POST['save']) || isset($_POST['edit']))) { @@ -1765,7 +1771,6 @@ if ($projekt->getProjekteMitarbeiter($user, true)) } else $zeitsperre_text = ''; - //var_dump($zs->result); if (isset($_GET["von_datum"]) && $datum->formatDatum($tag, 'd.m.Y') == $_GET["von_datum"]) $style = 'style="border-top: 3px solid #8DBDD8; border-bottom: 3px solid #8DBDD8"'; From aa3a52f201ad0ead1dbf4f561a99d45fb148fade Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 15 Oct 2021 11:36:15 +0200 Subject: [PATCH 038/227] =?UTF-8?q?Aufnahme=20PhasenReset=20f=C3=BCr=20neu?= =?UTF-8?q?e=20Validierung=20Zeitabgrenzung=2000:00:00?= 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 b938b3cb1..8171262b4 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1089,7 +1089,7 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) } elseif ($extractTimeBis == '00:00:00') { - echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Bitte Arbeitszeiten gemäß Arbeitsaufzeichnung Leitfaden tagesgenau abgrenzen: Nur Eingaben von 00:00 bis 23:59 erlaubt!
'; + echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Bitte Arbeitszeiten gemäß Arbeitsaufzeichnung Leitfaden tagesgenau abgrenzen: Nur Eingaben von 00:00 bis 23:59 erlaubt!
'; $saveerror = 1; } elseif (isset($_POST['genPause']) && (isset($_POST['save']) || isset($_POST['edit']))) From ef14336b0b17f3cff61911ae969d4b0aca1cea9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 15 Oct 2021 14:04:20 +0200 Subject: [PATCH 039/227] =?UTF-8?q?Zus=C3=A4tzliche=20Aktivit=C3=A4tenfilt?= =?UTF-8?q?er=20f=C3=BCr=20Zeitaufzeichnung=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index fcf3dd811..946001b3b 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -96,12 +96,12 @@ $fieldheadings = array( if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung')) { $za_simple = 0; - $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'FuE', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe'); + $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'FuE', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe', 'Weiterbildung', 'LVEntwicklung'); } else { $za_simple = 1; - $activities = array('Admin', 'FuE','Lehre', 'Pause', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe'); + $activities = array('Admin', 'FuE','Lehre', 'Pause', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe', 'Weiterbildung', 'LVEntwicklung'); } $activities_str = "'".implode("','", $activities)."'"; From b6b347ff8b0274568cf823b97e0499977f765817 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 18 Oct 2021 11:10:13 +0200 Subject: [PATCH 040/227] Merge Detailsicht Vorgesetzte --- cis/private/tools/zeitaufzeichnung.php | 99 ++++++++++++++++++-------- 1 file changed, 71 insertions(+), 28 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index fcf3dd811..e4cfbf892 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -61,16 +61,24 @@ $passuid = false; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); +$mas = new mitarbeiter(); +$mas->getUntergebene($user, true); +$untergebenen_arr = array(); +$untergebenen_arr = $mas->untergebene; +$adminView = false; + //Wenn User Administrator ist und UID uebergeben wurde, dann die Zeitaufzeichnung //des uebergebenen Users anzeigen if(isset($_GET['uid'])) { - if($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid')) + if ($rechte->isBerechtigt('admin') || $rechte->isBerechtigt('mitarbeiter/urlaube', null, 'suid') || + (in_array($_GET['uid'], $untergebenen_arr))) { $user = $_GET['uid']; $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); $passuid = true; + $adminView = true; } else { @@ -1287,13 +1295,33 @@ if ($projekt->getProjekteMitarbeiter($user, true)) } echo '

'.$p->t("urlaubstool/meineZeitsperren").'

'; echo $p->t("zeitaufzeichnung/supportAnfragen"); - echo ' - -
'; + echo ''; + if (isset($_GET['projektexport'])) + { + $projektexpurl = dirname($_SERVER["PHP_SELF"]) .'/zeitaufzeichnung_projektliste.php'; + $aktjahr = intval(date("Y")); + $aktmonat = intval(date("m")) - 1; + $jahreanz = 3; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + if ($passuid) + echo ''; + echo ''; + echo ''; + echo ''; + } - //OE_KURZBZ_1 - echo ' - '; + echo '

'.$p->t('zeitaufzeichnung/projektexport').''.$p->t('zeitaufzeichnung/monat').' '.$p->t('zeitaufzeichnung/jahr').'

'.$p->t("zeitaufzeichnung/organisationseinheiten").' + + '; + if (!$adminView) + { + echo '
'; + } + echo ''; + echo '
'; - echo '
'; + echo '';*/ + if (isset($_GET['csvimport'])) + { + echo ''; + echo ''; + echo ''; + echo ''; + } + else + echo ''; + + if (isset($_GET['csvexport'])) + { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + + if (isset($_GET['projektübersichtexport'])) + { + + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + } + + //Aktivitaet + echo ''; + echo ''; + + + if($za_simple >= 0) + { + $oestyle = ''; + if($za_simple == 0) + $oestyle = 'style="width:200px;"'; + + //OE_KURZBZ_1 + echo ' + '; + echo ''; } + echo ''; + } - //Projekte werden nicht angezeigt wenn es keine gibt - if($anzprojekte > 0) + //Projekte werden nicht angezeigt wenn es keine gibt + if($anzprojekte > 0) + { + //Projekt + echo ' + + - - '; + echo ''; } + echo ''; + } - if ($za_simple == 0) + if ($za_simple == 0) + { + // Service + echo ' + + - - - '; - - // person für Kundenvoransicht laden - $kunde_name = ''; - if($kunde_uid != '') - { - $user_kunde = new benutzer(); - - if($user_kunde->load($kunde_uid)) - $kunde_name=$user_kunde->vorname.' '.$user_kunde->nachname; - } - echo ' - - - + echo ''; + } + echo ''; - echo ''; - } - //Start/Ende - $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; + // person für Kundenvoransicht laden + $kunde_name = ''; + if($kunde_uid != '') + { + $user_kunde = new benutzer(); + + if($user_kunde->load($kunde_uid)) + $kunde_name=$user_kunde->vorname.' '.$user_kunde->nachname; + } echo ' - - + + '; + echo ''; + } + + //Start/Ende + $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; + echo ' + + + '; + if ($za_simple == 0 || $anzprojekte > 0) + { + echo ' + '; - if ($za_simple == 0 || $anzprojekte > 0) - { - echo ' - '; + } + echo ' + + '; + echo ' + + + + + '; -   + - - min. - -   - - '; - } - else - { - echo ''; - } - echo ' - - '; - echo ' - - - - - '; + if (!$adminView) + { //Beschreibung echo ''; echo ''; else { @@ -1514,91 +1488,93 @@ if($projekt->getProjekteMitarbeiter($user, true)) echo '  '; echo ''; } + } echo '

CSV-Import
Informationen zum Format der CSV-Datei s. Leitfaden Arbeitszeitaufzeichnung


CSV-Export'.$p->t('zeitaufzeichnung/startdatum').' '.$p->t('zeitaufzeichnung/enddatum').'


CSV-Export

'.$p->t("zeitaufzeichnung/aktivitaet").''; + //if ($za_simple == 1) + $qry = "SELECT * FROM fue.tbl_aktivitaet where aktivitaet_kurzbz in (".$activities_str.") ORDER by sort,beschreibung"; + //else + // $qry = "SELECT * FROM fue.tbl_aktivitaet where sort != 5 or sort is null ORDER by sort,beschreibung"; + if($result = $db->db_query($qry)) + { + echo ''; + } + echo '
'.$p->t("zeitaufzeichnung/organisationseinheiten").'     '; + if($za_simple == 0) + { + //OE_KURZBZ_2 + echo '     '; - if($za_simple == 0) - { - //OE_KURZBZ_2 - echo ''; - } - echo '
'.$p->t("zeitaufzeichnung/projekt").'
'.$p->t("zeitaufzeichnung/projekt").''; + + //Projektphase + $showprojphases = isset($projektphasen) && is_array($projektphasen) && count($projektphasen) > 0 && $projektfound; + $hiddentext = $showprojphases ? "" : " style='display:none'"; + + echo + '    '. + $p->t("zeitaufzeichnung/projektphase").' + '; - - //Projektphase - $showprojphases = isset($projektphasen) && is_array($projektphasen) && count($projektphasen) > 0 && $projektfound; - $hiddentext = $showprojphases ? "" : " style='display:none'"; - - echo - '    '. - $p->t("zeitaufzeichnung/projektphase").' - '; - } - echo '
'.$p->t('zeitaufzeichnung/service').'
'.$p->t('zeitaufzeichnung/service').'
'.$p->t("zeitaufzeichnung/kunde").' '.$p->t("zeitaufzeichnung/oderKartennummerOptional").' -
 
'.$p->t("global/von").' - '.$p->t("global/bis").' - - + '.$p->t("zeitaufzeichnung/kunde").' '.$p->t("zeitaufzeichnung/oderKartennummerOptional").' +
 
'.$p->t("global/von").' - '.$p->t("global/bis").' + + + +   + + +   + + + min. + +   + -   - + } + else + { + echo ' -  + + +
  + + '.$p->t("zeitaufzeichnung/pauseEinfuegen").' - + +
 -  - - -
  - - '.$p->t("zeitaufzeichnung/pauseEinfuegen").' - - -
'.$p->t("global/beschreibung").'
'; //SpeichernButton - if($zeitaufzeichnung_id=='') + if($zeitaufzeichnung_id == '') echo '
'; + echo '


'; - echo '


'; - echo '
'; + // Summen Lehre anzeigen + $bv = new bisverwendung(); + $bv->getLastAktVerwendung($user); + $lehre_inkludiert = $bv->inkludierte_lehre; + if (!$lehre_inkludiert) + $lehre_inkludiert = 0; - // Summen Lehre anzeigen - $bv = new bisverwendung(); - $bv->getLastAktVerwendung($user); - $lehre_inkludiert = $bv->inkludierte_lehre; - if (!$lehre_inkludiert) - $lehre_inkludiert = 0; - - $stsem = new studiensemester(); - $sem_akt = $stsem->getakt(); - $lehre = new zeitaufzeichnung(); - $l_arr = $lehre->getLehreForUser($user, $sem_akt); - if ($l_arr["LehreAuftraege"]>0 || $l_arr["Lehre"] > 0 || $l_arr["LehreExtern"] > 0) + $stsem = new studiensemester(); + $sem_akt = $stsem->getakt(); + $lehre = new zeitaufzeichnung(); + $l_arr = $lehre->getLehreForUser($user, $sem_akt); + if ($l_arr["LehreAuftraege"]>0 || $l_arr["Lehre"] > 0 || $l_arr["LehreExtern"] > 0) + { + if ($lehre_inkludiert == -1) { - if ($lehre_inkludiert == -1) - { - $l_extern_soll = 0; - $lehre_inkludiert = $l_arr["LehreAuftraege"]; - } - else - $l_extern_soll = $l_arr["LehreAuftraege"]-$lehre_inkludiert; - $l_extern_soll_norm = $l_extern_soll/4*3; - $lehre_inkludiert_norm = $lehre_inkludiert/4*3; - echo ''; - echo ''; - echo ''; - echo ''; - if ($lehre_inkludiert > 0 || $l_arr["Lehre"] > 0) - echo ''; - if ($l_extern_soll > 0 || $l_arr["LehreExtern"] > 0) - echo ''; - - echo '

Übersicht Lehre '.$sem_akt.'

(in Stunden)
beauftragt (LE)gebucht
Lehre:'.$lehre_inkludiert_norm.' ('.$lehre_inkludiert.')'.$l_arr["Lehre"].'
LehreExtern:'.$l_extern_soll_norm.' ('.$l_extern_soll.')'.$l_arr["LehreExtern"].'
'; + $l_extern_soll = 0; + $lehre_inkludiert = $l_arr["LehreAuftraege"]; } - - echo '
'; - echo ''; - - echo '
'; - echo '

'.($alle===true?$p->t('zeitaufzeichnung/alleEintraege'):$p->t('zeitaufzeichnung/xTageAnsicht', array($angezeigte_tage))).'

'; - if ($alle===true) - echo ''; else - echo ''; - //echo ''; + $l_extern_soll = $l_arr["LehreAuftraege"]-$lehre_inkludiert; + $l_extern_soll_norm = $l_extern_soll/4*3; + $lehre_inkludiert_norm = $lehre_inkludiert/4*3; + echo ''; + echo ''; + echo ''; + echo ''; + if ($lehre_inkludiert > 0 || $l_arr["Lehre"] > 0) + echo ''; + if ($l_extern_soll > 0 || $l_arr["LehreExtern"] > 0) + echo ''; - $za = new zeitaufzeichnung(); - if(isset($_GET['filter'])) - $za->getListeProjekt($_GET['filter']); - else - { - if ($alle==true) - $za->getListeUserFull($user, ''); - else - $za->getListeUserFull($user, $angezeigte_tage); - } + echo '

Übersicht Lehre '.$sem_akt.'

(in Stunden)
beauftragt (LE)gebucht
Lehre:'.$lehre_inkludiert_norm.' ('.$lehre_inkludiert.')'.$l_arr["Lehre"].'
LehreExtern:'.$l_extern_soll_norm.' ('.$l_extern_soll.')'.$l_arr["LehreExtern"].'
'; + } - $summe=0; - $dr = new zeitaufzeichnung(); - $dr->getDienstreisenUser($user, 180); - $dr_arr = $dr->result; + echo '
'; + echo ''; - //var_dump($dr->result); + echo '
'; + echo '

'.($alle===true?$p->t('zeitaufzeichnung/alleEintraege'):$p->t('zeitaufzeichnung/xTageAnsicht', array($angezeigte_tage))).'

'; + if ($alle===true) + echo ''; + else + echo ''; + //echo ''; + $za = new zeitaufzeichnung(); + if(isset($_GET['filter'])) + $za->getListeProjekt($_GET['filter']); + else + { + if ($alle==true) + $za->getListeUserFull($user, ''); + else + $za->getListeUserFull($user, $angezeigte_tage); + } + $summe=0; + $dr = new zeitaufzeichnung(); + $dr->getDienstreisenUser($user, 180); + $dr_arr = $dr->result; + //var_dump($dr->result); - if(count($za->result)>0) - { - //Uebersichtstabelle - $woche=date('W'); - $colspan=($za_simple)?12:14; - echo ' - + if(count($za->result)>0) + { + //Uebersichtstabelle + $woche=date('W'); + $colspan=($za_simple)?12:14; + echo ' +
- - - '; - printTableHeadings($fieldheadings, $za_simple); + + + '; + printTableHeadings($fieldheadings, $za_simple); $tag=null; @@ -1618,196 +1594,196 @@ if($projekt->getProjekteMitarbeiter($user, true)) $pflichtpause = false; - foreach($za->result as $row) + foreach($za->result as $row) + { + $datumtag = $datum_obj->formatDatum($row->datum, 'Y-m-d'); + + // Nach jedem Tag eine Summenzeile einfuegen + if(is_null($tag)) + $tag = $datumtag; + if($tag!=$datumtag) { - $datumtag = $datum_obj->formatDatum($row->datum, 'Y-m-d'); - // Nach jedem Tag eine Summenzeile einfuegen - if(is_null($tag)) - $tag = $datumtag; - if($tag!=$datumtag) + //if ($row->uid) + //{ + if ($datum->formatDatum($tag,'N') == '6' || $datum->formatDatum($tag,'N') == '7') + $style = 'style="background-color:#eeeeee; font-size: 8pt;"'; + else + $style = 'style="background-color:#DCE4EF; font-size: 8pt;"'; + + // zeitsperren anzeigen + if (array_key_exists($datum->formatDatum($tag,'Y-m-d'), $zeitsperren)) { - - //if ($row->uid) - //{ - if ($datum->formatDatum($tag,'N') == '6' || $datum->formatDatum($tag,'N') == '7') - $style = 'style="background-color:#eeeeee; font-size: 8pt;"'; - else - $style = 'style="background-color:#DCE4EF; font-size: 8pt;"'; - - // zeitsperren anzeigen - if (array_key_exists($datum->formatDatum($tag,'Y-m-d'), $zeitsperren)) - { - $zeitsperre_text = " -- ".$zeitsperren[$datum->formatDatum($tag,'Y-m-d')]." -- "; - $style = 'style="background-color:#cccccc; font-size: 8pt;"'; - } - else - $zeitsperre_text = ''; - //var_dump($zs->result); - if (isset($_GET["von_datum"]) && $datum->formatDatum($tag, 'd.m.Y') == $_GET["von_datum"]) - $style = 'style="border-top: 3px solid #8DBDD8; border-bottom: 3px solid #8DBDD8"'; - - list($h1, $m1) = explode(':', $pausesumme); - $pausesumme = $h1*3600+$m1*60; - $tagessaldo = $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format='Y-m-d H:i:s'))-$datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s'))-3600; - foreach($extlehrearr as $el) - { - if ($el["start"] > $tagesbeginn && $el["ende"] < $tagesende) - $elsumme = $datum_obj->sumZeit($elsumme, $el["diff"]); - } - list($h2, $m2) = explode(':', $elsumme); - $elsumme = $h2*3600+$m2*60; - if ($datum->formatDatum($tag, 'Y-m-d') >= '2019-11-06') - { - $pausesumme = $pausesumme; - } - else if ($tagessaldo > 18000 && $tagessaldo < 19800 && $pflichtpause==false && $elsumme == 0) - { - $pausesumme = $tagessaldo-18000; - } - else if ($tagessaldo>18000 && $pflichtpause==false && $elsumme == 0) - { - $pausesumme = $pausesumme+1800; - } - - if ($elsumme > 0){ - $pausesumme = $pausesumme + $elsumme; - $pflichtpause = true; - } - - $tagessaldo = $tagessaldo-$pausesumme; - // fehlende Pausen berechnen - $pausefehlt_str = ''; - if ($tagessaldo > 19800 && $pausesumme < 1800) - $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; - 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 ' - - - '; - - - - $tag=$datumtag; - $tagessumme='00:00'; - $pausesumme='00:00'; - $elsumme='00:00'; - $ersumme = '00:00'; - $extlehrearr = array(); - $tagesbeginn = ''; - $tagesende = ''; - $pflichtpause = false; - $wochensaldo = $datum_obj->sumZeit($wochensaldo,$tagessaldo ); - //} - //else - //{ - // echo ''; - //} - + $zeitsperre_text = " -- ".$zeitsperren[$datum->formatDatum($tag,'Y-m-d')]." -- "; + $style = 'style="background-color:#cccccc; font-size: 8pt;"'; } - // Nach jeder Woche eine Summenzeile einfuegen und eine neue Tabelle beginnen - $datumwoche = $datum_obj->formatDatum($row->datum, 'W'); - if(is_null($woche)) - $woche = $datumwoche; - if($woche!=$datumwoche) + else + $zeitsperre_text = ''; + //var_dump($zs->result); + if (isset($_GET["von_datum"]) && $datum->formatDatum($tag, 'd.m.Y') == $_GET["von_datum"]) + $style = 'style="border-top: 3px solid #8DBDD8; border-bottom: 3px solid #8DBDD8"'; + + list($h1, $m1) = explode(':', $pausesumme); + $pausesumme = $h1*3600+$m1*60; + $tagessaldo = $datum->mktime_fromtimestamp($datum->formatDatum($tagesende, $format='Y-m-d H:i:s'))-$datum->mktime_fromtimestamp($datum->formatDatum($tagesbeginn, $format='Y-m-d H:i:s'))-3600; + foreach($extlehrearr as $el) { - if ($ersumme_woche != '00:00') - $erstr = ' (+ '.$ersumme_woche.')'; - else - { - $erstr = ''; - } - echo ' - - - - - - - - - - - '; - - $colspan=($za_simple)?12:14; - echo ' - - - - - - '; - printTableHeadings($fieldheadings, $za_simple); - - $woche=$datumwoche; - $wochensumme='00:00'; - $tagessumme='00:00'; - $pausesumme='00:00'; - $wochensaldo = '00:00'; - $ersumme = '00:00'; - $ersumme_woche = '00:00'; + if ($el["start"] > $tagesbeginn && $el["ende"] < $tagesende) + $elsumme = $datum_obj->sumZeit($elsumme, $el["diff"]); + } + list($h2, $m2) = explode(':', $elsumme); + $elsumme = $h2*3600+$m2*60; + if ($datum->formatDatum($tag, 'Y-m-d') >= '2019-11-06') + { + $pausesumme = $pausesumme; + } + else if ($tagessaldo > 18000 && $tagessaldo < 19800 && $pflichtpause==false && $elsumme == 0) + { + $pausesumme = $tagessaldo-18000; + } + else if ($tagessaldo>18000 && $pflichtpause==false && $elsumme == 0) + { + $pausesumme = $pausesumme+1800; } - // Diestreisen NEU - if (array_key_exists($datumtag, $dr_arr)) + if ($elsumme > 0){ + $pausesumme = $pausesumme + $elsumme; + $pflichtpause = true; + } + + $tagessaldo = $tagessaldo-$pausesumme; + // fehlende Pausen berechnen + $pausefehlt_str = ''; + if ($tagessaldo > 19800 && $pausesumme < 1800) + $pausefehlt_str = '-- Pause fehlt oder zu kurz --'; + 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 ''; - echo ''; - echo ''; - echo ' + + + '; + + + + $tag=$datumtag; + $tagessumme='00:00'; + $pausesumme='00:00'; + $elsumme='00:00'; + $ersumme = '00:00'; + $extlehrearr = array(); + $tagesbeginn = ''; + $tagesende = ''; + $pflichtpause = false; + $wochensaldo = $datum_obj->sumZeit($wochensaldo,$tagessaldo ); + //} + //else + //{ + // echo ''; + //} + + } + // Nach jeder Woche eine Summenzeile einfuegen und eine neue Tabelle beginnen + $datumwoche = $datum_obj->formatDatum($row->datum, 'W'); + if(is_null($woche)) + $woche = $datumwoche; + if($woche!=$datumwoche) + { + if ($ersumme_woche != '00:00') + $erstr = ' (+ '.$ersumme_woche.')'; + else + { + $erstr = ''; + } + echo ' + + + + + + + + + + + '; + + $colspan=($za_simple)?12:14; + echo ' + + + + + + '; + printTableHeadings($fieldheadings, $za_simple); + + $woche=$datumwoche; + $wochensumme='00:00'; + $tagessumme='00:00'; + $pausesumme='00:00'; + $wochensaldo = '00:00'; + $ersumme = '00:00'; + $ersumme_woche = '00:00'; + } + + // Diestreisen NEU + if (array_key_exists($datumtag, $dr_arr)) + { + $colspan=($za_simple)?6:8; + echo ''; + echo ''; + echo ''; + echo '\n"; - echo "\n"; - echo ''; - unset($dr_arr[$datumtag]); - } + echo "\n"; + echo "\n"; + echo ''; + unset($dr_arr[$datumtag]); + } - if ($row->uid) - { + if ($row->uid) + { $wochensumme = $datum_obj->sumZeit($wochensumme, $row->diff); if ($row->aktivitaet_kurzbz=='Pause') { @@ -1855,12 +1831,20 @@ if($projekt->getProjekteMitarbeiter($user, true)) \n"; echo " \n"; echo " \n"; @@ -1871,23 +1855,22 @@ if($projekt->getProjekteMitarbeiter($user, true)) $tagesende = $row->ende; if ($row->aktivitaet_kurzbz == 'LehreExtern') $extlehrearr[] = array("start"=>$row->start, "ende"=>$row->ende, "diff"=>$row->diff); - } - - } - echo ''; - - - if ($alle===false) - { - echo ' - - - - '; } - //echo $p->t("zeitaufzeichnung/gesamtdauer").": ".$db->convert_html_chars($summe); Aukommentiert. Irrelevant + } + echo ''; + + if ($alle===false) + { + echo ' + + + + '; } + + //echo $p->t("zeitaufzeichnung/gesamtdauer").": ".$db->convert_html_chars($summe); Aukommentiert. Irrelevant + } echo '
'.$p->t("eventkalender/kw").' '.$woche.'
'.$p->t("eventkalender/kw").' '.$woche.'
'; - - // Zusaetzlicher span fuer Addon Informationen - - $lang = getSprache(); - if ($lang == 'German') - $langindex = 1; - else - $langindex = 2; - echo ''.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').''.$zeitsperre_text.''.$pausefehlt_str; - if ($ersumme != '00:00') - $erstr = ' (+ '.$ersumme.' ER)'; - else - { - $erstr = ''; - } - echo ' - '.$p->t("zeitaufzeichnung/arbeitszeit").': '.$datum->formatDatum($tagesbeginn, $format='H:i').'-'.$datum->formatDatum($tagesende, $format='H:i').' '.$p->t("eventkalender/uhr").'
- '.$p->t("zeitaufzeichnung/pause").': -
'.$tagessaldo.$erstr.'
'.date('H:i', ($pausesumme-3600)).'
'; - if ($tag > $sperrdatum) - echo '<-'; - - echo '
'.$datum->formatDatum($row->datum,'D d.m.Y').'
'.$p->t("zeitaufzeichnung/wochensummeArbeitszeit").':'.$wochensaldo.$erstr.'
 
'.$p->t("eventkalender/kw").' '.$datumwoche.'
'; + + // Zusaetzlicher span fuer Addon Informationen + + $lang = getSprache(); + if ($lang == 'German') + $langindex = 1; + else + $langindex = 2; + echo ''.$tagbez[$langindex][$datum->formatDatum($tag,'N')].' '.$datum->formatDatum($tag,'d.m.Y').''.$zeitsperre_text.''.$pausefehlt_str; + if ($ersumme != '00:00') + $erstr = ' (+ '.$ersumme.' ER)'; + else { - $colspan=($za_simple)?6:8; - echo '
'.$p->t('zeitaufzeichnung/dienstreise'); - if (array_key_exists('start', $dr_arr[$datumtag]) && !array_key_exists('ende', $dr_arr[$datumtag])) - echo ' '.$p->t('global/beginn'); - if (array_key_exists('ende', $dr_arr[$datumtag]) && !array_key_exists('start', $dr_arr[$datumtag])) - echo ' '.$p->t('global/ende'); - echo ''; - if (array_key_exists('start', $dr_arr[$datumtag])) - echo $dr_arr[$datumtag]['start']; - echo ''; - if (array_key_exists('ende', $dr_arr[$datumtag])) - echo $dr_arr[$datumtag]['ende']; - echo ''; + $erstr = ''; + } + echo ' + '.$p->t("zeitaufzeichnung/arbeitszeit").': '.$datum->formatDatum($tagesbeginn, $format='H:i').'-'.$datum->formatDatum($tagesende, $format='H:i').' '.$p->t("eventkalender/uhr").'
+ '.$p->t("zeitaufzeichnung/pause").': +
'.$tagessaldo.$erstr.'
'.date('H:i', ($pausesumme-3600)).'
'; + if ($tag > $sperrdatum) + echo '<-'; + + echo '
'.$datum->formatDatum($row->datum,'D d.m.Y').'
'.$p->t("zeitaufzeichnung/wochensummeArbeitszeit").':'.$wochensaldo.$erstr.'
 
'.$p->t("eventkalender/kw").' '.$datumwoche.'
'.$p->t('zeitaufzeichnung/dienstreise'); + if (array_key_exists('start', $dr_arr[$datumtag]) && !array_key_exists('ende', $dr_arr[$datumtag])) + echo ' '.$p->t('global/beginn'); + if (array_key_exists('ende', $dr_arr[$datumtag]) && !array_key_exists('start', $dr_arr[$datumtag])) + echo ' '.$p->t('global/ende'); + echo ''; + if (array_key_exists('start', $dr_arr[$datumtag])) + echo $dr_arr[$datumtag]['start']; + echo ''; + if (array_key_exists('ende', $dr_arr[$datumtag])) + echo $dr_arr[$datumtag]['ende']; + echo ''; // if(!isset($_GET['filter']) && ($datumtag > $sperrdatum)) // echo ''.$p->t("global/bearbeiten").''; - echo ""; - if(!isset($_GET['filter']) && ($datumtag > $sperrdatum)) - echo ''.$p->t("global/loeschen").''; - echo "
"; + if(!isset($_GET['filter']) && ($datumtag > $sperrdatum)) + echo ''.$p->t("global/loeschen").''; + echo "
'.$db->convert_html_chars($row->diff).' beschreibung)).'">'.StringCut($db->convert_html_chars($row->beschreibung),20,null,'...').' '; - if(!isset($_GET['filter']) && ($row->uid==$user && $row->datum > $sperrdatum)) - echo ''.$p->t("global/bearbeiten").''; + + if (!$adminView) + { + if(!isset($_GET['filter']) && ($row->uid==$user && $row->datum > $sperrdatum)) + echo ''.$p->t("global/bearbeiten").''; + } echo ""; - if(!isset($_GET['filter']) && ($row->uid==$user && $row->start > $sperrdatum)) - echo ''.$p->t("global/loeschen").''; + + if (!$adminView) + { + if(!isset($_GET['filter']) && ($row->uid==$user && $row->start > $sperrdatum)) + echo ''.$p->t("global/loeschen").''; + } echo "
'.$p->t('zeitaufzeichnung/endeXTageAnsicht', array($angezeigte_tage)).'
'.$p->t('zeitaufzeichnung/endeXTageAnsicht', array($angezeigte_tage)).'
'; /* } @@ -1921,22 +1904,22 @@ function printTableHeadings($fieldheadings, $za_simple = false){
'.$fieldheadings['projekt'].' '.$fieldheadings['ap'].' '.$fieldheadings['oe1'].''.$fieldheadings['oe2'].''.$fieldheadings['aktivitaet'].' '.$fieldheadings['service'].''.$fieldheadings['start'].''.$fieldheadings['ende'].''.$fieldheadings['dauer'].''.$fieldheadings['beschreibung'].''.$fieldheadings['aktion'].'
'.$fieldheadings['oe2'].''.$fieldheadings['aktivitaet'].' '.$fieldheadings['service'].''.$fieldheadings['start'].''.$fieldheadings['ende'].''.$fieldheadings['dauer'].''.$fieldheadings['beschreibung'].''.$fieldheadings['aktion'].'
'; + + //Dropdown timesheets Mitarbeiter + if ($untergebenen_arr) + { + $ben = new benutzer(); + echo " +

+ + "; + } + echo '
'; echo ''; + echo ''; + else + { + echo ''; + echo '  '; + echo ''; + } + } + echo '
'; echo ''; + if (isset($_GET['projektexport'])) { $projektexpurl = dirname($_SERVER["PHP_SELF"]) .'/zeitaufzeichnung_projektliste.php'; @@ -1628,23 +1656,30 @@ if ($projekt->getProjekteMitarbeiter($user, true)) '; - //Beschreibung - echo ''; - echo ''; - else - { - echo ''; - echo '  '; - echo ''; - } - echo '
'.$p->t("global/beschreibung").'
'; - //SpeichernButton - if($zeitaufzeichnung_id=='') - echo '
'; + if (!$adminView) + { + //Beschreibung + echo '
'.$p->t("global/beschreibung").'
'; + //SpeichernButton + if($zeitaufzeichnung_id == '') + echo '
'; + echo '


'; - echo '


'; + if (!$adminView) + { + echo '
'; + } + echo '
'; // Summen Lehre anzeigen $bv = new bisverwendung(); @@ -1985,14 +2020,22 @@ if ($projekt->getProjekteMitarbeiter($user, true)) '.$db->convert_html_chars($row->diff).' beschreibung)).'">'.StringCut($db->convert_html_chars($row->beschreibung),20,null,'...').' '; - if(!isset($_GET['filter']) && ($row->uid==$user && $row->datum > $sperrdatum)) - echo ''.$p->t("global/bearbeiten").''; - echo ""; - if(!isset($_GET['filter']) && ($row->uid==$user && $row->start > $sperrdatum)) - echo ''.$p->t("global/loeschen").''; - echo "
"; + + if (!$adminView) + { + if(!isset($_GET['filter']) && ($row->uid==$user && $row->start > $sperrdatum)) + echo ''.$p->t("global/loeschen").''; + } + echo "
@@ -1389,13 +1395,11 @@ if ($projekt->getProjekteMitarbeiter($user, true)) if (isset($_GET['projektübersichtexport'])) { - echo ''; echo ''; echo ''; echo ''; echo ''; - } //Aktivitaet @@ -1960,7 +1964,7 @@ if ($projekt->getProjekteMitarbeiter($user, true)) $ersumme_woche = '00:00'; } - // Diestreisen NEU + // Dienstreisen NEU if (array_key_exists($datumtag, $dr_arr)) { $colspan=($za_simple)?6:8; diff --git a/cis/private/tools/zeitaufzeichnung_projektliste.php b/cis/private/tools/zeitaufzeichnung_projektliste.php index 177f1f8aa..468405a06 100644 --- a/cis/private/tools/zeitaufzeichnung_projektliste.php +++ b/cis/private/tools/zeitaufzeichnung_projektliste.php @@ -46,7 +46,12 @@ $sprache_obj = new sprache(); $sprache_obj->load($sprache); $sprache_index = $sprache_obj->index; -$uid = get_uid(); +echo $uid = get_uid(); + +$mitarbeiter = new mitarbeiter(); +$mitarbeiter->getUntergebene($uid, true); +$untergebenen_arr = array(); +$untergebenen_arr = $mitarbeiter->untergebene; //Wenn User Administrator ist und UID uebergeben wurde, dann die Zeitaufzeichnung //des uebergebenen Users anzeigen @@ -55,7 +60,7 @@ if (isset($_GET['uid'])) $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($uid); - if ($rechte->isBerechtigt('admin')) + if ($rechte->isBerechtigt('admin') || (in_array($_GET['uid'], $untergebenen_arr))) { $uid = $_GET['uid']; } @@ -74,9 +79,9 @@ $year = $_GET['projexpjahr']; $monthtext = $monatsname[$sprache_index][$month - 1]; $username = $benutzer->vorname." ".$benutzer->nachname; -$mitarbeiter = new mitarbeiter(); $mitarbeiter->load($uid); $persnr = $mitarbeiter->personalnummer; +$persnr; $daysinmonth = cal_days_in_month(CAL_GREGORIAN, $month, $year); $date = new datum(); From 15ba3602f738fd7a7c6a5fac5f5431b3a51b544b Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 25 Oct 2021 13:22:44 +0200 Subject: [PATCH 046/227] job fixed --- application/models/crm/Prestudent_model.php | 58 +++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index 2d8ac4a7e..b4692c864 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -665,4 +665,62 @@ class Prestudent_model extends DB_Model return $this->execQuery($query, array($prestudent_id)); } + + public function getSchool($semester, $studiengang_typ) + { + if (!$this->udfsExistAndDefined()) + return error('No UDF definition'); + + $query = 'SELECT DISTINCT p.person_id, + ps.prestudent_id, + ps.udf_values, + ( + SELECT ssps.udf_values->>\'udf_schule\' + FROM public.tbl_prestudent ssps + WHERE ssps.person_id = p.person_id AND ssps.udf_values->>\'udf_schule\' IS NOT NULL + LIMIT 1 + ) AS "Schule" + FROM + public.tbl_person p + JOIN public.tbl_prestudent ps USING (person_id) + JOIN public.tbl_prestudentstatus pss USING (prestudent_id) + JOIN public.tbl_studiengang sg ON ps.studiengang_kz = sg.studiengang_kz + WHERE + EXISTS ( + SELECT 1 + FROM public.tbl_prestudentstatus spss + JOIN public.tbl_prestudent sps ON spss.prestudent_id = sps.prestudent_id + JOIN public.tbl_studiengang ssg ON sps.studiengang_kz = ssg.studiengang_kz + WHERE sps.person_id = p.person_id + AND ssg.typ = \'' . $studiengang_typ . '\' + AND spss.studiensemester_kurzbz IN (' . $semester . ') + AND sps.udf_values->>\'udf_schule\' IS NOT NULL + LIMIT 1 + ) + AND sg.typ = \''. $studiengang_typ .'\' + AND pss.studiensemester_kurzbz IN (' . $semester . ') + AND ps.udf_values->>\'udf_schule\' IS NULL + AND \'Abgewiesener\' != ( + SELECT sspss.status_kurzbz + FROM public.tbl_prestudentstatus sspss + WHERE sspss.prestudent_id = ps.prestudent_id + ORDER BY sspss.datum DESC, sspss.insertamum DESC, sspss.ext_id DESC + LIMIT 1 + ) + ORDER BY p.person_id'; + + return $this->execQuery($query); + } + + public function updateSchool($udf, $prestudent) + { + if (!$this->udfsExistAndDefined()) + return error('No UDF definition'); + + $query = 'UPDATE public.tbl_prestudent + SET udf_values = \'' . $udf . '\' + WHERE prestudent_id = ' . $prestudent; + + return $this->execQuery($query); + } } From d269fd003d544222a5bc015501c7a60602a7b393 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 25 Oct 2021 14:03:30 +0200 Subject: [PATCH 047/227] added new log to logdataname --- application/views/system/infocenter/infocenterData.php | 2 +- .../views/system/infocenter/infocenterFreigegebenData.php | 2 +- .../system/infocenter/infocenterReihungstestAbsolviertData.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/application/views/system/infocenter/infocenterData.php b/application/views/system/infocenter/infocenterData.php index c49a1c6cc..3ee4db220 100644 --- a/application/views/system/infocenter/infocenterData.php +++ b/application/views/system/infocenter/infocenterData.php @@ -6,7 +6,7 @@ $INTERESSENT_STATUS = '\'Interessent\''; $STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\''; $TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\''; - $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\''; + $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Interessent rejected\', \'Attempt to register with existing mailadress\''; $LOGDATA_NAME_PARKED = '\'Parked\''; $LOGDATA_NAME_ONHOLD = '\'Onhold\''; $LOGTYPE_KURZBZ = '\'Processstate\''; diff --git a/application/views/system/infocenter/infocenterFreigegebenData.php b/application/views/system/infocenter/infocenterFreigegebenData.php index 9078c13db..e649fe54a 100644 --- a/application/views/system/infocenter/infocenterFreigegebenData.php +++ b/application/views/system/infocenter/infocenterFreigegebenData.php @@ -5,7 +5,7 @@ $INTERESSENT_STATUS = '\'Interessent\''; $STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\''; $TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\''; - $LOGDATA_NAME = '\'Login with code\', \'Login with user\''; + $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\''; $REJECTED_STATUS = '\'Abgewiesener\''; $ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz'); $STATUS_KURZBZ = '\'Wartender\', \'Bewerber\', \'Aufgenommener\', \'Student\''; diff --git a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php index 5aa664a97..dbc0124bc 100644 --- a/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php +++ b/application/views/system/infocenter/infocenterReihungstestAbsolviertData.php @@ -5,7 +5,7 @@ $INTERESSENT_STATUS = '\'Interessent\''; $STUDIENGANG_TYP = '\''.$this->variablelib->getVar('infocenter_studiensgangtyp').'\''; $TAETIGKEIT_KURZBZ = '\'bewerbung\', \'kommunikation\''; - $LOGDATA_NAME = '\'Login with code\', \'Login with user\''; + $LOGDATA_NAME = '\'Login with code\', \'Login with user\', \'Attempt to register with existing mailadress\''; $ADDITIONAL_STG = $this->config->item('infocenter_studiengang_kz'); $STUDIENSEMESTER = '\''.$this->variablelib->getVar('infocenter_studiensemester').'\''; $ORG_NAME = '\'InfoCenter\''; From 40ea04364ed879aa605100ee4f940473bdff2e16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Mon, 25 Oct 2021 14:45:45 +0200 Subject: [PATCH 048/227] =?UTF-8?q?Aktivit=C3=A4t=20nicht=20mehr=20optiona?= =?UTF-8?q?l?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 3b1d9af2a..c9ff7f479 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -96,12 +96,12 @@ $fieldheadings = array( if ($rechte->isBerechtigt('basis/servicezeitaufzeichnung')) { $za_simple = 0; - $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'FuE', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe', 'Weiterbildung', 'LVEntwicklung'); + $activities = array('Design', 'Operativ', 'Betrieb', 'Pause', 'FuE','FuEallg', 'Lehre', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe', 'Weiterbildung', 'LVEntwicklung'); } else { $za_simple = 1; - $activities = array('Admin', 'FuE','Lehre', 'Pause', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe', 'Weiterbildung', 'LVEntwicklung'); + $activities = array('Admin', 'FuE','FuEallg','Lehre', 'Pause', 'Arztbesuch', 'DienstreiseMT', 'Behoerde', 'Ersatzruhe', 'Weiterbildung', 'LVEntwicklung'); } $activities_str = "'".implode("','", $activities)."'"; @@ -1375,8 +1375,10 @@ if ($projekt->getProjekteMitarbeiter($user, true)) if($result = $db->db_query($qry)) { echo ' @@ -1672,7 +1701,7 @@ if ($projekt->getProjekteMitarbeiter($user, true)) echo ''; + echo ''; else { echo ''; diff --git a/cis/private/tools/zeitaufzeichnung_zeitsperren.php b/cis/private/tools/zeitaufzeichnung_zeitsperren.php new file mode 100644 index 000000000..2ab602c29 --- /dev/null +++ b/cis/private/tools/zeitaufzeichnung_zeitsperren.php @@ -0,0 +1,59 @@ + + */ +/** + * Checks, if there is a zeitsperre for a certain date. It should not be possible + * to add a zeitaufzeichnung with a holiday (or else) entry on the same day. + */ + + +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/globals.inc.php'); +require_once('../../../include/phrasen.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/Excel/excel.php'); +require_once('../../../include/benutzer.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/mitarbeiter.class.php'); +require_once('../../../include/zeitaufzeichnung.class.php'); +require_once('../../../include/projekt.class.php'); +require_once('../../../include/zeitsperre.class.php'); + + +$sprache = getSprache(); +$p = new phrasen($sprache); + +if ((isset($_GET['uid'])) && (isset($_GET['day']))) +{ + $uid = $_GET['uid']; + $day = $_GET['day']; + + $zs = new zeitsperre(); + $zs->getZeitsperrenForZeitaufzeichnung($uid, '180'); + $zeitsperren = $zs->result; + + if (array_key_exists($day, $zeitsperren)) + { + echo ''.$p->t('zeitaufzeichnung/zeitsperreVorhanden', [$day, $zeitsperren[$day]]).'
'; + } + else + { + echo ""; + } +} From 6d4e5238fdb5dfeada84e8a352b932ea07190c9a Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 27 Oct 2021 11:19:59 +0200 Subject: [PATCH 052/227] merge feature-11468/ZeitsperrenBeruecksichtigen into featuresZeiterfassung/Sprint177 --- cis/private/tools/zeitaufzeichnung.php | 1 + 1 file changed, 1 insertion(+) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index f17f9eb06..9360d03f8 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -304,6 +304,7 @@ echo ' Jahr=Datum.substring(6,10); var day = Jahr + "-" + Monat + "-" + Tag; checkBisverwendung(day,uid); + checkZeitsperre(day,uid); } ) From 2b9d688ff7aab0c63710c4671377690ab85bc323 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 27 Oct 2021 13:07:21 +0200 Subject: [PATCH 053/227] =?UTF-8?q?Adaptierung=20ZE:Fix=20Bug=20Eingabe=20?= =?UTF-8?q?gr=C3=B6=C3=9Fer=2024:00?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/tools/zeitaufzeichnung.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cis/private/tools/zeitaufzeichnung.php b/cis/private/tools/zeitaufzeichnung.php index 9360d03f8..1fdf71330 100644 --- a/cis/private/tools/zeitaufzeichnung.php +++ b/cis/private/tools/zeitaufzeichnung.php @@ -1098,6 +1098,8 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) $zeit->kunde_uid = $kunde_uid; $saveerror = 0; $extractTimeBis = $datum->formatDatum($bis, $format = 'H:i:s'); + $extractVon = $datum->formatDatum($von, $format = 'Y-m-d'); + $extractBis = $datum->formatDatum($bis, $format = 'Y-m-d'); if (!$projects_of_user->checkProjectInCorrectTime($projekt_kurzbz, $datum->formatDatum($von, $format='Y-m-d'), $datum->formatDatum($bis, $format='Y-m-d'))) { @@ -1114,9 +1116,8 @@ if(isset($_POST['save']) || isset($_POST['edit']) || isset($_POST['import'])) echo '

'.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da angegebenes Anfangs und Enddatum nicht in den Projektphasenzeitrahmen fällt.


'; $saveerror = 1; - } - elseif (abs($von-$bis)>0 && $aktivitaet_kurzbz!="DienstreiseMT" && $extractTimeBis != '00:00:00') + elseif ((abs($von - $bis) > 0 || $extractVon != $extractBis) && $aktivitaet_kurzbz!="DienstreiseMT" && $extractTimeBis != '00:00:00') { echo ''.$p->t("global/fehlerBeimSpeichernDerDaten").': Eingabe nicht möglich, da keine Zeitaufzeichnung über mehrere Tage erlaubt ist (ausgenommen Dienstreisen).
'; $saveerror = 1; From a31d33bcf9dd4b40baf4c69e785e46c174f9d13a Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 27 Oct 2021 17:59:52 +0200 Subject: [PATCH 054/227] in eigenes model --- application/models/crm/Prestudent_model.php | 57 --------------------- 1 file changed, 57 deletions(-) diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index b4692c864..5db9a98f1 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -666,61 +666,4 @@ class Prestudent_model extends DB_Model return $this->execQuery($query, array($prestudent_id)); } - public function getSchool($semester, $studiengang_typ) - { - if (!$this->udfsExistAndDefined()) - return error('No UDF definition'); - - $query = 'SELECT DISTINCT p.person_id, - ps.prestudent_id, - ps.udf_values, - ( - SELECT ssps.udf_values->>\'udf_schule\' - FROM public.tbl_prestudent ssps - WHERE ssps.person_id = p.person_id AND ssps.udf_values->>\'udf_schule\' IS NOT NULL - LIMIT 1 - ) AS "Schule" - FROM - public.tbl_person p - JOIN public.tbl_prestudent ps USING (person_id) - JOIN public.tbl_prestudentstatus pss USING (prestudent_id) - JOIN public.tbl_studiengang sg ON ps.studiengang_kz = sg.studiengang_kz - WHERE - EXISTS ( - SELECT 1 - FROM public.tbl_prestudentstatus spss - JOIN public.tbl_prestudent sps ON spss.prestudent_id = sps.prestudent_id - JOIN public.tbl_studiengang ssg ON sps.studiengang_kz = ssg.studiengang_kz - WHERE sps.person_id = p.person_id - AND ssg.typ = \'' . $studiengang_typ . '\' - AND spss.studiensemester_kurzbz IN (' . $semester . ') - AND sps.udf_values->>\'udf_schule\' IS NOT NULL - LIMIT 1 - ) - AND sg.typ = \''. $studiengang_typ .'\' - AND pss.studiensemester_kurzbz IN (' . $semester . ') - AND ps.udf_values->>\'udf_schule\' IS NULL - AND \'Abgewiesener\' != ( - SELECT sspss.status_kurzbz - FROM public.tbl_prestudentstatus sspss - WHERE sspss.prestudent_id = ps.prestudent_id - ORDER BY sspss.datum DESC, sspss.insertamum DESC, sspss.ext_id DESC - LIMIT 1 - ) - ORDER BY p.person_id'; - - return $this->execQuery($query); - } - - public function updateSchool($udf, $prestudent) - { - if (!$this->udfsExistAndDefined()) - return error('No UDF definition'); - - $query = 'UPDATE public.tbl_prestudent - SET udf_values = \'' . $udf . '\' - WHERE prestudent_id = ' . $prestudent; - - return $this->execQuery($query); - } } From 203397b1359bcb3dcba4f2d37566f8e33f772941 Mon Sep 17 00:00:00 2001 From: ma0048 Date: Thu, 28 Oct 2021 08:01:04 +0200 Subject: [PATCH 055/227] fas adressen anzeige nicht mehr hartcodiert --- rdf/adresse.rdf.php | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/rdf/adresse.rdf.php b/rdf/adresse.rdf.php index 6da4c3a6a..ac557fb98 100644 --- a/rdf/adresse.rdf.php +++ b/rdf/adresse.rdf.php @@ -76,15 +76,6 @@ function draw_rdf($row) global $rdf_url; $db = new basis_db(); - $typ=''; - switch ($row->typ) - { - case 'h': $typ='Hauptwohnsitz'; break; - case 'n': $typ='Nebenwohnsitz'; break; - case 'f': $typ='Firma'; break; - case 'r': $typ='Rechnungsadresse'; break; - } - $firma_name=''; if($row->firma_id!='') { @@ -109,7 +100,7 @@ function draw_rdf($row) gemeinde.']]> nation.']]> typ.']]> - + bezeichnung_mehrsprachig[DEFAULT_LANGUAGE].']]> heimatadresse?'Ja':'Nein').']]> zustelladresse?'Ja':'Nein').']]> co_name.']]> From 38cdcef38ef6c45586f3c082363899c58bc41b81 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Fri, 29 Oct 2021 10:35:12 +0200 Subject: [PATCH 056/227] =?UTF-8?q?Notenliste=20und=20Anwesenheitsliste=20?= =?UTF-8?q?um=20Mobilit=C3=A4t=20DegreeProgram=20erweitert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cis/private/lehre/anwesenheitsliste.pdf.php | 19 +++++++--- cis/private/lehre/notenliste.xls.php | 39 +++++++++++++-------- system/dbupdate_3.3.php | 14 ++++++++ 3 files changed, 53 insertions(+), 19 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 01ec1c93f..16ba8972b 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -166,9 +166,10 @@ $qry = 'SELECT tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang + tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz FROM - campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer USING(uid) JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) @@ -176,9 +177,11 @@ $qry = 'SELECT LEFT JOIN lehre.tbl_note USING (note) LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) + LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) WHERE - vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND - vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester); + vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND + vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);';'; + if($lehreinheit!='') $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER); @@ -223,6 +226,11 @@ if($result = $db->db_query($qry)) if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende $zusatz.='(a.o.)'; + if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student + $zusatz.='(d.d.)'; + + //$zusatz.='test'; + $data[]=array('student'=>array( 'vorname'=>$row->vorname, 'nachname'=>$row->nachname, @@ -232,7 +240,8 @@ if($result = $db->db_query($qry)) 'verband'=>trim($row->verband), 'gruppe'=>trim($row->gruppe), 'zusatz'=>$zusatz, - 'studiengang_kurzbz'=>$row->kurzbzlang + 'studiengang_kurzbz'=>$row->kurzbzlang, + 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz )); } } diff --git a/cis/private/lehre/notenliste.xls.php b/cis/private/lehre/notenliste.xls.php index 4f6437358..9866a6299 100644 --- a/cis/private/lehre/notenliste.xls.php +++ b/cis/private/lehre/notenliste.xls.php @@ -200,20 +200,26 @@ else $stsemdatumbis = $stsem_obj->ende; $qry = "SELECT - distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid, - tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, - (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, - tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von, - tbl_zeugnisnote.note - FROM - campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid) - LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) - LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) - LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) - WHERE - vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND - vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem); + distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, person_id, tbl_student.student_uid as uid, + tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, + (SELECT status_kurzbz + FROM public.tbl_prestudentstatus + WHERE prestudent_id=tbl_student.prestudent_id + ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, + tbl_bisio.bisio_id, tbl_bisio.bis, tbl_bisio.von, + tbl_zeugnisnote.note,tbl_mobilitaet.mobilitaetstyp_kurzbz + FROM + campus.vw_student_lehrveranstaltung JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) JOIN public.tbl_student ON(uid=student_uid) + LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) + LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id + AND tbl_zeugnisnote.student_uid=tbl_student.student_uid + AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) + LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) + LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) + WHERE + vw_student_lehrveranstaltung.lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND + vw_student_lehrveranstaltung.studiensemester_kurzbz=".$db->db_add_param($stsem);";"; if($lehreinheit_id!='') $qry.=" AND vw_student_lehrveranstaltung.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER); @@ -243,6 +249,10 @@ else $inc.=' (ar)'; $note='ar'; } + if($elem->mobilitaetstyp_kurzbz !='') //dd-Program + { + $inc.=' (dd)'; + } else $note=''; $worksheet->write($lines,1,$elem->uid); @@ -295,6 +305,7 @@ else $worksheet->write(++$lines,0,'(i) ... Incoming'); $worksheet->write(++$lines,0,'(o) ... Outgoing'); $worksheet->write(++$lines,0,'(ar) ... '.$p->t('anwesenheitsliste/angerechnet')); + $worksheet->write(++$lines,0,'(dd) ... Double Degree Program'); $worksheet->setColumn(0, 0, 5); $worksheet->setColumn(0, 1, 16); diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index bb8f250fd..cb59a86f1 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -1740,6 +1740,20 @@ if ($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants } +// SELECT Berechtigung fuer web User erteilen fuer tbl_mobilitaet +if($result = @$db->db_query("SELECT * FROM information_schema.role_table_grants WHERE table_name='tbl_mobilitaet' AND table_schema='bis' AND grantee='web' AND privilege_type='SELECT'")) +{ + if($db->db_num_rows($result)==0) + { + $qry = "GRANT SELECT ON bis.tbl_mobilitaet TO web;"; + + if(!$db->db_query($qry)) + echo 'bis.tbl_mobilitaet Berechtigungen: '.$db->db_last_error().'
'; + else + echo 'SELECT Recht fuer bis.tbl_mobilitaet fuer web user gesetzt '; + } +} + /** * Kommentare fuer Datenbanktabellen */ From 98ffe525b33f1d612b9c7a0079848dc2ea684a30 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 1 Nov 2021 13:12:55 +0100 Subject: [PATCH 057/227] first working version to add covid status to lvlists --- cis/private/lehre/anwesenheitsliste.php | 23 +- cis/private/lehre/covidstatusliste.php | 337 ++++++++++++++++++++++++ include/covid/covidhelper.class.php | 189 +++++++++++++ 3 files changed, 545 insertions(+), 4 deletions(-) create mode 100644 cis/private/lehre/covidstatusliste.php create mode 100644 include/covid/covidhelper.class.php diff --git a/cis/private/lehre/anwesenheitsliste.php b/cis/private/lehre/anwesenheitsliste.php index bc7d96083..6859c1a2e 100644 --- a/cis/private/lehre/anwesenheitsliste.php +++ b/cis/private/lehre/anwesenheitsliste.php @@ -34,6 +34,7 @@ require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/phrasen.class.php'); require_once('../../../include/vertrag.class.php'); + require_once '../../../include/covid/covidhelper.class.php'; $sprache = getSprache(); $p=new phrasen($sprache); @@ -61,7 +62,8 @@ $stsem = $_GET['stsem']; else die($p->t('anwesenheitsliste/studiensemesterIstUngueltig')); - + +$covidhelper = new CovidHelper(); ?> @@ -69,6 +71,16 @@ + + @@ -98,7 +110,8 @@ $lv = new lehrveranstaltung($lvid); - $aw_content .= "
"; + $covid_content = ($covidhelper->isUdfDefined()) ? 'Covid-Status' : ''; + $aw_content .= ""; $awbild_content .= ""; $nt_content .= ""; @@ -151,7 +164,8 @@ } } - $aw_content .= ""; + $covid_content = ($covidhelper->isUdfDefined()) ? 'Covid-Status' : ''; + $aw_content .= ""; $awbild_content .= ""; $nt_content .= ""; @@ -186,7 +200,8 @@ } } - $aw_content .= ""; + $covid_content = ($covidhelper->isUdfDefined()) ? 'Covid-Status' : ''; + $aw_content .= ""; $awbild_content .= ""; $nt_content .= ""; } diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php new file mode 100644 index 000000000..a29ab570d --- /dev/null +++ b/cis/private/lehre/covidstatusliste.php @@ -0,0 +1,337 @@ + + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/dokument_export.class.php'); +require_once('../../../include/lehrveranstaltung.class.php'); +require_once('../../../include/lehreinheitgruppe.class.php'); +require_once('../../../include/lehreinheit.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/lehreinheitmitarbeiter.class.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/erhalter.class.php'); +require_once('../../../include/datum.class.php'); +require_once('../../../include/covid/covidhelper.class.php'); + +$debug = false; + +if (!$db = new basis_db()) + die('Es konnte keine Verbindung zum Server aufgebaut werden.'); + +$user=get_uid(); + +$berechtigung = new benutzerberechtigung(); +$berechtigung->getBerechtigungen($user); + +if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) + $lvid = $_GET['lvid']; +else + die('Eine gueltige LvID muss uebergeben werden'); + +$lv = new lehrveranstaltung(); +$lv->load($lvid); + +if(isset($_GET['stsem'])) + $studiensemester = $_GET['stsem']; +else + die('Eine Studiensemester muss uebergeben werden'); + +if( !$berechtigung->isBerechtigt('admin') + && !$berechtigung->isBerechtigt('assistenz') + && !$berechtigung->isBerechtigt('lehre', $lv->oe_kurzbz, 's') + && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester)) + die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen'); + +$output='pdf'; + +if(isset($_GET['output']) && ($output='odt' || $output='doc')) + $output=$_GET['output']; + +isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; +isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; + +// Teilnehmende Gruppen laden +$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) + UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, + semester, + verband, + gruppe, + gruppe_kurzbz + FROM campus.vw_lehreinheit + WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." + AND studiensemester_kurzbz=".$db->db_add_param($studiensemester); +if($lehreinheit!='') + $qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit, FHC_INTEGER); + +$gruppen_string = ''; +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if($gruppen_string!='') + $gruppen_string.=', '; + if($row->gruppe_kurzbz=='') + $gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe); + else + $gruppen_string.=$row->gruppe_kurzbz; + } +} + + +// Verplante Räume laden +$qry = "SELECT distinct(ort_kurzbz) + FROM lehre.tbl_stundenplan + WHERE lehreinheit_id in + ( + SELECT lehreinheit_id + FROM campus.vw_lehreinheit + WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." + AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester)." + )"; +if($lehreinheit!='') + $qry.= " AND tbl_stundenplan.lehreinheit_id = ".$db->db_add_param($lehreinheit, FHC_INTEGER); + + +$raum_string = ''; +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if($raum_string!='') + $raum_string.=', '; + if($row->ort_kurzbz!='') + $raum_string.=$row->ort_kurzbz; + } +} + + +$stg = new studiengang(); +$stg->load($lv->studiengang_kz); + +$studiengang_bezeichnung=$stg->bezeichnung; + +$stg->getAllTypes(); + +$data = array( + 'gruppen'=>$gruppen_string, + 'bezeichnung'=>$lv->bezeichnung, + 'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id, + 'studiengang'=>$studiengang_bezeichnung, + 'studiengang_kz'=>$lv->studiengang_kz, + 'typ'=>$stg->studiengang_typ_arr[$stg->typ], + 'ects'=>$lv->ects, + 'sprache'=>$lv->sprache, + 'studiensemester'=>$studiensemester, + 'semester'=>$lv->semester, + 'orgform'=>$lv->orgform_kurzbz, + 'raum'=>$raum_string, +); + +//Lehrende der LV laden und in ein Array schreiben +$lehrende = new lehreinheitmitarbeiter(); +$lehrende->getMitarbeiterLV($lvid, $studiensemester, $lehreinheit); +$arr_lehrende = array(); +if (isset($lehrende->result)) +{ + foreach($lehrende->result AS $row) + { + $data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); + $arr_lehrende[]=mb_strtoupper($row->uid); + } +} + + +//Studierende der LV laden und in ein Array schreiben + +$qry = 'SELECT + distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid, + tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, + (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, + tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, + tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) + LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) + LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) + LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) + LEFT JOIN lehre.tbl_note USING (note) + LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) + LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) + LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) + WHERE + vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND + vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);';'; + + +if($lehreinheit!='') + $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER); + +$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; + +$stsem_obj = new studiensemester(); +$stsem_obj->load($studiensemester); +$stsemdatumvon = $stsem_obj->start; +$stsemdatumbis = $stsem_obj->ende; + +$erhalter = new erhalter(); +$erhalter->getAll(); + +$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) +$anzahl_studierende = 0; +$datum = new datum(); +$zusatz = ''; + +$studentuids = array(); +if($result = $db->db_query($qry)) +{ + while($row = $db->db_fetch_object($result)) + { + if($row->status!='Abbrecher' && $row->status!='Unterbrecher') + { + $anzahl_studierende++; + + if($row->status=='Incoming') //Incoming + $zusatz='(i)'; + else + $zusatz=''; + + if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing + $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; + + if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen + $zusatz.= '('. $row->anmerkung. ')'; + + if($row->mitarbeiter_uid!='') //mitarbeiter + $zusatz.='(ma)'; + + if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende + $zusatz.='(a.o.)'; + + if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student + $zusatz.='(d.d.)'; + + //$zusatz.='test'; + + $studentuids[] = $row->student_uid; + $data[]=array('student'=>array( + 'uid' => $row->student_uid, + 'vorname'=>$row->vorname, + 'nachname'=>$row->nachname, + 'personenkennzeichen'=>trim($row->matrikelnr), + 'matr_nr'=>$row->matr_nr, + 'semester'=>$row->semester, + 'verband'=>trim($row->verband), + 'gruppe'=>trim($row->gruppe), + 'zusatz'=>$zusatz, + 'studiengang_kurzbz'=>$row->kurzbzlang, + 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz + )); + } + } + //Anzahl Studierende in Array $data (an erster Stelle) einfuegen + $data = array_reverse($data, true); + $data['anzahl_studierende'] = $anzahl_studierende; + $data = array_reverse($data, true); +} + +$covidhelper = new CovidHelper(); +$covidhelper->fetchCovidStatus($studentuids); +$covidstatus = $covidhelper->getCovidStatus(); + +$now = new DateTime('now', new DateTimeZone('Europe/Vienna')); +header('Content-Type: text/html; charset=utf-8'); +?> + + + + FHC - Covidliste + + + + + +
+
+
+ +

Covid-Status-Liste

+

Gruppen: Studiensemester:

+

Lehrende:

+

generiert: format('d.m.Y H:i'); ?>

+ +
- ".$p->t("zeitaufzeichnung/neu")." | + ".$p->t("zeitaufzeichnung/neu")." | "; - CSV Import | + if (!$adminView) + { + echo + " + CSV Import | - CSV Export | + CSV Export | + "; + } - Projektübersichtexport"; + echo " Projektübersichtexport"; if($anzprojekte > 0) echo " | ".$p->t("zeitaufzeichnung/projektexport").""; echo "

CSV-Export

'; //SpeichernButton if($zeitaufzeichnung_id == '') - echo '
".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung
".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung" . $covid_content . "
".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung
".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)" . $covid_content . "
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)" . $covid_content . "
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)
+ + + + + + + + + + + + + + + + + + +
StudentKennzeichenGruppeCovid-Status
getIconHtml($tmpstudent['uid']); ?>
+ + + + + +
+
+ +
+
+
+				
+
+ +
+
+ + + + + + \ No newline at end of file diff --git a/include/covid/covidhelper.class.php b/include/covid/covidhelper.class.php new file mode 100644 index 000000000..3c9ef12da --- /dev/null +++ b/include/covid/covidhelper.class.php @@ -0,0 +1,189 @@ + + */ +require_once(dirname(__DIR__) . '/basis_db.class.php'); +/** + * Description of covidhelper + * + * @author bambi + */ +class CovidHelper extends basis_db +{ + const STATUS_OK = 1; + const STATUS_NOTOK = 0; + const STATUS_UNKNOWN = -1; + const STATUS_NOTSET = -2; + + const TITLE_OK = 'Covid Status gültig'; + const TITLE_NOTOK = 'Covid Status ungültig'; + const TITLE_UNKNOWN = 'Covid Status unbekannt'; + + const DB_SCHEMA = 'public'; + const DB_TABLE = 'tbl_person'; + const DB_UDFNAME = 'udf_3gvalid'; + + protected $isUdfDefined; + + protected $uids; + protected $covidstatus; + + public function __construct() + { + parent::__construct(); + $this->uids = array(); + $this->covidstatus = array(); + $this->isUdfDefined = false; + $this->checkIfUdfValuesAreDefined(); + } + + public function isUdfDefined() { + return $this->isUdfDefined; + } + + public function fetchCovidStatus(array $uids) { + $this->uids = $uids; + $this->covidstatus = array(); + $this->fetchCovidValidStatus(); + } + + public function getIconHtml($uid) + { + $html = ''; + $status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET; + switch ($status) + { + case self::STATUS_OK: + $html = ''; + break; + case self::STATUS_NOTOK: + $html = ''; + break; + case self::STATUS_UNKNOWN: + $html = ''; + break; + default: + $html = ''; + break; + } + return $html; + } + + public function getBootstrapClass($uid) + { + $class = ''; + $status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET; + switch ($status) + { + case self::STATUS_OK: + $class = 'success'; + break; + case self::STATUS_NOTOK: + $class = 'danger'; + break; + case self::STATUS_UNKNOWN: + $class = 'warning'; + break; + default: + $class = ''; + break; + } + return $class; + } + + public function getTitle($uid) + { + $title = ''; + $status = isset($this->covidstatus[$uid]) ? $this->covidstatus[$uid] : self::STATUS_NOTSET; + switch ($status) + { + case self::STATUS_OK: + $title = self::TITLE_OK; + break; + case self::STATUS_NOTOK: + $title = self::TITLE_NOTOK; + break; + case self::STATUS_UNKNOWN: + $title = self::TITLE_UNKNOWN; + break; + default: + $title = ''; + break; + } + return $title; + } + + public function getCovidStatus() + { + return $this->covidstatus; + } + + protected function fetchCovidValidStatus() + { + if( !($this->isUdfDefined && is_array($this->uids)) ) + { + return; + } + $sql = << 'udf_3gvalid')::text::date >= CURRENT_DATE::text::date THEN 1 + WHEN (p."udf_values" -> 'udf_3gvalid')::text::date < CURRENT_DATE::text::date THEN 0 + ELSE -1 + END AS covidvalid + FROM tbl_person p + JOIN tbl_benutzer b ON b.person_id = p.person_id AND b.uid IN ({$this->implode4SQL($this->uids)}) +EOSQL; + + $this->covidstatus = array(); + if( $this->db_query($sql) ) + { + while( false !== ($row = $this->db_fetch_object()) ) + { + $this->covidstatus[$row->uid] = $row->covidvalid; + } + } else { + $this->errormsg = "Fehler in der Abfrage des Covidstatus."; + } + } + + public function checkIfUdfValuesAreDefined() + { + $sql = 'SELECT count(name) AS "udfdefined" ' + . 'FROM "system"."tbl_udf", jsonb_to_recordset("jsons") AS items(name text) ' + . 'WHERE "schema" = \'' . self::DB_SCHEMA . '\' ' + . 'AND "table" = \'' . self::DB_TABLE . '\' ' + . 'AND "name" = \'' . self::DB_UDFNAME . '\''; + if ( $this->db_query($sql) ) + { + if ($row = $this->db_fetch_object()) + { + $this->isUdfDefined = ($row->udfdefined > 0) ? true : false; + } + else + { + $this->errormsg = "Fehler in der Abfrage beim Pruefen der UDFs. Kein Datensatz gefunden."; + $this->isUdfDefined = false; + } + } + else + { + $this->errormsg = "Fehler in der Abfrage beim Pruefen der UDFs."; + $this->isUdfDefined = false; + } + } +} From 8c100ba99313f87700cdb4972a42c335d875ebc1 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 1 Nov 2021 15:25:24 +0100 Subject: [PATCH 058/227] moved db logic to lehrelisthelper class --- cis/private/lehre/anwesenheitsliste.pdf.php | 187 +------------ cis/private/lehre/covidstatusliste.php | 215 ++------------ include/lehrelisthelper.class.php | 293 ++++++++++++++++++++ 3 files changed, 317 insertions(+), 378 deletions(-) create mode 100644 include/lehrelisthelper.class.php diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 16ba8972b..6d33c351a 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -28,6 +28,7 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/erhalter.class.php'); require_once('../../../include/datum.class.php'); +require_once('../../../include/lehrelisthelper.class.php'); if (!$db = new basis_db()) die('Es konnte keine Verbindung zum Server aufgebaut werden.'); @@ -68,188 +69,10 @@ isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehre $doc = new dokument_export('Anwesenheitslist'); -// Teilnehmende Gruppen laden -$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) - UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, - semester, - verband, - gruppe, - gruppe_kurzbz - FROM campus.vw_lehreinheit - WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester); -if($lehreinheit!='') - $qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit, FHC_INTEGER); - -$gruppen_string = ''; -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($gruppen_string!='') - $gruppen_string.=', '; - if($row->gruppe_kurzbz=='') - $gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe); - else - $gruppen_string.=$row->gruppe_kurzbz; - } -} - - -// Verplante Räume laden -$qry = "SELECT distinct(ort_kurzbz) - FROM lehre.tbl_stundenplan - WHERE lehreinheit_id in - ( - SELECT lehreinheit_id - FROM campus.vw_lehreinheit - WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester)." - )"; -if($lehreinheit!='') - $qry.= " AND tbl_stundenplan.lehreinheit_id = ".$db->db_add_param($lehreinheit, FHC_INTEGER); - - -$raum_string = ''; -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($raum_string!='') - $raum_string.=', '; - if($row->ort_kurzbz!='') - $raum_string.=$row->ort_kurzbz; - } -} - - -$stg = new studiengang(); -$stg->load($lv->studiengang_kz); - -$studiengang_bezeichnung=$stg->bezeichnung; - -$stg->getAllTypes(); - -$data = array( - 'gruppen'=>$gruppen_string, - 'bezeichnung'=>$lv->bezeichnung, - 'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id, - 'studiengang'=>$studiengang_bezeichnung, - 'studiengang_kz'=>$lv->studiengang_kz, - 'typ'=>$stg->studiengang_typ_arr[$stg->typ], - 'ects'=>$lv->ects, - 'sprache'=>$lv->sprache, - 'studiensemester'=>$studiensemester, - 'semester'=>$lv->semester, - 'orgform'=>$lv->orgform_kurzbz, - 'raum'=>$raum_string, -); - -//Lehrende der LV laden und in ein Array schreiben -$lehrende = new lehreinheitmitarbeiter(); -$lehrende->getMitarbeiterLV($lvid, $studiensemester, $lehreinheit); -$arr_lehrende = array(); -if (isset($lehrende->result)) -{ - foreach($lehrende->result AS $row) - { - $data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); - $arr_lehrende[]=mb_strtoupper($row->uid); - } -} - - -//Studierende der LV laden und in ein Array schreiben - -$qry = 'SELECT - distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, - tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, - (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, - tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz - FROM - campus.vw_student_lehrveranstaltung - JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) - LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) - LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) - LEFT JOIN lehre.tbl_note USING (note) - LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) - LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) - LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) - WHERE - vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND - vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);';'; - - -if($lehreinheit!='') - $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER); - -$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; - -$stsem_obj = new studiensemester(); -$stsem_obj->load($studiensemester); -$stsemdatumvon = $stsem_obj->start; -$stsemdatumbis = $stsem_obj->ende; - -$erhalter = new erhalter(); -$erhalter->getAll(); - -$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) -$anzahl_studierende = 0; -$datum = new datum(); -$zusatz = ''; - -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($row->status!='Abbrecher' && $row->status!='Unterbrecher') - { - $anzahl_studierende++; - - if($row->status=='Incoming') //Incoming - $zusatz='(i)'; - else - $zusatz=''; - - if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing - $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; - - if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen - $zusatz.= '('. $row->anmerkung. ')'; - - if($row->mitarbeiter_uid!='') //mitarbeiter - $zusatz.='(ma)'; - - if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende - $zusatz.='(a.o.)'; - - if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student - $zusatz.='(d.d.)'; - - //$zusatz.='test'; - - $data[]=array('student'=>array( - 'vorname'=>$row->vorname, - 'nachname'=>$row->nachname, - 'personenkennzeichen'=>trim($row->matrikelnr), - 'matr_nr'=>$row->matr_nr, - 'semester'=>$row->semester, - 'verband'=>trim($row->verband), - 'gruppe'=>trim($row->gruppe), - 'zusatz'=>$zusatz, - 'studiengang_kurzbz'=>$row->kurzbzlang, - 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz - )); - } - } - //Anzahl Studierende in Array $data (an erster Stelle) einfuegen - $data = array_reverse($data, true); - $data['anzahl_studierende'] = $anzahl_studierende; - $data = array_reverse($data, true); -} +$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $lehreinheit); +$arr_lehrende = $lehrelisthelper->getArr_Lehrende(); +$data = $lehrelisthelper->getData(); +$studentuids = $lehrelisthelper->getStudentUids(); $doc->addDataArray($data,'anwesenheitsliste'); if($lehreinheit!='') diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php index a29ab570d..a3e3898d7 100644 --- a/cis/private/lehre/covidstatusliste.php +++ b/cis/private/lehre/covidstatusliste.php @@ -18,7 +18,6 @@ * Authors: Manfred Kindl */ require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/dokument_export.class.php'); require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/lehreinheitgruppe.class.php'); require_once('../../../include/lehreinheit.class.php'); @@ -28,6 +27,7 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/functions.inc.php'); require_once('../../../include/erhalter.class.php'); require_once('../../../include/datum.class.php'); +require_once('../../../include/lehrelisthelper.class.php'); require_once('../../../include/covid/covidhelper.class.php'); $debug = false; @@ -59,199 +59,13 @@ if( !$berechtigung->isBerechtigt('admin') && !check_lektor_lehrveranstaltung($user,$lvid,$studiensemester)) die('Sie muessen LektorIn der LV sein oder das Recht "ADMIN", "ASSISTENZ" oder "LEHRE" haben, um diese Seite aufrufen zu koennen'); -$output='pdf'; - -if(isset($_GET['output']) && ($output='odt' || $output='doc')) - $output=$_GET['output']; - isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; -// Teilnehmende Gruppen laden -$qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) - UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, - semester, - verband, - gruppe, - gruppe_kurzbz - FROM campus.vw_lehreinheit - WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz=".$db->db_add_param($studiensemester); -if($lehreinheit!='') - $qry.=" AND lehreinheit_id=".$db->db_add_param($lehreinheit, FHC_INTEGER); - -$gruppen_string = ''; -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($gruppen_string!='') - $gruppen_string.=', '; - if($row->gruppe_kurzbz=='') - $gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe); - else - $gruppen_string.=$row->gruppe_kurzbz; - } -} - - -// Verplante Räume laden -$qry = "SELECT distinct(ort_kurzbz) - FROM lehre.tbl_stundenplan - WHERE lehreinheit_id in - ( - SELECT lehreinheit_id - FROM campus.vw_lehreinheit - WHERE lehrveranstaltung_id = ".$db->db_add_param($lvid, FHC_INTEGER)." - AND studiensemester_kurzbz = ".$db->db_add_param($studiensemester)." - )"; -if($lehreinheit!='') - $qry.= " AND tbl_stundenplan.lehreinheit_id = ".$db->db_add_param($lehreinheit, FHC_INTEGER); - - -$raum_string = ''; -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($raum_string!='') - $raum_string.=', '; - if($row->ort_kurzbz!='') - $raum_string.=$row->ort_kurzbz; - } -} - - -$stg = new studiengang(); -$stg->load($lv->studiengang_kz); - -$studiengang_bezeichnung=$stg->bezeichnung; - -$stg->getAllTypes(); - -$data = array( - 'gruppen'=>$gruppen_string, - 'bezeichnung'=>$lv->bezeichnung, - 'lehrveranstaltung_id'=>$lv->lehrveranstaltung_id, - 'studiengang'=>$studiengang_bezeichnung, - 'studiengang_kz'=>$lv->studiengang_kz, - 'typ'=>$stg->studiengang_typ_arr[$stg->typ], - 'ects'=>$lv->ects, - 'sprache'=>$lv->sprache, - 'studiensemester'=>$studiensemester, - 'semester'=>$lv->semester, - 'orgform'=>$lv->orgform_kurzbz, - 'raum'=>$raum_string, -); - -//Lehrende der LV laden und in ein Array schreiben -$lehrende = new lehreinheitmitarbeiter(); -$lehrende->getMitarbeiterLV($lvid, $studiensemester, $lehreinheit); -$arr_lehrende = array(); -if (isset($lehrende->result)) -{ - foreach($lehrende->result AS $row) - { - $data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); - $arr_lehrende[]=mb_strtoupper($row->uid); - } -} - - -//Studierende der LV laden und in ein Array schreiben - -$qry = 'SELECT - distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid, - tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, - (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, - tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, - tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz - FROM - campus.vw_student_lehrveranstaltung - JOIN public.tbl_benutzer USING(uid) - JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) - LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) - LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) - LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) - LEFT JOIN lehre.tbl_note USING (note) - LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) - LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) - LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) - WHERE - vw_student_lehrveranstaltung.lehrveranstaltung_id='.$db->db_add_param($lvid, FHC_INTEGER).' AND - vw_student_lehrveranstaltung.studiensemester_kurzbz='.$db->db_add_param($studiensemester);';'; - - -if($lehreinheit!='') - $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$db->db_add_param($lehreinheit, FHC_INTEGER); - -$qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; - -$stsem_obj = new studiensemester(); -$stsem_obj->load($studiensemester); -$stsemdatumvon = $stsem_obj->start; -$stsemdatumbis = $stsem_obj->ende; - -$erhalter = new erhalter(); -$erhalter->getAll(); - -$a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) -$anzahl_studierende = 0; -$datum = new datum(); -$zusatz = ''; - -$studentuids = array(); -if($result = $db->db_query($qry)) -{ - while($row = $db->db_fetch_object($result)) - { - if($row->status!='Abbrecher' && $row->status!='Unterbrecher') - { - $anzahl_studierende++; - - if($row->status=='Incoming') //Incoming - $zusatz='(i)'; - else - $zusatz=''; - - if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing - $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; - - if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen - $zusatz.= '('. $row->anmerkung. ')'; - - if($row->mitarbeiter_uid!='') //mitarbeiter - $zusatz.='(ma)'; - - if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende - $zusatz.='(a.o.)'; - - if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student - $zusatz.='(d.d.)'; - - //$zusatz.='test'; - - $studentuids[] = $row->student_uid; - $data[]=array('student'=>array( - 'uid' => $row->student_uid, - 'vorname'=>$row->vorname, - 'nachname'=>$row->nachname, - 'personenkennzeichen'=>trim($row->matrikelnr), - 'matr_nr'=>$row->matr_nr, - 'semester'=>$row->semester, - 'verband'=>trim($row->verband), - 'gruppe'=>trim($row->gruppe), - 'zusatz'=>$zusatz, - 'studiengang_kurzbz'=>$row->kurzbzlang, - 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz - )); - } - } - //Anzahl Studierende in Array $data (an erster Stelle) einfuegen - $data = array_reverse($data, true); - $data['anzahl_studierende'] = $anzahl_studierende; - $data = array_reverse($data, true); -} +$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $lehreinheit); +$arr_lehrende = $lehrelisthelper->getArr_Lehrende(); +$data = $lehrelisthelper->getData(); +$studentuids = $lehrelisthelper->getStudentUids(); $covidhelper = new CovidHelper(); $covidhelper->fetchCovidStatus($studentuids); @@ -273,15 +87,20 @@ header('Content-Type: text/html; charset=utf-8');
-

Covid-Status-Liste

-

Gruppen: Studiensemester:

-

Lehrende:

-

generiert: format('d.m.Y H:i'); ?>

+

Covid-Status-Liste ""

+
    +
  • Gruppen:
  • +
  • Studiensemester:
  • +
  • Lehrende: getLehrende_String(); ?>
  • +
  • generiert: format('d.m.Y H:i'); ?>
  • +
  • Anzahl der Studierenden:
  • +
- + + @@ -289,6 +108,8 @@ header('Content-Type: text/html; charset=utf-8'); + diff --git a/include/lehrelisthelper.class.php b/include/lehrelisthelper.class.php new file mode 100644 index 000000000..610a11f7b --- /dev/null +++ b/include/lehrelisthelper.class.php @@ -0,0 +1,293 @@ + + * Manfred Kindl + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/lehrveranstaltung.class.php'); +require_once('../../../include/lehreinheitgruppe.class.php'); +require_once('../../../include/lehreinheit.class.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/lehreinheitmitarbeiter.class.php'); +require_once('../../../include/studiensemester.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/erhalter.class.php'); +require_once('../../../include/datum.class.php'); +/** + * Description of lehrelisthelper + * + * @author bambi + */ +class LehreListHelper +{ + protected $db; + protected $studiensemester; + protected $lvid; + protected $lv; + protected $lehreinheit; + + protected $arr_lehrende; + protected $studentuids; + protected $data; + + protected $gruppen_string; + protected $lehrende_string; + protected $raum_string; + + public function __construct(basis_db $db, $studiensemester, $lvid, + lehrveranstaltung $lv, $lehreinheit='') + { + $this->db = $db; + $this->studiensemester = $studiensemester; + $this->lvid = $lvid; + $this->lv = $lv; + $this->lehreinheit = $lehreinheit; + + $this->arr_lehrende = array(); + $this->studentuids = array(); + $this->data = array(); + + $this->gruppen_string = ''; + $this->lehrende_string = ''; + $this->raum_string = ''; + + $this->loadMemberGroups(); + $this->loadPlannedRooms(); + $this->initData(); + $this->loadLehrende(); + $this->loadStudierende(); + } + + public function getData() + { + return $this->data; + } + + public function getStudentUids() + { + return $this->studentuids; + } + + public function getArr_Lehrende() { + return $this->arr_lehrende; + } + + public function getLehrende_String() + { + return $this->lehrende_string; + } + + protected function loadMemberGroups() + { + // Teilnehmende Gruppen laden + $qry = "SELECT DISTINCT ON(kuerzel, semester, verband, gruppe, gruppe_kurzbz) + UPPER(stg_typ::varchar(1) || stg_kurzbz) as kuerzel, + semester, + verband, + gruppe, + gruppe_kurzbz + FROM campus.vw_lehreinheit + WHERE lehrveranstaltung_id=".$this->db->db_add_param($this->lvid, FHC_INTEGER)." + AND studiensemester_kurzbz=".$this->db->db_add_param($this->studiensemester); + if($this->lehreinheit!='') + $qry.=" AND lehreinheit_id=".$this->db->db_add_param($this->lehreinheit, FHC_INTEGER); + + $this->gruppen_string = ''; + if($result = $this->db->db_query($qry)) + { + while($row = $this->db->db_fetch_object($result)) + { + if($this->gruppen_string!='') + $this->gruppen_string.=', '; + if($row->gruppe_kurzbz=='') + $this->gruppen_string.=trim($row->kuerzel.'-'.$row->semester.$row->verband.$row->gruppe); + else + $this->gruppen_string.=$row->gruppe_kurzbz; + } + } + } + + protected function loadPlannedRooms() + { + // Verplante Räume laden + $qry = "SELECT distinct(ort_kurzbz) + FROM lehre.tbl_stundenplan + WHERE lehreinheit_id in + ( + SELECT lehreinheit_id + FROM campus.vw_lehreinheit + WHERE lehrveranstaltung_id = ".$this->db->db_add_param($this->lvid, FHC_INTEGER)." + AND studiensemester_kurzbz = ".$this->db->db_add_param($this->studiensemester)." + )"; + if($this->lehreinheit!='') + $qry.= " AND tbl_stundenplan.lehreinheit_id = ".$this->db->db_add_param($this->lehreinheit, FHC_INTEGER); + + + $this->raum_string = ''; + if($result = $this->db->db_query($qry)) + { + while($row = $this->db->db_fetch_object($result)) + { + if($this->raum_string!='') + $this->raum_string.=', '; + if($row->ort_kurzbz!='') + $this->raum_string.=$row->ort_kurzbz; + } + } + } + + protected function initData() + { + $stg = new studiengang(); + $stg->load($this->lv->studiengang_kz); + + $studiengang_bezeichnung=$stg->bezeichnung; + + $stg->getAllTypes(); + + $this->data = array( + 'gruppen'=>$this->gruppen_string, + 'bezeichnung'=>$this->lv->bezeichnung, + 'lehrveranstaltung_id'=>$this->lv->lehrveranstaltung_id, + 'studiengang'=>$studiengang_bezeichnung, + 'studiengang_kz'=>$this->lv->studiengang_kz, + 'typ'=>$stg->studiengang_typ_arr[$stg->typ], + 'ects'=>$this->lv->ects, + 'sprache'=>$this->lv->sprache, + 'studiensemester'=>$this->studiensemester, + 'semester'=>$this->lv->semester, + 'orgform'=>$this->lv->orgform_kurzbz, + 'raum'=>$this->raum_string, + ); + } + + protected function loadLehrende() { + //Lehrende der LV laden und in ein Array schreiben + $lehrende = new lehreinheitmitarbeiter(); + $lehrende->getMitarbeiterLV($this->lvid, $this->studiensemester, $this->lehreinheit); + $this->arr_lehrende = array(); + if (isset($lehrende->result)) + { + foreach($lehrende->result AS $row) + { + $this->data[]=array('lehrende'=>array('uid'=>$row->uid,'name'=>$row->vorname.' '.$row->nachname)); + $this->arr_lehrende[]=mb_strtoupper($row->uid); + $this->lehrende_string .= (strlen($this->lehrende_string) > 0) + ? ', ' . $row->vorname . ' ' . $row->nachname + : $row->vorname . ' ' . $row->nachname; + } + } + } + + protected function loadStudierende() { + //Studierende der LV laden und in ein Array schreiben + + $qry = 'SELECT + distinct on(nachname, vorname, person_id) vorname, nachname, matrikelnr, public.tbl_student.student_uid, + tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe, + (SELECT status_kurzbz FROM public.tbl_prestudentstatus WHERE prestudent_id=tbl_student.prestudent_id ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1) as status, + tbl_bisio.bisio_id, tbl_bisio.von, tbl_bisio.bis, tbl_student.studiengang_kz AS stg_kz_student, + tbl_note.lkt_ueberschreibbar, tbl_note.anmerkung, tbl_mitarbeiter.mitarbeiter_uid, tbl_person.matr_nr, tbl_studiengang.kurzbzlang, tbl_mobilitaet.mobilitaetstyp_kurzbz + FROM + campus.vw_student_lehrveranstaltung + JOIN public.tbl_benutzer USING(uid) + JOIN public.tbl_person USING(person_id) LEFT JOIN public.tbl_student ON(uid=student_uid) + LEFT JOIN public.tbl_mitarbeiter ON(uid=mitarbeiter_uid) + LEFT JOIN public.tbl_studentlehrverband USING(student_uid,studiensemester_kurzbz) + LEFT JOIN lehre.tbl_zeugnisnote on(vw_student_lehrveranstaltung.lehrveranstaltung_id=tbl_zeugnisnote.lehrveranstaltung_id AND tbl_zeugnisnote.student_uid=tbl_student.student_uid AND tbl_zeugnisnote.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz) + LEFT JOIN lehre.tbl_note USING (note) + LEFT JOIN bis.tbl_bisio ON(uid=tbl_bisio.student_uid) + LEFT JOIN public.tbl_studiengang ON(tbl_student.studiengang_kz=tbl_studiengang.studiengang_kz) + LEFT JOIN bis.tbl_mobilitaet USING(prestudent_id) + WHERE + vw_student_lehrveranstaltung.lehrveranstaltung_id='.$this->db->db_add_param($this->lvid, FHC_INTEGER).' AND + vw_student_lehrveranstaltung.studiensemester_kurzbz='.$this->db->db_add_param($this->studiensemester); + + + if($this->lehreinheit!='') + $qry.=' AND vw_student_lehrveranstaltung.lehreinheit_id='.$this->db->db_add_param($this->lehreinheit, FHC_INTEGER); + + $qry.=' ORDER BY nachname, vorname, person_id, tbl_bisio.bis DESC'; + + $stsem_obj = new studiensemester(); + $stsem_obj->load($this->studiensemester); + $stsemdatumvon = $stsem_obj->start; + $stsemdatumbis = $stsem_obj->ende; + + $erhalter = new erhalter(); + $erhalter->getAll(); + + $a_o_kz = '9'.sprintf("%03s", $erhalter->result[0]->erhalter_kz); //Stg_Kz AO-Studierende auslesen (9005 fuer FHTW) + $anzahl_studierende = 0; + $datum = new datum(); + $zusatz = ''; + + $this->studentuids = array(); + if($result = $this->db->db_query($qry)) + { + while($row = $this->db->db_fetch_object($result)) + { + if($row->status!='Abbrecher' && $row->status!='Unterbrecher') + { + $anzahl_studierende++; + + if($row->status=='Incoming') //Incoming + $zusatz='(i)'; + else + $zusatz=''; + + if($row->bisio_id!='' && $row->status!='Incoming' && ($row->bis > $stsemdatumvon || $row->bis=='') && $row->von < $stsemdatumbis) //Outgoing + $zusatz.='(o)(ab '.$datum->formatDatum($row->von,'d.m.Y').')'; + + if($row->lkt_ueberschreibbar == 'f') // angerechnet / intern angerechnet / nicht zugelassen + $zusatz.= '('. $row->anmerkung. ')'; + + if($row->mitarbeiter_uid!='') //mitarbeiter + $zusatz.='(ma)'; + + if($row->stg_kz_student==$a_o_kz) //Außerordentliche Studierende + $zusatz.='(a.o.)'; + + if($row->mobilitaetstyp_kurzbz !='') //Double Degree Student + $zusatz.='(d.d.)'; + + //$zusatz.='test'; + + $this->studentuids[] = $row->student_uid; + $this->data[]=array('student'=>array( + 'uid' => $row->student_uid, + 'vorname'=>$row->vorname, + 'nachname'=>$row->nachname, + 'personenkennzeichen'=>trim($row->matrikelnr), + 'matr_nr'=>$row->matr_nr, + 'semester'=>$row->semester, + 'verband'=>trim($row->verband), + 'gruppe'=>trim($row->gruppe), + 'zusatz'=>$zusatz, + 'studiengang_kurzbz'=>$row->kurzbzlang, + 'mobilitaetstyp_kurzbz'=>$row->mobilitaetstyp_kurzbz + )); + } + } + //Anzahl Studierende in Array $data (an erster Stelle) einfuegen + $this->data = array_reverse($this->data, true); + $this->data['anzahl_studierende'] = $anzahl_studierende; + $this->data = array_reverse($this->data, true); + } + } +} From 487da82e330ee84a22c474e07b9d3fc608465f56 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 1 Nov 2021 15:51:20 +0100 Subject: [PATCH 059/227] pass studiengang to lehrelisthelper --- cis/private/lehre/anwesenheitsliste.pdf.php | 5 +++-- cis/private/lehre/covidstatusliste.php | 5 ++++- include/lehrelisthelper.class.php | 13 ++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 6d33c351a..6152b885d 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -65,11 +65,12 @@ if(isset($_GET['output']) && ($output='odt' || $output='doc')) isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; - +$stg = new studiengang(); +$stg->load($this->lv->studiengang_kz); $doc = new dokument_export('Anwesenheitslist'); -$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $lehreinheit); +$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit); $arr_lehrende = $lehrelisthelper->getArr_Lehrende(); $data = $lehrelisthelper->getData(); $studentuids = $lehrelisthelper->getStudentUids(); diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php index a3e3898d7..ea8cfe7e8 100644 --- a/cis/private/lehre/covidstatusliste.php +++ b/cis/private/lehre/covidstatusliste.php @@ -62,7 +62,10 @@ if( !$berechtigung->isBerechtigt('admin') isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; -$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $lehreinheit); +$stg = new studiengang(); +$stg->load($this->lv->studiengang_kz); + +$lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit); $arr_lehrende = $lehrelisthelper->getArr_Lehrende(); $data = $lehrelisthelper->getData(); $studentuids = $lehrelisthelper->getStudentUids(); diff --git a/include/lehrelisthelper.class.php b/include/lehrelisthelper.class.php index 610a11f7b..619b112f1 100644 --- a/include/lehrelisthelper.class.php +++ b/include/lehrelisthelper.class.php @@ -40,6 +40,7 @@ class LehreListHelper protected $lvid; protected $lv; protected $lehreinheit; + protected $stg; protected $arr_lehrende; protected $studentuids; @@ -50,13 +51,14 @@ class LehreListHelper protected $raum_string; public function __construct(basis_db $db, $studiensemester, $lvid, - lehrveranstaltung $lv, $lehreinheit='') + lehrveranstaltung $lv, studiengang $stg, $lehreinheit='') { $this->db = $db; $this->studiensemester = $studiensemester; $this->lvid = $lvid; $this->lv = $lv; $this->lehreinheit = $lehreinheit; + $this->stg = $stg; $this->arr_lehrende = array(); $this->studentuids = array(); @@ -153,12 +155,9 @@ class LehreListHelper protected function initData() { - $stg = new studiengang(); - $stg->load($this->lv->studiengang_kz); + $studiengang_bezeichnung=$this->stg->bezeichnung; - $studiengang_bezeichnung=$stg->bezeichnung; - - $stg->getAllTypes(); + $this->stg->getAllTypes(); $this->data = array( 'gruppen'=>$this->gruppen_string, @@ -166,7 +165,7 @@ class LehreListHelper 'lehrveranstaltung_id'=>$this->lv->lehrveranstaltung_id, 'studiengang'=>$studiengang_bezeichnung, 'studiengang_kz'=>$this->lv->studiengang_kz, - 'typ'=>$stg->studiengang_typ_arr[$stg->typ], + 'typ'=>$this->stg->studiengang_typ_arr[$this->stg->typ], 'ects'=>$this->lv->ects, 'sprache'=>$this->lv->sprache, 'studiensemester'=>$this->studiensemester, From 12f7f43e65407e5d8492873eaf2010471b5e9e66 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Mon, 1 Nov 2021 15:52:52 +0100 Subject: [PATCH 060/227] fix copy paste error --- cis/private/lehre/anwesenheitsliste.pdf.php | 2 +- cis/private/lehre/covidstatusliste.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.pdf.php b/cis/private/lehre/anwesenheitsliste.pdf.php index 6152b885d..065820c91 100644 --- a/cis/private/lehre/anwesenheitsliste.pdf.php +++ b/cis/private/lehre/anwesenheitsliste.pdf.php @@ -66,7 +66,7 @@ isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; $stg = new studiengang(); -$stg->load($this->lv->studiengang_kz); +$stg->load($lv->studiengang_kz); $doc = new dokument_export('Anwesenheitslist'); diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php index ea8cfe7e8..8e9b07fa1 100644 --- a/cis/private/lehre/covidstatusliste.php +++ b/cis/private/lehre/covidstatusliste.php @@ -63,7 +63,7 @@ isset($_GET['stg_kz']) ? $studiengang = $_GET['stg_kz'] : $studiengang = NULL; isset($_GET['lehreinheit_id']) ? $lehreinheit = $_GET['lehreinheit_id'] : $lehreinheit = NULL; $stg = new studiengang(); -$stg->load($this->lv->studiengang_kz); +$stg->load($lv->studiengang_kz); $lehrelisthelper = new LehreListHelper($db, $studiensemester, $lvid, $lv, $stg, $lehreinheit); $arr_lehrende = $lehrelisthelper->getArr_Lehrende(); From 776d448fbaece82548868086de5141130ca654e4 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 2 Nov 2021 10:41:41 +0100 Subject: [PATCH 061/227] Erweiterung Gesamtnotenliste um Double Degree Program --- .../benotungstool/lvgesamtnoteverwalten.php | 36 +++++++++++++++-- include/prestudent.class.php | 39 +++++++++++++++++++ 2 files changed, 71 insertions(+), 4 deletions(-) diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index 407502178..beca444ec 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -45,6 +45,8 @@ require_once ('../../../../include/note.class.php'); require_once ('../../../../include/notenschluessel.class.php'); require_once ('../../../../include/studienplan.class.php'); require_once ('../../../../include/addon.class.php'); +require_once ('../../../../include/mobilitaet.class.php'); +require_once ('../../../../include/prestudent.class.php'); $summe_stud = 0; $summe_t2 = 0; @@ -80,6 +82,8 @@ if (! $lv_obj->load($lvid)) // Studiengang laden $stg_obj = new studiengang($lv_obj->studiengang_kz); +$stg_obj->studiengang_kz; + $datum_obj = new datum(); if (isset($_GET['stsem'])) @@ -901,7 +905,7 @@ if (isset($_REQUEST["freigabe"]) && ($_REQUEST["freigabe"] == 1)) if ($neuenoten > 0) { $lv = new lehrveranstaltung($lvid); - $sg = new studiengang($lv->studiengang_kz); + echo $sg = new studiengang($lv->studiengang_kz); $lektor_adresse = $user . "@" . DOMAIN; $adressen = $sg->email . ", " . $user . "@" . DOMAIN; @@ -1113,8 +1117,8 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG campus.vw_student_lehrveranstaltung JOIN campus.vw_student USING(uid) WHERE - studiensemester_kurzbz = " . $db->db_add_param($stsem) . " - AND lehrveranstaltung_id = " . $db->db_add_param($lvid) . " + studiensemester_kurzbz = ". $db->db_add_param($stsem). " + AND lehrveranstaltung_id = ". $db->db_add_param($lvid). " ORDER BY nachname, vorname "; if ($result_stud = $db->db_query($qry_stud)) @@ -1122,11 +1126,28 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $i = 1; $errorshown = false; $summe_stud = $db->db_num_rows($result_stud); + + //Ergänzung um Mobility-Eintrag (d.d.) while ($row_stud = $db->db_fetch_object($result_stud)) { $grades[$row_stud->uid]['vorname'] = $row_stud->vorname; $grades[$row_stud->uid]['nachname'] = $row_stud->nachname; + $ps = new prestudent(); + $prestudent_id = $ps->getPrestudentFromBenutzer($row_stud->uid, $stg_obj->studiengang_kz, $stsem); + $mobility = new mobilitaet(); + $mobility->loadPrestudent($prestudent_id); + $output = $mobility->result; + $eintrag = ''; + + foreach ($output as $k) + { + if($k->mobilitaetstyp_kurzbz == 'GS') + $eintrag = ' (d.d.)'; + } + + $grades[$row_stud->uid]['mobility'] = $eintrag; + // Noten aus Uebungstool $le = new lehreinheit(); $le->load_lehreinheiten($lvid, $stsem); @@ -1167,12 +1188,13 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $anzahlChanged = 0; foreach ($grades as $uid => $data) + //Ausgabe Array { $htmlstring .= ' - '; + '; // Bereits eingetragene Note ermitteln if ($lvgesamtnote = new lvgesamtnote($lvid, $uid, $stsem)) @@ -1619,5 +1641,11 @@ echo $htmlstring;
+
+
+

Legende

+

(d.d.)... Double Degree Program

+
+ diff --git a/include/prestudent.class.php b/include/prestudent.class.php index ab1e329dd..b5f9912d9 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2463,4 +2463,43 @@ class prestudent extends person return false; } } + + /** + * Ermittelt den Prestudenten mithilfe der UID, des Studiengangs und des Semesters + * @param string $uid UID des Benutzers (zum Beispiel se15m007). + * @param int $stg_kz Kennzeichen Studiengang (zum Beispiel 299). + * @param string $stsem Semesterkurzbezeichnung (zum Beispiel WS2021). + * @return int prestudent_id + */ + public function getPrestudentFromBenutzer($uid, $stg_kz, $stsem) + { + $qry = "SELECT + prestudent_id + FROM public.tbl_benutzer + JOIN public.tbl_prestudent USING (person_id) + JOIN public.tbl_prestudentstatus USING (prestudent_id) + WHERE uid = ".$this->db_add_param($uid)." + AND studiengang_kz = ".$this->db_add_param($stg_kz, FHC_INTEGER)." + AND studiensemester_kurzbz = ".$this->db_add_param($stsem)." + AND status_kurzbz = 'Student';"; + + if ($this->db_query($qry)) + { + if ($row = $this->db_fetch_object()) + { + $prestudent_id = $row->prestudent_id; + return $prestudent_id; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } From f37161dcc218b7cdeaded02736ab4c3c4fc24267 Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 2 Nov 2021 14:49:13 +0100 Subject: [PATCH 062/227] Vereinfachung Funktion getPrestudentFromBenutzer --- include/prestudent.class.php | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/include/prestudent.class.php b/include/prestudent.class.php index b5f9912d9..1b009a18f 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2468,20 +2468,15 @@ class prestudent extends person * Ermittelt den Prestudenten mithilfe der UID, des Studiengangs und des Semesters * @param string $uid UID des Benutzers (zum Beispiel se15m007). * @param int $stg_kz Kennzeichen Studiengang (zum Beispiel 299). - * @param string $stsem Semesterkurzbezeichnung (zum Beispiel WS2021). * @return int prestudent_id */ - public function getPrestudentFromBenutzer($uid, $stg_kz, $stsem) + public function getPrestudentFromBenutzer($uid, $stg_kz) { $qry = "SELECT prestudent_id - FROM public.tbl_benutzer - JOIN public.tbl_prestudent USING (person_id) - JOIN public.tbl_prestudentstatus USING (prestudent_id) - WHERE uid = ".$this->db_add_param($uid)." - AND studiengang_kz = ".$this->db_add_param($stg_kz, FHC_INTEGER)." - AND studiensemester_kurzbz = ".$this->db_add_param($stsem)." - AND status_kurzbz = 'Student';"; + FROM public.tbl_student + WHERE student_uid = ".$this->db_add_param($uid)." + AND studiengang_kz = ".$this->db_add_param($stg_kz, FHC_INTEGER).";"; if ($this->db_query($qry)) { From b549fc1edd8338affae81cd45a7c54f1c2ff88ac Mon Sep 17 00:00:00 2001 From: ma0068 Date: Tue, 2 Nov 2021 15:14:00 +0100 Subject: [PATCH 063/227] Update Funktion getPrestudentIdFromBenutzerId --- .../benotungstool/lvgesamtnoteverwalten.php | 6 ++-- include/prestudent.class.php | 34 ------------------ include/student.class.php | 36 ++++++++++++++++++- 3 files changed, 38 insertions(+), 38 deletions(-) diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index beca444ec..fb4a7fe6d 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -46,7 +46,7 @@ require_once ('../../../../include/notenschluessel.class.php'); require_once ('../../../../include/studienplan.class.php'); require_once ('../../../../include/addon.class.php'); require_once ('../../../../include/mobilitaet.class.php'); -require_once ('../../../../include/prestudent.class.php'); +require_once ('../../../../include/student.class.php'); $summe_stud = 0; $summe_t2 = 0; @@ -1133,8 +1133,8 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $grades[$row_stud->uid]['vorname'] = $row_stud->vorname; $grades[$row_stud->uid]['nachname'] = $row_stud->nachname; - $ps = new prestudent(); - $prestudent_id = $ps->getPrestudentFromBenutzer($row_stud->uid, $stg_obj->studiengang_kz, $stsem); + $ps = new student(); + $prestudent_id = $ps->getPrestudentIdFromBenutzerId($row_stud->uid, $stg_obj->studiengang_kz); $mobility = new mobilitaet(); $mobility->loadPrestudent($prestudent_id); $output = $mobility->result; diff --git a/include/prestudent.class.php b/include/prestudent.class.php index 1b009a18f..ab1e329dd 100644 --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -2463,38 +2463,4 @@ class prestudent extends person return false; } } - - /** - * Ermittelt den Prestudenten mithilfe der UID, des Studiengangs und des Semesters - * @param string $uid UID des Benutzers (zum Beispiel se15m007). - * @param int $stg_kz Kennzeichen Studiengang (zum Beispiel 299). - * @return int prestudent_id - */ - public function getPrestudentFromBenutzer($uid, $stg_kz) - { - $qry = "SELECT - prestudent_id - FROM public.tbl_student - WHERE student_uid = ".$this->db_add_param($uid)." - AND studiengang_kz = ".$this->db_add_param($stg_kz, FHC_INTEGER).";"; - - if ($this->db_query($qry)) - { - if ($row = $this->db_fetch_object()) - { - $prestudent_id = $row->prestudent_id; - return $prestudent_id; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } } diff --git a/include/student.class.php b/include/student.class.php index 4618ddbcd..8480ce2d3 100644 --- a/include/student.class.php +++ b/include/student.class.php @@ -571,7 +571,7 @@ class student extends benutzer { $qry = "SELECT tbl_student.* FROM public.tbl_benutzer JOIN public.tbl_student ON(uid=student_uid) WHERE person_id=".$this->db_add_param($person_id, FHC_INTEGER); - + if($studiengang_kz != '') { $qry .= " AND studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER); @@ -896,4 +896,38 @@ class student extends benutzer return null; } } + + /** + * Ermittelt den Prestudenten mithilfe der UID, des Studiengangs und des Semesters + * @param string $uid UID des Benutzers (zum Beispiel se15m007). + * @param int $stg_kz Kennzeichen Studiengang (zum Beispiel 299). + * @return int prestudent_id + */ + public function getPrestudentIdFromBenutzerId($uid, $stg_kz) + { + $qry = "SELECT + prestudent_id + FROM public.tbl_student + WHERE student_uid = ".$this->db_add_param($uid)." + AND studiengang_kz = ".$this->db_add_param($stg_kz, FHC_INTEGER).";"; + + if ($this->db_query($qry)) + { + if ($row = $this->db_fetch_object()) + { + $prestudent_id = $row->prestudent_id; + return $prestudent_id; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } From 4d1994ca63ca912c5e395ec7a5b17faf9c2eb31c Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Tue, 2 Nov 2021 17:50:20 +0100 Subject: [PATCH 064/227] menulayout, coding styles --- cis/private/lehre/anwesenheitsliste.php | 25 +++++++++++++++++-------- cis/private/lehre/covidstatusliste.php | 9 ++++++--- include/covid/covidhelper.class.php | 6 ++++-- include/lehrelisthelper.class.php | 9 ++++++--- locale/de-AT/anwesenheitsliste.php | 1 + locale/en-US/anwesenheitsliste.php | 1 + 6 files changed, 35 insertions(+), 16 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.php b/cis/private/lehre/anwesenheitsliste.php index 6859c1a2e..0eda67a65 100644 --- a/cis/private/lehre/anwesenheitsliste.php +++ b/cis/private/lehre/anwesenheitsliste.php @@ -96,6 +96,7 @@ $covidhelper = new CovidHelper(); isUdfDefined()) ? 'Covid-Status' : ''; - $aw_content .= ""; + $covid_content .= ($covidhelper->isUdfDefined()) ? '' : ''; + $aw_content .= ""; $awbild_content .= ""; $nt_content .= ""; @@ -164,8 +165,8 @@ $covidhelper = new CovidHelper(); } } - $covid_content = ($covidhelper->isUdfDefined()) ? 'Covid-Status' : ''; - $aw_content .= ""; + $covid_content .= ($covidhelper->isUdfDefined()) ? '' : ''; + $aw_content .= ""; $awbild_content .= ""; $nt_content .= ""; @@ -200,8 +201,8 @@ $covidhelper = new CovidHelper(); } } - $covid_content = ($covidhelper->isUdfDefined()) ? 'Covid-Status' : ''; - $aw_content .= ""; + $covid_content .= ($covidhelper->isUdfDefined()) ? '' : ''; + $aw_content .= ""; $awbild_content .= ""; $nt_content .= ""; } @@ -213,6 +214,11 @@ $covidhelper = new CovidHelper(); } else { + if($covid_content!='') + $covid_content = "
Studentlfd.Nr.Name Kennzeichen Gruppe Covid-Status
getIconHtml($tmpstudent['uid']); ?>
' . $db->convert_html_chars($uid) . ' ' . $db->convert_html_chars($data['nachname']) . '' . $db->convert_html_chars($data['vorname']) . '' . $db->convert_html_chars($data['vorname']) . $db->convert_html_chars($data['mobility']) .'
".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung" . $covid_content . "
' . $p->t('anwesenheitsliste/gesamtliste') . ' ' . $lv->bezeichnung . '
".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung
".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung
".$p->t('anwesenheitsliste/gesamtliste')." $lv->bezeichnung
   $kurzbz - $lehrform - $gruppen ($lektoren)" . $covid_content . "
   ' . $kurzbz . ' - ' . $lehrform . ' - ' . $gruppen . ' (' . $lektoren . ')
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)" . $covid_content . "
   ' . $kurzbz . ' - ' . $lehrform . ' - ' . $gruppen . ' (' . $lektoren . ')
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)
   $kurzbz - $lehrform - $gruppen ($lektoren)
".$covid_content."

".$p->t('anwesenheitsliste/covidstatuslisten')."

"; + else + $covid_content = $p->t('anwesenheitsliste/keineStudentenVorhanden'); + if($aw_content!='') $aw_content = "".$aw_content."

".$p->t('anwesenheitsliste/anwesenheitslisten')."

"; else @@ -236,17 +242,20 @@ $covidhelper = new CovidHelper(); $aw_content=''; if(defined('CIS_ANWESENHEITSLISTE_ANWESENHEITSLISTE_BILD_ANZEIGEN') && !CIS_ANWESENHEITSLISTE_ANWESENHEITSLISTE_BILD_ANZEIGEN) $awbild_content=''; - + echo " - + + + +
$aw_content$covid_content
$awbild_content
$nt_content
"; diff --git a/cis/private/lehre/covidstatusliste.php b/cis/private/lehre/covidstatusliste.php index 8e9b07fa1..85fbb643e 100644 --- a/cis/private/lehre/covidstatusliste.php +++ b/cis/private/lehre/covidstatusliste.php @@ -113,8 +113,10 @@ header('Content-Type: text/html; charset=utf-8');
diff --git a/include/covid/covidhelper.class.php b/include/covid/covidhelper.class.php index 3c9ef12da..0ac546689 100644 --- a/include/covid/covidhelper.class.php +++ b/include/covid/covidhelper.class.php @@ -52,11 +52,13 @@ class CovidHelper extends basis_db $this->checkIfUdfValuesAreDefined(); } - public function isUdfDefined() { + public function isUdfDefined() + { return $this->isUdfDefined; } - public function fetchCovidStatus(array $uids) { + public function fetchCovidStatus(array $uids) + { $this->uids = $uids; $this->covidstatus = array(); $this->fetchCovidValidStatus(); diff --git a/include/lehrelisthelper.class.php b/include/lehrelisthelper.class.php index 619b112f1..631d6fb86 100644 --- a/include/lehrelisthelper.class.php +++ b/include/lehrelisthelper.class.php @@ -85,7 +85,8 @@ class LehreListHelper return $this->studentuids; } - public function getArr_Lehrende() { + public function getArr_Lehrende() + { return $this->arr_lehrende; } @@ -175,7 +176,8 @@ class LehreListHelper ); } - protected function loadLehrende() { + protected function loadLehrende() + { //Lehrende der LV laden und in ein Array schreiben $lehrende = new lehreinheitmitarbeiter(); $lehrende->getMitarbeiterLV($this->lvid, $this->studiensemester, $this->lehreinheit); @@ -193,7 +195,8 @@ class LehreListHelper } } - protected function loadStudierende() { + protected function loadStudierende() + { //Studierende der LV laden und in ein Array schreiben $qry = 'SELECT diff --git a/locale/de-AT/anwesenheitsliste.php b/locale/de-AT/anwesenheitsliste.php index d6d98226d..977649a0a 100644 --- a/locale/de-AT/anwesenheitsliste.php +++ b/locale/de-AT/anwesenheitsliste.php @@ -1,6 +1,7 @@ phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='Studiensemester ist ungueltig'; $this->phrasen['anwesenheitsliste/anwesenheitslisten']='Anwesenheitslisten'; +$this->phrasen['anwesenheitsliste/covidstatuslisten']='Covid-Statuslisten'; $this->phrasen['anwesenheitsliste/notenlisten']='Notenlisten'; $this->phrasen['anwesenheitsliste/notenliste']='Notenliste'; $this->phrasen['anwesenheitsliste/anwesenheitslistenMitBildern']='Fotolisten'; diff --git a/locale/en-US/anwesenheitsliste.php b/locale/en-US/anwesenheitsliste.php index 1fc5de993..b5205dfbe 100644 --- a/locale/en-US/anwesenheitsliste.php +++ b/locale/en-US/anwesenheitsliste.php @@ -1,6 +1,7 @@ phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='No valid semester'; $this->phrasen['anwesenheitsliste/anwesenheitslisten']='Attendance lists'; +$this->phrasen['anwesenheitsliste/covidstatuslisten']='Covid status lists'; $this->phrasen['anwesenheitsliste/notenlisten']='Grade lists'; $this->phrasen['anwesenheitsliste/notenliste']='Grade list'; $this->phrasen['anwesenheitsliste/anwesenheitslistenMitBildern']='Picture lists'; From 811b59ef1b485171b755461878e4f3c2429e5284 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Tue, 2 Nov 2021 17:56:33 +0100 Subject: [PATCH 065/227] styling --- cis/private/lehre/anwesenheitsliste.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/cis/private/lehre/anwesenheitsliste.php b/cis/private/lehre/anwesenheitsliste.php index 0eda67a65..25942ebae 100644 --- a/cis/private/lehre/anwesenheitsliste.php +++ b/cis/private/lehre/anwesenheitsliste.php @@ -71,14 +71,9 @@ $covidhelper = new CovidHelper(); - @@ -247,7 +242,7 @@ $covidhelper = new CovidHelper(); $aw_content - $covid_content + $covid_content $awbild_content From 8d4a79f9b93b6bc7de320233a9b2b567b9594be5 Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Tue, 2 Nov 2021 18:00:41 +0100 Subject: [PATCH 066/227] only show messages if covid udf is defined --- cis/private/lehre/anwesenheitsliste.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cis/private/lehre/anwesenheitsliste.php b/cis/private/lehre/anwesenheitsliste.php index 25942ebae..2cdf56d5f 100644 --- a/cis/private/lehre/anwesenheitsliste.php +++ b/cis/private/lehre/anwesenheitsliste.php @@ -212,7 +212,7 @@ $covidhelper = new CovidHelper(); if($covid_content!='') $covid_content = "".$covid_content."

".$p->t('anwesenheitsliste/covidstatuslisten')."

"; else - $covid_content = $p->t('anwesenheitsliste/keineStudentenVorhanden'); + $covid_content = ($covidhelper->isUdfDefined()) ? $p->t('anwesenheitsliste/keineStudentenVorhanden') : ''; if($aw_content!='') $aw_content = "".$aw_content."

".$p->t('anwesenheitsliste/anwesenheitslisten')."

"; From c0fd4f70b90f1b916a490ca25293d3047871016f Mon Sep 17 00:00:00 2001 From: ma0068 Date: Wed, 3 Nov 2021 09:26:48 +0100 Subject: [PATCH 067/227] Ermittlung Prestudent_id mit load() --- .../benotungstool/lvgesamtnoteverwalten.php | 11 +++--- include/student.class.php | 34 ------------------- 2 files changed, 6 insertions(+), 39 deletions(-) diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index fb4a7fe6d..629d3241e 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -1133,19 +1133,20 @@ if (defined("CIS_GESAMTNOTE_PRUEFUNG_MOODLE_LE_NOTE") && CIS_GESAMTNOTE_PRUEFUNG $grades[$row_stud->uid]['vorname'] = $row_stud->vorname; $grades[$row_stud->uid]['nachname'] = $row_stud->nachname; - $ps = new student(); - $prestudent_id = $ps->getPrestudentIdFromBenutzerId($row_stud->uid, $stg_obj->studiengang_kz); + $student = new student(); + $student->load($row_stud->uid); + $student->result[]= $student; + $prestudent_id = $student->prestudent_id; + $mobility = new mobilitaet(); $mobility->loadPrestudent($prestudent_id); $output = $mobility->result; $eintrag = ''; - foreach ($output as $k) { if($k->mobilitaetstyp_kurzbz == 'GS') - $eintrag = ' (d.d.)'; + $eintrag = ' (d.d.)'; } - $grades[$row_stud->uid]['mobility'] = $eintrag; // Noten aus Uebungstool diff --git a/include/student.class.php b/include/student.class.php index 8480ce2d3..55733dd94 100644 --- a/include/student.class.php +++ b/include/student.class.php @@ -896,38 +896,4 @@ class student extends benutzer return null; } } - - /** - * Ermittelt den Prestudenten mithilfe der UID, des Studiengangs und des Semesters - * @param string $uid UID des Benutzers (zum Beispiel se15m007). - * @param int $stg_kz Kennzeichen Studiengang (zum Beispiel 299). - * @return int prestudent_id - */ - public function getPrestudentIdFromBenutzerId($uid, $stg_kz) - { - $qry = "SELECT - prestudent_id - FROM public.tbl_student - WHERE student_uid = ".$this->db_add_param($uid)." - AND studiengang_kz = ".$this->db_add_param($stg_kz, FHC_INTEGER).";"; - - if ($this->db_query($qry)) - { - if ($row = $this->db_fetch_object()) - { - $prestudent_id = $row->prestudent_id; - return $prestudent_id; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } } From 2a1a068ee2d495fe5060653b6daf3c22d588ee3e Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 3 Nov 2021 10:51:40 +0100 Subject: [PATCH 068/227] datum fuers parken nun auf semesterende + 3 monate --- public/js/infocenter/infocenterDetails.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/public/js/infocenter/infocenterDetails.js b/public/js/infocenter/infocenterDetails.js index 79129f3e2..7a8849f71 100644 --- a/public/js/infocenter/infocenterDetails.js +++ b/public/js/infocenter/infocenterDetails.js @@ -378,6 +378,11 @@ var InfocenterDetails = { if (FHC_AjaxClient.hasData(data)) { var engdate = $.datepicker.parseDate("yy-mm-dd", FHC_AjaxClient.getData(data)[0]); + + if (engdate.getDate() === 31) + engdate.setDate(engdate.getDate() - 1); + engdate.setMonth(engdate.getMonth() + 3); + var gerdate = $.datepicker.formatDate("dd.mm.yy", engdate); $("#postponedate").val(gerdate); } From d6e063dd0c174346e5199030d945eebb9622174a Mon Sep 17 00:00:00 2001 From: Harald Bamberger Date: Thu, 4 Nov 2021 11:14:17 +0100 Subject: [PATCH 069/227] check empty uids array --- include/covid/covidhelper.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/covid/covidhelper.class.php b/include/covid/covidhelper.class.php index 0ac546689..b04ff79cc 100644 --- a/include/covid/covidhelper.class.php +++ b/include/covid/covidhelper.class.php @@ -137,7 +137,7 @@ class CovidHelper extends basis_db protected function fetchCovidValidStatus() { - if( !($this->isUdfDefined && is_array($this->uids)) ) + if( !($this->isUdfDefined && is_array($this->uids) && (count($this->uids) > 0)) ) { return; } From 1844140e6d958359f2dc8fd9c9a43cd5dc850657 Mon Sep 17 00:00:00 2001 From: FHBGLD <33415881+FHBGLD@users.noreply.github.com> Date: Thu, 4 Nov 2021 12:55:45 +0100 Subject: [PATCH 070/227] BIS - studentenmeldung MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit neuer Standort für FHB und die bpk wurde wieder hinzugefügt --- vilesci/bis/studentenmeldung.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/vilesci/bis/studentenmeldung.php b/vilesci/bis/studentenmeldung.php index 901181a24..9abeed0b4 100644 --- a/vilesci/bis/studentenmeldung.php +++ b/vilesci/bis/studentenmeldung.php @@ -145,7 +145,7 @@ derzeit fuer alle Studierende der gleiche Standort ToDo: Standort sollte pro Student konfigurierbar sein. */ $standortcode='22'; -if(in_array($stg_kz,array('265','268','761','760','266','267','764','269','400','794','795','786','859'))) +if(in_array($stg_kz,array('265','268','761','760','266','267','764','269','400','794','795','786','859','871'))) $standortcode='14'; // Pinkafeld elseif(in_array($stg_kz,array('639','640','263','743','364','635','402','401','725','264','271','781'))) $standortcode='3'; // Eisenstadt @@ -845,7 +845,7 @@ function GenerateXMLStudentBlock($row) { $error_log.=(!empty($error_log)?', ':'')."Heimat-Nation ('".$nation."')"; } - /*if($row->bpk == '' || $row->bpk == null) + if($row->bpk == '' || $row->bpk == null) { $error_log .= (!empty($error_log) ? ', ' : '') . "bPK fehlt"; } @@ -860,7 +860,7 @@ function GenerateXMLStudentBlock($row) { $error_log.=(!empty($error_log) ? ', ' : ''). "bPK ist nicht 28 Zeichen lang"; } - }*/ + } if (!$ausserordentlich && !$incoming) { if ($zustell_plz == '' || $zustell_plz == null) @@ -1294,9 +1294,9 @@ function GenerateXMLStudentBlock($row) " . $row->ersatzkennzeichen . ""; } - /*$datei .= " + $datei .= " " . $row->bpk . " - ";*/ + "; $datei .= " " . $row->staatsbuergerschaft . " From 0c6f43f36ee4a98c0053336c4a01a24db489703e Mon Sep 17 00:00:00 2001 From: ma0068 Date: Thu, 4 Nov 2021 15:43:05 +0100 Subject: [PATCH 071/227] =?UTF-8?q?Check=20Alias=20auf=20Sonderzeichen=20b?= =?UTF-8?q?ei=20=C3=84nderung=20Alias?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/functions.js.php | 14 ++++++++++++++ .../mitarbeiter/mitarbeiterdetailoverlay.xul.php | 2 +- content/mitarbeiter/mitarbeiteroverlay.js.php | 13 ++++++++++--- 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/content/functions.js.php b/content/functions.js.php index 55eed5414..f81fd26ec 100644 --- a/content/functions.js.php +++ b/content/functions.js.php @@ -419,3 +419,17 @@ function setVariable(variable, wert) return true; } } + +// **** +// * Validierung Alias auf Sonderzeichen (analog zu checkWunschUid, außerdem . und _ erlaubt) +// **** +function checkAlias(alias) +{ + + if (/^[a-z0-9 . _]*$/i.test(alias) === false) + { + return false; + } + else + return true; +} diff --git a/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php b/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php index 1cc8fb34e..c99a35c27 100644 --- a/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php +++ b/content/mitarbeiter/mitarbeiterdetailoverlay.xul.php @@ -269,7 +269,7 @@ echo '';
From e0bc6198d021e9898df78aed8a87a8d1ea35d12b Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 20 Dec 2021 13:04:06 +0100 Subject: [PATCH 115/227] Name statt uid bei der "wird bearbeitet von" Meldung --- .../controllers/system/infocenter/InfoCenter.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index a69a43220..d2a058318 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -1708,9 +1708,15 @@ class InfoCenter extends Auth_Controller if (isset($locked->retval[0]->uid)) { - $lockedby = $locked->retval[0]->uid; - if ($lockedby !== $this->_uid) + if ($locked->retval[0]->uid !== $this->_uid) + { $lockedbyother = true; + + if (!$lockedby = getData($this->PersonModel->getFullName($locked->retval[0]->uid))) + { + show_error('Failed retrieving person'); + } + } } $stammdaten = $this->PersonModel->getPersonStammdaten($person_id, true); From 2d46d80b5f62c3075283d69971c5317e1f84894d Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 22 Dec 2021 16:26:45 +0100 Subject: [PATCH 116/227] meldung wird nun auch angezeigt wenn es die selbe person id ist --- application/models/person/Person_model.php | 37 ++++++++++++++++------ 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php index ec5522674..37d6fb9ff 100644 --- a/application/models/person/Person_model.php +++ b/application/models/person/Person_model.php @@ -268,16 +268,35 @@ class Person_model extends DB_Model public function checkDuplicate($person_id) { - $qry = "SELECT sp.person_id - FROM public.tbl_person p - LEFT JOIN public.tbl_person sp ON p.vorname = sp.vorname - AND p.nachname = sp.nachname - AND p.gebdatum = sp.gebdatum - JOIN public.tbl_prestudent ps ON sp.person_id = ps.person_id - JOIN public.tbl_prestudentstatus pss ON ps.prestudent_id = pss.prestudent_id - WHERE p.person_id = ? AND sp.person_id != ? AND pss.status_kurzbz = ?"; + $qry = "SELECT p.person_id + FROM public.tbl_person p + JOIN public.tbl_prestudent USING (person_id) + JOIN public.tbl_prestudentstatus USING (prestudent_id) + WHERE status_kurzbz = 'Abbrecher' + AND person_id IN (SELECT p2.person_id + FROM public.tbl_person p + JOIN public.tbl_person p2 + ON p.vorname = p2.vorname + AND p.nachname = p2.nachname + AND p.gebdatum = p2.gebdatum + WHERE p.person_id = ? + )"; + $person = $this->execQuery($qry, array($person_id)); - return $this->execQuery($qry, array($person_id, $person_id, 'Abbrecher')); + if (hasData($person)) + { + $qry = "SELECT p2.person_id + FROM public.tbl_person p + JOIN public.tbl_person p2 + ON p.vorname = p2.vorname + AND p.nachname = p2.nachname + AND p.gebdatum = p2.gebdatum + WHERE p.person_id = ?"; + + return $this->execQuery($qry, array($person_id)); + } + + return $person; } } From 4d223145d9bee02359c9fb0dcb6bd8b914bace3c Mon Sep 17 00:00:00 2001 From: ma0048 Date: Wed, 22 Dec 2021 16:32:00 +0100 Subject: [PATCH 117/227] if angepasst --- .../controllers/system/infocenter/InfoCenter.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/application/controllers/system/infocenter/InfoCenter.php b/application/controllers/system/infocenter/InfoCenter.php index d2a058318..1d142d615 100644 --- a/application/controllers/system/infocenter/InfoCenter.php +++ b/application/controllers/system/infocenter/InfoCenter.php @@ -1708,14 +1708,14 @@ class InfoCenter extends Auth_Controller if (isset($locked->retval[0]->uid)) { + if (!$lockedby = getData($this->PersonModel->getFullName($locked->retval[0]->uid))) + { + show_error('Failed retrieving person'); + } + if ($locked->retval[0]->uid !== $this->_uid) { $lockedbyother = true; - - if (!$lockedby = getData($this->PersonModel->getFullName($locked->retval[0]->uid))) - { - show_error('Failed retrieving person'); - } } } From 4c3fe39df73c5ac813ee61b865e12eb8b350a0be Mon Sep 17 00:00:00 2001 From: ma0048 Date: Mon, 3 Jan 2022 13:12:01 +0100 Subject: [PATCH 118/227] zeigt nun noch die lvs des studiengangs an --- content/student/studentprojektarbeit.js.php | 3 ++- rdf/lehrveranstaltung.rdf.php | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/content/student/studentprojektarbeit.js.php b/content/student/studentprojektarbeit.js.php index 40af4107d..124516357 100644 --- a/content/student/studentprojektarbeit.js.php +++ b/content/student/studentprojektarbeit.js.php @@ -652,11 +652,12 @@ function StudentProjektarbeitNeu() StudentProjektarbeitResetFields(); StudentProjektarbeitDetailDisableFields(false); StudentProjektbetreuerDisableFields(true); + var stg_kz = document.getElementById('student-detail-menulist-studiengang_kz').value; var student_uid = document.getElementById('student-detail-textbox-uid').value; //Lehrveranstaltung DropDown laden var LvDropDown = document.getElementById('student-projektarbeit-menulist-lehrveranstaltung'); - url='rdf/lehrveranstaltung.rdf.php?uid='+student_uid+"&projektarbeit=true&"+gettimestamp(); + url='rdf/lehrveranstaltung.rdf.php?uid='+student_uid+'&stg_kz='+stg_kz+"&projektarbeit=true&"+gettimestamp(); //Alte DS entfernen var oldDatasources = LvDropDown.database.GetDataSources(); diff --git a/rdf/lehrveranstaltung.rdf.php b/rdf/lehrveranstaltung.rdf.php index e0f967727..c3519d73e 100644 --- a/rdf/lehrveranstaltung.rdf.php +++ b/rdf/lehrveranstaltung.rdf.php @@ -73,7 +73,11 @@ else $lehrveranstaltung=new lehrveranstaltung(); if($student_uid!='') +{ $lehrveranstaltung->load_lva_student($student_uid); + if ($stg_kz !== '') + $lehrveranstaltung->load_lva($stg_kz); +} elseif($lehrveranstaltung_kompatibel_id!='') { // Laedt die Lehrveranstaltung und alle die dazu kompatibel sind From fe41a3d830549c3051002ab7d099a4e8be10290f Mon Sep 17 00:00:00 2001 From: ma0068 Date: Mon, 3 Jan 2022 15:23:11 +0100 Subject: [PATCH 119/227] =?UTF-8?q?Nationensperre=20im=20Dropdown=20f?= =?UTF-8?q?=C3=BCr=20Staatsbuergerschaft,=20Geburtsnation,=20ZGVNation=20u?= =?UTF-8?q?nd=20ZGVMasternation=20umgesetzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/student/studentdetailoverlay.xul.php | 41 +++++++++++++++++--- rdf/nation.rdf.php | 1 + 2 files changed, 37 insertions(+), 5 deletions(-) diff --git a/content/student/studentdetailoverlay.xul.php b/content/student/studentdetailoverlay.xul.php index dd86b3657..d038364fc 100644 --- a/content/student/studentdetailoverlay.xul.php +++ b/content/student/studentdetailoverlay.xul.php @@ -107,9 +107,16 @@ echo ''; ref="http://www.technikum-wien.at/nation/liste" > @@ -130,12 +137,21 @@ echo ''; ref="http://www.technikum-wien.at/nation/liste" > + +