请描述如何使用Quickbooks PHP SDK查询包含特定服务日期的订单项的quickbooks发票

时间:2018-06-11 02:37:25

标签: php quickbooks quickbooks-online

我需要使用PHP从quickbooks发票上的销售明细行项目中检索所有服务日期。

我可以检索发票,行,但不是服务日期......

有人能指出我正确的方向吗?

$sql = "SELECT * FROM Invoice WHERE DocNumber ='".$docNumber."'";
$invoices = $InvoiceService->query($Context, $realm, $sql);
$Line = $invoices[0]->getLine(0);
$Detail = $Line->getSalesItemLineDetail();

and $Detail, when using  var_dump($Detail->getServiceDate()); 

returns null.

but a var_dump shows $Detail to be:

bject(QuickBooks_IPP_Object_SalesItemLineDetail)#90 (1) {
  ["_data":protected]=>
  array(6) {
    ["ItemRef"]=>
    array(1) {
      [0]=>
      string(5) "{-35}"
    }
    ["ItemRef_name"]=>
    array(1) {
      [0]=>
      string(5) "00008"
    }
    ["UnitPrice"]=>
    array(1) {
      [0]=>
      string(4) "2.86"
    }
    ["Qty"]=>
    array(1) {
      [0]=>
      string(1) "1"
    }
    ["TaxCodeRef"]=>
    array(1) {
      [0]=>
      string(4) "{-6}"
    }
    ["ServiceDate"]=>
    array(1) {
      [0]=>
      string(10) "2018-06-01"
    }
  }

}

1 个答案:

答案 0 :(得分:0)

您必须确保$ Line-> getDetailType()==' SalesItemLineDetail',然后 使用SalesItemLineDetail的get方法将返回一个包含getServiceDate()方法的对象,该对象将返回正确的值。

if ($Line->getDetailType() == 'SalesItemLineDetail') {
  $Detail = $Line->getSalesItemLineDetail();
  echo $Detail->getServiceDate();
}