File "claim.php"
Full path: /home2/santhos2/public_html/bharath-coe.firstmatrix.in.net/api/email/claim.php
File size: 3.42 KiB (3501 bytes)
MIME-type: text/x-php
Charset: utf-8
<?php
require_once '../../config/config.php';
if (session_status() !== PHP_SESSION_ACTIVE) { session_start(); }
header('Content-Type: application/json');
try {
// Check for URL parameters first, then fall back to session
$staffId = (int)($_GET['staff_id'] ?? $_SESSION['qps_staff_id'] ?? 0);
$assignmentId = (int)($_GET['assignment_id'] ?? $_SESSION['qps_assignment_id'] ?? 0);
if (!$staffId || !$assignmentId) { http_response_code(401); echo json_encode(['status'=>'error','message'=>'Unauthorized']); exit; }
// Ensure table exists
$pdo->exec("CREATE TABLE IF NOT EXISTS qp_setter_claims (
id INT AUTO_INCREMENT PRIMARY KEY,
assignment_id INT NOT NULL,
staff_id INT NOT NULL,
name VARCHAR(255) NULL,
designation VARCHAR(255) NULL,
department VARCHAR(255) NULL,
institution_name_address TEXT NULL,
mobile_no VARCHAR(20) NULL,
email_id VARCHAR(255) NULL,
bank_name VARCHAR(255) NULL,
branch_name VARCHAR(255) NULL,
bank_account_number VARCHAR(50) NULL,
ifsc_code VARCHAR(20) NULL,
pan_number VARCHAR(20) NULL,
courses_json TEXT NULL,
total_amount DECIMAL(10,2) NULL,
amount_in_words TEXT NULL,
signature_date DATE NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
UNIQUE KEY uq_claim (assignment_id, staff_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4");
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
$st = $pdo->prepare('SELECT * FROM qp_setter_claims WHERE assignment_id = ? AND staff_id = ?');
$st->execute([$assignmentId, $staffId]);
$row = $st->fetch(PDO::FETCH_ASSOC);
if ($row) {
// Remove internal fields
unset($row['id'], $row['created_at'], $row['updated_at']);
echo json_encode(['status'=>'success','data'=>$row]);
} else {
echo json_encode(['status'=>'success','data'=>null]);
}
exit;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$input = json_decode(file_get_contents('php://input'), true) ?: [];
// Extract all form fields
$fields = [
'name', 'designation', 'department', 'institution_name_address',
'mobile_no', 'email_id', 'bank_name', 'branch_name',
'bank_account_number', 'ifsc_code', 'pan_number',
'courses_json', 'total_amount', 'amount_in_words', 'signature_date'
];
$values = [];
$placeholders = [];
$updateClauses = [];
foreach ($fields as $field) {
$value = trim((string)($input[$field] ?? ''));
if ($field === 'total_amount' && $value !== '') {
$value = (float)$value;
}
$values[] = $value;
$placeholders[] = '?';
$updateClauses[] = "$field=VALUES($field)";
}
$sql = "INSERT INTO qp_setter_claims (assignment_id, staff_id, " . implode(', ', $fields) . ")
VALUES (?, ?, " . implode(', ', $placeholders) . ")
ON DUPLICATE KEY UPDATE " . implode(', ', $updateClauses);
$st = $pdo->prepare($sql);
$st->execute(array_merge([$assignmentId, $staffId], $values));
echo json_encode(['status'=>'success','message'=>'Claim form saved successfully']);
exit;
}
http_response_code(405); echo json_encode(['status'=>'error','message'=>'Method not allowed']);
} catch (Throwable $e) {
http_response_code(500);
echo json_encode(['status'=>'error','message'=>$e->getMessage()]);
}
?>