Erp Asistanı Erp Asistanı
Mikro SQL

Mikro Cari Ekstre ve Bakiye Raporu: Doğru Hesaplamanın Püf Noktaları

4 dk okuma Erp Asistanı
Mikro Cari Ekstre ve Bakiye Raporu: Doğru Hesaplamanın Püf Noktaları

Cari ekstre ve bakiye raporu, muhasebenin kalbidir: kim size ne kadar borçlu, siz kime ne kadar borçlusunuz? Görünüşte basit bu soru, Mikro'da yanlış kurulduğunda en sık hata yapılan rapordur. Çünkü bakiye, tek bir kolonda durmaz; borç ve alacak hareketlerinin doğru yönle toplanmasından doğar. Bu yazıda Mikro'da cari ekstre ve bakiyenin doğru hesaplanmasının püf noktalarını anlatıyoruz.

Bakiye neden "hesaplanır", okunmaz?

Bir carinin bakiyesi, o cariye ait tüm hareketlerin (borç − alacak) toplamıdır. Mikro hareketleri borç ve alacak olarak ayrı tutar; bakiye bu ikisinin farkıdır:

Bakiye = Toplam Borç − Toplam Alacak

Bu yüzden "bakiye" raporu aslında bir toplama işlemidir. Hareket yönünü (borç mu alacak mı) yanlış yorumlarsanız, müşterinizi borçlu yerine alacaklı gösterirsiniz — ve tahsilat tamamen şaşar.

Cari bakiye listesi (özet)

Aşağıdaki örnek, her carinin net bakiyesini hesaplar. (Kolon adları sürüme göre değişebilir.)

SELECT
    ch.cari_kod        AS [Cari Kodu],
    ch.cari_unvan1     AS [Unvan],
    SUM(CASE WHEN h.cha_tip = 0 THEN h.cha_meblag ELSE 0 END) AS [Borç],
    SUM(CASE WHEN h.cha_tip = 1 THEN h.cha_meblag ELSE 0 END) AS [Alacak],
    SUM(CASE WHEN h.cha_tip = 0 THEN h.cha_meblag ELSE -h.cha_meblag END) AS [Bakiye]
FROM CARI_HESAPLAR ch
LEFT JOIN CARI_HESAP_HAREKETLERI h ON h.cha_kod = ch.cari_kod
GROUP BY ch.cari_kod, ch.cari_unvan1
ORDER BY [Bakiye] DESC;

LEFT JOIN kullanmak önemlidir: hiç hareketi olmayan cariler de listede (bakiye 0) görünür. INNER JOIN kullansaydınız, yeni açılmış cariler kaybolurdu.

Cari ekstre (hareket dökümü + yürüyen bakiye)

Ekstre, tek bir carinin tarih sıralı hareketlerini ve her satırdan sonraki yürüyen bakiyeyi gösterir:

SELECT
    h.cha_tarihi                          AS [Tarih],
    h.cha_evrak_tip                       AS [Evrak],
    CASE WHEN h.cha_tip = 0 THEN h.cha_meblag END AS [Borç],
    CASE WHEN h.cha_tip = 1 THEN h.cha_meblag END AS [Alacak],
    SUM(CASE WHEN h.cha_tip = 0 THEN h.cha_meblag ELSE -h.cha_meblag END)
        OVER (ORDER BY h.cha_tarihi, h.cha_RECno
              ROWS UNBOUNDED PRECEDING)    AS [Yürüyen Bakiye]
FROM CARI_HESAP_HAREKETLERI h
WHERE h.cha_kod = '120.01.001'
ORDER BY h.cha_tarihi, h.cha_RECno;

Yürüyen bakiye için pencere fonksiyonu (SUM() OVER) kullanmak, satır satır döngü kurmaktan hem daha hızlı hem daha doğrudur.

Püf noktaları ve sık hatalar

  • Yön (borç/alacak) tuzağı. En kritik nokta. Tip kolonunun anlamı yanlışsa tüm rapor ters döner.
  • Döviz/yerel para ayrımı. Dövizli cariler varsa, hangi tutar kolonunu topladığınıza dikkat edin (yerel mi, orijinal döviz mi).
  • İptal ve virman hareketleri. Bazı teknik hareketler ekstreye dâhil edilmemeli ya da ayrı gösterilmelidir.
  • Tarih aralığı + devir. "Bu yıl ekstre" isteniyorsa, dönem başı devir bakiyesini açılış satırı olarak eklemek gerekir; yoksa yürüyen bakiye yanlış başlar.
  • Sıralama belirsizliği. Aynı tarihli hareketlerde ikincil bir sıra (kayıt no) vermezseniz, yürüyen bakiye satır sırasına göre oynar.

Doğal dille cari raporu

Bu inceliklerin hepsini elle yönetmek yerine yazarsınız:

  • "Borcu 10.000 TL üstündeki carileri büyükten küçüğe listele"
  • "120.01.001 kodlu carinin bu yıl ekstresi, devir dâhil"
  • "90 günü geçmiş alacaklarım"

Erp Asistanı; borç/alacak yönünü, devir bakiyesini, tarih aralığını ve sıralamayı sizin sürümünüze göre doğru kurar. İptal/virman gibi tuzaklar otomatik ele alınır.

Sık sorulanlar

Bakiyem neden Mikro ekranıyla tutmuyor? Genellikle yön, devir bakiyesi ya da iptal hareketleri kaynaklıdır. Doğru kurulmuş sorgu Mikro'nun foy/ekstresiyle tutar.

Yürüyen bakiye nasıl hesaplanır? Tarih sıralı hareketlerin kümülatif toplamıyla; pencere fonksiyonu en temiz yöntemdir.

Vadesi geçmiş alacakları görebilir miyim? Evet. Vade tarihine göre yaşlandırma (30/60/90 gün) raporu üretilebilir.


Cari bakiyenizi doğru yön, doğru devir ve doğru tarihle hesaplayın. Tahsilatınız şaşmasın.

Cari ekstrenizi konuşarak alın →

Mikro'da 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.