private function checkError() { $dump = $this->statement->errorInfo(); list($ecode, $etext) = get_array_part($dump, [0, 2], true); if ($ecode !== '00000') { self::$errors[] = sprintf("DB Error [%d]: %s", $ecode, $etext ?: 'Ошибка в параметрах'); } }
public function ajaxList() { /** @todo При запросе завок для согласования нужно сделать чтобы сверху были заявки цеха текущего пользователя и подсвечивались */ //sleep(1); $status = filter_input(INPUT_POST, 'type', FILTER_VALIDATE_INT, ['options' => ['min_range' => 0, 'default' => 0]]); $dep_id = get_param($this->authdata, 'depid', -1); $role = get_param($this->authdata, 'role_id'); $ticketlist = $this->model->getTicketListByStatus($status, $dep_id); if (count($ticketlist) == 0) { echo $this->renderPartial('no-ticket'); } foreach ($ticketlist as $ticket) { /*$dnode = CHtml::createTag('div', null, [ CHtml::createTag('span', ['class' => ''], get_param($ticket, 'nodename')), CHtml::createTag('br'), CHtml::createTag('em', ['class' => 'strong'], get_param($ticket, 'devs')), ]);*/ $dnode = CHtml::createTag('div', ['class' => '', 'data-trigger' => 'hover', 'data-content' => str_replace('|', "<br/>", htmlspecialchars(get_param($ticket, 'devs'))) ?: 'Не указаны', 'data-original-title' => 'Механизмы', 'data-toggle' => 'popover', 'data-placement' => 'top'], get_param($ticket, 'nodename')); $tid = get_param($ticket, 'id'); $this->data['tn'] = get_param($ticket, 'number'); $this->data['dcreate'] = get_param($ticket, 'dc'); $this->data['tdepartment'] = get_param($ticket, 'dname'); // чтобы на разых экранах время не "упрыгивало" от даты на новую строку, разменим обычный пробел - неразрывным $this->data['twork'] = str_replace(' ', ' ', join('<br/>', get_array_part($ticket, 'dstart dstop'))); $this->data['tnode'] = $dnode; $this->data['tid'] = $tid; $this->data['textra'] = CHtml::createLink('Просмотр', "/ticket/edit/{$tid}/", ['class' => 'btn btn-default btn-block', 'title' => 'Открыть заявку']); // НСС просили подсвечивать заявки кторые близки к просрочке $open_class = ''; $cday = get_param($ticket, 'cday', 10); if ($cday < 0) { $open_class = 'danger'; } elseif ($cday <= 1) { $open_class = 'warning strong'; } /* Подсветка строк списка заявок */ $this->data['tclass'] = ''; switch ($status) { case STATUS_AGREE: if ($role == Configuration::$ROLE_USER) { $this->data['tclass'] = get_param($ticket, 'adep') === $dep_id ? 'warning strong' : ''; } break; case STATUS_OPEN: if ($role === Configuration::$ROLE_USER) { $this->data['tclass'] = get_param($ticket, 'depid') === $dep_id ? 'warning strong' : ''; } if (in_array($role, [Configuration::$ROLE_NSS, Configuration::$ROLE_ADMIN])) { $this->data['tclass'] = $open_class; } break; default: } echo $this->renderPartial('ticket-row'); } }
public function actionSyncOperNames() { $this->render('', false); $data = $this->model->getBadNames(); var_dump(count($data)); $tmod = new TicketModel(); $cache = []; $result = 1; $this->model->startTransaction(); foreach ($data as $user) { $short = trim(join(' ', get_array_part($user, 'lname fname pname'))); //var_dump($short); $full = $tmod->findPersonByName($short, 'fullname'); if ($full) { $uid = get_param($user, 'id'); $cache[$uid] = $full; $result *= $this->model->setOperName($uid, $full); } } if ($result) { var_dump($cache); } $this->model->stopTransaction($result); $this->render(''); }