Anwesenheiten können bei Lektoren jetzt sowohl entfernt als auch gesetzt werden.Beim setzen der Anwesenheit eines Lektors werden alle zugeteilten Studierenden auf anwesend gesetzt

This commit is contained in:
oesi
2016-11-14 16:08:01 +01:00
parent 26065f4046
commit 0ac9edfece
3 changed files with 95 additions and 21 deletions
+71 -12
View File
@@ -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
+23 -8
View File
@@ -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 = '<?php echo APP_ROOT ?>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');
}
}
}
+1 -1
View File
@@ -50,7 +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 schen" oncommand="TermineDeleteAnwesenheit();" id="termine-tree-popup-delete-anwesenheit" hidden="false"/>
<menuitem label="Anwesenheit umschalten" oncommand="TermineToggleAnwesenheitMitarbeiter();" id="termine-tree-popup-togglemitarbeiter-anwesenheit" hidden="false"/>
</menupopup>
</popupset>
<groupbox id="termine-groupbox-termine" flex="1">