AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Ekranlar › SCR-MUTABAKAT

Mutabakat

SCREENMOD-STOKERPGOLD_COREACTIVE_CRITICALHIGHSOURCE_IMPLEMENTED
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Sınıf: Mutabakat · Modül: MOD-STOK · Türetildiği: DevExpress.XtraEditors.XtraForm · Yaşam döngüsü: ACTIVE_CRITICAL · Kapsam: ERPGOLD_CORE

Nedir?

Stok Mutabakat Ekranı — bir kasanın günlük fiziksel stok sayımını giren ekrandır; cari mutabakat değildir. Sözlükteki "mutabakat" (müşteriyle bakiye teyidi, işlem listesinde F12, Cari.Islemler.Mutabakat/MTarih) başka bir mekanizmadır; bu ekran Stok.Mutabakat tablosuna kasa + stok tipi (NAKIT / MADEN) + stok + bugünün tarihi için sayılan Miktar'ı yazar [SOURCE_CODE:ERPPRO/Form/Tanımlamalar/Stok/Mutabakat.vb:1-40] [DB_OBJECT:Stok.Mutabakat] [DOCUMENT:00_Governance/CONTRADICTIONS.md#ctr-sec-mutabakat-01] [DOCUMENT:18_Glossary/TERM-MUTABAKAT.md]. Izgara seçili kasanın nakit ya da maden kartlarını listeler; kullanıcı yalnız Miktar sütununu düzenler, satırdan çıkınca kayıt hemen yazılır. Sayılan miktarın defterdeki stokla karşılaştırılması ve onayı Mutabakat Onay ekranındadır; onaylanmış (Onay=1) satırlar bu ekranda tekrar gösterilmez [SOURCE_CODE:Mutabakat.vb:9-13]. Barkodlu model sayımı ayrı ekrandır (Sayım Ekranı) [DOCUMENT:kitap#4.2].

