mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 20:29:29 +00:00
Script angepasst damit mehr als nur eine Anwesenheitsliste abgerufen werden kann
This commit is contained in:
+111
-97
@@ -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 "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
|
||||
echo '<anwesenheitslisten>';
|
||||
|
||||
$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 <lehreinheit>";
|
||||
echo "\n <studiengang><![CDATA[".$lehreinheiten[0]->stgbez."]]></studiengang>";
|
||||
echo "\n <bezeichnung><![CDATA[".$lehreinheiten[0]->lvbez."]]></bezeichnung>";
|
||||
echo "\n <barcode><![CDATA[".ean13($convertableString)."]]></barcode>";
|
||||
echo "\n <kuerzel><![CDATA[".$lehreinheiten[0]->lvnr."]]></kuerzel>";
|
||||
echo "\n <einheiten><![CDATA[".$einheiten."]]></einheiten>";
|
||||
echo "\n <ort><![CDATA[".$lehreinheiten[0]->ort_kurzbz."]]></ort>";
|
||||
echo "\n <datum><![CDATA[".date('d.m.Y', strtotime($lehreinheiten[0]->datum))."]]></datum>";
|
||||
echo "\n <beginn><![CDATA[".mb_substr($lehreinheiten[0]->beginn, 0, 5)."]]></beginn>";
|
||||
echo "\n <ende><![CDATA[".mb_substr($lehreinheiten[count($lehreinheiten) - 1]->ende, 0, 5)."]]></ende>";
|
||||
echo "\n </lehreinheit>";
|
||||
}
|
||||
|
||||
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 <vortragende>";
|
||||
|
||||
while($row = $db->db_fetch_object())
|
||||
{
|
||||
// Ausgabe der Vortragenden
|
||||
echo "\n <vortragender>";
|
||||
echo "\n <vorname><![CDATA[".$row->vorname."]]></vorname>";
|
||||
echo "\n <nachname><![CDATA[".$row->nachname."]]></nachname>";
|
||||
echo "\n <titelpre><![CDATA[".$row->titelpre."]]></titelpre>";
|
||||
echo "\n <titelpost><![CDATA[".$row->titelpost."]]></titelpost>";
|
||||
echo "\n </vortragender>";
|
||||
$data[$key]['vortragende'][] = $row;
|
||||
}
|
||||
|
||||
echo "\n </vortragende>";
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 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 <studenten>";
|
||||
|
||||
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 <student>";
|
||||
echo "\n <barcode><![CDATA[".$barcode."]]></barcode>";
|
||||
echo "\n <vorname><![CDATA[".$row->vorname."]]></vorname>";
|
||||
echo "\n <nachname><![CDATA[".$row->nachname."]]></nachname>";
|
||||
echo "\n <titelpre><![CDATA[".$row->titelpre."]]></titelpre>";
|
||||
echo "\n <titelpost><![CDATA[".$row->titelpost."]]></titelpost>";
|
||||
echo "\n <note><![CDATA[".$row->note."]]></note>";
|
||||
echo "\n <incoming><![CDATA[".$row->incoming."]]></incoming>";
|
||||
echo "\n </student>";
|
||||
$data[$key]['studenten'][] = $row;
|
||||
}
|
||||
|
||||
echo "\n </studenten>";
|
||||
}
|
||||
}
|
||||
|
||||
echo '</anwesenheitslisten>';
|
||||
}
|
||||
else if(isset($_GET['typ']) && $_GET['typ'] == 'studiengang')
|
||||
// AUSGABE
|
||||
echo "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>";
|
||||
echo "<anwesenheitslisten>";
|
||||
|
||||
foreach($data as $lehreinheit_id => $value)
|
||||
{
|
||||
echo "<anwesenheitsliste>";
|
||||
|
||||
// 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 <lehreinheit>";
|
||||
echo "\n <lehreinheit_id><![CDATA[".$value['einheiten'][0]->lehreinheit_id."]]></lehreinheit_id>";
|
||||
echo "\n <studiengang><![CDATA[".$value['einheiten'][0]->stgbez."]]></studiengang>";
|
||||
echo "\n <bezeichnung><![CDATA[".$value['einheiten'][0]->lvbez."]]></bezeichnung>";
|
||||
echo "\n <barcode><![CDATA[".ean13($convertableString)."]]></barcode>";
|
||||
echo "\n <kuerzel><![CDATA[".$value['einheiten'][0]->lvnr."]]></kuerzel>";
|
||||
echo "\n <einheiten><![CDATA[".count($value['einheiten'])."]]></einheiten>";
|
||||
echo "\n <ort><![CDATA[".$value['einheiten'][0]->ort_kurzbz."]]></ort>";
|
||||
echo "\n <datum><![CDATA[".date('d.m.Y', strtotime($value['einheiten'][0]->datum))."]]></datum>";
|
||||
echo "\n <beginn><![CDATA[".mb_substr($value['einheiten'][0]->beginn, 0, 5)."]]></beginn>";
|
||||
echo "\n <ende><![CDATA[".mb_substr($value['einheiten'][count($value['einheiten']) - 1]->ende, 0, 5)."]]></ende>";
|
||||
echo "\n </lehreinheit>";
|
||||
|
||||
// Ausgabe der Vortragenden
|
||||
echo "<vortragende>";
|
||||
foreach($value['vortragende'] as $vortragender)
|
||||
{
|
||||
echo "\n <vortragender>";
|
||||
echo "\n <vorname><![CDATA[".$vortragender->vorname."]]></vorname>";
|
||||
echo "\n <nachname><![CDATA[".$vortragender->nachname."]]></nachname>";
|
||||
echo "\n <titelpre><![CDATA[".$vortragender->titelpre."]]></titelpre>";
|
||||
echo "\n <titelpost><![CDATA[".$vortragender->titelpost."]]></titelpost>";
|
||||
echo "\n </vortragender>";
|
||||
}
|
||||
echo "</vortragende>";
|
||||
|
||||
// Ausgabe der Studenten
|
||||
echo "<studenten>";
|
||||
foreach($value['studenten'] as $student)
|
||||
{
|
||||
// Barcode erstellen
|
||||
$paddedPersonId = str_pad($student->person_id, 12, "0", STR_PAD_LEFT);
|
||||
$barcode = ean13($paddedPersonId);
|
||||
|
||||
echo "\n <student>";
|
||||
echo "\n <barcode><![CDATA[".$barcode."]]></barcode>";
|
||||
echo "\n <vorname><![CDATA[".$student->vorname."]]></vorname>";
|
||||
echo "\n <nachname><![CDATA[".$student->nachname."]]></nachname>";
|
||||
echo "\n <titelpre><![CDATA[".$student->titelpre."]]></titelpre>";
|
||||
echo "\n <titelpost><![CDATA[".$student->titelpost."]]></titelpost>";
|
||||
echo "\n <note><![CDATA[".$student->note."]]></note>";
|
||||
echo "\n <status><![CDATA[".$student->laststatus."]]></status>";
|
||||
echo "\n </student>";
|
||||
}
|
||||
echo "</studenten>";
|
||||
echo "</anwesenheitsliste>";
|
||||
}
|
||||
else
|
||||
die("Der gewuenschte Typ muss angegeben werden");
|
||||
|
||||
echo "</anwesenheitslisten>";
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user