Erp Asistanı Erp Asistanı
Mikro SQL

Mikro'da Fatura Hangi Tabloda? Sipariş, İrsaliye ve Fatura Tablo Rehberi

4 dk okuma Erp Asistanı
Mikro'da Fatura Hangi Tabloda? Sipariş, İrsaliye ve Fatura Tablo Rehberi

Mikro veritabanında "FATURALAR" tablosunu arayan herkes aynı sürprizle karşılaşır: böyle bir tablo yoktur. Fatura, Mikro'da iki tabloya yayılan birleşik bir kavramdır. Bu yazıda faturanın, irsaliyenin ve siparişin hangi tablolarda durduğunu, birbirine nasıl bağlandığını ve bu yapıdan doğru rapor çekmenin yolunu anlatıyoruz. Tüm sorgular gerçek v16 ve v17 veritabanlarında test edildi.

Kısa cevap

Belge Tablo(lar) Ayırt eden kolon
Sipariş SIPARISLER (kalem bazlı) sip_tip (0: alınan, 1: verilen)
İrsaliye STOK_HAREKETLERI sth_evraktip = 1 (çıkış) / 13 (giriş)
Fatura (kalemler) STOK_HAREKETLERI sth_evraktip = 4 (satış) / 3 (alış)
Fatura (parasal başlık) CARI_HESAP_HAREKETLERI cha_evrak_tip = 63 (satış) / 0 (alış)

Yani bir satış faturası: kalemleri STOK_HAREKETLERI'nde (sth_evraktip = 4), cariye yansıyan borç kaydı CARI_HESAP_HAREKETLERI'nde (cha_evrak_tip = 63) duran bir kayıt bütünüdür.

İki tarafı bağlayan köprü: sth_fat_uid = cha_Guid

Fatura kalemlerini parasal başlığa bağlayan alan STOK_HAREKETLERI.sth_fat_uid'dir; değeri, cari hareket satırının cha_Guid'ine eşittir:

-- Satış faturaları: başlık + kalemler
SELECT cha.cha_evrakno_seri, cha.cha_evrakno_sira, cha.cha_kod, cha.cha_meblag,
       sth.sth_stok_kod, sth.sth_miktar, sth.sth_tutar
FROM CARI_HESAP_HAREKETLERI cha
JOIN STOK_HAREKETLERI sth ON sth.sth_fat_uid = cha.cha_Guid
WHERE cha.cha_iptal = 0 AND sth.sth_iptal = 0
  AND cha.cha_evrak_tip = 63
ORDER BY cha.cha_evrakno_seri, cha.cha_evrakno_sira;

Faturalanmamış irsaliyeleri bulmak

Bu köprünün pratik bir sonucu var: irsaliye kesilmiş ama henüz faturaya bağlanmamış satırlarda sth_fat_uid boş GUID'dir. Faturalanmayı bekleyen sevkiyatları tek sorguyla listelersiniz:

SELECT sth_evrakno_seri, sth_evrakno_sira, sth_tarih,
       sth_cari_kodu, sth_stok_kod, sth_miktar, sth_tutar
FROM STOK_HAREKETLERI
WHERE sth_iptal = 0 AND sth_evraktip = 1
  AND sth_fat_uid = '00000000-0000-0000-0000-000000000000'
ORDER BY sth_tarih DESC;

Ay sonunda "sevk ettik ama faturasını kesmedik" listesi isteyen herkesin sorgusu budur.

Sipariş - irsaliye - fatura zinciri

Tipik satış akışı üç adımdır ve her adım kendi tablosunda izlenir:

  1. Sipariş girilirSIPARISLER'e kalem satırları yazılır.
  2. Sevk edilirSTOK_HAREKETLERI'ne irsaliye kalemi düşer; siparişte sip_teslim_miktar artar.
  3. Faturalanır → kalemler fatura evrakına bağlanır (sth_fat_uid dolar), cari tarafa cha_evrak_tip = 63 borç kaydı düşer.

Zincirin her halkası ayrı raporlanabilir. Örneğin bekleyen siparişler:

SELECT sip.sip_evrakno_seri, sip.sip_evrakno_sira, sip.sip_tarih,
       sip.sip_musteri_kod, c.cari_unvan1,
       sip.sip_stok_kod, s.sto_isim,
       sip.sip_miktar, sip.sip_teslim_miktar,
       sip.sip_miktar - sip.sip_teslim_miktar AS [Bekleyen]
FROM SIPARISLER sip
LEFT JOIN CARI_HESAPLAR c ON c.cari_kod = sip.sip_musteri_kod
LEFT JOIN STOKLAR s ON s.sto_kod = sip.sip_stok_kod
WHERE sip.sip_iptal = 0 AND sip.sip_tip = 0
  AND sip.sip_miktar > sip.sip_teslim_miktar
ORDER BY sip.sip_tarih;

Çift sayma tuzağı

Fatura iki tabloda yaşadığı için en tehlikeli hata ciroyu iki kez saymaktır:

  • Ürün/kalem bazlı ciroSTOK_HAREKETLERI'nden alın (sth_evraktip = 4).
  • Cari/genel ciro, tahsilat, bakiyeCARI_HESAP_HAREKETLERI'nden alın (cha_evrak_tip = 63).
  • İkisini aynı toplama asla karıştırmayın.

Ayrıca her iki tabloda da *_iptal = 0 filtresi ve iade düşümü (sth_normal_iade / cha_normal_Iade) zorunludur.

Sık sorulanlar

Fatura numarası hangi kolonda? Evrak numarası seri + sıra çiftidir: kalemde sth_evrakno_seri/sth_evrakno_sira, cari ayakta cha_evrakno_seri/cha_evrakno_sira.

Perakende ve toptan faturayı nasıl ayırırım? Cari harekette cha_cinsi (6: Toptan Fatura, 7: Perakende Fatura), stok harekette sth_cins sınıflar.

Bu yapı v16 ve v17'de aynı mı? Bu yazıdaki sorgular her iki sürümde de test edildi ve çalışıyor. Sürüm farkları başka alanlarda çıkabilir; ayrıntı: Mikro v16 ve v17 farkları.

Netsis'te de fatura tablosu yok mu? Netsis'te tam tersine ortak bir başlık tablosu vardır (TBLFATUIRS); karşılaştırma için: Netsis tablo yapısı rehberi.


Fatura yapısını çözmek Mikro raporculuğunun en kritik eşiğidir; ama her rapor için evrak tipi ve GUID köprüsü kurmak zorunda değilsiniz. Erp Asistanı'na ücretsiz üye olun, "bu ay kesilen satış faturaları, kalem detaylı" gibi sorunuzu Türkçe yazın; doğru tabloları doğru bağlayan SQL'i saniyeler içinde alın.

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

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.