<?php
// pages/finance_panel.php
require_once __DIR__ . '/../includes/header.php';

// =========================================================
// 1. التحقق من الصلاحية
// =========================================================
if (!in_array($_SESSION['role'], ['accountant', 'super_admin', 'ceo'])) {
    echo "<div class='container mt-5'><div class='alert alert-danger text-center'>⛔ عذراً، ليس لديك صلاحية للدخول إلى لوحة الإدارة المالية.</div></div>";
    require_once __DIR__ . '/../includes/footer.php';
    exit;
}

$user_id = $_SESSION['id'];

// =========================================================
// 2. جلب الإحصائيات (مع حماية ضد الأخطاء)
// =========================================================
$count_pending = 0;
$count_issued = 0;
$count_paid = 0;
$db_error = null;

try {
    // أ) طلبات بانتظار إصدار شيكات
    $stmt_pending = $pdo->query("SELECT COUNT(*) FROM requests WHERE payment_status = 'ready_for_cheque'");
    $count_pending = $stmt_pending->fetchColumn();

    // ب) شيكات تم إصدارها
    $stmt_issued = $pdo->query("SELECT COUNT(*) FROM requests WHERE payment_status = 'cheque_issued'");
    $count_issued = $stmt_issued->fetchColumn();

    // ج) معاملات مكتملة
    $stmt_paid = $pdo->query("SELECT COUNT(*) FROM requests WHERE payment_status = 'paid'");
    $count_paid = $stmt_paid->fetchColumn();

} catch (PDOException $e) {
    $db_error = $e->getMessage();
    error_log("Finance Panel Stats Error: " . $e->getMessage());
}
?>

