<?php
$report = is_array($report ?? null) ? $report : [];
$columns = is_array($columns ?? null) ? $columns : [];
$rows = is_array($rows ?? null) ? $rows : [];
$summary = is_array($summary ?? null) ? $summary : [];
$filters = is_array($filters ?? null) ? $filters : [];
$lookups = is_array($lookups ?? null) ? $lookups : [];

$selectedText = static function(array $lookups, string $key): string {
    $row = is_array($lookups[$key] ?? null) ? $lookups[$key] : [];
    return (string)($row['text'] ?? '');
};

$activeFilters = [];
$from = trim((string)($filters['from'] ?? ''));
$to = trim((string)($filters['to'] ?? ''));
if ($from !== '' || $to !== '') {
    $activeFilters[] = ['label' => 'الفترة', 'value' => ($from !== '' ? $from : '...') . ' - ' . ($to !== '' ? $to : '...')];
}
$filterConfig = is_array($filter_config ?? null) ? $filter_config : [];
$partyLabel = trim((string)($filterConfig['party_label'] ?? 'العميل / الطرف'));
if ($partyLabel === '') { $partyLabel = 'العميل / الطرف'; }
$filterValues = [
    'بحث' => trim((string)($filters['q'] ?? '')),
    $partyLabel => $selectedText($lookups, 'selected_party'),
    'الصنف' => $selectedText($lookups, 'selected_item'),
    'المخزن' => $selectedText($lookups, 'selected_warehouse'),
    'الخزنة' => $selectedText($lookups, 'selected_cashbox'),
    'الحساب البنكي' => $selectedText($lookups, 'selected_bank_account'),
    'المستخدم' => $selectedText($lookups, 'selected_user'),
    'طريقة الدفع' => trim((string)($filters['payment_mode'] ?? '')),
    'الحالة' => trim((string)($filters['status'] ?? '')),
    'مبلغ من' => trim((string)($filters['amount_min'] ?? '')),
    'مبلغ إلى' => trim((string)($filters['amount_max'] ?? '')),
    'قيمة من' => trim((string)($filters['value_min'] ?? '')),
    'قيمة إلى' => trim((string)($filters['value_max'] ?? '')),
    'فرق سعر أكبر من' => trim((string)($filters['diff_min'] ?? '')),
    'هامش أقل من' => trim((string)($filters['margin_max'] ?? '')),
    'أيام عدم الحركة' => trim((string)($filters['inactive_days'] ?? '')),
    'نوع الحركة' => trim((string)($filters['movement_type'] ?? '')),
    'ترتيب الحركة' => trim((string)($filters['movement_sort'] ?? '')),
];
foreach ($filterValues as $label => $value) {
    if ($value !== '' && $value !== '0' && !($label === 'ترتيب الحركة' && $value === 'total')) {
        $activeFilters[] = ['label' => $label, 'value' => $value];
    }
}
if (!empty($filters['non_zero'])) { $activeFilters[] = ['label' => 'وضع الرصيد', 'value' => 'غير الصفري فقط']; }
if (!empty($filters['negative_only'])) { $activeFilters[] = ['label' => 'وضع الرصيد', 'value' => 'السالب فقط']; }
if (!empty($filters['below_reorder'])) { $activeFilters[] = ['label' => 'حد الطلب', 'value' => 'أقل من حد إعادة الطلب']; }
if (!empty($filters['show_cost'])) { $activeFilters[] = ['label' => 'التكلفة', 'value' => 'عرض التكلفة']; }
?>
<section class="report-print-section">
  <div class="report-title-line">
    <div>
      <h1><?= e((string)($report['title'] ?? ($title ?? 'تقرير'))) ?></h1>
      <?php if (!empty($report['description'])): ?><p><?= e((string)$report['description']) ?></p><?php endif; ?>
    </div>
    <div class="report-generated-box">
      <div><span>تاريخ التقرير</span><strong><?= e((string)($reportDate ?? date('Y-m-d'))) ?></strong></div>
      <div><span>المستخدم</span><strong><?= e((string)($userName ?? '')) ?></strong></div>
      <div><span>عدد النتائج</span><strong><?= e((string)count($rows)) ?></strong></div>
    </div>
  </div>

  <?php if ($activeFilters): ?>
    <div class="report-compact-panel">
      <h3>الفلاتر المستخدمة</h3>
      <table class="report-mini-table">
        <tbody>
        <?php foreach ($activeFilters as $filter): ?>
          <tr><th><?= e((string)$filter['label']) ?></th><td><?= e((string)$filter['value']) ?></td></tr>
        <?php endforeach; ?>
        </tbody>
      </table>
    </div>
  <?php endif; ?>

  <?php if ($summary): ?>
    <div class="report-compact-panel">
      <h3>ملخص التقرير</h3>
      <table class="report-summary-table">
        <tbody>
        <?php $i=0; foreach ($summary as $k => $v): ?>
          <?php if ($i % 3 === 0): ?><tr><?php endif; ?>
            <th><?= e((string)$k) ?></th><td><?= e((string)$v) ?></td>
          <?php $i++; if ($i % 3 === 0): ?></tr><?php endif; ?>
        <?php endforeach; ?>
        <?php if ($i % 3 !== 0): ?><?= str_repeat('<th></th><td></td>', 3 - ($i % 3)) ?></tr><?php endif; ?>
        </tbody>
      </table>
    </div>
  <?php endif; ?>

  <div class="report-table-title">تفاصيل النتائج</div>
  <table class="report-print-table">
    <thead>
      <tr><?php foreach ($columns as $label): ?><th><?= e((string)$label) ?></th><?php endforeach; ?></tr>
    </thead>
    <tbody>
      <?php if (!$rows): ?>
        <tr><td colspan="<?= max(1, count($columns)) ?>" class="text-center">لا توجد بيانات</td></tr>
      <?php endif; ?>
      <?php foreach ($rows as $r): ?>
        <tr><?php foreach (array_keys($columns) as $key): ?><td><?= e((string)($r[$key] ?? '')) ?></td><?php endforeach; ?></tr>
      <?php endforeach; ?>
    </tbody>
  </table>
</section>
