prepare("SELECT COUNT(*) FROM $table WHERE assigned_to = ?"); $stmt->execute([$user_id]); $my_total_assignments += $stmt->fetchColumn(); $stmt = db()->prepare("SELECT COUNT(*) FROM $table WHERE assigned_to = ? AND status_id IN (SELECT id FROM mailbox_statuses WHERE name != 'closed')"); $stmt->execute([$user_id]); $my_pending_tasks += $stmt->fetchColumn(); } } // Global Stats $total_inbound = canView('inbound') ? db()->query("SELECT COUNT(*) FROM inbound_mail")->fetchColumn() : 0; $total_outbound = canView('outbound') ? db()->query("SELECT COUNT(*) FROM outbound_mail")->fetchColumn() : 0; // Fetch statuses for badge and count $statuses_data = db()->query("SELECT * FROM mailbox_statuses")->fetchAll(PDO::FETCH_UNIQUE); // My Assignments $my_assignments = []; $assignment_queries = []; if (canView('inbound')) $assignment_queries[] = "SELECT id, 'inbound' as type, ref_no, subject, due_date, status_id, created_at FROM inbound_mail WHERE assigned_to = $user_id"; if (canView('outbound')) $assignment_queries[] = "SELECT id, 'outbound' as type, ref_no, subject, due_date, status_id, created_at FROM outbound_mail WHERE assigned_to = $user_id"; if (canView('internal')) $assignment_queries[] = "SELECT id, 'internal' as type, ref_no, subject, due_date, status_id, created_at FROM internal_mail WHERE assigned_to = $user_id"; if (!empty($assignment_queries)) { $full_assignment_query = "(" . implode(") UNION ALL (", $assignment_queries) . ") ORDER BY created_at DESC LIMIT 10"; $stmt = db()->query($full_assignment_query); $my_assignments = $stmt->fetchAll(); foreach ($my_assignments as &$m) { $m['status_name'] = $statuses_data[$m['status_id']]['name'] ?? 'unknown'; $m['status_color'] = $statuses_data[$m['status_id']]['color'] ?? '#6c757d'; } } // Recent Activity $recent_activity = []; $recent_queries = []; if (canView('inbound')) $recent_queries[] = "SELECT id, 'inbound' as type, ref_no, subject, status_id, created_by, assigned_to, updated_at FROM inbound_mail"; if (canView('outbound')) $recent_queries[] = "SELECT id, 'outbound' as type, ref_no, subject, status_id, created_by, assigned_to, updated_at FROM outbound_mail"; if (canView('internal')) $recent_queries[] = "SELECT id, 'internal' as type, ref_no, subject, status_id, created_by, assigned_to, updated_at FROM internal_mail"; if (!empty($recent_queries)) { $full_recent_query = "(" . implode(") UNION ALL (", $recent_queries) . ")"; if ($is_admin || $is_clerk) { $full_recent_query = "SELECT * FROM ($full_recent_query) AS combined WHERE (type != 'internal' OR assigned_to = $user_id OR created_by = $user_id) ORDER BY updated_at DESC LIMIT 10"; } else { $full_recent_query = "SELECT * FROM ($full_recent_query) AS combined WHERE (assigned_to = $user_id OR created_by = $user_id) ORDER BY updated_at DESC LIMIT 10"; } $stmt = db()->query($full_recent_query); $recent_activity = $stmt->fetchAll(); foreach ($recent_activity as &$a) { $a['status_name'] = $statuses_data[$a['status_id']]['name'] ?? 'unknown'; $a['status_color'] = $statuses_data[$a['status_id']]['color'] ?? '#6c757d'; } } function getStatusBadge($mail) { $status_name = $mail['status_name'] ?? 'غير معروف'; $status_color = $mail['status_color'] ?? '#6c757d'; $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) . ''; } ?>
أنت مسجل كـ . يمكنك متابعة كافة المراسلات وإدارة المهام. تابع مهامك المسندة إليك هنا.
| رقم القيد | الموضوع | الموعد النهائي | الحالة | الإجراء |
|---|---|---|---|---|
| = $mail['ref_no'] ?> | = htmlspecialchars($mail['subject']) ?> | = $mail['due_date'] ?> - | = getStatusBadge($mail) ?> | عرض |
| أنت على اطلاع بكافة مهامك! لا توجد مهام معلقة. | ||||