From 934656c95489054705454ec069b7c7f868ef7174 Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 11 May 2016 07:57:16 +0200 Subject: [PATCH] Some small changes. --- app/Models/TransactionJournal.php | 10 +++++++++- app/Repositories/Account/AccountRepository.php | 9 +++++---- app/Repositories/Bill/BillRepository.php | 4 +--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/app/Models/TransactionJournal.php b/app/Models/TransactionJournal.php index 6a16338f95..131b558f2d 100644 --- a/app/Models/TransactionJournal.php +++ b/app/Models/TransactionJournal.php @@ -319,6 +319,14 @@ class TransactionJournal extends TransactionJournalSupport return $query->where('transaction_journals.date', '<=', $date->format('Y-m-d 00:00:00')); } + public function scopeSortCorrectly(EloquentBuilder $query) + { + $query->orderBy('transaction_journals.date', 'DESC'); + $query->orderBy('transaction_journals.order', 'ASC'); + $query->orderBy('transaction_journals.id', 'DESC'); + + } + /** * @param EloquentBuilder $query */ @@ -339,7 +347,7 @@ class TransactionJournal extends TransactionJournalSupport } ); $query->groupBy('transaction_journals.id'); - $query->with(['categories', 'budgets', 'attachments', 'bill','transactions']); + $query->with(['categories', 'budgets', 'attachments', 'bill', 'transactions']); } /** diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 897d98ed41..34235f7177 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -236,8 +236,10 @@ class AccountRepository implements AccountRepositoryInterface $query = $this->user ->transactionjournals() ->expanded() + ->sortCorrectly() ->before($end) - ->after($start); + ->after($start) + ->take(10); // expand query: $query->leftJoin( @@ -450,7 +452,7 @@ class AccountRepository implements AccountRepositoryInterface $journal = TransactionJournal:: leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id') ->where('transactions.account_id', $account->id) - ->orderBy('transaction_journals.date', 'ASC') + ->sortCorrectly() ->first(['transaction_journals.*']); if (is_null($journal)) { $date = new Carbon; @@ -495,11 +497,10 @@ class AccountRepository implements AccountRepositoryInterface public function openingBalanceTransaction(Account $account): TransactionJournal { $journal = TransactionJournal - ::orderBy('transaction_journals.date', 'ASC') + ::sortCorrectly() ->leftJoin('transactions', 'transactions.transaction_journal_id', '=', 'transaction_journals.id') ->where('transactions.account_id', $account->id) ->transactionTypes([TransactionType::OPENING_BALANCE]) - ->orderBy('created_at', 'ASC') ->first(['transaction_journals.*']); if (is_null($journal)) { return new TransactionJournal; diff --git a/app/Repositories/Bill/BillRepository.php b/app/Repositories/Bill/BillRepository.php index bf02a92306..be4dd3c63d 100644 --- a/app/Repositories/Bill/BillRepository.php +++ b/app/Repositories/Bill/BillRepository.php @@ -315,9 +315,7 @@ class BillRepository implements BillRepositoryInterface $offset = ($page - 1) * $pageSize; $query = $bill->transactionjournals() ->expanded() - ->orderBy('transaction_journals.date', 'DESC') - ->orderBy('transaction_journals.order', 'ASC') - ->orderBy('transaction_journals.id', 'DESC'); + ->sortCorrectly(); $count = $query->count(); $set = $query->take($pageSize)->offset($offset)->get(TransactionJournal::queryFields()); $paginator = new LengthAwarePaginator($set, $count, $pageSize, $page);