Calcinai Xero-PHP и конечная точка платежного ведомости AU SuperFund
Использование библиотеки Xero-PHP calcinai по https://github.com/calcinai/xero-php
У меня есть бланк, который я заполняю, где новый сотрудник вводит все свои данные, подписывает их и отправляет. После отправки он отправляет все свои данные в Xero.
Я могу получить все личные и банковские реквизиты, отправленные должным образом, но мне не повезло, когда я понимаю, как добавить супер сотрудника.
Из того, что я могу сказать, мне нужно получить SuperFundID, чтобы иметь возможность создавать SuperFundMembership сотрудника. Итак, я пытался использовать $xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')
Пытался: $xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')->where("ABN", [an ABN])->execute()
: Не работает, потому что в соответствии с консолью / историей Xero "свойство ABN для предложения Where или Order не поддерживается", хотя в документации по адресу https://developer.xero.com/documentation/payroll-api/superfunds говорится, что я может "Фильтровать по любому элементу"
Пытался: $xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')->setParameter("ABN", "65714394898")->execute();
которые отправляют запрос [url]superfunds?ABN=65714394898
и возвращает объект Collection со ВСЕМИ SuperFunds, хранящимися в моем Xero, как [storage:ArrayObject:private] => Array (a private array of SuperFund objects)
, Учитывая мои начинающие навыки PHP, я не знаю, как получить супер фонд, который мне нужен, или как получить доступ к этому массиву. Кроме того, мне кажется не очень эффективным, чтобы получить ВСЕ супер средства, когда я только после одного. Выполнение действия load...execute без предложения setParameter возвращает один и тот же массив всего.
О готовности сдаться, но я знаю, что есть что-то глупо очевидное, что я не делаю.
1 ответ
Вы по какой-то причине должны загрузить список ВСЕХ 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;
}
Если если не существует, вы можете попробовать создать его, а затем получить его идентификатор.