public function loadBankAccounts($bankId, $username, $password, $includeTransactions = true) { if (!$bankId || !$username || !$password) { return false; } $expenses = Expense::scope()->whereBankId($bankId)->where('transaction_id', '!=', '')->withTrashed()->get(['transaction_id'])->toArray(); $expenses = array_flip(array_map(function ($val) { return $val['transaction_id']; }, $expenses)); $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)) { $data[] = $account; } } } } return $data; } catch (\Exception $e) { return false; } }
/** * @param $bankId * @param $username * @param $password * @param bool $includeTransactions * @return array|bool */ 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; } }