<?php
require 'config.php';
require 'vendor/autoload.php';

use Dompdf\Dompdf;
use Dompdf\Options;

$id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
$loai = isset($_GET['loai']) ? $_GET['loai'] : '';

if ($id == 0 || $loai == '') {
    die('Dữ liệu không hợp lệ!');
}

// 1. Chuẩn bị từ điển: Tên Câu Hỏi
$stmt_all_qh = $conn->query("SELECT id, noi_dung_cau_hoi FROM danh_sach_cau_hoi");
$map_cau_hoi = [];
while($row = $stmt_all_qh->fetch(PDO::FETCH_ASSOC)){
    $map_cau_hoi[$row['id']] = $row['noi_dung_cau_hoi'];
}

// 1.5. Chuẩn bị từ điển: Nội Dung Đáp Án (Khắc phục lỗi hiển thị a, b, c)
$stmt_all_da = $conn->query("SELECT cau_hoi_id, ky_hieu, noi_dung_dap_an FROM danh_sach_dap_an");
$map_dap_an = [];
while($row = $stmt_all_da->fetch(PDO::FETCH_ASSOC)){
    // Cấu trúc: $map_dap_an[ID_Cau_Hoi]['a'] = 'Nội dung chi tiết...'
    $map_dap_an[$row['cau_hoi_id']][$row['ky_hieu']] = $row['noi_dung_dap_an'];
}

// 2. Lấy dữ liệu tương ứng theo loại khảo sát
$khach_hang = [];
$tieu_de_bao_cao = "";
$thong_tin_html = "";

if ($loai == 'ca_nhan') {
    $stmt = $conn->prepare("SELECT * FROM khaosat_canhan WHERE id = ?");
    $stmt->execute([$id]);
    $khach_hang = $stmt->fetch(PDO::FETCH_ASSOC);
    $tieu_de_bao_cao = "BÁO CÁO HOẠCH ĐỊNH TÀI CHÍNH GIA ĐÌNH";
    $thong_tin_html = "<p><strong>Khách hàng:</strong> {$khach_hang['ho_ten']}</p>
                       <p><strong>Số điện thoại:</strong> {$khach_hang['so_dien_thoai']}</p>
                       <p><strong>Email:</strong> {$khach_hang['email']}</p>";
} elseif ($loai == 'doanh_nghiep') {
    $stmt = $conn->prepare("SELECT * FROM khaosat_doanhnghiep WHERE id = ?");
    $stmt->execute([$id]);
    $khach_hang = $stmt->fetch(PDO::FETCH_ASSOC);
    $tieu_de_bao_cao = "BÁO CÁO QUẢN TRỊ RỦI RO DOANH NGHIỆP";
    $thong_tin_html = "<p><strong>Doanh nghiệp:</strong> {$khach_hang['ten_doanh_nghiep']}</p>
                       <p><strong>Người đại diện:</strong> {$khach_hang['nguoi_dai_dien']}</p>
                       <p><strong>Số điện thoại:</strong> {$khach_hang['so_dien_thoai']}</p>";
} elseif ($loai == 'ung_vien') {
    $stmt = $conn->prepare("SELECT * FROM ung_vien WHERE id = ?");
    $stmt->execute([$id]);
    $khach_hang = $stmt->fetch(PDO::FETCH_ASSOC);
    $tieu_de_bao_cao = "HỒ SƠ ỨNG VIÊN CHUYÊN GIA";
    $thong_tin_html = "<p><strong>Ứng viên:</strong> {$khach_hang['ho_ten']} (Sinh năm: {$khach_hang['nam_sinh']})</p>
                       <p><strong>Trình độ văn hóa:</strong> {$khach_hang['trinh_do_van_hoa']}</p>
                       <p><strong>Công việc hiện tại:</strong> {$khach_hang['cong_viec']}</p>
                       <p><strong>Số điện thoại liên hệ:</strong> {$khach_hang['so_dien_thoai']}</p>
                       <p><strong>Đánh giá phân loại:</strong> Đạt {$khach_hang['diem_so']} điểm ({$khach_hang['phan_loai']})</p>";
}