<div class="container mt-4">
    
    <div class="row mb-4">
        <div class="col-md-8">
            <h3 class="text-success fw-bold"><i class="bi bi-cash-coin"></i> لوحة الإدارة المالية</h3>
            <p class="text-muted">متابعة إصدار الشيكات والدفعات للموردين</p>
        </div>
        <div class="col-md-4 text-end">
            <a href="reports.php" class="btn btn-outline-primary shadow-sm"><i class="bi bi-printer"></i> تقارير مالية</a>
        </div>
    </div>

    <?php if ($db_error && $_SESSION['role'] == 'super_admin'): ?>
        <div class="alert alert-warning">
            <strong>تنبيه للمطور:</strong> هناك خطأ في استعلام الإحصائيات: <br>
            <code><?php echo $db_error; ?></code>
        </div>
    <?php endif; ?>

    <div class="row g-4 mb-5">
        <div class="col-md-4">
            <div class="card border-0 shadow-sm h-100 bg-warning bg-opacity-10 border-start border-4 border-warning">
                <div class="card-body">
                    <div class="d-flex justify-content-between align-items-center">
                        <div>
                            <h6 class="text-dark mb-1">بانتظار إصدار شيك</h6>
                            <h2 class="fw-bold mb-0 text-dark"><?php echo $count_pending; ?></h2>
                        </div>
                        <i class="bi bi-hourglass-split fs-1 text-warning"></i>
                    </div>
                </div>
            </div>
        </div>

        <div class="col-md-4">
            <div class="card border-0 shadow-sm h-100 bg-info bg-opacity-10 border-start border-4 border-info">
                <div class="card-body">
                    <div class="d-flex justify-content-between align-items-center">
                        <div>
                            <h6 class="text-dark mb-1">شيكات صادرة (جارية)</h6>
                            <h2 class="fw-bold mb-0 text-dark"><?php echo $count_issued; ?></h2>
                        </div>
                        <i class="bi bi-check-circle fs-1 text-info"></i>
                    </div>
                </div>
            </div>
        </div>

        <div class="col-md-4">
            <div class="card border-0 shadow-sm h-100 bg-success bg-opacity-10 border-start border-4 border-success">
                <div class="card-body">
                    <div class="d-flex justify-content-between align-items-center">
                        <div>
                            <h6 class="text-dark mb-1">مدفوعات مكتملة</h6>
                            <h2 class="fw-bold mb-0 text-dark"><?php echo $count_paid; ?></h2>
                        </div>
                        <i class="bi bi-cash-stack fs-1 text-success"></i>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class="card shadow border-0 mb-5">
        <div class="card-header bg-warning text-dark d-flex justify-content-between align-items-center py-3">
            <h5 class="mb-0"><i class="bi bi-exclamation-circle-fill"></i> طلبات بانتظار إصدار شيكات</h5>
            <?php if($count_pending > 0): ?>
                <span class="badge bg-dark rounded-pill"><?php echo $count_pending; ?> طلب</span>
            <?php endif; ?>
        </div>
        <div class="card-body p-0">
            <div class="table-responsive">
                <table class="table table-hover align-middle mb-0 text-center">
                    <thead class="table-light">
                        <tr>
                            <th>رقم الطلب</th>
                            <th>المورد (المستفيد)</th>
                            <th>المبلغ الإجمالي</th>
                            <th>البيان / القسم</th>
                            <th>تاريخ الاعتماد</th>
                            <th>الإجراء</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                        try {
                            // ✅ التعديل هنا: تم تصحيح الـ Join ليربط مع employee_details بدلاً من users مباشرة
                            $sql = "SELECT r.*, s.name as supplier_name, d.name as dept_name 
                                    FROM requests r 
                                    LEFT JOIN suppliers s ON r.supplier_id = s.id 
                                    LEFT JOIN users u ON r.user_id = u.id
                                    LEFT JOIN employee_details ed ON u.id = ed.user_id 
                                    LEFT JOIN departments d ON ed.department_id = d.id
                                    WHERE r.payment_status = 'ready_for_cheque' 
                                    ORDER BY r.updated_at ASC";
                            
                            $stmt = $pdo->query($sql);
                            
                            if ($stmt->rowCount() > 0):
                                while ($row = $stmt->fetch()):
                                    // إذا لم يوجد قسم (مثل مستخدم خارجي)، نضع قيمة افتراضية
                                    $dept_display = $row['dept_name'] ?? 'غير محدد';
                        ?>
                        <tr>
                            <td class="fw-bold">#<?php echo $row['id']; ?></td>
                            <td class="text-primary fw-bold"><?php echo htmlspecialchars($row['supplier_name'] ?? 'غير محدد'); ?></td>
                            <td class="text-danger fw-bold"><?php echo number_format($row['total_amount'], 2); ?> AED</td>
                            <td><?php echo htmlspecialchars($row['subject']); ?> <br> <small class="text-muted">(<?php echo $dept_display; ?>)</small></td>
                            <td><?php echo date('Y-m-d', strtotime($row['manager_approval_at'])); ?></td>
                            <td>
                                <a href="view_request.php?id=<?php echo $row['id']; ?>" class="btn btn-sm btn-success px-3 shadow-sm">
                                    <i class="bi bi-pen"></i> إصدار شيك
                                </a>
                            </td>
                        </tr>
                        <?php endwhile; else: ?>
                        <tr>
                            <td colspan="6" class="py-5 text-muted">
                                <i class="bi bi-check2-all fs-1 d-block mb-3"></i>
                                لا توجد طلبات جديدة بانتظار الشيكات حالياً.
                            </td>
                        </tr>
                        <?php endif; 
                        } catch (PDOException $e) {
                            echo "<tr><td colspan='6' class='text-danger py-3'>خطأ في عرض الجدول: " . $e->getMessage() . "</td></tr>";
                        }
                        ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

    <div class="card shadow-sm border-0">
        <div class="card-header bg-white py-3">
            <h5 class="mb-0 text-secondary"><i class="bi bi-clock-history"></i> آخر الشيكات الصادرة</h5>
        </div>
        <div class="card-body p-0">
            <div class="table-responsive">
                <table class="table table-hover align-middle mb-0 text-center">
                    <thead class="table-light">
                        <tr>
                            <th>رقم الطلب</th>
                            <th>رقم الشيك</th>
                            <th>المورد</th>
                            <th>المبلغ</th>
                            <th>الحالة</th>
                            <th>التفاصيل</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php
                        try {
                            $sql = "SELECT r.*, s.name as supplier_name 
                                    FROM requests r 
                                    LEFT JOIN suppliers s ON r.supplier_id = s.id 
                                    WHERE r.payment_status IN ('cheque_issued', 'paid') 
                                    ORDER BY r.updated_at DESC LIMIT 10";
                            $stmt = $pdo->query($sql);
                            
                            if ($stmt->rowCount() > 0):
                                while ($row = $stmt->fetch()):
                                    $status_badge = ($row['payment_status'] == 'paid') 
                                        ? '<span class="badge bg-success">مدفوع ومغلق</span>' 
                                        : '<span class="badge bg-info text-dark">شيك صادر (جاري التسليم)</span>';
                        ?>
                        <tr>
                            <td>#<?php echo $row['id']; ?></td>
                            <td class="font-monospace text-primary"><?php echo htmlspecialchars($row['cheque_number']); ?></td>
                            <td><?php echo htmlspecialchars($row['supplier_name'] ?? '-'); ?></td>
                            <td><?php echo number_format($row['total_amount'], 2); ?></td>
                            <td><?php echo $status_badge; ?></td>
                            <td>
                                <a href="view_request.php?id=<?php echo $row['id']; ?>" class="btn btn-sm btn-outline-secondary">
                                    عرض
                                </a>
                            </td>
                        </tr>
                        <?php endwhile; else: ?>
                        <tr>
                            <td colspan="6" class="py-4 text-muted">لا يوجد سجل شيكات سابقة للعرض.</td>
                        </tr>
                        <?php endif; 
                        } catch (PDOException $e) {
                             echo "<tr><td colspan='6' class='text-muted'>لا يمكن عرض السجل حالياً.</td></tr>";
                        }
                        ?>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

</div>

<?php require_once __DIR__ . '/../includes/footer.php'; ?>