Logo Objects ile fatura kesmek

1 yılı aşkın bir süredir logo tiger kullanıyorum/z öncelikle copy paste olayı ile hemen hemen her işimizi görüyor. logo da objects kullanmak istiyorsanız ilk olarak lisansınızın olması gerekiyor. register felan nette bir çok sitede var ben sadece delphi ile pek az örnek var küçük bir örnekte ben sunmak istedim. döküman diye fazla kıvranmayın tablo isimleri harici pek fazla döküman bulamazsınız üretici firma ise sadece çözüm ortaklarına destek veriyor. benim tavsiyem ne yapacaksanız fiş fatura vs. logoda yapın ve araçlar veri aktarımı ile dışarı xml atın ve alanları inceleyin aşağıdaki örnek size yol gösterecektir. unutmadan saati herzaman pack etmek zorundasınız.

var
data: IData;
datalines: UnityObjects_TLB.ILines;
zaman: OleVariant;
begin
data := Logo.NewDataObject(doSalesInvoice);
data.New;
data.DataFields.FieldByName('TYPE').Value := 9;
data.DataFields.FieldByName('NUMBER').Value := //Fatura No
data.DataFields.FieldByName('DOC_NUMBER').Value := // Belge Numarası
data.DataFields.FieldByName('AUXIL_CODE').Value := 'AUTO';
data.DataFields.FieldByName('DATE').Value := //Tarih
data.DataFields.FieldByName('DOC_DATE').Value := // Tarih
Logo.PackTime(12, 12, 12, zaman);
data.DataFields.FieldByName('TIME').Value := zaman;
data.DataFields.FieldByName('ARP_CODE').Value := // Müşteri Kodu
data.DataFields.FieldByName('POST_FLAGS').Value := 247;
data.DataFields.FieldByName('PAYMENT_CODE').Value := // Ödeme Planı
data.DataFields.FieldByName('SALESMAN_CODE').Value := // Satıcı
data.DataFields.FieldByName('NOTES1').Value := //Açıklama
data.DataFields.FieldByName('SOURCE_WH').Value := // Ambar Kodu
data.DataFields.FieldByName('DIVISION').Value := //Depo Kodu
datalines := data.DataFields.FieldByName('TRANSACTIONS').Lines;
datalines.AppendLine;
datalines[0].FieldByName('TYPE').Value := 4;
datalines[0].FieldByName('MASTER_CODE').Value := //Stok Kodu
datalines[0].FieldByName('QUANTITY').Value := //Adet
datalines[0].FieldByName('PRICE').Value := //B.Fiyat
datalines[0].FieldByName('UNIT_CODE').Value := 'ADET';
datalines[0].FieldByName('VAT_RATE').Value := //KdV
data.Post

