<!doctype html>
<html lang="tr">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover">
  <meta name="robots" content="noindex,nofollow">
  <meta name="description" content="WarehouseIQ depo operasyon merkezi">
  <meta name="theme-color" content="#071018">
  <meta name="color-scheme" content="dark">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  <meta name="apple-mobile-web-app-title" content="WarehouseIQ">
  <title>WarehouseIQ · Operasyon Merkezi</title>
  <link rel="manifest" href="/manifest.webmanifest">
  <link rel="icon" href="/favicon.ico">
  <link rel="apple-touch-icon" href="/assets/icons/favicon-192.png">
  <link rel="stylesheet" href="/css/operations-center.css?v=20260923-ui2">
  <link rel="stylesheet" href="/css/barcode-scanner.css">
  <link rel="stylesheet" href="/css/receiving-mobile.css">
  <link rel="stylesheet" href="/css/putaway-mobile.css?v=20260918-1">
<link rel="stylesheet" href="/css/picking-mobile.css">
<link rel="stylesheet" href="/css/packing-mobile.css">
<link rel="stylesheet" href="/css/cycle-count-mobile.css">
  <link rel="stylesheet" href="/css/warehouse/warehouseiq-ui-v3.css?v=20260923-v3">
  <link rel="stylesheet" href="/css/warehouse/warehouseiq-shell.css?v=20260923-shell2">
  <link rel="stylesheet" href="/css/warehouse/warehouseiq-workspace.css?v=20260923-workspace1">
  <link rel="stylesheet" href="/css/warehouse/warehouseiq-receiving-pro.css?v=20260923-receiving-pro1">
  <link rel="stylesheet" href="/css/warehouse/warehouseiq-putaway-picking-pro.css?v=20260923-putaway-picking1">
  <link rel="stylesheet" href="/css/warehouse/warehouseiq-pack-ship-count-pro.css?v=20260923-pack-ship-count1">
</head>
<body>
<div class="shell">
  <aside class="side">
    <div class="warehouse-mobile-header">
      <a class="brand" href="/"><b>W</b><span><strong>WarehouseIQ</strong><small>Akıllı Depo Yönetimi</small></span></a>
      <button
        id="warehouse-menu-toggle"
        class="warehouse-menu-toggle"
        type="button"
        aria-controls="warehouse-nav"
        aria-expanded="false"
        aria-label="Operasyon menüsünü aç"
      >
        <span aria-hidden="true"></span>
        <span aria-hidden="true"></span>
        <span aria-hidden="true"></span>
      </button>
    </div>
    <nav id="warehouse-nav" aria-label="WarehouseIQ ana menüsü">
  <p>ANA EKRAN</p>
  <a href="#genel" data-shell-nav="genel">⌂ <span>Genel Bakış</span></a>

  <p>OPERASYONLAR</p>
  <a href="#mal-kabul" data-shell-nav="mal-kabul">⇥ <span>Mal Kabul</span></a>
  <a href="#yerlestirme" data-shell-nav="yerlestirme">⌑ <span>Yerleştirme</span></a>
  <a href="#toplama" data-shell-nav="toplama">⌁ <span>Toplama</span></a>
  <a href="#paketleme" data-shell-nav="paketleme">▣ <span>Paketleme</span></a>
  <a href="#sayim" data-shell-nav="sayim">≋ <span>Sayım</span></a>
  <a href="#sevkiyat-panel" data-shell-nav="sevkiyat-panel">→ <span>Sevkiyat</span></a>

  <p>DEPO</p>
  <a href="#stok" data-shell-nav="stok">▦ <span>Stok Yönetimi</span></a>
  <a href="#depo-yonetimi" data-shell-nav="depo-yonetimi">▣ <span>Depo Yönetimi</span></a>
  <a href="#lokasyonlar" data-shell-nav="lokasyonlar">⌗ <span>Lokasyon Yönetimi</span></a>

  <p>ANALİZ</p>
  <a href="#surecler" data-shell-nav="surecler">✓ <span>Operasyon Akışı</span></a>
  <a href="#uyarilar" data-shell-nav="uyarilar">! <span>Uyarılar</span></a>
  <a href="#raporlar" data-shell-nav="raporlar">▥ <span>Raporlar</span></a>

  <p>YAPAY ZEKA</p>
  <a href="#copilot" data-shell-nav="copilot">✦ <span>AI Copilot</span></a>

  <p>YÖNETİCİ</p>
  <a href="#aksiyonlar" data-shell-nav="aksiyonlar">↗ <span>Yönetici Aksiyonları</span></a>
