Make sure this order is used. #9780

This commit is contained in:
James Cole
2025-02-06 05:55:46 +01:00
parent d53b1670d3
commit 42209e367f
3 changed files with 34 additions and 22 deletions

View File

@@ -38,10 +38,18 @@ use Illuminate\Support\Collection;
*/ */
class StoredGroupEventHandler class StoredGroupEventHandler
{ {
public function runAllHandlers(StoredTransactionGroup $event): void
{
$this->processRules($event);
$this->recalculateCredit($event);
$this->triggerWebhooks($event);
}
/** /**
* This method grabs all the users rules and processes them. * This method grabs all the users rules and processes them.
*/ */
public function processRules(StoredTransactionGroup $storedGroupEvent): void private function processRules(StoredTransactionGroup $storedGroupEvent): void
{ {
if (false === $storedGroupEvent->applyRules) { if (false === $storedGroupEvent->applyRules) {
app('log')->info(sprintf('Will not run rules on group #%d', $storedGroupEvent->transactionGroup->id)); app('log')->info(sprintf('Will not run rules on group #%d', $storedGroupEvent->transactionGroup->id));
@@ -76,7 +84,7 @@ class StoredGroupEventHandler
$newRuleEngine->fire(); $newRuleEngine->fire();
} }
public function recalculateCredit(StoredTransactionGroup $event): void private function recalculateCredit(StoredTransactionGroup $event): void
{ {
$group = $event->transactionGroup; $group = $event->transactionGroup;
@@ -89,7 +97,7 @@ class StoredGroupEventHandler
/** /**
* This method processes all webhooks that respond to the "stored transaction group" trigger (100) * This method processes all webhooks that respond to the "stored transaction group" trigger (100)
*/ */
public function triggerWebhooks(StoredTransactionGroup $storedGroupEvent): void private function triggerWebhooks(StoredTransactionGroup $storedGroupEvent): void
{ {
app('log')->debug(__METHOD__); app('log')->debug(__METHOD__);
$group = $storedGroupEvent->transactionGroup; $group = $storedGroupEvent->transactionGroup;

View File

@@ -41,10 +41,19 @@ use Illuminate\Support\Collection;
*/ */
class UpdatedGroupEventHandler class UpdatedGroupEventHandler
{ {
public function runAllHandlers(UpdatedTransactionGroup $event): void {
$this->unifyAccounts($event);
$this->processRules($event);
$this->recalculateCredit($event);
$this->triggerWebhooks($event);
}
/** /**
* This method will check all the rules when a journal is updated. * This method will check all the rules when a journal is updated.
*/ */
public function processRules(UpdatedTransactionGroup $updatedGroupEvent): void private function processRules(UpdatedTransactionGroup $updatedGroupEvent): void
{ {
if (false === $updatedGroupEvent->applyRules) { if (false === $updatedGroupEvent->applyRules) {
app('log')->info(sprintf('Will not run rules on group #%d', $updatedGroupEvent->transactionGroup->id)); app('log')->info(sprintf('Will not run rules on group #%d', $updatedGroupEvent->transactionGroup->id));
@@ -76,7 +85,7 @@ class UpdatedGroupEventHandler
$newRuleEngine->fire(); $newRuleEngine->fire();
} }
public function recalculateCredit(UpdatedTransactionGroup $event): void private function recalculateCredit(UpdatedTransactionGroup $event): void
{ {
$group = $event->transactionGroup; $group = $event->transactionGroup;
@@ -86,7 +95,7 @@ class UpdatedGroupEventHandler
$object->recalculate(); $object->recalculate();
} }
public function triggerWebhooks(UpdatedTransactionGroup $updatedGroupEvent): void private function triggerWebhooks(UpdatedTransactionGroup $updatedGroupEvent): void
{ {
app('log')->debug(__METHOD__); app('log')->debug(__METHOD__);
$group = $updatedGroupEvent->transactionGroup; $group = $updatedGroupEvent->transactionGroup;
@@ -110,7 +119,7 @@ class UpdatedGroupEventHandler
/** /**
* This method will make sure all source / destination accounts are the same. * This method will make sure all source / destination accounts are the same.
*/ */
public function unifyAccounts(UpdatedTransactionGroup $updatedGroupEvent): void private function unifyAccounts(UpdatedTransactionGroup $updatedGroupEvent): void
{ {
$group = $updatedGroupEvent->transactionGroup; $group = $updatedGroupEvent->transactionGroup;
if (1 === $group->transactionJournals->count()) { if (1 === $group->transactionJournals->count()) {

View File

@@ -169,16 +169,11 @@ class EventServiceProvider extends ServiceProvider
// is a Transaction Journal related event. // is a Transaction Journal related event.
StoredTransactionGroup::class => [ StoredTransactionGroup::class => [
'FireflyIII\Handlers\Events\StoredGroupEventHandler@processRules', 'FireflyIII\Handlers\Events\StoredGroupEventHandler@runAllHandlers',
'FireflyIII\Handlers\Events\StoredGroupEventHandler@recalculateCredit',
'FireflyIII\Handlers\Events\StoredGroupEventHandler@triggerWebhooks',
], ],
// is a Transaction Journal related event. // is a Transaction Journal related event.
UpdatedTransactionGroup::class => [ UpdatedTransactionGroup::class => [
'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@unifyAccounts', 'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@runAllHandlers',
'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@processRules',
'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@recalculateCredit',
'FireflyIII\Handlers\Events\UpdatedGroupEventHandler@triggerWebhooks',
], ],
DestroyedTransactionGroup::class => [ DestroyedTransactionGroup::class => [
'FireflyIII\Handlers\Events\DestroyedGroupEventHandler@triggerWebhooks', 'FireflyIII\Handlers\Events\DestroyedGroupEventHandler@triggerWebhooks',