diff --git a/rdf/anwesenheitsliste.xml.php b/rdf/anwesenheitsliste.xml.php index 5e7829383..b17923cbc 100644 --- a/rdf/anwesenheitsliste.xml.php +++ b/rdf/anwesenheitsliste.xml.php @@ -27,134 +27,148 @@ require_once('../include/functions.inc.php'); require_once('../include/basis_db.class.php'); require_once('ean13.php'); -if(isset($_GET['typ']) && $_GET['typ'] == 'lehreinheit') +// Optionen abfragen +isset($_GET['von']) ? $von = $_GET['von'] : $von = date('Y-m-d', time()); +isset($_GET['bis']) ? $bis = $_GET['bis'] : $bis = $von; +isset($_GET['studiengang']) ? $studiengang = $_GET['studiengang'] : $studiengang = NULL; +isset($_GET['semester']) ? $semester = $_GET['semester'] : $semester = NULL; +isset($_GET['lehreinheit']) ? $lehreinheit = $_GET['lehreinheit'] : $lehreinheit = NULL; + +$db = new basis_db(); +$data = array(); + +if(!$studiengang) + die('Die ID des Studiengangs muss uebergeben werden'); + +// Daten der Lehreinheiten ermitteln +$qry = "SELECT le.lehreinheit_id, le.lehrveranstaltung_id, lv.lvnr, lv.bezeichnung AS lvbez, stg.bezeichnung AS stgbez, " + . "sp.ort_kurzbz, datum, beginn, ende " + . "FROM lehre.tbl_lehreinheit le " + . "JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id " + . "JOIN public.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz " + . "JOIN lehre.tbl_stundenplan sp ON sp.unr = le.unr " + . "JOIN lehre.tbl_stunde stu ON stu.stunde = sp.stunde " + . "WHERE stg.studiengang_kz = " . $db->db_add_param($studiengang) . " " + . "AND (sp.datum <= " . $db->db_add_param($von) . "::DATE AND sp.datum >= " . $db->db_add_param($bis) . "::DATE) "; + +// Optionen zu Query hinzufügen +if($lehreinheit) + $qry .= " AND le.lehreinheit_id = " . $db->db_add_param($lehreinheit); +if($semester) + $qry .= " AND lv.semester = " . $db->db_add_param($semester); + +$qry .= " ORDER BY stu.stunde ASC"; + +if($db->db_query($qry)) { - if(isset($_GET['lehreinheit']) && isset($_GET['datum']) && isset($_GET['lv'])) + while($row = $db->db_fetch_object()) { - $lehreinheit_id = $_GET['lehreinheit']; - $datum = $_GET['datum']; - $lv = $_GET['lv']; + if(empty($row)) + die("Lehreinheit $lehreinheit am $von nicht gefunden"); + + $data[$row->lehreinheit_id]['einheiten'][] = $row; } - else - die('Die ID der Lehreinheit, die ID der Lehrveranstaltung und das Datum muessen uebergeben werden'); - - echo ""; - echo ''; - - $db = new basis_db(); - - // Daten der Lehreinheit ermitteln - $qry = "SELECT le.lehrveranstaltung_id, lv.lvnr, lv.bezeichnung AS lvbez, stg.bezeichnung AS stgbez, " - . "sp.ort_kurzbz, datum, beginn, ende " - . "FROM lehre.tbl_lehreinheit le " - . "JOIN lehre.tbl_lehrveranstaltung lv ON lv.lehrveranstaltung_id = le.lehrveranstaltung_id " - . "JOIN public.tbl_studiengang stg ON stg.studiengang_kz = lv.studiengang_kz " - . "JOIN lehre.tbl_stundenplan sp ON sp.unr = le.unr " - . "JOIN lehre.tbl_stunde stu ON stu.stunde = sp.stunde " - . "WHERE le.lehreinheit_id = " . $db->db_add_param($lehreinheit_id) . " " - . "AND sp.datum = " . $db->db_add_param($datum); - - if($db->db_query($qry)) - { - $einheiten = $db->db_num_rows(); +} - while($row = $db->db_fetch_object()) - { - if(empty($row)) - die("Lehreinheit $lehreinheit_id am $datum nicht gefunden"); - - $lehreinheiten[] = $row; - } - - // Barcode erstellen - $paddedLehreinheitId = str_pad($lehreinheit_id, 6, "0", STR_PAD_LEFT); - $convertableString = date('ymd', strtotime($datum)) . $paddedLehreinheitId; - $barcode = ean13($convertableString); - - // Ausgabe der Lehrveranstaltung - echo "\n "; - echo "\n stgbez."]]>"; - echo "\n lvbez."]]>"; - echo "\n "; - echo "\n lvnr."]]>"; - echo "\n "; - echo "\n ort_kurzbz."]]>"; - echo "\n datum))."]]>"; - echo "\n beginn, 0, 5)."]]>"; - echo "\n ende, 0, 5)."]]>"; - echo "\n "; - } - +foreach($data as $key => $value) +{ // Daten der Vortragenden ermitteln $qry = "SELECT vorname, nachname, titelpre, titelpost " . "FROM lehre.tbl_lehreinheitmitarbeiter lema " . "JOIN public.tbl_benutzer be ON be.uid = lema.mitarbeiter_uid " . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " - . "WHERE lehreinheit_id = " . $db->db_add_param($lehreinheit_id); - + . "WHERE lehreinheit_id = " . $db->db_add_param($key); + if($db->db_query($qry)) { - echo "\n "; - while($row = $db->db_fetch_object()) { - // Ausgabe der Vortragenden - echo "\n "; - echo "\n vorname."]]>"; - echo "\n nachname."]]>"; - echo "\n titelpre."]]>"; - echo "\n titelpost."]]>"; - echo "\n "; + $data[$key]['vortragende'][] = $row; } - - echo "\n "; } - + // Daten der Studenten ermitteln $qry = "SELECT pe.person_id, vorname, nachname, titelpre, titelpost, note, " - . "CASE WHEN preincoming_id IS NULL THEN '0' " - . "ELSE '1' " - . "END AS incoming " + . "get_rolle_prestudent(pre.prestudent_id, null) as laststatus " . "FROM campus.vw_student_lehrveranstaltung stlv " . "JOIN public.tbl_benutzer be ON be.uid = stlv.uid " . "JOIN public.tbl_person pe ON pe.person_id = be.person_id " - . "LEFT JOIN public.tbl_preincoming inc ON inc.person_id = pe.person_id " + . "JOIN public.tbl_prestudent pre ON pre.person_id = pe.person_id " . "LEFT JOIN lehre.tbl_zeugnisnote zn ON (zn.lehrveranstaltung_id = stlv.lehrveranstaltung_id AND zn.student_uid = stlv.uid) " - . "WHERE stlv.lehreinheit_id = " . $db->db_add_param($lehreinheit_id); - + . "WHERE stlv.lehreinheit_id = " . $db->db_add_param($key); + if($db->db_query($qry)) { - echo "\n "; - while($row = $db->db_fetch_object()) { - // Barcode erstellen - $paddedPersonId = str_pad($row->person_id, 12, "0", STR_PAD_LEFT); - $barcode = ean13($paddedPersonId); - - // Ausgabe der Studenten - echo "\n "; - echo "\n "; - echo "\n vorname."]]>"; - echo "\n nachname."]]>"; - echo "\n titelpre."]]>"; - echo "\n titelpost."]]>"; - echo "\n note."]]>"; - echo "\n incoming."]]>"; - echo "\n "; + $data[$key]['studenten'][] = $row; } - - echo "\n "; } +} - echo ''; -} -else if(isset($_GET['typ']) && $_GET['typ'] == 'studiengang') +// AUSGABE +echo ""; +echo ""; + +foreach($data as $lehreinheit_id => $value) { + echo ""; + // Barcode erstellen + $paddedLehreinheitId = str_pad($lehreinheit_id, 6, "0", STR_PAD_LEFT); + $convertableString = date('ymd', strtotime($value['einheiten'][0]->datum)) . $paddedLehreinheitId; + $barcode = ean13($convertableString); + + // Ausgabe der Lehrveranstaltung + echo "\n "; + echo "\n lehreinheit_id."]]>"; + echo "\n stgbez."]]>"; + echo "\n lvbez."]]>"; + echo "\n "; + echo "\n lvnr."]]>"; + echo "\n "; + echo "\n ort_kurzbz."]]>"; + echo "\n datum))."]]>"; + echo "\n beginn, 0, 5)."]]>"; + echo "\n ende, 0, 5)."]]>"; + echo "\n "; + + // Ausgabe der Vortragenden + echo ""; + foreach($value['vortragende'] as $vortragender) + { + echo "\n "; + echo "\n vorname."]]>"; + echo "\n nachname."]]>"; + echo "\n titelpre."]]>"; + echo "\n titelpost."]]>"; + echo "\n "; + } + echo ""; + + // Ausgabe der Studenten + echo ""; + foreach($value['studenten'] as $student) + { + // Barcode erstellen + $paddedPersonId = str_pad($student->person_id, 12, "0", STR_PAD_LEFT); + $barcode = ean13($paddedPersonId); + + echo "\n "; + echo "\n "; + echo "\n vorname."]]>"; + echo "\n nachname."]]>"; + echo "\n titelpre."]]>"; + echo "\n titelpost."]]>"; + echo "\n note."]]>"; + echo "\n laststatus."]]>"; + echo "\n "; + } + echo ""; + echo ""; } -else - die("Der gewuenschte Typ muss angegeben werden"); + +echo ""; ?> \ No newline at end of file