mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-13 18:19:27 +00:00
Anwesenheiten koennen bei Studierenden direkt im FAS geaendert werden
This commit is contained in:
@@ -40,6 +40,7 @@ require_once('../include/variable.class.php');
|
||||
require_once('../include/benutzerfunktion.class.php');
|
||||
require_once('../include/studiensemester.class.php');
|
||||
require_once('../include/fotostatus.class.php');
|
||||
require_once('../include/anwesenheit.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
@@ -653,6 +654,41 @@ if(!$error)
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
elseif(isset($_POST['type']) && $_POST['type']=='anwesenheittoggle')
|
||||
{
|
||||
if(!$rechte->isBerechtigt('student/anwesenheit'))
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Sie haben keine Berechtigung fuer diese Aktion';
|
||||
$data = '';
|
||||
$error = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(isset($_POST['student_uid']) && isset($_POST['lehreinheit_id']) && isset($_POST['datum']))
|
||||
{
|
||||
$student_uid = $_POST['student_uid'];
|
||||
$lehreinheit_id = $_POST['lehreinheit_id'];
|
||||
$datum = $_POST['datum'];
|
||||
$anwesenheit = new anwesenheit();
|
||||
if($anwesenheit->AnwesenheitToggle($lehreinheit_id, $datum, $student_uid))
|
||||
{
|
||||
$return = true;
|
||||
$errormsg = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = $anwesenheit->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehlerhafte Parameteruebergabe';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
|
||||
@@ -118,3 +118,52 @@ function TermineExport()
|
||||
var url = 'statistik/termine.xls.php?lehreinheit_id='+TermineLehreinheitID+'&lehrveranstaltung_id='+TermineLehrveranstaltungID+'&mitarbeiter_uid='+TermineMitarbeiterUID+'&student_uid='+TermineStudentUID+'&db_stpl_table='+TermineStundenplanTable;
|
||||
window.open(url);
|
||||
}
|
||||
|
||||
function TermineToggleAnwesenheit()
|
||||
{
|
||||
if(TermineStudentUID=='')
|
||||
{
|
||||
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.');
|
||||
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', 'anwesenheittoggle');
|
||||
|
||||
req.add('datum', datum);
|
||||
req.add('lehreinheit_id', lehreinheit_id);
|
||||
req.add('student_uid', TermineStudentUID);
|
||||
|
||||
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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,6 +47,11 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
|
||||
<script type="application/x-javascript" src="<?php echo APP_ROOT; ?>content/phpRequest.js.php" />
|
||||
|
||||
<vbox flex="1">
|
||||
<popupset>
|
||||
<menupopup id="termine-tree-popup">
|
||||
<menuitem label="Anwesenheit umschalten" oncommand="TermineToggleAnwesenheit();" id="termine-tree-popup-toggle-anwesenheit" hidden="false"/>
|
||||
</menupopup>
|
||||
</popupset>
|
||||
<groupbox id="termine-groupbox-termine" flex="1">
|
||||
<caption label="Termine" />
|
||||
<vbox flex="1">
|
||||
@@ -57,6 +62,7 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
|
||||
<tree id="termine-tree" seltype="single" hidecolumnpicker="false" flex="1"
|
||||
datasources="rdf:null" ref="http://www.technikum-wien.at/termine"
|
||||
persist="hidden, height"
|
||||
context="termine-tree-popup"
|
||||
>
|
||||
<treecols>
|
||||
<treecol id="termine-treecol-datum" label="Datum" flex="1" hidden="false"
|
||||
@@ -103,6 +109,11 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/termine/rdf#datum_iso" onclick="termineTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol id="termine-treecol-lehreinheit_id" label="LehreinheitID" flex="1" hidden="true"
|
||||
class="sortDirectionIndicator"
|
||||
sort="rdf:http://www.technikum-wien.at/termine/rdf#lehreinheit_id" onclick="termineTreeSort()"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
|
||||
</treecols>
|
||||
|
||||
<template>
|
||||
@@ -121,6 +132,7 @@ $student_uid = filter_input(INPUT_GET,'student_uid');
|
||||
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#lehrfach" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#anwesend" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#datum_iso" />
|
||||
<treecell label="rdf:http://www.technikum-wien.at/termine/rdf#lehreinheit_id" />
|
||||
</treerow>
|
||||
</treeitem>
|
||||
</treechildren>
|
||||
|
||||
@@ -435,6 +435,38 @@ class anwesenheit extends basis_db
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob Anwesenheiten erfasst wurden
|
||||
* @param $lehreinheit_id ID der Lehreinheit
|
||||
* @param $datum Datum
|
||||
* @param $uid UID des Studierenden
|
||||
* @return boolean true wenn vorhanden, sonst false
|
||||
*/
|
||||
public function AnwesenheitEntryExists($lehreinheit_id, $datum, $uid=null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
1
|
||||
FROM
|
||||
campus.tbl_anwesenheit
|
||||
WHERE
|
||||
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
|
||||
AND datum=".$this->db_add_param($datum)."
|
||||
AND uid=".$this->db_add_param($uid);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows($result)>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Anwesenheiten in Prozent von Studierenden bei Lehrveranstaltungen
|
||||
* Wenn die StudentUID uebergeben wird, werden alle Lehrveranstaltungen zu denen der Studierenden zugeteilt ist inkl Prozent der Anwesenheit
|
||||
@@ -524,4 +556,84 @@ class anwesenheit extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Aendert die bestehende Anwesenheit
|
||||
* @param $lehreinheit_id ID der Lehreinheit
|
||||
* @param $datum Datum
|
||||
* @param $uid UID des Studierenden
|
||||
* @return boolean true ok, sonst false
|
||||
*/
|
||||
public function AnwesenheitToggle($lehreinheit_id, $datum, $uid)
|
||||
{
|
||||
if($this->AnwesenheitEntryExists($lehreinheit_id, $datum, $uid))
|
||||
{
|
||||
$qry = "UPDATE
|
||||
campus.tbl_anwesenheit
|
||||
SET anwesend= NOT anwesend
|
||||
WHERE
|
||||
lehreinheit_id=".$this->db_add_param($lehreinheit_id)."
|
||||
AND datum=".$this->db_add_param($datum)."
|
||||
AND uid=".$this->db_add_param($uid);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($this->db_affected_rows($result)>0)
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg='Anwesenheitsliste wurde noch nicht erfasst';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 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)."
|
||||
AND datum=".$this->db_add_param($datum);
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
if($anzahl = $this->db_num_rows($result))
|
||||
{
|
||||
$einheiten = $anzahl;
|
||||
}
|
||||
}
|
||||
if($einheiten>0)
|
||||
{
|
||||
$this->lehreinheit_id=$lehreinheit_id;
|
||||
$this->datum = $datum;
|
||||
$this->uid = $uid;
|
||||
$this->anwesend=true;
|
||||
$this->new=true;
|
||||
$this->einheiten=$einheiten;
|
||||
if($this->save())
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Daten';
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Anzahl der Einheiten fuer diesen Tag konnte nicht ermittelt werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -204,7 +204,7 @@ if($work=='save')
|
||||
// Wenn der Eintrag bereits exisitiert aber kein Update durchgefuehrt wird, dann wird der Eintrag uebersprungen
|
||||
// da der Eintrag sonst doppelt vorhanden ist.
|
||||
// zB bei Reload der Seite oder schliessen und erneuten oeffnen des Browsers und Absenden der POST Daten
|
||||
if($anwesenheit->AnwesenheitExists($_POST['lehreinheit_id'], $_POST['datum'], $user))
|
||||
if($anwesenheit->AnwesenheitEntryExists($_POST['lehreinheit_id'], $_POST['datum'], $user))
|
||||
{
|
||||
echo $anwesenheit->convert_html_chars($user)." wird übersprungen da der Eintrag bereits erfasst wurde<br>";
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user