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

Download   Open   Back

<?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());
}
?>

PHP File Manager