自动关闭Quickbooks中新SalesOrder记录的未结余额

时间:2018-04-18 14:38:59

标签: c# asp.net quickbooks nsoftware

我尝试使用nsoftware sdk在quickbooks中创建销售记录。以下代码根据需要在Quickbooks中创建销售项目,除了它显示" Open Balance"和#34;打开"。

enter image description here

    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;

根本没有任何影响。

我的问题

有没有办法将开放余额归零并以编程方式结束销售?

1 个答案:

答案 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

当然,如果有人有更好的解决方案,请随时发布,我会重新考虑所选答案。