403Webshell
Server IP : 198.54.126.135  /  Your IP : 216.73.216.217
Web Server : Apache
System : Linux host11.registrar-servers.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : linearpo ( 12988)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : ON |  Sudo : OFF |  Pkexec : OFF
Directory :  /home/linearpo/app.linear-pos.com/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/linearpo/app.linear-pos.com/dashboard.php
<?php
// dashboard.php - Main Dashboard
require_once 'config.php';
checkAuth();

$float = getCurrentFloat($conn, $_SESSION['user_id']);
$stats = getTodayStats($conn, $_SESSION['user_id']);

$page_title = "Dashboard";
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo $page_title; ?> - M-Pesa Agent System</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.0/font/bootstrap-icons.css" rel="stylesheet">
    <style>
        :root {
            --mpesa-green: #00a650;
            --mpesa-dark: #000000;
        }
        
        body {
            background-color: #f8f9fa;
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
        }
        
        .navbar {
            background: linear-gradient(135deg, var(--mpesa-green) 0%, #008f43 100%);
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        
        .sidebar {
            min-height: calc(100vh - 56px);
            background: white;
            box-shadow: 2px 0 10px rgba(0,0,0,0.1);
        }
        
        .sidebar .nav-link {
            color: #333;
            padding: 15px 20px;
            border-radius: 0;
            transition: all 0.3s;
        }
        
        .sidebar .nav-link:hover,
        .sidebar .nav-link.active {
            background-color: rgba(0, 166, 80, 0.1);
            color: var(--mpesa-green);
            border-right: 3px solid var(--mpesa-green);
        }
        
        .sidebar .nav-link i {
            margin-right: 10px;
            width: 20px;
        }
        
        .stat-card {
            background: white;
            border-radius: 15px;
            padding: 25px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.08);
            transition: transform 0.3s;
            border-left: 5px solid var(--mpesa-green);
        }
        
        .stat-card:hover {
            transform: translateY(-5px);
        }
        
        .stat-card.cash {
            border-left-color: #ffc107;
        }
        
        .stat-card.digital {
            border-left-color: #17a2b8;
        }
        
        .stat-card.withdrawal {
            border-left-color: #dc3545;
        }
        
        .stat-icon {
            width: 60px;
            height: 60px;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            margin-bottom: 15px;
        }
        
        .stat-value {
            font-size: 2rem;
            font-weight: 700;
            color: #333;
        }
        
        .stat-label {
            color: #666;
            font-size: 0.9rem;
            text-transform: uppercase;
            letter-spacing: 1px;
        }
        
        .quick-actions {
            background: white;
            border-radius: 15px;
            padding: 25px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.08);
        }
        
        .action-btn {
            padding: 20px;
            border-radius: 12px;
            border: 2px dashed #ddd;
            background: transparent;
            transition: all 0.3s;
            text-decoration: none;
            color: #333;
            display: block;
            text-align: center;
        }
        
        .action-btn:hover {
            border-color: var(--mpesa-green);
            background: rgba(0, 166, 80, 0.05);
            color: var(--mpesa-green);
        }
        
        .action-btn i {
            font-size: 2rem;
            margin-bottom: 10px;
            display: block;
        }
        
        .recent-transactions {
            background: white;
            border-radius: 15px;
            padding: 25px;
            box-shadow: 0 5px 15px rgba(0,0,0,0.08);
        }
        
        .badge-deposit {
            background-color: rgba(0, 166, 80, 0.1);
            color: var(--mpesa-green);
        }
        
        .badge-withdrawal {
            background-color: rgba(220, 53, 69, 0.1);
            color: #dc3545;
        }
    </style>
