🤩 File Manager - Mr.X
PHP:
8.3.33
Server:
Apache
OS:
Linux 5.14.0-611.49.1.el9_7.x86_64
User:
websparkit
Navigate
Upload:
Upload
New File
New Folder
Editing:booking-details.php
<?php require_once __DIR__ . '/../config/config.php'; require_once __DIR__ . '/../includes/functions.php'; if (!isLoggedIn()) redirect(SITE_URL . 'customer/login.php'); $id = isset($_GET['id']) ? intval($_GET['id']) : 0; $booking = getBooking($id); if (!$booking || $booking['customer_id'] != $_SESSION['customer_id']) { header("Location: dashboard.php"); exit; } $payments = getPayments($id); define('PAGE_TITLE', 'Booking Details'); include 'dashboard-header.php'; ?> <div class="d-flex justify-content-between align-items-center mb-4"> <h4 class="fw-bold text-navy mb-0"><i class="bi bi-file-text text-warning me-2"></i>Booking: <?= $booking['booking_id'] ?></h4> <a href="my-bookings.php" class="btn btn-outline-premium btn-sm"><i class="bi bi-arrow-left me-1"></i>Back</a> </div> <div class="row g-4"> <div class="col-lg-8"> <div class="premium-card p-4 mb-4"> <h5 class="fw-bold mb-3">Event Details</h5> <div class="row g-3"> <div class="col-md-6"><label class="text-muted small">Event Date</label><p class="fw-bold mb-0"><?= date('l, d F Y', strtotime($booking['event_date'])) ?></p></div> <div class="col-md-3"><label class="text-muted small">Start Time</label><p class="fw-bold mb-0"><?= date('h:i A', strtotime($booking['start_time'])) ?></p></div> <div class="col-md-3"><label class="text-muted small">End Time</label><p class="fw-bold mb-0"><?= date('h:i A', strtotime($booking['end_time'])) ?></p></div> <div class="col-md-6"><label class="text-muted small">Venue</label><p class="fw-bold mb-0"><?= htmlspecialchars($booking['venue']) ?></p></div> <div class="col-md-6"><label class="text-muted small">District</label><p class="fw-bold mb-0"><?= htmlspecialchars($booking['district']) ?></p></div> <div class="col-md-6"><label class="text-muted small">Color Theme</label><p class="fw-bold mb-0"><?= htmlspecialchars($booking['color_theme'] ?: 'Not specified') ?></p></div> <?php if (isset($booking['distance']) && $booking['distance'] > 0): ?> <div class="col-md-6"><label class="text-muted small">Distance from Office</label><p class="fw-bold mb-0"><?= number_format($booking['distance'], 2) ?> km</p></div> <?php endif; ?> <?php if ($booking['special_notes']): ?> <div class="col-12"><label class="text-muted small">Special Notes</label><p class="mb-0"><?= nl2br(htmlspecialchars($booking['special_notes'])) ?></p></div> <?php endif; ?> <?php if (!empty($booking['latitude']) && !empty($booking['longitude'])): ?> <div class="col-12 mt-3"> <label class="text-muted small mb-2">Event Location Map</label> <div id="booking-details-map" style="height: 200px; border-radius: 8px; border: 1px solid rgba(255,255,255,0.1); background: #12305e; position: relative; z-index: 1;"></div> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" /> <script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script> <script> document.addEventListener("DOMContentLoaded", function() { var map = L.map('booking-details-map').setView([<?= $booking['latitude'] ?>, <?= $booking['longitude'] ?>], 13); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: '© OpenStreetMap contributors' }).addTo(map); var officeLat = <?= floatval(getSetting('office_latitude') ?: 6.9271) ?>; var officeLng = <?= floatval(getSetting('office_longitude') ?: 79.8612) ?>; var officeIcon = L.icon({ iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-2x-red.png', shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/0.7.7/images/marker-shadow.png', iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -34], shadowSize: [41, 41] }); L.marker([officeLat, officeLng], { icon: officeIcon }).addTo(map).bindPopup("Our Office"); L.marker([<?= $booking['latitude'] ?>, <?= $booking['longitude'] ?>]).addTo(map).bindPopup("Event Venue").openPopup(); L.polyline([[officeLat, officeLng], [<?= $booking['latitude'] ?>, <?= $booking['longitude'] ?>]], { color: '#FF7A00', weight: 3, dashArray: '5, 10' }).addTo(map); }); </script> </div> <?php endif; ?> </div> </div> <?php if ($booking['admin_notes']): ?> <div class="premium-card p-4 mb-4"> <h5 class="fw-bold mb-3"><i class="bi bi-chat-dots text-warning me-2"></i>Admin Notes</h5> <p class="mb-0"><?= nl2br(htmlspecialchars($booking['admin_notes'])) ?></p> </div> <?php endif; ?> </div> <div class="col-lg-4"> <div class="premium-card p-4 mb-4"> <h5 class="fw-bold mb-3">Package Details</h5> <p class="mb-1 fw-bold"><?= htmlspecialchars($booking['package_name']) ?></p> <p class="text-muted small"><?= htmlspecialchars($booking['category_name']) ?></p> <hr> <?php $pkg_price = isset($booking['package_price']) && $booking['package_price'] > 0 ? floatval($booking['package_price']) : floatval($booking['total_price']) - floatval($booking['transport_cost'] ?? 0); $trans_cost = isset($booking['transport_cost']) ? floatval($booking['transport_cost']) : 0.0; ?> <div class="d-flex justify-content-between mb-2"><span class="text-muted">Package Price:</span><span class="fw-bold"><?= formatPrice($pkg_price) ?></span></div> <?php if ($trans_cost > 0): ?> <div class="d-flex justify-content-between mb-2"><span class="text-muted">Transport Cost (<?= number_format($booking['distance'], 2) ?> km):</span><span class="fw-bold"><?= formatPrice($trans_cost) ?></span></div> <?php endif; ?> <div class="d-flex justify-content-between mb-2"><span class="text-muted">Total Price:</span><span class="fw-bold"><?= formatPrice($booking['total_price']) ?></span></div> <div class="d-flex justify-content-between mb-2"><span class="text-muted">Advance Paid:</span><span class="fw-bold text-success"><?= formatPrice($booking['advance_amount']) ?></span></div> <div class="d-flex justify-content-between mb-2"><span class="text-muted">Balance:</span><span class="fw-bold <?= $booking['balance_amount'] > 0 ? 'text-danger' : 'text-success' ?>"><?= formatPrice($booking['balance_amount']) ?></span></div> <hr> <div class="d-flex justify-content-between mb-2"><span class="text-muted">Booking Status:</span><?= getStatusBadge($booking['status']) ?></div> <div class="d-flex justify-content-between mb-2"><span class="text-muted">Payment Status:</span><?= getStatusBadge($booking['payment_status']) ?></div> <?php if ($booking['status'] == 'approved' || $booking['status'] == 'waiting_payment'): ?> <a href="make-payment.php?booking_id=<?= $booking['id'] ?>" class="btn btn-premium w-100 mt-3"><i class="bi bi-credit-card me-2"></i>Make Payment</a> <?php endif; ?> <?php if ($booking['status'] == 'confirmed' || $booking['status'] == 'completed'): ?> <a href="<?= SITE_URL ?>pdf/invoice.php?booking_id=<?= $booking['id'] ?>" class="btn btn-navy w-100 mt-2" target="_blank"><i class="bi bi-download me-2"></i>Download Invoice</a> <?php endif; ?> </div> <?php if (count($payments) > 0): ?> <div class="premium-card p-4"> <h5 class="fw-bold mb-3"><i class="bi bi-credit-card text-warning me-2"></i>Payment History</h5> <?php foreach ($payments as $p): ?> <div class="d-flex justify-content-between align-items-center mb-2 pb-2 border-bottom"> <div><small class="text-muted"><?= date('d M Y', strtotime($p['created_at'])) ?></small><p class="mb-0 fw-bold"><?= formatPrice($p['amount']) ?></p></div> <span class="badge bg-<?= $p['status'] == 'verified' ? 'success' : ($p['status'] == 'rejected' ? 'danger' : 'warning') ?>"><?= $p['status'] ?></span> </div> <?php endforeach; ?> </div> <?php endif; ?> </div> </div> <?php include 'dashboard-footer.php'; ?>
Save Changes
Cancel
Create New File
Create New Folder