- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/session/update.php
- Класс: BitrixImOpenLinesSessionUpdate
- Вызов: Update::updateSessionCheck
private function updateSessionCheck(): void
{
if (
array_key_exists('SEND_NO_ANSWER_TEXT', $this->newData)
&& $this->newData['SEND_NO_ANSWER_TEXT'] === 'Y'
)
{
$this->updateCheckTable['DATE_NO_ANSWER'] = null;
}
if (!empty($this->updateCheckTable))
{
if (
isset($this->updateCheckTable['DATE_CLOSE'])
&& $this->session->getSessionField('CRM_ACTIVITY_ID') > 0
&& (
!isset($this->newData['CLOSED'])
|| $this->newData['CLOSED'] === 'N'
)
)
{
if (
(
$this->session->getSessionField('STATUS') >= Session::STATUS_ANSWER
&& !in_array($this->session->getSessionField('STATUS'), [Session::STATUS_CLIENT, Session::STATUS_CLIENT_AFTER_OPERATOR])
)
||
(
$this->newData['STATUS'] >= Session::STATUS_ANSWER
&& !in_array($this->newData['STATUS'], [Session::STATUS_CLIENT, Session::STATUS_CLIENT_AFTER_OPERATOR])
)
)
{
if ($this->updateCheckTable['DATE_CLOSE'])
{
$dateCheckClose = clone $this->updateCheckTable['DATE_CLOSE'];
}
else
{
$dateCheckClose = new DateTime();
}
$dateCheckClose->add($this->session->getConfig('AUTO_CLOSE_TIME').' SECONDS');
$dateCheckClose->add('1 DAY');
$crmManager = new Crm($this->session);
if ($crmManager->isLoaded())
{
$crmManager->setSessionDataClose($dateCheckClose);
}
}
}
SessionCheckTable::update($this->session->getSessionField('ID'), $this->updateCheckTable);
}
foreach ($this->updateCheckTable as $key => $value)
{
$this->session->setSessionField('CHECK_' . $key, $value);
}
}