Sınıf: FrmKurGirisEkrani · Modül: MOD-SISTEM · Türetildiği: DevExpress.XtraBars.Ribbon.RibbonForm · Yaşam döngüsü: ACTIVE_CRITICAL · Kapsam: ERPGOLD_CORE
Nedir?
Günlük sistem kuru giriş ekranı ("… TARİHLİ KUR LİSTESİ"): seçilen tarih için her birimin Alış / Satış kurunu doğrudan ızgarada düzenleterek Sistem.Kurlar'a yazar [SOURCE_CODE:ERPPRO/Form/Genel/FrmKurGirisEkrani.vb:1-118] [DB_OBJECT:Sistem.Kurlar]. Bu liste sistem kurudur: işlem ekranlarındaki FİYAT, has/TL karşılıkları, limit ve bilanço dönüşümleri buradan gelir; perakende pano fiyatı (Sistem.DovizPanosu) ise ayrı ekranda tutulur [DOCUMENT:kitap#4.3] [DOCUMENT:18_Glossary/TERM-SISTEM-KURU.md] [DOCUMENT:18_Glossary/TERM-PANO-KURU.md]. Kur girilmeyen günde program sessizce en son kuru kullanır (Sistem.GetLastKur) [DOCUMENT:06_Workflows/WF-KUR-LISTESI-GUNCELLEME.md#varyantlar]. Kopyala düğmesi önceki günün kurlarını bugüne kopyalar (Sistem.KurKopyala); program açılışında liste boşsa aynı kopya otomatik yapılır (Program.vb çağrısı) [DB_OBJECT:Sistem.KurKopyala] [SOURCE_CODE:FrmKurGirisEkrani.vb:97-117].
Ne zaman kullanılır?
- Her iş günü başında kurlar girilirken ya da gün içinde kur değişince [DOCUMENT:06_Workflows/WF-KUR-LISTESI-GUNCELLEME.md].
- Yeni tanımlanan birimin ilk kuru girilirken (kur yoksa FİYAT 0 gelir, "Lütfen Tutar Giriniz.") [DOCUMENT:12_Support/Playbooks/PB-036.md].
- EDS (elektronik döviz sistemi) kur akışı kesildiğinde elle kur girmek için [DOCUMENT:12_Support/Playbooks/PB-061.md].
- Geçmiş bir tarihin kurunu düzeltmek için (tarih gezgininden gün seçilir) — geçmiş tarihli işlemin kur fotoğrafı değişmez, bkz. aşağıda.
Adım adım kullanım
- ANA MENÜ ▸ Hesap Yonetimi ▸ Ayarlar ▸ Kur Giris Ekranı (program açılışında da
Program.vbüzerinden açılabilir). - Soldaki tarih gezgini ile gün seçilir; başlık "gg.aa.yyyy TARİHLİ KUR LİSTESİ" olur, liste
Sistem.GetKurListesi(tarih)ile dolar; hesaplanmış (Computed) birimler listelenmez [SOURCE_CODE:FrmKurGirisEkrani.vb:23-33,51-55]. - Kırmızı satırlar o gün için henüz kur kaydı olmayan birimlerdir (
Id = 0) [SOURCE_CODE:FrmKurGirisEkrani.vb:56-62]. - Satırda Alis yazılır, Enter → Satis kutusuna geçer, tekrar Enter → alt satırın Alis'ine iner [SOURCE_CODE:FrmKurGirisEkrani.vb:36-50]. Yalnız Alis ve Satis sütunları düzenlenebilir.
- Satırdan çıkınca kayıt doğrulanır ve yazılır: yeni satır INSERT, mevcut satır UPDATE (
LastModify,UserIdile) [SOURCE_CODE:FrmKurGirisEkrani.vb:70-96]. - Tüm liste dünle aynıysa Kopyala basılır: bugünün satırları silinir ve
Sistem.GetLastKursonucu bugüne kopyalanır [DB_OBJECT:Sistem.KurKopyala]. - Esc kapatır. Açık işlem ekranlarındaki fiyat kendiliğinden yenilenmez; program kur listesini
KurRefreshIntervalaralığıyla yeniden okur [DOCUMENT:06_Workflows/WF-KUR-LISTESI-GUNCELLEME.md] [DOCUMENT:12_Support/KnownIssues/H-046.md].
Alanların anlamı
| Ekran sütunu / öğesi | İş anlamı (kolon, Sistem.Kurlar) |
|---|---|
| Tarih gezgini | Kur günü (Tarih); her gün için ayrı satır seti |
| Kodu / Birim (ızgara) | Birim (BirimId → Sistem.Birimler) |
| Alis | Alış kuru — SQL tarafındaki FN.GetKur ve çoğu ekran fiyatı her zaman alış kullanır (Alis) [BUSINESS_RULE:BR-KUR-008] (CTR-009) |
| Satis | Satış kuru; perakende/gişe satışta ve vadeli çaprazda kullanılır (Satis) [BUSINESS_RULE:BR-KUR-005] |
| (kırmızı satır) | O gün için kayıt yok |
| Kopyala | Sistem.KurKopyala — son kurları bugüne kopyalar |
Gizli sütunlar: Id, BirimId, Computed, Tarih, AlisFormul, SatisFormul [SOURCE_CODE:FrmKurGirisEkrani.vb:25-30].
Hesaplama / doğrulama mantığı
- Girilen Değer Sıfır Olamaz.!! — Alis veya Satis 0 ise satır kaydedilmez [SOURCE_CODE:FrmKurGirisEkrani.vb:70-78].
- Kurlar Güncellenemedi. — INSERT kimlik döndürmedi [SOURCE_CODE:FrmKurGirisEkrani.vb:80-88].
- Hesaplanmış birimlerin kuru kaynak birim × çarpan ile
GetKurListesiiçinde türetilir; bu ekrandan girilmez [DOCUMENT:18_Glossary/TERM-SISTEM-GETKURLISTESI-GETLASTKUR-FN-GETKUR.md]. - Kur fotoğrafı: işlem kaydında o anki kur satıra yazılır (
HasKur, GumKur, …, UsdKur); sonradan kur düzeltilse bile eski işlemin kuru değişmez, düzeltmede yeniden çekilmez [BUSINESS_RULE:BR-KUR-001] [BUSINESS_RULE:BR-KUR-003]. - INSERT/UPDATE dinamik SQL ile kurulur (3 ifade, TD-DYNAMIC-SQL).
Stok / bakiye / rapor etkisi
Defter etkisi yok — tanım/ayar ekranı; Cari.Islemler'e yazmaz. Ancak kur; bakiye NET/has karşılığı, limit kontrolü, bilanço ve pozisyon raporlarının değerlemesini anlık değiştirir: "Kur değiştirilince bilanço değişiyor" beklenen davranıştır [DOCUMENT:12_Support/KnownIssues/H-129.md] [DOCUMENT:12_Support/Playbooks/PB-055.md].
Sık yapılan kullanıcı hataları
- Kur listesi girilmemiş: toplam 0, has karşılığı yanlış, "Lütfen Tutar Giriniz." [DOCUMENT:12_Support/Playbooks/PB-036.md] [DOCUMENT:12_Support/KnownIssues/H-039.md].
- Kur değişti ama ekrandaki fiyat eski — açık ekran yenilenmez [DOCUMENT:12_Support/KnownIssues/H-046.md].
- Fiyat alanı satışta da alış kurunu getiriyor — tasarım davranışı [DOCUMENT:12_Support/KnownIssues/H-045.md] (CTR-009).
- Geçmiş tarihli işlem yanlış kurla girilmiş — kur fotoğrafı; işlem düzeltilmeli [DOCUMENT:12_Support/KnownIssues/H-107.md].
- EDS çok yavaş / kur gelmiyor —
Sistem.Kurlar'da yılların birikmiş kaydı [DOCUMENT:12_Support/KnownIssues/H-160.md] [DOCUMENT:12_Support/Playbooks/PB-061.md]. - Yeni birimin kuru yanlış çarpanla geliyor — Computed/Carpan tanımı [DOCUMENT:12_Support/KnownIssues/H-022.md].
İlgili ticket temaları
- PRB-KUR-000; zincir SYM-KUR.
- Playbook'lar: PB-036, PB-061.
- Süreç: PROC-217 (iki veritabanı arasında yıllık kur taşıma, SQL).
Müşteri varyasyonları
- EDS kurulu müşterilerde kur,
Sistem.KurEkleyordamıyla otomatik gelir; bu ekran yalnız elle müdahale içindir [DOCUMENT:06_Workflows/WF-KUR-LISTESI-GUNCELLEME.md] [DB_OBJECT:Sistem.KurEkle]. - TCMB kuru ayrı ekrandan çekilir ve RESMİ/MAHSUP işlemlerde USD karşılığı için kullanılır (FrmTCMBKur) [BUSINESS_RULE:BR-KUR-002].
Kim kullanır? Nereden açılır?
- ANA MENÜ ▸ Hesap Yonetimi ▸ Ayarlar ▸ Kur Giris Ekranı
Yaşam döngüsü kanıtı
ACTIVE_CRITICAL — kod içinden erişim (New/varsayılan örnek): ERPPRO/Class/Module/Program.vb; ANA MENÜ: Hesap Yonetimi ▸ Ayarlar ▸ Kur Giris Ekranı; çağıran sınıf: Program
Kullanıcı olayları
| Olay | Metot | Dosya:satır |
|---|---|---|
Me.KeyDown |
_KeyDown |
FrmKurGirisEkrani.vb:17 |
Me.Load |
FormInit |
FrmKurGirisEkrani.vb:20 |
VwKurListesi.KeyDown |
gridControl1_ProcessGridKey |
FrmKurGirisEkrani.vb:36 |
DateNavigator1.EditDateModified |
DateNavigator1_Validated |
FrmKurGirisEkrani.vb:51 |
VwKurListesi.CustomDrawCell |
VwKurListesi_CustomDrawCell |
FrmKurGirisEkrani.vb:56 |
VwKurListesi.FocusedColumnChanged |
VwKurListesi_FocusedColumnChanged |
FrmKurGirisEkrani.vb:63 |
VwKurListesi.ValidateRow |
VwKurListesi_ValidateRow |
FrmKurGirisEkrani.vb:70 |
BtnKopyala.ItemClick |
BtnKopyala_ItemClick |
FrmKurGirisEkrani.vb:97 |
Okuduğu / yazdığı tablolar (kod içi SQL, statik)
| Tablo | Fiiller |
|---|---|
Sistem.GetKurListesi ⚠︎ DB'de yok |
SELECT |
Sistem.Kurlar |
INSERT, UPDATE |
Kullanıcıya gösterilen mesajlar (doğrulama)
- Kurlar Güncellenemedi.
Bilinen kusurlar / dikkat
- Dinamik SQL: 3 ifade — parametresiz birleştirme riski (TD-DYNAMIC-SQL).
Kaynaklar
SOURCE_CODE:ERPPRO/Form/Genel/FrmKurGirisEkrani.Designer.vbSOURCE_CODE:ERPPRO/Form/Genel/FrmKurGirisEkrani.vbDERIVED:docs/knowledge-base/screens/FrmKurGirisEkrani.md(KB-docs statik analiz)DERIVED:kb_src/erppro/scan.json(olay/SQL/çağrı)
Bilinmeyenler
- Hangi sürümde eklendiği: VERSION_UNKNOWN (GAP-CODE-VERSION-DATE).