if (!$khach_hang) {
    die('Không tìm thấy dữ liệu!');
}

// 3. Xử lý câu trả lời JSON thành HTML
$cau_tra_loi_arr = json_decode($khach_hang['cau_tra_loi'], true);
$chi_tiet_html = "";

if (is_array($cau_tra_loi_arr)) {
    foreach ($cau_tra_loi_arr as $q_id => $ans) {
        $q_text = isset($map_cau_hoi[$q_id]) ? $map_cau_hoi[$q_id] : "Câu hỏi #$q_id";
        
        // Thuật toán dịch đáp án
        $full_ans_text = [];
        if (is_array($ans)) {
            // Trường hợp khách chọn nhiều đáp án (Hộp kiểm)
            foreach ($ans as $opt) {
                $nd = isset($map_dap_an[$q_id][$opt]) ? $map_dap_an[$q_id][$opt] : $opt;
                $full_ans_text[] = $nd;
            }
            $a_text = implode('<br> &bull; ', $full_ans_text);
            $a_text = '&bull; ' . $a_text;
        } else {
            // Trường hợp khách chọn 1 đáp án (Radio) hoặc Tự luận
            $a_text = isset($map_dap_an[$q_id][$ans]) ? $map_dap_an[$q_id][$ans] : $ans;
        }
        
        // Sử dụng page-break-inside: avoid để tránh câu hỏi bị cắt nửa sang trang mới
        $chi_tiet_html .= "<div style='margin-bottom: 20px; page-break-inside: avoid;'>
                                <div style='font-weight: bold; color: #1e2b3c;'>{$q_text}</div>
                                <div style='color: #0d6efd; margin-top: 5px; padding-left: 10px;'>{$a_text}</div>
                           </div>";
    }
}

// 4. Thiết kế khung HTML cho trang PDF
$html = "
<!DOCTYPE html>
<html>
<head>
    <meta charset='UTF-8'>
    <style>
        /* Khai báo nền trắng để sửa lỗi mảng đen của DomPDF */
        body { font-family: DejaVu Sans, sans-serif; font-size: 14px; line-height: 1.5; color: #333; background-color: #ffffff; margin: 0; padding: 20px; }
        html { background-color: #ffffff; }
        .header { text-align: center; border-bottom: 2px solid #0d6efd; padding-bottom: 10px; margin-bottom: 20px; }
        .brand { color: #0d6efd; font-size: 24px; font-weight: bold; }
        .slogan { font-size: 12px; color: #555; }
        .title { text-align: center; font-size: 18px; font-weight: bold; margin-bottom: 20px; color: #dc3545; }
        .info-box { background: #f8f9fa; padding: 15px; border-radius: 5px; margin-bottom: 20px; border: 1px solid #ddd; }
        .content { background-color: #ffffff; }
    </style>
</head>
<body style='background-color: #ffffff;'>
    <div class='header'>
        <div class='brand'>PHẠM NGỌC TV</div>
        <div class='slogan'>Bảo Vệ Cuộc Sống - Kiến Tạo Tương Lai</div>
    </div>
    
    <div class='title'>{$tieu_de_bao_cao}</div>
    
    <div class='info-box'>
        {$thong_tin_html}
    </div>
    
    <div class='content' style='background-color: #ffffff;'>
        <h4 style='border-bottom: 1px solid #ccc; padding-bottom: 5px;'>Chi tiết phản hồi:</h4>
        {$chi_tiet_html}
    </div>
    
    <div style='text-align: center; margin-top: 50px; font-size: 12px; color: #888;'>
        Tài liệu được xuất tự động từ hệ thống quản trị nội bộ.
    </div>
</body>
</html>
";

// 5. Cấu hình và xuất PDF
$options = new Options();
$options->set('isRemoteEnabled', true); 
$options->set('defaultFont', 'DejaVu Sans'); 

$dompdf = new Dompdf($options);
$dompdf->loadHtml($html, 'UTF-8');
$dompdf->setPaper('A4', 'portrait'); 
$dompdf->render();

$ten_file = "Bao_Cao_" . date('dmY_Hi') . ".pdf";
$dompdf->stream($ten_file, array("Attachment" => false));
?>