Anwesenheiten von Mitarbeitern können direkt im FAS gelöscht werden (rechte Maustaste bei Terminen). Dabei werden die Anwesenheiten von allen Studierenden zu diesem Termin entfernt!!

This commit is contained in:
oesi
2016-11-11 16:46:46 +01:00
parent 97ae7e2cc6
commit 26065f4046
4 changed files with 132 additions and 7 deletions
+43
View File
@@ -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;
+63 -1
View File
@@ -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 = '<?php echo APP_ROOT ?>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');
}
}
+1
View File
@@ -50,6 +50,7 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
<popupset>
<menupopup id="termine-tree-popup">
<menuitem label="Anwesenheit umschalten" oncommand="TermineToggleAnwesenheit();" id="termine-tree-popup-toggle-anwesenheit" hidden="false"/>
<menuitem label="Anwesenheit löschen" oncommand="TermineDeleteAnwesenheit();" id="termine-tree-popup-delete-anwesenheit" hidden="false"/>
</menupopup>
</popupset>
<groupbox id="termine-groupbox-termine" flex="1">
+25 -6
View File
@@ -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;
}
}
}