Belirti
Ticket başlıklarındaki tipik ifadeler (SRC-TKT-ERP, PRB-BAKIYE-000 kelime listesi): "bakiye tutmuyor", "stok tutmuyor", "yanlış işlem düzeltildi", "işlem silme", "bakiye ekstresi yanlış", "geçmişe işlem girildi", "kasa bakiyesi farklı", "bakiye ters çıkıyor", "bakiye birden değişti, kimse işlem yapmadı", "işlem listeden kayboldu".
Gözlem ile sebep ayrımı
- Gözlem: ekrandaki bakiye, stok listesi ya da ekstre müşterinin beklediği rakamdan farklı. Ticket başlığı yalnız bunu söyler; "düzeltildi" ifadesi çağrının kapanış notudur, kök neden değildir.
- Sebep olmayanlar (sık karıştırılır): kasa seçimi (cari bakiye kasaya bölünmez, stok kasa bazlıdır — TBL-CARI.ISLEMLER KasaId açıklaması), rapor süzgeci, kur listesinin boş olması (rakamı değil karşılığını bozar).
- Sebep adayı olabilenler: işlem yönü/tipi yanlış, çift bacaklı işlemde tek satır, tetikleyici kapalı, devir farkı, düzeltme/iptal geçmişi. Her biri aşağıda kanıtıyla listelenir; hangisinin geçerli olduğu ancak
Cari.Historyve defter tablolarıyla doğrulanır.
Muhtemel nedenler
| # | Neden | Kanıt |
|---|---|---|
| 1 | İşlem yönü ters (GİRİŞ alacaklandırır, ÇIKIŞ borçlandırır) | BR-YON-007, H-103 — SOURCE_IMPLEMENTED |
| 2 | İşlem tipi PEŞİN girilmiş: bakiye üretmez, kasaya yansır | BR-TIP-002, BR-TIP-003, H-104 — SOURCE_IMPLEMENTED |
| 3 | Resmî tip (11/12) girilmiş: operasyonel stok/bakiye kaydı üretmez | BR-TIP-004, BR-DEFTER-URETIMI — SOURCE_IMPLEMENTED |
| 4 | Başka kullanıcı düzeltmiş/iptal etmiş ("birden değişti") | BR-IPTAL-009, BR-DUZELTME-009, H-105, H-109 |
| 5 | Virman/parite/vadeli iki bacaktan biri yazılmamış | BR-VIRMAN-002, H-106, PB-032, PB-048 |
| 6 | Tetikleyici Cari.AcceptTransaction devre dışı: işlem var, defter yok |
H-006, PB-029, TRG-CARI.ACCEPTTRANSACTION — SOURCE_IMPLEMENTED |
| 7 | Geçmiş tarihli işlem o günün kuru olmadan girilmiş: birim bakiyesi doğru, has/TL karşılığı yanlış | BR-KUR-001, H-107, H-110 |
| 8 | Devir satırı arşivdeki son bakiyeyle uyuşmuyor | H-108, PB-034 |
| 9 | Stok listesinde yanlış kasa seçili; transfer karşı kasada kabul edilmemiş | H-113, H-114, BR-TRANSFER-002 |
| 10 | Kurulum farkı: cari işlemin stok üretmesi döviz bürosunda %1,4, kuyumcuda %60,3 — "stok tutmuyor" beklentisi iş modeline bağlı | BR-DEFTER-URETIMI (CTR-038) — PRODUCTION_OBSERVED |
İlk sorulacak sorular
- Hangi hesap, hangi birim, hangi tarih aralığı; beklenen rakam ne, görünen ne?
- Bakiye mi stok mu tutmuyor? (İkisi ayrı defterdir:
Cari.BakiyeIslem/Stok.StokHaraketleri.) - İşlem listesindeki TP sütunu ne yazıyor (NORMAL / PEŞİN / RESMİ)?
- Son 24 saatte düzeltme/iptal yapan oldu mu; İşlem Geçmişi'nde satır var mı?
- Bugün kur listesi girildi mi? Devir yakın zamanda yapıldı mı?
- Söz konusu işlem virman/parite/vadeli gibi iki bacaklı bir işlem mi?
İlgili ekran(lar)
SCR-ISCREEN (Cari İşlemler ana ekranı, İşlem Geçmişi) · SCR-FRMCARIBAKIYEDETAY · SCR-FRMMADENSTOKLARI · SCR-FRMNAKITSTOKLARI · SCR-FSHESAPEXTRESI · SCR-IFVIRMAN · SCR-FRMTRANSFER
İlgili müşteri varyantı
- DOVIZ (ERPGOLDV2): cari işlem neredeyse yalnız bakiye defteri üretir; "stok da değişmeli" beklentisi çoğunlukla yanlıştır. INST-ERPGOLDV2
- KUYUMCU: cari işlemlerin %60'ı stok da üretir; takoz/çeşni bakiyesi milyem hesabına bağlıdır (BR-BAKIYE-005). INST-KUYUMCU
- MüşteriŞemasıD: müşteri-özel rapor fonksiyonları (MüşteriŞemasıD.GetPozisyon vb.) bakiyeyi farklı süzebilir; GAP: MüşteriŞemasıD şemasının bakiye hesabında çekirdekten sapıp sapmadığı doğrulanmadı.
Kontrol edilecek Settings
Sistem.Settings.DuzeltmeGun, SilGun, DuzeltmeOnayi, SilmeOnayi, MutabakatLock (düzeltme/iptal engelleri) · PesinKurTipi (peşin karşılık hesabı) · Provizyon (şubeler arası onay bekleyen işlem bakiyeye düşmez — BR-TRANSFER-005). Kaynak: CONFIGURATION.
Salt okunur SQL teşhis sorgusu
-- 1) Tetikleyici açık mı? (H-006)
SELECT name, is_disabled FROM sys.triggers WHERE parent_id = OBJECT_ID('Cari.Islemler');
-- 2) Bir hesabın son işlemleri ve defter karşılıkları (IslemId bazında)
SELECT I.Id, I.Tarih, I.FisNo, I.IslemKodu, I.IslemTuru, I.IslemTipi, I.BakiyeId, I.StokId,
I.Miktar, I.Tutar, I.Birim, I.IsDeleted, I.LastModify,
(SELECT COUNT(*) FROM Cari.BakiyeIslem B WHERE B.IslemId = I.Id) AS BakiyeSatir,
(SELECT COUNT(*) FROM Stok.StokHaraketleri S WHERE S.IslemId = I.Id) AS StokSatir
FROM Cari.Islemler I
WHERE I.HesapId = @HesapId AND I.Tarih BETWEEN @T1 AND @T2
ORDER BY I.Tarih DESC, I.Id DESC;
-- 3) Kim, ne zaman değiştirdi? (H-105 / H-109)
SELECT H.LogType, H.LogDate, H.TransactionId, H.FisNo, H.Tarih, H.Miktar, H.Tutar, H.UserId, U.UserName
FROM Cari.History H LEFT JOIN Sistem.Users U ON U.Id = H.UserId
WHERE H.HesapId = @HesapId AND H.LogDate >= @T1
ORDER BY H.LogDate DESC;
-- 4) Birim bazında net bakiye (MET-BAKIYE)
SELECT B.BirimId, SUM(B.NetBakiye) AS NetBakiye
FROM Cari.BakiyeIslem B WHERE B.HesapId = @HesapId AND B.Tarih <= @T2 GROUP BY B.BirimId;
İlgili iş kuralı
BR-DEFTER-URETIMI · BR-STOK-006 (her kayıtta sil-yeniden yaz) · BR-YON-007 · BR-TIP-002 · BR-BAKIYE-001 · BR-DUZELTME-006 (virman düzeltilemez) · BR-STOK-012 (fiziksel silme yok)
Geçmiş ticket teması
PRB-BAKIYE-000 — 710 çağrı, ERPGOLDV2 çağrılarının %6,4'ü; alt kategoriler: Bakiye/Stok Girişi 283, İşlem Düzeltme 190, Eğitim 85. Ekim ve Ocak zirveleri (104 / 86) devir ve yıl sonu ile örtüşür.
İlgili süreç
PROC-74 yanlış işlemin düzeltilmesi · PROC-49 geçmiş işlem düzenleme · PROC-114 virman düzeltme · PROC-51 hesaplar arası aktarım · PROC-153 silme/düzeltme ayarları · PROC-141 transfer · PROC-127 stok girişi
Çözüm
PB-028 teşhis sırası uygulanır; ilk eşleşen adım çözümdür. Yön/tip hatası DÜZELT ile; virman/parite tek bacak iptal + yeniden giriş (PB-031, PB-032); tetik kapalıysa PB-029; devir farkı PB-034; yanlış hesaba girilen grup PB-033. Düzeltme sonrası defterler tetikleyici tarafından kendiliğinden yeniden üretilir; Cari.BakiyeIslem elle düzenlenmez.
Workaround
Müşteri acil rakam istiyorsa DEVİR/Borç İşlemleri ekranından ters kayıt ile fark kapatılır ve açıklamaya gerekçe yazılır (BR-GENEL-004); asıl neden bulununca ters kayıt iptal edilir.
Yazılımcıya escalate koşulu
PB-028'in tüm adımları temiz, tetik açık, Cari.History'de değişiklik yok ve IslemId için BakiyeIslem satır sayısı kurala uymuyorsa: hesap adı, tarih aralığı, fiş no, sorgu 2 çıktısı ve ekran görüntüsü ile. Repair.BalanceRepair hiçbir koşulda destek tarafından çalıştırılmaz (KNOWN_GAPS TD-BALANCEREPAIR).
Kalıcı önlem
"Destek çağırmadan önce" listesi (PB-060, H-169) müşteriye verilir; düzeltme/iptal yetkileri gruplara göre daraltılır (BR-DUZELTME-001); devir sonrası DEVİR satırı arşivle karşılaştırılır.
Kaynaklar
- TICKET_THEME:PRB-BAKIYE-000 (SRC-TKT-ERP, 710 çağrı)
- DB_OBJECT:Cari.AcceptTransaction satır 318–320, 323, 406–416 → TRG-CARI.ACCEPTTRANSACTION
- BUSINESS_RULE:BR-DEFTER-URETIMI (CTR-038 kurulum ölçümü, 2026-09-11)
- DOCUMENT:12_Support/Playbooks/PB-028.md, PB-029, PB-031..037
- DOCUMENT:12_Support/KnownIssues/H-006, H-103..H-116
- DERIVED:08_Database/Tables/TBL-CARI.ISLEMLER.md, TBL-CARI.BAKIYEISLEM.md, TBL-STOK.STOKHARAKETLERI.md, TBL-CARI.HISTORY.md (kolon doğrulaması)
