- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/integrity/duplicateentityranking.php
- Класс: Bitrix\Crm\Integrity\DuplicateEntityRanking
- Вызов: DuplicateEntityRanking::registerEntityStatistics
static function registerEntityStatistics($entityTypeID, $entityID, array $entityFields)
{
$lastChanged = 0;
$completeness = 0;
if($entityTypeID === \CCrmOwnerType::Contact)
{
if(isset($entityFields['DATE_MODIFY']) && $entityFields['DATE_MODIFY'] !== '')
{
$lastChanged = MakeTimeStamp($entityFields['DATE_MODIFY']);
}
if(isset($entityFields['NAME']) && $entityFields['NAME'] !== '')
{
$completeness++;
}
if(isset($entityFields['SECOND_NAME']) && $entityFields['SECOND_NAME'] !== '')
{
$completeness++;
}
if(isset($entityFields['LAST_NAME']) && $entityFields['LAST_NAME'] !== '')
{
$completeness++;
}
}
elseif($entityTypeID === \CCrmOwnerType::Company)
{
if(isset($entityFields['DATE_MODIFY']) && $entityFields['DATE_MODIFY'] !== '')
{
$lastChanged = MakeTimeStamp($entityFields['DATE_MODIFY']);
}
if(isset($entityFields['TITLE']) && $entityFields['TITLE'] !== '')
{
$completeness++;
}
if(isset($entityFields['ADDRESS']) && $entityFields['ADDRESS'] !== '')
{
$completeness++;
}
if(isset($entityFields['ADDRESS_LEGAL']) && $entityFields['ADDRESS_LEGAL'] !== '')
{
$completeness++;
}
}
elseif($entityTypeID === \CCrmOwnerType::Lead)
{
if(isset($entityFields['DATE_MODIFY']) && $entityFields['DATE_MODIFY'] !== '')
{
$lastChanged = MakeTimeStamp($entityFields['DATE_MODIFY']);
}
if(isset($entityFields['TITLE']) && $entityFields['TITLE'] !== '')
{
$completeness++;
}
if(isset($entityFields['COMPANY_TITLE']) && $entityFields['COMPANY_TITLE'] !== '')
{
$completeness++;
}
if(isset($entityFields['NAME']) && $entityFields['NAME'] !== '')
{
$completeness++;
}
if(isset($entityFields['SECOND_NAME']) && $entityFields['SECOND_NAME'] !== '')
{
$completeness++;
}
if(isset($entityFields['LAST_NAME']) && $entityFields['LAST_NAME'] !== '')
{
$completeness++;
}
if(isset($entityFields['ADDRESS']) && $entityFields['ADDRESS'] !== '')
{
$completeness++;
}
}
else
{
throw new Main\NotSupportedException('Entity type: '.\CCrmOwnerType::ResolveName($entityTypeID).' is not supported in current context');
}
if($lastChanged <= 0)
{
$lastChanged = time() + \CTimeZone::GetOffset();
}
$completeness += count(DuplicateCommunicationCriterion::getRegisteredTypes($entityTypeID, $entityID));
Entity\DuplicateEntityStatisticsTable::upsert(
array(
'ENTITY_TYPE_ID' => $entityTypeID,
'ENTITY_ID' => $entityID,
'RANKING_DATA' => serialize(
array(
'LAST_CHANGED' => $lastChanged,
'COMPLETENESS' => $completeness
)
)
)
);
}