2017-07-24 28 views
0

使用calcinai Xero的-PHP庫從https://github.com/calcinai/xero-phpCalcinai Xero的,PHP和工資AU超級終端

我有一個入職的形式,我在那裏做一個新員工把他們所有的細節,它的標誌,並提交它。在提交時,它將所有的細節發送給Xero。

我可以通過正確的方式發送所有的個人和銀行賬戶詳細信息,但我沒有計算出如何添加員工的超級賬戶。

從我所知道的,我需要讓SuperFundID能夠創建員工的SuperFundMembership。所以,我一直在嘗試使用$xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')

嘗試:$xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')->where("ABN", [an ABN])->execute():因爲很明顯根據Xero的控制檯/歷史無效「ABN屬性不支持或在哪裏訂單條款」,即使在https://developer.xero.com/documentation/payroll-api/superfunds的文件說我$xero->load('\\XeroPHP\\Models\\PayrollAU\\SuperFund')->setParameter("ABN", "65714394898")->execute();其中發送請求[url]superfunds?ABN=65714394898並返回與全部存儲在我的Xero的作爲[storage:ArrayObject:private] => Array (a private array of SuperFund objects)的超級基金Collection對象:可以

試圖「由任何元件過濾器」。鑑於我的新手PHP技能,我不知道如何獲得我之後的超級基金或如何訪問該數組。另外,當我只有一個超級基金時,獲得所有超級基金似乎並不是很有效率。在沒有setParameter子句的情況下執行load ... execute動作會返回相同的所有數組。

關於準備放棄,但我知道有一些愚蠢的明顯我沒有做。

回答

0

由於某種原因,您必須加載所有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。