Add ability to disable running of rules on transactions.

This commit is contained in:
James Cole
2020-03-06 09:41:27 +01:00
parent 4818baee39
commit 9817c0807a
7 changed files with 29 additions and 12 deletions

View File

@@ -35,21 +35,23 @@ class StoredGroupEventHandler
/**
* This method grabs all the users rules and processes them.
*
* @param StoredTransactionGroup $storedJournalEvent
* @param StoredTransactionGroup $storedGroupEvent
*/
public function processRules(StoredTransactionGroup $storedJournalEvent): void
public function processRules(StoredTransactionGroup $storedGroupEvent): void
{
if (false === $storedJournalEvent->applyRules) {
if (false === $storedGroupEvent->applyRules) {
Log::info(sprintf('Will not run rules on group #%d', $storedGroupEvent->transactionGroup->id));
return;
}
Log::debug('Now in StoredGroupEventHandler::processRules()');
/** @var RuleEngine $ruleEngine */
$ruleEngine = app(RuleEngine::class);
$ruleEngine->setUser($storedJournalEvent->transactionGroup->user);
$ruleEngine->setUser($storedGroupEvent->transactionGroup->user);
$ruleEngine->setAllRules(true);
$ruleEngine->setTriggerMode(RuleEngine::TRIGGER_STORE);
$journals = $storedJournalEvent->transactionGroup->transactionJournals;
$journals = $storedGroupEvent->transactionGroup->transactionJournals;
/** @var TransactionJournal $journal */
foreach ($journals as $journal) {

View File

@@ -35,16 +35,22 @@ class UpdatedGroupEventHandler
/**
* This method will check all the rules when a journal is updated.
*
* @param UpdatedTransactionGroup $updatedJournalEvent
* @param UpdatedTransactionGroup $updatedGroupEvent
*/
public function processRules(UpdatedTransactionGroup $updatedJournalEvent): void
public function processRules(UpdatedTransactionGroup $updatedGroupEvent): void
{
if (false === $updatedGroupEvent->applyRules) {
Log::info(sprintf('Will not run rules on group #%d', $updatedGroupEvent->transactionGroup->id));
return;
}
/** @var RuleEngine $ruleEngine */
$ruleEngine = app(RuleEngine::class);
$ruleEngine->setUser($updatedJournalEvent->transactionGroup->user);
$ruleEngine->setUser($updatedGroupEvent->transactionGroup->user);
$ruleEngine->setAllRules(true);
$ruleEngine->setTriggerMode(RuleEngine::TRIGGER_UPDATE);
$journals = $updatedJournalEvent->transactionGroup->transactionJournals;
$journals = $updatedGroupEvent->transactionGroup->transactionJournals;
/** @var TransactionJournal $journal */
foreach ($journals as $journal) {