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

// التحقق من الصلاحية
if (!in_array($_SESSION['role'], ['super_admin', 'purchasing'])) {
    echo "<div class='alert alert-danger text-center mt-5'>عذراً، هذه الصفحة مخصصة لمسؤول المشتريات فقط.</div>";
    require_once __DIR__ . '/../includes/footer.php';
    exit;
}

$msg = "";
$user_id = $_SESSION['id'];

// --- معالجة الإجراءات ---
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    
    // أ) تحويل الطلب للمدير التنفيذي (سواء كان إداري أو رياضي قادم من المدير)
    if (isset($_POST['action']) && $_POST['action'] == 'forward_to_ceo') {
        $req_id = $_POST['req_id'];
        $notes = $_POST['purchasing_notes'];
        
        // التحديث: الحالة تصبح ready_for_ceo
        $sql = "UPDATE requests SET status = 'ready_for_ceo', purchasing_notes = ?, purchasing_id = ?, updated_at = NOW() WHERE id = ?";
        $stmt = $pdo->prepare($sql);
        $stmt->execute([$notes, $user_id, $req_id]);
        
        // Audit Log
        $log = "INSERT INTO audit_logs (user_id, request_id, action_type, details, ip_address) VALUES (?, ?, 'update', ?, ?)";
        $pdo->prepare($log)->execute([$user_id, $req_id, "تم التدقيق المالي وتحويل الطلب للمدير. ملاحظات: $notes", $_SERVER['REMOTE_ADDR']]);
        
        // إشعار للمدير التنفيذي
        require_once __DIR__ . '/../includes/functions.php';
        require_once __DIR__ . '/../includes/mail_function.php';
        
        sendNotification($pdo, 'ceo', "💰 طلب #$req_id (مدقق مالياً) بانتظار اعتمادك", "view_request.php?id=$req_id");
        
        // إرسال إيميل للمدير
        $ceo = $pdo->query("SELECT email FROM users WHERE role = 'ceo' LIMIT 1")->fetch();
        if ($ceo) {
            sendEmail($ceo['email'], "طلب مدقق مالياً #$req_id", "قام مسؤول المشتريات بمراجعة الطلب رقم #$req_id ورفعه إليك للاعتماد.");
        }

        $msg = "<div class='alert alert-success'>تم حفظ الملاحظات وتحويل الطلب #$req_id للمدير التنفيذي بنجاح.</div>";
    }

    // ب) رفع الفاتورة (إغلاق الطلب)
    if (isset($_POST['complete_request_id'])) {
        $req_id = $_POST['complete_request_id'];
        
        if (isset($_FILES['invoice_file']) && $_FILES['invoice_file']['error'] == 0) {
            $allowed = ['pdf', 'jpg', 'jpeg', 'png'];
            $filename = $_FILES['invoice_file']['name'];
            $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION));

            if (in_array($ext, $allowed)) {
                $new_filename = "invoice_" . $req_id . "_" . time() . "." . $ext;
                $upload_dir = __DIR__ . '/../assets/uploads/invoices/';
                if (!is_dir($upload_dir)) mkdir($upload_dir, 0777, true);
                move_uploaded_file($_FILES['invoice_file']['tmp_name'], $upload_dir . $new_filename);

                $db_path = 'assets/uploads/invoices/' . $new_filename;
                $pdo->prepare("INSERT INTO attachments (request_id, uploaded_by_user_id, file_path, file_type) VALUES (?, ?, ?, 'invoice')")->execute([$req_id, $user_id, $db_path]);
                
                $pdo->prepare("UPDATE requests SET status = 'completed', updated_at = NOW() WHERE id = ?")->execute([$req_id]);
                
                $log = "INSERT INTO audit_logs (user_id, request_id, action_type, details, ip_address) VALUES (?, ?, 'upload_invoice', 'تم رفع الفاتورة وإغلاق الطلب', ?)";
                $pdo->prepare($log)->execute([$user_id, $req_id, $_SERVER['REMOTE_ADDR']]);

                // إشعار صاحب الطلب
                require_once __DIR__ . '/../includes/functions.php';
                $q_owner = $pdo->query("SELECT user_id FROM requests WHERE id = $req_id")->fetchColumn();
                sendNotification($pdo, $q_owner, "🏁 تم تنفيذ وإغلاق طلبك رقم #$req_id", "view_request.php?id=$req_id");

                $msg = "<div class='alert alert-success'>تم إغلاق الطلب #$req_id وأرشفة الفاتورة بنجاح.</div>";
            }
        }
    }
}

