function getTickets($arFilter, $typeOfTicket) { $tickets = array(); $rsTicketData = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('NAME' => 'Ticket'))); if ($arTicketData = $rsTicketData->fetch()) { //Теперь получим объект - сущность $EntityTicket = \Bitrix\Highloadblock\HighloadBlockTable::compileEntity($arTicketData); //Создадим объект - запрос $QueryTicket = new \Bitrix\Main\Entity\Query($EntityTicket); //Зададим параметры запроса, любой параметр можно опустить $QueryTicket->setSelect(array('*')); if (!empty($arFilter)) { $QueryTicket->setFilter($arFilter); } $QueryTicket->setOrder(array('UF_DATETIME' => 'ASC')); //Выполним запрос $resultTicket = $QueryTicket->exec(); //Получаем результат по привычной схеме $resultTicket = new CDBResult($resultTicket); while ($rowTicket = $resultTicket->Fetch()) { list($dateTicket, $timeTicket) = explode(' ', $rowTicket['UF_DATETIME']->toString(new \Bitrix\Main\Context\Culture(array("FORMAT_DATETIME" => "DD.MM.YYYY HH:MI")))); $rowTicket['TIME_TICKET'] = $timeTicket; if ($typeOfTicket == "free") { $rsRecordData = \Bitrix\Highloadblock\HighloadBlockTable::getList(array('filter' => array('NAME' => 'Record'))); if ($arRecordData = $rsRecordData->fetch()) { $EntityRecord = \Bitrix\Highloadblock\HighloadBlockTable::compileEntity($arRecordData); $QueryRecord = new \Bitrix\Main\Entity\Query($EntityRecord); $QueryRecord->setSelect(array('ID')); $QueryRecord->setFilter(array('UF_TICKET' => $rowTicket['ID'])); $resultRecord = $QueryRecord->exec(); $resultRecord = new CDBResult($resultRecord); $rowRecord = $resultRecord->Fetch(); if (empty($rowRecord['ID'])) { $tickets[$rowTicket['UF_DOCTOR']][$dateTicket][$rowTicket['ID']] = $rowTicket; } } } else { $tickets[$rowTicket['UF_DOCTOR']][$dateTicket][$rowTicket['ID']] = $rowTicket; } } } return $tickets; }
public static function QueuedGetList($params) { $query = new \Bitrix\Main\Entity\Query(Bitrix\Voximplant\QueueTable::getEntity()); $query->registerRuntimeField('', new \Bitrix\Main\Entity\ExpressionField('IS_ONLINE_CUSTOM', 'CASE WHEN %s > ' . CVoxImplantUser::GetLastActivityDateAgo() . ' THEN \'Y\' ELSE \'N\' END', array('USER.LAST_ACTIVITY_DATE'))); if (isset($params['select'])) { $query->setSelect($params['select']); } else { $query->addSelect('ID')->addSelect('IS_ONLINE_CUSTOM'); } if (isset($params['filter'])) { $query->setFilter($params['filter']); } if (isset($params['order'])) { $query->setOrder($params['order']); } return $query->exec(); }