Anpassung Ladezeit Impfen + Urlaubsplaner
This commit is contained in:
+62
-37
@@ -4,6 +4,7 @@ session_start();
|
||||
// WICHTIG: Pfade aus /admin heraus korrekt auflösen
|
||||
require_once __DIR__ . "/../inc/config.inc.php";
|
||||
require_once __DIR__ . "/../inc/functions.inc.php";
|
||||
require_once __DIR__ . "/../inc/company_holiday_sync.inc.php";
|
||||
|
||||
// Login prüfen
|
||||
$user = check_admin_user();
|
||||
@@ -624,12 +625,12 @@ if(!check_worker()){
|
||||
|
||||
echo "Start: <input class='form-control' name='Starttime[]' type='date' value='" . htmlspecialchars($start, ENT_QUOTES, 'UTF-8') . "'>
|
||||
Ende: <input class='form-control' name='Endetime[]' type='date' value='" . htmlspecialchars($ende, ENT_QUOTES, 'UTF-8') . "'><br>
|
||||
Vertretung: <input class='form-control' name='vertretung[]' type='text' value='" . htmlspecialchars($vertretung, ENT_QUOTES, 'UTF-8') . "'>";
|
||||
Vertretung: <input class='form-control' name='vertretung[]' type='text' required value='" . htmlspecialchars($vertretung, ENT_QUOTES, 'UTF-8') . "'>";
|
||||
|
||||
echo "<br>Vertretung Telefon: <input class='form-control' name='vertretertelefon[]' type='text' value='" . htmlspecialchars($vertretertelefon, ENT_QUOTES, 'UTF-8') . "'>
|
||||
<br>Vertretung Adresse: <input class='form-control' name='vertreteradresse[]' type='text' value='" . htmlspecialchars($vertreteradresse, ENT_QUOTES, 'UTF-8') . "'>";
|
||||
echo "<br>Vertretung Telefon: <input class='form-control' name='vertretertelefon[]' type='text' required value='" . htmlspecialchars($vertretertelefon, ENT_QUOTES, 'UTF-8') . "'>
|
||||
<br>Vertretung Adresse: <input class='form-control' name='vertreteradresse[]' type='text' required value='" . htmlspecialchars($vertreteradresse, ENT_QUOTES, 'UTF-8') . "'>";
|
||||
|
||||
echo "<br>Vertretung Webseite: <input class='form-control' name='vertreterurl[]' type='text' value='" . htmlspecialchars($vertreterurl, ENT_QUOTES, 'UTF-8') . "'>";
|
||||
echo "<br>Vertretung Webseite: <input class='form-control' name='vertreterurl[]' type='text' required value='" . htmlspecialchars($vertreterurl, ENT_QUOTES, 'UTF-8') . "'>";
|
||||
|
||||
echo "<input name='urlaubid[]' type='hidden' value='" . $urlaubid . "'><br>";
|
||||
}
|
||||
@@ -656,40 +657,64 @@ if(!check_worker()){
|
||||
}else if (($_POST["aktion"] ?? '') == "5") {
|
||||
// Termine in DB speichern.
|
||||
$i =0;
|
||||
foreach ($_POST['Starttime'] as $Starttime) {
|
||||
//echo $datum . "<br>";
|
||||
if($_POST["Starttime"][$i] != "0000-00-00"){
|
||||
//echo $_POST["urlaubid"][$i] . "<br>";
|
||||
$stmt = $pdo->prepare("
|
||||
INSERT INTO urlaub
|
||||
(urlaubid, vertretung, start, ende, vertretertelefon, vertreteradresse, vertreterurl)
|
||||
VALUES
|
||||
(:urlaubid, :vertretung, :start, :ende, :telefon, :adresse, :url)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
vertretung = VALUES(vertretung),
|
||||
start = VALUES(start),
|
||||
ende = VALUES(ende),
|
||||
vertretertelefon = VALUES(vertretertelefon),
|
||||
vertreteradresse = VALUES(vertreteradresse),
|
||||
vertreterurl = VALUES(vertreterurl)
|
||||
");
|
||||
$pdo->beginTransaction();
|
||||
try {
|
||||
foreach ($_POST['Starttime'] as $Starttime) {
|
||||
if($_POST["Starttime"][$i] != "0000-00-00"){
|
||||
$vertretung = trim((string)($_POST['vertretung'][$i] ?? ''));
|
||||
$vertretertelefon = trim((string)($_POST['vertretertelefon'][$i] ?? ''));
|
||||
$vertreteradresse = trim((string)($_POST['vertreteradresse'][$i] ?? ''));
|
||||
$vertreterurl = trim((string)($_POST['vertreterurl'][$i] ?? ''));
|
||||
|
||||
$ok = $stmt->execute([
|
||||
':urlaubid' => (int)$_POST['urlaubid'][$i], // 0 = INSERT, >0 = UPDATE
|
||||
':vertretung' => $_POST['vertretung'][$i],
|
||||
':start' => $_POST['Starttime'][$i],
|
||||
':ende' => $_POST['Endetime'][$i],
|
||||
':telefon' => $_POST['vertretertelefon'][$i],
|
||||
':adresse' => $_POST['vertreteradresse'][$i],
|
||||
':url' => $_POST['vertreterurl'][$i],
|
||||
]);
|
||||
if ($vertretung === '' || $vertretertelefon === '' || $vertreteradresse === '' || $vertreterurl === '') {
|
||||
throw new RuntimeException("Bitte alle Vertreterinformationen fuer jeden Urlaubseintrag vollstaendig ausfuellen.");
|
||||
}
|
||||
|
||||
if (!$ok) {
|
||||
throw new RuntimeException("Fehler beim Eintragen in der Datenbank.");
|
||||
$stmt = $pdo->prepare("
|
||||
INSERT INTO urlaub
|
||||
(urlaubid, vertretung, start, ende, vertretertelefon, vertreteradresse, vertreterurl)
|
||||
VALUES
|
||||
(:urlaubid, :vertretung, :start, :ende, :telefon, :adresse, :url)
|
||||
ON DUPLICATE KEY UPDATE
|
||||
vertretung = VALUES(vertretung),
|
||||
start = VALUES(start),
|
||||
ende = VALUES(ende),
|
||||
vertretertelefon = VALUES(vertretertelefon),
|
||||
vertreteradresse = VALUES(vertreteradresse),
|
||||
vertreterurl = VALUES(vertreterurl)
|
||||
");
|
||||
|
||||
$ok = $stmt->execute([
|
||||
':urlaubid' => (int)$_POST['urlaubid'][$i], // 0 = INSERT, >0 = UPDATE
|
||||
':vertretung' => $vertretung,
|
||||
':start' => $_POST['Starttime'][$i],
|
||||
':ende' => $_POST['Endetime'][$i],
|
||||
':telefon' => $vertretertelefon,
|
||||
':adresse' => $vertreteradresse,
|
||||
':url' => $vertreterurl,
|
||||
]);
|
||||
|
||||
if (!$ok) {
|
||||
throw new RuntimeException("Fehler beim Eintragen in der Datenbank.");
|
||||
}
|
||||
|
||||
$urlaubId = (int)$_POST['urlaubid'][$i];
|
||||
if ($urlaubId <= 0) {
|
||||
$urlaubId = (int)$pdo->lastInsertId();
|
||||
}
|
||||
if ($urlaubId > 0) {
|
||||
vacationSyncCompanyHolidayFromUrlaub($pdo, $urlaubId, $internUserId);
|
||||
}
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
$pdo->commit();
|
||||
} catch (Throwable $e) {
|
||||
if ($pdo->inTransaction()) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
throw $e;
|
||||
}
|
||||
echo "Einträge wurden in der Datenbank gespeichert!<br><br>";
|
||||
|
||||
}else if (($_POST["aktion"] ?? '') == "6") {
|
||||
@@ -2023,10 +2048,10 @@ if(!check_worker()){
|
||||
<script type="text/javascript">
|
||||
|
||||
function AddneueTermine(){
|
||||
|
||||
|
||||
var div = document.getElementById('neuerUrlaub');
|
||||
|
||||
div.innerHTML += "Start: <input name=Starttime[] type=date class='form-control' > Ende: <input name=Endetime[] type=date class='form-control' >Vertretung: <input type=text name=vertretung[] weight=100 class='form-control'> Vertretung Telefon: <input type=text name=vertretertelefon[] weight=100 class='form-control'> Vertretung Adresse: <input type=text name=vertreteradresse[] weight=100 class='form-control'> Vertretung Webseite: <input type=text name=vertreterurl[] weight=100 class='form-control'> <input name=urlaubid[] type=hidden value='0'> <br>";
|
||||
|
||||
div.innerHTML += "Start: <input name=Starttime[] type=date class='form-control' > Ende: <input name=Endetime[] type=date class='form-control' >Vertretung: <input type=text name=vertretung[] weight=100 class='form-control' required> Vertretung Telefon: <input type=text name=vertretertelefon[] weight=100 class='form-control' required> Vertretung Adresse: <input type=text name=vertreteradresse[] weight=100 class='form-control' required> Vertretung Webseite: <input type=text name=vertreterurl[] weight=100 class='form-control' required> <input name=urlaubid[] type=hidden value='0'> <br>";
|
||||
//Public: <select name=aktiv[] id='aktiv' required ><option value='1' >Ja</option> <option value='0'>Nein</option></select>
|
||||
|
||||
//document.getElementById('neueTermine').innerHTML = div;
|
||||
|
||||
+127
-97
@@ -405,6 +405,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
SendMailMessageVorlage($pdo, '1', $tid, $mailTemplateId);
|
||||
}
|
||||
|
||||
impfWorkflowNotificationProcess($pdo);
|
||||
$message = count($terminIds) . " Terminanfragen wurden erstellt und versendet.";
|
||||
} catch (Throwable $e) {
|
||||
if ($pdo->inTransaction()) {
|
||||
@@ -436,7 +437,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
1
|
||||
);
|
||||
if ($ok) {
|
||||
$notificationEvents = impfWorkflowNotificationProcess($pdo);
|
||||
$message = $msg;
|
||||
if (!empty($notificationEvents)) {
|
||||
$message .= ' ' . count($notificationEvents) . " Impfworkflow-Benachrichtigung(en) wurden versendet.";
|
||||
}
|
||||
} else {
|
||||
$error = $msg;
|
||||
}
|
||||
@@ -481,7 +486,11 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
1
|
||||
);
|
||||
if ($ok) {
|
||||
$notificationEvents = impfWorkflowNotificationProcess($pdo);
|
||||
$message = $msg;
|
||||
if (!empty($notificationEvents)) {
|
||||
$message .= ' ' . count($notificationEvents) . " Impfworkflow-Benachrichtigung(en) wurden versendet.";
|
||||
}
|
||||
} else {
|
||||
$error = $msg;
|
||||
}
|
||||
@@ -595,6 +604,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||
$exists = (bool)$stDelete->fetch(PDO::FETCH_ASSOC);
|
||||
workflowDeleteWaitlistEntry($pdo, $warteid);
|
||||
if ($exists) {
|
||||
impfWorkflowNotificationProcess($pdo);
|
||||
$message = "Wartelisten-Eintrag wurde gelöscht.";
|
||||
} else {
|
||||
$error = "Wartelisten-Eintrag nicht gefunden.";
|
||||
@@ -663,51 +673,67 @@ $eventOverview = [];
|
||||
$planWaitCounts = [];
|
||||
|
||||
try {
|
||||
$stRules = $pdo->prepare("SELECT r.impfstoff_id, r.dosen_pro_flasche, i.impfname,
|
||||
COALESCE((SELECT COUNT(DISTINCT w.userid) FROM warteliste w WHERE w.checked = 1 AND (w.impfstoff = r.impfstoff_id OR w.impfstoff = 0)),0) AS wartende
|
||||
FROM impfstoff_workflow r
|
||||
INNER JOIN impfstoff i ON i.impfid = r.impfstoff_id
|
||||
WHERE (i.aktiv = 1 OR i.aktivwarteliste = 1 OR i.aktivtermin = 1 OR i.aktivgrippe = 1)
|
||||
ORDER BY i.impfname");
|
||||
$stRules->execute();
|
||||
$rules = $stRules->fetchAll(PDO::FETCH_ASSOC);
|
||||
$needsPlanData = in_array($view, ['teilnehmer', 'event-create'], true);
|
||||
$needsEligibilityData = ($view === 'event-create');
|
||||
$needsPersonSearch = ($view === 'teilnehmer' && $personSearch !== '');
|
||||
$needsWaitRows = ($view === 'warteliste');
|
||||
$needsUpcomingRows = ($view === 'event-teilnehmer');
|
||||
|
||||
$plans = impfGetZeitraumRows($pdo, true);
|
||||
if ($needsPlanData) {
|
||||
$stRules = $pdo->prepare("SELECT r.impfstoff_id, r.dosen_pro_flasche, i.impfname,
|
||||
COALESCE((SELECT COUNT(DISTINCT w.userid) FROM warteliste w WHERE w.checked = 1 AND (w.impfstoff = r.impfstoff_id OR w.impfstoff = 0)),0) AS wartende
|
||||
FROM impfstoff_workflow r
|
||||
INNER JOIN impfstoff i ON i.impfid = r.impfstoff_id
|
||||
WHERE (i.aktiv = 1 OR i.aktivwarteliste = 1 OR i.aktivtermin = 1 OR i.aktivgrippe = 1)
|
||||
ORDER BY i.impfname");
|
||||
$stRules->execute();
|
||||
$rules = $stRules->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$planExistsForImpfstoff = [];
|
||||
foreach ($plans as $p) {
|
||||
foreach ($p['impfstoff_id_list'] as $impfstoffId) {
|
||||
$planExistsForImpfstoff[(int)$impfstoffId] = true;
|
||||
}
|
||||
}
|
||||
$plans = impfGetZeitraumRows($pdo, true);
|
||||
|
||||
foreach ($rules as $r) {
|
||||
$iid = (int)$r['impfstoff_id'];
|
||||
$dosen = (int)$r['dosen_pro_flasche'];
|
||||
if ($dosen <= 0 || !isset($planExistsForImpfstoff[$iid])) {
|
||||
continue;
|
||||
$planExistsForImpfstoff = [];
|
||||
foreach ($plans as $p) {
|
||||
foreach ($p['impfstoff_id_list'] as $impfstoffId) {
|
||||
$planExistsForImpfstoff[(int)$impfstoffId] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$configuredImpfstoffe[] = $r;
|
||||
$hasEligiblePlan = false;
|
||||
foreach ($plans as $plan) {
|
||||
if (!in_array($iid, $plan['impfstoff_id_list'] ?? [], true)) {
|
||||
foreach ($rules as $r) {
|
||||
$iid = (int)$r['impfstoff_id'];
|
||||
if (!isset($planExistsForImpfstoff[$iid])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$planId = (int)$plan['zeitraum_id'];
|
||||
$planWaitCounts[$iid][$planId] = workflowCountWaitersForPlan($pdo, $iid, $planId);
|
||||
if ($planWaitCounts[$iid][$planId] >= $dosen) {
|
||||
$hasEligiblePlan = true;
|
||||
$configuredImpfstoffe[] = $r;
|
||||
if (!$needsEligibilityData) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ($hasEligiblePlan) {
|
||||
$eligible[] = $r;
|
||||
$dosen = (int)$r['dosen_pro_flasche'];
|
||||
if ($dosen <= 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$hasEligiblePlan = false;
|
||||
foreach ($plans as $plan) {
|
||||
if (!in_array($iid, $plan['impfstoff_id_list'] ?? [], true)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$planId = (int)$plan['zeitraum_id'];
|
||||
$planWaitCounts[$iid][$planId] = workflowCountWaitersForPlan($pdo, $iid, $planId);
|
||||
if ($planWaitCounts[$iid][$planId] >= $dosen) {
|
||||
$hasEligiblePlan = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($hasEligiblePlan) {
|
||||
$eligible[] = $r;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($personSearch !== '') {
|
||||
if ($needsPersonSearch) {
|
||||
$searchLike = '%' . $personSearch . '%';
|
||||
$searchExactId = ctype_digit($personSearch) ? (int)$personSearch : -1;
|
||||
$stPersons = $pdo->prepare("SELECT person_id, vorname, nachname, geburtstag, email, tele, ort, plz, strasse
|
||||
@@ -726,74 +752,78 @@ try {
|
||||
$personResults = $stPersons->fetchAll(PDO::FETCH_ASSOC);
|
||||
}
|
||||
|
||||
$stWait = $pdo->prepare("SELECT w.warteid, w.userid, w.checked, w.impfstoff, w.impfart, w.impfenzeitraum, w.zeitraum_id, w.letzteimpfung, w.date_created,
|
||||
p.vorname, p.nachname, p.geburtstag, p.email, p.tele,
|
||||
i.impfname
|
||||
FROM warteliste w
|
||||
INNER JOIN persons p ON p.person_id = w.userid
|
||||
LEFT JOIN impfstoff i ON i.impfid = w.impfstoff
|
||||
WHERE w.checked IN (0, 1)
|
||||
ORDER BY w.checked DESC, w.date_created ASC
|
||||
LIMIT 500");
|
||||
$stWait->execute();
|
||||
$waitRows = $stWait->fetchAll(PDO::FETCH_ASSOC);
|
||||
if ($needsWaitRows) {
|
||||
$stWait = $pdo->prepare("SELECT w.warteid, w.userid, w.checked, w.impfstoff, w.impfart, w.impfenzeitraum, w.zeitraum_id, w.letzteimpfung, w.date_created,
|
||||
p.vorname, p.nachname, p.geburtstag, p.email, p.tele,
|
||||
i.impfname
|
||||
FROM warteliste w
|
||||
INNER JOIN persons p ON p.person_id = w.userid
|
||||
LEFT JOIN impfstoff i ON i.impfid = w.impfstoff
|
||||
WHERE w.checked IN (0, 1)
|
||||
ORDER BY w.checked DESC, w.date_created ASC
|
||||
LIMIT 500");
|
||||
$stWait->execute();
|
||||
$waitRows = $stWait->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
foreach ($waitRows as &$waitRow) {
|
||||
$waitRow['zeitraum_labels'] = impfGetWartelistenZeitraeumeLabels($pdo, (int)$waitRow['warteid'], false);
|
||||
if (!empty($waitRow['zeitraum_labels'])) {
|
||||
$waitRow['impfenzeitraum'] = implode(' | ', $waitRow['zeitraum_labels']);
|
||||
$waitIds = array_map(static function (array $waitRow): int {
|
||||
return (int)($waitRow['warteid'] ?? 0);
|
||||
}, $waitRows);
|
||||
$waitLabelsById = impfGetWartelistenZeitraeumeLabelsMap($pdo, $waitIds, false);
|
||||
|
||||
foreach ($waitRows as &$waitRow) {
|
||||
$warteid = (int)($waitRow['warteid'] ?? 0);
|
||||
$waitRow['zeitraum_labels'] = $waitLabelsById[$warteid] ?? [];
|
||||
if (!empty($waitRow['zeitraum_labels'])) {
|
||||
$waitRow['impfenzeitraum'] = implode(' | ', $waitRow['zeitraum_labels']);
|
||||
}
|
||||
}
|
||||
}
|
||||
unset($waitRow);
|
||||
|
||||
$notificationEvents = impfWorkflowNotificationProcess($pdo);
|
||||
if (!empty($notificationEvents)) {
|
||||
$notificationText = count($notificationEvents) . " Impfworkflow-Benachrichtigung(en) wurden versendet.";
|
||||
$message = ($message === '') ? $notificationText : ($message . ' ' . $notificationText);
|
||||
unset($waitRow);
|
||||
}
|
||||
|
||||
$stUpcoming = $pdo->prepare("SELECT ts.timeid, ts.date, ts.start, ts.ende, ts.impfdosen,
|
||||
i.impfname, o.anzeigename, o.adresse,
|
||||
it.terminid, it.checked, it.behandelt, it.impfart,
|
||||
p.vorname, p.nachname, p.geburtstag, p.email, p.tele
|
||||
FROM timeslots ts
|
||||
INNER JOIN impfstoff i ON i.impfid = ts.impfstoff
|
||||
LEFT JOIN impfort o ON o.ortid = ts.impfortid
|
||||
LEFT JOIN impftermin it ON it.timeid = ts.timeid
|
||||
LEFT JOIN persons p ON p.person_id = it.userid
|
||||
WHERE ts.date >= :today
|
||||
AND ts.aktiv = 1
|
||||
ORDER BY ts.date, ts.start, ts.ende, i.impfname, p.nachname, p.vorname");
|
||||
$stUpcoming->execute(['today' => date('Y-m-d')]);
|
||||
$upcomingRows = $stUpcoming->fetchAll(PDO::FETCH_ASSOC);
|
||||
if ($needsUpcomingRows) {
|
||||
$stUpcoming = $pdo->prepare("SELECT ts.timeid, ts.date, ts.start, ts.ende, ts.impfdosen,
|
||||
i.impfname, o.anzeigename, o.adresse,
|
||||
it.terminid, it.checked, it.behandelt, it.impfart,
|
||||
p.vorname, p.nachname, p.geburtstag, p.email, p.tele
|
||||
FROM timeslots ts
|
||||
INNER JOIN impfstoff i ON i.impfid = ts.impfstoff
|
||||
LEFT JOIN impfort o ON o.ortid = ts.impfortid
|
||||
LEFT JOIN impftermin it ON it.timeid = ts.timeid
|
||||
LEFT JOIN persons p ON p.person_id = it.userid
|
||||
WHERE ts.date >= :today
|
||||
AND ts.aktiv = 1
|
||||
ORDER BY ts.date, ts.start, ts.ende, i.impfname, p.nachname, p.vorname");
|
||||
$stUpcoming->execute(['today' => date('Y-m-d')]);
|
||||
$upcomingRows = $stUpcoming->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
foreach ($upcomingRows as $row) {
|
||||
$timeid = (int)$row['timeid'];
|
||||
if (!isset($eventOverview[$timeid])) {
|
||||
$eventOverview[$timeid] = [
|
||||
'timeid' => $timeid,
|
||||
'date' => $row['date'],
|
||||
'start' => $row['start'],
|
||||
'ende' => $row['ende'],
|
||||
'impfdosen' => (int)$row['impfdosen'],
|
||||
'impfname' => $row['impfname'],
|
||||
'anzeigename' => $row['anzeigename'],
|
||||
'adresse' => $row['adresse'],
|
||||
'teilnehmer' => [],
|
||||
];
|
||||
}
|
||||
if (!empty($row['terminid'])) {
|
||||
$eventOverview[$timeid]['teilnehmer'][] = [
|
||||
'terminid' => (int)$row['terminid'],
|
||||
'checked' => (int)($row['checked'] ?? 0),
|
||||
'behandelt' => (int)($row['behandelt'] ?? 0),
|
||||
'impfart' => (int)($row['impfart'] ?? 1),
|
||||
'vorname' => (string)($row['vorname'] ?? ''),
|
||||
'nachname' => (string)($row['nachname'] ?? ''),
|
||||
'geburtstag' => (string)($row['geburtstag'] ?? ''),
|
||||
'email' => (string)($row['email'] ?? ''),
|
||||
'tele' => (string)($row['tele'] ?? ''),
|
||||
];
|
||||
foreach ($upcomingRows as $row) {
|
||||
$timeid = (int)$row['timeid'];
|
||||
if (!isset($eventOverview[$timeid])) {
|
||||
$eventOverview[$timeid] = [
|
||||
'timeid' => $timeid,
|
||||
'date' => $row['date'],
|
||||
'start' => $row['start'],
|
||||
'ende' => $row['ende'],
|
||||
'impfdosen' => (int)$row['impfdosen'],
|
||||
'impfname' => $row['impfname'],
|
||||
'anzeigename' => $row['anzeigename'],
|
||||
'adresse' => $row['adresse'],
|
||||
'teilnehmer' => [],
|
||||
];
|
||||
}
|
||||
if (!empty($row['terminid'])) {
|
||||
$eventOverview[$timeid]['teilnehmer'][] = [
|
||||
'terminid' => (int)$row['terminid'],
|
||||
'checked' => (int)($row['checked'] ?? 0),
|
||||
'behandelt' => (int)($row['behandelt'] ?? 0),
|
||||
'impfart' => (int)($row['impfart'] ?? 1),
|
||||
'vorname' => (string)($row['vorname'] ?? ''),
|
||||
'nachname' => (string)($row['nachname'] ?? ''),
|
||||
'geburtstag' => (string)($row['geburtstag'] ?? ''),
|
||||
'email' => (string)($row['email'] ?? ''),
|
||||
'tele' => (string)($row['tele'] ?? ''),
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
@@ -1257,5 +1287,5 @@ try {
|
||||
</div>
|
||||
|
||||
<?php include __DIR__ . "/templates/footer.inc.php"; ?>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user