App\services\BankAccountService::loadBankAccounts PHP 메소드

loadBankAccounts() 공개 메소드

public loadBankAccounts ( $bankId, $username, $password, boolean $includeTransactions = true ) : array | boolean
$bankId
$username
$password
$includeTransactions boolean
리턴 array | boolean
    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;
        }
    }