Erp Asistanı Erp Asistanı
Netsis SQL

Netsis Cari Ekstre ve Bakiye SQL: TBLCAHAR ile Borç/Alacak Takibi

4 dk okuma Erp Asistanı
Netsis Cari Ekstre ve Bakiye SQL: TBLCAHAR ile Borç/Alacak Takibi

"Bu müşterinin bakiyesi ne?", "Ekstresini dökebilir miyim?", "Vadesi geçen alacaklar hangileri?" Netsis'te bu soruların hepsi tek tabloya gider: TBLCAHAR (cari hareketler). Bu yazıda cari bakiye, yürüyen bakiyeli ekstre ve vade analizi sorgularını hazır hâlde veriyoruz; hepsi gerçek bir Netsis veritabanında test edildi.

TBLCAHAR'ı tanıyın

Cari kartlar TBLCASABIT'te, hareketler TBLCAHAR'dadır. Kritik kolonlar:

Kolon Anlamı
CARI_KOD Hareketin carisi (TBLCASABIT.CARI_KOD)
TARIH Hareket tarihi
BORC / ALACAK Tutar; Netsis'te iki ayrı kolondur
VADE_TARIHI Vade takibinin anahtarı
BELGE_NO Bağlı belge numarası
HAREKET_TURU Hareketin niteliği (fatura, tahsilat, çek...)
KAPATILMIS_TUTAR Kapama (eşleştirme) yapılan tutar
PLASIYER_KODU Satış temsilcisi kırılımı
SUBE_KODU Şube; çok şubede filtre şart
INC_KEY_NUMBER Artan kayıt anahtarı (stok tarafındaki adı INCKEYNO'dur)

Önemli ayrıntı: Netsis borç ve alacağı iki ayrı kolonda tutar. Bakiye her zaman BORC - ALACAK farkıdır; pozitifse cari size borçludur.

Cari bakiye listesi

SELECT c.CARI_KOD, cs.CARI_ISIM,
       SUM(c.BORC) AS [Toplam Borç],
       SUM(c.ALACAK) AS [Toplam Alacak],
       SUM(c.BORC - c.ALACAK) AS [Bakiye]
FROM TBLCAHAR c
JOIN TBLCASABIT cs ON cs.CARI_KOD = c.CARI_KOD
GROUP BY c.CARI_KOD, cs.CARI_ISIM
HAVING SUM(c.BORC - c.ALACAK) <> 0
ORDER BY [Bakiye] DESC;

Yalnız borçlu carileri görmek için HAVING koşulunu > 0 yapın.

Yürüyen bakiyeli cari ekstre

Ekstrenin olmazsa olmazı, her satırda o ana kadarki bakiyeyi göstermektir. SQL Server'ın window fonksiyonu bunu tek sorguda çözer:

SELECT TARIH, BELGE_NO, ACIKLAMA, BORC, ALACAK,
       SUM(BORC - ALACAK) OVER (ORDER BY TARIH, INC_KEY_NUMBER
           ROWS UNBOUNDED PRECEDING) AS [Yürüyen Bakiye]
FROM TBLCAHAR
WHERE CARI_KOD = '120-001'
ORDER BY TARIH, INC_KEY_NUMBER;

Aynı tarihte birden çok hareket olabileceği için ikinci sıralama anahtarı olarak INC_KEY_NUMBER kullanılır; bu, ekstrenin her çalıştırmada aynı sırada gelmesini garanti eder.

Vadesi geçen bakiyeler

SELECT c.CARI_KOD, cs.CARI_ISIM,
       SUM(c.BORC - c.ALACAK) AS [Vadesi Geçen]
FROM TBLCAHAR c
JOIN TBLCASABIT cs ON cs.CARI_KOD = c.CARI_KOD
WHERE c.VADE_TARIHI IS NOT NULL AND c.VADE_TARIHI < GETDATE()
GROUP BY c.CARI_KOD, cs.CARI_ISIM
HAVING SUM(c.BORC - c.ALACAK) > 0
ORDER BY [Vadesi Geçen] DESC;

Bu, pratik bir yaklaşık listedir: vadesi geçmiş hareketlerin net toplamını verir. Kuruşu kuruşuna "açık kalem" takibi için Netsis'in kapama mantığını (KAPATILMIS_TUTAR) da hesaba katmak gerekir; kapanmış tutarları düşerek gerçek açık tutara ulaşırsınız.

Sık yapılan hatalar

  • Borç/alacak yönünü ters yorumlamak. BORC - ALACAK pozitifse cari size borçludur; işareti ters çevirirseniz alacaklıyı borçlu gösterirsiniz.
  • Satırdaki BAKIYE kolonuna güvenmek. Tabloda bakiye kolonu bulunur ama güvenilir yöntem her zaman toplamdan hesaplamaktır.
  • Ekstrede ikincil sıralama anahtarı kullanmamak. Aynı günkü hareketler her çalıştırmada farklı sıraya dizilir, yürüyen bakiye "oynar".
  • Şube filtresini atlamak. Çok şubeli kurulumda cari bakiyesi tüm şubelerin toplamı olarak gelir.
  • Kart ile hareketi karıştırmak. İletişim ve vergi bilgisi TBLCASABIT'te, parasal hareket TBLCAHAR'dadır.

Sık sorulanlar

Cari bakiye tek kolonda hazır durmaz mı? Güncel ve güvenilir bakiye hareket toplamından hesaplanır; ekstre ile bakiye listesinin tutarlı olmasının tek yolu budur.

Fatura, tahsilat ve çeki nasıl ayırırım? HAREKET_TURU (ve belge bağlantıları) hareketin niteliğini verir; rapora kolonu ekleyip değerlere göre filtreleyebilirsiniz.

Netsis ile Mikro'nun cari yapısı aynı mı? Mantık benzer, şema farklıdır: Mikro tek tutar kolonu + yön kolonu kullanır, Netsis borç/alacağı ayrı kolonlarda tutar. Mikro tarafı için: Mikro cari ekstre ve bakiye raporu.


Ekstre, bakiye ve vade sorguları her şirkette küçük farklarla değişir: şube, döviz, kapama... Erp Asistanı'na ücretsiz üye olun; "X müşterisinin bu yılki ekstresi" ya da "30 günden uzun süredir vadesi geçmiş alacaklar" gibi sorunuzu Türkçe yazın, Netsis'e uygun SQL'i saniyeler içinde alın.

Ücretsiz üye olun, sorgunuzu doğal dille üretin →

Netsis'te SQL ve raporu konuşarak alın

Türkçe sorunuzu yazın, şemanıza uygun çalışan SQL'i ya da hazır uygulamanızı saniyeler içinde alın. Kredi kartı gerekmez.