Ne zaman kullanılır?

  • Gün sonunda/başında kasadaki nakit ve maden stoğu fiziksel sayılıp sisteme yazılırken (kasa sayımı) — kitapçık §4.2: "SayimEkrani ve Mutabakat/MutabakatOnay sayım ve mutabakat içindir" [DOCUMENT:kitap#4.2].
  • Kuyumcu/rafineri kurulumunda yoğun kullanılır: KUYUMCU DB'de Stok.Mutabakat 153.394 satır, V2 (döviz) DB'de 0 [DOCUMENT:08_Database/Tables/TBL-STOK.MUTABAKAT.md].
  • GAP-PROCESS-04 "kasa sayımı / gün sonu kapatma ekranı var mı" sorusunun stok tarafı bu ekranla kapanır; kasa nakit sayımının gün kapatma anlamı taşıyıp taşımadığı süreç dokümanında yok — GAP sürer [DOCUMENT:00_Governance/KNOWN_GAPS.md#gap-process-04].

Adım adım kullanım

  1. ANA MENÜ ▸ Hesap Yonetimi ▸ Rapor ▸ Mutabakat; Kasa : kutusu şubenin kasalarıyla dolar ve kullanıcının kasası seçili gelir; kullanıcının kasa kilidi (Lock) varsa kasa değiştirilemez [SOURCE_CODE:Mutabakat.vb:2-8] [BUSINESS_RULE:BR-KASA-001].
  2. Stok : kutusundan NAKIT ya da MADEN seçilir; liste Stok.Nakit / Stok.Maden kartları (silinmemiş) ve varsa bugünkü sayım miktarıyla dolar [SOURCE_CODE:Mutabakat.vb:9-13].
  3. Satırda Miktar sütununa fiziksel sayım yazılır (yalnız bu sütun düzenlenebilir) [SOURCE_CODE:Mutabakat.vb:15-17].
  4. Satırdan çıkınca kayıt yazılır: aynı kasa/stok tipi/stok/tarih için eski satır silinir, yeni Stok.Mutabakat satırı eklenir (UserId = oturum kullanıcısı) [SOURCE_CODE:Mutabakat.vb:18-38].
  5. Refresh listeyi yeniler. Tüm kalemler sayıldıktan sonra yönetici Mutabakat Onay ekranında farkları görür ve onaylar [SCREEN:SCR-MUTABAKATONAY].

Alanların anlamı

Ekran etiketi / sütunu İş anlamı (kolon, Stok.Mutabakat)
Kasa : Sayımı yapılan kasa (KasaId); liste oturum şubesinin kasaları
Stok : (NAKIT / MADEN) Sayılan stok sınıfı → StokTipi = combo indeksi: 0 NAKIT, 1 MADEN (bkz. CTR aşağıda)
Tarih Bugün (CONVERT(Date, GETDATE())) — sayım yalnız bugüne yazılır (Tarih)
Kodu / Aciklama Stok kartı (StokIdStok.Nakit.Id / Stok.Maden.Id)
Miktar Fiziksel sayılan miktar: nakitte nominal, madende gram (Miktar, decimal 18,2)
(gizli) Onay / OnayUserId Onay durumu; onaylı satır listeden düşer

CTR-SCR-MUTABAKAT-STOKTIPI-01: TBL-STOK.MUTABAKAT kolon notu StokTipi'ni stok defteri şablonuyla "1 = maden, 2 = nakit" anlatır; ekran 0 = NAKIT, 1 = MADEN (combo indeksi) yazar ve Onay ekranı Stok.StokHaraketleri'nin 2→0, 1→1 dönüşümüyle eşler [SOURCE_CODE:Mutabakat.vb:10,21] [SOURCE_CODE:MutabakatOnay.vb:24] [DOCUMENT:08_Database/Tables/TBL-STOK.MUTABAKAT.md]. Stok.Mutabakat.StokTipi kodlaması Stok.StokHaraketleri.StokTipi ile aynı değildir; JOIN yazan raporcu dönüştürmelidir.

Hesaplama / doğrulama mantığı

  • Ekranda doğrulama mesajı yoktur; m.Save = False durumu sessizce yutulur (boş If) [SOURCE_CODE:Mutabakat.vb:33-35]. Miktar boş bırakılırsa 0 yazılır (Double dönüşümü) — GAP: boş/0 sayımın onay ekranında "sayılmadı" (kırmızı) mı "sıfır sayıldı" mı sayıldığı: Onay ekranı OnayId=0 (kayıt yok) ile kırmızı işaretler; 0 yazılmış satır kayıtlıdır, kırmızı olmaz.
  • Silme + ekleme dinamik SQL ile kurulur (2 ifade, TD-DYNAMIC-SQL).
  • Geçmiş tarihe sayım girilemez (tarih sabit bugün). Devir sonrası bu tablo boşaltılmaz; eski sayımlar birikir (GAP-DEVIR-SCOPE) [DOCUMENT:00_Governance/KNOWN_GAPS.md#gap-devir-scope].

Stok / bakiye / rapor etkisi

Defter etkisi yok — Cari.Islemler'e, bakiye ya da stok defterine yazmaz; yalnız Stok.Mutabakat sayım kaydı oluşur. Sayım ile defter farkı (Mutabakat Onay ekranındaki Fark sütunu) otomatik düzeltme üretmez; fark varsa düzeltme işlemi (MAHSUP/NORMAL giriş-çıkış) kullanıcı tarafından ayrıca yapılır — GAP: sayım farkını işleme çeviren akış kaynakta görülmedi (CTR-SEC-MAHSUP-01 "sayım farkı için ayrı Stok.Mutabakat mekanizması vardır" der; mekanizma yalnız kayıt ve onaydır).

Sık yapılan kullanıcı hataları

  • Bu ekranı cari mutabakat (F12, "«N» Numaralı İşlemde Mutabakat Yapılmış…") ile karıştırmak — o kural işlem listesi/kilit içindir [DOCUMENT:12_Support/KnownIssues/H-095.md] [DOCUMENT:12_Support/Playbooks/PB-038.md] [BUSINESS_RULE:BR-MUTABAKAT-003].
  • Yanlış kasa seçili sayım — stok kasa bazlıdır [DOCUMENT:12_Support/KnownIssues/H-113.md].
  • Stokta olmayan mal çıkılmış (negatif stok) — sayım/defter farkı belirtisi [DOCUMENT:12_Support/KnownIssues/H-123.md].
  • Bu ekrana özgü destek kaydı yok — GAP (ticket temalarında "stok mutabakatı" ifadesi ayrışmıyor).

İlgili ticket temaları

Müşteri varyasyonları

  • KUYUMCU (MüşteriŞemasıA/MüşteriŞemasıB/MüşteriŞemasıC) kurulumunda yoğun kullanım (153.394 satır, 27.01.2021'e kadar giden kayıt); döviz V2'de hiç kullanılmamış [DOCUMENT:kitap#9.7] [DOCUMENT:08_Database/Tables/TBL-STOK.MUTABAKAT.md].
  • Menüde "Hesap Yonetimi ▸ Rapor" altında olması (rapor değil giriş ekranı) menü yerleşimi farkıdır; ayrıca iScreen, FrmMainForm, FrmGlobalSettings designer'larında string literal ile anılır — GAP: bu üç yerden hangi bağlamda açıldığı doğrulanmadı.

Kim kullanır? Nereden açılır?

  • ANA MENÜ ▸ Hesap Yonetimi ▸ Rapor ▸ Mutabakat
  • Kod içinden açan sınıflar: MutabakatOnay
  • String literal ile (dinamik) açılıyor: ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.Designer.vb, ERPPRO/Form/Genel/FrmMainForm.Designer.vb, ERPPRO/Form/Settings/FrmGlobalSettings.Designer.vb

Yaşam döngüsü kanıtı

ACTIVE_CRITICAL — ANA MENÜ: Hesap Yonetimi ▸ Rapor ▸ Mutabakat; çağıran sınıf: MutabakatOnay; string literal ile açılıyor: ERPPRO/Controls/Islem Ekranı/Base Control/iScreen.Designer.vb, ERPPRO/Form/Genel/FrmMainForm.Designer.vb, ERPPRO/Form/Settings/FrmGlobalSettings.Designer.vb

Kullanıcı olayları

Olay Metot Dosya:satır
Me.Load FormInit Mutabakat.vb:2
CmbKasa.EditValueChanged, CmbStokTipi.EditValueChanged, BtnRefresh.Click RefreshData Mutabakat.vb:9
VwBakiye.FocusedColumnChanged VwBakiye_FocusedColumnChanged Mutabakat.vb:15
VwBakiye.ValidateRow VwBakiye_ValidateRow Mutabakat.vb:18

Okuduğu / yazdığı tablolar (kod içi SQL, statik)

Tablo Fiiller
Stok.Mutabakat DELETE

Kullandığı DAO / iş sınıfları

AIO.Stok.Mutabakat

Bilinen kusurlar / dikkat

  • Dinamik SQL: 2 ifade — parametresiz birleştirme riski (TD-DYNAMIC-SQL).

Kaynaklar

  • SOURCE_CODE:ERPPRO/Form/Tanımlamalar/Stok/Mutabakat.Designer.vb
  • SOURCE_CODE:ERPPRO/Form/Tanımlamalar/Stok/Mutabakat.vb
  • DERIVED:docs/knowledge-base/screens/Mutabakat.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).