false, 'message' => 'Invalid request']; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $visit_id = $_POST['visit_id'] ?? null; $status = $_POST['status'] ?? null; $notes = $_POST['notes'] ?? null; $service_rendered = $_POST['service_rendered'] ?? null; $cost = $_POST['cost'] ?? null; if ($visit_id && $status) { try { $pdo = db(); // All updates now go to the patient_visits table $sql = "UPDATE patient_visits SET status = ?"; $params = [$status]; if ($notes !== null) { $sql .= ", notes = ?"; $params[] = $notes; } if ($service_rendered !== null) { $sql .= ", service_rendered = ?"; $params[] = $service_rendered; } if ($cost !== null) { $sql .= ", cost = ?"; $params[] = $cost; } // When completing, set payment_status to unpaid for this specific visit if ($status === 'Completed') { $sql .= ", payment_status = 'unpaid'"; } $sql .= " WHERE visit_id = ?"; $params[] = $visit_id; $stmt = $pdo->prepare($sql); if ($stmt->execute($params)) { $response['success'] = true; $response['message'] = 'Visit status updated successfully.'; $response['status_class'] = get_status_badge_class($status); } else { $response['message'] = 'Failed to update visit status.'; } } catch (PDOException $e) { $response['message'] = 'Database error: ' . $e->getMessage(); } } else { $response['message'] = 'Missing visit ID or status.'; } } echo json_encode($response); function get_status_badge_class($status) { switch ($status) { case 'Pending': return 'warning'; case 'In Progress': return 'info'; case 'Completed': return 'success'; default: return 'secondary'; } } ?>