From 0d198193dbba33d7e966263e9a340e20e6e85f7e Mon Sep 17 00:00:00 2001 From: James Cole Date: Sun, 25 Sep 2016 08:36:35 +0200 Subject: [PATCH] Some issues fixed for scrutiniser. --- app/Http/Controllers/CategoryController.php | 2 +- .../Controllers/Chart/CategoryController.php | 2 +- .../Category/CategoryRepository.php | 30 +++++-------------- .../Category/CategoryRepositoryInterface.php | 3 +- 4 files changed, 10 insertions(+), 27 deletions(-) diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php index 29e927f6e8..dbcac2308d 100644 --- a/app/Http/Controllers/CategoryController.php +++ b/app/Http/Controllers/CategoryController.php @@ -183,7 +183,7 @@ class CategoryController extends Controller $journals->setPath('categories/show/' . $category->id); // oldest transaction in category: - $start = $repository->firstUseDate($category, new Collection); + $start = $repository->firstUseDate($category); if ($start->year == 1900) { $start = new Carbon; } diff --git a/app/Http/Controllers/Chart/CategoryController.php b/app/Http/Controllers/Chart/CategoryController.php index 2cccc3a026..cd195ce859 100644 --- a/app/Http/Controllers/Chart/CategoryController.php +++ b/app/Http/Controllers/Chart/CategoryController.php @@ -58,7 +58,7 @@ class CategoryController extends Controller */ public function all(CRI $repository, AccountCrudInterface $crud, Category $category) { - $start = $repository->firstUseDate($category, new Collection); + $start = $repository->firstUseDate($category); $range = Preferences::get('viewRange', '1M')->data; $start = Navigation::startOfPeriod($start, $range); $categoryCollection = new Collection([$category]); diff --git a/app/Repositories/Category/CategoryRepository.php b/app/Repositories/Category/CategoryRepository.php index b43fdbd7d7..8f4bce7e42 100644 --- a/app/Repositories/Category/CategoryRepository.php +++ b/app/Repositories/Category/CategoryRepository.php @@ -121,26 +121,17 @@ class CategoryRepository implements CategoryRepositoryInterface } /** - * @param Category $category - * @param Collection $accounts + * @param Category $category * * @return Carbon */ - public function firstUseDate(Category $category, Collection $accounts): Carbon + public function firstUseDate(Category $category): Carbon { $first = null; + /** @var TransactionJournal $first */ - $firstJournalQuery = $category->transactionJournals()->orderBy('date', 'ASC'); - - if ($accounts->count() > 0) { - // filter journals: - $ids = $accounts->pluck('id')->toArray(); - $firstJournalQuery->leftJoin('transactions as t', 't.transaction_journal_id', '=', 'transaction_journals.id'); - $firstJournalQuery->whereIn('t.account_id', $ids); - } - - $firstJournal = $firstJournalQuery->first(['transaction_journals.date']); + $firstJournal = $category->transactionJournals()->orderBy('date', 'ASC')->first(['transaction_journals.date']); if ($firstJournal) { $first = $firstJournal->date; @@ -148,16 +139,9 @@ class CategoryRepository implements CategoryRepositoryInterface // check transactions: - $firstTransactionQuery = $category->transactions() - ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') - ->orderBy('transaction_journals.date', 'ASC'); - if ($accounts->count() > 0) { - // filter journals: - $ids = $accounts->pluck('id')->toArray(); - $firstTransactionQuery->whereIn('transactions.account_id', $ids); - } - - $firstTransaction = $firstTransactionQuery->first(['transaction_journals.date']); + $firstTransaction = $category->transactions() + ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') + ->orderBy('transaction_journals.date', 'ASC')->first(['transaction_journals.date']); if (!is_null($firstTransaction) && ((!is_null($first) && $firstTransaction->date < $first) || is_null($first))) { $first = new Carbon($firstTransaction->date); diff --git a/app/Repositories/Category/CategoryRepositoryInterface.php b/app/Repositories/Category/CategoryRepositoryInterface.php index cb6d757e32..d6ad9e3407 100644 --- a/app/Repositories/Category/CategoryRepositoryInterface.php +++ b/app/Repositories/Category/CategoryRepositoryInterface.php @@ -70,11 +70,10 @@ interface CategoryRepositoryInterface /** * @param Category $category - * @param Collection $accounts * * @return Carbon */ - public function firstUseDate(Category $category, Collection $accounts): Carbon; + public function firstUseDate(Category $category): Carbon; /** * Returns a list of all the categories belonging to a user.