File "debug_staff_roles.php"
Full path: /home2/santhos2/public_html/bharath-coe.firstmatrix.in.net/api/invigilation_duties/debug_staff_roles.php
File size: 2.08 KiB (2132 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
require_once '../../config/config.php';
header('Content-Type: application/json');
function respond($ok, $msg, $extra = []) {
echo json_encode(($ok ? ['status' => 'success'] : ['status' => 'error']) + ['message' => $msg] + $extra);
exit;
}
try {
// Get all staff roles
$rolesStmt = $pdo->query("SELECT role_id, role_name FROM staff_role_types ORDER BY role_name");
$allRoles = $rolesStmt->fetchAll(PDO::FETCH_ASSOC);
// Get staff with their assigned roles
$staffStmt = $pdo->prepare("
SELECT s.staff_id, s.first_name, s.last_name, s.staff_code, s.status,
GROUP_CONCAT(srt.role_name) as roles
FROM staff s
LEFT JOIN staff_roles sr ON s.staff_id = sr.staff_id
LEFT JOIN staff_role_types srt ON sr.role_id = srt.role_id
WHERE s.status = 'Active'
GROUP BY s.staff_id
");
$staffStmt->execute();
$staff = $staffStmt->fetchAll(PDO::FETCH_ASSOC);
// Count staff by role
$roleCounts = [];
$invigilators = [];
$squadMembers = [];
foreach ($staff as $member) {
$roles = $member['roles'] ? explode(',', $member['roles']) : [];
foreach ($roles as $role) {
$role = trim($role);
if (!isset($roleCounts[$role])) {
$roleCounts[$role] = 0;
}
$roleCounts[$role]++;
if ($role === 'Invigilator') {
$invigilators[] = $member;
} elseif ($role === 'Squad') {
$squadMembers[] = $member;
}
}
}
respond(true, 'Staff roles debug information', [
'all_roles' => $allRoles,
'role_counts' => $roleCounts,
'total_active_staff' => count($staff),
'invigilators_count' => count($invigilators),
'squad_members_count' => count($squadMembers),
'invigilators' => $invigilators,
'squad_members' => $squadMembers,
'all_staff' => $staff
]);
} catch (Exception $e) {
respond(false, $e->getMessage());
}
?>