git.schokokeks.org
Repositories
Help
Report an Issue
bibweb.git
Code
Commits
Branches
Tags
Suche
Strukturansicht:
40358c7
Branches
Tags
master
bibweb.git
index.php
WIP: Zuerst Container scannen/eingeben, danach den Namen
Bernd Wurst
commited
40358c7
at 2026-08-10 13:55:50
index.php
Blame
History
Raw
<?php require_once "utils.php"; session_start(); if ((isset($_REQUEST['mode']) && $_REQUEST['mode'] == 'local') || (isset($_COOKIE['MODE']) && $_COOKIE['MODE'] == 'local')) { $_SESSION['mode'] = 'local'; setcookie('MODE', 'local', time() + 24*3600*500, ""); } if (!isset($_SESSION['mode'])) { $_SESSION['mode'] = 'remote'; } if (isset($_REQUEST['mode']) && $_REQUEST['mode'] == 'remote') { $_SESSION['mode'] = 'remote'; setcookie('MODE', 'remote', 0, ""); } if (isset($_REQUEST['type'])) { if ($_REQUEST['type'] == 'upcoming') { $_SESSION['angeliefert'] = false; } elseif ($_REQUEST['type'] == 'local') { $_SESSION['angeliefert'] = true; } } // hardcoded, voranmeldung ist im Moment nicht unterstützt $_SESSION['angeliefert'] = true; $content = ''; if (isset($_REQUEST['error'])) { $content .= '<div class="card text-white bg-danger mb-3"> <div class="card-header">Fehler</div>'; if (!empty($_REQUEST['error'])) { $content .= '<div class="card-body">'.htmlspecialchars($_REQUEST['error']).'</div>'; } $content .= ' </div>'; } $add_container_buttons = ''; $add_container_buttons .= '<div class="d-grid gap-4">'; // Bootstrap Stack für vertikale Buttons if ($_SESSION['mode'] == 'remote') { // 1. QR-Code scannen (Leitet auf eine Seite mit Kamera-Logik) $add_container_buttons .= '<a href="scan_container.php" class="btn btn-primary btn-lg">'; $add_container_buttons .= '<i class="fas fa-qrcode me-2"></i> QR-Code von Box scannen</a>'; } // 2. Nummer manuell eingeben $add_container_buttons .= ' <div class="form-group form-group-lg row"> <div class="col-sm-6 d-grid"><button type="button" id="btn-gitterbox" class="btn btn-lg btn-light" data-bs-toggle="modal" data-bs-target="#manualBoxModal"> Gitterbox</button></div> <div class="col-sm-6 d-grid"><button type="button" id="btn-anhaenger" class="btn btn-lg btn-light" data-bs-toggle="modal" data-bs-target="#trailerModal"> Anhänger abgestellt</a></div> </div>'; $add_container_buttons .= '</div>'; // Ende d-grid if (isset($_REQUEST['box']) && is_numeric($_REQUEST['box'])) { $box = htmlspecialchars($_REQUEST['box']); $headline = 'Auftrag starten'; $content .= '<p>Sie haben Obst angeliefert und möchten daraus Ihren Saft erhalten?</p>'; $content .= '<div class="card border-success mb-3">'; $content .= ' <div class="card-body text-center">'; $content .= '<h4 class="card-title">Ist das Ihre Box?</h4>'; $content .= '<p class="card-text">Sie haben den QR-Code von Box Nummer <strong>'.$box.'</strong> gescannt. Ist das die Box, die Sie gefüllt haben?</p>'; $content .= ' <div class="d-grid gap-2">'; $content .= '<a href="save.php?form=add_container&type=box&label='.$box.'" class="btn btn-primary"><i class="fas fa-check me-2"></i> Ja, Box <strong>' . $box . '</strong> verwenden!</a>'; $content .= '<a href="?" class="btn btn-outline-secondary">Nein, diese Box nicht verwenden.</a>'; $content .= ' </div>'; $content .= ' </div>'; $content .= '</div>'; } elseif (!isset($_SESSION['containers'])) { // Klassischer Intro-Text, wenn kein Scan vorliegt $headline = 'Willkommen'; $content .= '<div class="text-center mb-3">'; $content .= ' <p class="lead">Schön, dass Sie da sind. Bitte erfassen Sie zuerst die Art Ihrer Anlieferung, um mit dem Auftrag zu beginnen.</p>'; $content .= $add_container_buttons; $content .= '</div>'; } else { $headline = 'Container'; $content .= '<div class="mt-4">'; $content .= '<h3>Erfasste Boxen / Anhänger</h3>'; if (empty($_SESSION['containers'])) { $content .= '<p class="text-muted">Noch keine Boxen erfasst.</p>'; } else { $content .= '<ul class="list-group mb-3">'; foreach ($_SESSION['containers'] as $index => $box) { $content .= '<li class="list-group-item d-flex justify-content-between align-items-center">'; // Anzeige des Typs (Box mit Nummer, ohne Nummer oder Anhänger) $label = ($box['type'] == 'trailer') ? 'Anhänger ' . $box['label'] : 'Box ' . $box['label']; if ($box['type'] == 'box' && $box['label'] == '') { $label = 'Box ohne Nummer'; } // Auswahl des Bildchens je nach Typ $iconPath = ($box['type'] == 'trailer') ? 'assets/icons/trailer.svg' : 'assets/icons/box.svg'; $content .= '<span>'; $content .= '<img src="' . $iconPath . '" class="icon-svg" alt="">'; $content .= htmlspecialchars($label) . '</span>'; // Lösch-Link, der an die save.php leitet $content .= '<a href="save.php?form=delete_container&index=' . $index . '" class="btn btn-outline-danger btn-sm">'; $content .= '<i class="fas fa-trash"></i> Löschen</a>'; $content .= '</li>'; } $content .= '</ul>'; } $content .= '</div>'; $is_empty = empty($_SESSION['containers']); $collapse_show = $is_empty ? 'show' : ''; $aria_expanded = $is_empty ? 'true' : 'false'; $button_collapsed = $is_empty ? '' : 'collapsed'; // 2. "Aufklappbarer" Bereich für weitere Behälter $content .= '<div class="text-center">'; $content .= ' <button class="btn btn-outline-secondary btn-sm mb-3 ' . $button_collapsed . '" type="button" data-bs-toggle="collapse" data-bs-target="#moreOptions" aria-expanded="' . $aria_expanded . '">'; $content .= ' <i class="fas fa-plus me-1"></i> Weitere Box oder Anhänger'; $content .= ' </button>'; $content .= ' <div class="collapse ' . $collapse_show . '" id="moreOptions">'; $content .= ' <div class="card card-body bg-light border-0 mb-3">'; $content .= $add_container_buttons; $content .= ' </div>'; $content .= ' </div>'; $content .= '</div>'; // 1. Der primäre "Weiter"-Button rückt nach oben if (!$is_empty) { $content .= '<div class="col-md-3"> <div class="form-group form-group-lg h-100"> <input class="btn btn-primary btn-lg h-100" type="submit" value="Weiter >"> </div> </div>'; } } $content .= ' <div class="modal fade" id="manualBoxModal" tabindex="-1" aria-labelledby="manualBoxModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <form action="save.php" method="post"> <input type="hidden" name="form" value="add_container"> <input type="hidden" name="type" value="box"> <div class="modal-header"> <h5 class="modal-title" id="manualBoxModalLabel">Box-Nummer eingeben</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Schließen"></button> </div> <div class="modal-body"> <p>Bitte geben Sie die Nummer ein, die auf der Box steht:</p> <div class="form-floating mb-3"> <input type="number" class="form-control form-control-lg" id="box_label" name="label" placeholder="123" autofocus> <label for="box_label">Box-Nummer</label> </div> <p>Wenn Sie die Nummer leer lassen, müssen Sie Ihren Namen an der Box anbringen!</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Abbrechen</button> <button type="submit" class="btn btn-primary"> <i class="fas fa-plus me-2"></i> Box hinzufügen </button> </div> </form> </div> </div> </div>'; $content .= ' <div class="modal fade" id="trailerModal" tabindex="-1" aria-labelledby="trailerModalLabel" aria-hidden="true"> <div class="modal-dialog modal-dialog-centered"> <div class="modal-content"> <form action="save.php" method="post"> <input type="hidden" name="form" value="add_container"> <input type="hidden" name="type" value="trailer"> <div class="modal-header"> <h5 class="modal-title" id="trailerModalLabel">Anhänger erfassen</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Schließen"></button> </div> <div class="modal-body"> <p>Möchten Sie für diesen Anhänger ein Kennzeichen zur besseren Identifizierung hinterlegen?</p> <div class="form-floating mb-3"> <!-- Kein "required", damit das Kennzeichen optional bleibt --> <input type="text" class="form-control form-control-lg" id="trailer_label" name="label" placeholder="WN-AB 123" autofocus> <label for="trailer_label">Kennzeichen (optional)</label> </div> </div> <div class="modal-footer"> <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Abbrechen</button> <button type="submit" class="btn btn-primary"> <i class="fas fa-plus me-2"></i> Anhänger hinzufügen </button> </div> </form> </div> </div> </div>'; $content .= ' <div class="card mb-3" id="disclaimer"> <div class="card-header">Rechtliches</div> <div class="card-body"><p class="card-text">Dies ist ein Angebot der Mosterei Wurst, Murrhardt-Köchersberg.</p> <a href="#" data-bs-toggle="modal" data-bs-target="#datenschutz">Datenschutzhinweise lesen</a> </div> </div> <div class="modal fade" id="datenschutz"> <div class="modal-dialog"> <div class="modal-content"> <!-- Modal Header --> <div class="modal-header"> <h5 class="modal-title">Datenschutzhinweise</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <!-- Modal body --> <div class="modal-body"> <p>Wir speichern die eingegebenen Daten zum Zwecke der Erbringung unserer Dienstleistung. Eine Weitergabe der Daten erfolgt nicht. Sie haben einen Anspruch auf Löschung der personenbezogenen Daten, sofern keine laufende oder beauftragte Dienstleistung dem entgegen steht. Kontaktieren Sie uns dazu bitte auf beliebigem Weg'.($_SESSION['mode'] != 'local' ? ', wie im <a target="_blank" href="https://mosterei-wurst.de/impressum/">Impressum</a> angegeben' : '').'.</p> <p>Dieses Angebot verwendet Cookies zur Ablaufsteuerung. Einer auftragsbezogenen Kontaktaufnahme stimmen Sie durch Nutzung des Angebots explizit zu.</p> '.($_SESSION['mode'] != 'local' ? '<p>Der Name und die verwendete Telefonnummer wird (sofern Sie dies nicht abwählen) zusätzlich langfristig in Ihrem Browser gespeichert um Ihnen beim nächsten Besuch einen erhöhten Komfort zu bieten. Diese gespeicherte Nummer können Sie <a href="clear.php?number">sofort aus Ihrem Browser löschen</a>.</p>' : '').' </div> <!-- Modal footer --> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Verstanden</button> </div> </div> </div> </div> '; include("template.php");