public function loadBankAccounts($bankId, $username, $password, $includeTransactions = true)
{
if (!$bankId || !$username || !$password) {
return false;
}
$expenses = $this->getExpenses();
$vendorMap = $this->createVendorMap();
$bankAccounts = BankSubaccount::scope()->whereHas('bank_account', function ($query) use($bankId) {
$query->where('bank_id', '=', $bankId);
})->get();
$bank = Utils::getFromCache($bankId, 'banks');
$data = [];
// load OFX trnansactions
try {
$finance = new Finance();
$finance->banks[$bankId] = $bank->getOFXBank($finance);
$finance->banks[$bankId]->logins[] = new Login($finance->banks[$bankId], $username, $password);
foreach ($finance->banks as $bank) {
foreach ($bank->logins as $login) {
$login->setup();
foreach ($login->accounts as $account) {
$account->setup($includeTransactions);
if ($account = $this->parseBankAccount($account, $bankAccounts, $expenses, $includeTransactions, $vendorMap)) {
$data[] = $account;
}
}
}
}
return $data;
} catch (\Exception $e) {
return false;
}
}