php - 如何在 Xero 中更新发票行项目?
问题描述
我正在尝试将 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);
解决方案
我找到了解决方案(整改)。只是想分享一下,以防其他人将来正在寻找或陷入类似的情况。
我正在添加->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();
获取旧的订单项。
推荐阅读
- javascript - 使用 JavaScript 替换点会删除所有内容
- ruby-on-rails - Rails 机械化两部分形式
- mysql - Dockerfile 上的错误指令 COPY
- wordpress - Envato 主题检查插件显示有关 add_meta_box 的警告
- oracle - 在 Oracle 中将所有内容从一个模式复制到另一个模式,但只复制前 n 行
- python - 烧瓶因撇号而失败
- c# - Task was canceled c#
- javascript - 计算每种类型事件的相关性
- c# - How to make a Remove "X" Button on every TextBox line?
- python - Stereo Webcam Depth Detection