99 lines
4.0 KiB
PHP
99 lines
4.0 KiB
PHP
<div class="page-header">
|
|
<div>
|
|
<h1 class="page-title">Dashboard Overview</h1>
|
|
<p class="page-subtitle">Real-time summary of sales, orders, and inventory status</p>
|
|
</div>
|
|
<div>
|
|
<a href="/orders/create" class="btn btn-primary">+ Create New Order</a>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Metrics Cards -->
|
|
<div class="grid-stats">
|
|
<div class="stat-card">
|
|
<div>
|
|
<div class="stat-label">Total Revenue</div>
|
|
<div class="stat-value"><?= money($stats['total_revenue']) ?></div>
|
|
</div>
|
|
<div class="stat-icon" style="background: #ecfdf5; color: #10b981;">💰</div>
|
|
</div>
|
|
|
|
<div class="stat-card">
|
|
<div>
|
|
<div class="stat-label">Total Orders</div>
|
|
<div class="stat-value"><?= e($stats['total_orders']) ?></div>
|
|
</div>
|
|
<div class="stat-icon" style="background: #eef2ff; color: #4f46e5;">📑</div>
|
|
</div>
|
|
|
|
<div class="stat-card">
|
|
<div>
|
|
<div class="stat-label">Pending / Processing</div>
|
|
<div class="stat-value"><?= e($stats['pending_orders'] + $stats['processing_orders']) ?></div>
|
|
</div>
|
|
<div class="stat-icon" style="background: #fffbeb; color: #f59e0b;">⏳</div>
|
|
</div>
|
|
|
|
<div class="stat-card">
|
|
<div>
|
|
<div class="stat-label">Total Products</div>
|
|
<div class="stat-value"><?= e($stats['total_products']) ?></div>
|
|
</div>
|
|
<div class="stat-icon" style="background: #f0f9ff; color: #0ea5e9;">🏷️</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Recent Orders Section -->
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h2 class="card-title">Recent Orders</h2>
|
|
<a href="/orders" class="btn btn-secondary btn-sm">View All Orders →</a>
|
|
</div>
|
|
<div class="table-responsive">
|
|
<table class="table">
|
|
<thead>
|
|
<tr>
|
|
<th>Order #</th>
|
|
<th>Customer</th>
|
|
<th>Items</th>
|
|
<th>Total</th>
|
|
<th>Status</th>
|
|
<th>Date</th>
|
|
<th>Action</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php if (empty($recentOrders)): ?>
|
|
<tr>
|
|
<td colspan="7" style="text-align: center; color: var(--text-muted); padding: 2rem;">
|
|
No orders found yet. <a href="/orders/create" style="color: var(--primary); font-weight: 600;">Create the first order</a>.
|
|
</td>
|
|
</tr>
|
|
<?php else: ?>
|
|
<?php foreach ($recentOrders as $order): ?>
|
|
<tr>
|
|
<td>
|
|
<a href="/orders/<?= e($order['id']) ?>" style="font-weight: 600; color: var(--primary); text-decoration: none;">
|
|
<?= e($order['order_number']) ?>
|
|
</a>
|
|
</td>
|
|
<td><?= e($order['customer_name']) ?></td>
|
|
<td><?= e($order['item_count']) ?> item(s)</td>
|
|
<td style="font-weight: 600;"><?= money($order['total']) ?></td>
|
|
<td>
|
|
<span class="badge badge-<?= strtolower(e($order['status'])) ?>">
|
|
<?= e($order['status']) ?>
|
|
</span>
|
|
</td>
|
|
<td style="color: var(--text-muted); font-size: 0.85rem;"><?= date('M d, Y H:i', strtotime($order['created_at'])) ?></td>
|
|
<td>
|
|
<a href="/orders/<?= e($order['id']) ?>" class="btn btn-secondary btn-sm">View Invoice</a>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|