Logo Tiger LObject ile satış faturası oluşturma: Excel’den farklı KDV oranlı market faturası aktarımı
Logo Tiger’a dışarıdan veri yazmak isteyen firmalar için en kritik konulardan biri, doğru LObject nesnesini kullanarak
faturayı eksiksiz ve kontrollü şekilde oluşturmaktır. Bu örnekte, Excel’de KDV oranlarına göre ayrılmış bir market satış
faturasının UnityObjects ile Logo Tiger sistemine nasıl otomatik aktarıldığını teknik ama anlaşılır bir dille inceliyoruz.
🧩 Satış faturası için doğru object seçimi
Logo Tiger tarafında satış faturası oluşturmak için kullanılan nesne
doSalesInvoice olup object referansı
19 değeridir.
Bu nedenle program tarafında:
Set invoice = tiger.NewDataObject(19)
satırı kullanılır. Bu ifade, oluşturulan nesnenin Logo Tiger içinde bir satış faturası olduğunu belirtir.
Entegrasyonun ilk ve en kritik adımı budur. Yanlış object seçimi, belgenin yanlış modülde açılmasına veya post aşamasında
hata alınmasına neden olabilir.
alt satır koleksiyonlarını ve Logo’nun belgeye uygulayacağı iş mantığını da belirler.
Tüm referanslar için Lütfen Tıklayınız
📥 Excel’den veri okuma ve Logo bağlantısının kurulması
Bu örnekte veri kaynağı Excel’dir. Fatura tarihi, belge numarası ve KDV bazında ayrılmış tutarlar Excel hücrelerinden okunur.
Ardından UnityObjects ile Tiger oturumu açılır ve satış faturası nesnesi hazırlanır.
Set unityApp = New UnityObjects.UnityApplication
unityApp.Connect
unityApp.UserLogin "LOGO", "123"
unityApp.CompanyLogin 2
Set invoice = tiger.NewDataObject(19)
Bu yapı sayesinde Excel’de hazırlanmış bir belge, manuel veri girişine gerek kalmadan doğrudan ERP sistemine aktarılabilir.
Özellikle yüksek işlem hacmine sahip market, perakende ve dağıtım firmalarında bu yaklaşım ciddi zaman kazandırır.
🧾 Fatura başlık alanlarının doğru set edilmesi
Satış faturasında yalnızca satırlar değil, başlık bilgileri de eksiksiz tanımlanmalıdır. Belge numarası, cari hesap,
tarih, ödeme planı ve bölüm bilgileri burada belirlenir.
invoice.DataFields.FieldByName("TYPE").Value = 8
invoice.DataFields.FieldByName("NUMBER").Value = "~"
invoice.DataFields.FieldByName("DOC_NUMBER").Value = "BELGE123"
invoice.DataFields.FieldByName("DOC_TRACK_NR").Value = "BELGE123"
invoice.DataFields.FieldByName("DATE").Value = Date
invoice.DataFields.FieldByName("ARP_CODE").Value = "120.01.001"
invoice.DataFields.FieldByName("SOURCE_WH").Value = 0
invoice.DataFields.FieldByName("SOURCE_COST_GRP").Value = 0
invoice.DataFields.FieldByName("PAYMENT_CODE").Value = "KREDIKARTI"
invoice.DataFields.FieldByName("DIVISION").Value = 0
Cari hesabı tanımlar. Fatura hangi müşteriye veya firmaya kesiliyorsa o kart burada belirtilir.
Dış sistemden gelen belge numarasının Tiger içindeki belgeyle izlenmesini sağlar.
Faturanın ödeme planı ve vade mantığını belirler.
Depo, işyeri ve bölüm bazlı kontrol için kullanılır.
💰 Farklı KDV oranları tek faturada nasıl yönetilir?
Market ve perakende faturalarında aynı belgede birden fazla KDV oranı bulunabilir. Bu durumda toplam tutarı tek satır halinde
göndermek doğru değildir. Her KDV oranı için ayrı satır oluşturulmalı ve her satır kendi vergi oranıyla sisteme işlenmelidir.
- %0 KDV için ayrı satır
- %1 KDV için ayrı satır
- %10 KDV için ayrı satır
- %20 KDV için ayrı satır
Eğer Excel’deki tutarlar brüt ise, Logo’ya yazmadan önce nete çevrilmelidir:
net_1 = brut_1 / 1.01
net_10 = brut_10 / 1.10
net_20 = brut_20 / 1.20
yanlış vergi matrahına ve raporlama hatalarına yol açar.
🛠️ Yardımcı fonksiyon ile satır ekleme
Entegrasyon kodunun temiz, okunabilir ve sürdürülebilir olması için satır ekleme işlemi yardımcı fonksiyon ile yapılmalıdır.
Böylece her satır için aynı alanlar tekrar tekrar yazılmaz; bakım ve geliştirme süreci kolaylaşır.
Call AddMarketLine(invoice, "URUN_KDV0", 1, tutar_kdv0, 0)
Call AddMarketLine(invoice, "URUN_KDV1", 1, tutar_kdv1, 1)
Call AddMarketLine(invoice, "URUN_KDV10", 1, tutar_kdv10, 10)
Call AddMarketLine(invoice, "URUN_KDV20", 1, tutar_kdv20, 20)
Yardımcı fonksiyon içinde tipik olarak aşağıdaki alanlar set edilir:
- Malzeme kodu
- Miktar
- Birim fiyat
- KDV oranı
- Birim kodu
- Döviz / kur alanları
- Açıklama bilgileri
Sub AddMarketLine(invoice As Object, stokKodu As String, miktar As Double, fiyat As Double, kdvOrani As Integer)
Dim trLine As Object
Set trLine = invoice.DataFields.FieldByName("TRANSACTIONS").Lines.AppendLine
trLine.FieldByName("TYPE").Value = 0
trLine.FieldByName("MASTER_CODE").Value = stokKodu
trLine.FieldByName("QUANTITY").Value = miktar
trLine.FieldByName("PRICE").Value = fiyat
trLine.FieldByName("VAT_RATE").Value = kdvOrani
trLine.FieldByName("UNIT_CODE").Value = "ADET"
End Sub
📅 Ödeme planı ve vade bilgilerinin eklenmesi
Faturanın sadece ticari belge olarak değil, finansal yapısıyla birlikte sisteme işlenmesi için ödeme planı da tanımlanmalıdır.
Bu sayede vade tarihi ve ödeme bilgileri doğrudan Logo içinde yönetilebilir.
Dim pay As Object
Set pay = invoice.DataFields.FieldByName("PAYMENT_LIST").Lines.AppendLine
pay.FieldByName("DATE").Value = Date + 30
pay.FieldByName("MODULENR").Value = 4
pay.FieldByName("TRANCODE").Value = 8
pay.FieldByName("TOTAL").Value = 1000
pay.FieldByName("PAY_NO").Value = 1
Özellikle taksitli ya da belirli vade yapısına sahip satışlarda bu alanların doğru kullanılması, raporlama ve tahsilat takibi açısından büyük avantaj sağlar.
🚀 Muhasebe kodlarını doldurma ve faturayı post etme
Veri set edildikten sonra muhasebe bağlantılarının doldurulması ve belgenin sisteme yazılması gerekir.
Bunun için genellikle önce FillAccCodes, ardından Post çağrılır.
invoice.FillAccCodes
If invoice.Post Then
MsgBox "Fatura başarıyla oluşturuldu."
Else
MsgBox "Fatura kaydı sırasında hata oluştu."
End If
Başarısız durumlarda ValidateErrors koleksiyonunun okunması gerekir. Bu sayede eksik cari kodu,
hatalı stok kartı, yanlış fiş tipi veya zorunlu alan eksikliği gibi problemler net olarak görülebilir.
📌 Sonuç: Bu yapı firmalara ne kazandırır?
Excel’den Logo Tiger’a otomatik satış faturası aktarımı; manuel veri girişini azaltır, işlem süresini kısaltır,
kullanıcı hatalarını düşürür ve finansal süreçleri standart hale getirir.
Aynı gün içinde yüzlerce belgenin toplu ve kontrollü aktarılması mümkün hale gelir.
Yanlış KDV, yanlış cari ve eksik satır gibi klasik manuel giriş sorunları azalır.
Tüm belgeler aynı formatta işlendiği için denetim ve raporlama kolaylaşır.
Aynı mantık e-fatura, banka, sipariş, tahsilat ve diğer ERP süreçlerine de uyarlanabilir.
❓ Sık Sorulan Sorular
İletişim
SQL sorguları, Logo Tiger raporları ve özel geliştirmeler için benimle iletişime geçebilirsiniz.
melihsamur.com.tr/iletisim/
wa.me/905415582843
melih@melihsamur.com.tr