🤩 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:dashboard.php
<?php define('PAGE_TITLE', 'Dashboard'); require_once 'includes/header.php'; $today = date('Y-m-d'); $t_revenue = $conn->query("SELECT COALESCE(SUM(total_price),0) as rev FROM bookings WHERE DATE(event_date) = '$today' AND status NOT IN ('cancelled')")->fetch_assoc()['rev']; $total_revenue = $conn->query("SELECT COALESCE(SUM(total_price),0) as rev FROM bookings WHERE status NOT IN ('cancelled')")->fetch_assoc()['rev']; $upcoming = $conn->query("SELECT b.*, p.name as pname, c.name as cname FROM bookings b JOIN packages p ON b.package_id=p.id JOIN categories c ON b.category_id=c.id WHERE b.event_date >= '$today' AND b.status NOT IN ('cancelled','completed') ORDER BY b.event_date ASC LIMIT 5"); $recent_customers = $conn->query("SELECT * FROM customers ORDER BY created_at DESC LIMIT 5"); $monthly_revenue = $conn->query("SELECT DATE_FORMAT(event_date,'%b') as mon, COALESCE(SUM(total_price),0) as rev FROM bookings WHERE YEAR(event_date)=YEAR(CURDATE()) AND status NOT IN ('cancelled') GROUP BY MONTH(event_date) ORDER BY MONTH(event_date)"); ?> <div class="d-flex justify-content-between align-items-center mb-4"> <h4 class="fw-bold text-navy mb-0"><i class="bi bi-speedometer2 text-warning me-2"></i>Dashboard</h4> <div><span class="badge bg-warning text-dark me-2">Pending: <?= $pending_count ?></span><span class="badge bg-info">Today: <?= $today_bookings ?></span></div> </div> <div class="row g-3 mb-4"> <div class="col-md-3"><div class="stat-card"><div class="stat-icon orange"><i class="bi bi-calendar-check"></i></div><div><div class="stat-number"><?= $today_bookings ?></div><div class="stat-label">Today's Bookings</div></div></div></div> <div class="col-md-3"><div class="stat-card"><div class="stat-icon navy"><i class="bi bi-clock"></i></div><div><div class="stat-number"><?= $pending_count ?></div><div class="stat-label">Pending Requests</div></div></div></div> <div class="col-md-3"><div class="stat-card"><div class="stat-icon green"><i class="bi bi-currency-dollar"></i></div><div><div class="stat-number"><?= formatPrice($t_revenue) ?></div><div class="stat-label">Today's Revenue</div></div></div></div> <div class="col-md-3"><div class="stat-card"><div class="stat-icon blue"><i class="bi bi-graph-up"></i></div><div><div class="stat-number"><?= formatPrice($total_revenue) ?></div><div class="stat-label">Total Revenue</div></div></div></div> </div> <div class="row g-4"> <div class="col-lg-7"> <div class="premium-card p-4"> <h5 class="fw-bold mb-3"><i class="bi bi-calendar-event text-warning me-2"></i>Upcoming Events</h5> <div class="table-responsive"><table class="table table-hover"> <thead><tr><th>Booking</th><th>Customer</th><th>Package</th><th>Date</th><th>Status</th></tr></thead> <tbody><?php while($u = $upcoming->fetch_assoc()): ?> <tr><td><a href="booking-details.php?id=<?= $u['id'] ?>" class="fw-bold text-decoration-none"><?= $u['booking_id'] ?></a></td><td><?= htmlspecialchars($u['customer_name']) ?></td><td><?= $u['pname'] ?></td><td><?= date('d M Y', strtotime($u['event_date'])) ?></td><td><?= getStatusBadge($u['status']) ?></td></tr> <?php endwhile; ?></tbody> </table></div> </div> </div> <div class="col-lg-5"> <div class="premium-card p-4"> <h5 class="fw-bold mb-3"><i class="bi bi-people text-warning me-2"></i>Recent Customers</h5> <div class="table-responsive"><table class="table table-hover"> <thead><tr><th>Name</th><th>Email</th><th>Joined</th></tr></thead> <tbody><?php while($rc = $recent_customers->fetch_assoc()): ?> <tr><td><?= htmlspecialchars($rc['name']) ?></td><td><?= $rc['email'] ?></td><td><small><?= timeAgo($rc['created_at']) ?></small></td></tr> <?php endwhile; ?></tbody> </table></div> </div> <div class="premium-card p-4 mt-4"> <h5 class="fw-bold mb-3"><i class="bi bi-graph-up text-warning me-2"></i>Monthly Revenue</h5> <canvas id="revenueChart" height="200"></canvas> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> <script> var ctx = document.getElementById('revenueChart').getContext('2d'); new Chart(ctx, { type: 'line', data: { labels: [<?php $mr = $monthly_revenue->fetch_all(MYSQLI_ASSOC); foreach($mr as $m){echo "'{$m['mon']}',";} ?>], datasets: [{ label: 'Revenue (<?= getSetting("currency")?:'LKR' ?>)', data: [<?php foreach($mr as $m){echo "{$m['rev']},";} ?>], borderColor: '#FF7A00', backgroundColor: 'rgba(255,122,0,0.1)', fill: true, tension: 0.4 }] }, options: { responsive: true, plugins: { legend: { display: false } }, scales: { y: { beginAtZero: true } } } }); </script> <?php require_once 'includes/footer.php'; ?>
Save Changes
Cancel
Create New File
Create New Folder