0

我正在尝试将多件库存添加到快速簿中的销售收据中。

到目前为止,如果我有 4 个项目,它会创建 4 个不同的销售收据。

但是,我想制作 1 张包含 4 种不同物品的销售收据。

这是我到目前为止所拥有的,但我似乎无法为此找到正确的代码。

        public void SalesInfoAdd(IMsgSetRequest requestMsgSet)
    {
        ISalesReceiptAdd salesReceiptAddRq = requestMsgSet.AppendSalesReceiptAddRq();
        ISalesReceiptLineAdd salesReceiptAddNew = salesReceiptAddRq.ORSalesReceiptLineAddList.Append().SalesReceiptLineAdd;

        salesReceiptAddRq.CustomerRef.FullName.SetValue(Form.name.Text);
        salesReceiptAddRq.IsPending.SetValue(true);
        salesReceiptAddRq.IsTaxIncluded.SetValue(false);

        for (int i = 0; i < Form.productID.Count; i++)
        {
            salesReceiptAddNew.ItemRef.FullName.SetValue(Form.productID[i].ToString());
            salesReceiptAddNew.ORRatePriceLevel.Rate.SetValue(Convert.ToDouble(Form.pricesList.Items[i]));
            salesReceiptAddNew.Quantity.SetValue(Form.QBqt[i]);
            salesReceiptAddNew.Desc.SetValue(Form.productsList.Items[i].ToString());

            //groupSalesReceipt.ItemGroupRef.FullName
            IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);
        }
    }

对于任何有同样问题的人,这是我的解决方案(如下),效果很好。

谢谢

        public List<ISalesReceiptLineAdd> salesReceiptAddNew;

    public void SalesInfoAdd(IMsgSetRequest requestMsgSet)
    {

        ISalesReceiptAdd salesReceiptAddRq = requestMsgSet.AppendSalesReceiptAddRq();
        salesReceiptAddNew = new List<ISalesReceiptLineAdd>();

        salesReceiptAddRq.CustomerRef.FullName.SetValue(Form.name.Text);
        salesReceiptAddRq.IsPending.SetValue(true);
        salesReceiptAddRq.IsTaxIncluded.SetValue(false);

        for (int i = 0; i < Form.productID.Count; i++)
        {
            salesReceiptAddNew.Add(salesReceiptAddRq.ORSalesReceiptLineAddList.Append().SalesReceiptLineAdd);

            salesReceiptAddNew[i].ItemRef.FullName.SetValue(Form.productID[i].ToString());
            salesReceiptAddNew[i].ORRatePriceLevel.Rate.SetValue(Convert.ToDouble(Form.pricesList.Items[i]));
            salesReceiptAddNew[i].Quantity.SetValue(Form.QBqt[i]);
            salesReceiptAddNew[i].Desc.SetValue(Form.productsList.Items[i].ToString() +
                                            Form.QBsku[i].ToString());
        }
        IMsgSetResponse responseMsgSet = sessionManager.DoRequests(requestMsgSet);

    }
4

1 回答 1

0

可以在一张销售收据下创建多行。您可以使用 apiexplorer 工具来测试这个用例。链接 - https://developer.intuit.com/apiexplorer?apiname=V2QBD 文档链接 - https://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0500_quickbooks_windows/0600_object_reference/salesreceipt

我创建了以下带有 2 个行项目的销售收据。PFB xml。

<?xml version="1.0" encoding="utf-8"?>
<Add xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" RequestId="b9bf137554a843cf8bd34865812daff6" xmlns="http://www.intuit.com/sb/cdm/v2">
   <ExternalRealmId>179017358</ExternalRealmId>
   <Object xsi:type="SalesReceipt">
    <Header>
     <DocNumber>9900</DocNumber>
     <TxnDate>2010-09-02</TxnDate>
     <Currency>USD</Currency>
     <CustomerId>537923</CustomerId>
     <ShipDate>2011-03-02</ShipDate>
     <TotalAmt>2500</TotalAmt>
     <DiscountAmt>0</DiscountAmt>
    </Header>
    <Line>
     <Desc>7th Item</Desc>
     <ItemId>434443</ItemId>
     <UnitPrice>67890</UnitPrice>
     <Qty>1</Qty>
    </Line>
    <Line>
     <Desc>8th Item</Desc>
     <ItemId>434443</ItemId>
     <UnitPrice>12345</UnitPrice>
     <Qty>2</Qty>
    </Line>
   </Object>
</Add>

在 QBD 中查看

在此处输入图像描述

请让我知道它是否适合您。

谢谢

于 2013-06-07T15:26:36.247 回答