<?php
/**
 * reports_pdf.php - مكتبة إنشاء تقارير PDF
 * @version 8.0.0
 */

require_once 'config.php';

// التحقق من وجود مكتبة TCPDF
if (!class_exists('TCPDF')) {
    $tcpdf_paths = [
        'vendor/tecnickcom/tcpdf/tcpdf.php',
        '../vendor/tecnickcom/tcpdf/tcpdf.php',
        '../../vendor/tecnickcom/tcpdf/tcpdf.php',
        'includes/tcpdf/tcpdf.php',
        '../includes/tcpdf/tcpdf.php'
    ];
    
    foreach ($tcpdf_paths as $path) {
        if (file_exists($path)) {
            require_once($path);
            break;
        }
    }
}

class ReportsPDF extends TCPDF {
    
    // رأس الصفحة
    public function Header() {
        $settings = $this->getSettings();
        
        $this->SetY(10);
        $this->SetFont('aealarabiya', 'B', 14);
        $this->Cell(0, 8, $settings['name'], 0, 1, 'C');
        
        $this->SetFont('aealarabiya', '', 9);
        $this->Cell(0, 5, $settings['address'], 0, 1, 'C');
        $this->Cell(0, 5, 'هاتف: ' . $settings['phone'] . ' | واتساب: ' . $settings['whatsapp'], 0, 1, 'C');
        
        $this->Ln(3);
        $this->SetDrawColor(200, 200, 200);
        $this->Line(10, $this->GetY(), 200, $this->GetY());
        $this->Ln(5);
    }
    
    // تذييل الصفحة
    public function Footer() {
        $this->SetY(-15);
        $this->SetFont('aealarabiya', '', 8);
        $this->SetTextColor(128, 128, 128);
        $this->Cell(0, 10, 'ماكس بروست - صفحة ' . $this->getAliasNumPage() . '/' . $this->getAliasNbPages(), 0, 0, 'C');
    }
    
    // جلب إعدادات المطعم
    private function getSettings() {
        global $conn;
        $result = $conn->query("SELECT * FROM settings LIMIT 1");
        if ($result && $result->num_rows > 0) {
            return $result->fetch_assoc();
        }
        return [
            'name' => 'ماكس بروست',
            'address' => 'اليمن',
            'phone' => '000000000',
            'whatsapp' => '000000000'
        ];
    }
    
    // إنشاء جدول منسق
    public function createTable($headers, $data, $widths = null) {
        if (empty($data)) return;
        
        if ($widths === null) {
            $page_width = $this->getPageWidth() - 20;
            $col_count = count($headers);
            $width = $page_width / $col_count;
            $widths = array_fill(0, $col_count, $width);
        }
        
        // رأس الجدول
        $this->SetFont('aealarabiya', 'B', 9);
        $this->SetFillColor(240, 240, 240);
        $this->SetTextColor(0, 0, 0);
        
        for($i = 0; $i < count($headers); $i++) {
            $this->Cell($widths[$i], 8, $headers[$i], 1, 0, 'C', 1);
        }
        $this->Ln();
        
        // بيانات الجدول
        $this->SetFont('aealarabiya', '', 8);
        $this->SetFillColor(255, 255, 255);
        
        foreach($data as $row) {
            for($i = 0; $i < count($row); $i++) {
                $this->Cell($widths[$i], 6, $row[$i], 1, 0, 'C');
            }
            $this->Ln();
        }
    }
    
    // إنشاء رأس القسم
    public function sectionHeader($title) {
        $this->SetFont('aealarabiya', 'B', 12);
        $this->SetFillColor(102, 126, 234, 0.1);
        $this->SetTextColor(102, 126, 234);
        $this->Cell(0, 8, $title, 0, 1, 'R');
        $this->SetTextColor(0, 0, 0);
        $this->Ln(2);
    }
}