114 lines
4.2 KiB
PHP
114 lines
4.2 KiB
PHP
<?php
|
|
require_once __DIR__ . '/includes/header.php';
|
|
require_once 'db/config.php';
|
|
|
|
if (!isset($_SESSION['user_id'])) {
|
|
header('Location: login.php');
|
|
exit;
|
|
}
|
|
|
|
$dealer_id = $_SESSION['dealer_id'];
|
|
|
|
try {
|
|
$pdo = db();
|
|
|
|
// Fetch pending service requests
|
|
$stmt_pending_requests = $pdo->prepare("SELECT COUNT(*) FROM service_requests WHERE dealer_id = ? AND status = 'pending'");
|
|
$stmt_pending_requests->execute([$dealer_id]);
|
|
$pending_requests_count = $stmt_pending_requests->fetchColumn();
|
|
|
|
// Fetch unactivated warranties
|
|
$stmt_unactivated_warranties = $pdo->prepare("SELECT COUNT(*) FROM sold_serials WHERE dealer_id = ? AND is_activated = FALSE");
|
|
$stmt_unactivated_warranties->execute([$dealer_id]);
|
|
$unactivated_warranties_count = $stmt_unactivated_warranties->fetchColumn();
|
|
|
|
// Fetch total products
|
|
$stmt_products = $pdo->query("SELECT COUNT(*) FROM products");
|
|
$products_count = $stmt_products->fetchColumn();
|
|
|
|
} catch (PDOException $e) {
|
|
// For simplicity, we'll just display 0 if there's a db error.
|
|
$pending_requests_count = 0;
|
|
$unactivated_warranties_count = 0;
|
|
$products_count = 0;
|
|
$open_invoices_count = 0;
|
|
$total_due = 0;
|
|
}
|
|
|
|
// Fetch open invoices summary
|
|
try {
|
|
$user_id = $_SESSION['user_id'];
|
|
$is_admin = $_SESSION['is_admin'] ?? false;
|
|
|
|
$sql = "SELECT COUNT(*) as count, SUM(total_amount) as total FROM invoices WHERE status = 'open'";
|
|
$params = [];
|
|
|
|
if (!$is_admin) {
|
|
$sql .= " AND dealer_id = ?";
|
|
$params[] = $user_id;
|
|
}
|
|
|
|
$stmt_invoices = $pdo->prepare($sql);
|
|
$stmt_invoices->execute($params);
|
|
$invoices_summary = $stmt_invoices->fetch();
|
|
$open_invoices_count = $invoices_summary['count'] ?? 0;
|
|
$total_due = $invoices_summary['total'] ?? 0;
|
|
} catch (PDOException $e) {
|
|
$open_invoices_count = 0;
|
|
$total_due = 0;
|
|
}
|
|
|
|
?>
|
|
|
|
<div class="row mb-4">
|
|
<div class="col-md-4">
|
|
<div class="card text-white bg-warning">
|
|
<div class="card-body">
|
|
<h5 class="card-title"><i class="bi bi-clock-history"></i> Pending Service Requests</h5>
|
|
<p class="card-text display-4"><?php echo $pending_requests_count; ?></p>
|
|
<a href="service_requests.php" class="text-white">View Details <i class="bi bi-arrow-right-circle"></i></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card text-white bg-info">
|
|
<div class="card-body">
|
|
<h5 class="card-title"><i class="bi bi-shield-exclamation"></i> Unactivated Warranties</h5>
|
|
<p class="card-text display-4"><?php echo $unactivated_warranties_count; ?></p>
|
|
<a href="warranty_registration.php" class="text-white">Register Now <i class="bi bi-arrow-right-circle"></i></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card text-white bg-success">
|
|
<div class="card-body">
|
|
<h5 class="card-title"><i class="bi bi-box-seam"></i> Total Products</h5>
|
|
<p class="card-text display-4"><?php echo $products_count; ?></p>
|
|
<a href="products.php" class="text-white">Browse Catalog <i class="bi bi-arrow-right-circle"></i></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card text-white bg-danger">
|
|
<div class="card-body">
|
|
<h5 class="card-title"><i class="bi bi-file-earmark-text"></i> Open Invoices</h5>
|
|
<p class="card-text display-4"><?php echo $open_invoices_count; ?></p>
|
|
<p class="card-text">Total Due: $<?php echo number_format($total_due, 2); ?></p>
|
|
<a href="invoices.php" class="text-white">View Invoices <i class="bi bi-arrow-right-circle"></i></a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="p-5 mb-4 bg-light rounded-3">
|
|
<div class="container-fluid py-5">
|
|
<h1 class="display-5 fw-bold">Sensa Core Dealer Portal</h1>
|
|
<p class="col-md-8 fs-4">Welcome to the central hub for sales, service, and finance operations. Manage your orders, register warranties, and track service requests all in one place.</p>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<?php
|
|
require_once 'includes/footer.php';
|
|
?>
|