使用https://github.com/calcinai/xero-php
中的calcinai Xero-PHP库我有一个入职表格,我正在制作一个新员工将所有细节放入,签名并提交的地方。提交后,它会将所有详细信息发送给Xero。
我可以正确地收到所有个人和银行帐户的详细信息,但我没有找到如何添加员工的超级优惠。
据我所知,我需要让SuperFundID能够创建员工的SuperFundMembership。所以我一直在尝试使用$xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')
尝试:$xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')->where("ABN", [an ABN])->execute()
:不起作用,因为显然根据Xero控制台/历史记录“Where或Order子句不支持ABN属性”,即使https://developer.xero.com/documentation/payroll-api/superfunds处的文档说我可以“过滤任何元素“
尝试:$xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')->setParameter("ABN", "65714394898")->execute();
发送请求[url]superfunds?ABN=65714394898
并返回一个Collection对象,其中包含存储在我的Xero中的所有SuperFunds为[storage:ArrayObject:private] => Array (a private array of SuperFund objects)
。鉴于我的新手PHP技能,我不知道如何获得我追求的超级基金或如何访问该阵列。而且,当我只在一个人之后获得所有超级基金时,我似乎没有效率。在没有setParameter子句的情况下执行load ... execute操作会返回所有内容的相同数组。
关于准备放弃,但我知道有一些愚蠢的事我不做。
答案 0 :(得分:0)
由于某种原因,您必须加载所有SuperFunds的列表,并循环浏览它们以找到合适的SuperFunds。
// Given a USI, try to find and return Xero's ID of the SuperFund
function findIDByUSI(&$xero, $usi)
{
$funds[] = $xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')->execute();
foreach($funds[0] as $fund)
{
if($fund->getUSI() == $usi)
return $fund->getSuperFundID();
}
return null;
}
如果不存在,您可以尝试创建它,然后获取其ID。