以下代码用于检索已付款发票和部分付款发票:
List<Invoice> paidInvoices = invoiceQueryService.ExecuteIdsQuery("SELECT * FROM Invoice WHERE Balance < TotalAmt AND DocNumber IN ('1123', '1124') MAXRESULTS 1000").ToList();
该行抛出以下异常:
'BadRequest. Details: QueryParserError: Encountered " "<" "< "" at line 1, column 69.
Was expecting one of:
<EOF>
"." ...
<AND> ...
"between" ...
"contains" ...
"=" ...
"in" ...
"iterator" ...
"like" ...
"maxresults" ...
"!=" ...
<NOT> ...
<OR> ...
"order" ...
"orderby" ...
"startposition" ...
"=" ...
"!=" ...
"=" ...
"!=" ...
"=" ...
"!=" ...
"." ...
, '
有什么方法可以检索此发票,而无需将所有发票都记入内存然后过滤它们?
我想在 QuickBooks API 上进行过滤。
API 不允许您使用其他字段作为值参数。 value 参数必须是文字,即
'true', 'false', '0.0'
。
因此,如果您想获得所有已付款发票,您应该使用:
List<Invoice> paidInvoices = invoiceQueryService.ExecuteIdsQuery("SELECT * FROM Invoice WHERE Balance = '0.0' AND DocNumber IN ('1123', '1124') MAXRESULTS 1000").ToList();
尝试使用 API 浏览器:https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/invoice
您可以在此处运行查询以查看语法是否正确。
以下是有关如何构建查询的更多信息: https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api/data-queries