*/
/**
* Anwesenheit
*
* Erfasst die Anwesenheiten der Studierenden
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/datum.class.php');
require_once('../../include/lehreinheit.class.php');
require_once('../../include/lehrveranstaltung.class.php');
require_once('../../include/anwesenheit.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/lehreinheitmitarbeiter.class.php');
if (!$uid = get_uid())
die('Keine UID gefunden!');
$rechte = new benutzerberechtigung();
$rechte->getBerechtigungen($uid);
$db = new basis_db();
$datum_obj = new datum();
if(!$rechte->isBerechtigt('basis/person', null, 'suid'))
die('Sie haben keine Berechtigung für diese Seite');
if(isset($_REQUEST['work']))
$work = $_REQUEST['work'];
else
$work='';
if($work=='getTermine')
{
$stg = $_POST['stg'];
$sem = $_POST['sem'];
$stsem = $_POST['stsem'];
$lv = $_POST['lv'];
// Daten der Lehreinheiten ermitteln
$qry = "SELECT
le.lehreinheit_id, sp.ort_kurzbz, datum
FROM
lehre.tbl_lehreinheit le
JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id
JOIN lehre.tbl_stundenplan sp ON (sp.lehreinheit_id=le.lehreinheit_id)
WHERE lv.studiengang_kz = " . $db->db_add_param($stg)."
AND lv.lehrveranstaltung_id = " . $db->db_add_param($lv)."
AND lv.semester = " . $db->db_add_param($sem)."
AND le.studiensemester_kurzbz=".$db->db_add_param($stsem)." ORDER BY datum, stunde";
$data = array();
$lektoren=array();
if($result = $db->db_query($qry))
{
while($row = $db->db_fetch_object($result))
{
$paddedLehreinheitId = str_pad($row->lehreinheit_id, 6, "0", STR_PAD_LEFT);
$id = date('ymd', strtotime($row->datum)) . $paddedLehreinheitId;
if(!isset($lektoren[$row->lehreinheit_id]))
{
$le_obj = new lehreinheitmitarbeiter();
$le_obj->getLehreinheitmitarbeiter($row->lehreinheit_id);
$lektoren[$row->lehreinheit_id]='';
foreach($le_obj->lehreinheitmitarbeiter as $row_lem)
{
$lektoren[$row->lehreinheit_id].=$row_lem->mitarbeiter_uid.' ';
}
}
$data[$id]=$datum_obj->formatDatum($row->datum,'d.m.Y').' '.$lektoren[$row->lehreinheit_id];
}
}
echo json_encode($data);
exit;
}
if($work=='getLVs')
{
$stg = $_POST['stg'];
$sem = $_POST['sem'];
$stsem = $_POST['stsem'];
$lv = new lehrveranstaltung();
$lv->load_lva_le($stg, $stsem, $sem);
$data = array();
foreach($lv->lehrveranstaltungen as $row)
{
$data[$row->lehrveranstaltung_id]=$row->bezeichnung;
}
echo json_encode($data);
exit;
}
echo '
Anwesenheit
';
if($work=='save')
{
foreach($_POST as $key=>$value)
{
if(strstr($key, 'uid_'))
{
$person_id = mb_substr($key, mb_strlen('uid_'));
$user = $_POST['uid_'.$person_id];
$anwesend = $_POST['anwesenheit_'.$person_id];
$anwesenheit_id=$_POST['anwesenheitid_'.$person_id];
$anwesenheit = new anwesenheit();
if($anwesenheit_id!='')
{
if(!$anwesenheit->load($anwesenheit_id))
die('Es ist ein Fehler beim Laden der Daten aufgetreten: '.$anwesenheit->errormsg.' Bitte versuchen Sie es erneut');
}
else
{
// 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->AnwesenheitEntryExists($_POST['lehreinheit_id'], $_POST['datum'], $user))
{
echo $anwesenheit->convert_html_chars($user)." wird übersprungen da der Eintrag bereits erfasst wurde ";
continue;
}
}
$anwesenheit->uid = $user;
$anwesenheit->einheiten = $_POST['einheiten'];
$anwesenheit->lehreinheit_id = $_POST['lehreinheit_id'];
$anwesenheit->datum = $_POST['datum'];
$anwesenheit->anwesend=($anwesend=='true'?true:false);
$anwesenheit->anmerkung = $_POST['anmerkung_'.$person_id];
$anwesenheit->save();
}
}
echo 'Daten wurden gespeichert';
$work='';
}
if($work=='loadAnwesenheit')
{
if(!isset($_POST['lvcode']))
die('Parameter ungueltig');
$lvcode = $_POST['lvcode'];
//echo 'LVCode:'.$lvcode;
$datum = mb_substr($lvcode,0,6);
$lehreinheit_id = mb_substr($lvcode,6,6);
$datum = '20'.substr($datum,0,2).'-'.substr($datum,2,2).'-'.substr($datum,4,2);
//echo ' LehreinheitID:'.ltrim($lehreinheit_id,0);
//echo ' Datum:'.$datum;
// Bereits eingetragene Anwesenheiten fuer diese Lehreinheit/Datum
$anwesenheit = new anwesenheit();
$anwesenheit->getAnwesenheitLehreinheit($lehreinheit_id, $datum);
$aw_arr=array();
foreach($anwesenheit->result as $row)
{
$aw_arr[$row->uid]=$row;
}
$lehreinheit = new lehreinheit();
if($lehreinheit->load($lehreinheit_id))
{
$lehrveranstaltung = new lehrveranstaltung();
if($lehrveranstaltung->load($lehreinheit->lehrveranstaltung_id))
{
// 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);
}
echo '
';
if(count($aw_arr)>0)
{
echo 'Achtung - diese Liste wurde bereits erfasst!';
}
echo '';
}
else
echo 'Fehler beim Laden der Teilnehmer';
}
else
echo 'Fehler beim Laden der Lehrveranstaltung';
}
else
echo 'Fehler beim Laden der Lehreinheit';
}
if($work=='')
{
echo '