Sınıf: MutabakatOnay · Modül: MOD-STOK · Türetildiği: DevExpress.XtraEditors.XtraForm · Yaşam döngüsü: ACTIVE_CRITICAL · Kapsam: ERPGOLD_CORE
Nedir?
Mutabakat Onay Formu — Stok Mutabakat ekranında girilen günlük stok sayımını, stok defterindeki miktarla yan yana gösterip yöneticinin onayladığı ekrandır; cari mutabakat (F12) değildir [SOURCE_CODE:ERPPRO/Form/Tanımlamalar/Stok/MutabakatOnay.vb:1-74] [DOCUMENT:00_Governance/CONTRADICTIONS.md#ctr-sec-mutabakat-01]. Her satır bir stok kartıdır: StokMiktar (Stok.StokHaraketleri toplamı = defter), Miktar (bugünkü sayım), Fark = |StokMiktar| − |Miktar|, Onay kutusu. Sayımı girilmemiş kalemler kırmızı (domates) zeminle, onaylananlar üstü çizili gösterilir; liste her 5 saniyede kendini yeniler, böylece sayım ekranında yazılan miktarlar anında görünür [SOURCE_CODE:MutabakatOnay.vb:4-7,19-56]. Onay kutusu işaretlenince Stok.Mutabakat.Onay = 1 ve OnayUserId = onaylayan yazılır; onaylı satır sayım ekranından düşer [SOURCE_CODE:MutabakatOnay.vb:64-72].
Ne zaman kullanılır?
- Kasa sayımı girildikten sonra yönetici defter ile sayımı karşılaştırıp kalem kalem onaylarken (kuyumcu/rafineri kurulumu) [DOCUMENT:kitap#4.2] [DOCUMENT:08_Database/Tables/TBL-STOK.MUTABAKAT.md].
- Sayımı eksik (kırmızı) kalemleri görüp sayım ekranına geri döndürmek için.
- Farkı sıfır olmayan kalemleri tespit etmek için — düzeltme işlemi bu ekrandan yapılmaz (bkz. Stok/bakiye etkisi).
Adım adım kullanım
- ANA MENÜ ▸ Hesap Yonetimi ▸ Rapor ▸ Mutabakat Onay; Kasa : kullanıcının kasası (kasa kilidi varsa değiştirilemez), Stok : NAKIT / MADEN [SOURCE_CODE:MutabakatOnay.vb:12-18].
- Liste dolar: yalnız sayımı ya da defter miktarı sıfırdan farklı kalemler; sütunlar Tarih (sayım kayıt anı), Kodu, Aciklama, StokMiktar, Miktar, Fark, Onay [SOURCE_CODE:MutabakatOnay.vb:24].
- Kırmızı satır = bugün için sayım kaydı yok (
OnayId = 0) → sayım ekranına dönülür; bu satırda Onay kutusu düzenlenemez [SOURCE_CODE:MutabakatOnay.vb:42-63]. - Fark kabul edilebilir/ sıfır ise Onay kutusu işaretlenir; satırdan çıkınca kayıt yazılır ve satır üstü çizili olur.
- Refresh ya da 5 sn'lik otomatik yenileme; pencere kapanınca zamanlayıcı bırakılır [SOURCE_CODE:MutabakatOnay.vb:7-9].
Alanların anlamı
| Ekran etiketi / sütunu | İş anlamı (kaynak) |
|---|---|
| Kasa : / Stok : | Karşılaştırılan kasa ve stok sınıfı (NAKIT=0 / MADEN=1 combo indeksi) |
| Tarih | Sayım kaydının InsertDate'i (yalnız bugünün sayımı eşlenir: D.Tarih = bugün) |
| Kodu / Aciklama | Stok kartı (Stok.Nakit / Stok.Maden) |
| StokMiktar | Defter stoğu: SUM(Stok.StokHaraketleri.Miktar) kasa+stok bazında (nakit StokTipi=2 → 0, maden StokTipi=1 → 1 eşlemesiyle) |
| Miktar | Sayım ekranında girilen fiziksel miktar (Stok.Mutabakat.Miktar) |
| Fark | ABS(StokMiktar) − ABS(Miktar) (decimal 18,2) — artı: defter fazla / sayım eksik; eksi: sayım fazla |
| Onay | Stok.Mutabakat.Onay (bit); işaretleyen OnayUserId |
| (gizli) OnayId | Stok.Mutabakat.Id; 0 ise sayım yok (kırmızı) |
Hesaplama / doğrulama mantığı
- Fark mutlak değerler üzerinden alınır; işaretli stoklarda (negatif defter) yön bilgisi kaybolur — GAP-SCR-MUTABAKATONAY-FARK: negatif defter stoğunda farkın anlamı doğrulanmalı [SOURCE_CODE:MutabakatOnay.vb:24].
- Onay kutusu yalnız
OnayId ≠ 0satırda düzenlenebilir; başka sütun düzenlenemez [SOURCE_CODE:MutabakatOnay.vb:57-63]. - Ekranda mesaj yoktur;
Save = Falseyutulur; yenileme hatası boşcatchile yutulur (TD-EMPTY-CATCH). Sorgu dinamik SQL (2 ifade). - Onayın geri alınması: kutu kaldırılınca
Onay = 0yazılır (aynıValidateRow); ayrı bir "geri al" mekanizması yoktur. - StokTipi eşlemesi:
Stok.Mutabakat.StokTipi(0 nakit / 1 maden) ↔Stok.StokHaraketleri.StokTipi(2 nakit / 1 maden) — CTR-SCR-MUTABAKAT-STOKTIPI-01 [SCREEN:SCR-MUTABAKAT].
Stok / bakiye / rapor etkisi
Defter etkisi yok — Cari.Islemler'e, Stok.StokHaraketleri'ne ya da bakiyeye yazmaz; yalnız Stok.Mutabakat.Onay/OnayUserId güncellenir. Onay, defteri sayıma eşitlemez: fark için ayrı düzeltme işlemi (giriş/çıkış, MAHSUP) gerekir — GAP: sayım farkını işleme çeviren akış kaynakta yok. Cari mutabakat kilidi (MutabakatPermission, "«N» Numaralı İşlemde Mutabakat Yapılmış…") bu ekranla ilişkisizdir [BUSINESS_RULE:BR-MUTABAKAT-003] [DOCUMENT:18_Glossary/TERM-MUTABAKAT-KILIDI.md].
Sık yapılan kullanıcı hataları
- Cari mutabakat kilidi mesajıyla karıştırma [DOCUMENT:12_Support/KnownIssues/H-095.md] [DOCUMENT:12_Support/Playbooks/PB-038.md].
- Satır kırmızı, onaylanamıyor — sayım girilmemiş; sayım ekranına dönülür [SOURCE_CODE:MutabakatOnay.vb:42-63].
- Yanlış kasada bakıyorum — stok kasa bazlı [DOCUMENT:12_Support/KnownIssues/H-113.md].
- Stokta olmayan mal çıkılmış (negatif stok) — fark eksi görünür [DOCUMENT:12_Support/KnownIssues/H-123.md].
- Bu ekrana özgü kaynaklı destek kaydı yok — GAP.
İlgili ticket temaları
- PRB-BAKIYE-000 (stok tutmuyor) — dolaylı; doğrudan PRB/SYM kaydı yok.
Müşteri varyasyonları
- KUYUMCU kurulumunda kullanılır (
Stok.Mutabakat153.394 satır); döviz V2'de kullanılmamış [DOCUMENT:08_Database/Tables/TBL-STOK.MUTABAKAT.md]. - Devir bu tabloyu boşaltmaz; geçmiş yılların sayım/onay satırları birikir (GAP-DEVIR-SCOPE) [DOCUMENT:00_Governance/KNOWN_GAPS.md#gap-devir-scope].
- POS/ErpPosV2 tasarımındaki "GunSonu" gün kapatma ekranı ayrı üründür (GENERATED_PROPOSAL); bu ekranla ilişkisi netleştirilmemiş (GAP-PROCESS-04) [DOCUMENT:00_Governance/KNOWN_GAPS.md#gap-process-04].
Kim kullanır? Nereden açılır?
- ANA MENÜ ▸ Hesap Yonetimi ▸ Rapor ▸ Mutabakat Onay
Yaşam döngüsü kanıtı
ACTIVE_CRITICAL — ANA MENÜ: Hesap Yonetimi ▸ Rapor ▸ Mutabakat Onay
Kullanıcı olayları
| Olay | Metot | Dosya:satır |
|---|---|---|
Me.Shown |
FormLoad |
MutabakatOnay.vb:4 |
Me.FormClosed |
MutabakatOnay_FormClosed |
MutabakatOnay.vb:7 |
Me.Load |
FormInit |
MutabakatOnay.vb:12 |
CmbKasa.EditValueChanged, CmbStokTipi.EditValueChanged, BtnRefresh.Click |
RefreshData |
MutabakatOnay.vb:19 |
VwBakiye.CustomDrawCell |
VwBakiye_CustomDrawCell |
MutabakatOnay.vb:42 |
VwBakiye.FocusedColumnChanged |
VwBakiye_FocusedColumnChanged |
MutabakatOnay.vb:57 |
VwBakiye.ValidateRow |
VwBakiye_ValidateRow |
MutabakatOnay.vb:64 |
Okuduğu / yazdığı tablolar (kod içi SQL, statik)
| Tablo | Fiiller |
|---|---|
Stok.StokHaraketleri |
SELECT |
Kullandığı DAO / iş sınıfları
Bilinen kusurlar / dikkat
- Boş
catchbloğu: 1 — hata yutuluyor (TD-EMPTY-CATCH). - Dinamik SQL: 2 ifade — parametresiz birleştirme riski (TD-DYNAMIC-SQL).
Kaynaklar
SOURCE_CODE:ERPPRO/Form/Tanımlamalar/Stok/MutabakatOnay.Designer.vbSOURCE_CODE:ERPPRO/Form/Tanımlamalar/Stok/MutabakatOnay.vbDERIVED:docs/knowledge-base/screens/MutabakatOnay.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).
