MySQL 5.7 compatible query fixing. [skip ci]

This commit is contained in:
James Cole
2016-09-16 11:16:31 +02:00
parent 7c52f297ee
commit a07799cfa4

View File

@@ -84,9 +84,7 @@ class JournalRepository implements JournalRepositoryInterface
->where('transactions.id', '!=', $transaction->id) ->where('transactions.id', '!=', $transaction->id)
->whereNull('transactions.deleted_at') ->whereNull('transactions.deleted_at')
->whereNull('transaction_journals.deleted_at') ->whereNull('transaction_journals.deleted_at')
->orderBy('transaction_journals.date', 'DESC') ->groupBy('transaction_journals.id');
->orderBy('transaction_journals.order', 'ASC')
->orderBy('transaction_journals.id', 'DESC');
$sum = $query->sum('transactions.amount'); $sum = $query->sum('transactions.amount');
return strval($sum); return strval($sum);
@@ -227,22 +225,23 @@ class JournalRepository implements JournalRepositoryInterface
public function getTransactions(TransactionJournal $journal): Collection public function getTransactions(TransactionJournal $journal): Collection
{ {
$transactions = new Collection; $transactions = new Collection;
$fields = ['transactions.id', 'transactions.created_at', 'transactions.updated_at', 'transactions.deleted_at', 'transactions.account_id',
'transactions.transaction_journal_id', 'transactions.description', 'transactions.amount',
DB::raw('SUM(`transactions`.`amount`) as `sum`')];
$groupBy = ['transactions.id', 'transactions.created_at', 'transactions.updated_at', 'transactions.deleted_at', 'transactions.account_id',
'transactions.transaction_journal_id', 'transactions.description', 'transactions.amount'];
switch ($journal->transactionType->type) { switch ($journal->transactionType->type) {
case TransactionType::DEPOSIT: case TransactionType::DEPOSIT:
/** @var Collection $transactions */ /** @var Collection $transactions */
$transactions = $journal->transactions() $transactions = $journal->transactions()
->groupBy('transactions.account_id') ->groupBy('transactions.account_id')
->where('amount', '<', 0) ->where('amount', '<', 0)
->groupBy('transactions.id') ->groupBy($groupBy)
->orderBy('amount', 'ASC')->get( ->orderBy('amount', 'ASC')->get($fields);
['transactions.*', DB::raw('SUM(`transactions`.`amount`) as `sum`')]
);
$final = $journal->transactions() $final = $journal->transactions()
->groupBy('transactions.account_id') ->groupBy($groupBy)
->where('amount', '>', 0) ->where('amount', '>', 0)
->orderBy('amount', 'ASC')->first( ->orderBy('amount', 'ASC')->first($fields);
['transactions.*', DB::raw('SUM(`transactions`.`amount`) as `sum`')]
);
$transactions->push($final); $transactions->push($final);
break; break;
case TransactionType::TRANSFER: case TransactionType::TRANSFER:
@@ -250,25 +249,19 @@ class JournalRepository implements JournalRepositoryInterface
/** @var Collection $transactions */ /** @var Collection $transactions */
$transactions = $journal->transactions() $transactions = $journal->transactions()
->groupBy('transactions.id') ->groupBy('transactions.id')
->orderBy('transactions.id')->get( ->orderBy('transactions.id')->get($fields);
['transactions.*', DB::raw('SUM(`transactions`.`amount`) as `sum`')]
);
break; break;
case TransactionType::WITHDRAWAL: case TransactionType::WITHDRAWAL:
/** @var Collection $transactions */ /** @var Collection $transactions */
$transactions = $journal->transactions() $transactions = $journal->transactions()
->where('amount', '>', 0) ->where('amount', '>', 0)
->groupBy('transactions.id') ->groupBy($groupBy)
->orderBy('amount', 'ASC')->get( ->orderBy('amount', 'ASC')->get($fields);
['transactions.*', DB::raw('SUM(`transactions`.`amount`) as `sum`')]
);
$final = $journal->transactions() $final = $journal->transactions()
->where('amount', '<', 0) ->where('amount', '<', 0)
->groupBy('transactions.account_id') ->groupBy($groupBy)
->orderBy('amount', 'ASC')->first( ->orderBy('amount', 'ASC')->first($fields);
['transactions.*', DB::raw('SUM(`transactions`.`amount`) as `sum`')]
);
$transactions->push($final); $transactions->push($final);
break; break;
} }