Logo'da İade e-Faturasına Kaynak Fatura Bilgisi Ekleme (IADE / TEVKIFATIADE)

قاعدة المعرفة › E-Fatura

E-Fatura8 دقيقة قراءة4 نوفمبر 20261 görüntülenme
Logo'da İade e-Faturasına Kaynak Fatura Bilgisi Ekleme (IADE / TEVKIFATIADE)

IADE ve TEVKIFATIADE e-Faturalarında kaynak fatura bilgisi zorunlu. Mali dönem bağımlı Logo Tiger ve Go firmalarında önceki döneme ait faturaya iade için tanımlı alan ve script kural ile çözüm.

28 Mart 2025 tarihli e-Fatura paketi ve UBL kod listesi güncellemesiyle birlikte, IADE ve TEVKIFATIADE tipindeki e-Faturalarda en az bir iade edilen (kaynak) fatura bilgisinin bulunması zorunlu hale geldi. Kaynak fatura numarası ve tarihi olmayan iade faturası e-Fatura sisteminden geçmez.

Logo, bu zorunluluk için gerekli geliştirmeyi 2.99.00.00 sürümünde yaptı. Bu sürüme geçemeyen kullanıcılar için, özellikle mali dönem bağımlı çalışıp önceki mali döneme ait bir satınalma faturasına iade kesen firmalarda, kaynak fatura bilgisinin e-Faturaya taşınması gerekir. Bu rehberde Logo'nun önerdiği çözüm adımlarını, dikkat edilmesi gereken noktalarla birlikte anlatıyoruz.

✅Kalıcı çözüm: Logo bu geliştirmeyi 2.99.00.00 sürümünde yaptı. Bu sürüme veya daha yenisine geçebiliyorsanız aşağıdaki adımlara gerek yoktur; önce sürüm güncellemesini değerlendirin.
ℹ️Aşağıdaki yöntem, sürüm geçişi yapamayan ve önceki döneme ait satınalma faturalarına iade kesen kullanıcılar içindir.

Sorun Neden Oluşuyor?

Mali dönem bağımlı firmalarda her mali dönemin hareketleri ayrı tablolarda tutulur (ör. 2025 için LG_001_01_INVOICE, 2026 için LG_001_02_INVOICE). Yeni dönemde kesilen iade faturası ile önceki dönemin tablosundaki satınalma faturası arasında doğrudan bağ kurulamadığı için kaynak fatura numarası ve tarihinin e-Faturaya ayrıca taşınması gerekir.

Çözümün mantığı şudur: Kaynak fatura bilgisi iade faturasına tanımlı alanlar aracılığıyla elle girilir, e-Fatura gönderilirken çalışan bir script kural bu bilgileri okuyup e-Faturanın iade bilgisi alanlarına yazar.

1. Adım: Fatura Satırı İçin Tanımlı Alanları Ekleyin

  1. Sistem İşletmeni'ni açın.
  2. Kuruluş Bilgileri → Tanımlı Alanlar altında Fatura'yı seçin.
  3. Açılan pencerede Kayıt sütunu Satır olan boş bir satıra Kaynak Belge No adında, türü Metin olan bir alan ekleyin.
  4. Bir alttaki satıra Kaynak Fatura Tarihi adında, türü yine Metin olan ikinci alanı ekleyin.
  5. Firma sütununa bu alanları kullanacak firma numarasını yazın ve Kaydet'e tıklayın.
⚠️Kaynak fatura tarihi alanını Tarih değil Metin türünde ekleyin. Tarih türü seçilirse değer veritabanına sayı olarak yazılır ve script'in çalışması için ek bir SQL fonksiyonu (LG_INTTODATE) kurmanız gerekir. Bu fonksiyon varsayılan Logo kurulumunda bulunmaz.

Tanımlı alanlar veritabanında nerede tutulur?

