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ı
Editör ekibi
6 dk okuma
İçindekiler
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 = 0filtresini unutmak. İptal faturalar tabloda durur; ciroyu şişirir.- İadeleri düşmeden "ciro" demek.
TRCODE 2/3satışın negatifi olarak hesaba katılmalıdır. STLINE'ı filtresiz okumak. Aynı tabloda irsaliye satırları da yaşar; fatura raporundaINVOICEREFbağı (veLINETYPE = 0) olmadan miktarlar mükerrer gelir.- Dönem tablosunu karıştırmak.
LG_304_01_...ileLG_304_02_...ayrı dönemlerdir; yıl kapanışından sonra raporun dönem numarasını güncellemeyi unutmayın. DEFINITION_veDATE_alt çizgilerini atlamak. Logo bazı kolon adlarını alt çizgiyle bitirir;DATEyazarsanı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.
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.