orders.php 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?php
  2. require_once __DIR__ . '/config.php';
  3. require_once __DIR__ . '/includes/functions.php';
  4. $pageTitle = 'Meine Bestellungen';
  5. $rememberedOrderIds = getRememberedOrderIds();
  6. $orders = [];
  7. foreach ($rememberedOrderIds as $orderId) {
  8. $reservation = getReservationByOrderNumber($orderId);
  9. if (!$reservation) {
  10. continue;
  11. }
  12. if ((isset($reservation['status']) && $reservation['status'] === 'deleted') || isReservationHidden($reservation)) {
  13. continue;
  14. }
  15. $isBackorder = isset($reservation['type']) && $reservation['type'] === 'backorder';
  16. $typeLabel = $isBackorder ? 'Vorbestellung' : 'Reservierung';
  17. if ($isBackorder) {
  18. if (isset($reservation['backorder_status']) && $reservation['backorder_status'] === 'notified') {
  19. $statusLabel = 'Informiert';
  20. $statusClass = 'status-notified';
  21. } else {
  22. $statusLabel = 'Offen';
  23. $statusClass = 'status-open';
  24. }
  25. $detailsUrl = SITE_URL . '/reservation.php?backorder_number=' . urlencode($reservation['id']);
  26. } else {
  27. if (!empty($reservation['picked_up'])) {
  28. $statusLabel = 'Abgeholt';
  29. $statusClass = 'status-picked';
  30. } elseif (isset($reservation['status']) && $reservation['status'] === 'expired') {
  31. $statusLabel = 'Abgelaufen';
  32. $statusClass = 'status-expired';
  33. } else {
  34. $statusLabel = 'Offen';
  35. $statusClass = 'status-open';
  36. }
  37. $detailsUrl = SITE_URL . '/reservation.php?order_number=' . urlencode($reservation['id']);
  38. }
  39. $orders[] = [
  40. 'id' => $reservation['id'],
  41. 'type_label' => $typeLabel,
  42. 'created_label' => !empty($reservation['created']) ? formatDate($reservation['created']) : '-',
  43. 'status_label' => $statusLabel,
  44. 'status_class' => $statusClass,
  45. 'details_url' => $detailsUrl
  46. ];
  47. }
  48. include __DIR__ . '/includes/header.php';
  49. ?>
  50. <h2>Meine Bestellungen</h2>
  51. <div class="alert alert-info">
  52. <p>Hier sehen Sie Ihre zuletzt erstellten Bestellungen.</p>
  53. </div>
  54. <?php if (empty($orders)): ?>
  55. <div class="alert alert-info">
  56. <p>Es wurden noch keine Bestellungen in diesem Browser gefunden.</p>
  57. </div>
  58. <?php else: ?>
  59. <div class="table-responsive">
  60. <table class="responsive-table">
  61. <thead>
  62. <tr>
  63. <th>Bestellnummer</th>
  64. <th>Typ</th>
  65. <th>Erstellt</th>
  66. <th>Status</th>
  67. <th>Aktionen</th>
  68. </tr>
  69. </thead>
  70. <tbody>
  71. <?php foreach ($orders as $order): ?>
  72. <tr>
  73. <td data-label="Bestellnummer"><strong><?php echo htmlspecialchars($order['id']); ?></strong></td>
  74. <td data-label="Typ"><?php echo htmlspecialchars($order['type_label']); ?></td>
  75. <td data-label="Erstellt"><?php echo htmlspecialchars($order['created_label']); ?></td>
  76. <td data-label="Status"><span class="status <?php echo htmlspecialchars($order['status_class']); ?>"><?php echo htmlspecialchars($order['status_label']); ?></span></td>
  77. <td data-label="Aktionen"><a href="<?php echo htmlspecialchars($order['details_url']); ?>" class="btn btn-small">Details</a></td>
  78. </tr>
  79. <?php endforeach; ?>
  80. </tbody>
  81. </table>
  82. </div>
  83. <?php endif; ?>
  84. <?php include __DIR__ . '/includes/footer.php'; ?>