<?php
// print_invoice.php
require_once 'includes/config.php';
require_once 'includes/functions.php';

// وضع التصحيح (ضع false في الإنتاج)
define('DEBUG', true);

// التأكد من أن رقم الفاتورة موجود في الرابط
if (!isset($_GET['num'])) {
    die('رقم الفاتورة غير موجود');
}

$invoice_number = trim($_GET['num']);

// جلب الفاتورة من قاعدة البيانات برقم الفاتورة
$invoice = $db->fetchOne("SELECT * FROM invoices WHERE invoice_number = ?", [$invoice_number]);

if (!$invoice) {
    die('الفاتورة غير موجودة');
}

// لو رجع كائن حوله لمصفوفة
if (is_object($invoice)) {
    $invoice = (array)$invoice;
}

// جلب بيانات العميل
$customer = $db->fetchOne("SELECT name, phone FROM customers WHERE id = ?", [$invoice['customer_id']]);
if (is_object($customer)) {
    $customer = (array)$customer;
}

// جلب المنتجات المرتبطة بهذه الفاتورة
$items = $db->fetchAll("SELECT * FROM invoice_items WHERE invoice_id = ?", [$invoice['id']]);

// تأكد أن كل عنصر مصفوفة (إذا كانت كائنات)
foreach ($items as &$it) {
    if (is_object($it)) $it = (array)$it;
}
unset($it);

// ضع العناصر في $invoice['items'] بشكل آمن
$invoice['items'] = is_array($items) ? $items : [];

// دوال مساعدة
if (!function_exists('formatDate')) {
    function formatDate($dateString) {
        if (!$dateString) return '—';
        // إذا كان التاريخ يحتوي على وقت، نأخذ الجزء الخاص بالتاريخ فقط
        if (strpos($dateString, ' ') !== false) {
            $dateParts = explode(' ', $dateString);
            return date("d/m/Y", strtotime($dateParts[0]));
        }
        return date("d/m/Y", strtotime($dateString));
    }
}

if (!function_exists('formatCurrency')) {
    function formatCurrency($amount) {
        $num = floatval($amount);
        return number_format($num, 2) . ' ج.م';
    }
}

// معلومات العميل
$customerName  = $customer['name'] ?? 'غير محدد';
$customerPhone = $customer['phone'] ?? 'غير محدد';

// إذا لم يوجد المبلغ الكلي، نحسبه من عناصر الفاتورة
if (empty($invoice['total_amount'])) {
    $calcTotal = 0.0;
    foreach ($invoice['items'] as $it) {
        $rowTotal = null;
        if (isset($it['total'])) {
            $rowTotal = floatval($it['total']);
        } else {
            $price = isset($it['price']) ? floatval($it['price']) : 0;
            $qty   = isset($it['quantity']) ? floatval($it['quantity']) : 0;
            $rowTotal = $price * $qty;
        }
        $calcTotal += $rowTotal;
    }
    $invoice['total_amount'] = $calcTotal;
}

header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
    <meta charset="UTF-8">
    <title>طباعة فاتورة #<?= htmlspecialchars($invoice['invoice_number'] ?? '') ?></title>
    <link rel="stylesheet" href="./assets/css/print.css">
    <style>
        @page {
            size: A4;
            margin: 5mm;
        }
        body {
            font-family: 'Tajawal', sans-serif;
            line-height: 1.3;
            color: #333;
            margin: 0;
            padding: 5mm;
            font-size: 12pt;
            background-color: #fff;
        }
        .invoice-container {
            width: 100%;
            max-width: 210mm;
            margin: 0 auto;
            padding: 0;
        }
        .header {
            text-align: center;
            margin-bottom: 5mm;
            padding-bottom: 3mm;
            border-bottom: 1px solid #ddd;
        }
        .company-logo {
            height: 25mm;
            margin-bottom: 2mm;
        }
        .invoice-title {
            font-size: 16pt;
            margin: 2mm 0;
            color: #2c3e50;
        }
        .invoice-info {
            display: flex;
            justify-content: space-between;
            margin-bottom: 4mm;
            padding: 3mm;
            background: #f8f9fa;
            border-radius: 3px;
            font-size: 11pt;
        }
        .customer-info {
            margin-bottom: 4mm;
            padding: 2mm;
            font-size: 11pt;
        }
        .details-table {
            width: 100%;
            border-collapse: collapse;
            margin-bottom: 4mm;
            font-size: 10pt;
        }
        .details-table th {
            background-color: #f1f5f9;
            padding: 2mm;
            border: 1px solid #e2e8f0;
            font-weight: 600;
        }
        .details-table td {
            padding: 2mm;
            border: 1px solid #e2e8f0;
        }
        .total-amount {
            text-align: left;
            font-weight: bold;
            margin: 3mm 0;
            padding: 2mm;
            background: #f8f9fa;
            border-radius: 3px;
            font-size: 11pt;
        }
        .warranty-section {
            margin: 4mm 0;
            padding: 3mm;
            border: 1px dashed #94a3b8;
            border-radius: 4px;
            font-size: 10pt;
        }
        .warranty-title {
            font-weight: 600;
            margin-bottom: 2mm;
            color: #1e40af;
        }
        .warranty-list {
            padding-right: 15px;
            margin: 2mm 0;
        }
        .warranty-list li {
            margin-bottom: 1mm;
        }
        .footer {
            display: flex;
            justify-content: space-between;
            align-items: flex-end;
            margin-top: 5mm;
            padding-top: 3mm;
            border-top: 1px solid #e2e8f0;
            font-size: 10pt;
        }
        .contact-info {
            flex: 2;
        }
        .qr-section {
            flex: 1;
            text-align: center;
        }
        .qr-code {
            width: 20mm;
            height: 20mm;
            margin-bottom: 1mm;
        }
        .print-actions {
            text-align: center;
            margin: 5mm 0;
        }
        .print-btn {
            background-color: #3b82f6;
            color: white;
            border: none;
            padding: 8px 20px;
            border-radius: 4px;
            cursor: pointer;
            font-family: 'Tajawal';
            margin: 0 5px;
        }
        @media print {
            .no-print {
                display: none;
            }
            body {
                padding: 0;
            }
            .invoice-container {
                padding: 0;
            }
        }
    </style>
