如何在Xero中更新发票行项目?

时间:2020-06-24 00:53:59

标签: php laravel api xero-api

我正在尝试将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);

1 个答案:

答案 0 :(得分:0)

我找到了解决方法(纠正)。只是想分享一下,以防将来有人在寻找或遇到类似的情况。

我要添加Name:abc Id:2456789 Date: 28-02-1991 ,这将在我的发票中添加一个额外的订单项,该代码在以下代码中具有相同的LineItemId:

->addLineItem($lineitem);

要修改订单项,请提取旧订单项并添加/更新其中的值。
就我而言,我做了类似的事情:$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); 以获取旧的订单项。

相关问题