// =================================================================================
// 1. جلب الطلبات الواردة (Incoming Requests) - التعديل الجوهري هنا
// =================================================================================
// المنطق الجديد: نجلب الطلبات التي حالتها (pending_purchasing) القادمة من المدراء الرياضيين
// أو الطلبات التي حالتها (pending) ونوعها (admin) القادمة مباشرة من الموظفين
$pending_sql = "SELECT r.*, u.full_name_ar 
                FROM requests r 
                JOIN users u ON r.user_id = u.id 
                WHERE r.status = 'pending_purchasing' 
                OR (r.request_type = 'admin' AND r.status = 'pending')
                ORDER BY r.created_at ASC";
$pending_requests = $pdo->query($pending_sql)->fetchAll();

// 2. طلبات معتمدة للتنفيذ (Approved) -> تحتاج دفع ورفع فاتورة
$approved_sql = "SELECT r.*, u.full_name_ar FROM requests r JOIN users u ON r.user_id = u.id WHERE r.status = 'approved' ORDER BY r.updated_at DESC";
$approved_requests = $pdo->query($approved_sql)->fetchAll();

// 3. سجل المتابعة
$all_requests_sql = "SELECT r.*, u.full_name_ar FROM requests r JOIN users u ON r.user_id = u.id ORDER BY r.created_at DESC LIMIT 20";
$all_requests = $pdo->query($all_requests_sql)->fetchAll();
?>

<div class="row mb-4">
    <div class="col-12"><h3 class="text-primary fw-bold"><i class="bi bi-currency-dollar"></i> لوحة المشتريات والتدقيق المالي</h3></div>
</div>
<?php echo $msg; ?>

<div class="card shadow border-0 mb-5 border-start border-warning border-5">
    <div class="card-header bg-white py-3">
        <h5 class="mb-0 fw-bold text-warning"><i class="bi bi-exclamation-circle"></i> 1. الوارد: طلبات بانتظار التدقيق المالي</h5>
        <small class="text-muted">طلبات إدارية جديدة + طلبات فرق رياضية معتمدة من مدراء الإدارات</small>
    </div>
    <div class="card-body p-0">
        <table class="table table-hover mb-0 align-middle">
            <thead class="table-light"><tr><th>#</th><th>مقدم الطلب</th><th>النوع</th><th>البيان</th><th>الإجراء المطلوب</th></tr></thead>
            <tbody>
                <?php foreach ($pending_requests as $req): 
                    $type_label = ($req['request_type'] == 'sports') ? '<span class="badge bg-success">رياضي</span>' : '<span class="badge bg-primary">إداري</span>';
                    $desc = ($req['request_type'] == 'sports') ? $req['sports_team_name'] : $req['admin_department_name'];
                ?>
                <tr>
                    <td>#<?php echo $req['id']; ?></td>
                    <td><?php echo $req['full_name_ar']; ?></td>
                    <td><?php echo $type_label; ?></td>
                    <td><?php echo $desc; ?></td>
                    <td>
                        <form method="POST" class="d-flex gap-2">
                            <input type="hidden" name="req_id" value="<?php echo $req['id']; ?>">
                            <input type="text" name="purchasing_notes" class="form-control form-control-sm" placeholder="تأكيد توفر الميزانية..." required>
                            <a href="view_request.php?id=<?php echo $req['id']; ?>" target="_blank" class="btn btn-sm btn-outline-primary"><i class="bi bi-eye"></i></a>
                            <button type="submit" name="action" value="forward_to_ceo" class="btn btn-success btn-sm text-nowrap">رفع للمدير</button>
                        </form>
                    </td>
                </tr>
                <?php endforeach; ?>
                <?php if(empty($pending_requests)) echo "<tr><td colspan='5' class='text-center py-3 text-muted'>لا توجد طلبات واردة حالياً</td></tr>"; ?>
            </tbody>
        </table>
    </div>
</div>

