*/ /** * 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 '

Lehrveranstaltung: '.$lehrveranstaltung->bezeichnung.' ('.$datum_obj->formatDatum($datum,'d.m.Y').' - '.$einheiten.' Einheiten)

'; if(count($aw_arr)>0) { echo 'Achtung - diese Liste wurde bereits erfasst!'; } echo '
'; echo 'Bitte scannen Sie alle Barcodes der Studierenden die NICHT anwesend waren und speichern sie danach die Daten
'; echo ''; echo ''; echo ''; echo ''; echo '

'; // Teilnehmer ermitteln $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)) { $anzahl = $db->db_num_rows($result); echo '

'.$anzahl.' Teilnehmer:

'; echo ''; while($row = $db->db_fetch_object($result)) { if(isset($aw_arr[$row->uid])) { $anwesenheit_id=$aw_arr[$row->uid]->anwesenheit_id; $anwesend = $aw_arr[$row->uid]->anwesend; $anmerkung = $aw_arr[$row->uid]->anmerkung; } else { $anwesenheit_id=''; $anwesend=true; $anmerkung=''; } echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; } echo '
Anwesend PersonID UID Vorname Nachname Anmerkung
'.$row->person_id.''.$row->uid.''.$row->vorname.''.$row->nachname.'
'; 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 '

Anwesenheit

'; echo '
Bitte scannen Sie den Lehreinheiten Barcode
'; $studiengang_kz=''; $semester=''; $studiensemester_kurzbz=''; $lv_id=''; echo '


'; $studiengang = new studiengang(); $studiengang->getAll('typ,kurzbz'); echo 'Studiengang '; echo 'Semester '; $stsem = new studiensemester(); $akt = $stsem->getAktOrNext(); $stsem->getAll(); echo 'Studiensemester '; $lv = new lehrveranstaltung(); $lv->load_lva_le($studiengang_kz, $studiensemester_kurzbz, $semester); echo 'LV '; echo 'Termin '; echo ''; } echo ' '; ?>