<?php $title='خياطة المصر العماني'; include __DIR__ . '/../layout/header.php'; ?>
<div class="grid">
  <?php $canCreate = $canCreate ?? can_access_page('tailoring_store'); $canManageOrders = $canManageOrders ?? can_access_page('tailoring_ready'); ?>
<?php if($canCreate): ?>
<div class="col-5">
    <div class="card">
      <div class="page-head">
        <div>
          <h2 style="margin:0">طلب خياطة جديد</h2>
          <div class="muted">أدخل رقم الهاتف، وسيتم جلب اسم العميل تلقائياً إذا كان موجوداً.</div>
        </div>
        <span class="pill">سعر الواحدة: <?= e(number_format((float)($settings['tailoring_unit_price'] ?? '0'),3)) ?> <?= e($settings['queue_currency'] ?? 'ر.ع') ?></span>
      </div>

      <form method="post" action="<?= e(base_url('?page=tailoring_store')) ?>" id="tailoringForm">
        <input type="hidden" name="_csrf" value="<?= e(csrf_token()) ?>">
        <div class="grid">
          <div class="col-6">
            <label class="label">رقم الهاتف</label>
            <input class="input" name="phone" id="tailorPhone" placeholder="مثال: 71111711" required autocomplete="off">
            <div class="muted" id="lookupHint" style="margin-top:6px">سيتم البحث تلقائياً عند كتابة الرقم.</div>
          </div>
          <div class="col-6">
            <label class="label">اسم العميل</label>
            <input class="input" name="full_name" id="tailorName" placeholder="اسم العميل" required>
          </div>
          <div class="col-6">
            <label class="label">عدد المصار</label>
            <input class="input" type="number" min="1" max="50" name="qty" id="tailorQty" value="1" required>
          </div>
          <div class="col-6">
            <label class="label">الإجمالي</label>
            <div class="pill" id="tailorTotal"><?= e(number_format((float)($settings['tailoring_unit_price'] ?? '0'),3)) ?> <?= e($settings['queue_currency'] ?? 'ر.ع') ?></div>
          </div>
        </div>
        <div class="responsive-actions" style="margin-top:16px">
          <button class="btn" id="tailorSubmitBtn">إنشاء وطباعة التذكرة</button>
        </div>
      </form>
    </div>
  </div>
<?php endif; ?>

<?php if($canManageOrders): ?>
  <div class="col-7">
    <div class="card">
      <div class="page-head">
        <div>
          <h2 style="margin:0">طلبات الخياطة</h2>
          <div class="muted">ابحث برقم التذكرة أو رقم الهاتف أو اسم العميل</div>
        </div>
        <span class="pill" id="tailoringCount"><?= count($rows ?? []) ?> نتيجة</span>
      </div>

      <div class="toolbar" style="margin-bottom:14px">
        <input class="input" style="max-width:360px" id="tailoringSearch" value="<?= e($q ?? '') ?>" placeholder="ابحث بسرعة...">
        <button type="button" class="btn light" id="tailoringReset">إعادة تعيين</button>
      </div>

      <div class="table-wrap">
        <table class="table">
          <thead>
            <tr>
              <th>رقم التذكرة</th>
              <th>العميل</th>
              <th>الهاتف</th>
              <th>العدد</th>
              <th>الإجمالي</th>
              <th>الحالة</th>
              <th>إجراءات</th>
            </tr>
          </thead>
          <tbody id="tailoringRows">
          <?php foreach(($rows ?? []) as $row): 
            $searchBlob = mb_strtolower(trim(($row['ticket_no'] ?? '') . ' ' . ($row['full_name'] ?? '') . ' ' . ($row['phone'] ?? '')));
          ?>
            <tr data-search="<?= e($searchBlob) ?>">
              <td><strong><?= e($row['ticket_no']) ?></strong></td>
              <td><?= e($row['full_name']) ?></td>
              <td><?= e($row['phone']) ?></td>
              <td><?= (int)$row['qty'] ?></td>
              <td><?= e(number_format((float)$row['total_amount'],3)) ?> <?= e($settings['queue_currency'] ?? 'ر.ع') ?></td>
              <td><span class="badge"><?= $row['status'] === 'ready' ? 'تم التجهيز' : 'قيد التنفيذ' ?></span></td>
              <td>
                <div class="toolbar">
                  <a class="btn light" href="<?= e(base_url('?page=tailoring_print&id=' . (int)$row['id'])) ?>">طباعة</a>
                  <?php if($row['status'] !== 'ready'): ?>
                  <form method="post" action="<?= e(base_url('?page=tailoring_ready')) ?>" onsubmit="return confirm('تأكيد أن الطلب تم تجهيزه؟')">
                    <input type="hidden" name="_csrf" value="<?= e(csrf_token()) ?>">
                    <input type="hidden" name="id" value="<?= (int)$row['id'] ?>">
                    <button class="btn success">تم التجهيز</button>
                  </form>
                  <?php endif; ?>
                </div>
              </td>
            </tr>
          <?php endforeach; ?>
          <?php if(empty($rows)): ?>
            <tr id="tailoringEmptyRow"><td colspan="7" class="muted">لا توجد طلبات حالياً</td></tr>
          <?php endif; ?>
          </tbody>
        </table>
      </div>
      <div id="tailoringNoResults" class="muted hidden" style="margin-top:12px">لا توجد نتائج مطابقة للبحث.</div>
    </div>
  </div>
