public static function getEventSid() { $event = Event::select('id', 'name', 'event_sid')->get(); $result = array(); foreach ($event as $value) { $result[$value->id] = $value->event_sid . ' - (' . $value->name . ')'; } return $result; }
public function postAddDataEvents() { $input = Input::only('name', 'event_sid'); $input['name'] = e($input['name']); $input['terminal_id'] = $this->getTerminalId(); //проверяем данные $errors = Events::add($input); if ($errors) { return $errors; } $event = new Event(); $event->newEvent($input); $message = 'Данные изменены'; return array('message' => $message); }
public function setUp() { parent::setUp(); Config::set('termId', 1); IncomeEvent::truncate(); Event::truncate(); Terminal::truncate(); Rule::truncate(); ResultSignal::truncate(); Signal::truncate(); Terminal::create(array('name' => 'test', 'url' => 'http://test', 'queue' => 'queueTest', 'key' => 'key')); Event::create(array('terminal_id' => 1, 'name' => 'Хочу есть', 'event_sid' => 'im_hungry')); Signal::create(array('terminal_id' => 1, 'name' => 'Иди кушай', 'signal_sid' => 'go_eat')); Signal::create(array('terminal_id' => 1, 'name' => 'Жди', 'signal_sid' => 'wait')); Signal::create(array('terminal_id' => 1, 'name' => 'Терпи до дома', 'signal_sid' => 'endure')); Rule::create(array('terminal_id' => 1, 'name' => 'Иди кушай', 'event_id' => 1, 'rule' => 'time >= 13.00 AND time <= 14.00 AND have_money === true', 'signal_id' => 1, 'flag_active' => true)); Rule::create(array('terminal_id' => 1, 'name' => 'Жди', 'event_id' => 1, 'rule' => 'time < 13.00', 'signal_id' => 2, 'flag_active' => true)); Rule::create(array('terminal_id' => 1, 'name' => 'Терпи до дома', 'event_id' => 1, 'rule' => 'time > 14.00', 'signal_id' => 3, 'flag_active' => true)); }
/** * @param $data * * @return Rule[] */ public function CalcFitRules($data) { $eventData = json_decode($data['data'], true); if (json_last_error() != JSON_ERROR_NONE) { return ['error' => 'JSON error']; } //Записываем событие в базу $this->incomeEvent = new IncomeEvent(); $this->incomeEvent->newIncomeEvent($data['term'], $data['event'], $eventData); //Если не находим событие - отдаём ошибку $event = Event::getEvent($data['term'], $data['event']); if ($event == null) { Log::info('Правило ' . $data['event'] . ' не найдено'); return ['error' => 'Unknown event']; } //Получаем все правила теминала по событию $rules = Rule::getRules($data['term'], $event->id); $countRules = count($rules); Log::info("Всего найдено правил: {$countRules}"); //Определяем соответсвующие запросу правила $rulesHandler = new RulesHandler(); $fitRules = $rulesHandler->getFitRules($rules, $eventData); return $fitRules; }
<div class="col-sm-9"> <?php echo Form::input('text', 'name', '', array('placeholder' => 'Название', 'class' => 'form-control', 'id' => 'inputNameAdd', 'required' => 'required')); ?> </div> <div id="errorNameAdd" class="text-danger text-center"></div> </div> <div class="form-group row"> <?php echo Form::label('inputEventSidAdd', 'event_sid', array('class' => 'col-sm-3 control-label')); ?> <div class="col-sm-9"> <div class="EventSid"> <?php echo Form::select('EventSid', Event::getEventSid(), '', array('class' => 'form-control', 'id' => 'inputEventSidAdd', 'required' => 'required')); ?> </div> </div> <div id="errorEventSidAdd" class="text-danger text-center"></div> </div> <div class="form-group row"> <?php echo Form::label('inputRuleAdd', 'Условие', array('class' => 'col-sm-3 control-label')); ?> <div class="col-sm-9"> <?php echo Form::input('text', 'rule', '', array('placeholder' => 'rule', 'class' => 'form-control', 'id' => 'inputRuleAdd')); ?> </div>