Erp Asistanı Erp Asistanı
Logo SQL

Logo Fatura SQL Rehberi: INVOICE, STLINE ve TRCODE ile Satış Raporları

Logo'da (GO 3/Tiger) fatura hangi tabloda? INVOICE-STLINE bağı, TRCODE kod sözlüğü, iade düşülmüş net ciro, en çok satan ürünler ve KDV dağılımı. 13.000+ faturalık gerçek Logo DB'de test edildi.

Erp Asistanı Erp Asistanı Editör ekibi 6 dk okuma
Logo Fatura SQL Rehberi: INVOICE, STLINE ve TRCODE ile Satış Raporları

Logo'da (GO 3, Tiger, GO Plus) fatura raporu yazmak isteyen herkes aynı iki soruya takılır: faturalar hangi tabloda ve satış ile iadeyi birbirinden nasıl ayırırım? Cevaplar: başlıklar INVOICE, kalemler STLINE tablosunda; ayrım ise TRCODE işlem tipi kodundadır. Bu yazıdaki tüm sorgular 13.000+ faturalık gerçek bir Logo veritabanında test edildi.

Fatura iki tabloda yaşar

Tablo Kapsam Ne tutar
LG_XXX_YY_INVOICE dönem Fatura başlıkları: numara, tarih, cari, toplamlar
LG_XXX_YY_STLINE dönem Fatura kalemleri: stok, miktar, fiyat (irsaliye satırlarıyla aynı tabloda)
LG_XXX_CLCARD firma Cari kartlar (INVOICE.CLIENTREF buraya bağlanır)
LG_XXX_ITEMS firma Stok kartları (STLINE.STOCKREF buraya bağlanır)

XXX firma, YY dönem numaranızdır (örn. LG_304_01_INVOICE). Kalem, başlığına STLINE.INVOICEREF = INVOICE.LOGICALREF ile bağlanır — Logo'da bütün ilişkiler bu LOGICALREF deseniyle kurulur; ayrıntı için Logo tablo yapısı rehberine bakın.

TRCODE: faturanın kimliği

INVOICE.TRCODE faturanın türünü söyler. En çok kullanılanlar:

TRCODE Fatura türü
1 Mal alım faturası
2 Perakende satış iade faturası
3 Toptan satış iade faturası
4 Alınan hizmet faturası
6 Alım iade faturası
7 Perakende satış faturası
8 Toptan satış faturası (en yaygını)
9 Verilen hizmet faturası
13 Alınan fiyat farkı faturası
14 Verilen fiyat farkı faturası

Kendi verinizdeki dağılımı bir kez görün, raporlarınızı ona göre kurun:

SELECT TRCODE, COUNT(*) AS [Adet]
FROM LG_XXX_YY_INVOICE
GROUP BY TRCODE ORDER BY TRCODE;

Satış faturası listesi

SELECT I.FICHENO AS [Fatura No], I.DATE_ AS [Tarih],
       C.CODE AS [Cari Kod], C.DEFINITION_ AS [Ünvan],
       I.GROSSTOTAL AS [Brüt], I.TOTALDISCOUNTS AS [İndirim],
       I.TOTALVAT AS [KDV], I.NETTOTAL AS [Net]
FROM LG_XXX_YY_INVOICE I
JOIN LG_XXX_CLCARD C ON C.LOGICALREF = I.CLIENTREF
WHERE I.TRCODE = 8 AND I.CANCELLED = 0
ORDER BY I.DATE_ DESC;

CANCELLED = 0 filtresi şarttır: Logo iptal edilen faturayı silmez, işaretler. Perakende satışı da katmak için TRCODE IN (7, 8) yazın.

Aylık net ciro (iadeler düşülmüş)

Cironun dürüst hâli iadeleri düşer. Tek sorguda: satışlar artı, iadeler eksi işaretlenir.

SELECT YEAR(I.DATE_) AS [Yıl], MONTH(I.DATE_) AS [Ay],
       COUNT(*) AS [Fatura],
       SUM(CASE WHEN I.TRCODE IN (2, 3) THEN -I.NETTOTAL
                ELSE I.NETTOTAL END) AS [Net Ciro]
FROM LG_XXX_YY_INVOICE I
WHERE I.TRCODE IN (2, 3, 7, 8) AND I.CANCELLED = 0
GROUP BY YEAR(I.DATE_), MONTH(I.DATE_)
ORDER BY [Yıl], [Ay];

Fatura kalemleri: hangi üründen ne satıldı

Kalem sorgusunda iki yeni filtre devreye girer: LINETYPE = 0 (gerçek malzeme satırı; promosyon, indirim ve hizmet satırlarını dışarıda tutar) ve INVOICEREF bağı (irsaliye satırlarını değil fatura satırlarını seçer).

