« Back to History
candidate_view.php
|
20260721_154032.php
Initial Bulk Import
Copy Code
<?php require_once __DIR__ . '/modules/auth/page_acl.php'; $ctx = page_require_access('attendance_dashboard'); $pdo = $ctx['pdo']; $COMPANY_ID = (int)$ctx['company_id']; $candidate_id = (int)($_GET['id'] ?? 0); function j($s){ return htmlspecialchars((string)$s, ENT_QUOTES, 'UTF-8'); } // --- HANDLE ACTIONS --- if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action'])) { try { $pdo->beginTransaction(); if ($_POST['action'] === 'schedule_interview') { $stmt = $pdo->prepare("INSERT INTO interviews (company_id, application_id, interview_date, interview_time, interviewer_name, remarks) VALUES (?, ?, ?, ?, ?, ?)"); $stmt->execute([$COMPANY_ID, $_POST['application_id'], $_POST['interview_date'], $_POST['interview_time'], $_POST['interviewer_name'], $_POST['remarks']]); $pdo->prepare("UPDATE job_applications SET application_status = 'Interview Scheduled' WHERE id = ?")->execute([$_POST['application_id']]); $pdo->prepare("INSERT INTO candidate_status_history (company_id, application_id, old_status, new_status, remarks) VALUES (?, ?, 'Shortlisted', 'Interview Scheduled', ?)") ->execute([$COMPANY_ID, $_POST['application_id'], 'Interview Scheduled on ' . $_POST['interview_date']]); } $pdo->commit(); $message = "Interview scheduled successfully!"; } catch (Exception $e) { $pdo->rollBack(); $error = $e->getMessage(); } } // --- FETCH DATA --- $stmt = $pdo->prepare("SELECT c.*, ja.id as app_id, ja.application_status, j.title as position FROM candidates c LEFT JOIN job_applications ja ON c.id = ja.candidate_id LEFT JOIN jobs j ON ja.job_id = j.id WHERE c.id = ? AND c.company_id = ?"); $stmt->execute([$candidate_id, $COMPANY_ID]); $data = $stmt->fetch(PDO::FETCH_ASSOC); require_once __DIR__ . '/partials/header.php'; ?> <div class="container py-4"> <div class="row"> <div class="col-md-4"> <div class="card shadow p-4"> <h4 class="fw-bold"><?= j($data['full_name']) ?></h4> <p>Status: <span class="badge bg-primary"><?= j($data['application_status'] ?? 'New') ?></span></p> <?php if (($data['application_status'] ?? '') === 'Shortlisted'): ?> <button class="btn btn-primary w-100" data-bs-toggle="modal" data-bs-target="#interviewModal">Schedule Interview</button> <?php endif; ?> </div> </div> </div> </div> <div class="modal fade" id="interviewModal" tabindex="-1"> <div class="modal-dialog"> <form method="POST" class="modal-content"> <input type="hidden" name="action" value="schedule_interview"> <input type="hidden" name="application_id" value="<?= $data['app_id'] ?>"> <div class="modal-header"><h5>Schedule Interview</h5></div> <div class="modal-body"> <input type="date" name="interview_date" class="form-control mb-2" required> <input type="time" name="interview_time" class="form-control mb-2"> <input type="text" name="interviewer_name" class="form-control mb-2" placeholder="Interviewer Name"> <textarea name="remarks" class="form-control" placeholder="Remarks"></textarea> </div> <div class="modal-footer"><button type="submit" class="btn btn-primary">Save Interview</button></div> </form> </div> </div> <?php require_once __DIR__ . '/partials/footer.php'; ?>