</nav>
    <div class="ready"><i></i><span><strong id="sistem-durumu">Bağlantı bekleniyor</strong><small>Yetkili operasyon görünümü</small></span></div>
  </aside>

  <button
    id="warehouse-nav-backdrop"
    class="warehouse-nav-backdrop"
    type="button"
    aria-label="Operasyon menüsünü kapat"
    hidden
  ></button>

  <main>
    <header class="top">
      <div>
        <em>İSTEBUL · WAREHOUSEIQ</em>
        <h1>Operasyon Merkezi</h1>
        <p>Depo performansını, riskleri ve öncelikli aksiyonları tek ekranda izleyin.</p>
      </div>
      <div class="top-actions">
        <span class="demo" id="veri-durumu" data-state="loading">Canlı veri yükleniyor</span>
        <button
          id="barkod-tarayici-ac"
          class="barcode-scan-action"
          type="button"
          aria-controls="barkod-tarayici"
          aria-expanded="false"
        >Barkod Tara</button>
        <button id="pwa-eylem" class="pwa-action" type="button" hidden>Uygulamayı yükle</button>
        <select id="depo" aria-label="Depo seçimi" disabled>
          <option value="">Firma geneli</option>
        </select>
      </div>
    </header>

    <div class="note" id="durum-kutusu">
      <span id="durum-mesaji"><strong>Güvenli bağlantı.</strong> WarehouseIQ operasyon verileri yetkili kullanıcı oturumu ile yükleniyor.</span>
      <span id="zaman">Son güncelleme: —</span>
    </div>

    <section
      id="barkod-tarayici"
      class="barcode-scanner"
      aria-labelledby="barkod-tarayici-baslik"
      hidden
    >
      <div class="barcode-scanner-head">
        <div>
          <em>MOBİL SAHA</em>
          <h2 id="barkod-tarayici-baslik">Barkod Tarayıcı</h2>
          <p>Kamera ile tek bir barkod okutun veya kodu elle girin.</p>
        </div>
        <button id="barkod-tarayici-kapat" class="barcode-secondary-action" type="button">Kapat</button>
      </div>

      <div class="barcode-scanner-grid">
        <div class="barcode-camera-shell">
          <video id="barkod-video" playsinline muted aria-label="Barkod tarama kamerası"></video>
          <div class="barcode-reticle" aria-hidden="true"></div>
          <span id="barkod-kamera-durumu" class="barcode-camera-state">Kamera kapalı</span>
        </div>

        <div class="barcode-scanner-controls">
          <p id="barkod-durum" class="barcode-status" role="status" aria-live="polite">
            Kamerayı yalnız siz başlattığınızda açarız. Kamera kullanılamıyorsa barkodu elle girebilirsiniz.
          </p>

          <button id="barkod-kamera-baslat" class="barcode-primary-action" type="button">Kamerayı Aç</button>

          <form id="barkod-manuel-form" class="barcode-manual-form">
            <label for="barkod-manuel-deger">Manuel barkod girişi</label>
            <div>
              <input
                id="barkod-manuel-deger"
                name="barcode"
                type="text"
                inputmode="text"
                autocomplete="off"
                autocapitalize="off"
                spellcheck="false"
                maxlength="256"
                placeholder="Barkod değerini girin"
              >
              <button class="barcode-secondary-action" type="submit">Kodu Kullan</button>
            </div>
          </form>

          <div id="barkod-sonuc" class="barcode-result" hidden>
            <small>Son okuma</small>
            <strong id="barkod-sonuc-deger"></strong>
            <span id="barkod-sonuc-meta"></span>
          </div>
        </div>
      </div>

      <p class="barcode-safety-note">
        Bu temel sürüm tarama sonucunu yalnızca tarayıcı içinde üretir. Barkod sonucu herhangi bir depo işlemine veya veri tabanına otomatik olarak yazılmaz.
      </p>
    </section>

    <section id="genel">
      <div class="heading">
        <div><em>GÜNCEL</em><h2>Operasyon sağlığı</h2></div>
        <div class="tabs" aria-label="Rapor dönemi">
          <button class="active" type="button">Güncel</button>
          <button type="button" disabled title="Dönemsel KPI görünümü sonraki sürümde etkinleştirilecektir.">7 Gün</button>
          <button type="button" disabled title="Dönemsel KPI görünümü sonraki sürümde etkinleştirilecektir.">30 Gün</button>
        </div>
      </div>

      <div class="kpis">
        <article><span>Operasyon Sağlık Skoru</span><strong data-kpi="health">—</strong><small data-meta="health">Veri bekleniyor</small></article>
        <article><span>Zamanında Sevkiyat</span><strong data-kpi="dispatch">—</strong><small data-meta="dispatch">Veri bekleniyor</small></article>
        <article><span>Stok Doğruluğu</span><strong data-kpi="inventory">—</strong><small data-meta="inventory">Veri bekleniyor</small></article>
        <article><span>Kapasite Kullanımı</span><strong data-kpi="capacity">—</strong><small data-meta="capacity">Veri bekleniyor</small></article>
        <article><span>Görev Tamamlama</span><strong data-kpi="tasks">—</strong><small data-meta="tasks">Veri bekleniyor</small></article>
        <article><span>Personel Verimliliği</span><strong data-kpi="labor">—</strong><small data-meta="labor">Veri bekleniyor</small></article>
      </div>
    </section>

    <div class="grid">
      <article class="panel full warehouse-receiving-panel" id="mal-kabul">
        <div class="heading">
          <div>
            <em>MOBİL OPERASYON</em>
            <h2>Mal Kabul</h2>
          </div>
          <span class="count">Barkod + Onay</span>
        </div>

        <p class="warehouse-receiving-help">
          Aktif mal kabul kaydını seçin ve ürün barkodunu okutun. Barkod okutma tek başına stok veya mal kabul miktarı yazmaz.
        </p>

        <section class="warehouse-receiving-setup" aria-labelledby="mal-kabul-hazirlama-baslik">
          <div class="warehouse-receiving-setup-heading">
            <div>
              <em>MAL KABUL HAZIRLAMA</em>
              <h3 id="mal-kabul-hazirlama-baslik">Yeni Mal Kabul</h3>
            </div>
            <span class="count">Oluştur + Başlat</span>
          </div>

          <div class="warehouse-receiving-grid">
            <div class="warehouse-receiving-field">
              <label for="mal-kabul-lokasyon">Mal kabul lokasyonu</label>
              <select id="mal-kabul-lokasyon" disabled>
                <option value="">Lokasyonlar yükleniyor</option>
              </select>
            </div>

            <div class="warehouse-receiving-field">
              <label for="mal-kabul-kaynak">Kaynak</label>
              <select id="mal-kabul-kaynak"></select>
            </div>

            <div class="warehouse-receiving-field">
              <label for="mal-kabul-tedarikci">Tedarikçi</label>
              <input
                id="mal-kabul-tedarikci"
                type="text"
                maxlength="160"
                placeholder="İsteğe bağlı"
              >
            </div>

            <div class="warehouse-receiving-field">
              <label for="mal-kabul-referans">Referans / belge no</label>
              <input
                id="mal-kabul-referans"
                type="text"
                maxlength="120"
                placeholder="İsteğe bağlı"
              >
            </div>
          </div>

          <div class="warehouse-receiving-setup-actions">
            <button id="mal-kabul-olustur" type="button">
              Taslak Mal Kabul Oluştur
            </button>
          </div>

          <div class="warehouse-receiving-setup-divider"></div>

          <div class="warehouse-receiving-setup-heading">
            <div>
              <em>ÜRÜN SATIRI</em>
              <h3>Beklenen Ürün</h3>
            </div>
          </div>

          <div class="warehouse-receiving-grid">
            <div class="warehouse-receiving-field">
              <label for="mal-kabul-urun-arama">Ürün kodu / adı</label>
              <input
                id="mal-kabul-urun-arama"
                type="search"
                autocomplete="off"
                placeholder="En az 2 karakter"
              >
            </div>

            <div class="warehouse-receiving-field">
              <label>&nbsp;</label>
              <button id="mal-kabul-urun-ara" type="button">
                Ürün Ara
              </button>
            </div>

            <div class="warehouse-receiving-field">
              <label>Seçili ürün</label>
              <div id="mal-kabul-urun-secili" class="warehouse-receiving-selected">
                Henüz ürün seçilmedi
              </div>
            </div>

            <div class="warehouse-receiving-field">
              <label for="mal-kabul-urun-barkod">Ürün barkodu</label>
              <input
                id="mal-kabul-urun-barkod"
                type="text"
                maxlength="128"
                autocomplete="off"
                disabled
                placeholder="Önce ürün seçin"
              >
              <small id="mal-kabul-urun-barkodlar">
                Ürün seçildiğinde tanımlı barkodlar gösterilir.
              </small>
            </div>

            <div class="warehouse-receiving-field">
              <label for="mal-kabul-urun-miktar">Beklenen miktar</label>
              <input
                id="mal-kabul-urun-miktar"
                type="number"
                inputmode="decimal"
                min="0.000001"
                step="0.000001"
                value="1"
              >
            </div>

            <div class="warehouse-receiving-field">
              <label for="mal-kabul-urun-birim">Birim</label>
              <select id="mal-kabul-urun-birim">
                <option value="piece">Adet</option>
                <option value="box">Kutu</option>
                <option value="case">Koli</option>
                <option value="package">Paket</option>
                <option value="pallet">Palet</option>
                <option value="kilogram">Kilogram</option>
                <option value="gram">Gram</option>
                <option value="liter">Litre</option>
                <option value="milliliter">Mililitre</option>
                <option value="meter">Metre</option>
                <option value="square_meter">m²</option>
                <option value="cubic_meter">m³</option>
              </select>
            </div>
          </div>

          <div
            id="mal-kabul-urun-sonuc"
            class="warehouse-receiving-product-results"
            aria-live="polite"
          ></div>

          <div class="warehouse-receiving-setup-actions">
            <button id="mal-kabul-barkod-tanimla" type="button" disabled>
              Barkodu Ürüne Tanımla
            </button>
            <button id="mal-kabul-urun-ekle" type="button">
              Ürün Satırını Ekle
            </button>
            <button id="mal-kabul-baslat" type="button">
              Mal Kabulünü Başlat
            </button>
          </div>

          <p
            id="mal-kabul-hazirlama-mesaji"
            class="warehouse-receiving-message"
            data-state="waiting"
            role="status"
            aria-live="polite"
          >
            Yetkili depo seçildiğinde mal kabul hazırlama işlemi kullanılabilir.
          </p>
        </section>

        <div class="warehouse-receiving-grid">
          <div class="warehouse-receiving-field">
            <label for="mal-kabul-secimi">Mal kabul kaydı</label>
            <select id="mal-kabul-secimi" disabled>
              <option value="">Aktif mal kabul kayıtları yükleniyor</option>
            </select>
          </div>

          <div class="warehouse-receiving-field">
            <label for="mal-kabul-barkod">Okutulan barkod</label>
            <input
              id="mal-kabul-barkod"
              type="text"
              disabled
              autocomplete="off"
              placeholder="Önce mal kabul kaydı seçin"
            >
          </div>

          <div class="warehouse-receiving-field">
            <label>&nbsp;</label>
            <button id="mal-kabul-barkod-dogrula" type="button" disabled>
              Barkodu Doğrula
            </button>
          </div>
        </div>

        <p
          id="mal-kabul-mesaji"
          class="warehouse-receiving-message"
          data-state="waiting"
          role="status"
          aria-live="polite"
        >
          Yetkili depo ve aktif mal kabul kayıtları bekleniyor.
        </p>

        <div
          id="mal-kabul-eslesme"
          class="warehouse-receiving-match"
          hidden
        ></div>

        <div class="warehouse-receiving-confirmation">
          <div class="warehouse-receiving-field">
            <label for="mal-kabul-miktar">Kabul miktarı</label>
            <input
              id="mal-kabul-miktar"
              type="number"
              inputmode="decimal"
              min="0.000001"
              step="0.000001"
              value="1"
              disabled
            >
          </div>

          <button
            id="mal-kabul-onayla"
            type="button"
            disabled
          >
            Miktarı Kabul Et
          </button>
        </div>

        <div class="warehouse-receiving-complete">
          <p>
            Mal kabulü tamamlamak stok hareketlerinin atomik olarak oluşturulmasını başlatır. Bu işlem miktar kabulünden ayrı bir kullanıcı onayı gerektirir.
          </p>

          <button
            id="mal-kabul-tamamla"
            type="button"
            disabled
          >
            Mal Kabulü Tamamla
          </button>
        </div>
      </article>