SELECT I.FICHENO AS [Fatura No], IT.CODE AS [Stok Kodu], IT.NAME AS [Ürün],
       S.AMOUNT AS [Miktar], S.PRICE AS [Birim Fiyat], S.TOTAL AS [Tutar]
FROM LG_XXX_YY_STLINE S
JOIN LG_XXX_YY_INVOICE I ON I.LOGICALREF = S.INVOICEREF
JOIN LG_XXX_ITEMS IT ON IT.LOGICALREF = S.STOCKREF
WHERE I.TRCODE = 8 AND I.CANCELLED = 0 AND S.LINETYPE = 0
ORDER BY I.DATE_ DESC;

En çok satan ürünler ve en iyi müşteriler

İki klasik rapor, aynı iskeletle. Ürün bazında (iadeler net düşülmüş):

SELECT IT.CODE AS [Stok Kodu], IT.NAME AS [Ürün],
       SUM(CASE WHEN I.TRCODE IN (2, 3) THEN -S.AMOUNT ELSE S.AMOUNT END) AS [Net Miktar],
       SUM(CASE WHEN I.TRCODE IN (2, 3) THEN -S.TOTAL  ELSE S.TOTAL  END) AS [Net Tutar]
FROM LG_XXX_YY_STLINE S
JOIN LG_XXX_YY_INVOICE I ON I.LOGICALREF = S.INVOICEREF
JOIN LG_XXX_ITEMS IT ON IT.LOGICALREF = S.STOCKREF
WHERE I.TRCODE IN (2, 3, 7, 8) AND I.CANCELLED = 0 AND S.LINETYPE = 0
GROUP BY IT.CODE, IT.NAME
ORDER BY [Net Tutar] DESC;

Müşteri bazında ciro için aynı CASE deseni INVOICE + CLCARD üzerinde kurulur; GROUP BY C.CODE, C.DEFINITION_ yeter.

KDV dağılımı (beyanname kontrolü)

Kalem satırları KDV matrahını ve tutarını hazır taşır:

SELECT S.VAT AS [KDV %],
       SUM(S.VATMATRAH) AS [Matrah], SUM(S.VATAMNT) AS [KDV Tutarı]
FROM LG_XXX_YY_STLINE S
JOIN LG_XXX_YY_INVOICE I ON I.LOGICALREF = S.INVOICEREF
WHERE I.TRCODE IN (7, 8) AND I.CANCELLED = 0 AND S.LINETYPE = 0
GROUP BY S.VAT ORDER BY [Matrah] DESC;

Sık yapılan hatalar

  • CANCELLED = 0 filtresini unutmak. İptal faturalar tabloda durur; ciroyu şişirir.
  • İadeleri düşmeden "ciro" demek. TRCODE 2/3 satışın negatifi olarak hesaba katılmalıdır.
  • STLINE'ı filtresiz okumak. Aynı tabloda irsaliye satırları da yaşar; fatura raporunda INVOICEREF bağı (ve LINETYPE = 0) olmadan miktarlar mükerrer gelir.
  • Dönem tablosunu karıştırmak. LG_304_01_... ile LG_304_02_... ayrı dönemlerdir; yıl kapanışından sonra raporun dönem numarasını güncellemeyi unutmayın.
  • DEFINITION_ ve DATE_ alt çizgilerini atlamak. Logo bazı kolon adlarını alt çizgiyle bitirir; DATE yazarsanız sorgu hata verir.

Sık sorulanlar

Logo'da fatura tablosunun adı ne? Başlıklar LG_<firma>_<dönem>_INVOICE, kalemler LG_<firma>_<dönem>_STLINE tablosundadır; kalem INVOICEREF kolonuyla başlığa bağlanır.

Satış faturasını iadeden nasıl ayırırım? TRCODE ile: 7/8 satış, 2/3 satış iadesi, 1 alım, 6 alım iadesidir. Net ciro için iadeler CASE ile negatif toplanır.

e-Fatura/e-Arşiv faturaları da bu tabloda mı? Evet; e-belgeler de INVOICE'a yazılır. Gönderim durumu gibi e-fatura ayrıntıları EINVOICEDET gibi yan tablolarda tutulur.

İrsaliyeli ve irsaliyesiz satırı nasıl ayırt ederim? Fatura raporunda buna gerek kalmaz: INVOICEREF üzerinden gittiğinizde yalnız faturalanmış satırları okursunuz. Stok hareketi yönü ve miktar raporları için Logo stok ve cari bakiye SQL yazısına bakın.


TRCODE'ları ve LOGICALREF bağlarını ezberlemek zorunda değilsiniz: Erp Asistanı'na ücretsiz üye olun, "geçen ayın iade düşülmüş cirosunu müşteri bazında ver" gibi sorunuzu Türkçe yazın; sistem Logo şemanıza (firma/dönem önekleri dahil) uygun çalışan SQL'i saniyeler içinde üretsin.

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

Bu yazıyı paylaş
Konuşarak raporlayın

Logo'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.