38787-vm/index.php
Flatlogic Bot 2aceb3f714 12
2026-02-26 14:34:12 +00:00

135 lines
6.0 KiB
PHP

<?php
require_once 'layout.php';
require_once 'db/config.php';
$pdo = db();
// Fetch summary stats (placeholders for now)
$memberCount = $pdo->query('SELECT COUNT(*) FROM members')->fetchColumn();
$activeLoans = 0; // Placeholder
$totalDeposits = 0; // Placeholder
$dailyTransactions = 0; // Placeholder
render_header('Dashboard - MicroFinance Pro');
?>
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center pt-3 pb-2 mb-3 border-bottom">
<h1 class="h4 font-weight-bold">Branch Manager Dashboard - Demo SACCO</h1>
<div class="btn-toolbar mb-2 mb-md-0">
<div class="btn-group me-2">
<button type="button" class="btn btn-sm btn-outline-secondary">Share</button>
<button type="button" class="btn btn-sm btn-outline-secondary">Export</button>
</div>
<button type="button" class="btn btn-sm btn-outline-primary dropdown-toggle">
<i class="bi bi-calendar3 me-1"></i> This week
</button>
</div>
</div>
<div class="row">
<div class="col-md-3 mb-4">
<div class="card stat-card border-0 border-start border-primary border-4">
<div class="stat-label">Total Members</div>
<div class="stat-value"><?= number_format($memberCount) ?></div>
<div class="text-success small"><i class="bi bi-arrow-up-right me-1"></i> 12% increase</div>
</div>
</div>
<div class="col-md-3 mb-4">
<div class="card stat-card border-0 border-start border-info border-4">
<div class="stat-label">Active Loans</div>
<div class="stat-value"><?= number_format($activeLoans) ?></div>
<div class="text-muted small">0 this month</div>
</div>
</div>
<div class="col-md-3 mb-4">
<div class="card stat-card border-0 border-start border-success border-4">
<div class="stat-label">Total Deposits</div>
<div class="stat-value">KES <?= number_format($totalDeposits, 2) ?></div>
<div class="text-success small"><i class="bi bi-arrow-up-right me-1"></i> 5% growth</div>
</div>
</div>
<div class="col-md-3 mb-4">
<div class="card stat-card border-0 border-start border-warning border-4">
<div class="stat-label">Daily Transactions</div>
<div class="stat-value"><?= number_format($dailyTransactions) ?></div>
<div class="text-muted small">Updated just now</div>
</div>
</div>
</div>
<div class="row mt-4">
<div class="col-md-8">
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<span>Recent Member Registrations</span>
<a href="members.php" class="btn btn-sm btn-link p-0 text-decoration-none">View All</a>
</div>
<div class="card-body p-0">
<div class="table-responsive">
<table class="table table-hover mb-0">
<thead>
<tr>
<th>#</th>
<th>Name</th>
<th>Member No.</th>
<th>Joined</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<?php
$recentMembers = $pdo->query('SELECT * FROM members ORDER BY created_at DESC LIMIT 5')->fetchAll();
if (empty($recentMembers)):
?>
<tr>
<td colspan="5" class="text-center py-4 text-muted">No members registered yet.</td>
</tr>
<?php else: foreach ($recentMembers as $m): ?>
<tr>
<td><?= htmlspecialchars($m['id']) ?></td>
<td><?= htmlspecialchars($m['first_name'] . ' ' . $m['last_name']) ?></td>
<td><?= htmlspecialchars($m['member_number']) ?></td>
<td><?= date('Y-m-d', strtotime($m['created_at'])) ?></td>
<td><span class="badge bg-success rounded-pill px-2" style="font-size: 0.7rem;">Active</span></td>
</tr>
<?php endforeach; endif; ?>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card">
<div class="card-header">Quick Actions</div>
<div class="card-body">
<div class="d-grid gap-2">
<a href="members.php?action=add" class="btn btn-primary text-start">
<i class="bi bi-person-plus me-2"></i> Register New Member
</a>
<button class="btn btn-outline-secondary text-start">
<i class="bi bi-cash-stack me-2"></i> New Deposit
</button>
<button class="btn btn-outline-secondary text-start">
<i class="bi bi-file-earmark-plus me-2"></i> New Loan Application
</button>
<button class="btn btn-outline-secondary text-start">
<i class="bi bi-printer me-2"></i> Generate Statement
</button>
</div>
</div>
</div>
<div class="card mt-4">
<div class="card-header">SASRA Compliance Notice</div>
<div class="card-body">
<p class="small text-muted mb-0">
<i class="bi bi-info-circle me-1 text-info"></i> Your next monthly SASRA report is due in 12 days. Ensure all reconciliations are complete.
</p>
</div>
</div>
</div>
</div>
<?php
render_footer();
?>