query(" SELECT c.id, c.name, c.description, (SELECT COUNT(*) FROM committee_plans WHERE committee_id = c.id) as total_plans, (SELECT COUNT(*) FROM committee_plans WHERE committee_id = c.id AND status = 'completed') as completed_plans, (SELECT COUNT(*) FROM committee_activities WHERE committee_id = c.id) as activities_count FROM committees c ORDER BY c.name ASC "); $committees = $committees_query->fetchAll(PDO::FETCH_ASSOC); } else { $committees_query = $db->prepare(" SELECT c.id, c.name, c.description, (SELECT COUNT(*) FROM committee_plans WHERE committee_id = c.id) as total_plans, (SELECT COUNT(*) FROM committee_plans WHERE committee_id = c.id AND status = 'completed') as completed_plans, (SELECT COUNT(*) FROM committee_activities WHERE committee_id = c.id) as activities_count FROM committees c JOIN committee_members m ON c.id = m.committee_id JOIN charity_members cm ON m.charity_member_id = cm.id JOIN users u ON (u.id = cm.user_id) OR (cm.email != '' AND cm.email = u.email) OR (cm.name = u.full_name) OR (cm.name = u.username) WHERE u.id = ? GROUP BY c.id ORDER BY c.name ASC "); $committees_query->execute([$_SESSION['user_id']]); $committees = $committees_query->fetchAll(PDO::FETCH_ASSOC); } foreach ($committees as &$c) { // Calculate performance score $plan_completion_rate = $c['total_plans'] > 0 ? ($c['completed_plans'] / $c['total_plans']) * 100 : 0; $activity_score = min(100, $c['activities_count'] * 20); $c['score'] = ($plan_completion_rate * 0.6) + ($activity_score * 0.4); // Fetch members for this committee $members_stmt = $db->prepare(" SELECT cm.role, u.name as full_name, u.phone FROM committee_members cm JOIN charity_members u ON cm.charity_member_id = u.id WHERE cm.committee_id = ? ORDER BY cm.id DESC "); $members_stmt->execute([$c['id']]); $c['members'] = $members_stmt->fetchAll(PDO::FETCH_ASSOC); } unset($c); // Sort by score descending usort($committees, function($a, $b) { return $b['score'] <=> $a['score']; }); ?>
تقرير اللجان وتقييم الأداء العام
تاريخ التقرير: = date('Y-m-d') ?>= htmlspecialchars($c['description'] ?? '') ?: 'لا يوجد وصف' ?>
| م | اسم العضو | الدور في اللجنة | رقم الهاتف |
|---|---|---|---|
| = $m_index + 1 ?> | = htmlspecialchars($m['full_name'] ?? '') ?> | = htmlspecialchars($m['role'] ?? '') ?> | = htmlspecialchars($m['phone'] ?? '-') ?> |