2013-02-25 68 views
1

我试图使用IPP.NET将发票插入Quickbooks Online。这个问题似乎是在设定项目。尝试使用IPP.NET插入QBO发票

下面是用于第一线,工作正常我的VB代码的一个片段:

Dim qboInvoiceLine1 as new intuit.ipp.data.qbo.invoiceline 
qboInvoiceline1.desc="Desc1" 
qboInvoiceLine1.amount=10 
qboInvoiceLine1.AmountSpecified=True 

如果我添加以下代码设置的项目,我得到一个错误形成XML ..

Dim items1 as List(Of Intuit.Ipp.Data.Qbo.Item)=New List(Of Intuit.Ipp.Data.Qbo.Item) 
Dim item1 as new intuit.ipp.data.qbo.item 
item1.id=new intuit.ipp.data.qbo.idtype 
item1.id.value="1" 
items1.add(item1) 
qboInvoiceLine1.Items=items1.ToArray 

我甚至不明白为什么项目ID似乎是某种数组或项目列表。文档的一个来源表明发票行有一个itemID属性,但似乎并非如此。任何人都可以给我设置发票行的itemID代码吗?

回答

1
ItemsChoiceType2[] invoiceItemAttributes = { ItemsChoiceType2.ItemId, ItemsChoiceType2.UnitPrice,ItemsChoiceType2.Qty }; 
object[] invoiceItemValues = { new IdType() { idDomain = idDomainEnum.QB, Value = "5" }, new decimal(33), new decimal(2) }; 
var invoiceLine = new InvoiceLine(); 
invoiceLine.Amount = 66; 
invoiceLine.AmountSpecified = true; 
invoiceLine.Desc = "test " + DateTime.Now.ToShortDateString(); 
invoiceLine.ItemsElementName = invoiceItemAttributes; 
invoiceLine.Items = invoiceItemValues; 
invoiceLine.ServiceDate = DateTime.Now; 
invoiceLine.ServiceDateSpecified = true; 
listLine.Add(invoiceLine); 
+2

.NET DevKit中的一些属性通过Items/ItemsElementName属性进行设置。对于发票,这些属性是ItemsChoiceType2枚举器的一部分,并将该值传递到相同的Items数组索引中。 – 2013-02-25 18:09:21