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.
- Enlem/boylam
decimal(10,7) yerine float açıldı (create_table decimal'i 18,4 sabitler, koordinat hassasiyeti kaybolurdu).
- 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.
3. Menü ve ekranlar
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 |
| 3 |
Kontak Etiketleri |
App.Definitions.ContactTag |
tanım, demo veri |
| 4 |
Diziler |
App.Definitions.Sequence |
kod seed'i |
| 5 |
Ölçü Kategorileri |
App.Definitions.UomCategory |
kod seed'i |
4. Veri modeli
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.
Adm_T_ContactPerson (ContactId → Adm_T_Contact.Id, Photo, Name, JobTitle, Email, Phone, Mobile, Notes)
Adm_T_ContactBankAccount (ContactId → Adm_T_Contact.Id, BankName, Iban, AccountHolder, Currency, IsDefault)
5. İş kuralları ve hesaplar
- 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
- Yönetim › Tanımlamalar › Kontak Etiketleri'nde "Vendor" aktif durur.
- Kontaklar'da "Acme Corporation" eklenir, Etiketler kutusundan Vendor seçilir.
- Satınalma sekmesinde Düzenle ile Ödeme Koşulu = 30 Gün seçilir.
- İlgili Kişiler sekmesinde Addison Olson eklenir;
ContactId kartın Id'sinden yazılır.
- 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.
10. Dosyalar ve geri alma
- Tablolar:
sql/object/Adm_T_Contact.sql, Adm_T_ContactPerson.sql, Adm_T_ContactBankAccount.sql, Adm_T_ContactTag.sql.
- Wizard'lar:
ContactTag.json, ContactPerson.json, ContactBankAccount.json, ContactSales.json, ContactPurchasing.json, ContactFinancial.json, ContactAccounting.json, ContactNotes.json, Contact.json.
- Demo veri:
data/App.Definitions.{ContactTag,Contact}.json.
- 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.
Ek — Ekran envanteri (otomatik)
Wizard dosyalarından üretilir; deploy, silme, tasarımcı kaydı ve import'ta yenilenir. Elle düzenleme bir sonraki yenilemede kaybolur.
Kontaklar — App.Definitions.Contact
| Özellik |
Değer |
| Wizard |
wizard/Contact.json |
| Yol |
Liste (Wizard) |
| Menü |
App.Administration.Definitions › App.Definitions.Contact (sıra 2) |
| Yetki |
App.Definitions.Contact + .Create, .Update, .Delete, .Export, .Import, .Note |
| 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' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| 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) |
| Widget'lar |
App.Widget.Total, App.Widget.Active, App.Widget.Passive |
| Veri aynası |
data/App.Definitions.Contact.json |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
Logo |
Logo |
dxImageUpload |
|
✓ |
|
Name |
Adı |
dxTextBox |
✓ |
✓ |
|
CompanyType |
Tür |
dxSelectBox |
✓ |
✓ |
liste: Company, Individual |
Email |
E-Posta |
dxTextBox |
|
✓ |
|
Phone |
Telefon |
dxTextBox |
|
✓ |
|
Country |
Ülke |
dxSelectBox |
|
✓ |
sorgu: Sas_H_Country |
City |
İl / Eyalet |
dxSelectBox |
|
✓ |
sorgu: Sas_H_City (← Country) |
District |
Semt / İlçe |
dxSelectBox |
|
✓ |
sorgu: Sas_H_District (← Country,City) |
PostalCode |
Posta Kodu |
dxTextBox |
|
✓ |
|
TaxNumber |
Vergi Kimlik Numarası |
dxTextBox |
|
✓ |
|
TaxOffice |
Vergi Dairesi |
dxTextBox |
|
✓ |
|
Address1 |
Adres |
dxTextBox |
|
✓ |
|
Address2 |
Adres 2 |
dxTextBox |
|
✓ |
|
SectorId |
Sektör |
dxSelectBox |
|
✓ |
sorgu: Adm_T_Sector |
Website |
Websitesi |
dxTextBox |
|
✓ |
|
CultureName |
Dil |
dxSelectBox |
|
✓ |
sorgu: Sas_H_Language |
Tags |
Etiketler |
dxTagBox |
|
✓ |
sorgu: Adm_T_ContactTag |
IsActive |
Aktif |
dxCheckBox |
✓ |
✓ |
|
Kontak Etiketleri — App.Definitions.ContactTag
| Özellik |
Değer |
| Wizard |
wizard/ContactTag.json |
| Yol |
Liste (Wizard) |
| Menü |
App.Administration.Definitions › App.Definitions.ContactTag (sıra 3) |
| Yetki |
App.Definitions.ContactTag + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Kontak Etiketleri — kontakları sınıflandırmak için kullanılan etiketler (Vendor, Müşteri, Desk Manufacturers, Ofis Malzemeleri…). |
| Geliştirme talebi |
Satınalma Modülü |
| Kaynak |
Adm_T_ContactTag · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| Widget'lar |
App.Widget.Total, App.Widget.Active, App.Widget.Passive |
| Veri aynası |
data/App.Definitions.ContactTag.json |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
Name |
Ad |
dxTextBox |
✓ |
✓ |
|
Color |
Renk |
dxColorBox |
|
✓ |
|
IsActive |
Aktif |
dxCheckBox |
✓ |
✓ |
|
İlgili Kişiler — App.Definitions.ContactPerson
| Özellik |
Değer |
| Wizard |
wizard/ContactPerson.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Definitions.ContactPerson + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
İlgili Kişiler — kontak firmada çalışan kişiler (satış temsilcisi, danışman, analist…). |
| Geliştirme talebi |
Satınalma Modülü |
| Kaynak |
Adm_T_ContactPerson · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
ContactId |
Kontak |
dxSelectBox |
|
|
sorgu: Adm_T_Contact |
Photo |
Fotoğraf |
dxImageUpload |
|
✓ |
|
Name |
Ad Soyad |
dxTextBox |
✓ |
✓ |
|
JobTitle |
Görev |
dxTextBox |
|
✓ |
|
Email |
E-Posta |
dxTextBox |
|
✓ |
|
Phone |
Telefon |
dxTextBox |
|
✓ |
|
Mobile |
Cep Telefonu |
dxTextBox |
|
✓ |
|
Notes |
Notlar |
dxTextArea |
|
✓ |
|
Banka Hesapları — App.Definitions.ContactBankAccount
| Özellik |
Değer |
| Wizard |
wizard/ContactBankAccount.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Definitions.ContactBankAccount + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Kontak Banka Hesapları — kontağın ödeme ve tahsilatta kullanılan IBAN'ları. |
| Geliştirme talebi |
Satınalma Modülü |
| Kaynak |
Adm_T_ContactBankAccount · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✓ · düzenle ✓ · sil ✓ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
ContactId |
Kontak |
dxSelectBox |
|
|
sorgu: Adm_T_Contact |
BankName |
Banka |
dxTextBox |
|
✓ |
|
Iban |
IBAN |
dxTextBox |
✓ |
✓ |
|
AccountHolder |
Hesap Sahibi |
dxTextBox |
|
✓ |
|
Currency |
Para Birimi |
dxSelectBox |
|
✓ |
sorgu: Sas_H_Currency |
IsDefault |
Varsayılan |
dxCheckBox |
|
✓ |
|
Kontak Muhasebe — App.Definitions.ContactAccounting
| Özellik |
Değer |
| Wizard |
wizard/ContactAccounting.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Definitions.ContactAccounting + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Kontak Muhasebe — kontak kartının muhasebe ayarları. |
| Geliştirme talebi |
Satınalma Modülü |
| Kaynak |
Adm_T_Contact · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
ReceivableAccount |
Alacak Hesabı |
dxTextBox |
|
✓ |
|
PayableAccount |
Borç Hesabı |
dxTextBox |
|
✓ |
|
InvoiceAutoApprove |
Faturaları Otomatik Onayla |
dxSelectBox |
|
✓ |
liste: Never, AfterThree, Always |
PaymentQrType |
Ödeme QR Kodu |
dxSelectBox |
|
✓ |
liste: None, Sepa, Emv |
Kontak Mali Bilgi ve Diğer — App.Definitions.ContactFinancial
| Özellik |
Değer |
| Wizard |
wizard/ContactFinancial.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Definitions.ContactFinancial + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Kontak Mali Bilgi ve Diğer — kontak kartının mali durumu ve diğer tanımlayıcıları. |
| Geliştirme talebi |
Satınalma Modülü |
| Kaynak |
Adm_T_Contact · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
FinancialStatus |
Mali Durum |
dxSelectBox |
|
✓ |
liste: Good, Watch, Risky |
Reference |
Referans |
dxTextBox |
|
✓ |
|
Barcode |
Barkod |
dxTextBox |
|
✓ |
|
Kontak Notları — App.Definitions.ContactNotes
| Özellik |
Değer |
| Wizard |
wizard/ContactNotes.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Definitions.ContactNotes + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Kontak Notları — kontak kartında tutulan serbest notlar. |
| Geliştirme talebi |
Satınalma Modülü |
| Kaynak |
Adm_T_Contact · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
Notes |
Notlar |
dxHtmlEditor |
|
✓ |
|
Kontak Satınalma — App.Definitions.ContactPurchasing
| Özellik |
Değer |
| Wizard |
wizard/ContactPurchasing.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Definitions.ContactPurchasing + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Kontak Satınalma — kontak kartının satınalma tarafındaki koşulları. |
| Geliştirme talebi |
Satınalma Modülü |
| Kaynak |
Adm_T_Contact · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
RfqGrouping |
Grup Teklif Talebi |
dxSelectBox |
✓ |
✓ |
liste: OnOrder, Weekly, Always |
BuyerUserId |
Alıcı |
dxSelectBox |
|
✓ |
sorgu: AbpUsers |
PurchasePaymentTermId |
Ödeme Koşulları (Satınalma) |
dxSelectBox |
|
✓ |
sorgu: Prc_T_PaymentTerm |
PurchasePaymentMethodId |
Ödeme Yöntemi (Satınalma) |
dxSelectBox |
|
✓ |
sorgu: Prc_T_PaymentMethod |
ReceiptReminder |
Alım Hatırlatıcısı |
dxSwitch |
|
✓ |
|
ReminderDaysBefore |
Günler Önce Alındı |
dxNumberBox |
|
✓ |
|
SupplierCurrency |
Tedarikçi Para Birimi |
dxSelectBox |
|
✓ |
sorgu: Sas_H_Currency |
PurchaseIncotermId |
Teslimat Koşulu (Satınalma) |
dxSelectBox |
|
✓ |
sorgu: Prc_T_Incoterm |
PurchaseIncotermLocation |
Incoterm Konumu (Satınalma) |
dxTextBox |
|
✓ |
|
Kontak Satış — App.Definitions.ContactSales
| Özellik |
Değer |
| Wizard |
wizard/ContactSales.json |
| Yol |
Liste (Wizard) |
| Menü |
Menüsüz (alt form) |
| Yetki |
App.Definitions.ContactSales + .Create, .Update, .Delete, .Export, .Import, .Note |
| Açıklama |
Kontak Satış — kontak kartının satış tarafındaki ticari koşulları. |
| Geliştirme talebi |
Satınalma Modülü |
| Kaynak |
Adm_T_Contact · filtre "IsDeleted" = 'false' |
| Görünümler |
Grid, Card, Pivot, Chart (açılış grid) |
| Düzenleme |
ekle ✗ · düzenle ✓ · sil ✗ · popup |
| Kapsam |
Kiracı |
| Alan |
Başlık |
Editör |
Zorunlu |
Formda |
Kaynak |
SalesUserId |
Satış Temsilcisi |
dxSelectBox |
|
✓ |
sorgu: AbpUsers |
SalesCurrency |
Fiyat Listesi |
dxSelectBox |
|
✓ |
sorgu: Sas_H_Currency |
SalesPaymentTermId |
Ödeme Koşulları (Satış) |
dxSelectBox |
|
✓ |
sorgu: Prc_T_PaymentTerm |
SalesPaymentMethodId |
Ödeme Yöntemi (Satış) |
dxSelectBox |
|
✓ |
sorgu: Prc_T_PaymentMethod |
DeliveryMethodId |
Teslim Yöntemi |
dxSelectBox |
|
✓ |
sorgu: Prc_T_DeliveryMethod |
SalesIncotermId |
Teslimat Koşulu (Satış) |
dxSelectBox |
|
✓ |
sorgu: Prc_T_Incoterm |
SalesIncotermLocation |
Incoterm Konumu (Satış) |
dxTextBox |
|
✓ |
|