Пример #1
0
 /**
  * Handle the event.
  *
  * @param  TransactionJournalUpdated $event
  *
  * @return void
  */
 public function handle(TransactionJournalUpdated $event)
 {
     // get all the user's rule groups, with the rules, order by 'order'.
     /** @var User $user */
     $user = Auth::user();
     $groups = $user->ruleGroups()->where('rule_groups.active', 1)->orderBy('order', 'ASC')->get();
     //
     /** @var RuleGroup $group */
     foreach ($groups as $group) {
         Log::debug('Now processing group "' . $group->title . '".');
         $rules = $group->rules()->leftJoin('rule_triggers', 'rules.id', '=', 'rule_triggers.rule_id')->where('rule_triggers.trigger_type', 'user_action')->where('rule_triggers.trigger_value', 'update-journal')->where('rules.active', 1)->get(['rules.*']);
         /** @var Rule $rule */
         foreach ($rules as $rule) {
             Log::debug('Now handling rule #' . $rule->id . ' (' . $rule->title . ')');
             $processor = new Processor($rule, $event->journal);
             // get some return out of this?
             $processor->handle();
             if ($rule->stop_processing) {
                 break;
             }
         }
     }
 }
Пример #2
0
 /**
  * @param Collection         $groups
  * @param TransactionJournal $journal
  */
 private function fireRule(Collection $groups, TransactionJournal $journal)
 {
     /** @var RuleGroup $group */
     foreach ($groups as $group) {
         /** @var Rule $rule */
         foreach ($group->rules as $rule) {
             $processor = new Processor($rule, $journal);
             $processor->handle();
             if ($rule->stop_processing) {
                 break;
             }
         }
     }
 }