Exemple #1
0
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;
}
Exemple #2
0
 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();
 }