<article class="panel full warehouse-putaway-panel" id="yerlestirme">
  <div class="heading">
    <div>
      <em>MOBİL OPERASYON</em>
      <h2>Yerleştirme</h2>
    </div>
    <span class="count">2 Barkod + Onay</span>
  </div>

  <p class="warehouse-putaway-help">
    Aktif yerleştirme kaydını seçin. Önce ürün veya SKU barkodunu, ardından hedef lokasyon barkodunu okutun. Barkod okutma tek başına stok hareketi oluşturmaz.
  </p>

  <div class="warehouse-putaway-grid">
    <div class="warehouse-putaway-field">
      <label for="yerlestirme-secimi">Yerleştirme kaydı</label>
      <select id="yerlestirme-secimi" disabled>
        <option value="">Aktif yerleştirme kayıtları yükleniyor</option>
      </select>
    </div>

    <div class="warehouse-putaway-field">
      <label for="yerlestirme-asama">Barkod aşaması</label>
      <input
        id="yerlestirme-asama"
        type="text"
        readonly
        value="Ürün / SKU barkodu bekleniyor"
      >
    </div>
  </div>

  <p
    id="yerlestirme-mesaji"
    class="warehouse-putaway-message"
    data-state="waiting"
    role="status"
    aria-live="polite"
  >
    Yetkili depo ve aktif yerleştirme kayıtları bekleniyor.
  </p>

  <div class="warehouse-putaway-scan-grid">
    <section class="warehouse-putaway-scan-step">
      <small>1. ADIM</small>
      <strong>Ürün / SKU barkodu</strong>
      <input
        id="yerlestirme-urun-barkod"
        type="text"
        placeholder="Ürün barkodu bekleniyor"
      >
      <div
        id="yerlestirme-urun-eslesme"
        class="warehouse-putaway-match"
        hidden
      ></div>
    </section>

    <section class="warehouse-putaway-scan-step">
      <small>2. ADIM</small>
      <strong>Hedef lokasyon barkodu</strong>
      <input
        id="yerlestirme-lokasyon-barkod"
        type="text"
        placeholder="Önce ürün doğrulanmalıdır"
      >
      <div
        id="yerlestirme-lokasyon-eslesme"
        class="warehouse-putaway-match"
        hidden
      ></div>
    </section>
  </div>

  <div class="warehouse-putaway-confirmation">
    <div class="warehouse-putaway-field">
      <label for="yerlestirme-miktar">Yerleştirme miktarı</label>
      <input
        id="yerlestirme-miktar"
        type="number"
        inputmode="decimal"
        min="0.000001"
        step="0.000001"
        value="1"
        disabled
      >
    </div>

    <button
      id="yerlestirme-onayla"
      type="button"
      disabled
    >
      Yerleştirmeyi Onayla
    </button>
  </div>

  <div class="warehouse-putaway-complete">
    <p>
      Yerleştirmeyi tamamlama işlemi, tüm satırlar yerleştirildikten sonra ayrıca açık kullanıcı onayı gerektirir. Tamamlama işlemi yeni stok transferi oluşturmaz; yalnız doğrulanmış yerleştirme yaşam döngüsünü tamamlar.
    </p>

    <button
      id="yerlestirme-tamamla"
      type="button"
      disabled
    >
      Yerleştirmeyi Tamamla
    </button>
  </div>
</article>


<article class="panel full warehouse-picking-management-panel" id="toplama-yonetim">
  <div class="heading">
    <div>
      <em>OPERASYON YÖNETİMİ</em>
      <h2>Toplama Yönetimi</h2>
    </div>
    <span class="count">Oluştur · Satır · Görev · Başlat</span>
  </div>

  <p class="warehouse-picking-management-help">
    Toplama kaydını oluşturun, ürün satırlarını ekleyin, kaynak lokasyondan görev
    oluşturun ve toplama operasyonunu başlatın. Fiziksel stok hareketi yalnız
    mevcut toplama operasyonundaki açık onaylı işlem akışı üzerinden yürütülür.
  </p>

  <p
    id="toplama-yonetim-session"
    class="warehouse-picking-management-status"
    data-state="waiting"
    role="status"
    aria-live="polite"
  >
    Sistem bağlantısı kontrol ediliyor
  </p>

  <div class="warehouse-picking-management-grid">

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-depo">Depo</label>
      <input
        id="toplama-yonetim-depo"
        type="text"
        placeholder="Operations Center'dan seçilir"
        autocomplete="off"
        readonly
      >
    </div>

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-hedef-lokasyon">Hedef lokasyon</label>
      <input
        id="toplama-yonetim-hedef-lokasyon"
        type="text"
        placeholder="Hedef lokasyon UUID"
        autocomplete="off"
      >
    </div>

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-strateji">Strateji</label>
      <input
        id="toplama-yonetim-strateji"
        type="text"
        value="single_order"
        placeholder="single_order"
        autocomplete="off"
      >
    </div>

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-oncelik">Öncelik</label>
      <input
        id="toplama-yonetim-oncelik"
        type="number"
        min="1"
        max="100"
        step="1"
        value="50"
      >
    </div>

  </div>

  <div class="warehouse-picking-management-actions">
    <button
      id="toplama-yonetim-olustur"
      type="button"
    >
      Toplama Oluştur
    </button>
  </div>

  <div class="warehouse-picking-management-result">
    <span>Toplama ID</span>
    <strong id="toplama-yonetim-picking-id">Henüz oluşturulmadı</strong>
  </div>

  <div class="warehouse-picking-management-divider"></div>

  <h3>Toplama Satırı</h3>

  <div class="warehouse-picking-management-grid">

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-urun">Ürün</label>
      <input
        id="toplama-yonetim-urun"
        type="text"
        placeholder="Ürün UUID"
        autocomplete="off"
      >
    </div>

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-miktar">Miktar</label>
      <input
        id="toplama-yonetim-miktar"
        type="number"
        min="0.000001"
        step="0.000001"
        value="1"
      >
    </div>

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-birim">Birim</label>
      <input
        id="toplama-yonetim-birim"
        type="text"
        value="piece"
        placeholder="piece"
      >
    </div>

  </div>

  <div class="warehouse-picking-management-actions">
    <button
      id="toplama-yonetim-satir-ekle"
      type="button"
      class="secondary"
    >
      Satır Ekle
    </button>
  </div>

  <div class="warehouse-picking-management-divider"></div>

  <h3>Toplama Durumu</h3>

  <div class="warehouse-picking-management-actions">
    <button
      id="toplama-yonetim-release"
      type="button"
      class="secondary"
    >
      Serbest Bırak
    </button>
  </div>

  <div class="warehouse-picking-management-divider"></div>

  <h3>Toplama Görevi</h3>

  <div class="warehouse-picking-management-grid">

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-kaynak-lokasyon">Kaynak lokasyon</label>
      <input
        id="toplama-yonetim-kaynak-lokasyon"
        type="text"
        placeholder="Kaynak lokasyon UUID"
        autocomplete="off"
      >
    </div>

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-gorev-oncelik">Görev önceliği</label>
      <input
        id="toplama-yonetim-gorev-oncelik"
        type="number"
        min="1"
        max="100"
        step="1"
        value="50"
      >
    </div>

    <div class="warehouse-picking-field">
      <label for="toplama-yonetim-sira">Sıra</label>
      <input
        id="toplama-yonetim-sira"
        type="number"
        min="1"
        step="1"
        value="1"
      >
    </div>

  </div>

  <div class="warehouse-picking-management-actions">
    <button
      id="toplama-yonetim-gorev-olustur"
      type="button"
      class="secondary"
    >
      Görev Oluştur
    </button>

    <button
      id="toplama-yonetim-baslat"
      type="button"
    >
      Toplamayı Başlat
    </button>
  </div>

  <p
    id="toplama-yonetim-mesaji"
    class="warehouse-picking-management-message"
    data-state="waiting"
    role="status"
    aria-live="polite"
  ></p>

</article>

