From fc44a52ba51caec8db3eb9058c6ea9e98d946d84 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 25 Sep 2014 07:41:45 +0200 Subject: [PATCH] Fixed a bug that would recreate accounts if they existed had an old account type. --- app/lib/Firefly/Helper/Controllers/Transaction.php | 2 +- .../Storage/Account/EloquentAccountRepository.php | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/lib/Firefly/Helper/Controllers/Transaction.php b/app/lib/Firefly/Helper/Controllers/Transaction.php index ab6e6a0944..c8a328d26b 100644 --- a/app/lib/Firefly/Helper/Controllers/Transaction.php +++ b/app/lib/Firefly/Helper/Controllers/Transaction.php @@ -231,6 +231,7 @@ class Transaction implements TransactionInterface } if (isset($data['expense_account'])) { $to = $this->_accounts->findExpenseAccountByName($data['expense_account']); + } if (isset($data['revenue_account'])) { $from = $this->_accounts->findRevenueAccountByName($data['revenue_account']); @@ -243,7 +244,6 @@ class Transaction implements TransactionInterface $to = $this->_accounts->findAssetAccountById($data['account_to_id']); } - /* * Add a custom error when they are the same. */ diff --git a/app/lib/Firefly/Storage/Account/EloquentAccountRepository.php b/app/lib/Firefly/Storage/Account/EloquentAccountRepository.php index 9c1c86f822..a5f0b4a4a7 100644 --- a/app/lib/Firefly/Storage/Account/EloquentAccountRepository.php +++ b/app/lib/Firefly/Storage/Account/EloquentAccountRepository.php @@ -4,7 +4,6 @@ namespace Firefly\Storage\Account; use Carbon\Carbon; -use Firefly\Exception\FireflyException; use Illuminate\Database\QueryException; use Illuminate\Queue\Jobs\Job; @@ -61,11 +60,14 @@ class EloquentAccountRepository implements AccountRepositoryInterface } // find account: - $type = $this->findAccountType('Expense account'); - $account = $this->_user->accounts()->where('name', $name)->where('account_type_id', $type->id)->first(); + + $account = $this->_user->accounts()->where('name', $name)->accountTypeIn( + ['Expense account', 'Beneficiary account'] + )->first(['accounts.*']); // create if not found: - if (strlen($name) > 0) { + if (strlen($name) > 0 && is_null($account)) { + $type = $this->findAccountType('Expense account'); $set = [ 'name' => $name, 'user_id' => $this->_user->id, @@ -675,6 +677,7 @@ class EloquentAccountRepository implements AccountRepositoryInterface ) ->get(['accounts.*']); } + /** * @return mixed */