# Kapsama matrisi — ofis / satış-muhasebe grubu

**Tarih:** 04.08.2026 · **Kaynak:** `design/37 Teklif Ekleri.dc.html` (satır 112–135), `design/62 Yonetici Muhasebe.dc.html` (satır 143–174)

Matris, implementasyondan **sonra** tasarım dosyaları yeniden açılarak üretildi (Tasarım Uygulama Protokolü §3). Kanıt sütunu dosya + satır verir.

## 1 · Belge şablonları — `design/37:112-135`

| Tasarım öğesi | Durum | Kanıt |
|---|---|---|
| Adres `/yonetim/belge-sablonlari` | ✓ | `routes/office.php:891` |
| Başlık "Belge şablonları" | ✓ | `lang/tr/document_templates.php:7` |
| Sağa hizalı "yalnız operasyon yöneticisi" | ✓ | `resources/js/pages/Office/Management/DocumentTemplates.vue:86` |
| Yürürlükteki dosya — çerçeveli satır | ✓ | `.../DocumentTemplates.vue:103-147` |
| 52×34 küçük görsel | ✓ | `.../DocumentTemplates.vue:107-114` (`h-9 w-14`) |
| Dosya adı + **YÜRÜRLÜKTE** rozeti | ✓ | `.../DocumentTemplates.vue:117-120` |
| Meta satırı `v3 · yüklendi … · T. Yıldırım · 1240×260 px` | ✓ | `.../DocumentTemplates.vue:121-138`; `lang/tr/document_templates.php:23-25` |
| "Önizle" bağlantısı | ✓ | `.../DocumentTemplates.vue:141-146`; `DocumentTemplateController::show` |
| Rozet dizisi: Teklif ✓ | ✓ | `.../DocumentTemplates.vue:61-63` |
| Rozet dizisi: Yoklama ✓ | ✓ | `.../DocumentTemplates.vue:67-69` (`register_letterhead` kartında) |
| Rozet dizisi: **Sertifika ✓** | ⛔ bilinçli sapma | **Kaldırıldı** *(Sets, 04.08.2026)*: 3E sertifika basmıyor. Mevzuatlı eğitimin sertifikasını Bakanlık düzenler; 3E'nin kendi eğitimleri henüz yok. Rozet, hiçbir şeyin üretmediği bir belgeyi vaat ediyordu (`.../DocumentTemplates.vue:56-70`). |
| Rozet: Fatura — kesik çizgi, soluk | ✓ | `.../DocumentTemplates.vue:65`; `lang/tr/document_templates.php:29` |
| Kesik çizgili yükleme alanı | ✓ | `.../DocumentTemplates.vue:166-181` (`FileDrop`) |
| "PNG/PDF · en az 1240px · yeni **sürüm** açar" | ✓ | `lang/tr/document_templates.php:33`; genişlik **ayardan** gelir → `config/business.php:365` |
| Mavi bilgi kutusu — "antet değişince eski teklifler değişmez" | ✓ | `.../DocumentTemplates.vue:186` (`Banner tone="info"`); kural: `SendQuote.php:96-113` + `QuotePrintout::letterheadFor` |

**Tasarımda olmayıp eklenen:** kind başına ayrı kart (tabloda iki tür var, tasarım tek kart çiziyor), önceki sürümler listesi. Gerekçe: sürümleme tasarımın kendi cümlesi ("yükleme yeni sürüm açar") ve görüntülenemeyen bir sürüm geçmişi yalnız üstveridir.

## 2 · Fatura listesi — `design/62:143-174`