<article class="panel full warehouse-picking-panel" id="toplama">
  <div class="heading">
    <div>
      <em>MOBİL OPERASYON</em>
      <h2>Toplama</h2>
    </div>
    <span class="count">2 Barkod + Açık Onay</span>
  </div>

  <p class="warehouse-picking-help">
    Aktif toplama görevini seçin. Önce görevde beklenen kaynak lokasyon barkodunu,
    ardından ürün veya SKU barkodunu okutun. Barkod okutma tek başına stok hareketi
    oluşturmaz ve toplama miktarı yazmaz.
  </p>

  <div class="warehouse-picking-grid">
    <div class="warehouse-picking-field">
      <label for="toplama-gorevi-secimi">Toplama görevi</label>
      <select id="toplama-gorevi-secimi" disabled>
        <option value="">Aktif toplama görevleri yükleniyor</option>
      </select>
    </div>

    <div class="warehouse-picking-field">
      <label for="toplama-asama">Barkod aşaması</label>
      <input
        id="toplama-asama"
        type="text"
        readonly
        value="Kaynak lokasyon barkodu bekleniyor"
      >
    </div>
  </div>

  <div
    id="toplama-gorev-detayi"
    class="warehouse-picking-task-detail"
    hidden
  ></div>

  <p
    id="toplama-mesaji"
    class="warehouse-picking-message"
    data-state="waiting"
    role="status"
    aria-live="polite"
  >
    Yetkili depo ve aktif toplama görevleri bekleniyor.
  </p>

  <div class="warehouse-picking-scan-grid">
    <section class="warehouse-picking-scan-step">
      <small>1. ADIM</small>
      <strong>Kaynak lokasyon barkodu</strong>

      <input
        id="toplama-kaynak-barkod"
        type="text"
        readonly
        placeholder="Kaynak lokasyon barkodu bekleniyor"
      >

      <div
        id="toplama-kaynak-eslesme"
        class="warehouse-picking-match"
        hidden
      ></div>
    </section>

    <section class="warehouse-picking-scan-step">
      <small>2. ADIM</small>
      <strong>Ürün / SKU barkodu</strong>

      <input
        id="toplama-urun-barkod"
        type="text"
        readonly
        placeholder="Önce kaynak lokasyon doğrulanmalıdır"
      >

      <div
        id="toplama-urun-eslesme"
        class="warehouse-picking-match"
        hidden
      ></div>
    </section>
  </div>

  <div class="warehouse-picking-next-step">
    <p>
      Kaynak lokasyon ve ürün/SKU barkodu doğrulandıktan sonra miktarı girin.
      Lot veya seri takibi varsa beklenen değeri teyit edin. Atomik stok hareketi
      yalnız “Toplamayı Onayla” ve ikinci açık kullanıcı onayından sonra uygulanır.
    </p>

    <div class="warehouse-picking-quantity-grid">
      <div class="warehouse-picking-field">
        <label for="toplama-miktar">Toplanan miktar</label>
        <input
          id="toplama-miktar"
          type="number"
          inputmode="decimal"
          min="0"
          step="0.000001"
          value="0"
          disabled
        >
      </div>

      <div class="warehouse-picking-field">
        <label for="toplama-eksik-miktar">Eksik toplama miktarı</label>
        <input
          id="toplama-eksik-miktar"
          type="number"
          inputmode="decimal"
          min="0"
          step="0.000001"
          value="0"
          disabled
        >
      </div>
    </div>

    <div class="warehouse-picking-quantity-grid warehouse-picking-tracking-grid">
      <div class="warehouse-picking-field">
        <label for="toplama-lot-no">Lot teyidi</label>
        <input
          id="toplama-lot-no"
          type="text"
          autocomplete="off"
          placeholder="Lot takibi yok"
          disabled
        >
      </div>

      <div class="warehouse-picking-field">
        <label for="toplama-seri-no">Seri numarası teyidi</label>
        <input
          id="toplama-seri-no"
          type="text"
          autocomplete="off"
          placeholder="Seri takibi yok"
          disabled
        >
      </div>
    </div>

    <button
      id="toplama-onayla"
      type="button"
      disabled
    >
      Toplamayı Onayla
    </button>

    <div class="warehouse-picking-complete">
      <p>
        Tüm toplama satırları işlendiğinde görevi ayrıca tamamlayın.
        Bu işlem yeni stok hareketi oluşturmaz. Kalan satırlar veya
        çözülmemiş toplama istisnaları varsa sunucu tamamlamayı reddeder.
      </p>

      <button
        id="toplama-tamamla"
        type="button"
        class="secondary"
        disabled
      >
        Toplamayı Tamamla
      </button>
    </div>

    <div class="warehouse-picking-exceptions">
      <div class="warehouse-picking-exception-heading">
        <strong>Açık toplama istisnaları</strong>
        <span
          id="toplama-istisna-sayisi"
          aria-live="polite"
        >
          —
        </span>
      </div>

      <p>
        Seçili depodaki çözülmemiş toplama istisnaları salt-okunur olarak
        listelenir. İstisnayı çözmek stok hareketi oluşturmaz ve toplamayı
        otomatik tamamlamaz.
      </p>

      <div class="warehouse-picking-field">
        <label for="toplama-istisna-secimi">
          Çözülecek istisna
        </label>

        <select
          id="toplama-istisna-secimi"
          disabled
        >
          <option value="">
            Açık istisnalar yükleniyor
          </option>
        </select>
      </div>

      <div
        id="toplama-istisna-detayi"
        class="warehouse-picking-exception-detail"
        hidden
      ></div>

      <div class="warehouse-picking-field">
        <label for="toplama-istisna-cozum-notu">
          Çözüm notu
          <small>(opsiyonel)</small>
        </label>

        <textarea
          id="toplama-istisna-cozum-notu"
          rows="3"
          placeholder="Örn. Fiziksel sayım ile doğrulandı."
          disabled
        ></textarea>
      </div>

      <button
        id="toplama-istisna-coz"
        type="button"
        class="secondary"
        disabled
      >
        İstisnayı Çöz
      </button>

      <p
        id="toplama-istisna-durumu"
        class="warehouse-picking-exception-status"
        data-state="waiting"
        aria-live="polite"
      >
        Açık istisna verisi bekleniyor.
      </p>
    </div>


  </div>
</article>



<article class="panel full warehouse-packing-panel" id="paketleme">
  <div class="heading">
    <div>
      <em>MOBİL OPERASYON</em>
      <h2>Paketleme</h2>
    </div>
    <span class="count">Barkod + Açık Onay</span>
  </div>

  <p class="warehouse-packing-help">
    Paketleme operasyonunu seçin, açık paket oluşturun ve ürün / SKU barkodunu doğrulayın.
    Barkod taraması tek başına paketleme miktarı veya sevkiyat işlemi oluşturmaz.
  </p>

  <section class="warehouse-packing-create">
    <strong>Toplamadan paketleme oluştur</strong>

    <div class="warehouse-packing-grid">
      <div class="warehouse-packing-field">
        <label for="paketleme-toplama-secimi">Tamamlanmış toplama</label>
        <select id="paketleme-toplama-secimi" disabled>
          <option value="">Toplama kayıtları yükleniyor</option>
        </select>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-lokasyon-secimi">Paketleme lokasyonu</label>
        <select id="paketleme-lokasyon-secimi" disabled>
          <option value="">Lokasyonlar yükleniyor</option>
        </select>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-sevkiyat-lokasyon-secimi">Sevkiyat lokasyonu</label>
        <select id="paketleme-sevkiyat-lokasyon-secimi" disabled>
          <option value="">Opsiyonel</option>
        </select>
      </div>
    </div>

    <div class="warehouse-packing-actions">
      <button id="paketleme-olustur" type="button" class="secondary" disabled>
        Paketleme Oluştur
      </button>
    </div>

    <p
      id="paketleme-olusturma-mesaji"
      class="warehouse-packing-create-message"
      data-state="waiting"
      aria-live="polite"
    >
      Firma ve depo kapsamı bekleniyor.
    </p>
  </section>

  <section class="warehouse-packing-workspace">
    <div class="warehouse-packing-grid">
      <div class="warehouse-packing-field">
        <label for="paketleme-secimi">Paketleme operasyonu</label>
        <select id="paketleme-secimi" disabled>
          <option value="">Paketleme operasyonları yükleniyor</option>
        </select>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-satiri-secimi">Paketlenecek satır</label>
        <select id="paketleme-satiri-secimi" disabled>
          <option value="">Önce paketleme seçin</option>
        </select>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-ambalaj-secimi">Ambalaj</label>
        <select id="paketleme-ambalaj-secimi" disabled>
          <option value="">Ambalajlar yükleniyor</option>
        </select>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-paket-secimi">Açık paket</label>
        <select id="paketleme-paket-secimi" disabled>
          <option value="">Açık paketler yükleniyor</option>
        </select>
      </div>
    </div>

    <div class="warehouse-packing-actions">
      <button id="paketleme-paket-olustur" type="button" class="secondary" disabled>
        Açık Paket Oluştur
      </button>
    </div>

    <p
      id="paketleme-mesaji"
      class="warehouse-packing-message"
      data-state="waiting"
      role="status"
      aria-live="polite"
    >
      Firma ve depo kapsamı bekleniyor.
    </p>

    <div class="warehouse-packing-field">
      <label for="paketleme-barkod">Ürün / SKU barkodu</label>
      <input
        id="paketleme-barkod"
        type="text"
        readonly
        placeholder="Barkod tarayıcı sonucu bekleniyor"
      >
    </div>

    <div
      id="paketleme-barkod-eslesmesi"
      class="warehouse-packing-match"
      hidden
    ></div>

    <div class="warehouse-packing-quantity-grid">
      <div class="warehouse-packing-field">
        <label for="paketleme-miktar">Paketlenen miktar</label>
        <input id="paketleme-miktar" type="number" min="0" step="0.000001" value="0" disabled>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-hasarli-miktar">Hasarlı miktar</label>
        <input id="paketleme-hasarli-miktar" type="number" min="0" step="0.000001" value="0" disabled>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-eksik-miktar">Eksik miktar</label>
        <input id="paketleme-eksik-miktar" type="number" min="0" step="0.000001" value="0" disabled>
      </div>
    </div>

    <div class="warehouse-packing-tracking-grid">
      <div class="warehouse-packing-field">
        <label for="paketleme-lot-no">Lot teyidi</label>
        <input id="paketleme-lot-no" type="text" autocomplete="off" disabled>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-seri-no">Seri numarası teyidi</label>
        <input id="paketleme-seri-no" type="text" autocomplete="off" disabled>
      </div>
    </div>

    <div class="warehouse-packing-field">
      <label for="paketleme-notu">Paketleme notu</label>
      <textarea id="paketleme-notu" rows="3" disabled></textarea>
    </div>

    <div class="warehouse-packing-actions">
      <button id="paketleme-onayla" type="button" disabled>
        Paketlemeyi Onayla
      </button>
    </div>

    <section class="warehouse-packing-lifecycle" aria-labelledby="paketleme-yasam-dongusu-baslik">
      <strong id="paketleme-yasam-dongusu-baslik">Paketleme yaşam döngüsü</strong>

      <div class="warehouse-packing-actions warehouse-packing-lifecycle-actions">
        <button id="paketleme-gorev-olustur" type="button" class="secondary" disabled>
          Paketleme Görevi Oluştur
        </button>

        <button id="paketleme-operasyona-ac" type="button" disabled>
          Operasyona Aç
        </button>

        <button id="paketleme-baslat" type="button" disabled>
          Paketlemeyi Başlat
        </button>
      </div>

      <div class="warehouse-packing-grid">
        <div class="warehouse-packing-field">
          <label for="paketleme-yasam-paket-secimi">Yaşam döngüsü paketi</label>
          <select id="paketleme-yasam-paket-secimi" disabled>
            <option value="">Önce paketleme seçin</option>
          </select>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-muhur-no">Mühür numarası</label>
          <input id="paketleme-muhur-no" type="text" autocomplete="off" disabled>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-gercek-agirlik">Gerçek ağırlık</label>
          <input id="paketleme-gercek-agirlik" type="number" min="0.000001" step="0.000001" disabled>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-gercek-hacim">Gerçek hacim</label>
          <input id="paketleme-gercek-hacim" type="number" min="0.000001" step="0.000001" disabled>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-etiket-formati">Etiket formatı</label>
          <select id="paketleme-etiket-formati" disabled>
            <option value="zpl">ZPL</option>
            <option value="pdf">PDF</option>
            <option value="png">PNG</option>
            <option value="svg">SVG</option>
            <option value="text">Metin</option>
          </select>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-yazici-kimligi">Yazıcı kimliği</label>
          <input id="paketleme-yazici-kimligi" type="text" autocomplete="off" disabled>
        </div>
      </div>

      <div class="warehouse-packing-actions">
        <button id="paketleme-muhurle" type="button" class="secondary" disabled>
          Paketi Mühürle
        </button>

        <button id="paketleme-etiket-uret" type="button" class="secondary" disabled>
          Paket Etiketi Üret
        </button>
      </div>

      <div class="warehouse-packing-grid">
        <div class="warehouse-packing-field">
          <label for="paketleme-istisna-secimi">Çözülmemiş istisna</label>
          <select id="paketleme-istisna-secimi" disabled>
            <option value="">Çözülmemiş istisna yok</option>
          </select>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-istisna-cozum-notu">Çözüm notu</label>
          <textarea id="paketleme-istisna-cozum-notu" rows="3" disabled></textarea>
        </div>
      </div>

      <div class="warehouse-packing-actions">
        <button id="paketleme-istisna-coz" type="button" class="secondary" disabled>
          İstisnayı Çöz
        </button>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-iptal-nedeni">İptal nedeni</label>
        <textarea id="paketleme-iptal-nedeni" rows="3" disabled></textarea>
      </div>

      <div class="warehouse-packing-actions warehouse-packing-lifecycle-actions">
        <button id="paketleme-tamamla" type="button" disabled>
          Paketlemeyi Tamamla
        </button>

        <button id="paketleme-sevkiyata-hazir" type="button" disabled>
          Sevkiyata Hazırla
        </button>

        <button id="paketleme-sevkiyat-olustur" type="button" class="secondary" disabled>
          Sevkiyat Oluştur
        </button>

        <button id="paketleme-iptal" type="button" class="secondary" disabled>
          Paketlemeyi İptal Et
        </button>
      </div>


      <div class="warehouse-packing-field">
        <label for="paketleme-ledger-etiket-secimi">Etiket ledger kaydı</label>
        <select id="paketleme-ledger-etiket-secimi" disabled>
          <option value="">Etiket bulunmuyor</option>
        </select>
      </div>

      <div class="warehouse-packing-grid">
        <div class="warehouse-packing-field">
          <label for="paketleme-ledger-tur">Etiket türü</label>
          <input id="paketleme-ledger-tur" type="text" autocomplete="off" placeholder="Örn. sscc" disabled>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-ledger-format">Ledger formatı</label>
          <select id="paketleme-ledger-format" disabled>
            <option value="zpl">ZPL</option>
            <option value="pdf">PDF</option>
            <option value="png">PNG</option>
            <option value="svg">SVG</option>
            <option value="text">Metin</option>
          </select>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-ledger-barkod">Barkod değeri</label>
          <input id="paketleme-ledger-barkod" type="text" autocomplete="off" disabled>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-ledger-sscc">SSCC</label>
          <input id="paketleme-ledger-sscc" type="text" inputmode="numeric" autocomplete="off" disabled>
        </div>

        <div class="warehouse-packing-field">
          <label for="paketleme-ledger-yazici">Yazıcı kimliği</label>
          <input id="paketleme-ledger-yazici" type="text" autocomplete="off" disabled>
        </div>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-ledger-icerik">Etiket içeriği</label>
        <textarea id="paketleme-ledger-icerik" rows="3" disabled></textarea>
      </div>

      <div class="warehouse-packing-field">
        <label for="paketleme-ledger-hata-nedeni">Etiket hata nedeni</label>
        <textarea id="paketleme-ledger-hata-nedeni" rows="2" disabled></textarea>
      </div>

      <div class="warehouse-packing-actions warehouse-packing-lifecycle-actions">
        <button id="paketleme-ledger-olustur" type="button" class="secondary" disabled>
          Ledger Etiketi Oluştur
        </button>

        <button id="paketleme-ledger-uret" type="button" class="secondary" disabled>
          Ledger Etiketi Üret
        </button>

        <button id="paketleme-ledger-yazdirildi" type="button" class="secondary" disabled>
          Yazdırıldı İşaretle
        </button>

        <button id="paketleme-ledger-basarisiz" type="button" class="secondary" disabled>
          Başarısız İşaretle
        </button>

        <button id="paketleme-ledger-iptal" type="button" class="secondary" disabled>
          Etiketi İptal Et
        </button>
      </div>

      <p
        id="paketleme-yasam-mesaji"
        class="warehouse-packing-message"
        data-state="waiting"
        aria-live="polite"
      >
        Yaşam döngüsü için paketleme operasyonu seçin.
      </p>
    </section>

    <p class="warehouse-packing-safety">
      Barkod taraması hiçbir yaşam döngüsü yazmasını otomatik başlatmaz.
      Mühürleme, paket etiketi üretimi, istisna çözümü, tamamlama, sevkiyata hazır geçişi ve iptal işlemleri açık kullanıcı onayı gerektirir.
      Etiket ledger oluşturma, üretme, yazdırıldı, başarısız ve iptal işlemleri de açık kullanıcı onayı gerektirir. Shipping oluşturma ayrı bir dilimdir.
    </p>
  </section>