Fatura satırı tanımlı alanlarının değerleri LG_001_01_DEFNFLDSTRANV tablosuna yazılır. Metin türündeki alanlar TEXTFLDS1, TEXTFLDS2… sütunlarında tutulur. Logo'nun örneğinde, daha önce tanımlanmış bir metin alanı TEXTFLDS1'i kullandığı için yeni eklenen Kaynak Belge No TEXTFLDS2'ye, Kaynak Fatura Tarihi ise TEXTFLDS3'e karşılık gelir.

Sizin kurulumunuzda hangi sütunun kullanıldığını kesinleştirmek için bir test iade faturası girip şu sorguyla kontrol edin:

SELECT TOP 10 OWNERREF, TEXTFLDS1, TEXTFLDS2, TEXTFLDS3, TEXTFLDS4
FROM LG_001_01_DEFNFLDSTRANV
ORDER BY LOGICALREF DESC

Girdiğiniz belge numarası ve tarihin hangi TEXTFLDS sütununda göründüğünü not edin; 2. adımdaki script'te bu sütun adlarını kullanacaksınız.

2. Adım: Script Kuralını Tanımlayın

  1. e-Devlet → Tanımlamalar → Kurallar menüsünü açın ve yeni bir Script Kural ekleyin.
  2. Açıklama alanına anlaşılır bir ad yazın (ör. e-Fatura İade).
  3. Doküman olarak e-Fatura (Giden), Olay olarak Gönderildiğinde seçin ve Statüsü'nü Aktif yapın.
  4. Script bölümüne aşağıdaki kodu yapıştırın ve kendi bilgilerinize göre düzenleyin.
Script, Logo'nun destek dokümanında paylaşılan kuraldır; açıklama satırları tarafımızdan eklenmiştir:
Sub ProcessEvent(App)
    ' --- SQL Server bağlantı bilgileri (kendi bilgilerinizle değiştirin) ---
    strDBUser   = "kullanici_adi"
    strDBPass   = "sifre"
    strDBServer = "SUNUCU\SQLEXPRESS"
    strDBName   = "LOGODB"

    Set conn = CreateObject("ADODB.Connection")
    conn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" & strDBUser & ";Password=" & strDBPass & ";Initial Catalog=" & strDBName & ";Data Source=" & strDBServer
    conn.Open

    Set rs = CreateObject("ADODB.Recordset")

    rOk = App.Doc.FirstRoot
    While rOk
        ok1 = App.Doc.FirstChild("TRANSACTIONS.TRANSACTION")
        While ok1
            strInvoiceRef = CStr(App.Doc.FieldAsInteger("DATA_REFERENCE"))

            ' Tablo adındaki firma (001) ve dönem (01) numarasını,
            ' TEXTFLDS sütunlarını 1. adımda tespit ettiğiniz alanlarla değiştirin.
            ' İlk sütun: Kaynak Fatura Tarihi, ikinci sütun: Kaynak Belge No
            strQuery = "SELECT TEXTFLDS3, TEXTFLDS2 FROM LG_001_01_DEFNFLDSTRANV WHERE OWNERREF = " & strInvoiceRef

            rs.Open strQuery, conn
            If Not rs.EOF Then
                App.Doc.ModifyData "RETURN_DATE", rs.Fields(0).Value
                App.Doc.ModifyData "RETURN_DOCNO", rs.Fields(1).Value
            End If
            rs.Close

            ok1 = App.Doc.NextChild
        Wend
        rOk = App.Doc.NextRoot
    Wend

    conn.Close
    Set rs = Nothing
    Set conn = Nothing
    App.Doc.SaveData
End Sub

Script'te değiştirmeniz gereken yerler:

DeğiştirilecekAçıklama
strDBUser, strDBPassSQL Server kullanıcı adı ve şifresi
strDBServerSQL Server adı (ör. SUNUCU\SQLEXPRESS)
strDBNameLogo veritabanının adı
LG_001_01_Kendi firma ve dönem numaranız
TEXTFLDS3, TEXTFLDS21. adımda tespit ettiğiniz tarih ve belge no sütunları
⚠️Script'teki SQL şifresi kural tanımında açık metin olarak durur. Bu kural için yönetici (sa) kullanıcısı yerine yalnızca okuma yetkisi olan ayrı bir SQL kullanıcısı açın; script sadece okuma yaptığı için db_datareader yetkisi yeterlidir.