</head>
<body>
    <nav class="navbar navbar-dark">
        <div class="container-fluid">
            <a class="navbar-brand" href="#">
                <i class="bi bi-phone-fill me-2"></i>
                <strong>M-Pesa Agent</strong> System
            </a>
            <div class="d-flex align-items-center text-white">
                <span class="me-3"><i class="bi bi-person-circle me-1"></i> <?php echo $_SESSION['full_name']; ?></span>
                <a href="logout.php" class="btn btn-outline-light btn-sm">
                    <i class="bi bi-box-arrow-right"></i> Logout
                </a>
            </div>
        </div>
    </nav>

    <div class="container-fluid">
        <div class="row">
            <!-- Sidebar -->
            <div class="col-md-2 sidebar p-0">
                <nav class="nav flex-column">
                    <a class="nav-link active" href="dashboard.php">
                        <i class="bi bi-speedometer2"></i> Dashboard
                    </a>
                    <a class="nav-link" href="transactions.php">
                        <i class="bi bi-cash-coin"></i> Transactions
                    </a>
                    <a class="nav-link" href="float_management.php">
                        <i class="bi bi-wallet2"></i> Float Management
                    </a>
                    <a class="nav-link" href="reports.php">
                        <i class="bi bi-graph-up"></i> Reports
                    </a>
                    <?php if ($_SESSION['role'] == 'admin'): ?>
                    <a class="nav-link" href="users.php">
                        <i class="bi bi-people"></i> User Management
                    </a>
                    <?php endif; ?>
                    <a class="nav-link" href="change_password.php">
                        <i class="bi bi-key"></i> Change Password
                    </a>
                </nav>
            </div>

            <!-- Main Content -->
            <div class="col-md-10 p-4">
                <h2 class="mb-4"><i class="bi bi-speedometer2 me-2"></i>Dashboard Overview</h2>
                
                <!-- Stats Row -->
                <div class="row g-4 mb-4">
                    <div class="col-md-3">
                        <div class="stat-card cash">
                            <div class="stat-icon bg-warning bg-opacity-10 text-warning">
                                <i class="bi bi-cash-stack"></i>
                            </div>
                            <div class="stat-value">KES <?php echo number_format($float['cash_balance'], 2); ?></div>
                            <div class="stat-label">Cash Float Available</div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="stat-card digital">
                            <div class="stat-icon bg-info bg-opacity-10 text-info">
                                <i class="bi bi-phone"></i>
                            </div>
                            <div class="stat-value">KES <?php echo number_format($float['digital_balance'], 2); ?></div>
                            <div class="stat-label">Digital Float Available</div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="stat-card">
                            <div class="stat-icon bg-success bg-opacity-10 text-success">
                                <i class="bi bi-arrow-down-circle"></i>
                            </div>
                            <div class="stat-value">KES <?php echo number_format($stats['total_deposits'], 2); ?></div>
                            <div class="stat-label">Today's Deposits (<?php echo $stats['deposit_count']; ?>)</div>
                        </div>
                    </div>
                    <div class="col-md-3">
                        <div class="stat-card withdrawal">
                            <div class="stat-icon bg-danger bg-opacity-10 text-danger">
                                <i class="bi bi-arrow-up-circle"></i>
                            </div>
                            <div class="stat-value">KES <?php echo number_format($stats['total_withdrawals'], 2); ?></div>
                            <div class="stat-label">Today's Withdrawals (<?php echo $stats['withdrawal_count']; ?>)</div>
                        </div>
                    </div>
                </div>

                <div class="row">
                    <!-- Quick Actions -->
                    <div class="col-md-4 mb-4">
                        <div class="quick-actions">
                            <h5 class="mb-3"><i class="bi bi-lightning-charge me-2"></i>Quick Actions</h5>
                            <div class="d-grid gap-3">
                                <a href="transactions.php?type=deposit" class="action-btn">
                                    <i class="bi bi-arrow-down-circle text-success"></i>
                                    <strong>New Deposit</strong>
                                    <small class="d-block text-muted">Record customer cash deposit</small>
                                </a>
                                <a href="transactions.php?type=withdrawal" class="action-btn">
                                    <i class="bi bi-arrow-up-circle text-danger"></i>
                                    <strong>New Withdrawal</strong>
                                    <small class="d-block text-muted">Record customer withdrawal</small>
                                </a>
                                <a href="float_management.php" class="action-btn">
                                    <i class="bi bi-wallet2 text-primary"></i>
                                    <strong>Manage Float</strong>
                                    <small class="d-block text-muted">Add or convert float</small>
                                </a>
                            </div>
                        </div>
                    </div>

                    <!-- Recent Transactions -->
                    <div class="col-md-8">
                        <div class="recent-transactions">
                            <div class="d-flex justify-content-between align-items-center mb-3">
                                <h5 class="mb-0"><i class="bi bi-clock-history me-2"></i>Recent Transactions</h5>
                                <a href="reports.php" class="btn btn-sm btn-outline-primary">View All</a>
                            </div>
                            <div class="table-responsive">
                                <table class="table table-hover">
                                    <thead class="table-light">
                                        <tr>
                                            <th>Time</th>
                                            <th>Customer</th>
                                            <th>Type</th>
                                            <th>Amount</th>
                                            <th>Reference</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <?php
                                        $recent = $conn->query("SELECT * FROM transactions 
                                            WHERE user_id = {$_SESSION['user_id']} 
                                            ORDER BY created_at DESC LIMIT 10");
                                        
                                        if ($recent->num_rows > 0) {
                                            while ($row = $recent->fetch_assoc()) {
                                                $badge_class = $row['transaction_type'] == 'deposit' ? 'badge-deposit' : 'badge-withdrawal';
                                                $icon = $row['transaction_type'] == 'deposit' ? 'bi-arrow-down' : 'bi-arrow-up';
                                                echo "<tr>";
                                                echo "<td>" . date('H:i', strtotime($row['created_at'])) . "</td>";
                                                echo "<td>" . htmlspecialchars($row['customer_name']) . "<br><small class='text-muted'>" . $row['customer_phone'] . "</small></td>";
                                                echo "<td><span class='badge {$badge_class}'><i class='bi {$icon} me-1'></i>" . ucfirst($row['transaction_type']) . "</span></td>";
                                                echo "<td><strong>KES " . number_format($row['amount'], 2) . "</strong></td>";
                                                echo "<td><small class='text-muted'>" . ($row['reference_number'] ?: '-') . "</small></td>";
                                                echo "</tr>";
                                            }
                                        } else {
                                            echo "<tr><td colspan='5' class='text-center text-muted py-4'>No transactions yet today</td></tr>";
                                        }
                                        ?>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>

Youez - 2016 - github.com/yon3zu
LinuXploit