</article>

<article
  class="panel full warehouse-cycle-count-panel"
  id="sayim"
>
  <div class="heading">
    <div>
      <em>MOBİL SAYIM</em>
      <h2>Sayım</h2>
    </div>
    <small>Güvenli miktar kaydı</small>
  </div>

  <p class="warehouse-cycle-count-help">
    Aktif sayım görevleri WarehouseIQ güvenli HTTP API'sinden
    kullanıcı oturumu ve seçili depo kapsamında okunur.
    Lokasyon ve ürün / SKU doğrulandıktan sonra fiziksel sayım miktarı
    ayrı açık kullanıcı onayıyla güvenli olarak kaydedilir.
  </p>

  <div class="warehouse-cycle-count-grid">
    <div class="warehouse-cycle-count-field">
      <label for="sayim-gorevi-secimi">
        Sayım görevi
      </label>

      <select
        id="sayim-gorevi-secimi"
        disabled
      >
        <option value="">
          Aktif sayım görevleri yükleniyor
        </option>
      </select>
    </div>

    <div class="warehouse-cycle-count-field">
      <label for="sayim-asama">
        Doğrulama aşaması
      </label>

      <input
        id="sayim-asama"
        type="text"
        value="Lokasyon barkodu bekleniyor"
        readonly
      >
    </div>
  </div>

  <p
    id="sayim-mesaji"
    class="warehouse-cycle-count-message"
    data-state="waiting"
    role="status"
    aria-live="polite"
  >
    Firma ve depo kapsamı bekleniyor.
  </p>

  <div
    id="sayim-gorev-detayi"
    class="warehouse-cycle-count-task-detail"
    hidden
  ></div>

  <div class="warehouse-cycle-count-scan-grid">
    <section class="warehouse-cycle-count-scan-step">
      <small>1. ADIM</small>
      <strong>Lokasyonu doğrula</strong>

      <p>
        Seçili görevin gerçek lokasyon barkodunu veya lokasyon kodunu okutun.
      </p>

      <div class="warehouse-cycle-count-field">
        <label for="sayim-lokasyon-barkod">
          Lokasyon barkodu
        </label>

        <input
          id="sayim-lokasyon-barkod"
          type="text"
          readonly
          autocomplete="off"
          placeholder="Lokasyon taraması bekleniyor"
        >
      </div>

      <div
        id="sayim-lokasyon-eslesmesi"
        class="warehouse-cycle-count-match"
        hidden
      ></div>
    </section>

    <section class="warehouse-cycle-count-scan-step">
      <small>2. ADIM</small>
      <strong>Ürün / SKU doğrula</strong>

      <p>
        Ürün taraması yalnız lokasyon doğrulandıktan sonra işlenir.
      </p>

      <div class="warehouse-cycle-count-field">
        <label for="sayim-urun-barkod">
          Ürün / SKU barkodu
        </label>

        <input
          id="sayim-urun-barkod"
          type="text"
          readonly
          disabled
          autocomplete="off"
          placeholder="Önce lokasyon doğrulanmalı"
        >
      </div>

      <div
        id="sayim-urun-eslesmesi"
        class="warehouse-cycle-count-match"
        hidden
      ></div>
    </section>
  </div>

  <div
    id="sayim-dogrulama-ozeti"
    class="warehouse-cycle-count-verified"
    hidden
  ></div>

  <section
    id="sayim-miktar-kaydi"
    class="warehouse-cycle-count-quantity"
    hidden
  >
    <div class="warehouse-cycle-count-quantity-heading">
      <div>
        <small>3. ADIM</small>
        <strong>Fiziksel sayım miktarı</strong>
      </div>

      <span>GÜVENLİ KAYIT</span>
    </div>

    <p>
      Barkod doğrulaması miktarı otomatik kaydetmez.
      Fiziksel miktarı girin ve kayıt öncesinde ikinci açık onayı verin.
    </p>

    <div class="warehouse-cycle-count-quantity-grid">
      <div class="warehouse-cycle-count-field">
        <label for="sayim-sayilan-miktar">
          Sayılan miktar
        </label>

        <input
          id="sayim-sayilan-miktar"
          type="text"
          inputmode="decimal"
          autocomplete="off"
          disabled
          placeholder="Örn. 24"
        >
      </div>

      <div class="warehouse-cycle-count-field">
        <label for="sayim-notu">
          Sayım notu
          <small>İsteğe bağlı</small>
        </label>

        <textarea
          id="sayim-notu"
          rows="2"
          maxlength="1000"
          disabled
          placeholder="Gerekliyse saha notu ekleyin"
        ></textarea>
      </div>
    </div>

    <button
      id="sayim-miktari-kaydet"
      type="button"
      class="warehouse-cycle-count-save"
      disabled
    >
      Sayım Miktarını Kaydet
    </button>

    <p
      id="sayim-miktar-durumu"
      class="warehouse-cycle-count-quantity-status"
      data-state="waiting"
      role="status"
      aria-live="polite"
    >
      Önce lokasyon ve ürün doğrulamasını tamamlayın.
    </p>
  </section>

  <section
    id="sayim-yeniden-sayim"
    class="warehouse-cycle-count-recount"
  >
    <div class="warehouse-cycle-count-recount-heading">
      <div>
        <small>KONTROLLÜ YENİDEN SAYIM</small>
        <strong>İkinci fiziksel sayım</strong>
      </div>

      <button
        id="sayim-yeniden-modu"
        type="button"
        class="warehouse-cycle-count-recount-mode"
        aria-pressed="false"
        disabled
      >
        Yeniden Sayım Modunu Başlat
      </button>
    </div>

    <p class="warehouse-cycle-count-recount-help">
      Bu alan yalnız ilk fiziksel sayımı tamamlanmış ve kontrollü yeniden
      sayıma ayrılmış görevler içindir. İlk sayım akışından bağımsız çalışır.
    </p>

    <div class="warehouse-cycle-count-grid">
      <div class="warehouse-cycle-count-field">
        <label for="sayim-yeniden-gorevi-secimi">
          Yeniden sayım görevi
        </label>

        <select
          id="sayim-yeniden-gorevi-secimi"
          disabled
        >
          <option value="">
            Kontrollü yeniden sayım görevleri bekleniyor
          </option>
        </select>
      </div>

      <div class="warehouse-cycle-count-field">
        <label for="sayim-yeniden-asama">
          Yeniden sayım aşaması
        </label>

        <input
          id="sayim-yeniden-asama"
          type="text"
          value="Lokasyon barkodu bekleniyor"
          readonly
        >
      </div>
    </div>

    <p
      id="sayim-yeniden-mesaji"
      class="warehouse-cycle-count-message"
      data-state="waiting"
      role="status"
      aria-live="polite"
    >
      Kontrollü yeniden sayım görevleri bekleniyor.
    </p>

    <div class="warehouse-cycle-count-scan-grid">
      <section class="warehouse-cycle-count-scan-step">
        <small>1. ADIM</small>
        <strong>Lokasyonu yeniden doğrula</strong>

        <p>
          Yeniden sayım görevinin gerçek lokasyon barkodunu okutun.
        </p>

        <div class="warehouse-cycle-count-field">
          <label for="sayim-yeniden-lokasyon-barkod">
            Lokasyon barkodu
          </label>

          <input
            id="sayim-yeniden-lokasyon-barkod"
            type="text"
            readonly
            disabled
            autocomplete="off"
            placeholder="Yeniden sayım modu bekleniyor"
          >
        </div>

        <div
          id="sayim-yeniden-lokasyon-eslesmesi"
          class="warehouse-cycle-count-match"
          hidden
        ></div>
      </section>

      <section class="warehouse-cycle-count-scan-step">
        <small>2. ADIM</small>
        <strong>Ürün / SKU'yu yeniden doğrula</strong>

        <p>
          Ürün taraması yalnız lokasyon doğrulandıktan sonra işlenir.
        </p>

        <div class="warehouse-cycle-count-field">
          <label for="sayim-yeniden-urun-barkod">
            Ürün / SKU barkodu
          </label>

          <input
            id="sayim-yeniden-urun-barkod"
            type="text"
            readonly
            disabled
            autocomplete="off"
            placeholder="Önce lokasyon doğrulanmalı"
          >
        </div>

        <div
          id="sayim-yeniden-urun-eslesmesi"
          class="warehouse-cycle-count-match"
          hidden
        ></div>
      </section>
    </div>

    <div
      id="sayim-yeniden-dogrulama-ozeti"
      class="warehouse-cycle-count-verified"
      hidden
    ></div>

    <section class="warehouse-cycle-count-recount-quantity">
      <div class="warehouse-cycle-count-quantity-heading">
        <div>
          <small>3. ADIM</small>
          <strong>İkinci fiziksel sayım miktarı</strong>
        </div>

        <span>AYRI AÇIK ONAY</span>
      </div>

      <p>
        Barkod doğrulaması miktarı otomatik kaydetmez.
        İkinci fiziksel miktarı girin ve kayıt öncesinde ayrıca açık kullanıcı
        onayı verin.
      </p>

      <div class="warehouse-cycle-count-quantity-grid">
        <div class="warehouse-cycle-count-field">
          <label for="sayim-yeniden-sayilan-miktar">
            Yeniden sayılan miktar
          </label>

          <input
            id="sayim-yeniden-sayilan-miktar"
            type="text"
            inputmode="decimal"
            autocomplete="off"
            disabled
            placeholder="Örn. 24"
          >
        </div>

        <div class="warehouse-cycle-count-field">
          <label for="sayim-yeniden-notu">
            Yeniden sayım notu
            <small>İsteğe bağlı</small>
          </label>

          <textarea
            id="sayim-yeniden-notu"
            rows="2"
            maxlength="1000"
            disabled
            placeholder="Gerekliyse saha notu ekleyin"
          ></textarea>
        </div>
      </div>

      <button
        id="sayim-yeniden-miktari-kaydet"
        type="button"
        class="warehouse-cycle-count-save"
        disabled
      >
        İkinci Sayım Miktarını Kaydet
      </button>

      <p
        id="sayim-yeniden-miktar-durumu"
        class="warehouse-cycle-count-quantity-status"
        data-state="waiting"
        role="status"
        aria-live="polite"
      >
        Önce lokasyon ve ürün doğrulamasını tamamlayın.
      </p>
    </section>

    <p class="warehouse-cycle-count-recount-safety">
      Bu A7.3.2.2 adımı yalnız ikinci fiziksel sayım miktarını kaydeder.
      Final sayım sonucu, fark değerlendirmesi, stok düzeltmesi,
      envanter hareketi veya sayım tamamlama işlemi oluşturmaz.
    </p>
  </section>

  <section
    class="warehouse-cycle-count-management"
    aria-labelledby="sayim-yonetim-basligi"
  >
    <div class="warehouse-cycle-count-management-heading">
      <div>
        <small>Yönetim / Kontrol</small>
        <h3 id="sayim-yonetim-basligi">
          Sayım Sonucu ve Tamamlama
        </h3>
      </div>

      <button
        id="sayim-yonetim-yenile"
        type="button"
        class="warehouse-cycle-count-management-refresh"
      >
        Yönetim Verisini Yenile
      </button>
    </div>

    <p class="warehouse-cycle-count-management-help">
      Bu alan yalnız yetkili yönetim rollerine açıktır.
      İlk sayım, yeniden sayım, fark inceleme, stok düzeltme,
      onay ve tamamlanmış rapor yaşam döngüsünü güvenli
      WarehouseIQ HTTP API'leri üzerinden yönetir.
    </p>

    <div class="warehouse-cycle-count-management-toolbar">
      <div class="warehouse-cycle-count-field">
        <label for="sayim-yonetim-secimi">
          Yönetilecek sayım / rapor
        </label>

        <select id="sayim-yonetim-secimi">
          <option value="">
            Yönetim verisi yükleniyor
          </option>
        </select>
      </div>

      <div class="warehouse-cycle-count-field">
        <label for="sayim-yonetim-notu">
          Yönetim notu
        </label>

        <textarea
          id="sayim-yonetim-notu"
          rows="2"
          maxlength="1000"
          placeholder="Örn. Sayım farkı fiziksel olarak doğrulandı."
        ></textarea>
      </div>
    </div>

    <p
      id="sayim-yonetim-mesaji"
      class="warehouse-cycle-count-message"
      data-state="loading"
      role="status"
      aria-live="polite"
    >
      Sayım yönetim verileri yükleniyor…
    </p>

    <section
      id="sayim-yonetim-aktif-detay"
      class="warehouse-cycle-count-management-detail"
      hidden
    >
      <div
        id="sayim-yonetim-metrikleri"
        class="warehouse-cycle-count-management-metrics"
      ></div>

      <div class="warehouse-cycle-count-management-block">
        <div class="warehouse-cycle-count-management-block-heading">
          <div>
            <small>Satır Detayı</small>
            <strong>Fiziksel Sayım ve Farklar</strong>
          </div>
        </div>

        <div class="warehouse-cycle-count-management-table-wrap">
          <table class="warehouse-cycle-count-management-table">
            <thead>
              <tr>
                <th>Satır</th>
                <th>Lokasyon</th>
                <th>Ürün</th>
                <th>SKU</th>
                <th>Durum</th>
                <th>Beklenen</th>
                <th>İlk Sayım</th>
                <th>İkinci Sayım</th>
                <th>Final</th>
                <th>Hasarlı</th>
                <th>Fark</th>
                <th>Fark Değeri</th>
              </tr>
            </thead>

            <tbody id="sayim-yonetim-satirlari"></tbody>
          </table>
        </div>
      </div>

      <div class="warehouse-cycle-count-management-block">
        <div class="warehouse-cycle-count-management-block-heading">
          <div>
            <small>Yaşam Döngüsü</small>
            <strong>Düzeltme / Onay / İstisna</strong>
          </div>
        </div>

        <div
          id="sayim-yonetim-yasam-dongusu"
          class="warehouse-cycle-count-management-metrics"
        ></div>
      </div>

      <div class="warehouse-cycle-count-management-block">
        <div class="warehouse-cycle-count-management-block-heading">
          <div>
            <small>Kontrollü İşlem</small>
            <strong>Sayım Yönetim Aksiyonları</strong>
          </div>
        </div>

        <div
          id="sayim-yonetim-aksiyonlar"
          class="warehouse-cycle-count-management-actions"
        ></div>
      </div>
    </section>

    <section
      id="sayim-rapor-detayi"
      class="warehouse-cycle-count-management-detail warehouse-cycle-count-report"
      hidden
    >
      <div class="warehouse-cycle-count-management-heading">
        <div>
          <small>Değiştirilemez Snapshot</small>
          <h3 id="sayim-rapor-basligi">
            Tamamlanmış Sayım Raporu
          </h3>
        </div>

        <button
          id="sayim-rapor-yazdir"
          type="button"
          class="warehouse-cycle-count-management-refresh"
        >
          Raporu Yazdır
        </button>
      </div>

      <div
        id="sayim-rapor-metrikleri"
        class="warehouse-cycle-count-management-metrics"
      ></div>

      <div class="warehouse-cycle-count-management-table-wrap">
        <table class="warehouse-cycle-count-management-table">
          <thead>
            <tr>
              <th>Satır</th>
              <th>Lokasyon</th>
              <th>Ürün</th>
              <th>SKU</th>
              <th>Stok Durumu</th>
              <th>Beklenen</th>
              <th>İlk Sayım</th>
              <th>İkinci Sayım</th>
              <th>Final</th>
              <th>Hasarlı</th>
              <th>Fark</th>
              <th>Durum</th>
            </tr>
          </thead>

          <tbody id="sayim-rapor-satirlari"></tbody>
        </table>
      </div>
    </section>

    <p class="warehouse-cycle-count-management-safety">
      Stok bakiyesi yalnız “Stok Düzeltmelerini Uygula”
      adımında değişir. “Sayımı Tamamla” işlemi ise açık görev,
      istisna, onay veya düzeltme bulunmadığında değiştirilemez
      sayım raporunu oluşturur.
    </p>
  </section>


  <p class="warehouse-cycle-count-safety">
    Barkod taraması tek başına sayım kaydı oluşturmaz.
    Bu A7.2 adımı yalnız ilk fiziksel sayım miktarını kaydeder;
    stok düzeltmesi, sayım farkı, yeniden sayım kararı,
    envanter hareketi veya sayım tamamlama işlemi oluşturmaz.
  </p>
