diff --git a/content/fasDBDML.php b/content/fasDBDML.php
index 9010c388d..90f8a8f15 100644
--- a/content/fasDBDML.php
+++ b/content/fasDBDML.php
@@ -689,7 +689,7 @@ if(!$error)
}
}
}
- elseif(isset($_POST['type']) && $_POST['type']=='anwesenheitdelete')
+ elseif(isset($_POST['type']) && $_POST['type']=='anwesenheittogglemitarbeiter')
{
if(!$rechte->isBerechtigt('student/anwesenheit'))
{
@@ -704,25 +704,84 @@ if(!$error)
{
$lehreinheit_id = $_POST['lehreinheit_id'];
$datum = $_POST['datum'];
- $anwesenheit = new anwesenheit();
- if($anwesenheit->getAnwesenheitLehreinheit($lehreinheit_id, $datum))
+
+ if($_POST['setanwesend']=='false')
{
- $return = true;
- $errormsg = "";
- foreach($anwesenheit->result as $row)
+ // Anwesenheit loeschen
+ $anwesenheit = new anwesenheit();
+ if($anwesenheit->getAnwesenheitLehreinheit($lehreinheit_id, $datum))
{
- $aw = new anwesenheit();
- if(!$aw->delete($row->anwesenheit_id))
+ $return = true;
+ $errormsg = "";
+ foreach($anwesenheit->result as $row)
{
- $errormsg.=$aw->errormsg;
- $return = false;
+ $aw = new anwesenheit();
+ if(!$aw->delete($row->anwesenheit_id))
+ {
+ $errormsg.=$aw->errormsg;
+ $return = false;
+ }
}
}
+ else
+ {
+ $return = false;
+ $errormsg = $anwesenheit->errormsg;
+ }
}
else
{
- $return = false;
- $errormsg = $anwesenheit->errormsg;
+ $error = false;
+ // Anwesenheit bei allen zugeteilten Studierenden setzen
+ // Teilnehmer ermitteln
+ $einheiten = 0;
+ // Anzahl der Einheiten ermitteln
+ $qry = "SELECT distinct stunde
+ FROM
+ lehre.tbl_stundenplan
+ WHERE
+ lehreinheit_id=".$db->db_add_param($lehreinheit_id)."
+ AND datum=".$db->db_add_param($datum).";";
+ if($result = $db->db_query($qry))
+ {
+ $einheiten = $db->db_num_rows($result);
+ }
+ else
+ {
+ $return = false;
+ $error = true;
+ $errormsg = 'Fehler beim Ermitteln der Einheiten';
+ }
+
+ if(!$error)
+ {
+ $qry = "SELECT distinct uid, vorname, nachname, person_id
+ FROM
+ campus.vw_student_lehrveranstaltung
+ JOIN public.tbl_benutzer USING(uid)
+ JOIN public.tbl_person USING(person_id) WHERE lehreinheit_id=".$db->db_add_param($lehreinheit_id);
+
+ if($result = $db->db_query($qry))
+ {
+ while($row = $db->db_fetch_object($result))
+ {
+ $anwesenheit = new anwesenheit();
+ $anwesenheit->uid = $row->uid;
+ $anwesenheit->einheiten = $einheiten;
+ $anwesenheit->lehreinheit_id = $lehreinheit_id;
+ $anwesenheit->datum = $datum;
+ $anwesenheit->anwesend = true;
+ $anwesenheit->anmerkung;
+ $anwesenheit->save();
+ }
+ $return = true;
+ }
+ else
+ {
+ $return = false;
+ $erorrmsg = 'Fehler beim Ermitteln der Studierenden';
+ }
+ }
}
}
else
diff --git a/content/termine.js.php b/content/termine.js.php
index 8675cf52f..3bd4a2916 100644
--- a/content/termine.js.php
+++ b/content/termine.js.php
@@ -42,9 +42,9 @@ function loadTermine(lehreinheit_id, lehrveranstaltung_id, mitarbeiter_uid, stud
document.getElementById('termine-tree-popup-toggle-anwesenheit').hidden=false;
if(mitarbeiter_uid=='')
- document.getElementById('termine-tree-popup-delete-anwesenheit').hidden=true;
+ document.getElementById('termine-tree-popup-togglemitarbeiter-anwesenheit').hidden=true;
else
- document.getElementById('termine-tree-popup-delete-anwesenheit').hidden=false;
+ document.getElementById('termine-tree-popup-togglemitarbeiter-anwesenheit').hidden=false;
// Stundenplan Tabelle aus Variablen holen
TermineStundenplanTable = getvariable('termin_export_db_stpl_table');
@@ -178,7 +178,7 @@ function TermineToggleAnwesenheit()
}
}
-function TermineDeleteAnwesenheit()
+function TermineToggleAnwesenheitMitarbeiter()
{
if(TermineMitarbeiterUID=='')
{
@@ -192,9 +192,6 @@ function TermineDeleteAnwesenheit()
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');
@@ -203,14 +200,32 @@ function TermineDeleteAnwesenheit()
//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 anwesend = getTreeCellText(tree, 'termine-treecol-anwesend', tree.currentIndex);
+
+ if(anwesend=='Ja')
+ setanwesend=false;
+ else if(anwesend=='Nein')
+ setanwesend=true;
+ else
+ {
+ alert('Abbruch -> Anwesenheit ist unbestimmt');
+ return;
+ }
+
+ if(setanwesend == false)
+ {
+ if(!confirm('Achtung, beim Löschen der Anwesenheit des Lektors werden auch die Anwesenheiten der Studierenden entfernt. Wollen Sie die Anwesenheit wirklich entfernen?'))
+ return;
+ }
var url = 'content/fasDBDML.php';
var req = new phpRequest(url,'','');
- req.add('type', 'anwesenheitdelete');
+ req.add('type', 'anwesenheittogglemitarbeiter');
req.add('datum', datum);
req.add('lehreinheit_id', lehreinheit_id);
+ req.add('setanwesend', setanwesend);
var response = req.executePOST();
@@ -228,4 +243,4 @@ function TermineDeleteAnwesenheit()
TermineLoadTree();
SetStatusBarText('Daten wurden gespeichert');
}
-}
+}
\ No newline at end of file
diff --git a/content/termine.xul.php b/content/termine.xul.php
index 368507c66..dab0b1275 100644
--- a/content/termine.xul.php
+++ b/content/termine.xul.php
@@ -50,7 +50,7 @@ $student_uid = filter_input(INPUT_GET,'student_uid');