<div class="card shadow border-0 mb-5 border-start border-success border-5">
    <div class="card-header bg-white py-3"><h5 class="mb-0 fw-bold text-success"><i class="bi bi-wallet2"></i> 2. التنفيذ المالي (طلبات معتمدة من المدير)</h5></div>
    <div class="card-body p-0">
        <table class="table table-hover mb-0 align-middle">
            <thead class="table-light"><tr><th>#</th><th>مقدم الطلب</th><th>النوع</th><th>التفاصيل</th><th>الإجراء</th></tr></thead>
            <tbody>
                <?php foreach ($approved_requests as $req): 
                    $type = ($req['request_type'] == 'sports') ? '<span class="badge bg-success">رياضي</span>' : '<span class="badge bg-primary">إداري</span>';
                    $desc = ($req['request_type'] == 'sports') ? $req['sports_team_name'] : $req['admin_department_name'];
                ?>
                <tr>
                    <td>#<?php echo $req['id']; ?></td>
                    <td><?php echo $req['full_name_ar']; ?></td>
                    <td><?php echo $type; ?></td>
                    <td><?php echo $desc; ?></td>
                    <td>
                        <button type="button" class="btn btn-primary btn-sm" data-bs-toggle="modal" data-bs-target="#uploadModal<?php echo $req['id']; ?>"><i class="bi bi-upload"></i> تنفيذ</button>
                        <a href="view_request.php?id=<?php echo $req['id']; ?>" target="_blank" class="btn btn-sm btn-outline-secondary"><i class="bi bi-eye"></i></a>
                        <div class="modal fade" id="uploadModal<?php echo $req['id']; ?>" tabindex="-1"><div class="modal-dialog"><div class="modal-content"><form method="POST" enctype="multipart/form-data"><div class="modal-header"><h5 class="modal-title">إغلاق الطلب #<?php echo $req['id']; ?></h5><button type="button" class="btn-close" data-bs-dismiss="modal"></button></div><div class="modal-body"><input type="hidden" name="complete_request_id" value="<?php echo $req['id']; ?>"><div class="mb-3"><label>نسخة الفاتورة:</label><input type="file" name="invoice_file" class="form-control" required></div></div><div class="modal-footer"><button type="submit" class="btn btn-success">حفظ وإغلاق</button></div></form></div></div></div>
                    </td>
                </tr>
                <?php endforeach; ?>
                <?php if(empty($approved_requests)) echo "<tr><td colspan='5' class='text-center py-3 text-muted'>لا توجد طلبات بانتظار التنفيذ</td></tr>"; ?>
            </tbody>
        </table>
    </div>
</div>

<div class="card shadow-sm border-0"><div class="card-header bg-light py-2" data-bs-toggle="collapse" data-bs-target="#allRequestsCollapse" style="cursor: pointer;"><h6 class="mb-0 text-secondary fw-bold d-flex justify-content-between"><span><i class="bi bi-list-columns"></i> سجل كافة الطلبات</span><i class="bi bi-chevron-down"></i></h6></div><div id="allRequestsCollapse" class="collapse show"><div class="card-body p-0"><table class="table table-sm table-striped mb-0" style="font-size: 0.9em;"><thead><tr><th>#</th><th>النوع</th><th>المقدم</th><th>الحالة</th><th>التاريخ</th><th></th></tr></thead><tbody><?php foreach ($all_requests as $req): $status_trans = match($req['status']) { 'pending' => 'قيد الانتظار', 'pending_manager' => 'عند مدير الإدارة', 'pending_purchasing' => 'عند المشتريات', 'ready_for_ceo' => 'عند المدير التنفيذي', 'approved' => 'معتمد', 'rejected' => 'مرفوض', 'completed' => 'مكتمل', default => $req['status'] }; ?><tr><td><?php echo $req['id']; ?></td><td><?php echo ($req['request_type'] == 'sports') ? 'رياضي' : 'إداري'; ?></td><td><?php echo $req['full_name_ar']; ?></td><td><span class="badge bg-secondary"><?php echo $status_trans; ?></span></td><td><?php echo date('Y-m-d', strtotime($req['created_at'])); ?></td><td><a href="view_request.php?id=<?php echo $req['id']; ?>" target="_blank"><i class="bi bi-box-arrow-up-right"></i></a></td></tr><?php endforeach; ?></tbody></table></div></div></div>

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