Initial Commit

This commit is contained in:
DOMINIK SCHRADER
2025-12-01 11:30:25 +01:00
commit 007dfc57fd
20 changed files with 1313 additions and 0 deletions

View File

@@ -0,0 +1,56 @@
<?php
global $db;
try {
$query = "SELECT
b.id as betrieb_id,
b.name as betrieb_name,
b.adresse,
COUNT(DISTINCT s.id) as anzahl_schueler,
COUNT(a.id) as anzahl_anmeldungen
FROM betriebe b
LEFT JOIN schueler s ON b.id = s.betrieb_id
LEFT JOIN anmeldungen a ON s.id = a.schueler_id
GROUP BY b.id
ORDER BY b.name";
$stmt = $db->prepare($query);
$stmt->execute();
$bericht = [];
while ($row = $stmt->fetch()) {
$detail_query = "SELECT
s.vorname,
s.nachname,
GROUP_CONCAT(k.name SEPARATOR ', ') as angemeldete_kurse
FROM schueler s
LEFT JOIN anmeldungen a ON s.id = a.schueler_id
LEFT JOIN kurse k ON a.kurs_id = k.id
WHERE s.betrieb_id = :betrieb_id
GROUP BY s.id";
$detail_stmt = $db->prepare($detail_query);
$detail_stmt->execute([':betrieb_id' => $row['betrieb_id']]);
$schueler = [];
while ($detail = $detail_stmt->fetch()) {
$schueler[] = [
'vorname' => $detail['vorname'],
'nachname' => $detail['nachname'],
'angemeldete_kurse' => $detail['angemeldete_kurse'] ?? 'Keine Kurse'
];
}
$bericht[] = [
'betrieb_id' => (int)$row['betrieb_id'],
'betrieb_name' => $row['betrieb_name'],
'adresse' => $row['adresse'],
'anzahl_schueler' => (int)$row['anzahl_schueler'],
'anzahl_anmeldungen' => (int)$row['anzahl_anmeldungen'],
'schueler' => $schueler
];
}
echo json_encode($bericht);
} catch (Exception $e) {
error_log("Error in berichte/teilnehmer_betrieb.php: " . $e->getMessage());
http_response_code(500);
echo json_encode(['message' => 'Fehler beim Erstellen des Berichts']);
}

View File

@@ -0,0 +1,55 @@
<?php
global $db;
try {
$query = "SELECT
k.id as kurs_id,
k.name as kurs_name,
k.max_teilnehmer,
COUNT(a.id) as anzahl_teilnehmer,
ROUND((COUNT(a.id) / k.max_teilnehmer) * 100, 2) as auslastung_prozent
FROM kurse k
LEFT JOIN anmeldungen a ON k.id = a.kurs_id
GROUP BY k.id
ORDER BY k.name";
$stmt = $db->prepare($query);
$stmt->execute();
$bericht = [];
while ($row = $stmt->fetch()) {
$detail_query = "SELECT
s.vorname,
s.nachname,
b.name as betrieb_name
FROM anmeldungen a
JOIN schueler s ON a.schueler_id = s.id
JOIN betriebe b ON s.betrieb_id = b.id
WHERE a.kurs_id = :kurs_id
ORDER BY s.nachname, s.vorname";
$detail_stmt = $db->prepare($detail_query);
$detail_stmt->execute([':kurs_id' => $row['kurs_id']]);
$teilnehmer = [];
while ($detail = $detail_stmt->fetch()) {
$teilnehmer[] = [
'vorname' => $detail['vorname'],
'nachname' => $detail['nachname'],
'betrieb_name' => $detail['betrieb_name']
];
}
$bericht[] = [
'kurs_id' => (int)$row['kurs_id'],
'kurs_name' => $row['kurs_name'],
'max_teilnehmer' => (int)$row['max_teilnehmer'],
'anzahl_teilnehmer' => (int)$row['anzahl_teilnehmer'],
'auslastung_prozent' => (float)$row['auslastung_prozent'],
'teilnehmer' => $teilnehmer
];
}
echo json_encode($bericht);
} catch (Exception $e) {
error_log("Error in berichte/teilnehmer_kurs.php: " . $e->getMessage());
http_response_code(500);
echo json_encode(['message' => 'Fehler beim Erstellen des Berichts']);
}