| Tasarım öğesi | Durum | Kanıt |
|---|---|---|
| Başlık "Faturalar" | ✓ | `Office/Invoices/Index.vue:166` |
| Amber çip "e-fatura entegratörü bekleniyor — manuel gönderim" | ✓ | `Index.vue:173-175` (`Badge tone="warning"`) |
| **Serbest Kalem** düğmesi (ikincil) | ✓ | `Index.vue:181-183` → `SlideOver` `Index.vue:461-…` |
| **Teklifi Faturalandır** düğmesi (birincil) | ✓ | `Index.vue:184-186` → `SlideOver`; `InvoiceableQuotes` |
| Satır: `FTR-… · Müşteri` + kaynak teklif kodu + tarih | ✓ | `Index.vue:231-250` |
| Satır: tutar + **kalan** | ✓ | `Index.vue:252-262` |
| Durum rozeti (nokta + metin) | ✓ | `Index.vue:259-261` |
| İlerleme çubuğu + "1 tahsilat" | ✓ | `Index.vue:263-278` — katalog `ProgressBar`'ı; `lang/tr/sales.php:523` |
| "Vadesi Geçti" ayrı rozet | ✓ | `Index.vue:280-282` |
| Alt not: kısmi tahsilat, durum **hesaplanır** | ✓ | `Index.vue:384-387`; `lang/tr/sales.php:524` |
| "bağımsız katılımcıya da kesilebilir" notu | ✓ | **Yetkinlik sağlandı** *(Sets, 04.08.2026)*: gerçek kişi zaten müşteri olarak eklenebiliyordu (`legal_type = natural_person`), eksik olan **kimlik numarasıydı** — `customers.national_id` eklendi (şifreli, AD-16), form yalnız gerçek kişide çiziyor, teklif çıktısı doğru etiketi basıyor. Zorunlu değil: *"keserlerse kullansınlar."* |

**Kapsam dışı bırakılan (bilinçli, önceden kararlaştırılmış):** design `62`'nin mali tablo paneli, müşteri/eğitmen cari kartları ve satışçı performans tablosu ayrı bir muhasebe modülü olarak `/muhasebe` altında zaten duruyor (`Office/Accounting/Overview.vue`).

## 3 · Kapanan iki satır (Onay Kuralı 6 — cevaplandı)

**1 · Sertifika — 3E basmaz, yayınlamaz** *(Sets, 04.08.2026)*

> *"Biz sertifika basmayacağız. İleride kendi eğitimlerimiz olursa onların sertifikasını basacağız, ama bakanlık mevzuatlı eğitimlerin sertifikasını bakanlık basıyor. Bunları da yayınlamıyoruz: olur da bakanlık iptal eder, bizde görüp geçerli zannetmesin, her zaman gidip bakanlıktan baksın diye."*

Sonuçlar: (a) antet ekranındaki **Sertifika rozeti kaldırıldı**; (b) sertifika sorumluluk metni güçlendirildi — eski hâli yalnız *"Bakanlık düzenler, 3E belgeyi saklamaz"* diyordu, **iptal** ihtimalinden söz etmiyordu (`lang/tr/portal.php:490`); (c) **katılımcı panelinde metin hiç yoktu** — ekran "Geçerli" rozeti basıyor ve yanında hiçbir şey yazmıyordu, eklendi (`Portal/Participant/Panel.vue:318-326`). Rozet, sistemin kendi kopyasına güvenmeyi öğretiyordu; asıl kayıt Bakanlıktadır.

**2 · Gerçek kişiye fatura — yetkinlik sağlandı** *(Sets, 04.08.2026)*

> *"Firmalar tüzel ya da gerçek kişi olabiliyor, haliyle gerçek kişiyi de müşteri olarak ekleyip fatura kesebilirler. 'Kesebilirler' diyor, kesmek zorundalar demiyor."*

`legal_type` tablonun doğduğu günden beri `natural_person` kabul ediyordu ve form da sunuyordu — eksik olan **kimlik alanıydı**: tek kimlik sütunları vergi dairesi/numarasıydı, serbest çalışan bir kişide ikisi de yok. `customers.national_id` eklendi: **şifreli** (`instructors.national_id` ile aynı desen, AD-16), modelde `$hidden`, formda yalnız gerçek kişide ve katalog `SensitiveInput`'uyla, düzenlemede **boş = değişmedi** (aksi hâlde ilk ad düzeltmesinde numara silinirdi). Teklif çıktısı gerçek kişide "T.C. Kimlik No", tüzel kişide "Vergi D. / No" basıyor — yanlış etiket, numarayı hiç basmamakla aynı hatadır. **Zorunlu değil.**
