2

我正在尝试使用nsoftware sdk 在快速手册中创建销售记录。以下代码根据需要在 Quickbooks 中创建销售项目,但它显示“未结余额”和“未结”状态。

在此处输入图像描述

    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;

这似乎根本没有任何影响。

我的问题

有没有办法将未结余额清零并以编程方式结束销售?

4

1 回答 1

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

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

于 2018-04-24T14:48:23.933 回答