</article>

      <article
        class="panel full warehouse-shipping-panel"
        id="sevkiyat-panel"
      ></article>

      <article class="panel wide" id="surecler">
        <div class="heading"><div><em>SÜREÇ HACMİ</em><h2>Operasyon akışı</h2></div><small>Snapshot dönemi</small></div>
        <div class="process" id="surec-listesi">
          <p class="empty-state">Süreç verisi yükleniyor.</p>
        </div>
      </article>

      <article class="panel" id="stok">
        <div class="heading"><div><em>KAPASİTE</em><h2>Depo doluluk</h2></div></div>
        <div class="capacity">
          <div class="ring" id="kapasite-halkasi"><span><b id="kapasite-orani">—</b><small>kullanım</small></span></div>
          <dl>
            <div><dt>Toplam kapasite</dt><dd id="kapasite-toplam">—</dd></div>
            <div><dt>Kullanılan</dt><dd id="kapasite-kullanilan">—</dd></div>
            <div><dt>Kullanılabilir</dt><dd id="kapasite-kullanilabilir">—</dd></div>
          </dl>
        </div>
      </article>

      <article class="panel" id="uyarilar">
        <div class="heading"><div><em>RİSKLER</em><h2>Kritik uyarılar</h2></div><span class="count" id="uyari-sayisi">—</span></div>
        <div class="alerts" id="uyari-listesi">
          <p class="empty-state">Uyarı verisi yükleniyor.</p>
        </div>
      </article>

      <article class="panel wide" id="raporlar">
        <div class="heading"><div><em>SON 7 SNAPSHOT</em><h2>Operasyon sağlık skoru</h2></div><small id="trend-ozeti">Veri bekleniyor</small></div>
        <div class="chart" id="chart" aria-label="Operasyon sağlık skoru grafiği">
          <p class="empty-state">Trend verisi yükleniyor.</p>
        </div>
      </article>

      <article class="panel">
        <div class="heading"><div><em>DEPOLAR</em><h2>Yetkili depo görünümü</h2></div></div>
        <div class="ranking" id="depo-listesi">
          <p class="empty-state">Depo listesi yükleniyor.</p>
        </div>
      </article>

      <article class="panel full warehouse-management" id="depo-yonetimi">
        <div class="heading">
          <div>
            <em>MASTER DATA</em>
            <h2>Depo Yönetimi</h2>
          </div>
          <small>Yetkili depo tanımları ve yönetimi</small>
        </div>

        <div class="warehouse-management-grid">
          <form id="depo-form" class="location-form" novalidate>
            <div class="warehouse-form-section">
              <div class="location-list-heading">
                <div>
                  <em>TEMEL BİLGİLER</em>
                  <h3>Depo tanımı</h3>
                </div>
              </div>

              <div class="location-form-grid">
                <label>
                  <span>Depo kodu *</span>
                  <input
                    id="depo-kodu"
                    name="code"
                    type="text"
                    maxlength="32"
                    placeholder="ANA-DEPO"
                    autocomplete="off"
                    required
                  />
                </label>

                <label>
                  <span>Depo adı *</span>
                  <input
                    id="depo-adi"
                    name="name"
                    type="text"
                    maxlength="160"
                    placeholder="Ana Depo"
                    autocomplete="off"
                    required
                  />
                </label>

                <label>
                  <span>Saat dilimi</span>
                  <input
                    id="depo-saat-dilimi"
                    name="timezone"
                    type="text"
                    maxlength="80"
                    value="Europe/Istanbul"
                    autocomplete="off"
                  />
                </label>

                <label>
                  <span>Açıklama</span>
                  <input
                    id="depo-aciklama"
                    name="description"
                    type="text"
                    maxlength="500"
                    placeholder="Depo açıklaması"
                    autocomplete="off"
                  />
                </label>
              </div>
            </div>

            <div class="warehouse-form-section">
              <div class="location-list-heading">
                <div>
                  <em>ADRES</em>
                  <h3>Depo adresi</h3>
                </div>
              </div>

              <div class="location-form-grid">
                <label>
                  <span>Adres</span>
                  <input
                    id="depo-adres"
                    name="addressLine"
                    type="text"
                    maxlength="300"
                    placeholder="Adres"
                    autocomplete="street-address"
                  />
                </label>

                <label>
                  <span>İlçe</span>
                  <input
                    id="depo-ilce"
                    name="district"
                    type="text"
                    maxlength="100"
                    placeholder="İlçe"
                    autocomplete="address-level3"
                  />
                </label>

                <label>
                  <span>Şehir</span>
                  <input
                    id="depo-sehir"
                    name="city"
                    type="text"
                    maxlength="100"
                    placeholder="Şehir"
                    autocomplete="address-level2"
                  />
                </label>

                <label>
                  <span>Posta kodu</span>
                  <input
                    id="depo-posta-kodu"
                    name="postalCode"
                    type="text"
                    maxlength="20"
                    placeholder="Posta kodu"
                    autocomplete="postal-code"
                  />
                </label>

                <label>
                  <span>Ülke kodu</span>
                  <input
                    id="depo-ulke-kodu"
                    name="countryCode"
                    type="text"
                    maxlength="2"
                    value="TR"
                    autocomplete="country"
                  />
                </label>
              </div>
            </div>

            <div class="warehouse-form-section">
              <div class="location-list-heading">
                <div>
                  <em>KAPASİTE</em>
                  <h3>Depo kapasitesi</h3>
                </div>
              </div>

              <div class="location-form-grid">
                <label>
                  <span>Toplam alan (m²)</span>
                  <input
                    id="depo-toplam-alan"
                    name="totalAreaSquareMeters"
                    type="number"
                    min="0"
                    step="0.001"
                    placeholder="0"
                  />
                </label>

                <label>
                  <span>Kullanılabilir alan (m²)</span>
                  <input
                    id="depo-kullanilabilir-alan"
                    name="usableAreaSquareMeters"
                    type="number"
                    min="0"
                    step="0.001"
                    placeholder="0"
                  />
                </label>

                <label>
                  <span>Maksimum palet</span>
                  <input
                    id="depo-maksimum-palet"
                    name="maximumPalletCapacity"
                    type="number"
                    min="0"
                    step="1"
                    placeholder="0"
                  />
                </label>

                <label>
                  <span>Maksimum bin / lokasyon</span>
                  <input
                    id="depo-maksimum-bin"
                    name="maximumBinCapacity"
                    type="number"
                    min="0"
                    step="1"
                    placeholder="0"
                  />
                </label>
              </div>
            </div>

            <div class="location-form-actions">
              <button id="depo-olustur" type="submit">
                Depo Oluştur
              </button>
              <button id="depo-form-temizle" type="button" disabled>
                Temizle
              </button>
              <p id="depo-mesaji" class="location-message" hidden></p>
            </div>
          </form>

          <div class="warehouse-list">
            <div class="location-list-heading">
              <div>
                <em>YETKİLİ DEPOLAR</em>
                <h3>Depo kayıtları</h3>
              </div>
            </div>

            <div id="depo-yonetim-listesi">
              <p class="empty-state">Depolar yükleniyor.</p>
            </div>
          </div>
        </div>
      </article>

      <article class="panel full" id="lokasyonlar">
        <div class="heading">
          <div>
            <em>MASTER DATA</em>
            <h2>Lokasyon Yönetimi</h2>
          </div>
          <small>Yetkili depo lokasyonları</small>
        </div>

        <div class="location-management">
          <form id="lokasyon-form" class="location-form" novalidate>
            <div class="location-form-grid">
              <label>
                <span>Lokasyon kodu *</span>
                <input
                  id="lokasyon-kodu"
                  name="code"
                  type="text"
                  maxlength="80"
                  placeholder="A-01-01-01"
                  autocomplete="off"
                  required
                />
              </label>

              <label>
                <span>Lokasyon adı *</span>
                <input
                  id="lokasyon-adi"
                  name="name"
                  type="text"
                  maxlength="160"
                  placeholder="Raf A01 / Seviye 01"
                  autocomplete="off"
                  required
                />
              </label>

              <label>
                <span>Lokasyon tipi *</span>
                <select id="lokasyon-tipi" name="locationType" required></select>
              </label>

              <label>
                <span>Zone *</span>
                <input
                  id="lokasyon-zone"
                  name="zoneCode"
                  type="text"
                  maxlength="40"
                  placeholder="A"
                  autocomplete="off"
                  required
                />
              </label>

              <label>
                <span>Aisle</span>
                <input
                  id="lokasyon-aisle"
                  name="aisleCode"
                  type="text"
                  maxlength="40"
                  placeholder="01"
                  autocomplete="off"
                />
              </label>

              <label>
                <span>Rack</span>
                <input
                  id="lokasyon-rack"
                  name="rackCode"
                  type="text"
                  maxlength="40"
                  placeholder="01"
                  autocomplete="off"
                />
              </label>

              <label>
                <span>Level</span>
                <input
                  id="lokasyon-level"
                  name="levelCode"
                  type="text"
                  maxlength="40"
                  placeholder="01"
                  autocomplete="off"
                />
              </label>

              <label>
                <span>Bin</span>
                <input
                  id="lokasyon-bin"
                  name="binCode"
                  type="text"
                  maxlength="40"
                  placeholder="01"
                  autocomplete="off"
                />
              </label>
            </div>

            <div class="location-form-actions">
              <button id="lokasyon-olustur" type="submit">
                Lokasyon Oluştur
              </button>
              <p id="lokasyon-mesaji" class="location-message" hidden></p>
            </div>
          </form>

          <div class="location-list">
            <div class="location-list-heading">
              <div>
                <em>AKTİF LOKASYONLAR</em>
                <h3>Depo lokasyonları</h3>
              </div>
            </div>

            <div id="lokasyon-listesi">
              <p class="empty-state">Lokasyonlar yükleniyor.</p>
            </div>
          </div>
        </div>
      </article>

      <article class="panel full copilot-panel" id="copilot">
        <div class="heading">
          <div><em>WAREHOUSEIQ COPILOT</em><h2>Günlük yönetici özeti</h2></div>
          <div class="copilot-controls">
            <span class="copilot-state" id="copilot-durumu" data-state="waiting">Veri bekleniyor</span>
            <button id="copilot-ai-btn" class="copilot-ai-btn" type="button" disabled>AI anlatımını oluştur</button>
          </div>
        </div>
        <div class="copilot-summary" id="copilot-ozet">
          <p class="empty-state">Copilot için operasyon snapshot verisi bekleniyor.</p>
        </div>
        <div class="copilot-signals">
          <section>
            <small>ÖNCELİKLİ RİSK</small>
            <div id="copilot-risk"><p class="empty-state">Risk verisi bekleniyor.</p></div>
          </section>
          <section>
            <small>FIRSAT</small>
            <div id="copilot-firsat"><p class="empty-state">Karşılaştırma verisi bekleniyor.</p></div>
          </section>
        </div>
        <div class="copilot-actions-block">
          <small>ÖNERİLEN AKSİYONLAR</small>
          <div class="copilot-actions" id="copilot-aksiyonlari">
            <p class="empty-state">Copilot aksiyonları bekleniyor.</p>
          </div>
        </div>
        <p class="copilot-disclosure" id="copilot-aciklama">
          AI anlatımı yalnız kullanıcı isteğiyle çalıştırılır; deterministik operasyon özeti varsayılan görünüm olarak korunur.
        </p>
      </article>

      <article class="panel full" id="aksiyonlar">
        <div class="heading"><div><em>YÖNETİCİ ÖNCELİKLERİ</em><h2>İnceleme kuyruğu</h2></div></div>
        <div class="actions" id="aksiyon-listesi">
          <p class="empty-state">Aksiyon verisi yükleniyor.</p>
        </div>
      </article>
    </div>
  </main>