</head>
<body>
    <div class="invoice-container">
        <div class="header">
            <img src="logo.png" alt="شعار الشركة" class="company-logo">
            <h1 class="invoice-title">شهادة ضمان</h1>
        </div>

        <div class="invoice-info">
            <div>رقم الفاتورة: <strong><?= htmlspecialchars($invoice['invoice_number'] ?? '') ?></strong></div>
            <div>تاريخ الفاتورة: <strong><?= formatDate($invoice['created_at'] ?? '') ?></strong></div>
        </div>

        <div class="customer-info">
            <div><strong>العميل:</strong> <?= htmlspecialchars($customerName) ?></div>
            <div><strong>الهاتف:</strong> <?= htmlspecialchars($customerPhone) ?></div>
        </div>

        <table class="details-table">
            <thead>
                <tr>
                    <th width="40%">اسم المنتج</th>
                    <th width="15%">السعر</th>
                    <th width="10%">الكمية</th>
                    <th width="15%">الخصم</th>
                    <th width="20%">الإجمالي</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($invoice['items'] as $item): ?>
                <tr>
                    <td><?= htmlspecialchars($item['product_name'] ?? '') ?></td>
                    <td><?= formatCurrency($item['price'] ?? 0) ?></td>
                    <td><?= htmlspecialchars($item['quantity'] ?? 1) ?></td>
                    <td><?= isset($item['discount']) && $item['discount'] > 0 ? formatCurrency($item['discount']) : '—' ?></td>
                    <td><?= formatCurrency($item['total'] ?? ($item['price'] * $item['quantity'])) ?></td>
                </tr>
                <?php endforeach; ?>
            </tbody>
        </table>

        <div class="total-amount">
            المبلغ الإجمالي: <strong><?= formatCurrency($invoice['total_amount']) ?></strong>
        </div>

        <div class="warranty-section">
            <div class="warranty-title">شروط وأحكام الضمان:</div>
            <ul class="warranty-list">
                <li>تغطي شهادة الضمان عيوب التصنيع لمدة 3 شهور من تاريخ الشراء</li>
                <li>يشترط للحصول على خدمة الضمان تقديم الفاتورة الأصلية</li>
                <li>لا يشمل الضمان الأعطال الناتجة عن سوء الاستخدام أو العوامل الخارجية</li>
                <li>الضمان لا يشمل البطاريات والملحقات والاكسسوارات</li>
                <li>للاستفسار يرجى الاتصال على الأرقام التالية: 01090006526 - 01021270039 - 01015515978</li>
            </ul>
        </div>

        <div class="footer">
            <div class="contact-info">
                <div><strong>العنوان:</strong> كفر الشيخ - الشارع المقابل لصيدلية الأمل</div>
                <div><strong>ساعات العمل:</strong> يومياً من 10 صباحاً حتى 10 مساءً</div>
            </div>
            <div class="qr-section">
                <img src="./assets/images/qr-code.jpg" alt="QR Code" class="qr-code">
                <div>مسح الكود للتواصل</div>
            </div>
        </div>

        <div class="print-actions no-print">
            <button onclick="window.print()" class="print-btn">طباعة الفاتورة</button>
            <button onclick="window.close()" class="print-btn" style="background-color:#64748b">إغلاق النافذة</button>
        </div>
    </div>

    <script>
        document.addEventListener('DOMContentLoaded', function() {
            setTimeout(function() {
                window.print();
                
                if(window.opener) {
                    setTimeout(function() {
                        window.close();
                    }, 500);
                }
            }, 500);
        });
    </script>
</body>
</html>