File "create.php"
Full path: /home2/santhos2/public_html/bharath-coe.firstmatrix.in.net/api/exam_subjects/create.php
File size: 1.89 KiB (1934 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
require_once '../../config/config.php';
require_once '../helper/audit_log.php';
header('Content-Type: application/json');
try {
$exam_id=(int)($_POST['exam_id']??0);
$subject_id=(int)($_POST['subject_id']??0);
$max_marks=(int)($_POST['max_marks']??0);
$pass_marks=(int)($_POST['pass_marks']??0);
$exam_date=trim($_POST['exam_date']??'');
$session=trim($_POST['session']??'');
$errors=[]; if($exam_id<=0)$errors[]='Exam required.'; if($subject_id<=0)$errors[]='Subject required.'; if($max_marks<=0)$errors[]='Max marks required.'; if($pass_marks<0)$errors[]='Pass marks required.'; if($errors){ echo json_encode(['status'=>'error','message'=>$errors]); exit; }
$stmt=$pdo->prepare('INSERT INTO exam_subjects (exam_id,subject_id,max_marks,pass_marks,exam_date,session) VALUES (?,?,?,?,?,?)');
$stmt->execute([$exam_id,$subject_id,$max_marks,$pass_marks,empty($exam_date)?null:$exam_date,empty($session)?null:$session]);
$examSubjectId = $pdo->lastInsertId();
// Also create exam_timetable entry if exam_date or session is provided
if (!empty($exam_date) || !empty($session)) {
$insertTtStmt = $pdo->prepare('INSERT INTO exam_timetable (exam_subject_id, exam_date, session, start_time, end_time) VALUES (?, ?, ?, ?, ?)');
$insertTtStmt->execute([$examSubjectId, empty($exam_date)?null:$exam_date, empty($session)?null:$session, '10:00:00', '13:00:00']);
}
write_audit_log($pdo, ['module'=>'Exam','action'=>'create','entity_table'=>'exam_subjects','entity_id'=>$examSubjectId,'after_data'=>compact('exam_id','subject_id','max_marks','pass_marks','exam_date','session'),'message'=>'Exam subject created']);
echo json_encode(['status'=>'success','message'=>'Exam Subject created successfully.']);
} catch (Throwable $e){ http_response_code(500); echo json_encode(['status'=>'error','message'=>$e->getMessage()]); }
?>