query("SELECT COUNT(*) FROM mailbox WHERE type = 'inbound'")->fetchColumn(); $total_outbound = db()->query("SELECT COUNT(*) FROM mailbox WHERE type = 'outbound'")->fetchColumn(); // Fetch statuses for badge and count $statuses_data = db()->query("SELECT * FROM mailbox_statuses")->fetchAll(PDO::FETCH_UNIQUE); // For the "In Progress" stat card, we might need a specific status or just a sum of non-closed statuses. $in_progress_id = null; foreach ($statuses_data as $id => $s) { if ($s['name'] == 'in_progress') { $in_progress_id = $id; break; } } $in_progress_count = 0; if ($in_progress_id) { $stmt = db()->prepare("SELECT COUNT(*) FROM mailbox WHERE status_id = ?"); $stmt->execute([$in_progress_id]); $in_progress_count = $stmt->fetchColumn(); } // My Assignments $my_assignments = db()->prepare("SELECT m.*, s.name as status_name, s.color as status_color FROM mailbox m LEFT JOIN mailbox_statuses s ON m.status_id = s.id WHERE m.assigned_to = ? ORDER BY m.created_at DESC LIMIT 5"); $my_assignments->execute([$user_id]); $my_assignments = $my_assignments->fetchAll(); // Recent Mail (Global for Admin/Clerk, otherwise limited) $recent_mail_query = "SELECT m.*, s.name as status_name, s.color as status_color, u.full_name as assigned_to_name FROM mailbox m LEFT JOIN mailbox_statuses s ON m.status_id = s.id LEFT JOIN users u ON m.assigned_to = u.id"; if (!$is_admin && $_SESSION['user_role'] !== 'clerk') { $recent_mail_query .= " WHERE m.assigned_to = ? OR m.created_by = ?"; $recent_stmt = db()->prepare($recent_mail_query . " ORDER BY m.created_at DESC LIMIT 10"); $recent_stmt->execute([$user_id, $user_id]); } else { $recent_stmt = db()->prepare($recent_mail_query . " ORDER BY m.created_at DESC LIMIT 10"); $recent_stmt->execute(); } $recent_mail = $recent_stmt->fetchAll(); function getStatusBadge($mail) { $status_name = $mail['status_name'] ?? 'غير معروف'; $status_color = $mail['status_color'] ?? '#6c757d'; // Translation for default statuses $display_name = $status_name; if ($status_name == 'received') $display_name = 'تم الاستلام'; if ($status_name == 'in_progress') $display_name = 'قيد المعالجة'; if ($status_name == 'closed') $display_name = 'مكتمل'; return '' . htmlspecialchars($display_name) . ''; } ?>

لوحة التحكم

query("SELECT COUNT(*) FROM mailbox WHERE due_date < CURDATE() AND status != 'closed'")->fetchColumn(); if ($overdue_count > 0): ?>
هناك مهام متأخرة تتطلب انتباهك!
عرض التقرير
البريد الوارد

البريد الصادر

قيد المعالجة

المستخدمين

query("SELECT COUNT(*) FROM users")->fetchColumn() ?>

مهامي الحالية
رقم القيد الموضوع الموعد النهائي - الحالة
رقم القيد النوع الموضوع الموعد النهائي المرسل/المستلم المسؤول الحالة التاريخ
وارد صادر - غير معين
لا يوجد بريد مسجل حالياً