Logo Tiger Entegrasyonu

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.

Anahtar kelimeler: Logo Tiger entegrasyonu, LObject satış faturası, UnityObjects örneği, Excel’den Logo’ya fatura aktarma, doSalesInvoice

🧩 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.

Teknik not: Object seçimi sadece fiş tipini başlatmaz; aynı zamanda kullanılabilir alanları,
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
ARP_CODE
Cari hesabı tanımlar. Fatura hangi müşteriye veya firmaya kesiliyorsa o kart burada belirtilir.
DOC_NUMBER
Dış sistemden gelen belge numarasının Tiger içindeki belgeyle izlenmesini sağlar.
PAYMENT_CODE
Faturanın ödeme planı ve vade mantığını belirler.
SOURCE_WH / DIVISION
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
Önemli: KDV dahil tutarı doğrudan satır fiyatı olarak göndermek çoğu senaryoda toplam sapmasına,
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.

Daha hızlı operasyon
Aynı gün içinde yüzlerce belgenin toplu ve kontrollü aktarılması mümkün hale gelir.
Daha az kullanıcı hatası
Yanlış KDV, yanlış cari ve eksik satır gibi klasik manuel giriş sorunları azalır.
Standart veri yapısı
Tüm belgeler aynı formatta işlendiği için denetim ve raporlama kolaylaşır.
Ölçeklenebilir entegrasyon
Aynı mantık e-fatura, banka, sipariş, tahsilat ve diğer ERP süreçlerine de uyarlanabilir.

❓ Sık Sorulan Sorular

Logo Tiger satış faturası için hangi LObject kullanılır?
Satış faturası için kullanılan LObject nesnesi doSalesInvoice olup object id değeri 19’dur.
Excel’den gelen KDV dahil tutarlar doğrudan gönderilebilir mi?
Genellikle hayır. KDV dahil tutarlar satır bazında nete çevrilmeli ve KDV oranı ayrıca gönderilmelidir.
Aynı faturada birden fazla KDV oranı olabilir mi?
Evet. Bu durumda her KDV oranı için ayrı satır oluşturmak en doğru yöntemdir.
FillAccCodes neden önemlidir?
Muhasebe bağlantılarının otomatik doldurulmasına yardımcı olur ve post aşamasında oluşabilecek hesap kodu eksikliği problemlerini azaltır.
Bu yapı sadece satış faturası için mi kullanılabilir?
Hayır. Aynı entegrasyon yaklaşımı sipariş, irsaliye, banka fişi, muhasebe fişi ve farklı özel ERP senaryolarına da uyarlanabilir.

İletişim

SQL sorguları, Logo Tiger raporları ve özel geliştirmeler için benimle iletişime geçebilirsiniz.