Tip: TABLE · Şema: Cari · Modül: MOD-CARI · Temizlik sınıfı: CRITICAL (kategori A, güven 0) · Kapsam: ERPGOLD_CORE / ALL
Kurulum karşılaştırması
| Kurulum | Var mı | Satır |
|---|---|---|
| INST-ERPGOLDV2 (döviz, 2023-12) | ● | 1459051 |
| INST-KUYUMCU (kuyumcu/rafineri, 2025-01) | ● | 975655 |
İş anlamı
Cari bakiye defteri. Cari.Islemler üzerindeki tetikleyicinin ürettiği türev tablo. Her satır 'şu hesabın şu birimdeki bakiyesi şu kadar değişti' demektir. Müşteri ekstresi ve borç/alacak bakiyesi bu tablodan okunur. Id kolonu yoktur; IslemId ile kaynağına bağlanır.
İlişkiler (JOIN kanıtı ≥ 2 sorgu — FK değil)
HesapId→Cari.Hesaplar.Id12×BirimId→Sistem.Birimler.Id11×BirimId→Cari.BakiyeKodlari.Id8×IslemId→Cari.Islemler.Id8×KasaId→Sistem.Kasalar.Id2×HesapId→ [Cari.HesapBilgileri].Id2×
Kullanım haritası (13.09.2026)
| Kategori | A — ERPGOLD CORE · A-APP_CODE |
| Güven | 100 |
| Derinlik / kök | 0 · bu nesne (Seviye-0) |
| DependencyPath | ERPGOLD → uygulama kodu (ERPPRO statik tarama) → Cari.BakiyeIslem |
| Uygulama kullanımı | APP_CODE+REPORT_SQL |
Bkz. Database Usage Map · Direct Application Objects. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.
Temizlik kanıtı
| Kontrol | Sonuç |
|---|---|
| app | YES |
| report | YES |
| config | NO |
| dynamic | NO |
| db_in | YES |
| db_out | NO |
| trigger | NO |
| fk | NO |
| computed | NO |
| crossdb | NO |
| runtime | YES |
| external | NO |
Gerekçe: APP
KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)
Modül: MOD-CARI · Satır (örnek DB): 1,459,051 · Kolon: 9 · İndeks: 12 · Tetikleyici: yok · DB'de oluşturma/değişiklik: 2016-12-20 / 2023-11-30
Özet
Cari.Islemler'den tetikleyiciyle türetilen bakiye defteri (9 kolon). Bir hesabın birim bazında borç/alacak durumunu tutar; elle yazılmaz. Pozitif Bakiye = müşteri borçlu, negatif = müşteri alacaklı.
Ayrıntı
Hesap bakiyesi: SELECT BirimId, SUM(Bakiye) WHERE HesapType=0 AND HesapId=@x GROUP BY BirimId. Sunumda Bakiye*-1 yapılır (eksi -> ALACAK, artı -> BORÇ). HEAP tablo (clustered index yok) + 12 index. Bakiye hesabında KasaId kullanılmaz.
Kolonlar
| # | Kolon | Tip | Null | Özellik | Varsayılan | Anlam |
|---|---|---|---|---|---|---|
| 1 | IslemId | int | ✔ | Ana işlem satırı (Cari.Islemler.Id). Türetilmiş defterler bu alanla bağlanır. → Cari.Islemler.Id (8 kanıt) |
||
| 3 | Tarih | date | ✔ | İşlem tarihi (muhasebe günü). Oluşturma anından farklı olabilir. | ||
| 4 | HesapType | int | Hesap türü ayrımı için ayrılmış; bu veritabanında tüm satırlarda 0 — kullanılmıyor. | |||
| 5 | HesapId | int | ✔ | Cari hesap (müşteri/tedarikçi/banka). → Cari.Hesaplar.Id (12 kanıt) · Cari.HesapBilgileri.Id (2 kanıt) |
||
| 6 | KasaId | int | ✔ | Kasa (vezne/gişe). Stok kasa seviyesinde tutulur; cari bakiye kasaya bölünmez. → Sistem.Kasalar.Id (2 kanıt) |
||
| 7 | BirimId | int | ✔ | Paranın tarafı. Peşin işlemde karşılığında alınan/verilen nakit stoğu; cari işlemde karşılık birimi. → Sistem.Birimler.Id (11 kanıt) · Cari.BakiyeKodlari.Id (8 kanıt) |
||
| 8 | Bakiye | decimal(18,2) | ✔ | decimal(18,2) işaretli; artı = müşteri borçlu, eksi = müşteri alacaklı | ||
| 9 | NetBakiye | numeric(20,3) | ✔ | hesaplanan: (case when [BirimId]=(-1) then [Bakiye]*(0.6) else [Bakiye] end) | hesaplanan: BirimId=-1 (TAKOZ) ise Bakiye*0.6, değilse Bakiye | |
| 10 | RefNo | nvarchar(max) | ✔ | (upper(newid())) | Kayıt için üretilen GUID. Karşı kayıt/transfer eşleştirmesi bunun üzerinden yapılır. |
İndeksler
| İndeks | Tip | PK | Tekil | Kolonlar | Dahil |
|---|---|---|---|---|---|
| IX_BAKIYE | NONCLUSTERED | HesapType,HesapId | BirimId,Bakiye | ||
| IX_Bakiye02 | NONCLUSTERED | Tarih,BirimId | KasaId,Bakiye | ||
| IX_Bakiye03 | NONCLUSTERED | KasaId,Tarih | BirimId,Bakiye | ||
| IX_BakiyeIslem | NONCLUSTERED | IslemId | |||
| IX_BI | NONCLUSTERED | Tarih | IslemId,BirimId,Bakiye | ||
| IX_BI2 | NONCLUSTERED | BirimId,Tarih | IslemId,Bakiye | ||
| IX_HesapNo | NONCLUSTERED | HesapId,IslemId,Tarih | |||
| IX_OZETBILANCO | NONCLUSTERED | Tarih | HesapId,KasaId,BirimId,Bakiye | ||
| IX_OZETBILANCO1 | NONCLUSTERED | KasaId,Tarih | HesapId,BirimId,Bakiye | ||
| IX_PozisyonHAcim | NONCLUSTERED | KasaId | BirimId,Bakiye | ||
| IX_ResmiPozisyon | NONCLUSTERED | BirimId | HesapId,Bakiye | ||
| IXBakiyeISlem | NONCLUSTERED | BirimId | KasaId,Bakiye |
BİLGİ — Bu tabloda tanımlı yabancı anahtar yok; bütünlük uygulama katmanında (Dao sınıfları) ve tetikleyicilerde sağlanır.
Bu tabloyu kullanan SQL nesneleri
İlgili iş kuralları
- Yalnız Cari.AcceptTransaction yazar/siler; her IslemId için sil-yeniden-yaz (Cari.AcceptTransaction.md satır 318, 373-617)
- Artı Bakiye = müşteri borçlu, eksi = alacaklı; hazır fonksiyonlar sunarken Bakiye*-1 yapar (az/08-teknik.md 8.3.3; Bakiye.GetBakiye.md)
- IslemId=-1 satırları devir/açılış bakiyeleridir, Cari.Islemler'de karşılığı yoktur; ~34.600 satır (kitapcik/02-islem-modeli.md 2.10)
- GİRİŞ/ALACAK/ALIŞ satırında Bakiye alacaklı (negatif), ÇIKIŞ/SATIŞ/BORÇ'ta borçlu (pozitif) yazılır (Cari.AcceptTransaction.md satır 394-404)
Kaynaklar
- SRC-DB-TABLES / SRC-DB-COLUMNS / SRC-DB-INDEXES —
sys.tables,sys.columns,sys.indexes(salt okunur katalog sorgusu) - SRC-DRV-AZ — az/08-teknik.md
- SRC-DRV-KIT — kitapcik/04-veritabani.md
- SRC-DRV-KIT — kitapcik/02-islem-modeli.md
- SRC-DB-MODULES — KnowledgeBase/04_Database/Triggers/Cari.AcceptTransaction.md
- SRC-DB-MODULES — KnowledgeBase/04_Database/Functions/Bakiye.GetBakiye.md
- SRC-DB-COLUMNS — Cari.BakiyeIslem
Bilinmeyenler
- Hangi sürümde eklendiği:
createdDB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).
