<?php
// admin/export-certificate-pdf.php - خروجی PDF گواهی تدریس

error_reporting(0);
ini_set('display_errors', 0);

session_start();
require_once '../config/database.php';
require_once '../includes/db.php';
require_once '../includes/auth.php';
require_once '../includes/functions.php';
require_once '../includes/settings.php';

// ===== بررسی وجود TCPDF =====
$tcpdfPath = __DIR__ . '/../tcpdf/tcpdf.php';
if (!file_exists($tcpdfPath)) {
    die('❌ فایل TCPDF یافت نشد.');
}
require_once $tcpdfPath;

if (!isLoggedIn()) {
    die('ابتدا وارد شوید.');
}

$user = getCurrentUser();

// ===== دریافت شناسه درخواست =====
$request_id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
if ($request_id == 0) {
    die('شناسه درخواست نامعتبر است.');
}

// ===== دریافت اطلاعات درخواست =====
$request = fetchOne(
    "SELECT r.*, 
            u.name as teacher_name, u.family as teacher_family, u.national_code,
            t.name as term_name, t.code as term_code,
            a.name as approver_name, a.family as approver_family
     FROM certificate_requests r
     LEFT JOIN users u ON r.teacher_id = u.id
     LEFT JOIN terms t ON r.term_id = t.id
     LEFT JOIN users a ON r.approved_by = a.id
     WHERE r.id = ?",
    [$request_id]
);

if (!$request || $request['status'] != 'approved') {
    die('گواهی تأیید نشده یا یافت نشد.');
}

// ===== دریافت دروس استاد در آن ترم =====
$courses = fetchAll(
    "SELECT c.name, c.course_type 
     FROM courses c
     WHERE c.teacher_id = ? AND c.term_id = ?",
    [$request['teacher_id'], $request['term_id']]
);

// ===== دریافت تنظیمات سامانه =====
$settings = getSettings();
$siteName = $settings['site_name'] ?? 'سامانه مدیریت اساتید';
$institutionName = $settings['institution_name'] ?? 'دانشگاه علوم و فناوری';
$logoPath = !empty($settings['logo']) ? '../' . $settings['logo'] : '';
$footerDeveloper = $settings['footer_developer'] ?? '';

// ============================================================
// کلاس PDF
// ============================================================
class MYPDF extends TCPDF {
    public function Header() {
        // هدر خالی (همه چیز در محتوا)
    }
    public function Footer() {
        $this->SetY(-15);
        $this->SetFont('dejavusans', '', 8);
        $this->SetTextColor(150, 150, 150);
        $this->Cell(0, 5, 'صفحه ' . $this->getAliasNumPage() . ' از ' . $this->getAliasNbPages(), 0, 0, 'C');
    }
}

// ============================================================
// ایجاد PDF
// ============================================================
$pdf = new MYPDF('P', 'mm', 'A4', true, 'UTF-8', false);
$pdf->SetMargins(20, 20, 20);
$pdf->SetAutoPageBreak(true, 25);
$pdf->AddPage();

// ============================================================
// تابع اعداد فارسی
// ============================================================
function pNum($number) {
    return persianNumber(number_format($number));
}

// ============================================================
// تولید گواهی
// ============================================================
$pdf->SetFont('dejavusans', 'B', 18);
$pdf->Cell(0, 10, $institutionName, 0, 1, 'C');
$pdf->SetFont('dejavusans', '', 12);
$pdf->Cell(0, 6, $siteName, 0, 1, 'C');
$pdf->Ln(8);

// ===== عنوان =====
$pdf->SetFont('dejavusans', 'B', 16);
$pdf->Cell(0, 10, $request['title'] ?? 'گواهی تدریس', 0, 1, 'C');
$pdf->Ln(6);

// ===== تاریخ و شماره =====
$pdf->SetFont('dejavusans', '', 10);
$pdf->Cell(0, 6, 'شماره نامه: ' . $request['letter_number'], 0, 1, 'L');
$pdf->Cell(0, 6, 'تاریخ: ' . jalaliDate($request['approval_date']), 0, 1, 'L');
$pdf->Ln(6);

// ===== متن نامه =====
$pdf->SetFont('dejavusans', '', 11);
$pdf->MultiCell(0, 8, 'مدیریت محترم', 0, 1, 'R');
$pdf->Ln(4);

$body = "اینجانب مدیر سامانه مدیریت اساتید {$institutionName}، بدین وسیله تأیید می‌نمایم که " .
        "سرکار/جناب آقای/خانم " . $request['teacher_name'] . ' ' . $request['teacher_family'] .
        " به شماره ملی " . $request['national_code'] .
        "، مدرس رسمی این دانشگاه بوده و در ترم " . $request['term_name'] . " (" . $request['term_code'] . ")" .
        " به عنوان مدرس دروس زیر فعالیت داشته‌اند:";

$pdf->MultiCell(0, 8, $body, 0, 1, 'R');
$pdf->Ln(4);

// ===== لیست دروس =====
if (!empty($courses)) {
    $pdf->SetFont('dejavusans', '', 10);
    $courseList = '';
    foreach ($courses as $index => $course) {
        $courseList .= ($index + 1) . '. ' . $course['name'] . ' (' . getCourseTypeName($course['course_type']) . ')' . "\n";
    }
    $pdf->MultiCell(0, 7, $courseList, 0, 1, 'R');
}

$pdf->Ln(4);
$pdf->SetFont('dejavusans', '', 11);
$pdf->MultiCell(0, 8, 'این گواهی به درخواست ایشان صادر شده و فاقد اعتبار مالی می‌باشد.', 0, 1, 'R');
$pdf->Ln(8);

// ===== امضا =====
$pdf->SetFont('dejavusans', '', 10);
$pdf->Cell(0, 6, 'مدیر سامانه مدیریت اساتید', 0, 1, 'L');
$pdf->Ln(10);

// ===== خط امضا =====
$pdf->Line(20, $pdf->GetY(), 80, $pdf->GetY());
$pdf->SetY($pdf->GetY() + 2);
$pdf->SetFont('dejavusans', '', 9);
$pdf->Cell(60, 6, 'امضا و مهر', 0, 1, 'C');

// ============================================================
// خروجی
// ============================================================
$filename = 'گواهی_تدریس_' . $request['teacher_name'] . '_' . $request['term_code'] . '.pdf';
$pdf->Output($filename, 'I');
exit;
?>