28 Mart 2025 tarihinde yayımlanan e-Fatura Paketi ve UBL kod listeleri güncellemesiyle; satın alma iade işlemlerinde “IADE” ve “TEVKİFATIADE” e-Fatura türlerinde, en az bir iade fatura kaydı bulunması artık zorunlu hale getirilmiştir.
Bu değişiklik doğrultusunda, GO ve Tiger ürün gruplarını kullanan ve mali döneme bağlı çalışan şirketlerde; önceki mali döneme ait satın alma faturasına dayanan iade faturalarının kaynak belge bilgilerini otomatik olarak aktarabilmek için aşağıdaki yönetimi uygulayabilirsiniz.
Özetle; mali dönemden bağımsız çalışıyorsanız (her dönem için bir firma veya dönem oluşturuyorsanız) ve iadesini keseceğiniz fatura, bir önceki firma ya da döneme aitse aşağıdaki yöntemle iade faturası kesebilirsiniz.1.Adım: Tanımlı Alanların Oluşturulması
İadesini keseceğiniz faturaya ait Belge Numarası ve Belge Tarihi alanlarını tanımlı olarak eklemeniz gerekiyor. Bu işlemi yapmak için;
- Sistem İşletmeni (sys) ye girin
- Üst menüden Kuruluş Bilgileri –> Tanımlı Alanlar –> Fatura seçeneğini seçin.
- Ekleyeceğimiz tanımlı alanlar satır bazlı çalışacağı için, açılan penceredeki Kayıt kolonunda Satır yazan kısma kadar aşağı inin. (Satırlar 51. nodan başlar)
- Firma kolonuna işlemin uygulanacağı firma/firmaları seçin.
- Açıklama kısmına alanların açıklamasını yazın.
- Tür kısmını metin olarak seçin
- Alan kısmına oluşacak alanların isimlerini yazın ve kaydedin. Aşağıdaki görsele göre tanımlama yapabilirsiniz.
logo tanımlı alan ekleme
2.Adım: Script Kural Oluşturma
Oluşturulan tanımlı alanların elektronik belgelere yansıyabilmesi için kural tanımı yapılması gerekir.
- Cloud connect kullanıyorsanız e-Devlet –> Tanımlamalar –> Kurallar altında, Logo Connect kullanıyorsanız Araçlar –> Kural Tanımları altından script kural ekleme penceresini açın.Kural ekleme ilgili daha önce paylaşılan makalelere ulaşmak için tıklayınız. Fatura Tasarımına Detaylı Bilgi Alanını Getirme e-Fatura Tasarımına Cari Bakiye Getirme
- Aşağıdaki kural kodunu kopyalayın ve kendi kurallarınıza yapıştırın.
sub ProcessEvent(App) strDBUser = "" 'SQL Kullanıcı Adı strDBPass = "" 'SQL Kullanıcı Şifresi strDBServer = "" 'SQL Server Adı/IP si strDBName = "" 'Logo Veritabanı Adı strFirmaNo = CStr(App.FirmNr) do while len(strFirmaNo) < 3 strFirmaNo = "0"+strFirmaNo Loop strDonemNo = CStr(App.PeriodNr) do while len(strDonemNo) < 2 strDonemNo = "0"+strDonemNo Loop 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 intInvoiceRef = App.Doc.FieldAsInteger("DATA_REFERENCE") strInvoiceRef = CStr(intInvoiceRef) strQuery = "SELECT TEXTFLDS1, TEXTFLDS2 FROM LG_"+strFirmaNo+"_"+strDonemNo+"_DEFNFLDSTRANV WHERE OWNERREF = " & strInvoiceRef rs.Open strQuery, conn If Not rs.EOF Then strFatNo = rs.Fields(0).Value strTarih = rs.Fields(1).Value App.Doc.ModifyData "RETURN_DOCNO", strFatNo App.Doc.ModifyData "RETURN_DATE", strTarih Else 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
- Kuralı yapıştırdıktan sonra üst kısımda bulunan SQL Server bilgileri kısmına kendi bilgilerinizi yazın ve kaydedin.
- Aşağıdaki görseldeki gibi satınalma iade faturası oluşturun ve kaydedin.
- LogoConnect programında ilgili faturayı seçin ve Onayla butonuna basın.
- Paketlenecek sekmesinde, ilgili fatura üzerinde sağ tık Uygulanan Kurallar diyerek, eklediğiniz script kuralın bu fatura üzerinde uygulandığından emin olun. (Uygulanan kuralın bu pencerede görünmesi için Parametrelerden Kural Kullan ve Kural Geçmişini Kaydet parametresinin aktif olması gerekir)
- Yine aynı fatura üzerinde, sağ tık UBL Göster diyerek, tanımlı alanların fatura UBL’ine geldiği görülür.
logo iade faturası ubl i
Önemli Notlar
- ERP de oluşturulan Satınalma İade Faturasının, Belge No alanı dolu olmalıdır.
- Kural kodları içerisinde bulunan SQL Bilgileri, kendi SQL Server bilgilerinizle doldurulmalıdır.
- Sistem işletmeninden eklediğiniz tanımlı alanın numarası, kural içerisinde bulunan SQL sorgusuyla doğru orantılı olarak değişmelidir. Örneğin; tanımlı alanı 51 ve 52. numaralara değil de, 52 ve 53. numaralara eklerseniz, kural içerisindeki sorguyu da SELECT TEXTFLDS2, TEXTFLDS3 FROM olarak değiştirmelisiniz.
51=TEXTFLDS1 – 52=TEXTFLDS2 – 53=TEXTFLDS3 – 54=TEXTFLDS4 – . . .