<?php
/**
 * تصدير PDF للنتائج - Smart Doctor
 */
require_once __DIR__ . '/../../vendor/autoload.php';

use TCPDF as TCPDF;

if (!$doctorAuth->check()) {
    die('غير مصرح');
}

$orderId = (int)($_GET['order_id'] ?? 0);
if ($orderId <= 0) {
    die('معرف غير صالح');
}

try {
    // جلب بيانات الطلب
    $stmt = $db->prepare("SELECT o.*, p.full_name, p.patient_code, p.date_of_birth, p.gender, p.phone, 
        d.full_name AS doctor_name, d.specialty AS doctor_specialty,
        t.name AS tenant_name, t.logo_url AS tenant_logo
        FROM lab_orders o
        JOIN patients p ON p.id = o.patient_id
        LEFT JOIN doctors d ON d.id = o.doctor_id
        JOIN tenants t ON t.id = o.tenant_id
        WHERE o.id = ? $tenantCond $doctorCond LIMIT 1");
    $stmt->execute([$orderId]);
    $order = $stmt->fetch();
    
    if (!$order) {
        die('الطلب غير موجود');
    }
    
    // جلب النتائج
    $stmt = $db->prepare("SELECT r.*, t.name AS test_name, t.unit, t.reference_range,
        oi.test_id, cat.name AS category_name
        FROM results r
        JOIN order_items oi ON oi.id = r.order_item_id
        JOIN tests t ON t.id = oi.test_id
        LEFT JOIN test_categories cat ON cat.id = t.category_id
        WHERE oi.order_id = ?
        ORDER BY cat.name, t.name");
    $stmt->execute([$orderId]);
    $results = $stmt->fetchAll();
    
    // إنشاء PDF
    $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    $pdf->SetCreator('Smart Doctor');
    $pdf->SetAuthor('Smart Doctor');
    $pdf->SetTitle('نتائج التحاليل - ' . $order['order_number']);
    $pdf->SetSubject('نتائج التحاليل الطبية');
    
    // إزالة الهيدر والفوتر الافتراضي
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);
    
    // إضافة صفحة
    $pdf->AddPage();
    
    // الخطوط العربية
    $pdf->SetFont('dejavusans', '', 12);
    
    // الهيدر
    $headerHtml = '<table cellpadding="5" style="width:100%;border-bottom:2px solid #0d9488;">';
    $headerHtml .= '<tr>';
    if ($order['tenant_logo']) {
        $headerHtml .= '<td style="width:80px;"><img src="' . htmlspecialchars($order['tenant_logo']) . '" style="max-width:80px;max-height:60px;"></td>';
    }
    $headerHtml .= '<td style="text-align:right;">';
    $headerHtml .= '<h2 style="color:#0d9488;margin:0;">' . htmlspecialchars($order['tenant_name']) . '</h2>';
    $headerHtml .= '<p style="margin:4px 0;color:#666;font-size:10px;">تقرير نتائج التحاليل الطبية</p>';
    $headerHtml .= '</td></tr></table>';
    $pdf->writeHTML($headerHtml, true, false, true, false, '');
    
    // معلومات المريض
    $patientAge = $order['date_of_birth'] ? (date('Y') - date('Y', strtotime($order['date_of_birth']))) : '-';
    $patientHtml = '<table cellpadding="8" style="width:100%;margin-top:15px;background:#f8fafc;border-radius:5px;">';
    $patientHtml .= '<tr><td style="width:25%;font-weight:bold;">اسم المريض:</td><td>' . htmlspecialchars($order['full_name']) . '</td>';
    $patientHtml .= '<td style="width:25%;font-weight:bold;">الكود:</td><td>' . htmlspecialchars($order['patient_code']) . '</td></tr>';
    $patientHtml .= '<tr><td style="font-weight:bold;">العمر:</td><td>' . $patientAge . ' سنة</td>';
    $patientHtml .= '<td style="font-weight:bold;">الجنس:</td><td>' . ($order['gender'] === 'M' ? 'ذكر' : ($order['gender'] === 'F' ? 'أنثى' : '-')) . '</td></tr>';
    $patientHtml .= '<tr><td style="font-weight:bold;">رقم الطلب:</td><td>' . htmlspecialchars($order['order_number']) . '</td>';
    $patientHtml .= '<td style="font-weight:bold;">التاريخ:</td><td>' . date('Y-m-d H:i', strtotime($order['order_date'])) . '</td></tr>';
    if ($order['doctor_name']) {
        $patientHtml .= '<tr><td style="font-weight:bold;">الطبيب:</td><td colspan="3">' . htmlspecialchars($order['doctor_name']) . '</td></tr>';
    }
    $patientHtml .= '</table>';
    $pdf->writeHTML($patientHtml, true, false, true, false, '');
    
    // النتائج
    $currentCategory = '';
    foreach ($results as $result) {
        if ($result['category_name'] !== $currentCategory) {
            if ($currentCategory !== '') {
                $pdf->Ln(5);
            }
            $currentCategory = $result['category_name'];
            $pdf->SetFont('dejavusans', 'B', 14);
            $pdf->SetFillColor(13, 148, 136);
            $pdf->SetTextColor(255, 255, 255);
            $pdf->Cell(0, 10, htmlspecialchars($currentCategory ?: 'عام'), 0, 1, 'R', true);
            $pdf->SetTextColor(0, 0, 0);
            $pdf->SetFont('dejavusans', '', 11);
        }
        
        $flagColor = '';
        $flagText = '';
        if ($result['flag'] === 'L') {
            $flagColor = '#3b82f6';
            $flagText = '↓ منخفض';
        } elseif ($result['flag'] === 'H') {
            $flagColor = '#f59e0b';
            $flagText = '↑ مرتفع';
        } elseif ($result['flag'] === 'C') {
            $flagColor = '#ef4444';
            $flagText = '⚠ حرج';
        }
        
        $resultHtml = '<table cellpadding="6" style="width:100%;margin:3px 0;border-bottom:1px solid #e5e7eb;">';
        $resultHtml .= '<tr>';
        $resultHtml .= '<td style="width:40%;font-weight:bold;">' . htmlspecialchars($result['test_name']) . '</td>';
        $resultHtml .= '<td style="width:25%;text-align:center;font-weight:bold;color:' . $flagColor . ';">' . htmlspecialchars($result['result_value'] ?? '-') . '</td>';
        $resultHtml .= '<td style="width:20%;text-align:center;color:#666;">' . htmlspecialchars($result['unit'] ?? '') . '</td>';
        $resultHtml .= '<td style="width:15%;text-align:center;color:#666;font-size:9px;">' . htmlspecialchars($result['reference_range'] ?? '-') . '</td>';
        if ($flagText) {
            $resultHtml .= '<td style="width:15%;text-align:center;color:' . $flagColor . ';font-weight:bold;font-size:9px;">' . $flagText . '</td>';
        }
        $resultHtml .= '</tr></table>';
        $pdf->writeHTML($resultHtml, true, false, true, false, '');
    }
    
    // الفوتر
    $pdf->SetY(-30);
    $pdf->SetFont('dejavusans', '', 8);
    $pdf->SetTextColor(128, 128, 128);
    $footerHtml = '<div style="text-align:center;border-top:1px solid #e5e7eb;padding-top:10px;">';
    $footerHtml .= 'تم الإنشاء بواسطة Smart Doctor - ' . date('Y-m-d H:i');
    $footerHtml .= '<br>هذا التقرير إلكتروني ويمكن التحقق من صحته عبر الرابط المرفق';
    $footerHtml .= '</div>';
    $pdf->writeHTML($footerHtml, true, false, true, false, '');
    
    // إخراج PDF
    $pdf->Output('نتائج_' . $order['order_number'] . '_' . date('Y-m-d') . '.pdf', 'D');
    
} catch (Exception $e) {
    die('خطأ: ' . $e->getMessage());
}
