# Onaylar — bekleyen onaylar ekranı · tasarım brief'i

*30.07.2026 · Sets'in talebi · kaynak: `63 Yonetici Kullanici Log.dc.html` (Onaylar bandı — genişletilecek), `HANDOFF.md` kural 4, `planlama-spec.md` §11.1/§13, `egitmen-spec.md` §7.4/§7.8, `docs/design/egitmen-kayit-brief.md`, AD-06, AD-16, AD-21, AD-23*

`63`'te bir Onaylar sayfası **taslak hâlinde** var: satır listesi + Onayla/Reddet. Yetmiyor — onaylayan kişi bugün ekrandan *"neyi onayladığını"* göremiyor. İstenen: **kararı bilgiye dayandıran** bir sayfa.

⛔ **İlkeler (bunlar tasarım tercihi değil, kural):**
- **Limit aşımı akışı kırmaz** (`HANDOFF` kural 4): sınırı aşan şey durdurulmaz, **onaya gider**
- **Red her zaman gerekçelidir**; karar sahibine bildirilir; her karar **audit'lenir** (AD-06)
- **Kimse kendi işini onaylayamaz** — yetkisi ne olursa olsun
- Onaylayan **kümesi yetkiden gelir**, rolden değil (AD-23): `…approve_all` herkesi, `…approve_group` yalnız kendi ağaç kapsamındakini görür

---

## 1. Neler onaya düşüyor

Beş tür var. Üçü bugün mümkün, ikisi modülünü bekliyor — ama sayfanın **beşini birden** taşıyacak şekilde tasarlanması gerekiyor, çünkü sonradan tür eklemek sayfayı yeniden kurmak demek.

| # | Tür | Ne bekliyor | Karar ne demek | Bugün mümkün mü |
|---|---|---|---|---|
| 1 | **Masraf** | Eğitmenin girdiği masraf (fiş/fatura ekli) | Onay = eğitmenin carisine borç yazılır **ve** eğitimin ilgili maliyet kaleminin gerçekleşenini besler | ✓ *(giriş var, onay yok)* |
| 2 | **Maliyet eşiği** | Planlanan maliyetin eşiği aşması | Onay = eğitim planı bu maliyetle ilerler | ✓ |
| 3 | **Eğitim iptali** | Verilmiş bir taahhüdün geri alınması | Onay = eğitim iptal olur; katılımcılara ve müşteriye yansır | ✓ |
| 4 | **Eğitmenin yüklediği belge** | Eğitmen kendi belgesini yükledi | Onay = gereklilik "var" olur ve **o eğitimlerin adaylığı açılır**; red = gerekçeyle eğitmene döner | ✓ *(yeni — `65`)* |
| 5 | **İndirim limiti / elle fiyat değişikliği** | Satışçı limiti aştı ya da birim fiyatı elle değiştirdi | Onay = teklif gönderilebilir | ❌ satış modülü |

⚠ **Türler arası fark yalnız etiket değil.** Bir masraf onayı *para*, bir iptal onayı *söz*, bir belge onayı *yetkinlik* kararıdır. Sayfanın her tür için **farklı kanıt** göstermesi gerekiyor (§3).

---

## 2. Sayfanın cevaplaması gereken sorular

Onaylayan kişi listeye bakarken şunları soruyor — sırayla:

1. **Ne kadar bekliyor?** ⛔ En kritik sinyal. `63` *"10 dk önce"*, *"2 sa önce"*, *"dün 16:20"* yazıyor; buna ek olarak **SLA aşımı** görünür olmalı — bekleyen bir masraf, ödenmemiş bir eğitmen demektir. *(SLA süresi admin ayarı olacak; `63` 24 saat yazıyor.)*
2. **Kimin işi, hangi kayıt hakkında?** Kişi + referans kodu (`EG-2026-…`, `TKF-…`) + eğitim/müşteri adı.
3. **Neden onaya düştü?** *"tür limiti ₺2.500 aşıldı"*, *"efektif %18, limiti %15"*, *"Bakanlık Onaylı eğitimde iptal"*. **Eşik ve girilen değer birlikte** yazılmalı; yalnız "limit aşıldı" demek karar verdirmez.
4. **Gerekçesi ne?** Talebi açan kişinin kendi cümlesi.
5. **Karar vermek için ne görmem lazım?** → §3.

---

## 3. Her tür için gereken kanıt — **brief'in kalbi**

Sets'in kendi kuralı *(28.07.2026)*: *"onay ekranında eğitime dair tabloyu net koyarız — hangi kalemler ne şekilde planlanmış, o ana kadar hangi masraflar onaylanmış vs. Böylece masrafı onaylama kararını bilgiye dayalı verir, hata riski azalır."*

⚠ **Bilgisiz verilen insan kararı kura çekmektir.** Ekranın işi kararı vermek değil, **verilebilir kılmak**.

