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