# Yönetim › Tanımlamalar (`App.Administration.Definitions`)
> "Ek — Ekran envanteri" bölümü wizard dosyalarından üretilir, elle düzenlenmez. Sektörler, Diziler ve Ölçü Kategorileri wizard ekranı değildir (`ListFormSeeder_Administration`); burada yalnızca menü sırası için anılır.
## 1. Amaç ve kapsam
Satış ve satınalmanın ortak kullandığı**Kontaklar** kartı (müşteri ve tedarikçi; şirket ya da bireysel) ve onu sınıflandıran **Kontak Etiketleri**. İleride yapılacak Satış ve Satınalma belgeleri (teklif, sipariş, fatura) kontağı bu ekrandan seçer. Kart başlangıçta Satınalma › Tanımlamalar altında `App.Prc.Supplier` olarak üretildi; satış tarafı da kullanacağı için Yönetim modülüne taşındı.
## 2. Analiz ve kararlar
- Modül `Adm`, tablo öneki `Adm_T_`, kod öneki `App.Definitions.` (Sektörler ile aynı aile). Eski adlardan karşılık: `Prc_T_Supplier` → `Adm_T_Contact`, `Prc_T_SupplierContact` → `Adm_T_ContactPerson`, `Prc_T_SupplierBankAccount` → `Adm_T_ContactBankAccount`, `Prc_T_SupplierTag` → `Adm_T_ContactTag`; alt tablolardaki bağ kolonu `SupplierId` → `ContactId`.
- Ana liste "Kontaklar" olduğu için kartın kişi sekmesi **İlgili Kişiler** (`App.Definitions.ContactPerson`) adını aldı; iki ekranın adı çakışmaz.
- Listede yalnızca firma/şahıs satırları durur; firmada çalışan kişiler İlgili Kişiler sekmesindedir.
- "Adrese dayalı hesaplama" butonu yok (geocoding servisi yok). Enlem/boylam kolonları tabloda durur ama formdan kaldırıldı; ekranda girilmez.
- Hesap planı tablosu olmadığından Alacak/Borç hesabı metin alanıdır; Fiyat Listesi para birimi seçimidir.
- Etiketler `Adm_T_ContactTag` adlarından dxTagBox ile seçilir ve `Tags` kolonunda tutulur.
- Kart bölümleri (Satış, Satınalma, Mali Bilgi ve Diğer, Muhasebe, Notlar) `Adm_T_Contact` satırının kendisini düzenleyen menüsüz `Form` sekmeleridir (ilişki `Id → Id`), Sağlık Kartları'ndaki kalıp. İlgili Kişiler ve Banka Hesapları liste sekmesidir (`Id → ContactId`).
- Satış/Satınalma sekmelerindeki ödeme koşulu, ödeme yöntemi, teslim yöntemi ve Incoterm seçenekleri Satınalma › Tanımlamalar tablolarından (`Prc_T_*`) gelir; bu tanımlar taşınmadı.
- Adres, Kiracılar ekranıyla aynı zinciri kullanır: Ülke › Şehir › İlçe › Mahalle; mahalle seçimi posta kodunu doldurur.
- Logo tek görseldir (`multiple: false`) ve formda 120×120 gösterilir.
- Sektör (`SectorId`) Sektörler ekranının (`App.Definitions.Sector`, `Adm_T_Sector`) kiracıya ait aktif kayıtlarından seçilir. `JobPosition` kolonu tabloda kalır, ekranda yoktur.
- Kontak telefonu (`Phone`) `phoneCountry` biçimindedir: maske seçilen ülkenin kodu ve numara kalıbıyla değişir, `pattern``^[0-9]{4,15}$`. Ülke alanı olmayan İlgili Kişiler telefonu `phoneGlobal` maskesi ve `^[0-9]{10}$` kuralı taşır; web sitesi `pattern`, e-posta `email` doğrulaması taşır.
Yönetim (`App.Administration`) › Tanımlamalar (`App.Administration.Definitions`):
| Sıra | Ekran | Kod | Not |
| --- | --- | --- | --- |
| 1 | Sektörler | `App.Definitions.Sector` | kod seed'i |
| 2 | Kontaklar | `App.Definitions.Contact` | ana kart; sekmeler: Satış (`App.Definitions.ContactSales`), Satınalma (`App.Definitions.ContactPurchasing`), Mali Bilgi ve Diğer (`App.Definitions.ContactFinancial`), Muhasebe (`App.Definitions.ContactAccounting`), Notlar (`App.Definitions.ContactNotes`), İlgili Kişiler (`App.Definitions.ContactPerson`), Banka Hesapları (`App.Definitions.ContactBankAccount`) — hepsi menüsüz |
Tüm tablolar kiracı (`TenantId`) + tam audit + soft delete taşır.
-`Adm_T_ContactTag` (Name, Color, IsActive)
-`Adm_T_Contact` — kimlik/adres (Country, City, District, Township, PostalCode)/vergi, satış ve satınalma koşulları (`Prc_T_*` tanım tablolarına Id ile), kullanıcılar (`AbpUsers`), para birimi (`Sas_H_Currency.Name`), sektör (`Adm_T_Sector`), dil (`Sas_H_Language.CultureName`), muhasebe alanları, Latitude/Longitude (float), Notes (HTML, nvarchar(MAX)), IsActive.
- Tanım lookup'ları yalnızca `IsActive = 1` ve silinmemiş kayıtları listeler.
- Ülke › İl › İlçe › Mahalle cascade: üst alan değişince alttakiler temizlenir; mahalle seçilince posta kodu `copy` tarifiyle dolar.
- Ana form yalnızca kimlik + adres alanlarını taşır. Satış, Satınalma, Mali Bilgi ve Diğer, Muhasebe ve Notlar sekmelerinde yalnızca düzenleme açıktır; yeni kontak önce ana formdan eklenir, sekmeler kayıttan sonra açılır.
- IBAN doğrulaması: `^[A-Z]{2}[0-9]{2}[A-Z0-9]{11,30}$` (boşluksuz, büyük harf).
- Yeni kayıtta Tür = Şirket, Grup Teklif Talebi = Sipariş Üzerine, Fatura onayı = 3 doğrulamadan sonra sor varsayılanları tablodan gelir.
## 6. Yetki ve görünürlük
Yetki ağacı: `App.Administration` grubu ›`App.Administration.Definitions`›`App.Definitions.Contact` (sıra 2) ve `App.Definitions.ContactTag` (sıra 3), her biri + Create/Update/Delete/Export/Import/Note. Alt formların yetkisi `App.Definitions.Contact` altındadır: Satış, Satınalma, Mali Bilgi ve Diğer, Muhasebe, Notlar (7–11), İlgili Kişiler (12), Banka Hesapları (13). `Modules = Sas|Adm`, `MultiTenancySide = Both`. Yetkiler hiçbir role otomatik atanmaz. Widget'lar: Kontaklar ve Kontak Etiketleri'nde Toplam · Aktif · Pasif; alt formlarda widget yok.
## 7. Entegrasyonlar
Yok. Ülke/Şehir/İlçe, Para Birimi, Dil, Sektör, Kullanıcılar ve Satınalma tanımları yalnızca okunur.
## 8. Akış örneği
1. Yönetim › Tanımlamalar › Kontak Etiketleri'nde "Vendor" aktif durur.
2. Kontaklar'da "Acme Corporation" eklenir, Etiketler kutusundan Vendor seçilir.
3. Satınalma sekmesinde Düzenle ile Ödeme Koşulu = 30 Gün seçilir.
5. Banka Hesapları sekmesinde IBAN girilir ve Varsayılan işaretlenir.
## 9. Sık sorulanlar
- **Tedarikçiler ekranı nereye gitti?** Bu ekrandır; müşteri ve tedarikçi aynı Kontaklar kartında tutulur.
- **Kişiler neden listede ayrı satır değil?** Kişi kontak değildir; kartın İlgili Kişiler sekmesindedir.
- **Yeni kontakta Satış/Satınalma sekmeleri neden yok?** Sekmeler kaydın kendisini düzenler; kayıt ana formdan eklendikten sonra görünür.
- **Sekme "Kayıt Bulunamadı" gösteriyor.** Kullanıcının o sekmenin okuma yetkisi yoktur (`App.Definitions.ContactSales` vb.); yetkiler rol ekranından verilir.
- Geri alma: önce `Contact.json`, sonra alt formlar ve `ContactTag.json``delete_wizard` ile silinir; tablolar yalnızca açık onayla `dropTables: true` ile düşürülür.
<!-- module-doc:auto:begin -->
## Ek — Ekran envanteri (otomatik)
> Wizard dosyalarından üretilir; deploy, silme, tasarımcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur.
| Açıklama | Kontaklar — satış ve satınalmanın ortak kullandığı şirket ya da bireysel kartlar (müşteri ve tedarikçiler): kimlik, adres, vergi no ve iletişim bilgileri. |
| Geliştirme talebi | Satınalma Modülü |
| Kaynak | `Adm_T_Contact` · filtre `"IsDeleted" = 'false'` |
| Alt formlar | `App.Definitions.ContactSales` (Id → Id), `App.Definitions.ContactPurchasing` (Id → Id), `App.Definitions.ContactFinancial` (Id → Id), `App.Definitions.ContactAccounting` (Id → Id), `App.Definitions.ContactNotes` (Id → Id), `App.Definitions.ContactPerson` (Id → ContactId), `App.Definitions.ContactBankAccount` (Id → ContactId) |