- Модуль: imopenlines
- Путь к файлу: ~/bitrix/modules/imopenlines/lib/tracker.php
- Класс: BitrixImOpenLinesTracker
- Вызов: Tracker::change
public function change($messageId, $newEntityType, $newEntityId)
{
$return = false;
$messageId = intval($messageId);
$newEntityId = intval($newEntityId);
/*if (BitrixMainLoader::includeModule('crm') && $messageId > 0 && in_array($newEntityType, Array(Crm::ENTITY_COMPANY, Crm::ENTITY_LEAD, Crm::ENTITY_CONTACT)) && $newEntityId > 0)
{
$log = Array();
$delete = Array();
$sessionId = 0;
$messageOriginId = 0;
$action = '';
$entityType = '';
$entityId = 0;
$orm = ModelTrackerTable::getList(Array(
'filter' => Array('=MESSAGE_ID' => $messageId)
));
$return = true;
while ($row = $orm->fetch())
{
$entityType = $row['CRM_ENTITY_TYPE'];
$entityId = $row['CRM_ENTITY_ID'];
$action = $row['ACTION'];
$fieldId = $row['FIELD_ID'];
$fieldType = $row['FIELD_TYPE'];
$sessionId = $row['SESSION_ID'];
$messageOriginId = $row['MESSAGE_ORIGIN_ID'];
if ($newEntityType == $entityType && $newEntityId == $entityId)
$return = false;
$log[$entityType][$entityId][$action][$fieldId][$fieldType][] = $row['FIELD_VALUE'];
$delete[] = $row['ID'];
}
if($return && !empty($delete))
{
foreach ($log as $entityType => $entityTypeValue)
{
if($entityType == Crm::ENTITY_ACTIVITY)
{
self::cancelActivity($entityTypeValue);
}
else
{
self::changeLeadContactCompany($entityType, $entityTypeValue);
}
}
foreach ($delete as $id)
{
ModelTrackerTable::delete($id);
}
$return = true;
if ($messageOriginId)
{
$sessionData = ModelSessionTable::getByIdPerformance($sessionId)->fetch();
$session = new Session();
$result = $session->load(Array(
'USER_CODE' => $sessionData['USER_CODE']
));
if ($result)
{
$messageData = BitrixImModelMessageTable::getById($messageOriginId)->fetch();
$this->message(Array(
'SESSION' => $session,
'MESSAGE' => Array(
'ID' => $messageData["ID"],
'TEXT' => $messageData["MESSAGE"],
),
'UPDATE_ID' => $messageId,
'CRM' => Array(
'ENTITY_TYPE' => $newEntityType,
'ENTITY_ID' => $newEntityId,
)
));
}
}
}
else
{
$return = false;
}
}*/
return $return;
}