我尝试使用nsoftware sdk在quickbooks中创建销售记录。以下代码根据需要在Quickbooks中创建销售项目,除了它显示" Open Balance"和#34;打开"。
var total = "999";
var connectionString = config.ToString();
var report = new nsoftware.InQB.Salesorder
{
QBConnectionString = config.ToString(),
CustomerName = "Internal Application Test",
};
var salesOrderItem = new SalesOrderItem();
salesOrderItem.ItemName = "Daily Cash Sales Test";
salesOrderItem.Amount = total;
//salesOrderItem.ManuallyClosed = ManuallyCloseds.mcManuallyClosed;
report.LineItems.Add(salesOrderItem);
await report.OpenQBConnectionAsync().ConfigureAwait(false);
bool isSuccess = true;
try
{
await report.AddAsync().ConfigureAwait(false);
}
catch (Exception x)
{
System.Diagnostics.Debug.WriteLine(x);
isSuccess = false;
}
finally
{
await report.CloseQBConnectionAsync().ConfigureAwait(false);
}
我试图通过包含手动关闭的电话来结束销售:
salesOrderItem.ManuallyClosed = ManuallyCloseds.mcManuallyClosed;
根本没有任何影响。
我的问题
有没有办法将开放余额归零并以编程方式结束销售?
答案 0 :(得分:0)
据我所知,您不能简单地清空余额并关闭销售订单。你必须跳过几个圈。
为了将销售订单标记为零余额付款,您需要为销售订单的客户创建发票。然后,您需要将付款(ReceivePayment)应用于发票。这将导致您的销售订单被标记为已支付,余额为零。
您可以使用此官方Intuit资源来构建必要的查询:
https://developer-static.intuit.com/qbSDK-current/Common/newOSR/index.html
Consolibyte网站还包含一系列有用的示例:
http://www.consolibyte.com/docs/index.php/Example_qbXML_Requests
当然,如果有人有更好的解决方案,请随时发布,我会重新考虑所选答案。