diff --git a/app/Crud/Account/AccountCrud.php b/app/Crud/Account/AccountCrud.php index 5f977ccccb..8b02964620 100644 --- a/app/Crud/Account/AccountCrud.php +++ b/app/Crud/Account/AccountCrud.php @@ -51,34 +51,6 @@ class AccountCrud implements AccountCrudInterface $this->user = $user; } - - /** - * @param string $number - * @param array $types - * - * @return Account - */ - public function findByAccountNumber(string $number, array $types): Account - { - $query = $this->user->accounts() - ->leftJoin('account_meta', 'account_meta.account_id', '=', 'accounts.id') - ->where('account_meta.name', 'accountNumber') - ->where('account_meta.data', json_encode($number)); - - if (count($types) > 0) { - $query->leftJoin('account_types', 'accounts.account_type_id', '=', 'account_types.id'); - $query->whereIn('account_types.type', $types); - } - - /** @var Collection $accounts */ - $accounts = $query->get(['accounts.*']); - if ($accounts->count() > 0) { - return $accounts->first(); - } - - return new Account; - } - /** * @param string $iban * @param array $types diff --git a/app/Crud/Account/AccountCrudInterface.php b/app/Crud/Account/AccountCrudInterface.php index 6196da869a..77d7b4ae76 100644 --- a/app/Crud/Account/AccountCrudInterface.php +++ b/app/Crud/Account/AccountCrudInterface.php @@ -25,14 +25,6 @@ use Illuminate\Support\Collection; interface AccountCrudInterface { - /** - * @param string $number - * @param array $types - * - * @return Account - */ - public function findByAccountNumber(string $number, array $types): Account; - /** * @param string $iban * @param array $types diff --git a/app/Import/Converter/AssetAccountNumber.php b/app/Import/Converter/AssetAccountNumber.php index 2c6a670c10..e0f0a40f2e 100644 --- a/app/Import/Converter/AssetAccountNumber.php +++ b/app/Import/Converter/AssetAccountNumber.php @@ -59,7 +59,7 @@ class AssetAccountNumber extends BasicConverter implements ConverterInterface } // not mapped? Still try to find it first: - $account = $crud->findByAccountNumber($value, [AccountType::ASSET]); + $account = $repository->findByAccountNumber($value, [AccountType::ASSET]); if (!is_null($account->id)) { Log::debug('Found account by name', ['id' => $account->id]); $this->setCertainty(50); diff --git a/app/Import/Converter/OpposingAccountNumber.php b/app/Import/Converter/OpposingAccountNumber.php index 1aeb221ebd..751b35fecc 100644 --- a/app/Import/Converter/OpposingAccountNumber.php +++ b/app/Import/Converter/OpposingAccountNumber.php @@ -62,7 +62,7 @@ class OpposingAccountNumber extends BasicConverter implements ConverterInterface } // not mapped? Still try to find it first: - $account = $crud->findByAccountNumber($value, []); + $account = $repository->findByAccountNumber($value, []); if (!is_null($account->id)) { Log::debug('Found account by number', ['id' => $account->id]); $this->setCertainty(50); diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 36cf671ef9..bd0f44f0ce 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -92,6 +92,33 @@ class AccountRepository implements AccountRepositoryInterface return $account; } + /** + * @param string $number + * @param array $types + * + * @return Account + */ + public function findByAccountNumber(string $number, array $types): Account + { + $query = $this->user->accounts() + ->leftJoin('account_meta', 'account_meta.account_id', '=', 'accounts.id') + ->where('account_meta.name', 'accountNumber') + ->where('account_meta.data', json_encode($number)); + + if (count($types) > 0) { + $query->leftJoin('account_types', 'accounts.account_type_id', '=', 'account_types.id'); + $query->whereIn('account_types.type', $types); + } + + /** @var Collection $accounts */ + $accounts = $query->get(['accounts.*']); + if ($accounts->count() > 0) { + return $accounts->first(); + } + + return new Account; + } + /** * Returns the date of the very first transaction in this account. * diff --git a/app/Repositories/Account/AccountRepositoryInterface.php b/app/Repositories/Account/AccountRepositoryInterface.php index 6cc227fc70..f2c1495162 100644 --- a/app/Repositories/Account/AccountRepositoryInterface.php +++ b/app/Repositories/Account/AccountRepositoryInterface.php @@ -50,6 +50,14 @@ interface AccountRepositoryInterface */ public function find(int $accountId): Account; + /** + * @param string $number + * @param array $types + * + * @return Account + */ + public function findByAccountNumber(string $number, array $types): Account; + /** * Returns the date of the very first transaction in this account. *