【问题标题】:How to update an invoice Line Item in Xero?如何在 Xero 中更新发票行项目?
【发布时间】:2020-06-24 00:53:59
【问题描述】:

我正在尝试将 xero 集成到我的应用程序中,但在更新发票行项目时遇到了问题。我需要更新订单项的折扣,但是当我这样做时,我收到一条错误消息,提示“您不能有多个具有相同 LineItemID 的订单项”。

以下是我的代码:

$invoice = $xero->loadByGUID(\XeroPHP\Models\Accounting\Invoice::class,'b9e11c71-9983-44e5-b39c-4bbedda054eb');
$contact = new \XeroPHP\Models\Accounting\Contact;
$contact->setContactId('60dbd74c-4625-4df3-8786-e641346b2070');

$lineitem = new \XeroPHP\Models\Accounting\Invoice\LineItem;
$lineitem
->setDescription('ads')
->setDiscountRate('10')
->setLineItemID('d837c383-5892-4b49-afe9-13b8257c98e3');

$invoice->setDueDate(new DateTime(date('Y-m-d')))
->setDate(new DateTime(date('Y-m-d')))
->setReference('some reference')
->setContact($contact)
->addLineItem($lineitem);
$xero->save($invoice);

【问题讨论】:

    标签: php laravel api xero-api


    【解决方案1】:

    我找到了解决方案(纠正)。只是想分享一下,以防其他人在未来寻找或陷入类似的情况。

    我添加了->addLineItem($lineitem);,它在我的发票中添加了一个额外的行项目,在下面的代码中具有相同的 LineItemId:

    $invoice->setDueDate(new DateTime(date('Y-m-d')))
    ->setDate(new DateTime(date('Y-m-d')))
    ->setReference('some reference')
    ->setContact($contact)
    ->addLineItem($lineitem);
    $xero->save($invoice);
    

    要修改订单项,请获取旧订单项并添加/更新其中的值。
    就我而言,我做了这样的事情:$invoice->getLineitems(); 来获取旧订单项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-18
      • 2023-03-12
      • 1970-01-01
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多