从Quickbooks Desktop获得所有费用

时间:2015-02-16 20:14:02

标签: quickbooks

我可以使用QuickBooks SDK通过C#代码阅读QuickBooks Desktop的所有费用。一旦我有了我需要将它们复制到Salesforce的费用,当新的费用到达时,那些也需要转移到Salesforce。

所以我能够连接到应用程序并获得一系列费用。这是代码。

//Connect to QuickBooks and begin a session
sessionManager.OpenConnection("", "test");
connectionOpen = true;
sessionManager.BeginSession(@"C:\TEST.qbw", ENOpenMode.omDontCare);
sessionBegun = true;

ICreditCardChargeQuery creditQuery = requestMsgSet.AppendCreditCardChargeQueryRq();
creditQuery.IncludeLineItems.SetValue(true);
IMsgSetResponse msgSetRs = sessionManager.DoRequests(requestMsgSet);
IResponse response = msgSetRs.ResponseList.GetAt(0);
ICreditCardChargeRetList checkRetList = (ICreditCardChargeRetList)response.Detail;

我有两个问题。

  1. 我是否必须单独阅读CreditCard和Check,或者有办法从一个地方获得所有费用?

  2. 有没有办法只获取最新数据?说我今天得到了所有的费用。明天还会有两个人加入。有没有办法只获得添加的两个?我可以通过支出日期来做到这一点,但我问是否有系统方法来处理这个问题。也许将其标记为收到并且只读取收到的或者是否有办法说明在日期范围内支付费用而不是我做的方式。

1 个答案:

答案 0 :(得分:0)

  

我是否必须单独阅读CreditCard和Check,或者有办法从一个地方获得所有费用?

QuickBooks确实支持TransactionQuery请求类型,您可以使用该类型在单个请求中获取此数据,它只返回摘要详细信息 - 它不返回详细信息,例如个别订单项等。

如果你想要任何有意义的细节,你可能必须单独与他们联系。

您可以参考OSR作为参考:

  

有没有办法只获取最新数据?

您可以使用ModifiedDateRangeFilter过滤器执行此操作。 e.g:

//Set field value for FromModifiedDate
CheckQueryRq.ORTxnQuery.TxnFilter.ORDateRangeFilter.ModifiedDateRangeFilter.FromModifiedDate.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);

//Set field value for ToModifiedDate
CheckQueryRq.ORTxnQuery.TxnFilter.ORDateRangeFilter.ModifiedDateRangeFilter.ToModifiedDate.SetValue(DateTime.Parse("12/15/2007 12:15:12"),false);

您可以参考QuickBooks OSR获取完整的详细信息。