STLINE ve INVOICE tabloları nedir?
Logo ERP ürünlerinde malzeme hareketlerinin satırları LG_FFF_DD_STLINE, fatura başlıkları ise LG_FFF_DD_INVOICE tablosunda tutulur. Tablo adındaki FFF firma numarasını, DD dönem numarasını gösterir; örneğin 1 numaralı firmanın 1. dönemi için tablolar LG_001_01_STLINE ve LG_001_01_INVOICE şeklindedir.
INVOICEREF alanı ne işe yarar?
INVOICEREF, STLINE satırının bağlı olduğu faturanın INVOICE tablosundaki LOGICALREF değerini tutar. Fatura satırlarını fatura başlığıyla (fatura numarası, tarih, cari) birleştirmek için bu alan kullanılır.
| STLINE alanı | Bağlandığı tablo | Açıklama |
|---|---|---|
| INVOICEREF | LG_FFF_DD_INVOICE.LOGICALREF | Satırın ait olduğu fatura |
| STFICHEREF | LG_FFF_DD_STFICHE.LOGICALREF | Satırın ait olduğu irsaliye / malzeme fişi |
| STOCKREF | LG_FFF_ITEMS.LOGICALREF | Malzeme kartı |
| CLIENTREF | LG_FFF_CLCARD.LOGICALREF | Cari hesap kartı |
INVOICEREF neden 0 olur?
INVOICEREF değeri 0 olan satırlar henüz bir faturaya bağlanmamıştır. En sık görülen örnek, faturalanmamış irsaliye satırlarıdır: irsaliye kesilmiş ama fatura henüz oluşturulmamıştır.
Fatura satırları SQL ile nasıl listelenir?
Aşağıdaki örnek sorgu, belirli bir tarih aralığındaki satış faturası satırlarını cari ve malzeme bilgisiyle birlikte listeler. Firma ve dönem numaralarını kendi veritabanınıza göre değiştirin.
SELECT I.FICHENO, I.DATE_, C.CODE AS CARI_KODU, C.DEFINITION_ AS CARI_UNVANI,
IT.CODE AS MALZEME_KODU, IT.NAME AS MALZEME_ADI,
S.AMOUNT, S.PRICE, S.LINENET
FROM LG_001_01_STLINE S
INNER JOIN LG_001_01_INVOICE I ON I.LOGICALREF = S.INVOICEREF
LEFT JOIN LG_001_CLCARD C ON C.LOGICALREF = I.CLIENTREF
LEFT JOIN LG_001_ITEMS IT ON IT.LOGICALREF = S.STOCKREF
WHERE S.LINETYPE = 0
AND S.CANCELLED = 0
AND I.CANCELLED = 0
AND I.TRCODE IN (7, 8)
AND I.DATE_ >= '20260101' AND I.DATE_ < '20260201'
- LINETYPE = 0: Yalnızca malzeme satırlarını getirir; indirim, masraf ve hizmet gibi satırlar farklı satır türleriyle tutulur.
- CANCELLED = 0: İptal edilmiş fatura ve satırları dışarıda bırakır.
- TRCODE: Fatura türünü belirler. Örnekte 7 (perakende satış) ve 8 (toptan satış) kullanılmıştır; satınalma faturaları için 1 kullanılır. Kodları kendi verinizde kontrol edin.
Faturalanmamış irsaliye satırları nasıl bulunur?
İrsaliyeye bağlı olup faturası kesilmemiş malzeme satırları, INVOICEREF değeri 0 ve STFICHEREF değeri 0'dan büyük olan satırlardır.
SELECT F.FICHENO, F.DATE_, S.STOCKREF, S.AMOUNT
FROM LG_001_01_STLINE S
INNER JOIN LG_001_01_STFICHE F ON F.LOGICALREF = S.STFICHEREF
WHERE S.INVOICEREF = 0
AND S.STFICHEREF > 0
AND S.LINETYPE = 0
AND S.CANCELLED = 0
Sorgular nasıl hızlandırılır?
- Her zaman tarih aralığı filtresi kullanın; filtresiz sorgular tüm hareket tablosunu tarar.
- WHERE koşulunda sütunları fonksiyon içine almayın (örneğin
YEAR(DATE_) = 2026yerine tarih aralığı yazın); aksi halde indeksler kullanılamaz. - Yalnızca ihtiyaç duyduğunuz sütunları seçin;
SELECT *kullanmayın. - Rapor sorgularını yoğun çalışma saatleri dışında veya rapor amaçlı bir kopya üzerinde çalıştırmayı değerlendirin.
Logo tablolarına doğrudan kayıt yazılabilir mi?
Hayır, önerilmez. Logo tabloları arasında toplam, bakiye ve bağlantı alanları birbirine bağlıdır; SQL ile doğrudan INSERT veya UPDATE yapmak veri tutarlılığını bozabilir. Okuma amaçlı raporlar için SQL kullanılabilir; kayıt oluşturmak için Logo Objects veya Logo REST servisleri tercih edilmelidir.