Intuit 合作伙伴平台 - 无法添加发票,因为项目 ID 未知



>我正在尝试通过IPP将发票插入空白的Quickbooks商店。插入将始终失败,因为发票行项的物料 ID 不存在。我一直在尝试多种方法来解决此问题,但没有成功。我以为我可以查询项目,如果找不到我正在寻找的项目,它将创建它。我似乎无法让它工作。我可以使用我创建的新项目构建发票吗?

我目前像这样构建发票:(问题是以"object[] invoiceItemValues"开头的行( Intuit.Ipp.Data.Qbd.InvoiceHeader invoiceHeader = new Intuit.Ipp.Data.Qbd.InvoiceHeader((; invoiceHeader.ARAccountName = "Accounts Receivable"; invoiceHeader.BillAddr = physicalAddress; invoiceHeader.CustomerName = customer。名字; invoiceHeader.DocNumber = (invoiceMaxId(.ToString((.左垫(4, '0'(; invoiceHeader.TaxAmt = salesTax; invoiceHeader.TotalAmt = amount;

        List<Intuit.Ipp.Data.Qbd.InvoiceLine> listLine = new List<Intuit.Ipp.Data.Qbd.InvoiceLine>();

        Intuit.Ipp.Data.Qbd.ItemsChoiceType2[] invoiceItemAttributes = { Intuit.Ipp.Data.Qbd.ItemsChoiceType2.ItemId, Intuit.Ipp.Data.Qbd.ItemsChoiceType2.UnitPrice, Intuit.Ipp.Data.Qbd.ItemsChoiceType2.Qty };
        object[] invoiceItemValues = { new Intuit.Ipp.Data.Qbd.IdType() { idDomain = Intuit.Ipp.Data.Qbd.idDomainEnum.QB, Value = "2" }, amount, new decimal(1) };

        var invoiceLine = new Intuit.Ipp.Data.Qbd.InvoiceLine();
        invoiceLine.Amount = amount;
        invoiceLine.AmountSpecified = true;
        invoiceLine.Desc = "test " + date.ToShortDateString(); // TODO: This will need to hold the additional fields
        invoiceLine.ItemsElementName = invoiceItemAttributes;
        invoiceLine.Items = invoiceItemValues;
        invoiceLine.ServiceDate = date;
        invoiceLine.ServiceDateSpecified = true;
        listLine.Add(invoiceLine);
        Intuit.Ipp.Data.Qbd.Invoice invoice = new Intuit.Ipp.Data.Qbd.Invoice();
        invoice.Header = invoiceHeader;
        invoice.Line = listLine.ToArray();

这是我收到的错误:"验证 txn_line_rec.item_id 无效密钥 = 30 域 = QB 枚举 = 项目">

以下是尝试查询项目的内容,但也需要 ID。

ItemQuery qbdItemQuery = new ItemQuery();
qbdItemQuery.Items = new object[] { new IdSet() { Id = new IdType[] { new IdType() { idDomain = idDomainEnum.NG, Value = "79841" } } } };
qbdItemQuery.ItemsElementName = new ItemsChoiceType4[] { ItemsChoiceType4.ListIdSet };
List<Item> ItemQueryResult = qbdItemQuery.ExecuteQuery<Item>(context).ToList<Item>();

请参阅QBO中的示例,同样您可以为QBD编码- Intuit.Ipp.Data.Qbo.Invoice invoice = new Intuit.Ipp.Data.Qbo.Invoice((;

Intuit.Ipp.Data.Qbo.InvoiceHeader invoiceHeader = new     Intuit.Ipp.Data.Qbo.InvoiceHeader();
invoiceHeader.DocNumber = "AUTO_GENERATE";
invoiceHeader.TxnDate = new DateTime(2013, 09, 04);
invoiceHeader.TxnDateSpecified = true;
invoiceHeader.CustomerId = new Intuit.Ipp.Data.Qbo.IdType() { idDomain =     Intuit.Ipp.Data.Qbo.idDomainEnum.QBO, Value = "12" };
invoiceHeader.SubTotalAmt = 100;
invoiceHeader.SubTotalAmtSpecified = true;
invoiceHeader.TotalAmt = 100;
invoiceHeader.TotalAmtSpecified = true;
invoice.Header = invoiceHeader;
Intuit.Ipp.Data.Qbo.InvoiceLine invoiceLine = new Intuit.Ipp.Data.Qbo.InvoiceLine();
invoiceLine.Desc = "Description";
invoiceLine.Amount = 100;
invoiceLine.AmountSpecified = true;
invoiceLine.Taxable = false;
invoiceLine.TaxableSpecified = true;
invoiceLine.ItemsElementName = new Intuit.Ipp.Data.Qbo.ItemsChoiceType2[] {     Intuit.Ipp.Data.Qbo.ItemsChoiceType2.ItemId,     Intuit.Ipp.Data.Qbo.ItemsChoiceType2.UnitPrice, Intuit.Ipp.Data.Qbo.ItemsChoiceType2.Qty };
invoiceLine.Items = new object[] { new Intuit.Ipp.Data.Qbo.IdType() { idDomain = Intuit.Ipp.Data.Qbo.idDomainEnum.QBO, Value = "30" }, 100m, 1m };
invoice.Line = new Intuit.Ipp.Data.Qbo.InvoiceLine[] { invoiceLine };
Intuit.Ipp.Data.Qbo.Invoice addedInvoice = dataService.Add<Intuit.Ipp.Data.Qbo.Invoice>(invoice);

编辑:要创建项目-

Intuit.Ipp.Data.Qbo.Item qboItem = new Intuit.Ipp.Data.Qbo.Item();                          
                        qboItem.Name = "nemoitem11";
                        qboItem.Desc = "Itemdesc";
                        qboItem.UnitPrice = new Money() ;
                        qboItem.UnitPrice.Amount = 20;
                        qboItem.IncomeAccountRef = new AccountRef();
                        qboItem.IncomeAccountRef.AccountId = new IdType() { idDomain = idDomainEnum.QBO, Value = "1" };
                        Item resultItem = commonService.Add(qboItem) as Item;

最新更新