$value]); if (strlen($value) === 0) { $this->setCertainty(0); return new Account; } /** @var AccountCrudInterface $repository */ $repository = app(AccountCrudInterface::class, [$this->user]); if (isset($this->mapping[$value])) { Log::debug('Found account in mapping. Should exist.', ['value' => $value, 'map' => $this->mapping[$value]]); $account = $repository->find(intval($this->mapping[$value])); if (!is_null($account->id)) { $this->setCertainty(100); Log::debug('Found account by ID', ['id' => $account->id]); return $account; } } // not mapped? Still try to find it first: $account = $repository->findByIban($value, [AccountType::ASSET]); if (!is_null($account->id)) { Log::debug('Found account by IBAN', ['id' => $account->id]); $this->setCertainty(50); return $account; } $account = $repository->store( ['name' => 'Asset account with IBAN ' . $value, 'iban' => $value, 'user' => $this->user->id, 'accountType' => 'asset', 'virtualBalance' => 0, 'active' => true, 'openingBalance' => 0] ); if (is_null($account->id)) { $this->setCertainty(0); Log::info('Could not store new asset account by IBAN', $account->getErrors()->toArray()); return new Account; } $this->setCertainty(100); return $account; } }