<?php endif; ?>
</div>

<?php if(!$canCreate && !$canManageOrders): ?>
  <div class="alert error">لا تملك صلاحيات خياطة المصر.</div>
<?php endif; ?>

<script>
(function(){
  const phone = document.getElementById('tailorPhone');
  const name = document.getElementById('tailorName');
  const qty = document.getElementById('tailorQty');
  const total = document.getElementById('tailorTotal');
  const lookupHint = document.getElementById('lookupHint');
  const unitPrice = <?= json_encode((float)($settings['tailoring_unit_price'] ?? '0'), JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES) ?>;
  const currency = <?= json_encode((string)($settings['queue_currency'] ?? 'ر.ع'), JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES) ?>;
  const lookupBase = <?= json_encode(base_url('?page=customer_lookup&q='), JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES) ?>;

  function calcTotal(){
    const q = Math.max(1, parseInt(qty.value || '1', 10));
    total.textContent = (q * parseFloat(unitPrice || 0)).toFixed(3) + ' ' + currency;
  }

  function normalizePhone(value){
    return String(value || '').replace(/\D+/g, '');
  }

  let timer = null;
  let lastLookupValue = '';
  phone.addEventListener('input', function(){
    clearTimeout(timer);
    calcTotal();

    const val = normalizePhone(this.value);
    if (!val) {
      lookupHint.textContent = 'سيتم البحث تلقائياً عند كتابة الرقم.';
      return;
    }

    lookupHint.textContent = 'جاري البحث...';
    timer = setTimeout(async () => {
      if (val === lastLookupValue) return;
      lastLookupValue = val;
      try {
        const res = await fetch(lookupBase + encodeURIComponent(val), {
          headers: { 'X-Requested-With': 'XMLHttpRequest' }
        });
        const data = await res.json();
        if (data && data.full_name) {
          name.value = data.full_name;
          if (parseInt(data.is_blacklisted || 0, 10) === 1) {
            lookupHint.textContent = 'هذا العميل محظور ولا يمكن تقديم خدمة له' + (data.blacklist_reason ? ' — ' + data.blacklist_reason : '');
            lookupHint.style.color = '#b42318';
            const btn = document.getElementById('tailorSubmitBtn');
            if (btn) btn.disabled = true;
          } else {
            lookupHint.textContent = 'تم العثور على العميل تلقائياً.';
            lookupHint.style.color = '';
            const btn = document.getElementById('tailorSubmitBtn');
            if (btn) btn.disabled = false;
          }
        } else {
          lookupHint.textContent = 'الرقم غير موجود، يمكنك إدخال الاسم وإكمال الطلب.';
          lookupHint.style.color = '';
          const btn = document.getElementById('tailorSubmitBtn');
          if (btn) btn.disabled = false;
        }
      } catch(e) {
        lookupHint.textContent = 'تعذر جلب بيانات العميل حالياً.';
      }
    }, 250);
  });

  qty.addEventListener('input', calcTotal);
  calcTotal();

  const searchInput = document.getElementById('tailoringSearch');
  const resetBtn = document.getElementById('tailoringReset');
  const rows = Array.from(document.querySelectorAll('#tailoringRows tr[data-search]'));
  const countBox = document.getElementById('tailoringCount');
  const noResults = document.getElementById('tailoringNoResults');

  function applyFilter(){
    const q = (searchInput.value || '').trim().toLowerCase();
    let visible = 0;
    rows.forEach(row => {
      const hay = (row.getAttribute('data-search') || '').toLowerCase();
      const match = !q || hay.indexOf(q) !== -1;
      row.style.display = match ? '' : 'none';
      if (match) visible++;
    });
    countBox.textContent = visible + ' نتيجة';
    noResults.classList.toggle('hidden', visible !== 0 || rows.length === 0);
  }

  if (searchInput) {
    searchInput.addEventListener('input', applyFilter);
  }

  if (resetBtn) {
    resetBtn.addEventListener('click', function(){
      searchInput.value = '';
      applyFilter();
      searchInput.focus();
    });
  }

  applyFilter();
})();
</script>
<?php include __DIR__ . '/../layout/footer.php'; ?>
