- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/session/update.php
- Класс: BitrixImOpenLinesSessionUpdate
- Вызов: Update::checkVote
private function checkVote(): void
{
if (
isset($this->newData['STATUS']) &&
$this->newData['STATUS'] < Session::STATUS_WAIT_CLIENT &&
!array_key_exists('WAIT_VOTE', $this->newData) &&
$this->session->getSessionField('WAIT_VOTE') === 'Y'
)
{
$this->newData['WAIT_VOTE'] = 'N';
}
if (
array_key_exists('WAIT_VOTE', $this->newData) &&
$this->newData['WAIT_VOTE'] !== 'Y' &&
!array_key_exists('DATE_CLOSE_VOTE', $this->newData) &&
$this->session->getSessionField('DATE_CLOSE_VOTE') !== null
)
{
$this->newData['DATE_CLOSE_VOTE'] = null;
}
if (
array_key_exists('WAIT_VOTE', $this->newData) &&
$this->newData['WAIT_VOTE'] !== 'Y' &&
!array_key_exists('DATE_CLOSE_VOTE', $this->newData) &&
$this->session->getSessionField('DATE_CLOSE_VOTE') !== null
)
{
$this->newData['DATE_CLOSE_VOTE'] = null;
}
if (
Connector::isLiveChat($this->session->getSessionField('SOURCE')) &&
array_key_exists('DATE_CLOSE_VOTE', $this->newData)
)
{
BitrixPullEvent::add($this->session->getSessionField('USER_ID'), [
'module_id' => 'imopenlines',
'command' => 'sessionDateCloseVote',
'params' => [
'sessionId' => (int)$this->session->getSessionField('ID'),
'dateCloseVote' => (!empty($this->newData['DATE_CLOSE_VOTE']) && $this->newData['DATE_CLOSE_VOTE'] instanceof DateTime) ? date('c', $this->newData['DATE_CLOSE_VOTE']->getTimestamp()): '',
]
]);
}
}