diff --git a/content/fasDBDML.php b/content/fasDBDML.php
index ca8cf5aef..90f8a8f15 100644
--- a/content/fasDBDML.php
+++ b/content/fasDBDML.php
@@ -689,6 +689,108 @@ if(!$error)
}
}
}
+ elseif(isset($_POST['type']) && $_POST['type']=='anwesenheittogglemitarbeiter')
+ {
+ 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'];
+
+ if($_POST['setanwesend']=='false')
+ {
+ // Anwesenheit loeschen
+ $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
+ {
+ $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
+ {
+ $return = false;
+ $errormsg = 'Fehlerhafte Parameteruebergabe';
+ }
+ }
+ }
else
{
$return = false;
diff --git a/content/mitarbeiter/mitarbeiteroverlay.js.php b/content/mitarbeiter/mitarbeiteroverlay.js.php
index 0b81b05da..15a333dfd 100644
--- a/content/mitarbeiter/mitarbeiteroverlay.js.php
+++ b/content/mitarbeiter/mitarbeiteroverlay.js.php
@@ -717,6 +717,10 @@ function MitarbeiterAuswahl()
if(document.getElementById('mitarbeiter-tab-vertrag'))
MitarbeiterVertragLoad(person_id)
+ // Notizen laden
+ var mitarbeiternotiz = document.getElementById('mitarbeiter-box-notizen');
+ mitarbeiternotiz.LoadNotizTree('','','','',person_id,'','','','');
+
// Selektierungsfunktion der Addons aufrufen
for(i in addon)
{
diff --git a/content/mitarbeiter/mitarbeiteroverlay.xul.php b/content/mitarbeiter/mitarbeiteroverlay.xul.php
index 1eb568757..b73d0f5b9 100644
--- a/content/mitarbeiter/mitarbeiteroverlay.xul.php
+++ b/content/mitarbeiter/mitarbeiteroverlay.xul.php
@@ -261,6 +261,7 @@ echo '
+
@@ -275,6 +276,9 @@ echo '';
?>
+
+
+
diff --git a/content/termine.js.php b/content/termine.js.php
index 3750853f9..3bd4a2916 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-togglemitarbeiter-anwesenheit').hidden=true;
+ else
+ document.getElementById('termine-tree-popup-togglemitarbeiter-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,70 @@ function TermineToggleAnwesenheit()
SetStatusBarText('Daten wurden gespeichert');
}
}
+
+function TermineToggleAnwesenheitMitarbeiter()
+{
+ 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;
+ }
+
+ 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 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', 'anwesenheittogglemitarbeiter');
+
+ req.add('datum', datum);
+ req.add('lehreinheit_id', lehreinheit_id);
+ req.add('setanwesend', setanwesend);
+
+ 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');
+ }
+}
\ No newline at end of file
diff --git a/content/termine.xul.php b/content/termine.xul.php
index 839adf111..dab0b1275 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;
+ }
+ }
}