From 441ada70b8769fcda8348c44d94a739d7b8b89c8 Mon Sep 17 00:00:00 2001 From: James Cole Date: Sat, 28 Sep 2024 08:26:54 +0200 Subject: [PATCH] Fix https://github.com/firefly-iii/firefly-iii/issues/9275 --- app/Support/Models/AccountBalanceCalculator.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/Support/Models/AccountBalanceCalculator.php b/app/Support/Models/AccountBalanceCalculator.php index c23e816fc0..aa264c3bb6 100644 --- a/app/Support/Models/AccountBalanceCalculator.php +++ b/app/Support/Models/AccountBalanceCalculator.php @@ -23,6 +23,7 @@ declare(strict_types=1); namespace FireflyIII\Support\Models; +use Carbon\Carbon; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\AccountBalance; @@ -74,7 +75,7 @@ class AccountBalanceCalculator foreach ($transactionJournal->transactions as $transaction) { $accounts->push($transaction->account); } - $object->optimizedCalculation($accounts); + $object->optimizedCalculation($accounts, $transactionJournal->date); } private function getAccountBalanceByAccount(int $account, int $currency): AccountBalance @@ -98,7 +99,7 @@ class AccountBalanceCalculator return $entry; } - private function optimizedCalculation(Collection $accounts): void + private function optimizedCalculation(Collection $accounts, Carbon $notBefore = null): void { Log::debug('start of optimizedCalculation'); if ($accounts->count() > 0) { @@ -120,6 +121,10 @@ class AccountBalanceCalculator if ($accounts->count() > 0) { $query->whereIn('transactions.account_id', $accounts->pluck('id')->toArray()); } + if(null !== $notBefore) { + $notBefore->startOfDay(); + $query->where('transaction_journals.date', '>=', $notBefore); + } $set = $query->get(['transactions.id', 'transactions.balance_dirty', 'transactions.transaction_currency_id', 'transaction_journals.date', 'transactions.account_id', 'transactions.amount']);