• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/counter/monitor/entitychange.php
  • Класс: Bitrix\Crm\Counter\Monitor\EntityChange
  • Вызов: EntityChange::create
static function create(
	int $entityTypeId,
	int $entityId,
	array $oldFields,
	array $newFields
): ?self
{
	$factory = Container::getInstance()->getFactory($entityTypeId);
	if (!$factory)
	{
		return null;
	}
	if ($entityId <= 0)
	{
		return null;
	}

	$assignedByFiledName = $factory->getEntityFieldNameByMap(Item::FIELD_NAME_ASSIGNED);
	$stageIdFieldName = $factory->getEntityFieldNameByMap(Item::FIELD_NAME_STAGE_ID);
	$categoryIdFieldName = $factory->getEntityFieldNameByMap(Item::FIELD_NAME_CATEGORY_ID);

	$change = new self(
		new ItemIdentifier($entityTypeId, $entityId),
		isset($oldFields[$assignedByFiledName]) ? (int)$oldFields[$assignedByFiledName] : null,
		isset($newFields[$assignedByFiledName]) ? (int)$newFields[$assignedByFiledName] : null,
		isset($oldFields[$stageIdFieldName]) ? (string)$oldFields[$stageIdFieldName] : null,
		isset($newFields[$stageIdFieldName]) ? (string)$newFields[$stageIdFieldName] : null,
		isset($oldFields[$categoryIdFieldName]) ? (int)$oldFields[$categoryIdFieldName] : null,
		isset($newFields[$categoryIdFieldName]) ? (int)$newFields[$categoryIdFieldName] : null
	);

	return $change;
}