From 26065f404608bede191a5956ce23269b51883753 Mon Sep 17 00:00:00 2001 From: oesi Date: Fri, 11 Nov 2016 16:46:46 +0100 Subject: [PATCH] =?UTF-8?q?Anwesenheiten=20von=20Mitarbeitern=20k=C3=B6nne?= =?UTF-8?q?n=20direkt=20im=20FAS=20gel=C3=B6scht=20werden=20(rechte=20Maus?= =?UTF-8?q?taste=20bei=20Terminen).=20Dabei=20werden=20die=20Anwesenheiten?= =?UTF-8?q?=20von=20allen=20Studierenden=20zu=20diesem=20Termin=20entfernt?= =?UTF-8?q?!!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/fasDBDML.php | 43 +++++++++++++++++++++++ content/termine.js.php | 64 ++++++++++++++++++++++++++++++++++- content/termine.xul.php | 1 + include/anwesenheit.class.php | 31 +++++++++++++---- 4 files changed, 132 insertions(+), 7 deletions(-) diff --git a/content/fasDBDML.php b/content/fasDBDML.php index ca8cf5aef..9010c388d 100644 --- a/content/fasDBDML.php +++ b/content/fasDBDML.php @@ -689,6 +689,49 @@ if(!$error) } } } + elseif(isset($_POST['type']) && $_POST['type']=='anwesenheitdelete') + { + if(!$rechte->isBerechtigt('student/anwesenheit')) + { + $return = false; + $errormsg = 'Sie haben keine Berechtigung fuer diese Aktion'; + $data = ''; + $error = true; + } + else + { + if(isset($_POST['lehreinheit_id']) && isset($_POST['datum'])) + { + $lehreinheit_id = $_POST['lehreinheit_id']; + $datum = $_POST['datum']; + $anwesenheit = new anwesenheit(); + if($anwesenheit->getAnwesenheitLehreinheit($lehreinheit_id, $datum)) + { + $return = true; + $errormsg = ""; + foreach($anwesenheit->result as $row) + { + $aw = new anwesenheit(); + if(!$aw->delete($row->anwesenheit_id)) + { + $errormsg.=$aw->errormsg; + $return = false; + } + } + } + else + { + $return = false; + $errormsg = $anwesenheit->errormsg; + } + } + else + { + $return = false; + $errormsg = 'Fehlerhafte Parameteruebergabe'; + } + } + } else { $return = false; diff --git a/content/termine.js.php b/content/termine.js.php index 3750853f9..8675cf52f 100644 --- a/content/termine.js.php +++ b/content/termine.js.php @@ -36,6 +36,16 @@ function loadTermine(lehreinheit_id, lehrveranstaltung_id, mitarbeiter_uid, stud TermineMitarbeiterUID=mitarbeiter_uid; TermineStudentUID=student_uid; + if(student_uid=='') + document.getElementById('termine-tree-popup-toggle-anwesenheit').hidden=true; + else + document.getElementById('termine-tree-popup-toggle-anwesenheit').hidden=false; + + if(mitarbeiter_uid=='') + document.getElementById('termine-tree-popup-delete-anwesenheit').hidden=true; + else + document.getElementById('termine-tree-popup-delete-anwesenheit').hidden=false; + // Stundenplan Tabelle aus Variablen holen TermineStundenplanTable = getvariable('termin_export_db_stpl_table'); TermineSetSTPLTable(TermineStundenplanTable); @@ -126,7 +136,7 @@ function TermineToggleAnwesenheit() alert('Anwesenheit kann nur in der Studierendenansicht geaendert werden'); return; } - + if(TermineStundenplanTable!='stundenplan') { alert('Bitte wechseln Sie auf die Stundenplan Tabelle. Anhand der StundenplanDEV duerfen keine Anwesenheiten geaendert werden.'); @@ -167,3 +177,55 @@ function TermineToggleAnwesenheit() SetStatusBarText('Daten wurden gespeichert'); } } + +function TermineDeleteAnwesenheit() +{ + if(TermineMitarbeiterUID=='') + { + alert('Anwesenheit kann nur bei Mitarbeiter gelöscht werden'); + return; + } + + if(TermineStundenplanTable!='stundenplan') + { + alert('Bitte wechseln Sie auf die Stundenplan Tabelle. Anhand der StundenplanDEV duerfen keine Anwesenheiten geaendert werden.'); + return; + } + + if(!confirm('Achtung, beim Löschen der Anwesenheit des Lektors werden auch die Anwesenheiten der Studierenden entfernt. Wollen Sie die Anwesenheit wirklich entfernen?')) + return; + + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var tree = document.getElementById('termine-tree'); + + if (tree.currentIndex==-1) return; + + //Ausgewaehlte Nr holen + var datum = getTreeCellText(tree, 'termine-treecol-datum_iso', tree.currentIndex); + var lehreinheit_id = getTreeCellText(tree, 'termine-treecol-lehreinheit_id', tree.currentIndex); + + var url = 'content/fasDBDML.php'; + var req = new phpRequest(url,'',''); + + req.add('type', 'anwesenheitdelete'); + + req.add('datum', datum); + req.add('lehreinheit_id', lehreinheit_id); + + var response = req.executePOST(); + + var val = new ParseReturnValue(response) + + if (!val.dbdml_return) + { + if(val.dbdml_errormsg=='') + alert(response) + else + alert(val.dbdml_errormsg) + } + else + { + TermineLoadTree(); + SetStatusBarText('Daten wurden gespeichert'); + } +} diff --git a/content/termine.xul.php b/content/termine.xul.php index 839adf111..368507c66 100644 --- a/content/termine.xul.php +++ b/content/termine.xul.php @@ -50,6 +50,7 @@ $student_uid = filter_input(INPUT_GET,'student_uid'); diff --git a/include/anwesenheit.class.php b/include/anwesenheit.class.php index 4647a67bd..aa071901d 100644 --- a/include/anwesenheit.class.php +++ b/include/anwesenheit.class.php @@ -597,12 +597,12 @@ class anwesenheit extends basis_db // Anwesenheitsliste wurde noch nicht erfasst. Eintrag neu anlegen // Einheiten ermitteln - $qry = "SELECT - distinct stunde - FROM - lehre.tbl_stundenplan - WHERE - lehreinheit_id=".$this->db_add_param($lehreinheit_id)." + $qry = "SELECT + distinct stunde + FROM + lehre.tbl_stundenplan + WHERE + lehreinheit_id=".$this->db_add_param($lehreinheit_id)." AND datum=".$this->db_add_param($datum); if($result = $this->db_query($qry)) @@ -636,4 +636,23 @@ class anwesenheit extends basis_db } } + /** + * Loescht eine Anwesenheit + * @param anwesenheit_id integer ID der Anwesenheit. + * @return boolean true wenn ok , false im fehlerfall + */ + public function delete($anwesenheit_id) + { + $qry = "DELETE FROM campus.tbl_anwesenheit WHERE anwesenheit_id=".$this->db_add_param($anwesenheit_id, FHC_INTEGER).";"; + + if($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Löschen der Anwesenheit'; + return false; + } + } }