mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-16 09:22:33 +00:00
MySQL 5.7 compatible query fixing. [skip ci]
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user