C# 如何在quickbooks中将库存添加到同一销售收据
我正在尝试向quickbooks中的销售收据添加多个存货 到目前为止,如果我有4个项目,它会创建4个不同的销售收据 但是,我想制作一张包含4个不同项目的销售收据 这是我到目前为止,但我似乎无法找到正确的代码C# 如何在quickbooks中将库存添加到同一销售收据,c#,quickbooks,intuit-partner-platform,C#,Quickbooks,Intuit Partner Platform,我正在尝试向quickbooks中的销售收据添加多个存货 到目前为止,如果我有4个项目,它会创建4个不同的销售收据 但是,我想制作一张包含4个不同项目的销售收据 这是我到目前为止,但我似乎无法找到正确的代码 public void SalesInfoAdd(IMsgSetRequest requestMsgSet) { ISalesReceiptAdd salesReceiptAddRq = requestMsgSet.AppendSalesReceipt
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 void SalesInfoAdd(IMsgSetRequest requestMsgSet)
{
isalReceiptAdd-salesReceiptAddRq=requestMsgSet.AppendSalesReceiptAddRq();
IsalReceiptLineAddSalesReceiptAddNew=salesReceiptAddRq.ORSalesReceiptLineAddList.Append().SalesReceiptLineAddNew;
salesReceiptAddRq.CustomerRef.FullName.SetValue(Form.name.Text);
salesReceiptAddRq.IsPending.SetValue(true);
salesReceiptAddRq.IsTaxIncluded.SetValue(false);
for(int i=0;i
对于有同样问题的人来说,这是我的解决方案(见下文),效果非常好
谢谢
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);
}
公共列表salesReceiptAddNew;
public void SalesInfoAdd(IMsgSetRequest requestMsgSet)
{
isalReceiptAdd-salesReceiptAddRq=requestMsgSet.AppendSalesReceiptAddRq();
salesReceiptAddNew=新列表();
salesReceiptAddRq.CustomerRef.FullName.SetValue(Form.name.Text);
salesReceiptAddRq.IsPending.SetValue(true);
salesReceiptAddRq.IsTaxIncluded.SetValue(false);
for(int i=0;i
可以在一张销售收据下创建多行。
您可以使用apiexplorer工具来测试这个用例。
链接-
文档链接-
我创建了以下SalesReceive,其中包含两行项目。pfbxml
<?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>
179017358
9900
2010-09-02
美元
537923
2011-03-02
2500
0
第7项
434443
67890
1.
第8项
434443
12345
2.
QBD中的视图
请让我知道它是否适合你
谢谢可以这样做吗?天哪。。。XD我想出来了。。。但是你的评论帮我弄明白了,所以我给你加分。如果有人读到这篇文章,我会更新我的答案,以防有人陷入困境。
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);
}