</div>

<nav class="warehouse-mobile-bottom-nav" aria-label="Hızlı operasyon erişimi">
  <a href="#genel" data-mobile-nav="genel"><span aria-hidden="true">⌂</span><small>Genel</small></a>
  <a href="#surecler" data-mobile-nav="surecler"><span aria-hidden="true">⇥</span><small>Süreçler</small></a>
  <a href="#paketleme" data-mobile-nav="paketleme"><span aria-hidden="true">▣</span><small>Paketleme</small></a>
  <a href="#sayim" data-mobile-nav="sayim"><span aria-hidden="true">≋</span><small>Sayım</small></a>
  <a href="#uyarilar" data-mobile-nav="uyarilar"><span aria-hidden="true">!</span><small>Uyarılar</small></a>
  <a href="#copilot" data-mobile-nav="copilot"><span aria-hidden="true">✦</span><small>Copilot</small></a>
  <a href="#aksiyonlar" data-mobile-nav="aksiyonlar"><span aria-hidden="true">↗</span><small>Aksiyonlar</small></a>
</nav>

<script src="/env.js"></script>
<script type="module" src="/js/warehouse/warehouse-auth.js?v=20260923-auth-1"></script>
<script type="module" src="/js/pwa.js"></script>
<script type="module" src="/js/mobile-navigation.js"></script>
<script type="module" src="/js/barcode-scanner.js"></script>
<script type="module" src="/js/operations-center.js?v=20799872"></script>
<script type="module" src="/js/warehouses-ui.js"></script>
<script type="module" src="/js/locations-ui.js?v=e5ff64b2"></script>
<script type="module" src="/js/putaway-ui.js"></script>
<script type="module" src="/js/putaway-write-controller.js"></script>
<script type="module" src="/js/picking-management-ui.js"></script>
<script type="module" src="/js/picking-ui.js"></script>
<script type="module" src="/js/picking-write-controller.js"></script>
<script type="module" src="/js/packing-ui.js"></script>
<script type="module" src="/js/packing-write-controller.js"></script>
<script type="module" src="/js/shipping-lookup.js?v=20260922-shipping-assignment-1"></script>
<script type="module" src="/js/shipping-ui.js?v=20260922-shipping-assignment-1"></script>
<script type="module" src="/js/shipping-write-controller.js?v=20260922-shipping-assignment-1"></script>
<script type="module" src="/js/cycle-count-ui.js"></script>
<script type="module" src="/js/cycle-count-quantity-ui.js"></script>
<script type="module" src="/js/cycle-count-write-controller.js"></script>
<script type="module" src="/js/cycle-count-evaluation-controller.js"></script>
    <script type="module" src="/js/cycle-count-recount-evaluation-controller.js"></script>
<script type="module" src="/js/cycle-count-recount-ui.js"></script>
<script type="module" src="/js/cycle-count-recount-controller.js"></script>
<script type="module" src="/js/cycle-count-report-ui.js"></script>
<script type="module" src="/js/cycle-count-review-ui.js"></script>
<script type="module" src="/js/receiving-ui.js?v=20260922-mal-kabul-1"></script>
<script type="module" src="/js/receiving-setup-controller.js?v=20260922-mal-kabul-1"></script>
<script type="module" src="/js/receiving-write-controller.js?v=20260922-mal-kabul-1"></script>
  <script src="/js/warehouse/warehouse-shell.js?v=20260923-shell2"></script>
  <script type="module" src="/js/warehouse/warehouse-logout.js?v=20260923-logout2"></script>
</body>
</html>
