如何使用'consolibyte / quickbooks-php'从发票中删除行

时间:2016-03-03 16:19:08

标签: php quickbooks quickbooks-online

有没有办法使用Consolibyte quickbooks工具包从发票中删除行?

我可以使用行发送发票,但我还想更新发票,我认为最好的方法是删除每一行,然后发送当前行。即:要更新发票,我首先使用本地存储的refbooks从quickbooks获取发票,删除行,然后更新发票对象上的字段,然后添加新行,然后使用更新方法发送发票。 / p>

我见过这个例子:

https://github.com/consolibyte/quickbooks-php/blob/master/docs/partner_platform/example_app_ipp_v3/example_invoice_update.php

但我不确定如何更新单个行,因为我没有引用它们存储在本地,因此尝试删除它们然后重新创建。

1 个答案:

答案 0 :(得分:2)

在这里找到答案:

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;
}