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