Complaint Page

<?php
// DB CONNECTION (adjust to your setup)
require_once 'db.php';

// -----------------------------
// HANDLE COMPLAINT SUBMISSION
// -----------------------------
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['cp_name'])) {

    $ref = 'STA-' . date('Y') . '-' . strtoupper(substr(md5(uniqid()), 0, 6));

    $stmt = $pdo->prepare("
        INSERT INTO complaints 
        (ref_number, name, phone, email, category, location, subject, description, status, created_at) 
        VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'Pending', NOW())
    ");

    $stmt->execute([
        $_POST['cp_name'],
        $_POST['cp_phone'],
        $_POST['cp_email'],
        $_POST['cp_category'],
        $_POST['cp_location'],
        $_POST['cp_subject'],
        $_POST['cp_description']
    ]);

    $success_msg = "βœ… Complaint submitted! Reference: $ref";
}

// -----------------------------
// ADMIN ACTIONS
// -----------------------------
if (isset($_POST['update_complaint_status'])) {
    $allowed = ['Pending', 'In Progress', 'Resolved'];

    if (in_array($_POST['new_status'], $allowed)) {
        $stmt = $pdo->prepare("UPDATE complaints SET status=? WHERE id=?");
        $stmt->execute([$_POST['new_status'], intval($_POST['cid'])]);
    }

    header("Location: ?page=complaint&msg=Status updated");
    exit;
}

if (isset($_POST['delete_complaint'])) {
    $stmt = $pdo->prepare("DELETE FROM complaints WHERE id=?");
    $stmt->execute([intval($_POST['cid'])]);

    header("Location: ?page=complaint&msg=Deleted");
    exit;
}
?>

<!-- ========================= -->
<!-- COMPLAINT PAGE UI -->
<!-- ========================= -->
<section class="page">
<div class="wrap">

<h2>πŸ“’ File a Complaint</h2>

<?php if (!empty($success_msg)) echo "<p style='color:green'>$success_msg</p>"; ?>

<!-- TRACKING -->
<div>
    <h3>πŸ” Track Complaint</h3>
    <input type="text" id="track-input" placeholder="Enter Ref Number">
    <button onclick="trackComplaint()">Track</button>
    <div id="track-result"></div>
</div>

<hr>

<!-- FORM -->
<form method="POST">

<h3>Submit Complaint</h3>

<input required type="text" name="cp_name" placeholder="Full Name"><br><br>
<input required type="text" name="cp_phone" placeholder="Phone"><br><br>
<input type="email" name="cp_email" placeholder="Email"><br><br>

<select required name="cp_category">
    <option value="">Select Category</option>
    <option>Vehicle Violation</option>
    <option>Tester Misconduct</option>
    <option>Center Issue</option>
    <option>Corruption</option>
</select><br><br>

<input type="text" name="cp_location" placeholder="Location"><br><br>

<input required type="text" name="cp_subject" placeholder="Subject"><br><br>

<textarea required name="cp_description" placeholder="Description"></textarea><br><br>

<button type="submit">Submit</button>

</form>

<hr>

<!-- ADMIN LIST -->
<h3>Admin: Manage Complaints</h3>

<table border="1" cellpadding="10">
<tr>
    <th>Ref</th>
    <th>Name</th>
    <th>Category</th>
    <th>Status</th>
    <th>Action</th>
</tr>

<?php
$rows = $pdo->query("SELECT * FROM complaints ORDER BY id DESC")->fetchAll();

foreach ($rows as $r):
?>
<tr>
<td><?= $r['ref_number'] ?></td>
<td><?= $r['name'] ?></td>
<td><?= $r['category'] ?></td>
<td><?= $r['status'] ?></td>

<td>
    <!-- UPDATE -->
    <form method="POST" style="display:inline">
        <input type="hidden" name="cid" value="<?= $r['id'] ?>">
        <select name="new_status">
            <option>Pending</option>
            <option>In Progress</option>
            <option>Resolved</option>
        </select>
        <button name="update_complaint_status">Update</button>
    </form>

    <!-- DELETE -->
    <form method="POST" style="display:inline">
        <input type="hidden" name="cid" value="<?= $r['id'] ?>">
        <button name="delete_complaint" onclick="return confirm('Delete?')">Delete</button>
    </form>
</td>

</tr>
<?php endforeach; ?>
</table>

</div>
</section>

<!-- ========================= -->
<!-- TRACKING SCRIPT -->
<!-- ========================= -->
<script>
function trackComplaint() {
    let ref = document.getElementById('track-input').value;

    fetch('track.php?ref=' + ref)
    .then(res => res.json())
    .then(data => {
        if(data.status){
            document.getElementById('track-result').innerHTML =
                "Status: <b>" + data.status + "</b><br>" +
                "Subject: " + data.subject;
        } else {
            document.getElementById('track-result').innerHTML = "Not found";
        }
    });
}
</script>