<?php
// search_invoice.php

$page_title = 'بحث عن فاتورة برقم الفاتورة فقط';
require_once 'includes/header.php';

/**
 * البحث عن الفواتير برقم الفاتورة فقط
 */
function searchInvoicesByNumber(int $invoice_number): array
{
    if (!isset($GLOBALS['pdo']) || !$GLOBALS['pdo']) {
        $dbFile = __DIR__ . '/includes/db.php';
        if (file_exists($dbFile)) {
            require_once $dbFile;
        }
    }

    if (!isset($GLOBALS['pdo']) || !$GLOBALS['pdo']) {
        throw new RuntimeException('لا يوجد اتصال بقاعدة البيانات.');
    }

    /** @var PDO $pdo */
    $pdo = $GLOBALS['pdo'];

    $sql = "SELECT 
                invoices.id, 
                invoices.invoice_number, 
                invoices.date, 
                invoices.total_amount,
                COALESCE(customers.name, 'عميل نقدي') AS customer_name
            FROM invoices
            LEFT JOIN customers ON customers.id = invoices.customer_id
            WHERE invoices.invoice_number = :invoice
            ORDER BY invoices.id DESC
            LIMIT 50";

    $stmt = $pdo->prepare($sql);
    $stmt->execute([':invoice' => $invoice_number]);

    return $stmt->fetchAll(PDO::FETCH_ASSOC) ?: [];
}

// دوال تنسيق
if (!function_exists('formatDate')) {
    function formatDate(?string $date): string
    {
        if (!$date) return '-';
        $ts = strtotime($date);
        return $ts ? date('Y-m-d', $ts) : htmlspecialchars($date, ENT_QUOTES, 'UTF-8');
    }
}

if (!function_exists('formatCurrency')) {
    function formatCurrency($amount): string
    {
        $num = is_numeric($amount) ? (float) $amount : 0.0;
        return number_format($num, 2) . ' ج.م';
    }
}

// منطق المعالجة
$search_results = [];
$invoice_input = '';
$error_message = null;

if (isset($_GET['invoice'])) {
    $invoice_input = trim($_GET['invoice']);

    if ($invoice_input === '') {
        $error_message = 'يرجى إدخال رقم الفاتورة.';
    } elseif (!ctype_digit($invoice_input)) {
        $error_message = 'رقم الفاتورة يجب أن يكون أرقامًا فقط.';
    } else {
        $invoice_number = (int) $invoice_input;

        try {
            $search_results = searchInvoicesByNumber($invoice_number);
            if (empty($search_results)) {
                $error_message = 'لا توجد فواتير مطابقة لهذا الرقم.';
            }
        } catch (Throwable $e) {
            $error_message = 'حدث خطأ أثناء البحث. الرجاء المحاولة لاحقًا.';
        }
    }
}
?>

<div class="content-section" id="search-invoice">
    <div class="section-header">
        <h3>🔍 بحث عن فاتورة</h3>
        <p style="margin:6px 0 0; color:#666; font-size:.95rem;">
            أدخل رقم الفاتورة فقط للبحث — حمايةً لخصوصية العملاء.
        </p>
    </div>

    <!-- نموذج البحث -->
    <form class="search-form" method="GET" action="search_invoice.php"
        style="display:flex; gap:10px; align-items:center; margin-top:12px;">
        <input type="number" id="searchInput" name="invoice" inputmode="numeric" min="1" step="1"
            placeholder="🧾 أدخل رقم الفاتورة هنا..."
            value="<?= htmlspecialchars($invoice_input, ENT_QUOTES, 'UTF-8') ?>"
            style="flex:1; padding:12px 14px; border:1px solid #ccc; border-radius:8px; font-size:1rem;" required>

        <button type="submit" class="btn btn-primary"
            style="padding:12px 20px; border:none; border-radius:8px; cursor:pointer; background:#007bff; color:#fff; font-weight:bold;">
            <i class="fas fa-search"></i> بحث
        </button>
    </form>

    <!-- رسائل الخطأ -->
    <div id="searchResults" style="margin-top:20px;">
        <?php if ($error_message): ?>
            <div class="alert alert-warning"
                style="background:#fff3cd; border:1px solid #ffeeba; padding:14px; border-radius:8px; color:#856404; font-size:1rem;">
                <?= htmlspecialchars($error_message, ENT_QUOTES, 'UTF-8') ?>
            </div>
        <?php elseif (isset($_GET['invoice'])): ?>
            <div style="margin-top: 15px;">
                <h4>📋 نتيجة البحث</h4>

                <table class="items-table" style="width:100%; border-collapse:collapse; margin-top:12px; font-size:.95rem;">
                    <thead>
                        <tr style="background:#f1f1f1;">
                            <th style="padding:12px; border-bottom:2px solid #ddd;">رقم الفاتورة</th>
                            <th style="padding:12px; border-bottom:2px solid #ddd;">التاريخ</th>
                            <th style="padding:12px; border-bottom:2px solid #ddd;">اسم العميل</th>
                            <th style="padding:12px; border-bottom:2px solid #ddd;">المبلغ الإجمالي</th>
                            <th style="padding:12px; border-bottom:2px solid #ddd;">الإجراءات</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php foreach ($search_results as $invoice): ?>
                            <tr style="border-bottom:1px solid #eee;">
                                <td style="padding:10px;"><?= htmlspecialchars($invoice['invoice_number'], ENT_QUOTES, 'UTF-8') ?></td>
                                <td style="padding:10px;"><?= formatDate($invoice['date'] ?? null) ?></td>
                                <td style="padding:10px;"><?= htmlspecialchars($invoice['customer_name'], ENT_QUOTES, 'UTF-8') ?></td>
                                <td style="padding:10px; font-weight:bold;"><?= formatCurrency($invoice['total_amount'] ?? 0) ?></td>
                                <td style="padding:10px;">
                                    <a href="view_invoice.php?num=<?= urlencode($invoice['invoice_number']) ?>"
                                        class="btn"
                                        style="padding:8px 14px; border-radius:6px; text-decoration:none; background:#17a2b8; color:#fff; font-weight:bold; margin-inline-end:6px;">
                                        👁 عرض
                                    </a>

                                    <a href="print_invoice.php?num=<?= urlencode($invoice['invoice_number']) ?>" target="_blank"
                                        class="btn"
                                        style="padding:8px 14px; border-radius:6px; text-decoration:none; background:#28a745; color:#fff; font-weight:bold;">
                                        🖨 طباعة
                                    </a>
                                </td>
                            </tr>
                        <?php endforeach; ?>
                        <?php if (empty($search_results)): ?>
                            <tr>
                                <td colspan="5" style="padding:14px; text-align:center; color:#999;">لا توجد نتائج مطابقة.</td>
                            </tr>
                        <?php endif; ?>
                    </tbody>
                </table>
            </div>
        <?php endif; ?>
    </div>
</div>

<?php
require_once 'includes/footer.php';
?>
