diff --git a/app/Handlers/Events/StoredGroupEventHandler.php b/app/Handlers/Events/StoredGroupEventHandler.php index 3824d6f499..f89100129e 100644 --- a/app/Handlers/Events/StoredGroupEventHandler.php +++ b/app/Handlers/Events/StoredGroupEventHandler.php @@ -28,6 +28,7 @@ use FireflyIII\Generator\Webhook\MessageGeneratorInterface; use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\Webhook; use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; +use FireflyIII\Services\Internal\Support\CreditRecalculateService; use FireflyIII\TransactionRules\Engine\RuleEngineInterface; use Illuminate\Support\Collection; use Log; @@ -101,4 +102,16 @@ class StoredGroupEventHandler event(new RequestedSendWebhookMessages); } + /** + * @param StoredTransactionGroup $event + */ + public function recalculateCredit(StoredTransactionGroup $event): void + { + $group = $event->transactionGroup; + /** @var CreditRecalculateService $object */ + $object = app(CreditRecalculateService::class); + $object->setGroup($group); + $object->recalculate(); + } + } diff --git a/app/Handlers/Events/UpdatedGroupEventHandler.php b/app/Handlers/Events/UpdatedGroupEventHandler.php index 5cd7cf4619..3a6bc19466 100644 --- a/app/Handlers/Events/UpdatedGroupEventHandler.php +++ b/app/Handlers/Events/UpdatedGroupEventHandler.php @@ -31,6 +31,7 @@ use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionType; use FireflyIII\Models\Webhook; use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; +use FireflyIII\Services\Internal\Support\CreditRecalculateService; use FireflyIII\TransactionRules\Engine\RuleEngineInterface; use Illuminate\Support\Collection; use Log; @@ -94,6 +95,18 @@ class UpdatedGroupEventHandler event(new RequestedSendWebhookMessages); } + /** + * @param UpdatedTransactionGroup $event + */ + public function recalculateCredit(UpdatedTransactionGroup $event): void + { + $group = $event->transactionGroup; + /** @var CreditRecalculateService $object */ + $object = app(CreditRecalculateService::class); + $object->setGroup($group); + $object->recalculate(); + } + /** * This method will make sure all source / destination accounts are the same. *