### Masraf onayı
| Ne gösterilmeli | Neden |
|---|---|
| Kalem türü, tutar, tarih, açıklama | Kaydın kendisi |
| **Fiş/fatura — sayfadan çıkmadan görüntülenebilir** | Bugün bir link olsa dosyayı indirip geri dönmek gerekir. **Preview zorunlu**: PDF ve fotoğraf; döndürme ve yakınlaştırma; birden çok belge varsa aralarında gezinme |
| **Eğitimin maliyet kalemleri**: planlanan · gerçekleşen · ödeme sorumlusu | Mükerrer masraf iki sinyalden çıkar: masrafın karşılık geldiği kalem *3E ödeyecek* işaretliyse, ya da birikim planlananı aşıyorsa |
| **O ana kadar onaylanmış masraflar** | Aynı gecenin ikinci kez gelmesi ancak böyle görülür |
| **Limit aşımı işareti** | Aşan engellenmez, işaretlenir |
| Eğitmenin cari özeti | Onayın nereye yazılacağı |

⛔ **Mükerrer masrafta sistem otomatik mahsup yapmaz** — hangi harcamanın hangisiyle aynı olduğu insan kararıdır; yanlış otomatik mahsup, sessizce eksik ödenmiş bir eğitmen demektir. Ekran yalnız **işaretler**.

⚠ Masraf eki **kişisel veri içerebilir**; görüntülenmesi erişim logu kapsamındadır (AD-21). Tasarım bunu kullanıcıya söylemeli (*"görüntüleme kaydedilir"* gibi hafif bir not).

### Eğitmenin yüklediği belge onayı
| Ne gösterilmeli |
|---|
| Belge **preview** (kritik: okunuyor mu, doğru belge mi, süresi ne) |
| Belge türünün kendi alanları — belge no, veren kurum, geçerlilik (tür ne soruyorsa) |
| **Bu belge hangi gerekliliği karşılıyor ve hangi eğitimlerin adaylığını açacak** |
| Aynı gerekliliği karşılayabilecek diğer belge türleri (*"şunlardan biri yeterli"*) |
| ⚠ **Özel nitelikli** belge ise: ayrı yetki ve görüntülemenin loglandığı işareti |

### Maliyet eşiği onayı
Eğitimin kalem tablosu (planlanan/gerçekleşen), eşik ve aşan tutar, bağlı satış varsa marj etkisi, talebi açanın gerekçesi.

### İptal onayı
Eğitimin statüsü (Bakanlığa bildirilmiş mi, onaylı mı), kaç katılımcı etkilenir, müşteri bağlamı, iptal talebinin gerekçesi. ⛔ Bakanlık Onaylı eğitimde iptalin bakanlık tarafında da karşılığı olduğu görünmeli.

### İndirim / fiyat değişikliği *(satış geldiğinde)*
Normal fiyat, grup fiyatı, girilen fiyat, efektif indirim yüzdesi, limit, marj etkisi, teklifi açma bağlantısı.

---

## 4. Tasarımcıdan beklenenler

| # | Ne | Not |
|---|---|---|
| 1 | **Liste** | Tür sekmeleri sayaçlı (`Bekleyen 5 · Masraf 2 · Belge 1 …`) · bekleme süresi ve **SLA aşımı** · kimin/hangi kayıt · sebep · gerekçe. Satırdan çıkmadan karar verilebilir mi, yoksa her karar detay mı ister? |
| 2 | **Detay** | Sayfa mı, drawer mı, satır içi genişleme mi — §3'ün kanıt tablosunu taşıyabilecek hangisiyse. Tür değiştikçe içerik değişir; **tek iskelet, beş içerik** |
| 3 | **Belge/fiş önizleme** | ⛔ Sayfadan çıkmadan. PDF + fotoğraf · yakınlaştır/döndür · çok belgede gezinme · "görüntüleme kaydedilir" notu |
| 4 | **Red akışı** | Gerekçe **zorunlu**. Reddin sahibine bildirileceği ve geri döneceği söylenmeli |
| 5 | **Onay akışı** | Onayın **ne yapacağı** onaydan önce yazılı olmalı: *"cariye ₺1.840 borç yazılır ve Görev 2 eğitiminin yakıt kalemine işlenir"* |
| 6 | **Kendi işi** | Onaylayan kişinin kendi talebi listede görünür ama **karar düğmeleri kapalı** ve sebebi yazılı |
| 7 | **Sonuçlananlar** | `63`'ün bandı: bugün onaylananlar/reddedilenler + tüm geçmişe bağlantı |
| 8 | **Boş durum** | Kuyruk boşken ne yazar |
| 9 | **Kokpit bandı** | `63`'teki *"kokpit bandı — onay özeti"*: yönetici kokpitinde kaç iş bekliyor, en eskisi ne kadar |
| 10 | **375px** | Onay sahada da veriliyor; önizleme mobilde nasıl açılır |

**Bağlayıcı:** `00`–`06` token ve bileşen dili · `04 Geri Bildirim`'deki gerekçeli destructive modal deseni · semantik renk (SLA aşımı kritik, limit aşımı uyarı, bilgi mavi) · WCAG AA · tabular figures.

## 5. Terminoloji
Onay kuyruğu · Bekleyen · Sonuçlanan · SLA aşımı · Limit aşımı · Gerekçe · Onayla / Gerekçeli reddet · Kalem (planlanan / gerçekleşen / ödeme sorumlusu) · Mükerrer adayı · Özel nitelikli · Erişim kaydı.
