在這裏找到了答案:
How to access Quickbooks Invoice Line Items using php api
我的解決辦法是這樣的,使用Laravel:
public function qbUpdateInvoice(Invoice $invoice)
{
if ($invoice->qb_ref == null) {
throw new \Exception('Invoice Quickbooks ref not available.');
}
$qbInvoice = $this->findInvoiceByRef($invoice);
$count = $qbInvoice->countLine();
for ($i = 0; $i < $count; $i++) {
$qbInvoice->unsetLine($i);
}
$qbInvoice = $this->setInvoiceDetails($invoice, $qbInvoice);
$qbInvoice = $this->setInvoiceLines($invoice, $qbInvoice);
$response = $this->qbInvoiceService->update($this->context, $this->realm, $qbInvoice->getId(), $qbInvoice);
if (!$response) {
throw new \Exception($this->qbInvoiceService->lastError());
}
return $response;
}
我要嘗試實現這個使用Consolibyte與Laravel爲好,做這個解決方案適合你嗎? unsetLine和findInvoiceByRef函數是您編寫的Consolibyte工具包或函數的一部分嗎? –
說實話,我不會推薦Consolibyte工具箱,因爲它有錯誤,你必須破解工具包才能正常工作。它也使用不推薦使用的函數,如果升級到PHP7,它將停止工作。您也無法直接使用Laravel DB連接。您必須創建單獨的數據庫連接,因爲它只接受DSN,並且不支持PDO。我最終選擇了Quickbooks的官方工具包,這也不完美。設置起來有點困難,但更加靈活。 – Steven1978