php 如何使用xero API设置跟踪类别选项?

gdx19jrr  于 2023-05-16  发布在  PHP
关注(0)|答案(2)|浏览(137)

如何使用Laravel 5 wrapper for Xero's PHP API设置分区(跟踪类别选项)?
根据Xero API,发送的对象应该看起来像这样:

<Tracking>
    <TrackingCategory>
      <Name>Activity/Workstream</Name>
      <Option>Onsite consultancy</Option>
    </TrackingCategory>
</Tracking>

我尝试了下面的代码,但它不工作。

$line[$i]->setTrackingCategory('Divisions');
$line[$i]->setTrackingOption('Cruises');

我得到一个错误:

Call to undefined method XeroPHP/Models/Accounting/Invoice/LineItem::setTrackingCategory()

我的部门已经在Xero中设置好了,如下所示。

a8jjtwal

a8jjtwal1#

正在使用的底层SDK是这样的:https://github.com/calcinai/xero-php
查看该SDK的源代码,看起来这是您应该使用的方法,用于将跟踪详细信息放在发票行项目上:https://github.com/calcinai/xero-php/blob/master/src/XeroPHP/Models/Accounting/Invoice/LineItem.php#L356:#L364
干杯,马特

w8f9ii69

w8f9ii692#

我也遇到了类似的问题,这与数据的格式有关。
以下是我的解决方案:

$trackingCategory = new \XeroPHP\Models\Accounting\TrackingCategory();
            $trackingCategory->setTrackingCategoryID('9d8ad8f6-0d0f-41e0-8851-ef47e8b54ae6');
            $trackingCategory->setName('Income');
            $trackingCategory->setTrackingOptionID('dba3d4da-f9ed-4eee-8e0b-452d11fdb1fa');
            $trackingCategory->setOption('Main');

            $lineItem->addTracking($trackingCategory);

我们首先为跟踪类别创建一个空模型,设置主类别id和名称。设置后,我们需要跟踪选项ID和名称,但选项的名称应该与setoption()一起使用
完成后,使用addTracking()添加到它引用的行项目

相关问题