19 Replies to “Logo Objects ile fatura kesmek”

  1. Merhaba,

    Lobjects delphide nasıl kullanıyoruz bu konuda bilgin varmı?

    • Örnek delphi örneği ama nerede takıldınız ? lisansınız yoksa hiç uğraşmayın kemalbayat[ ]gmail.com mail adresim

  2. Merhaba,

    ufak bir delphi projesi paylaşma imkanınız var mı?

    • Merhaba cevap gecikti ama kusura bakmayın işlerin yoğunluğundan bir türlü fırsat bulamadım.
      en kısa sürede siteye küçük bir örnek eklemeye çalışırım.

  3. Cevabınız için teşekkürler.
    Örnek uygulamanızı bekleyeceğim.

  4. Dostum Kolay Gelsin,

    Bir gelişme varmı?

    Objects.dll kullanarak Logoya veri girebilen küçük bir uygulama. Veri olarak fatura, irsaliye, sipariş fişi v.s. olabilir yada daha basit, stok cari kartı olabilir.

    Çalışan küçük bir örnek proje lazım.

    • Hocam biraz işlerim yoğun en kısa sürede fatura örneği github’a göndercem

  5. selamlar

    data: IData;
    datalines: UnityObjects_TLB.ILines;

    bu objelerı nasıl yarattınız

    • onları yaratmana gerek yok
      sadece Logo := CoUnityApplication.Create; uygulamayı yarat her uygulamada 1 tane yarat aksi halde lisans sayın dolunca hata verir
      sonra Logo.Login(EdUser.Text, EdPass.Text, StrToIntDef(EdFirm.Text, 0), StrToIntDef(EdDonem.Text, 0)) şeklinde login ol
      sonra data := Logo.NewDataObject(doSalesInvoice); fiş türünü seç data.New;
      data.DataFields.FieldByName(‘NUMBER’).Value burası fatura başlığı
      datalines := data.DataFields.FieldByName(‘TRANSACTIONS’).Lines; burası fatura kalemleri
      datalines.AppendLine;
      sonra data.Post veriyi gönderiyoruz
      data.DataFields.FieldByName(‘INTERNAL_REFERENCE’).Value buradan da kaydedilen faturanın id sini alıyoruz invoice tablosundaki id bu
      hataları try except değilde if data.post then oo başarılı else sıçtı gibi 🙂 ile yakala
      hatalar ise data.ErrorCode <> 0 şeklinde yakala
      en kısa sürede çalışan bir örnek yazacam ama muhasebecilik yapmaktan hiç vaktim olmuyor ve en büyük sorunum logunun işyerinde olması 🙂
      öyle olunca geliştirme yapmak için işyerine ihtiyacım var

      • Selamlar
        Yanıt ışın teşekkürler
        Burda sunucu falan gösterilmiyor acaba logoyu kendı makınamsmı kurmam gerekıyor
        Birde Logo.NewDataObject(doSalesInvoice);
        Logo varabilde ki tipi ne olacak

          • Selmalar
            2 yontem var bırısı dll ockden regıster edıyosun ve fıled by name ıle yapıyon ama bu durumda kandı makınamdakı regıster edılmıs dll dosayasına verı gonderınce servere nasıl gıdecek onu anlamadım

            1 yontemde logonun yenı urettıgı exe bır soap servıce yaratıyor
            onu wdsl den ımport edıp xml gonderıyosun ama 2 sınıde beceremedım henuz 2 yontemde ornegımde mevcut bı yerlerde hata edıyorum ama nasıl bılemedım
            http://www.ercey.com.tr/Depo.rar

  6. sorunu cozdum tesşekkürler
    yanlış dll le uğraşıyormuşum

  7. aşağıdaki kod ile excel’den LOD kullanılarak fatura içeri alınıyor.

    Ancak tüm excel kalemlerini bir tek fatura üzerine toplayarak alıyor. do While döngüsü olmasına rağmen. excel her satırını bir fatura yaparak nasıl içeri alabiliriz.

    Saygılarımızla,

    Sub DoubleClick(ctrl as String, index as Integer)
    If (Ctrl = “edtKaynak”) Then
    GetTextVal(“edtKaynak”, Kaynak)
    SelectFile (“Excel File|*.XLS”, Kaynak, “Kaynak dosya seçimi”, Kaynak)
    If (Kaynak “”) Then
    SetTextVal(“edtKaynak”, Kaynak)
    End If
    End If
    End Sub

    Sub ButtonClick(ctrl as String)
    If (Ctrl = “btnAktar”) Then
    GetTextVal(“edtKaynak”, Kaynak)
    If (Kaynak “”) Then
    I =2

    XLApp = OleObject(“Excel.Application”)
    XLApp.Visible = False
    XLApp.Workbooks.Open(Kaynak)
    Sheet = XLApp.Sheets[1]

    invoice = Application.NewDataObject(19)

    invoice.New ()

    ‘TIP = Sheet.Cells[I, 6].Value

    CHKodu = Sheet.Cells[I, 5].Text
    Faturano = Sheet.Cells[I, 4].Text

    ‘DokTarih = Sheet.Cells[I, 7].Value
    ‘DuzTarihi = Sheet.Cells[I, 6].Value

    do

    invoice.DataFields.FieldByName(“NUMBER”).Value = Faturano
    invoice.DataFields.FieldByName(“ARP_CODE”).Value =CHKodu
    invoice.DataFields.FieldByName(“DATE”).Value = today
    invoice.DataFields.FieldByName(“DOC_DATE”).Value = today
    invoice.DataFields.FieldByName(“TYPE”).Value = 9

    Faturano = Sheet.Cells[I, 4].Text
    CHKodu = Sheet.Cells[I, 5].Text
    ‘DokTarih = Sheet.Cells[I, 7].Value
    ‘DuzTarihi = Sheet.Cells[I, 6].Value
    ‘TIP = Sheet.Cells[I, 6].Value
    ‘STKodu = Sheet.Cells[I, 1].Text
    ‘Miktar = Sheet.Cells[I, 2].Value
    ‘Tutar = Sheet.Cells[I, 3].Value

    transactions_lines = invoice.DataFields.FieldByName(“TRANSACTIONS”).Lines

    ‘ Faturano = Sheet.Cells[I, 4].Text
    ‘CHKodu = Sheet.Cells[I, 5].Text

    STKodu = Sheet.Cells[I, 1].Text
    Miktar = Sheet.Cells[I, 2].Value
    Tutar = Sheet.Cells[I, 3].Value

    transactions_lines.AppendLine ()

    transactions_lines [I – 2].FieldByName(“TYPE”).Value = 4
    transactions_lines [I – 2].FieldByName(“UNIT_CODE”).Value = “GUN”

    transactions_lines [I – 2].FieldByName(“MASTER_CODE”).Value = STKodu
    ‘transactions_lines [I – 1].FieldByName(“DATE”).Value = today
    transactions_lines [I – 2].FieldByName(“QUANTITY”).Value = Miktar
    transactions_lines [I – 2].FieldByName(“TOTAL”).Value = Tutar

    I=I+1

    STKodu = Sheet.Cells[I, 1].Text
    Miktar = Sheet.Cells[I, 2].Value
    Tutar = Sheet.Cells[I, 3].Value
    ‘Faturano = Sheet.Cells[I, 4].Text
    ‘CHKodu = Sheet.Cells[I, 5].Text
    ‘DuzTarihi = Sheet.Cells[I, 6].Value
    ‘TIP = Sheet.Cells[I, 6].Value
    ‘DokTarih = Sheet.Cells[I, 7].Value

    ‘ do

    ‘ I=I+1

    loop While (Faturano “”) and (STKodu “”)

    If (invoice.Post() = true) Then

    Warn(“Sigorta Poliçelerinin aktarımı tamamlandı.”)

    Else
    strError = “Sigorta Poliçeleri aktarılamadı!”

    If (invoice.ValidateErrors.Count = 0) Then
    intID = invoice.ErrorCode
    Str(intID, strID)
    strError = strError + “~” + strID
    Select Case intID
    Case 20
    strError = strError + “, Kullanıcının mahsup fişi oluşturma yetkisi yok!”
    Case Else
    strError = strError + “, Beklenmeyen bir hata oluştu111!”
    End Select
    Else
    For intI = 0 To invoice.ValidateErrors.Count – 1
    intID = invoice.ValidateErrors.Item[intI].ID
    Str(intID, strID)
    strError = strError + “~” + strID + “, ” + invoice.ValidateErrors.Item[intI].Error
    Next
    End If
    Warn(strError)
    End If

    invoice = Null

    XLApp.Quit
    XLApp = Null
    Else
    Warn(“Kaynak dosyayı seçiniz.”)
    End If
    End If
    End Sub

  8. STKodu Miktar Tutar Faturano CHKodu
    TRAFİK 1 2 12345A 00000000003
    TARIM 1 3,5 12345b 000006
    TRAFİK 1 2 12345c 00000000003
    TARIM 1 3,5 12345d 000006

    verilen hizmet faturası dört adet.

    ancak yalnız bir fatura dört satır Logo dan içeri alıyor. Do While döngüsünü çalıştırmamıza rağmen.

    Şimdiden ilginiz için teşekkürler

    Saygılarımızla,

  9. objects ile excel’den birden fazla fatura düzenleme koduna bakabilmek için müsait oldunuz mu?
    Saygılar