Mehmet ÇİFTÇİ

LOD ile Kasa İşlemleri

  Tiger/Logo Object Designer (LOD)

Merhaba,


LOD ile kasadan alınan hizmet faturası örneğini paylaşabilir misiniz? Object DLL tarafındaki kodları uyguladığımda "Method call error IQFormProxy.ButtonClick Undefined." uyarısı alıyorum. Malzeme fişi, cari hesap kartı açarken problem yok.


Teşekkürler.




NaciO

Onaylanmış Cevap

Merhaba,

LOD'un kullandığı dil özelliklerine göre kodlanmamış olabilir. Örneğin parantezlerin "()" değil "[]" olması gerekliliği gibi.

Aşağıda LOD için bir muhasebe fişi ekleme örneği ekliyorum, bu örneğe göre kodunuzda syntax problemi varsa (hata mesajı bunu işaret ediyor) düzenleyebilirsiniz;

 GLVoucher = Application.NewDataObject(26)
 GLVoucher.New()

 GLVoucher.DataFields.FieldByName("TYPE").Value = 4
 GLVoucher.DataFields.FieldByName("NUMBER").Value = "555"
 GLVoucher.DataFields.FieldByName("DATE").Value = "28.12.2006"
 GLVoucher.DataFields.FieldByName("TOTAL_DEBIT").Value = 10000000
 GLVoucher.DataFields.FieldByName("TOTAL_CREDIT").Value = 10000000

 GLLines = GLVoucher.DataFields.FieldByName("TRANSACTIONS").Lines

 If GLLines.AppendLine() Then
 GLLines[0].FieldByName("GL_CODE").value = "100"
 GLLines[0].FieldByName("DEBIT").value = 10000000
 GLLines[0].FieldByName("DESCRIPTION").value = "UnityObject'ten (Borç)"
 End If
 If GLLines.AppendLine() Then
 GLLines[1].FieldByName("SIGN").value = 1
 GLLines[1].FieldByName("GL_CODE").value = "120"
 GLLines[1].FieldByName("CREDIT").value = 10000000
 GLLines[1].FieldByName("DESCRIPTION").value = "UnityObject'ten (Alacak)"
 End If

 If Not GLVoucher.Post() Then
 if (GLVoucher.ValidateErrors.Count > 0) then
 tmpErrStr = "XML Hatası mevcut!"
 Cntr = GLVoucher.ValidateErrors.Count
 For ilp = 0 To (Cntr - 1)
 vID = GLVoucher.ValidateErrors.Item[ilp].ID
 Str(vID, strvID)
 tmpErrStr = tmpErrStr + strvID + " , " + GLVoucher.ValidateErrors.Item[ilp].Error
 Next ilp
 warn(tmpErrStr)
 Else
 tmpErrStr=""
 tmpErrStr = "DB Hatası mevcut!"
 ErrId = GLVoucher.ErrorCode
 Str(ErrId, strErr)
 ErrDef = ""
 ErrDef = GLVoucher.ErrorDesc
 tmpErrStr = tmpErrStr + "Hata Kodu : " + strErr + " " + ErrDef
 warn(tmpErrStr)
 End if
 end if
 GLVoucher = null
 GLLines = null





27/08/18 10:52


Mehmet ÇİFTÇİ

Merhaba


Kasa işlemleri dışındaki fişlerde problem olmuyor. Rica etsem kasa nakit tahsilat veya kasa alınan hizmet faturası örneği gönderebilir misiniz?


27/08/18 15:02


Mehmet ÇİFTÇİ

Merhaba,


Naci beyin iletisinden yola çıkarak aşağıdaki kod satırı oluştu. Attachment_Invoice ve Transactions xml tagleri ile ilgili problem varmış.


Fis = Application.NewDataObject(29)
Fis.New()

Fis.DataFields.FieldByName("TYPE").Value = 38
Fis.DataFields.FieldByName("SD_CODE").Value = "100.01.0001"
Fis.DataFields.FieldByName("NUMBER").Value = "~"
Fis.DataFields.FieldByName("DATE").Value   =today
Fis.DataFields.FieldByName("DOC_DATE").Value   =today

Fatura = Fis.DataFields.FieldByName("ATTACHMENT_INVOICE").Lines

if Fatura.AppendLine() Then
Fatura[0].FieldByName("TYPE").value =9
Fatura[0].FieldByName("DATE").value =Today
Fatura[0].FieldByName("DOC_DATE").value =Today
Fatura[0].FieldByName("TIME").value = 0
Fatura[0].FieldByName("NUMBER").value ="~"

End If

Satir = Fatura[0].FieldByName("TRANSACTIONS").Lines

If Satir.AppendLine() Then
Satir[0].FieldByName("TYPE").value =4
Satir[0].FieldByName("MASTER_CODE").value = "600.01.0001"
Satir[0].FieldByName("QUANTITY").value = 1
Satir[0].FieldByName("PRICE").value = 150
Satir[0].FieldByName("UNIT_CODE").value = "ADET"
Satir[0].FieldByName("VAT_RATE").value = 18

End If

Fis.FillAccCodes()

If Not Fis.Post() Then
if (Fis.ValidateErrors.Count > 0) then
tmpErrStr = "XML Hatası mevcut!"
Cntr = Fis.ValidateErrors.Count
For ilp = 0 To (Cntr - 1)
vID = Fis.ValidateErrors.Item[ilp].ID
Str(vID, strvID)
tmpErrStr = tmpErrStr + strvID + " , " + Fis.ValidateErrors.Item[ilp].Error
Next ilp
warn(tmpErrStr)
Else
tmpErrStr=""
tmpErrStr = "DB Hatası mevcut!"
ErrId = Fis.ErrorCode
Str(ErrId, strErr)
ErrDef = ""
ErrDef = Fis.ErrorDesc
tmpErrStr = tmpErrStr + "Hata Kodu : " + strErr + " " + ErrDef
warn(tmpErrStr)
End if
end if
if Fis.ValidateErrors.Count=0 then
warn("Başarılı")
end if
Fis = null
Satir = null


27/08/18 22:54

Cevap vermek için giriş yapmanız gerekmektedir.