• Модуль: 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()): '',
			]
		]);
	}
}