File "get_by_session.php"

Full path: /home2/santhos2/public_html/bharath-coe.firstmatrix.in.net/api/valuation_allocations/get_by_session.php
File size: 3.26 KiB (3340 bytes)
MIME-type: text/x-php
Charset: utf-8

Download   Open   Back

<?php
// api/valuation_allocations/get_by_session.php
header('Content-Type: application/json');
require_once '../../config/config.php';

try {
    $session_id = $_GET['session_id'] ?? '';
    
    if (empty($session_id)) {
        echo json_encode([
            'status' => 'error',
            'message' => 'Session ID is required'
        ]);
        exit;
    }
    
    $sql = "SELECT 
                vae.allocation_id,
                vae.session_id,
                vae.exam_subject_id,
                vae.valuator_id,
                vae.room_id,
                vae.supervisor_id,
                vae.num_scripts,
                vae.num_scripts_completed,
                vae.allocation_date,
                vae.expected_completion_date,
                vae.rate_per_script,
                vae.total_amount,
                vae.status,
                vae.remarks,
                
                -- Room details
                vre.room_name,
                vre.room_code,
                vre.max_papers_per_day,
                
                -- Subject details
                s.subject_name,
                s.subject_code,
                e.exam_name,
                e.academic_year,
                
                -- Valuator details
                CONCAT(vs.first_name, ' ', vs.last_name) as valuator_name,
                vs.staff_code as valuator_code,
                vs.email as valuator_email,
                
                -- Supervisor details
                CONCAT(ss.first_name, ' ', ss.last_name) as supervisor_name,
                ss.staff_code as supervisor_code,
                ss.email as supervisor_email
                
            FROM valuator_allocations_enhanced vae
            JOIN valuation_rooms_enhanced vre ON vae.room_id = vre.room_id
            JOIN exam_subjects es ON vae.exam_subject_id = es.exam_subject_id
            JOIN subjects s ON es.subject_id = s.subject_id
            JOIN exams e ON es.exam_id = e.exam_id
            JOIN staff vs ON vae.valuator_id = vs.staff_id
            JOIN staff ss ON vae.supervisor_id = ss.staff_id
            WHERE vae.session_id = :session_id
            ORDER BY vre.room_name, s.subject_code";
    
    $stmt = $pdo->prepare($sql);
    $stmt->bindParam(':session_id', $session_id);
    $stmt->execute();
    
    $allocations = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    // Calculate summary statistics
    $summary = [
        'total_allocations' => count($allocations),
        'total_papers' => array_sum(array_column($allocations, 'num_scripts')),
        'total_completed' => array_sum(array_column($allocations, 'num_scripts_completed')),
        'total_amount' => array_sum(array_column($allocations, 'total_amount')),
        'rooms_used' => count(array_unique(array_column($allocations, 'room_id'))),
        'valuators_assigned' => count(array_unique(array_column($allocations, 'valuator_id')))
    ];
    
    echo json_encode([
        'status' => 'success',
        'data' => [
            'allocations' => $allocations,
            'summary' => $summary
        ]
    ]);
    
} catch (Exception $e) {
    echo json_encode([
        'status' => 'error',
        'message' => 'Error: ' . $e->getMessage()
    ]);
}
?>

PHP File Manager