/**
  * Collects a list of rule processors, one for each rule within the rule group
  *
  * @return array
  */
 protected function collectProcessors()
 {
     // Find all rules belonging to this rulegroup
     $rules = $this->ruleGroup->rules()->leftJoin('rule_triggers', 'rules.id', '=', 'rule_triggers.rule_id')->where('rule_triggers.trigger_type', 'user_action')->where('rule_triggers.trigger_value', 'store-journal')->where('rules.active', 1)->get(['rules.*']);
     // Create a list of processors for these rules
     return array_map(function ($rule) {
         return Processor::make($rule);
     }, $rules->all());
 }
Esempio n. 2
0
 /**
  * @param RuleGroup $ruleGroup
  *
  * @return bool
  */
 public function resetRulesInGroupOrder(RuleGroup $ruleGroup)
 {
     $ruleGroup->rules()->whereNotNull('deleted_at')->update(['order' => 0]);
     $set = $ruleGroup->rules()->orderBy('order', 'ASC')->orderBy('updated_at', 'DESC')->get();
     $count = 1;
     /** @var Rule $entry */
     foreach ($set as $entry) {
         $entry->order = $count;
         $entry->save();
         $count++;
     }
     return true;
 }