From 171bc03668a27e419afd55931a271d4e98eb85f8 Mon Sep 17 00:00:00 2001 From: James Cole Date: Thu, 5 Feb 2026 06:10:25 +0100 Subject: [PATCH] Fix running balance events. --- .../V1/Controllers/Models/Transaction/UpdateController.php | 3 ++- app/Api/V1/Requests/AggregateFormRequest.php | 2 +- .../Model/TransactionGroup/TransactionGroupEventObjects.php | 6 ++++++ .../TransactionGroup/ProcessesUpdatedTransactionGroup.php | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/Api/V1/Controllers/Models/Transaction/UpdateController.php b/app/Api/V1/Controllers/Models/Transaction/UpdateController.php index 2b3f1fc41c..2f43066cb5 100644 --- a/app/Api/V1/Controllers/Models/Transaction/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Transaction/UpdateController.php @@ -76,7 +76,9 @@ class UpdateController extends Controller Log::debug('Now in update routine for transaction group'); $data = $request->getAll(); $oldHash = $this->groupRepository->getCompareHash($transactionGroup); + $objects = TransactionGroupEventObjects::collectFromTransactionGroup($transactionGroup); $transactionGroup = $this->groupRepository->update($transactionGroup, $data); + $objects->appendFromTransactionGroup($transactionGroup); $newHash = $this->groupRepository->getCompareHash($transactionGroup); $manager = $this->getManager(); @@ -89,7 +91,6 @@ class UpdateController extends Controller $flags->applyRules = $applyRules; $flags->fireWebhooks = $fireWebhooks; $flags->recalculateCredit = $runRecalculations; - $objects = TransactionGroupEventObjects::collectFromTransactionGroup($transactionGroup); event(new UpdatedSingleTransactionGroup($flags, $objects)); /** @var User $admin */ diff --git a/app/Api/V1/Requests/AggregateFormRequest.php b/app/Api/V1/Requests/AggregateFormRequest.php index 76d12e162f..86f147febb 100644 --- a/app/Api/V1/Requests/AggregateFormRequest.php +++ b/app/Api/V1/Requests/AggregateFormRequest.php @@ -95,7 +95,7 @@ abstract class AggregateFormRequest extends ApiRequest // register all subrequests' validators foreach ($this->requests as $request) { if (method_exists($request, 'withValidator')) { - Log::debug(sprintf('Process withValidator from class %s', $request::class)); + // Log::debug(sprintf('Process withValidator from class %s', $request::class)); $request->withValidator($validator); } } diff --git a/app/Events/Model/TransactionGroup/TransactionGroupEventObjects.php b/app/Events/Model/TransactionGroup/TransactionGroupEventObjects.php index 73fb21aba5..51ea18da68 100644 --- a/app/Events/Model/TransactionGroup/TransactionGroupEventObjects.php +++ b/app/Events/Model/TransactionGroup/TransactionGroupEventObjects.php @@ -62,5 +62,11 @@ class TransactionGroupEventObjects $this->accounts->push($transaction->account); } } + $this->transactionGroups = $this->transactionGroups->unique('id'); + $this->transactionJournals = $this->transactionJournals->unique('id'); + $this->budgets = $this->budgets->unique('id'); + $this->categories = $this->categories->unique('id'); + $this->tags = $this->tags->unique('id'); + $this->accounts = $this->accounts->unique('id'); } } diff --git a/app/Listeners/Model/TransactionGroup/ProcessesUpdatedTransactionGroup.php b/app/Listeners/Model/TransactionGroup/ProcessesUpdatedTransactionGroup.php index 9aab835a83..aeaa7eda21 100644 --- a/app/Listeners/Model/TransactionGroup/ProcessesUpdatedTransactionGroup.php +++ b/app/Listeners/Model/TransactionGroup/ProcessesUpdatedTransactionGroup.php @@ -39,7 +39,7 @@ class ProcessesUpdatedTransactionGroup public function handle(UpdatedSingleTransactionGroup $event): void { - Log::debug(sprintf('User called %s', get_class($event))); + Log::debug(sprintf('Now handling event %s', get_class($event))); $this->unifyAccounts($event); Log::debug(sprintf('Transaction journal count is %d', $event->objects->transactionJournals->count()));