Sınıf: GiseEkrani · Modül: MOD-CARI · Türetildiği: DevExpress.XtraEditors.XtraForm · Yaşam döngüsü: ACTIVE_CRITICAL · Kapsam: ERPGOLD_CORE
Nedir?
Gise Ekrani — döviz bürosunun tezgâh (gişe) ekranı: cari hesap bakiyesi tutmadan, peşin ve TL karşılığı döviz ALIS / SATIS / TAHSILAT işlemlerini tek fişte toplar, kaydeder ve fiş/fatura basar [SOURCE_CODE:ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.vb:1-640] [DOCUMENT:kitap#4.4]. Sağ panelde şube PANO KURLARI (Sistem.DovizPanosu, alış/satış) canlı akar ve KASA sekmesinde kasanın nakit stoğu görünür; fiyat kaynağı zinciri pano → yoksa sistem kuru olup pano yoksa düşüş sessizdir [SOURCE_CODE:GiseEkrani.vb:70-84] [DOCUMENT:kitap#4.4] (CTR-008). Ekran, AIO.Parakende.Islem nesneleri üzerinden Cari.Islemler'e PEŞİN tipte satırlar yazar; her kaydedilen satır (RefNo) bir işlem kimliği alır [SOURCE_CODE:GiseEkrani.vb:520-533]. Aynı grupta ParakendeSatis (maden dahil perakende) ve HizliSatisEkrani vardır; bu ekran yalnız nakit kartlarıyla çalışır [SOURCE_CODE:GiseEkrani.vb:150-172].
Ne zaman kullanılır?
- Tezgâhta gelen müşteriye döviz alım/satımı yaparken (hesap açmadan; "isimsiz" hesap ya da müşteri hesabı seçilerek) [DOCUMENT:kitap#4.4].
- Parite (çapraz) işlemde: müşteri bir dövizi verip başka döviz alıyorsa (BIRIM ≠ TL) — iki satır üretilir [SOURCE_CODE:GiseEkrani.vb:415-470].
- Müşteriden para tahsil ederken (TAHSILAT).
- Gün içinde kasa nakit durumuna bakarken (KASA sekmesi 5 sn'de bir yenilenir —
Timer1).
Adım adım kullanım
- ANA MENÜ ▸ Hesap Yonetimi ▸ Seri Islemler ▸ Gise Islemleri. Açılışta UNVAN (hesap) listesi şube hesaplarıyla dolar, USD kuru ve ISLEM TARIHI bugün, FISNO 0 [SOURCE_CODE:GiseEkrani.vb:19-40].
- UNVAN seçilir → işlem paneli açılır [SOURCE_CODE:GiseEkrani.vb:350-362]. Hesap, ilk satır eklendikten sonra kilitlenir (
RowCount = 0iken değiştirilebilir). - ISLEM: ALIS (yeşil), SATIS (kırmızı; BSMV kutusu görünür, varsayılan EVET), TAHSILAT (sarı; yalnız kod ve miktar). KODU: TL dışı aktif nakit kartları (TAHSILAT'ta TL dahil) [SOURCE_CODE:GiseEkrani.vb:150-180].
- MIKTAR yazılır; BIRIM varsayılan TL — başka döviz seçilirse «KOD» KURU kutusu (pano alış/satışı) açılır ve işlem pariteye döner [SOURCE_CODE:GiseEkrani.vb:187-201]. FIYAT odaklanınca pano kurundan (ALIS'ta alış, SATIS'ta satış) dolar; TUTAR = Miktar × Fiyat (+BSMV) [SOURCE_CODE:GiseEkrani.vb:70-84,202-208]. TUTAR elle yazılırsa miktar/fiyat geri hesaplanır [SOURCE_CODE:GiseEkrani.vb:214-225].
- Ekle → satır ISLEM LISTESI'ne düşer; FIS BAKIYESI kutusu ALINACAK/ODENECEK toplamlarını gösterir; Vazgec alanları temizler [SOURCE_CODE:GiseEkrani.vb:481-509].
- F2 - Kaydet:
FISNO0 ise yeni fiş numarası alınır; kaydedilmemiş satırlar (RefNo=0, TAHSILAT hariç) hesap+oturum kasası+tarih ileCari.Islemler'e yazılır [SOURCE_CODE:GiseEkrani.vb:520-533]. F1 - Fiş: kaydedip fişi basar; F5 - Fatura: kaydedip her satır için E-FATURA penceresini açar (ETTN listeye yazılır) [SOURCE_CODE:GiseEkrani.vb:535-577]. OTO TEMIZLE açıksa kayıt/basım sonrası F3 - Yeni Fiş otomatik çalışır. - Iptal Et: kaydedilmemiş satır listeden düşer; kaydedilmiş satır için İşlem İptal yetkisi ve (ayara göre) PIN gerekir; "Seçili Satır İptal Edilecektir. Onaylıyormusunuz?" [SOURCE_CODE:GiseEkrani.vb:596-618] [BUSINESS_RULE:BR-IPTAL-013].
- TUM LISTE (F12): hesabın tüm gişe işlemlerini fiş no sütunuyla listeler; Ctrl+Enter seçili fişi açar, F1 fişi basar, Ctrl+Y faturasını basar; Esc kapatır [SOURCE_CODE:GiseEkrani.vb:276-294,375-397]. Transferler düğmesi TRANSFER penceresini açar.
Alanların anlamı
| Ekran etiketi | İş anlamı |
|---|---|
| UNVAN | Cari hesap (Cari.Islemler.HesapId); perakende satırları bakiye üretmez ama hesap kimliği taşır [BUSINESS_RULE:BR-PERAKENDE-003] |
| ISLEM TARIHI / FISNO | İşlem tarihi ve fiş numarası (Tarih, FisNo); fiş GetNewFisNo ile alınır [BUSINESS_RULE:BR-GENEL-002] |
| ISLEM | ALIS=0 · SATIS=1 · TAHSILAT=2 (AIO.Parakende.Islem.Islem) |
| KODU | Nakit kartı (StokId, Kodu) [SCREEN:SCR-FRMNAKITEKLE] |
| MIKTAR | Döviz nominal miktarı (Miktar) |
| BIRIM | Karşılık birimi; TL ise düz işlem, başka döviz ise parite (BirimId, Birim) |
| FIYAT | Pano kuru (yön: ALIS→alış, SATIS→satış); yoksa sistem kuru (Fiyat) [BUSINESS_RULE:BR-KUR-005] |
| TUTAR / VERGI | Tutar = Round(Miktar × Fiyat + BSMV, 2); BSMV = net × ayar‰ (yalnız SATIS, BSMV=EVET, ayar "Haric") (Tutar, Bsmv) [BUSINESS_RULE:BR-BSMV-001] |
| DOVIZ KURU / «KOD» KURU | Paritede birinci dövizin TL kuru (TxtDovizKuru); USD kuru satıra UsdKur olarak yazılır [BUSINESS_RULE:BR-PERAKENDE-007] |
| BSMV (HAYIR/EVET) | Vergi uygulansın mı [BUSINESS_RULE:BR-BSMV-002] |
| ISLEM LISTESI (Fis No, ETTN …) | Fişteki satırlar; RefNo > 0 kaydedilmiş |
| FIS BAKIYESI (ALINACAK / ODENECEK) | Fişin müşteriden alınacak / müşteriye ödenecek toplamları (IslemListesi.GetBakiye) |
| PANO KURLARI (ALIS / SATIS) / KASA (Kodu, Miktar) | Şube pano fiyatları; kasa nakit stoğu (stok.GetNakitStoklari; resmi modda Muhasebe.Stoklar) — eksi stok kırmızı |
| F1 - Fiş / F2 - Kaydet / F3 - Yeni Fiş / F5 - Fatura / Iptal Et / Transferler / OTO TEMIZLE / TUM LISTE(F12) | Eylemler |
Hesaplama / doğrulama mantığı
- Lütfen Miktar ve Tutar alanını Kontrol Ediniz. — miktar 0 ya da (TAHSILAT dışı) tutar 0 [SOURCE_CODE:GiseEkrani.vb:314-319].
- Lütfen Kur Fiyatını Pano Aralığında A-B Giriniz. — ayar P.Fiyat Kitle = Pano Kuru iken fiyat pano alış–satış aralığı dışında (BIRIM TL'de) [SOURCE_CODE:GiseEkrani.vb:232-241,320-327] [DOCUMENT:09_CodeArchitecture/CONFIGURATION.md#cfg-fiyatkitle]; Acık ise FIYAT kutusu tamamen kilitlidir.
- Lütfen Bir Hesap Seçiniz.. — hesap boş. Kayıt Edilmemiş İşlemler Var. Devam Etmek İstiyormusunuz? — Yeni Fiş öncesi. Kayıtlı İşlemi İptal Etme Yetkiniz Yok! — kaydedilmiş satır iptalinde grup yetkisi yok.
- Küsuratlı miktar: "0,xx «KOD» Ödemek İstiyormusunuz?" — hayır denirse miktar tam sayıya yuvarlanır [SOURCE_CODE:GiseEkrani.vb:299-311].
- Parite (BIRIM ≠ TL): TL tutarı = Miktar × «KOD» kuru; 1. satır seçilen işlem yönünde (KODU, TL karşılığı), 2. satır ters yönde (BIRIM dövizi, Miktar × FIYAT); açıklamaya "Parite : KOD/BIRIM m X f = t" yazılır; BSMV yalnız SATIS bacağına [SOURCE_CODE:GiseEkrani.vb:415-470] [BUSINESS_RULE:BR-KUR-010].
- BSMV geri ayrıştırma: TUTAR elle girilince net = TUTAR ÷ (1 + ayar‰) [SOURCE_CODE:GiseEkrani.vb:406-413] [BUSINESS_RULE:BR-BSMV-003].
- Not: "İsimsiz Hesaplara 7000 TL Üzeri…" ve "3000 USD üzeri…" kontrolleri ParakendeSatis ekranındadır; bu ekranın kodunda bulunmaz [BUSINESS_RULE:BR-PERAKENDE-001] [BUSINESS_RULE:BR-PERAKENDE-002] — GAP-SCR-GISE-LIMIT: gişede eşik kontrolünün başka katmanda (tetikleyici/DAO) olup olmadığı doğrulanmadı.
- Liste sorguları dinamik SQL (2 ifade, TD-DYNAMIC-SQL).
Stok / bakiye / rapor etkisi
İşlem ekranıdır: satırlar Cari.Islemler'e PEŞİN (IslemTipi=1) tipte, Kategori/Tag='PARAKENDE' ile yazılır; TRG-CARI.ACCEPTTRANSACTION peşin satır için bakiye üretmez, kasa nakit stoğunu (Stok.StokHaraketleri StokTipi=2, GİRİŞ + / ÇIKIŞ −) değiştirir [BUSINESS_RULE:BR-PERAKENDE-003] [BUSINESS_RULE:BR-STOK-003] [BUSINESS_RULE:BR-DEFTER-URETIMI]. Kayıt anındaki USD kuru satıra yazılır (UsdKur) [BUSINESS_RULE:BR-KUR-001]. Resmi kasada satırlar e-belge/BTrans kapsamına girer; iptal, mutabakat kilidi ve PIN kurallarına tabidir [BUSINESS_RULE:BR-IPTAL-013] [BUSINESS_RULE:BR-MUTABAKAT-003].
Sık yapılan kullanıcı hataları
- Perakendede kasa değiştiremiyorum — kasa oturum kasasıdır (
LoginInformation.Kasa.Id), kullanıcı kilidi [DOCUMENT:12_Support/KnownIssues/H-090.md]. - "Seçmiş Olduğunuz İşlem Yok yada Parakende Ekranından Yapılmamış." — F12/işlem no ile başka ekranın işlemi çağrıldı [DOCUMENT:12_Support/KnownIssues/H-089.md] [DOCUMENT:12_Support/Playbooks/PB-050.md].
- Eksik tahsilatla kayıt oldu; önceki müşterinin açıklaması yeni fişe geçti [DOCUMENT:12_Support/KnownIssues/H-088.md].
- Fiyat kutusu 1'e kilitli / kur giremiyorum — FiyatKitle ayarı ya da aynı birim [DOCUMENT:12_Support/KnownIssues/H-055.md] [BUSINESS_RULE:BR-KUR-006].
- Parite işleminde müşteri dövizini verdi, karşılığı görünmüyor — çift bacak; tek satır kalmış [DOCUMENT:12_Support/KnownIssues/H-057.md] [DOCUMENT:12_Support/Playbooks/PB-048.md].
- Pano fiyatı yokken sistem kurundan sessizce işlem yapılması (CTR-008) [DOCUMENT:00_Governance/CONTRADICTIONS.md#ctr-008].
- Termal fiş boş çıkıyor / fiş çıkmıyor — yazıcı ve fiş tasarımı ayarı [DOCUMENT:12_Support/KnownIssues/H-153.md] [DOCUMENT:12_Support/Playbooks/PB-025.md].
- Her şahsa resmi fatura kesmek için hesap açılması gerekir [PROCESS:PROC-106].
İlgili ticket temaları
- PRB-KUR-000 (pano), PRB-FATURA-000, PRB-YAZICI-000, PRB-DIGER-000; zincir SYM-DIGER (gişe ifadeleri).
- Playbook'lar: PB-050, PB-048, PB-025.
Müşteri varyasyonları
- Döviz bürosu (
ERPGOLDV2) ekranıdır; kuyumcu kurulumunda maden içeren perakende için ParakendeSatis kullanılır [DOCUMENT:kitap#4.4]. - KASA sekmesi kullanıcı grubunun
btn_nakitmenü yetkisine bağlıdır [SOURCE_CODE:GiseEkrani.vb:20]. - Resmi/gölge modda kasa stoğu
Muhasebe.Stoklar(belgelendirilmiş işlem havuzu) fonksiyonundan okunur [SOURCE_CODE:GiseEkrani.vb:578-590]. - Fiş basımı kullanıcı ayarındaki fiş tasarımına göre sabit fiş ya da özel tasarım (
FisDizayni) [DOCUMENT:09_CodeArchitecture/CONFIGURATION.md#cfg-client-fisdizayni]. - POS/ErpPosV2 vezne arayüzü ayrı bir üründür (GENERATED_PROPOSAL); bu ekranın özelliği değildir.
Kim kullanır? Nereden açılır?
- ANA MENÜ ▸ Hesap Yonetimi ▸ Seri Islemler ▸ Gise Islemleri
Yaşam döngüsü kanıtı
ACTIVE_CRITICAL — ANA MENÜ: Hesap Yonetimi ▸ Seri Islemler ▸ Gise Islemleri
Kullanıcı olayları
| Olay | Metot | Dosya:satır |
|---|---|---|
Me.Shown |
FormInit |
GiseEkrani.vb:19 |
Me.Closed |
FormClose |
GiseEkrani.vb:42 |
Me.KeyDown |
FormKeyDown |
GiseEkrani.vb:46 |
CmbBsmv.VisibleChanged, CmbBsmv.SelectedIndexChanged |
BSMVChanged |
GiseEkrani.vb:123 |
CmbIslemTuru.SelectedIndexChanged |
ISLEM_DEGISTI |
GiseEkrani.vb:150 |
CmbStokKodu.EditValueChanged |
STOK_DEGISTI |
GiseEkrani.vb:181 |
CmbBirim.EditValueChanged |
BIRIM_DEGISTI |
GiseEkrani.vb:187 |
TxtFiyat.GotFocus |
FIYAT_GETIR |
GiseEkrani.vb:202 |
TxtMiktar.ValueChanged, TxtFiyat.ValueChanged, CmbBsmv.SelectedIndexChanged |
TUTAR_HESAPLA |
GiseEkrani.vb:205 |
TxtMiktar.LostFocus, TxtFiyat.LostFocus, CmbBsmv.LostFocus |
Tutar_GotFocus |
GiseEkrani.vb:209 |
TxtTutar.LostFocus |
MIKTAR_HESAPLA |
GiseEkrani.vb:214 |
BtnVazgec.Click |
CLEAR_TEXTBOX |
GiseEkrani.vb:226 |
TxtFiyat.LostFocus |
FIYAT_VALIDATE |
GiseEkrani.vb:232 |
VwBakiye.CustomDrawCell |
VwBakiye_CustomDrawCell |
GiseEkrani.vb:242 |
VwIslem.RowCountChanged |
RowChanged |
GiseEkrani.vb:251 |
VwIslem.KeyDown |
VwIslem_KeyDown |
GiseEkrani.vb:256 |
VwKurlar.RowCellStyle, VwBakiye.RowCellStyle, vwKasa.RowCellStyle |
VwKurlar_RowCellStyle |
GiseEkrani.vb:259 |
Me.KeyDown |
FORM_KEYDOWN |
GiseEkrani.vb:276 |
BtnYeniFis.Click |
YENI_FIS |
GiseEkrani.vb:337 |
CmbHesap.EditValueChanged |
HESAP_DEGISTI |
GiseEkrani.vb:350 |
Pano.Refresh |
RefreshKur |
GiseEkrani.vb:368 |
ChkListele.Toggled |
ChkListele_Toggled |
GiseEkrani.vb:375 |
BtnEkle.Click |
ADD_ITEM |
GiseEkrani.vb:481 |
BtnKaydet.Click |
SAVE |
GiseEkrani.vb:531 |
BtnfisYazdir.Click |
PRINT_ALLFIS |
GiseEkrani.vb:535 |
BtnFaturaYazdir.Click |
PRINT_ALLFATURA |
GiseEkrani.vb:560 |
XtraTabControl1.SelectedPageChanged, Timer1.Tick |
REFRESH_KASA |
GiseEkrani.vb:578 |
BtnIptal.Click |
RemoveTransaction |
GiseEkrani.vb:596 |
TxtMiktar.GotFocus |
TxtMiktar_ValueChanged |
GiseEkrani.vb:619 |
vwKasa.CustomDrawCell |
vwKasa_CustomDrawCell |
GiseEkrani.vb:623 |
BtnTransfer.Click |
OpenTransferForm |
GiseEkrani.vb:631 |
Okuduğu / yazdığı tablolar (kod içi SQL, statik)
| Tablo | Fiiller |
|---|---|
Muhasebe.Stoklar ⚠︎ DB'de yok |
SELECT |
stok.GetNakitStoklari ⚠︎ DB'de yok |
SELECT |
Kullandığı DAO / iş sınıfları
AIO.Cari.Islem, AIO.Cari.View.HesapDetay, AIO.Parakende.Islem, AIO.Parakende.IslemListesi, AIO.Sistem.DovizKuru, AIO.Stok.Nakit
Kullanıcıya gösterilen mesajlar (doğrulama)
- Kayıt Edilmemiş İşlemler Var. Devam Etmek İstiyormusunuz?
- Kayıtlı İşlemi İptal Etme Yetkiniz Yok!
- Lütfen Bir Hesap Seçiniz..
- Lütfen Kur Fiyatını Pano Aralığında
- Lütfen Miktar ve Tutar alanını Kontrol Ediniz.
- Seçili Satır İptal Edilecektir. Onaylıyormusunuz?
Yetki bayrakları
IslemIptal
Bilinen kusurlar / dikkat
- Dinamik SQL: 2 ifade — parametresiz birleştirme riski (TD-DYNAMIC-SQL).
Kaynaklar
SOURCE_CODE:ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.Designer.vbSOURCE_CODE:ERPPRO/Controls/Islem Ekranı/Parakende/GiseEkrani.vbDERIVED:docs/knowledge-base/screens/GiseEkrani.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).