Salt okunur SQL kullanıcısının nasıl açılacağını Excel rehberimizde adım adım anlattık:

3. Adım: Kural Kullanımını Açın

e-Devlet → Parametreler → Genel Parametreler altında Kural Kullan seçeneğini işaretleyin. Bu seçenek kapalıysa tanımladığınız kural çalışmaz.

4. Adım: İade Faturasında Kaynak Bilgileri Girin

  1. Satınalma iade faturasını her zamanki gibi oluşturun ve malzeme satırlarını girin.
  2. Fatura satırındayken F9 menüsünden Tanımlı Alanlar'ı açın.
  3. Kaynak Belge No alanına iade edilen satınalma faturasının numarasını, Kaynak Fatura Tarihi alanına tarihini yazın (ör. 03.02.2025).
  4. Kaydet'e tıklayın ve faturayı kaydedin.

5. Adım: e-Faturayı Gönderin

İade faturasını e-Fatura olarak gönderdiğinizde kural otomatik çalışır; tanımlı alanlara girdiğiniz kaynak fatura numarası ve tarihi e-Faturanın iade bilgisi alanlarına aktarılır.

✅İlk gönderimden önce bir test faturasıyla deneyin ve e-Fatura önizlemesinde iade edilen fatura bilgisinin göründüğünü kontrol edin.

Tarih Alanını Tarih Türünde Eklediyseniz

Kaynak fatura tarihi alanını Tarih türünde eklediyseniz değer NUMFLDS sütunlarına sayısal olarak yazılır. Bu durumda:

  1. Logo'nun LG_INTTODATE SQL fonksiyonunu veritabanınıza kurmanız gerekir (kurulum betiği için Logo iş ortağınıza başvurun).
  2. Script'teki sorguyu tarih sayısal alandan dönüştürülerek okunacak şekilde değiştirin. Logo'nun örneğinde bu satır şöyledir:
SELECT [dbo].[LG_INTTODATE](NUMFLDS2), TEXTFLDS1 FROM LG_005_03_DEFNFLDSTRANV WHERE OWNERREF =

Bu ek adımlarla uğraşmamak için tarih alanını baştan Metin türünde tanımlamanızı öneririz.

Sık Sorulan Sorular

Bu adımlar kimler için gerekli?

2.99.00.00 veya daha yeni bir sürüm kullanıyorsanız bu adımlara gerek yoktur. Eski sürümde kalıp IADE veya TEVKIFATIADE e-Faturası kesen, özellikle önceki mali döneme ait faturalara iade düzenleyen firmalar bu yöntemi kullanabilir.

Kural çalışmıyor, ne kontrol etmeliyim?

  • Genel Parametreler'de Kural Kullan işaretli mi?
  • Kuralın Statüsü Aktif, Doküman e-Fatura (Giden), Olay Gönderildiğinde mi?
  • Script'teki SQL bağlantı bilgileri, firma ve dönem numarası doğru mu?
  • TEXTFLDS sütun numaraları, 1. adımdaki kontrol sorgusunda gördüklerinizle aynı mı?

TEVKIFATIADE faturalarında da geçerli mi?

Evet. 28.03.2025 tarihli düzenlemeyle zorunluluk hem IADE hem TEVKIFATIADE tipindeki e-Faturalar için getirilmiştir.


Bu rehber Logo'nun resmî destek dokümanındaki çözüm adımlarına dayanmaktadır. e-Fatura iade süreçleri, sürüm güncellemesi veya script kural kurulumu için Logo iş ortağı olarak ekibimiz destek verebilir.

قاعدة المعرفة
/logo-iade-faturasi-kaynak-fatura-bilgisi