Mikro ERP Kasa Raporu ve Nakit Akış Takibi: Anlık Bakiye SQL Sorgusu
Mikro ERP'de kasa bakiyesi nasıl sorgulanır? Kasa hareketleri, günlük nakit akışı, kasa bazlı bakiye ve gün sonu raporu SQL sorguları.
Sorun: “Kasada Ne Kadar Nakit Var?”
Kasa sorumlusu her gün sonu soruyor: “Kasada ne kadar var? Bugün tahsil edilen ne, ödenen ne?” Mikro’da kasa hareketleri de cari hesap sistemiyle yönetilir.
Kasa Hareketlerini Filtreleme
Kasa hareketleri cha_cari_cins = 4 ile filtrelenir:
cha_cari_cins | Açıklama |
|---|---|
| 4 | Kasamız |
| 0 | Carimiz |
| 2 | Bankamız |
Kasa evrak tipleri:
| Evrak Tipi | Kod | Hareket |
|---|---|---|
| Kasa Tahsilat Fişi | 2 | Giriş |
| Kasa Tediye Fişi | 65 | Çıkış |
| Kasa Masraf Fişi | 37 | Çıkış |
Kaynak: CARI_HESAP_HAREKETLERI
Tüm Kasaların Anlık Bakiyesi
SELECT
H.cha_kod AS [Kasa Kodu],
K.kas_isim AS [Kasa Adi],
SUM(CASE WHEN H.cha_tip = 0 THEN H.cha_meblag ELSE 0 END) AS [Toplam Giris],
SUM(CASE WHEN H.cha_tip = 1 THEN H.cha_meblag ELSE 0 END) AS [Toplam Cikis],
SUM(CASE WHEN H.cha_tip = 0 THEN H.cha_meblag
ELSE -H.cha_meblag END) AS [Bakiye]
FROM CARI_HESAP_HAREKETLERI H WITH (NOLOCK)
LEFT JOIN KASALAR K WITH (NOLOCK) ON H.cha_kod = K.kas_kod
WHERE H.cha_cari_cins = 4 -- Kasamiz
AND H.cha_iptal = 0
GROUP BY H.cha_kod, K.kas_isim
HAVING SUM(CASE WHEN H.cha_tip = 0 THEN H.cha_meblag ELSE -H.cha_meblag END) <> 0
ORDER BY [Bakiye] DESC;
Günlük Kasa Hareketi (Gün Sonu Raporu)
SELECT
CONVERT(VARCHAR(10), H.cha_tarihi, 104) AS [Tarih],
SUM(CASE WHEN H.cha_tip = 0 THEN H.cha_meblag ELSE 0 END) AS [Tahsilat],
SUM(CASE WHEN H.cha_tip = 1 THEN H.cha_meblag ELSE 0 END) AS [Tediye],
SUM(CASE WHEN H.cha_tip = 0 THEN H.cha_meblag
ELSE -H.cha_meblag END) AS [Net],
SUM(SUM(CASE WHEN H.cha_tip = 0 THEN H.cha_meblag
ELSE -H.cha_meblag END))
OVER (ORDER BY H.cha_tarihi
ROWS UNBOUNDED PRECEDING) AS [Bakiye]
FROM CARI_HESAP_HAREKETLERI H WITH (NOLOCK)
WHERE H.cha_kod = 'K.01' -- Kasa kodu (isletmenize gore degistirin)
AND H.cha_cari_cins = 4
AND H.cha_iptal = 0
AND H.cha_tarihi >= '2026-01-01'
GROUP BY H.cha_tarihi
ORDER BY H.cha_tarihi;
Bugünün Kasa Detayı
SELECT
CONVERT(VARCHAR(8), H.cha_create_date, 108) AS [Saat],
CASE H.cha_evrak_tip
WHEN 2 THEN 'Kasa Tahsilat'
WHEN 65 THEN 'Kasa Tediye'
WHEN 37 THEN 'Kasa Masraf'
WHEN 5 THEN 'Çek Tahsilat'
ELSE 'Tip: ' + CAST(H.cha_evrak_tip AS VARCHAR)
END AS [İşlem],
H.cha_aciklama AS [Açıklama],
H.cha_kod AS [Karşı Taraf],
CASE WHEN H.cha_tip = 0 THEN H.cha_meblag ELSE 0 END AS [Giriş],
CASE WHEN H.cha_tip = 1 THEN H.cha_meblag ELSE 0 END AS [Çıkış]
FROM CARI_HESAP_HAREKETLERI H WITH (NOLOCK)
WHERE H.cha_kasa_hizmet = 4 -- Kasa tarafı
AND H.cha_kasa_hizkod = 'K.01' -- Kasa kodu (isletmenize gore degistirin)
AND H.cha_iptal = 0
AND H.cha_tarihi = CAST(GETDATE() AS DATE) -- Bugün
ORDER BY H.cha_create_date;
Toplam Nakit Pozisyonu (Kasa + Banka)
Tüm kasa ve banka bakiyelerini birleştiren özet:
SELECT
CASE H.cha_cari_cins
WHEN 2 THEN 'Banka'
WHEN 4 THEN 'Kasa'
END AS [Tur],
H.cha_kod AS [Hesap Kodu],
ISNULL(B.ban_ismi, K.kas_isim) AS [Hesap Adi],
SUM(CASE WHEN H.cha_tip = 0 THEN H.cha_meblag
ELSE -H.cha_meblag END) AS [Bakiye]
FROM CARI_HESAP_HAREKETLERI H WITH (NOLOCK)
LEFT JOIN BANKALAR B WITH (NOLOCK) ON H.cha_kod = B.ban_kod AND H.cha_cari_cins = 2
LEFT JOIN KASALAR K WITH (NOLOCK) ON H.cha_kod = K.kas_kod AND H.cha_cari_cins = 4
WHERE H.cha_cari_cins IN (2, 4) -- Banka + Kasa
AND H.cha_iptal = 0
GROUP BY H.cha_cari_cins, H.cha_kod, B.ban_ismi, K.kas_isim
HAVING SUM(CASE WHEN H.cha_tip = 0 THEN H.cha_meblag ELSE -H.cha_meblag END) <> 0
ORDER BY H.cha_cari_cins, [Bakiye] DESC;
Dikkat Edilecekler
- Kasa kodu: Mikro’da kasalar genellikle
400.xxxaralığında tanımlanır. - Vardiya bazlı: Perakende satış yapılıyorsa
cha_vardiya_noile vardiya bazlı rapor çıkarılabilir. - Kasa sayımı: SQL bakiyesi ile fiziksel kasa sayımı tutmuyor mu? Sayım farkı kaydı olup olmadığını kontrol edin.
İlgili Yazılar
- Banka Hesap Bakiye — Banka hareketleri
- Çek/Senet Vade Takibi — Nakit akış planı
- Cari Ekstre Raporu — Müşteri hesap özeti
- Cari Risk Raporu — Tahsilat riski
Bu rehber CARI_HESAP_HAREKETLERI | KASALAR | BANKALAR tablo yapılarına dayanarak hazırlanmıştır.